diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 00000000..456a3559 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# Apply Prettier https://github.com/bitwarden/web/pull/1347 +56477eb39cfd8a73c9920577d24d75fed36e2cf5 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f12d041c..db16daaa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,7 +55,7 @@ jobs: - name: Cache npm id: npm-cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 + uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 with: path: "~/.npm" key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} @@ -82,7 +82,7 @@ jobs: zip -r web-$_VERSION-selfhosted-open-source.zip build - name: Upload build artifact - uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 # v2.2.3 + 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 @@ -102,7 +102,7 @@ jobs: - name: Cache npm id: npm-cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 + uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 with: path: "~/.npm" key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} @@ -129,7 +129,7 @@ jobs: zip -r web-$_VERSION-cloud-COMMERCIAL.zip build - name: Upload build artifact - uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 # v2.2.3 + uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 # v2.2.3 with: name: web-${{ env._VERSION }}-cloud-COMMERCIAL.zip path: ./web-${{ env._VERSION }}-cloud-COMMERCIAL.zip @@ -149,7 +149,7 @@ jobs: - name: Cache npm id: npm-cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 + uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 with: path: "~/.npm" key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} @@ -191,7 +191,7 @@ jobs: zip -r web-$_VERSION-selfhosted-COMMERCIAL.zip build - name: Upload build artifact - uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 # v2.2.3 + uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 # v2.2.3 with: name: web-${{ env._VERSION }}-selfhosted-COMMERCIAL.zip path: ./web-${{ env._VERSION }}-selfhosted-COMMERCIAL.zip @@ -255,7 +255,7 @@ jobs: - name: Cache npm id: npm-cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 + uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 with: path: "~/.npm" key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} @@ -304,21 +304,21 @@ jobs: docker --version docker build -t bitwardenqa.azurecr.io/web . - # - name: Get image tag - # id: image-tag - # run: | - # IMAGE_TAG=$(echo "$GITHUB_REF" | awk '{split($0, a, "/"); print a[3];}') - # TAG_EXTENSION=${{ github.event.inputs.custom_tag_extension }} + - 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" + 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 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' @@ -327,10 +327,10 @@ jobs: - 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 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' @@ -353,7 +353,7 @@ jobs: - name: Cache npm id: npm-cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 + uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 with: path: "~/.npm" key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} @@ -401,7 +401,7 @@ jobs: _CROWDIN_PROJECT_ID: "308189" steps: - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 - name: Login to Azure uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a @@ -416,7 +416,7 @@ jobs: secrets: "crowdin-api-token" - name: Upload Sources - uses: crowdin/github-action@e39093fd75daae7859c68eded4b43d42ec78d8ea # v1.3.2 + uses: crowdin/github-action@e39093fd75daae7859c68eded4b43d42ec78d8ea # v1.3.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} @@ -485,7 +485,7 @@ jobs: secrets: "devops-alerts-slack-webhook-url" - name: Notify Slack on failure - uses: act10ns/slack@e4e71685b9b239384b0f676a63c32367f59c2522 # v1.2.2 + uses: act10ns/slack@e4e71685b9b239384b0f676a63c32367f59c2522 # v1.2.2 if: failure() env: SLACK_WEBHOOK_URL: ${{ steps.retrieve-secrets.outputs.devops-alerts-slack-webhook-url }} diff --git a/.github/workflows/crowdin-pull.yml b/.github/workflows/crowdin-pull.yml index 95c62307..0c959fea 100644 --- a/.github/workflows/crowdin-pull.yml +++ b/.github/workflows/crowdin-pull.yml @@ -15,7 +15,7 @@ jobs: _CROWDIN_PROJECT_ID: "308189" steps: - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 - name: Login to Azure uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a @@ -30,7 +30,7 @@ jobs: secrets: "crowdin-api-token" - name: Download translations - uses: crowdin/github-action@e39093fd75daae7859c68eded4b43d42ec78d8ea # v1.3.2 + uses: crowdin/github-action@e39093fd75daae7859c68eded4b43d42ec78d8ea # v1.3.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} diff --git a/.github/workflows/qa-deploy.yml b/.github/workflows/qa-deploy.yml index ecc363fd..d654dd92 100644 --- a/.github/workflows/qa-deploy.yml +++ b/.github/workflows/qa-deploy.yml @@ -9,8 +9,8 @@ on: required: false env: - _QA_CLUSTER_RESOURCE_GROUP: "bitwarden-devops" - _QA_CLUSTER_NAME: "dev-aks" + _QA_CLUSTER_RESOURCE_GROUP: "bw-env-qa" + _QA_CLUSTER_NAME: "bw-aks-qa" _QA_K8S_NAMESPACE: "bw-qa" _QA_K8S_APP_NAME: "bw-web" @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout Repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 - name: Setup run: export PATH=$PATH:~/work/web/web @@ -35,16 +35,16 @@ jobs: uses: Azure/get-keyvault-secrets@80ccd3fafe5662407cc2e55f202ee34bfff8c403 with: keyvault: "bitwarden-qa-kv" - secrets: "dev-aks-kubectl-credentials" + secrets: "qa-aks-kubectl-credentials" - - name: Login to dev-aks-kubectl SP + - name: Login with qa-aks-kubectl-credentials SP uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a with: - creds: ${{ env.dev-aks-kubectl-credentials }} + creds: ${{ env.qa-aks-kubectl-credentials }} - name: Setup AKS access - env: - USER_ID: ${{ env.qa-kubectl-managed-identity-clientId }} + #env: + # USER_ID: ${{ env.qa-kubectl-managed-identity-clientId }} run: | echo "---az install---" az aks install-cli --install-location ./kubectl --kubelogin-install-location ./kubelogin @@ -54,7 +54,7 @@ jobs: - name: Get image tag id: image_tag run: | - IMAGE_TAG=$(echo "$GITHUB_REF" | awk '{split($0, a, "/"); print a[3];}') + IMAGE_TAG=$(echo "${GITHUB_REF:11}" | sed "s#/#-#g") TAG_EXTENSION=${{ github.event.inputs.image_extension }} if [[ $TAG_EXTENSION ]]; then diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c4e4426f..544d6b4a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,15 @@ name: Release on: workflow_dispatch: - inputs: {} + inputs: + release_type: + description: 'Release Options' + required: true + default: 'Initial Release' + type: choice + options: + - Initial Release + - Redeploy jobs: setup: @@ -24,7 +32,7 @@ jobs: fi - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # 2.3.4 + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # 2.3.4 - name: Check Release Version id: version @@ -34,7 +42,8 @@ jobs: curl -sL https://api.github.com/repos/$GITHUB_REPOSITORY/releases/latest | jq -r ".tag_name" ) - if [ "v$version" == "$previous_release_tag_version" ]; then + if [ "v$version" == "$previous_release_tag_version" ] && \ + [ "${{ github.event.inputs.release_type }}" == "Initial Release" ]; then echo "[!] Already released v$version. Please bump version to continue" exit 1 fi @@ -106,7 +115,7 @@ jobs: _TAG_VERSION: ${{ needs.setup.outputs.tag_version }} steps: - name: Checkout Repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 with: ref: gh-pages @@ -116,7 +125,7 @@ jobs: git push -u origin deploy-$_TAG_VERSION - name: Checkout Repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 - name: Setup git config run: | @@ -138,7 +147,7 @@ jobs: run: unzip web-*-cloud-COMMERCIAL.zip - name: Deploy GitHub Pages - uses: crazy-max/ghaction-github-pages@db4476a01402e1a7ce05f41832040eef16d14925 # v2.5.0 + uses: crazy-max/ghaction-github-pages@db4476a01402e1a7ce05f41832040eef16d14925 # v2.5.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/.prettierignore b/.prettierignore index 2a26e8cf..3e3263bc 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,3 +8,6 @@ jslib src/locales src/404/*.min.css src/scripts/u2f.js + +# Github Workflows +.github/workflows \ No newline at end of file diff --git a/README.md b/README.md index 034e624d..a1478fab 100644 --- a/README.md +++ b/README.md @@ -66,3 +66,23 @@ Where the `urls` object is defined by the [Urls type in jslib](https://github.co 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/bitwarden_license/src/app/organizations/manage/sso.component.ts b/bitwarden_license/src/app/organizations/manage/sso.component.ts index 7c2aed98..d2c0a26f 100644 --- a/bitwarden_license/src/app/organizations/manage/sso.component.ts +++ b/bitwarden_license/src/app/organizations/manage/sso.component.ts @@ -34,8 +34,8 @@ export class SsoComponent implements OnInit { spMetadataUrl: string; spAcsUrl: string; - enabled = this.fb.control(false); - data = this.fb.group({ + enabled = this.formBuilder.control(false); + data = this.formBuilder.group({ configType: [], keyConnectorEnabled: [], @@ -76,7 +76,7 @@ export class SsoComponent implements OnInit { }); constructor( - private fb: FormBuilder, + private formBuilder: FormBuilder, private route: ActivatedRoute, private apiService: ApiService, private platformUtilsService: PlatformUtilsService, diff --git a/bitwarden_license/src/app/policies/maximum-vault-timeout.component.ts b/bitwarden_license/src/app/policies/maximum-vault-timeout.component.ts index 9c1b4453..fb0071ae 100644 --- a/bitwarden_license/src/app/policies/maximum-vault-timeout.component.ts +++ b/bitwarden_license/src/app/policies/maximum-vault-timeout.component.ts @@ -24,12 +24,12 @@ export class MaximumVaultTimeoutPolicy extends BasePolicy { templateUrl: "maximum-vault-timeout.component.html", }) export class MaximumVaultTimeoutPolicyComponent extends BasePolicyComponent { - data = this.fb.group({ + data = this.formBuilder.group({ hours: [null], minutes: [null], }); - constructor(private fb: FormBuilder, private i18nService: I18nService) { + constructor(private formBuilder: FormBuilder, private i18nService: I18nService) { super(); } diff --git a/jslib b/jslib index 512c5c28..e4cd0af2 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 512c5c283745c0e2aedaa17fc5d386c60d622064 +Subproject commit e4cd0af2f9ae924f9b749fefe3695f7c69135bf6 diff --git a/package-lock.json b/package-lock.json index a29ce7ed..535343f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bitwarden-web", - "version": "2.25.0", + "version": "2.25.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bitwarden-web", - "version": "2.25.0", + "version": "2.25.1", "hasInstallScript": true, "license": "GPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 065c1d58..fee533b9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitwarden-web", - "version": "2.25.0", + "version": "2.25.1", "license": "GPL-3.0", "repository": "https://github.com/bitwarden/web", "scripts": { @@ -101,6 +101,7 @@ "npm": "~8" }, "lint-staged": { - "*.{js,ts,css,scss,md}": "prettier --write" + "*": "prettier --ignore-unknown --write", + "*.png": "node scripts/optimize.js" } } diff --git a/scripts/optimize.js b/scripts/optimize.js new file mode 100644 index 00000000..217a91e3 --- /dev/null +++ b/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/src/404.html b/src/404.html index 0d39da56..12c70a03 100644 --- a/src/404.html +++ b/src/404.html @@ -51,6 +51,6 @@ contact us.

- + diff --git a/src/app/accounts/two-factor.component.html b/src/app/accounts/two-factor.component.html index af13713f..f7fb8f0d 100644 --- a/src/app/accounts/two-factor.component.html +++ b/src/app/accounts/two-factor.component.html @@ -58,7 +58,11 @@

{{ "insertYubiKey" | i18n }}

- + + + + +

- + + + + +
diff --git a/src/connectors/webauthn.html b/src/connectors/webauthn.html index 89927e16..2e77cc0d 100644 --- a/src/connectors/webauthn.html +++ b/src/connectors/webauthn.html @@ -6,7 +6,11 @@ - + + + + +
diff --git a/src/images/404.png b/src/images/404.png index c84f7063..db1c31bf 100644 Binary files a/src/images/404.png and b/src/images/404.png differ diff --git a/src/images/cards.png b/src/images/cards.png index 16722411..bd43abe5 100644 Binary files a/src/images/cards.png and b/src/images/cards.png differ diff --git a/src/images/icons/android-chrome-192x192.png b/src/images/icons/android-chrome-192x192.png index 1d86f89a..43976a58 100644 Binary files a/src/images/icons/android-chrome-192x192.png and b/src/images/icons/android-chrome-192x192.png differ diff --git a/src/images/icons/android-chrome-512x512.png b/src/images/icons/android-chrome-512x512.png index 2d7c7d42..8e5600b4 100644 Binary files a/src/images/icons/android-chrome-512x512.png and b/src/images/icons/android-chrome-512x512.png differ diff --git a/src/images/icons/apple-touch-icon.png b/src/images/icons/apple-touch-icon.png index e86b8d41..ea07eca8 100644 Binary files a/src/images/icons/apple-touch-icon.png and b/src/images/icons/apple-touch-icon.png differ diff --git a/src/images/icons/favicon-16x16.png b/src/images/icons/favicon-16x16.png index 136b7285..e42bf10e 100644 Binary files a/src/images/icons/favicon-16x16.png and b/src/images/icons/favicon-16x16.png differ diff --git a/src/images/icons/favicon-32x32.png b/src/images/icons/favicon-32x32.png index 1d39a02c..7dc2e8f9 100644 Binary files a/src/images/icons/favicon-32x32.png and b/src/images/icons/favicon-32x32.png differ diff --git a/src/images/icons/mstile-150x150.png b/src/images/icons/mstile-150x150.png index 6de600ca..90bdd338 100644 Binary files a/src/images/icons/mstile-150x150.png and b/src/images/icons/mstile-150x150.png differ diff --git a/src/images/logo-dark@2x.png b/src/images/logo-dark@2x.png index 7d0850c5..e6519fb0 100644 Binary files a/src/images/logo-dark@2x.png and b/src/images/logo-dark@2x.png differ diff --git a/src/images/logo-white@2x.png b/src/images/logo-white@2x.png index c9b1f01b..099a4e4d 100644 Binary files a/src/images/logo-white@2x.png and b/src/images/logo-white@2x.png differ diff --git a/src/images/register-layout/logo-horizontal-white.png b/src/images/register-layout/logo-horizontal-white.png index 38e7ffa4..d5abf466 100644 Binary files a/src/images/register-layout/logo-horizontal-white.png and b/src/images/register-layout/logo-horizontal-white.png differ diff --git a/src/images/register-layout/wired-logo.png b/src/images/register-layout/wired-logo.png index aaa339c0..bf893de3 100644 Binary files a/src/images/register-layout/wired-logo.png and b/src/images/register-layout/wired-logo.png differ diff --git a/src/images/totp-countdown.png b/src/images/totp-countdown.png index 76aafabf..ef07c49b 100644 Binary files a/src/images/totp-countdown.png and b/src/images/totp-countdown.png differ diff --git a/src/images/two-factor/0.png b/src/images/two-factor/0.png index f37e3f17..307ff4fd 100644 Binary files a/src/images/two-factor/0.png and b/src/images/two-factor/0.png differ diff --git a/src/images/two-factor/1-w.png b/src/images/two-factor/1-w.png index 05392099..a4e39b3f 100644 Binary files a/src/images/two-factor/1-w.png and b/src/images/two-factor/1-w.png differ diff --git a/src/images/two-factor/1.png b/src/images/two-factor/1.png index 85079dfe..37fb7bc4 100644 Binary files a/src/images/two-factor/1.png and b/src/images/two-factor/1.png differ diff --git a/src/images/two-factor/2.png b/src/images/two-factor/2.png index ab2e4340..d069bdab 100644 Binary files a/src/images/two-factor/2.png and b/src/images/two-factor/2.png differ diff --git a/src/images/two-factor/3.png b/src/images/two-factor/3.png index 21aac2da..c543343f 100644 Binary files a/src/images/two-factor/3.png and b/src/images/two-factor/3.png differ diff --git a/src/images/two-factor/4.png b/src/images/two-factor/4.png index ae7d7b55..058671ea 100644 Binary files a/src/images/two-factor/4.png and b/src/images/two-factor/4.png differ diff --git a/src/images/two-factor/6.png b/src/images/two-factor/6.png index ab2e4340..d069bdab 100644 Binary files a/src/images/two-factor/6.png and b/src/images/two-factor/6.png differ diff --git a/src/images/two-factor/7-w.png b/src/images/two-factor/7-w.png index 1620ff76..89fdd8a2 100644 Binary files a/src/images/two-factor/7-w.png and b/src/images/two-factor/7-w.png differ diff --git a/src/images/two-factor/7.png b/src/images/two-factor/7.png index d998ae66..2a38bdcd 100644 Binary files a/src/images/two-factor/7.png and b/src/images/two-factor/7.png differ diff --git a/src/images/two-factor/rc-w.png b/src/images/two-factor/rc-w.png index 8e213f66..e83b8db1 100644 Binary files a/src/images/two-factor/rc-w.png and b/src/images/two-factor/rc-w.png differ diff --git a/src/images/two-factor/rc.png b/src/images/two-factor/rc.png index 5e5900e3..4bebdf93 100644 Binary files a/src/images/two-factor/rc.png and b/src/images/two-factor/rc.png differ diff --git a/src/images/u2fkey-mobile.avif b/src/images/u2fkey-mobile.avif new file mode 100644 index 00000000..2a1a733b Binary files /dev/null and b/src/images/u2fkey-mobile.avif differ diff --git a/src/images/u2fkey-mobile.jpg b/src/images/u2fkey-mobile.jpg index 72760859..ddbd545b 100644 Binary files a/src/images/u2fkey-mobile.jpg and b/src/images/u2fkey-mobile.jpg differ diff --git a/src/images/u2fkey-mobile.webp b/src/images/u2fkey-mobile.webp new file mode 100644 index 00000000..4faa3228 Binary files /dev/null and b/src/images/u2fkey-mobile.webp differ diff --git a/src/images/u2fkey.avif b/src/images/u2fkey.avif new file mode 100644 index 00000000..3c5f94dd Binary files /dev/null and b/src/images/u2fkey.avif differ diff --git a/src/images/u2fkey.jpg b/src/images/u2fkey.jpg index 8013df0e..595ae0c4 100644 Binary files a/src/images/u2fkey.jpg and b/src/images/u2fkey.jpg differ diff --git a/src/images/u2fkey.webp b/src/images/u2fkey.webp new file mode 100644 index 00000000..65d75019 Binary files /dev/null and b/src/images/u2fkey.webp differ diff --git a/src/images/yubikey.avif b/src/images/yubikey.avif new file mode 100644 index 00000000..ca67e1a2 Binary files /dev/null and b/src/images/yubikey.avif differ diff --git a/src/images/yubikey.jpg b/src/images/yubikey.jpg index 9ddf755d..6130819a 100644 Binary files a/src/images/yubikey.jpg and b/src/images/yubikey.jpg differ diff --git a/src/images/yubikey.webp b/src/images/yubikey.webp new file mode 100644 index 00000000..8d390876 Binary files /dev/null and b/src/images/yubikey.webp differ diff --git a/src/locales/af/messages.json b/src/locales/af/messages.json index eeabce06..de0e4bdf 100644 --- a/src/locales/af/messages.json +++ b/src/locales/af/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/az/messages.json b/src/locales/az/messages.json index 736876f3..bc08df63 100644 --- a/src/locales/az/messages.json +++ b/src/locales/az/messages.json @@ -2585,7 +2585,7 @@ } }, "unlinkedSsoUser": { - "message": "$ID$ istifadəçisi üçün SSO bağlantısı kəsildi.", + "message": "$ID$ istifadəçisi üçün SSO əlaqəsi kəsildi.", "placeholders": { "id": { "content": "$1", @@ -3442,7 +3442,10 @@ "message": "Təşkilat identifikatoru tələb olunur." }, "unlinkSso": { - "message": "SSO bağlantısını çıxart" + "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" @@ -4588,22 +4591,22 @@ "message": "Sponsorluğu sil" }, "removeSponsorshipConfirmation": { - "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + "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": "Sponsorship Created" + "message": "Sponsorluq yaradıldı" }, "revoke": { - "message": "Revoke" + "message": "Geri al" }, "emailSent": { - "message": "Email Sent" + "message": "E-poçt göndərildi" }, "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?" + "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": "Sponsorship Removed" + "message": "Sponsorluq silindi" }, "ssoKeyConnectorUnavailable": { "message": "Açar Bağlayıcı əlçatmazdır, daha sonra yenidən sınayın." @@ -4714,10 +4717,10 @@ "message": "New Families Organization" }, "acceptOffer": { - "message": "Accept Offer" + "message": "Təklifi qəbul et" }, "sponsoringOrg": { - "message": "Sponsoring Organization" + "message": "Sponsor Təşkilat" }, "keyConnectorTest": { "message": "Test" @@ -4729,9 +4732,9 @@ "message": "Açar Bağlayıcıya müraciət edilə bilmir. URL-ni yoxlayın." }, "sponsorshipTokenHasExpired": { - "message": "The sponsorship offer has expired." + "message": "Sponsorluq təklifinin müddəti bitdi." }, "freeWithSponsorship": { - "message": "FREE with sponsorship" + "message": "ÖDƏNİŞSİZ sponsorluq" } } diff --git a/src/locales/be/messages.json b/src/locales/be/messages.json index 18e853c9..af617219 100644 --- a/src/locales/be/messages.json +++ b/src/locales/be/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/bg/messages.json b/src/locales/bg/messages.json index f4b044e4..93071452 100644 --- a/src/locales/bg/messages.json +++ b/src/locales/bg/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Прекъсване на еднократна идентификация" }, + "unlinkSsoConfirmation": { + "message": "Наистина ли искате да премахнете еднократното удостоверяване за тази организация?" + }, "linkSso": { "message": "Свързване на еднократна идентификация" }, diff --git a/src/locales/bn/messages.json b/src/locales/bn/messages.json index d98bebe5..df0b703b 100644 --- a/src/locales/bn/messages.json +++ b/src/locales/bn/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/ca/messages.json b/src/locales/ca/messages.json index 627c06e9..300447d4 100644 --- a/src/locales/ca/messages.json +++ b/src/locales/ca/messages.json @@ -2177,7 +2177,7 @@ "message": "Esteu segur que voleu suprimir aquest usuari?" }, "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?" + "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" @@ -2660,7 +2660,7 @@ "message": "Tornar a enviar invitació" }, "resendEmail": { - "message": "Resend Email" + "message": "Tornar a enviar l'email" }, "hasBeenReinvited": { "message": "S'ha reconvidat a $USER$.", @@ -2957,7 +2957,7 @@ } }, "subscriptionSponsoredFamiliesPlan": { - "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "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", @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Desenllaça SSO" }, + "unlinkSsoConfirmation": { + "message": "Esteu segur que voleu desenllaçar SSO per a aquesta organització?" + }, "linkSso": { "message": "Enllaça SSO" }, @@ -4064,7 +4067,7 @@ } }, "firstSsoLogin": { - "message": "$ID$ logged in using Sso for the first time", + "message": "$ID$ connectat a SSO per primera vegada", "placeholders": { "id": { "content": "$1", @@ -4275,7 +4278,7 @@ "message": "L'organització s'ha afegit correctament al proveïdor" }, "accessingUsingProvider": { - "message": "Accessing organization using provider $PROVIDER$", + "message": "Accedeix a l'organització mitjançant el proveïdor $PROVIDER$", "placeholders": { "provider": { "content": "$1", @@ -4284,13 +4287,13 @@ } }, "providerIsDisabled": { - "message": "Provider is disabled." + "message": "S'ha deshabilitat el proveïdor." }, "providerUpdated": { - "message": "Provider updated" + "message": "S'ha actualitzat el proveïdor" }, "yourProviderIs": { - "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "message": "El vostre proveïdor és $PROVIDER$. Tenen privilegis administratius i de facturació en la vostra organització.", "placeholders": { "provider": { "content": "$1", @@ -4299,7 +4302,7 @@ } }, "detachedOrganization": { - "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "message": "L'organització $ORGANIZATION$ ha estat separada del vostre proveïdor.", "placeholders": { "organization": { "content": "$1", @@ -4308,40 +4311,40 @@ } }, "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." + "message": "Esteu segur que voleu separar aquesta organització? L'organització continuarà existint, però ja no serà gestionada pel proveïdor." }, "add": { - "message": "Add" + "message": "Afegeix" }, "updatedMasterPassword": { - "message": "Updated Master Password" + "message": "Contrasenya mestra actualitzada" }, "updateMasterPassword": { - "message": "Update Master Password" + "message": "Actualitza contrasenya mestra" }, "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." + "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." }, "maximumVaultTimeout": { - "message": "Vault Timeout" + "message": "Temps d'espera de la caixa forta" }, "maximumVaultTimeoutDesc": { - "message": "Configure a maximum vault timeout for all users." + "message": "Configureu un temps d'espera màxima a la caixa forta per a tots els usuaris." }, "maximumVaultTimeoutLabel": { - "message": "Maximum Vault Timeout" + "message": "Temps d'espera màxima a la caixa forta" }, "invalidMaximumVaultTimeout": { - "message": "Invalid Maximum Vault Timeout." + "message": "Temps d'espera màxima a la caixa forta no vàlid." }, "hours": { - "message": "Hours" + "message": "Hores" }, "minutes": { - "message": "Minutes" + "message": "Minuts" }, "vaultTimeoutPolicyInEffect": { - "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "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", @@ -4354,28 +4357,28 @@ } }, "customVaultTimeout": { - "message": "Custom Vault Timeout" + "message": "Temps d'espera a la caixa forta personalitzat" }, "vaultTimeoutToLarge": { - "message": "Your vault timeout exceeds the restriction set by your organization." + "message": "El temps d'espera de la caixa forta supera les restriccions establertes per la vostra organització." }, "disablePersonalVaultExport": { - "message": "Disable Personal Vault Export" + "message": "Inhabilita l'exportació de la caixa forta personal" }, "disablePersonalVaultExportDesc": { - "message": "Prohibits users from exporting their private vault data." + "message": "Prohibeix als usuaris exportar les dades de la seua caixa forta privada." }, "vaultExportDisabled": { - "message": "Vault Export Disabled" + "message": "L'exportació de la caixa forta està deshabilitada" }, "personalVaultExportPolicyInEffect": { - "message": "One or more organization policies prevents you from exporting your personal vault." + "message": "Una o més polítiques d'organització us impedeixen exportar la vostra caixa forta." }, "selectType": { - "message": "Select SSO Type" + "message": "Selecciona el tipus d'SSO" }, "type": { - "message": "Type" + "message": "Tipus" }, "openIdConnectConfig": { "message": "OpenID Connect Configuration" @@ -4393,10 +4396,10 @@ "message": "Signed Out Callback Path" }, "authority": { - "message": "Authority" + "message": "Autoritat" }, "clientId": { - "message": "Client ID" + "message": "ID de Client" }, "clientSecret": { "message": "Client Secret" @@ -4594,10 +4597,10 @@ "message": "Sponsorship Created" }, "revoke": { - "message": "Revoke" + "message": "Revoca" }, "emailSent": { - "message": "Email Sent" + "message": "Correu electrònic enviat" }, "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?" @@ -4615,25 +4618,25 @@ "message": "Send a verification code to your email" }, "sendCode": { - "message": "Send Code" + "message": "Envia codi" }, "codeSent": { - "message": "Code Sent" + "message": "Codi enviat" }, "verificationCode": { - "message": "Verification Code" + "message": "Codi de verificació" }, "confirmIdentity": { - "message": "Confirm your identity to continue." + "message": "Confirmeu la vostra identitat per continuar." }, "verificationCodeRequired": { - "message": "Verification code is required." + "message": "El codi de verificació és obligatori." }, "invalidVerificationCode": { - "message": "Invalid verification code" + "message": "Codi de verificació no vàlid" }, "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.", + "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", @@ -4642,30 +4645,30 @@ } }, "leaveOrganization": { - "message": "Leave Organization" + "message": "Abandona l'organització" }, "removeMasterPassword": { - "message": "Remove Master Password" + "message": "Suprimiu la contrasenya mestra" }, "removedMasterPassword": { - "message": "Master password removed." + "message": "S'ha suprimit la contrasenya mestra." }, "allowSso": { - "message": "Allow SSO authentication" + "message": "Permetre l'autenticació SSO" }, "allowSsoDesc": { - "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + "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": "Enable the", + "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": "SSO Authentication policy", + "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": "to require all members to log in with SSO.", + "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": { @@ -4687,10 +4690,10 @@ "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." }, "enabledSso": { - "message": "Enabled SSO" + "message": "SSO habilitat" }, "disabledSso": { - "message": "Disabled SSO" + "message": "SSO deshabilitat" }, "enabledKeyConnector": { "message": "Enabled Key Connector" @@ -4720,7 +4723,7 @@ "message": "Sponsoring Organization" }, "keyConnectorTest": { - "message": "Test" + "message": "Prova" }, "keyConnectorTestSuccess": { "message": "Success! Key Connector reached." diff --git a/src/locales/cs/messages.json b/src/locales/cs/messages.json index c4496c9c..a0680295 100644 --- a/src/locales/cs/messages.json +++ b/src/locales/cs/messages.json @@ -3444,6 +3444,9 @@ "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" }, diff --git a/src/locales/da/messages.json b/src/locales/da/messages.json index a93c14f5..f9934616 100644 --- a/src/locales/da/messages.json +++ b/src/locales/da/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Fjern SSO tilknytning" }, + "unlinkSsoConfirmation": { + "message": "Er du sikker på, at du vil fjerne SSO-tilknytningen for denne organisation?" + }, "linkSso": { "message": "Tilknyt SSO" }, diff --git a/src/locales/de/messages.json b/src/locales/de/messages.json index 0d1eaf37..61f08310 100644 --- a/src/locales/de/messages.json +++ b/src/locales/de/messages.json @@ -3444,6 +3444,9 @@ "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" }, diff --git a/src/locales/el/messages.json b/src/locales/el/messages.json index 8d8dc621..da24dac1 100644 --- a/src/locales/el/messages.json +++ b/src/locales/el/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Αποσύνδεση SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Σύνδεσμος SSO" }, diff --git a/src/locales/en/messages.json b/src/locales/en/messages.json index 74d61382..fe9b64a6 100644 --- a/src/locales/en/messages.json +++ b/src/locales/en/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/en_GB/messages.json b/src/locales/en_GB/messages.json index 23c591cd..c6664d38 100644 --- a/src/locales/en_GB/messages.json +++ b/src/locales/en_GB/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/en_IN/messages.json b/src/locales/en_IN/messages.json index 771c908e..cfd26ca1 100644 --- a/src/locales/en_IN/messages.json +++ b/src/locales/en_IN/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/eo/messages.json b/src/locales/eo/messages.json index 80d53b4a..778ffb50 100644 --- a/src/locales/eo/messages.json +++ b/src/locales/eo/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Malkonekti SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Ligi SSO" }, diff --git a/src/locales/es/messages.json b/src/locales/es/messages.json index c319a900..e70c72b0 100644 --- a/src/locales/es/messages.json +++ b/src/locales/es/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Desenlazar SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Enlazar SSO" }, diff --git a/src/locales/et/messages.json b/src/locales/et/messages.json index 5e9c7698..019605ea 100644 --- a/src/locales/et/messages.json +++ b/src/locales/et/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Ühenda SSO lahti" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Ühenda SSO" }, diff --git a/src/locales/fi/messages.json b/src/locales/fi/messages.json index 46a49c76..2187b60d 100644 --- a/src/locales/fi/messages.json +++ b/src/locales/fi/messages.json @@ -2585,7 +2585,7 @@ } }, "unlinkedSsoUser": { - "message": "Yrityksen kertakirjautuminen (SSO) poistettu käyttäjältä $ID$.", + "message": "Kertakirjautumisen (SSO) liitos poistettiin käyttäjältä $ID$.", "placeholders": { "id": { "content": "$1", @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Poista kertakirjautumisen (SSO) liitos" }, + "unlinkSsoConfirmation": { + "message": "Haluatko varmasti poistaa organisaation kertakirjautumisen (SSO) liitoksen?" + }, "linkSso": { "message": "Liitä kertakirjautumiseen (SSO)" }, @@ -4510,7 +4513,7 @@ "message": "Linkki ei ole enää voimassa. Pyydä sponsoria lähettämään tarjous uudelleen." }, "reclaimedFreePlan": { - "message": "Lunastettu Ilmaistilaus" + "message": "Lunastettu ilmaistilaus" }, "redeem": { "message": "Lunasta" diff --git a/src/locales/fil/messages.json b/src/locales/fil/messages.json index 93421fa7..b048b121 100644 --- a/src/locales/fil/messages.json +++ b/src/locales/fil/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/fr/messages.json b/src/locales/fr/messages.json index 5ac4da0b..81426363 100644 --- a/src/locales/fr/messages.json +++ b/src/locales/fr/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Délier SSO" }, + "unlinkSsoConfirmation": { + "message": "Êtes-vous sûr de vouloir supprimer le lien SSO pour cette organisation?" + }, "linkSso": { "message": "Lier SSO" }, diff --git a/src/locales/he/messages.json b/src/locales/he/messages.json index 6765456a..38744a34 100644 --- a/src/locales/he/messages.json +++ b/src/locales/he/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "נתק SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "חבר SSO" }, diff --git a/src/locales/hi/messages.json b/src/locales/hi/messages.json index 35304d51..00070d27 100644 --- a/src/locales/hi/messages.json +++ b/src/locales/hi/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/hr/messages.json b/src/locales/hr/messages.json index a9ac1bf4..ed2397b1 100644 --- a/src/locales/hr/messages.json +++ b/src/locales/hr/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Odspoji SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Spoji SSO" }, diff --git a/src/locales/hu/messages.json b/src/locales/hu/messages.json index e6a3f5d5..56fe4b52 100644 --- a/src/locales/hu/messages.json +++ b/src/locales/hu/messages.json @@ -3444,6 +3444,9 @@ "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" }, diff --git a/src/locales/id/messages.json b/src/locales/id/messages.json index 89278b84..5dfb7299 100644 --- a/src/locales/id/messages.json +++ b/src/locales/id/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Batalkan tautan SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Tautkan SSO" }, diff --git a/src/locales/it/messages.json b/src/locales/it/messages.json index 676e04e9..86ed9886 100644 --- a/src/locales/it/messages.json +++ b/src/locales/it/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Scollega SSO" }, + "unlinkSsoConfirmation": { + "message": "Sei sicuro di voler scollegare SSO per questa organizzazione?" + }, "linkSso": { "message": "Collega SSO" }, diff --git a/src/locales/ja/messages.json b/src/locales/ja/messages.json index 44b77fff..1babc08e 100644 --- a/src/locales/ja/messages.json +++ b/src/locales/ja/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "SSO のリンクを解除" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "SSO をリンク" }, diff --git a/src/locales/ka/messages.json b/src/locales/ka/messages.json index edb44cf2..d9a4636f 100644 --- a/src/locales/ka/messages.json +++ b/src/locales/ka/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/kn/messages.json b/src/locales/kn/messages.json index c9a0fc3f..9f583934 100644 --- a/src/locales/kn/messages.json +++ b/src/locales/kn/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "ಎಸ್‌ಎಸ್‌ಒ ಅನ್ಲಿಂಕ್ ಮಾಡಿ" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "ಎಸ್‌ಎಸ್‌ಒ ಲಿಂಕ್ ಮಾಡಿ" }, diff --git a/src/locales/ko/messages.json b/src/locales/ko/messages.json index 97513273..fc41ba75 100644 --- a/src/locales/ko/messages.json +++ b/src/locales/ko/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "SSO 연결 해제" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "SSO 연결" }, diff --git a/src/locales/lv/messages.json b/src/locales/lv/messages.json index e12f981e..9209b086 100644 --- a/src/locales/lv/messages.json +++ b/src/locales/lv/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Atsaistīt SSO" }, + "unlinkSsoConfirmation": { + "message": "Vai tiešām atsaistīt vienoto pieteikšanos šai apvienībai?" + }, "linkSso": { "message": "Piesaistīt SSO" }, diff --git a/src/locales/ml/messages.json b/src/locales/ml/messages.json index d986ec95..32ee5060 100644 --- a/src/locales/ml/messages.json +++ b/src/locales/ml/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "SSO ബന്ധിപ്പിക്കുക" }, diff --git a/src/locales/nb/messages.json b/src/locales/nb/messages.json index c6abbdec..cb5762b3 100644 --- a/src/locales/nb/messages.json +++ b/src/locales/nb/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/nl/messages.json b/src/locales/nl/messages.json index b3732143..5801e6a4 100644 --- a/src/locales/nl/messages.json +++ b/src/locales/nl/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "SSO ontkoppelen" }, + "unlinkSsoConfirmation": { + "message": "Weet je zeker dat je SSO voor deze organisatie wilt ontkoppelen?" + }, "linkSso": { "message": "SSO koppelen" }, diff --git a/src/locales/nn/messages.json b/src/locales/nn/messages.json index 6677a89f..9812e90d 100644 --- a/src/locales/nn/messages.json +++ b/src/locales/nn/messages.json @@ -13,7 +13,7 @@ "message": "Kva type oppføring er dette?" }, "name": { - "message": "Name" + "message": "Namn" }, "uri": { "message": "URI" @@ -32,79 +32,79 @@ "message": "New URI" }, "username": { - "message": "Username" + "message": "Brukarnamn" }, "password": { - "message": "Password" + "message": "Passord" }, "newPassword": { - "message": "New Password" + "message": "Nytt passord" }, "passphrase": { - "message": "Passphrase" + "message": "Passordfrase" }, "notes": { - "message": "Notes" + "message": "Notat" }, "customFields": { - "message": "Custom Fields" + "message": "Eigendefinert felt" }, "cardholderName": { - "message": "Cardholder Name" + "message": "Namn til korteigar" }, "number": { - "message": "Number" + "message": "Nummer" }, "brand": { - "message": "Brand" + "message": "Type" }, "expiration": { - "message": "Expiration" + "message": "Utløp" }, "securityCode": { - "message": "Security Code (CVV)" + "message": "Verifiseringskode (CVC)" }, "identityName": { - "message": "Identity Name" + "message": "Intentitetsnamn" }, "company": { - "message": "Company" + "message": "Firmanamn" }, "ssn": { - "message": "Social Security Number" + "message": "Personnummer" }, "passportNumber": { - "message": "Passport Number" + "message": "Passnummer" }, "licenseNumber": { - "message": "License Number" + "message": "Førarkortnummer" }, "email": { - "message": "Email" + "message": "E-post" }, "phone": { - "message": "Phone" + "message": "Telefon" }, "january": { - "message": "January" + "message": "Januar" }, "february": { - "message": "February" + "message": "Februar" }, "march": { - "message": "March" + "message": "Mars" }, "april": { "message": "April" }, "may": { - "message": "May" + "message": "Mai" }, "june": { - "message": "June" + "message": "Juni" }, "july": { - "message": "July" + "message": "Juli" }, "august": { "message": "August" @@ -113,58 +113,58 @@ "message": "September" }, "october": { - "message": "October" + "message": "Oktober" }, "november": { "message": "November" }, "december": { - "message": "December" + "message": "Desember" }, "title": { - "message": "Title" + "message": "Tittel" }, "mr": { - "message": "Mr" + "message": "Herr" }, "mrs": { - "message": "Mrs" + "message": "Fru" }, "ms": { - "message": "Ms" + "message": "Frøken" }, "dr": { - "message": "Dr" + "message": "Dr․" }, "expirationMonth": { - "message": "Expiration Month" + "message": "Utløpsmånad" }, "expirationYear": { - "message": "Expiration Year" + "message": "Utløpår" }, "authenticatorKeyTotp": { - "message": "Authenticator Key (TOTP)" + "message": "Autentiseringsnøkkel (TOTP)" }, "folder": { - "message": "Folder" + "message": "Mappe" }, "newCustomField": { - "message": "New Custom Field" + "message": "Nytt eigendefinert felt" }, "value": { - "message": "Value" + "message": "Verdi" }, "dragToSort": { - "message": "Drag to sort" + "message": "Dra for å sortera" }, "cfTypeText": { - "message": "Text" + "message": "Tekst" }, "cfTypeHidden": { - "message": "Hidden" + "message": "Skjult" }, "cfTypeBoolean": { - "message": "Boolean" + "message": "Boolsk" }, "cfTypeLinked": { "message": "Linked", @@ -322,28 +322,28 @@ "message": "Address 1" }, "address2": { - "message": "Address 2" + "message": "Adresse 2" }, "address3": { - "message": "Address 3" + "message": "Adresse 3" }, "cityTown": { - "message": "City / Town" + "message": "By/tettstad" }, "stateProvince": { - "message": "State / Province" + "message": "Fylke/område" }, "zipPostalCode": { - "message": "Zip / Postal Code" + "message": "Postnummer" }, "country": { - "message": "Country" + "message": "Land" }, "shared": { - "message": "Shared" + "message": "Delt" }, "attachments": { - "message": "Attachments" + "message": "Vedlegg" }, "select": { "message": "Marker" @@ -358,20 +358,20 @@ "message": "Sjå oppføring" }, "ex": { - "message": "ex.", + "message": "t.d.", "description": "Short abbreviation for 'example'." }, "other": { - "message": "Other" + "message": "Anna" }, "share": { - "message": "Share" + "message": "Delt" }, "moveToOrganization": { "message": "Move to Organization" }, "valueCopied": { - "message": "$VALUE$ copied", + "message": "$VALUE$ er kopiert", "description": "Value has been copied to the clipboard.", "placeholders": { "value": { @@ -381,15 +381,15 @@ } }, "copyValue": { - "message": "Copy Value", + "message": "Kopier verdi", "description": "Copy value to clipboard" }, "copyPassword": { - "message": "Copy Password", + "message": "Kopier passordet", "description": "Copy password to clipboard" }, "copyUsername": { - "message": "Copy Username", + "message": "Kopier brukarnamnet", "description": "Copy username to clipboard" }, "copyNumber": { @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/pl/messages.json b/src/locales/pl/messages.json index a8f5f528..a7f57837 100644 --- a/src/locales/pl/messages.json +++ b/src/locales/pl/messages.json @@ -3444,6 +3444,9 @@ "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" }, @@ -4489,16 +4492,16 @@ "message": "Konfiguracja logowania jednokrotnego została zapisana." }, "sponsoredFamilies": { - "message": "Darmowe rodziny Bitwarden" + "message": "Darmowe Bitwarden Families" }, "sponsoredFamiliesEligible": { - "message": "Ty i Twoja rodzina kwalifikujecie się do bezpłatnych rodzin Bitwarden. Otrzymaj dostęp wykorzystując swój osobisty e-mail, aby zabezpieczyć swoje dane nawet wtedy, gdy nie jesteś w pracy." + "message": "Ty i Twoja rodzina kwalifikujecie się do bezpłatnych Bitwarden Families. Otrzymaj dostęp wykorzystując swój osobisty e-mail, aby zabezpieczyć swoje dane nawet wtedy, gdy nie jesteś w pracy." }, "sponsoredFamiliesEligibleCard": { - "message": "Zrealizuj swój darmowy Bitwarden dla Rodzin, aby zapewnić bezpieczeństwo swoich danych nawet wtedy, gdy nie jesteś w pracy." + "message": "Zrealizuj swój darmowy Bitwarden Families, aby zapewnić bezpieczeństwo swoich danych nawet wtedy, gdy nie jesteś w pracy." }, "sponsoredFamiliesInclude": { - "message": "Plan Rodziny Bitwarden zawiera" + "message": "Plan Bitwarden Families zawiera" }, "sponsoredFamiliesPremiumAccess": { "message": "Dostęp premium dla maksymalnie 6 użytkowników" @@ -4522,22 +4525,22 @@ "message": "Którą z darmowych ofert rodzinnych chciałbyś użyć?" }, "sponsoredFamiliesEmail": { - "message": "Enter your personal email to redeem Bitwarden Families" + "message": "Wprowadź swój osobisty e-mail, aby zrealizować 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." + "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": "Accept offer for an existing organization or create a new Families organization." + "message": "Zaakceptuj ofertę dla istniejącej organizacji lub utwórz nową organizację." }, "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." + "message": "Otrzymałeś(-aś) darmowy plan Bitwarden Families. Aby kontynuować, musisz zalogować się na konto, które otrzymało ofertę." }, "sponsoredFamiliesAcceptFailed": { - "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + "message": "Nie można zaakceptować oferty. Proszę ponownie wysłać e-mail z konta firmy i spróbować ponownie." }, "sponsoredFamiliesAcceptFailedShort": { - "message": "Unable to accept offer. $DESCRIPTION$", + "message": "Nie można zaakceptować oferty. $DESCRIPTION$", "placeholders": { "description": { "content": "$1", @@ -4546,10 +4549,10 @@ } }, "sponsoredFamiliesOffer": { - "message": "Accept Free Bitwarden Families" + "message": "Akceptuj darmowe Bitwarden Families" }, "sponsoredFamiliesOfferRedeemed": { - "message": "Free Bitwarden Families offer successfully redeemed" + "message": "Darmowa oferta Bitwarden Families pomyślnie zrealizowana" }, "redeemed": { "message": "Wykupione" @@ -4558,7 +4561,7 @@ "message": "Konto wykupione" }, "revokeAccount": { - "message": "Revoke account $NAME$", + "message": "Unieważnij konto $NAME$", "placeholders": { "name": { "content": "$1", @@ -4567,7 +4570,7 @@ } }, "resendEmailLabel": { - "message": "Resend Sponsorship email to $NAME$ sponsorship", + "message": "Wyślij ponownie wiadomość e-mail o sponsoringu do $NAME$", "placeholders": { "name": { "content": "$1", @@ -4579,31 +4582,31 @@ "message": "Darmowy plan rodzin" }, "redeemNow": { - "message": "Redeem Now" + "message": "Zrealizuj teraz" }, "recipient": { - "message": "Recipient" + "message": "Odbiorca" }, "removeSponsorship": { - "message": "Remove Sponsorship" + "message": "Usuń sponsoring" }, "removeSponsorshipConfirmation": { - "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + "message": "Po usunięciu sponsorowania, będziesz odpowiedzialny za tę subskrypcję i powiązane faktury. Czy na pewno chcesz kontynuować?" }, "sponsorshipCreated": { - "message": "Sponsorship Created" + "message": "Utworzono sponsorowanie" }, "revoke": { - "message": "Revoke" + "message": "Odwołaj" }, "emailSent": { "message": "Wiadomość została wysłana" }, "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?" + "message": "Po usunięciu sponsorowania, będziesz odpowiedzialny za tę subskrypcję i powiązane faktury. Czy na pewno chcesz kontynuować?" }, "removeSponsorshipSuccess": { - "message": "Sponsorship Removed" + "message": "Sponsoring usunięty" }, "ssoKeyConnectorUnavailable": { "message": "Nie można nawiązać połączenia z serwerem Key Connector. Spróbuj ponownie później." @@ -4669,7 +4672,7 @@ "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." + "message": "Zasady uwierzytelniania SSO i pojedynczej organizacji są wymagane do konfiguracji odszyfrowywania Key Connector." }, "memberDecryptionOption": { "message": "Opcje odszyfrowania użytkownika" @@ -4705,10 +4708,10 @@ "message": "Przeniesiony do serwera Key Connector" }, "paymentSponsored": { - "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + "message": "Proszę podać metodę płatności, aby powiązać ją z organizacją. Nie martw się, nie będziemy Cię obciążać, dopóki nie wybierzesz dodatkowych funkcji lub nie skończy się sponsorowanie. " }, "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." + "message": "Oferta sponsorowana wygasła. Możesz usunąć organizację, którą utworzyłeś, aby uniknąć opłat pod koniec 7-dniowego okresu próbnego. W przeciwnym razie możesz zamknąć tę wiadomość, aby zatrzymać organizację i przyjąć na siebie odpowiedzialność rozliczeniową." }, "newFamiliesOrganization": { "message": "Nowa organizacja rodzin" diff --git a/src/locales/pt_BR/messages.json b/src/locales/pt_BR/messages.json index 4d0d3488..4627e543 100644 --- a/src/locales/pt_BR/messages.json +++ b/src/locales/pt_BR/messages.json @@ -1991,7 +1991,7 @@ } }, "planNameFamilies": { - "message": "Famílias" + "message": "Families" }, "planDescFamilies": { "message": "Para uso pessoal, para compartilhar com a família & amigos." @@ -2808,7 +2808,7 @@ "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "changeBillingPlan": { - "message": "Alterar Plano", + "message": "Atualizar Plano", "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "changeBillingPlanUpgrade": { @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Desvincular SSO" }, + "unlinkSsoConfirmation": { + "message": "Você tem certeza que deseja desvincular o SSO para esta organização?" + }, "linkSso": { "message": "Vincular SSO" }, @@ -4525,7 +4528,7 @@ "message": "Digite seu e-mail pessoal para resgatar o Bitwarden Families" }, "sponsoredFamiliesLeaveCopy": { - "message": "Se você sair ou for removido desta organização, seu plano de Familiares irá expirar no final do período de cobrança." + "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." diff --git a/src/locales/pt_PT/messages.json b/src/locales/pt_PT/messages.json index 99fa3a91..7430c42a 100644 --- a/src/locales/pt_PT/messages.json +++ b/src/locales/pt_PT/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Desligar SSO" }, + "unlinkSsoConfirmation": { + "message": "Tem a certeza de que deseja desagregar o SSO desta organização?" + }, "linkSso": { "message": "Ligar SSO" }, diff --git a/src/locales/ro/messages.json b/src/locales/ro/messages.json index 56564fdb..c2c74454 100644 --- a/src/locales/ro/messages.json +++ b/src/locales/ro/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Deconectare SSO" }, + "unlinkSsoConfirmation": { + "message": "Sigur doriți să deconectați SSO pentru această organizație?" + }, "linkSso": { "message": "Conectare SSO" }, diff --git a/src/locales/ru/messages.json b/src/locales/ru/messages.json index a1b9fa2a..c0239555 100644 --- a/src/locales/ru/messages.json +++ b/src/locales/ru/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Отключить SSO" }, + "unlinkSsoConfirmation": { + "message": "Вы действительно хотите отключить SSO для этой организации?" + }, "linkSso": { "message": "Подключить SSO" }, @@ -4489,52 +4492,52 @@ "message": "Конфигурация единого входа сохранена." }, "sponsoredFamilies": { - "message": "Бесплатные семьи Bitwarden" + "message": "Бесплатный план Bitwarden Families" }, "sponsoredFamiliesEligible": { - "message": "Вы и ваша семья имеют право на бесплатные семьи Bitwarden. Используйте свой личный адрес электронной почты, чтобы защитить данные даже тогда, когда вы не на работе." + "message": "Вам и вашей семье доступен бесплатный план Bitwarden Families. Используйте свой личный адрес электронной почты, чтобы защитить данные даже тогда, когда вы не на работе." }, "sponsoredFamiliesEligibleCard": { - "message": "Воспользуйтесь бесплатным планом Bit warden для семей сегодня, чтобы обеспечить безопасность ваших данных, даже когда вы не на работе." + "message": "Воспользуйтесь бесплатным планом Bitwarden Families сегодня, чтобы обеспечить безопасность ваших данных, даже когда вы не на работе." }, "sponsoredFamiliesInclude": { - "message": "План Bitwarden для Семей включает" + "message": "План Bitwarden Families включает" }, "sponsoredFamiliesPremiumAccess": { "message": "Премиум-доступ для 6 пользователей" }, "sponsoredFamiliesSharedCollections": { - "message": "Общие коллекции для Семейных секретов" + "message": "Общие коллекции для семейных секретов" }, "badToken": { "message": "Ссылка больше не действительна. Пожалуйста, попросите спонсора повторно отправить предложение." }, "reclaimedFreePlan": { - "message": "Reclaimed free plan" + "message": "Бесплатный план восстановлен" }, "redeem": { - "message": "Redeem" + "message": "Активировать" }, "sponsoredFamiliesSelectOffer": { "message": "Выберите организацию, которую вы хотите спонсировать" }, "familiesSponsoringOrgSelect": { - "message": "Какое бесплатное Семейное предложение вы хотели бы использовать?" + "message": "Какое бесплатное предложение Bitwarden Families вы хотели бы использовать?" }, "sponsoredFamiliesEmail": { - "message": "Введите свой личный адрес электронной почты, чтобы активировать Семейный Bitwarden" + "message": "Введите свой личный адрес электронной почты, чтобы активировать Bitwarden Families" }, "sponsoredFamiliesLeaveCopy": { - "message": "Если вы покинете или откажетесь от организации со спонсорским предложением, срок действия вашего семейного плана истечет в конце расчетного периода." + "message": "Если вы покинете или будете исключены из спонсорской организации, срок действия вашего плана Bitwarden Families истечет в конце расчетного периода." }, "acceptBitwardenFamiliesHelp": { - "message": "Примите предложение существующей организации или создайте новую Семейную организацию." + "message": "Примите предложение существующей организации или создайте новую организацию Bitwarden Families." }, "setupSponsoredFamiliesLoginDesc": { - "message": "Вам предложили бесплатный Семейный план Bitwarden. Чтобы продолжить, вам необходимо войти в учетную запись, в которую поступило предложение." + "message": "Вам предложили бесплатный план Bitwarden Families. Чтобы продолжить, необходимо войти в учетную запись, которая получила предложение." }, "sponsoredFamiliesAcceptFailed": { - "message": "Не удается принять предложение. Отправьте письмо с предложением еще раз из своей корпоративной учетной записи и повторите попытку." + "message": "Не удается принять предложение. Пожалуйста, повторно отправьте письмо с предложением с вашего корпоративного аккаунта и повторите попытку." }, "sponsoredFamiliesAcceptFailedShort": { "message": "Невозможно принять предложение. $DESCRIPTION$", @@ -4546,19 +4549,19 @@ } }, "sponsoredFamiliesOffer": { - "message": "Принять бесплатный Семейный план Bitwarden" + "message": "Принять бесплатный план Bitwarden Families" }, "sponsoredFamiliesOfferRedeemed": { - "message": "Бесплатное Семейное предложение Bitwarden успешно активировано" + "message": "Бесплатный план Bitwarden Families успешно активирован" }, "redeemed": { - "message": "Redeemed" + "message": "Активирован" }, "redeemedAccount": { "message": "Активированный аккаунт" }, "revokeAccount": { - "message": "Отозвать активацию аккаунта $NAME$", + "message": "Отозвать аккаунт $NAME$", "placeholders": { "name": { "content": "$1", @@ -4567,7 +4570,7 @@ } }, "resendEmailLabel": { - "message": "Resend Sponsorship email to $NAME$ sponsorship", + "message": "Повторно отправить письмо о спонсировании $NAME$", "placeholders": { "name": { "content": "$1", @@ -4576,22 +4579,22 @@ } }, "freeFamiliesPlan": { - "message": "Бесплатный Семейный план" + "message": "Бесплатный план Bitwarden Families" }, "redeemNow": { - "message": "Redeem Now" + "message": "Активировать сейчас" }, "recipient": { "message": "Получатель" }, "removeSponsorship": { - "message": "Remove Sponsorship" + "message": "Удалить спонсирование" }, "removeSponsorshipConfirmation": { "message": "После удаления спонсорства вы будете нести ответственность за эту подписку и связанные с ней счета. Вы уверены что хотите продолжить?" }, "sponsorshipCreated": { - "message": "Sponsorship Created" + "message": "Спонсирование создано" }, "revoke": { "message": "Отозвать" @@ -4600,7 +4603,7 @@ "message": "Письмо отправлено" }, "revokeSponsorshipConfirmation": { - "message": "После удаления этой учетной записи владелец организации Семейства будет нести ответственность за эту подписку и связанные счета. Вы уверены что хотите продолжить?" + "message": "После удаления этой учетной записи владелец организации Bitwarden Families будет нести ответственность за эту подписку и связанные счета. Вы уверены, что хотите продолжить?" }, "removeSponsorshipSuccess": { "message": "Спонсорство удалено" @@ -4711,7 +4714,7 @@ "message": "Срок действия спонсорского предложения истек. Вы можете удалить созданную вами организацию, чтобы избежать списания средств по истечении 7-дневного пробного периода. В противном случае вы можете закрыть эту подсказку, чтобы сохранить организацию и принять на себя платежные обязательства." }, "newFamiliesOrganization": { - "message": "Новая Семейная организация" + "message": "Новая организация Bitwarden Families" }, "acceptOffer": { "message": "Принять предложение" diff --git a/src/locales/si/messages.json b/src/locales/si/messages.json index 4ba36841..3471e5a9 100644 --- a/src/locales/si/messages.json +++ b/src/locales/si/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/sk/messages.json b/src/locales/sk/messages.json index af401ff0..9e23c5c4 100644 --- a/src/locales/sk/messages.json +++ b/src/locales/sk/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Odpojiť SSO" }, + "unlinkSsoConfirmation": { + "message": "Ste si istý, že chcete odpojiť SSO pre túto organizáciu?" + }, "linkSso": { "message": "Prepojiť SSO" }, diff --git a/src/locales/sl/messages.json b/src/locales/sl/messages.json index 23162632..a6391890 100644 --- a/src/locales/sl/messages.json +++ b/src/locales/sl/messages.json @@ -167,7 +167,7 @@ "message": "Logična vrednost" }, "cfTypeLinked": { - "message": "Linked", + "message": "Povezano", "description": "This describes a field that is 'linked' (related) to another field." }, "remove": { @@ -187,7 +187,7 @@ "message": "Uredi mapo" }, "baseDomain": { - "message": "Base domain" + "message": "Domena" }, "host": { "message": "Gostitelj", @@ -316,7 +316,7 @@ "message": "Priimek" }, "fullName": { - "message": "Full Name" + "message": "Polno ime" }, "address1": { "message": "Naslov 1" @@ -355,7 +355,7 @@ "message": "Uredi vnos" }, "viewItem": { - "message": "View Item" + "message": "Ogled vnosa" }, "ex": { "message": "npr.", @@ -368,7 +368,7 @@ "message": "Deli" }, "moveToOrganization": { - "message": "Move to Organization" + "message": "Premakni v organizacijo" }, "valueCopied": { "message": "$VALUE$ kopirana", @@ -411,7 +411,7 @@ "message": "Sef" }, "moveSelectedToOrg": { - "message": "Move Selected to Organization" + "message": "Premakni označeno v organizacijo" }, "deleteSelected": { "message": "Izbriši izbrano" @@ -450,7 +450,7 @@ "message": "Največja velikost datoteke je 500 MB." }, "updateKey": { - "message": "You cannot use this feature until you update your encryption key." + "message": "Te funkcije ne morete koristiti, dokler dokler ne posodobite vašega ključa za šifriranje." }, "addedItem": { "message": "Dodaj vnos" @@ -459,7 +459,7 @@ "message": "Uredi vnos" }, "movedItemToOrg": { - "message": "$ITEMNAME$ moved to $ORGNAME$", + "message": "$ITEMNAME$ premaknjen v $ORGNAME$", "placeholders": { "itemname": { "content": "$1", @@ -472,7 +472,7 @@ } }, "movedItemsToOrg": { - "message": "Selected items moved to $ORGNAME$", + "message": "Označeni vnosi premaknjeni v $ORGNAME$", "placeholders": { "orgname": { "content": "$1", @@ -490,7 +490,7 @@ "message": "Izbriši priponoko" }, "deleteItemConfirmation": { - "message": "Do you really want to send to the trash?" + "message": "Ali ste prepričani, da želite izbrisati?" }, "deletedItem": { "message": "Vnos poslan v smeti" @@ -505,124 +505,124 @@ "message": "Ste prepričani, da želite povoziti obstoječe geslo?" }, "editedFolder": { - "message": "Edited folder" + "message": "Mapa je bila urejena" }, "addedFolder": { - "message": "Added folder" + "message": "Mapa je bila dodana" }, "deleteFolderConfirmation": { - "message": "Are you sure you want to delete this folder?" + "message": "Ste prepričani, da želite izbrisati to mapo?" }, "deletedFolder": { - "message": "Deleted folder" + "message": "Mapa je bila izbrisana" }, "loggedOut": { - "message": "Logged out" + "message": "Odjavljen" }, "loginExpired": { - "message": "Your login session has expired." + "message": "Vaša seja je potekla." }, "logOutConfirmation": { - "message": "Are you sure you want to log out?" + "message": "Ste prepričani, da se želite odjaviti?" }, "logOut": { - "message": "Log Out" + "message": "Odjavi se" }, "ok": { - "message": "Ok" + "message": "V redu" }, "yes": { - "message": "Yes" + "message": "Da" }, "no": { - "message": "No" + "message": "Ne" }, "loginOrCreateNewAccount": { - "message": "Log in or create a new account to access your secure vault." + "message": "Prijavite se ali ustvarite nov račun za dostop do vašega varnega trezorja." }, "createAccount": { - "message": "Create Account" + "message": "Ustvari račun" }, "logIn": { - "message": "Log In" + "message": "Prijava" }, "submit": { - "message": "Submit" + "message": "Potrdi" }, "emailAddressDesc": { - "message": "You'll use your email address to log in." + "message": "Za prijavo boste uporabili vaš e-poštni naslov." }, "yourName": { - "message": "Your Name" + "message": "Vaše ime" }, "yourNameDesc": { - "message": "What should we call you?" + "message": "Kako vas naj kličemo?" }, "masterPass": { - "message": "Master Password" + "message": "Glavno geslo" }, "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." + "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": "A master password hint can help you remember your password if you forget it." + "message": "Namig glavnega gesla vam lahko pomaga, da se spomnite vašega gesla, če ga pozabite." }, "reTypeMasterPass": { - "message": "Re-type Master Password" + "message": "Ponovno vnesite glavno geslo" }, "masterPassHint": { - "message": "Master Password Hint (optional)" + "message": "Namig za glavno geslo (neobvezno)" }, "masterPassHintLabel": { - "message": "Master Password Hint" + "message": "Namig za glavno geslo" }, "settings": { - "message": "Settings" + "message": "Nastavitve" }, "passwordHint": { - "message": "Password Hint" + "message": "Namig za geslo" }, "enterEmailToGetHint": { - "message": "Enter your account email address to receive your master password hint." + "message": "Vnesite e-poštni naslov vašega računa, da prejmete namig za vaše glavno geslo." }, "getMasterPasswordHint": { - "message": "Get master password hint" + "message": "Pridobi namig za glavno geslo" }, "emailRequired": { - "message": "Email address is required." + "message": "E-poštni naslov je obvezen." }, "invalidEmail": { - "message": "Invalid email address." + "message": "Neveljaven e-poštni naslov." }, "masterPassRequired": { - "message": "Master password is required." + "message": "Glavno geslo je obvezno." }, "masterPassLength": { - "message": "Master password must be at least 8 characters long." + "message": "Glavno geslo mora biti dolgo najmanj 8 znakov." }, "masterPassDoesntMatch": { - "message": "Master password confirmation does not match." + "message": "Potrditev glavnega gesla se ne ujema." }, "newAccountCreated": { - "message": "Your new account has been created! You may now log in." + "message": "Vaš nov račun je bil ustvarjen! Sedaj se lahko prijavite." }, "masterPassSent": { - "message": "We've sent you an email with your master password hint." + "message": "Poslali smo vam epoštno spročilo z namigom za vaše glavno geslo." }, "unexpectedError": { - "message": "An unexpected error has occurred." + "message": "Prišlo je do nepričakovane napake." }, "emailAddress": { - "message": "Email Address" + "message": "E-poštni naslov" }, "yourVaultIsLocked": { - "message": "Your vault is locked. Verify your master password to continue." + "message": "Vaš trezor je zaklenjen. Potrdite vaše glavno geslo za nadaljevanje." }, "unlock": { - "message": "Unlock" + "message": "Odkleni" }, "loggedInAsEmailOn": { - "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "message": "Prijavljeni kot $EMAIL$ na $HOSTNAME$.", "placeholders": { "email": { "content": "$1", @@ -635,22 +635,22 @@ } }, "invalidMasterPassword": { - "message": "Invalid master password" + "message": "Napačno glavno geslo" }, "lockNow": { - "message": "Lock Now" + "message": "Zakleni zdaj" }, "noItemsInList": { - "message": "There are no items to list." + "message": "Ni vnosov za prikaz." }, "noCollectionsInList": { - "message": "There are no collections to list." + "message": "Ni zbirk za prikaz." }, "noGroupsInList": { - "message": "There are no groups to list." + "message": "Ni skupin za prikaz." }, "noUsersInList": { - "message": "There are no users to list." + "message": "Ni uporabnikov za prikaz." }, "noEventsInList": { "message": "Ni dogodkov za prikaz." @@ -776,16 +776,16 @@ "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." + "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": "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." + "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": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "message": "Izbrali ste $COUNT$ vnos(ov) za izbris. Ali ste prepričani, da želite izbrisati vse izbrane vnose?", "placeholders": { "count": { "content": "$1", @@ -820,16 +820,16 @@ } }, "verificationCodeTotp": { - "message": "Verification Code (TOTP)" + "message": "Verifikacijska koda (TOTP)" }, "copyVerificationCode": { - "message": "Copy Verification Code" + "message": "Kopiraj verifikacijsko kodo" }, "warning": { "message": "Opozorilo" }, "confirmVaultExport": { - "message": "Confirm Vault Export" + "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." @@ -841,7 +841,7 @@ "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" + "message": "Izvozi" }, "exportVault": { "message": "Izvozi sef" @@ -866,51 +866,51 @@ "description": "Minimum Special Characters" }, "ambiguous": { - "message": "Avoid Ambiguous Characters" + "message": "Izogibaj se dvoumnim znakom" }, "regeneratePassword": { - "message": "Regenerate Password" + "message": "Regeneriraj geslo" }, "length": { "message": "Dolžina" }, "numWords": { - "message": "Number of Words" + "message": "Število besed" }, "wordSeparator": { - "message": "Word Separator" + "message": "Ločilo besed" }, "capitalize": { - "message": "Capitalize", + "message": "Zapiši z veliko začetnico", "description": "Make the first letter of a work uppercase." }, "includeNumber": { - "message": "Include Number" + "message": "Vključi številko" }, "passwordHistory": { - "message": "Password History" + "message": "Zgodovina gesla" }, "noPasswordsInList": { - "message": "There are no passwords to list." + "message": "Ni gesel za prikaz." }, "clear": { - "message": "Clear", + "message": "Počisti", "description": "To clear something out. example: To clear browser history." }, "accountUpdated": { - "message": "Account Updated" + "message": "Račun posodobljen" }, "changeEmail": { - "message": "Change Email" + "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": "New Email" + "message": "Novi e-poštni naslov" }, "code": { - "message": "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.", @@ -925,37 +925,37 @@ "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" + "message": "E-poštni naslov spremenjen" }, "logBackIn": { - "message": "Please log back in." + "message": "Prosimo, ponovno se prijavite." }, "logBackInOthersToo": { - "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + "message": "Prosimo, ponovno se prijavite. Če uporabljate druge Bitwarden aplikacije, se odjavite in ponovno prijavite tudi tam." }, "changeMasterPassword": { - "message": "Change Master Password" + "message": "Spremeni glavno geslo" }, "masterPasswordChanged": { - "message": "Master Password Changed" + "message": "Glavno geslo je bilo spremenjeno" }, "currentMasterPass": { - "message": "Current Master Password" + "message": "Aktualno glavno geslo" }, "newMasterPass": { - "message": "New Master Password" + "message": "Nastavite glavno geslo" }, "confirmNewMasterPass": { - "message": "Confirm New Master Password" + "message": "Potrdite novo geslo" }, "encKeySettings": { - "message": "Encryption Key Settings" + "message": "Nastavitve kodirnega ključa" }, "kdfAlgorithm": { - "message": "KDF Algorithm" + "message": "KDF algoritem" }, "kdfIterations": { - "message": "KDF Iterations" + "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.", @@ -976,7 +976,7 @@ } }, "changeKdf": { - "message": "Change KDF" + "message": "Spremeni KDF" }, "encKeySettingsChanged": { "message": "Encryption Key Settings Changed" @@ -1000,10 +1000,10 @@ "message": "All Sessions Deauthorized" }, "purgeVault": { - "message": "Purge Vault" + "message": "Počisti trezor" }, "purgedOrganizationVault": { - "message": "Purged organization vault." + "message": "Trezor organizacije je bil počiščen." }, "vaultAccessedByProvider": { "message": "Vault accessed by provider." @@ -1018,10 +1018,10 @@ "message": "Purging your vault is permanent. It cannot be undone." }, "vaultPurged": { - "message": "Your vault has been purged." + "message": "Vaš trezor je bil počiščen." }, "deleteAccount": { - "message": "Delete Account" + "message": "Izbriši račun" }, "deleteAccountDesc": { "message": "Proceed below to delete your account and all associated data." @@ -1036,16 +1036,16 @@ "message": "Your account has been closed and all associated data has been deleted." }, "myAccount": { - "message": "My Account" + "message": "Moj račun" }, "tools": { - "message": "Tools" + "message": "Orodja" }, "importData": { - "message": "Import Data" + "message": "Uvoz podatkov" }, "importError": { - "message": "Import Error" + "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." @@ -1066,7 +1066,7 @@ "message": "Data is not formatted correctly. Please check your import file and try again." }, "importNothingError": { - "message": "Nothing was imported." + "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." @@ -1100,13 +1100,13 @@ "message": "Options updated" }, "language": { - "message": "Language" + "message": "Jezik" }, "languageDesc": { "message": "Change the language used by the web vault." }, "disableIcons": { - "message": "Disable Website Icons" + "message": "Onemogoči ikone spletnih mest" }, "disableIconsDesc": { "message": "Website Icons provide a recognizable image next to each login item in your vault." @@ -1147,10 +1147,10 @@ "message": "Include" }, "customize": { - "message": "Customize" + "message": "Prilagodi" }, "newCustomDomain": { - "message": "New Custom Domain" + "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." @@ -1165,10 +1165,10 @@ } }, "domainsUpdated": { - "message": "Domains updated" + "message": "Domene posodobljene" }, "twoStepLogin": { - "message": "Two-step Login" + "message": "Prijava v dveh korakih" }, "twoStepLoginDesc": { "message": "Secure your account by requiring an additional step when logging in." @@ -1183,14 +1183,14 @@ "message": "View Recovery Code" }, "providers": { - "message": "Providers", + "message": "Ponudniki", "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." }, "enable": { - "message": "Enable" + "message": "Omogoči" }, "enabled": { - "message": "Enabled" + "message": "Omogočeno" }, "premium": { "message": "Premium", @@ -1212,10 +1212,10 @@ "message": "You already have access to premium features because of an organization you are a member of." }, "manage": { - "message": "Manage" + "message": "Upravljaj" }, "disable": { - "message": "Disable" + "message": "Onemogočeno" }, "twoStepLoginProviderEnabled": { "message": "This two-step login provider is enabled on your account." @@ -1233,13 +1233,13 @@ "message": "Need a two-step authenticator app? Download one of the following" }, "iosDevices": { - "message": "iOS devices" + "message": "iOS naprave" }, "androidDevices": { - "message": "Android devices" + "message": "Android naprave" }, "windowsDevices": { - "message": "Windows devices" + "message": "Windows naprave" }, "twoStepAuthenticatorAppsRecommended": { "message": "These apps are recommended, however, other authenticator apps will also work." @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/sr/messages.json b/src/locales/sr/messages.json index 2f8a6233..941f9c2d 100644 --- a/src/locales/sr/messages.json +++ b/src/locales/sr/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/sv/messages.json b/src/locales/sv/messages.json index fd2719f4..a5964d38 100644 --- a/src/locales/sv/messages.json +++ b/src/locales/sv/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Avlänka SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Länka SSO" }, @@ -4007,7 +4010,7 @@ "message": "WebAuthn stöds inte i denna webbläsare." }, "webAuthnSuccess": { - "message": "WebAuthn har verifierats!
Du kan stänga den här fliken." + "message": "WebAuthn verified successfully! You may close this tab." }, "hintEqualsPassword": { "message": "Din lösenordsledtråd får inte vara samma som ditt lösenord." diff --git a/src/locales/tr/messages.json b/src/locales/tr/messages.json index 6152a725..39f74b52 100644 --- a/src/locales/tr/messages.json +++ b/src/locales/tr/messages.json @@ -143,7 +143,7 @@ "message": "Son Kullanma Yılı" }, "authenticatorKeyTotp": { - "message": "Kimlik Doğrulama Anahtarı (TOTP)" + "message": "Kimlik doğrulama anahtarı (TOTP)" }, "folder": { "message": "Klasör" @@ -401,7 +401,7 @@ "description": "Copy credit card security code (CVV)" }, "copyUri": { - "message": "URL'i kopyala", + "message": "URI'yi kopyala", "description": "Copy URI to clipboard" }, "myVault": { @@ -1752,7 +1752,7 @@ "message": "Kredi kartı" }, "paypalClickSubmit": { - "message": "PayPal hesabınıza giriş yapmak için PayPal butonuna tıklayın, ardından devam etmek için aşağıdaki Gönder butonuna tıklayın." + "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" @@ -1764,7 +1764,7 @@ "message": "İptal bekleniyor" }, "subscriptionPendingCanceled": { - "message": "Abonelik, geçerli fatura dönemi sonunda iptal edilmek için işaretlendi." + "message": "Aboneliğiniz geçerli fatura dönemi sonunda iptal edilmek üzere işaretlendi." }, "reinstateSubscription": { "message": "Aboneliği sürdür" @@ -1982,7 +1982,7 @@ "description": "Free as in 'free beer'." }, "planDescFree": { - "message": "Test amaçlı ya da kişisel kullanıcıların diğer $COUNT$ kullanıcıyla paylaşması için.", + "message": "Test veya kişisel kullanım amacıyla $COUNT$ kullanıcıyla paylaşılması için.", "placeholders": { "count": { "content": "$1", @@ -2249,7 +2249,7 @@ "message": "Onaylandı" }, "clientOwnerEmail": { - "message": "İstemci Sahibi E-postası" + "message": "Müşteri sahibinin e-postası" }, "owner": { "message": "Sahip" @@ -2621,7 +2621,7 @@ } }, "accessedClientVault": { - "message": "$ID$ organizasyonu kasasına erişildi.", + "message": "$ID$ kuruluş kasasına erişildi.", "placeholders": { "id": { "content": "$1", @@ -2690,7 +2690,7 @@ "message": "Kullanıcıları onayla" }, "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." + "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" @@ -2732,7 +2732,7 @@ "message": "Kuruluşa katıl" }, "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." + "message": "Yukarıda listelenen organizasyona katılmaya davet edildiniz. Daveti kabul etmek için oturum açmanız ya da yeni bir Bitwarden hesabı oluşturmanız gerekiyor." }, "inviteAccepted": { "message": "Davet kabul edildi" @@ -2771,7 +2771,7 @@ "message": "Hesabınızı kurtarmak ve silmek için e-posta adresinizi yazın." }, "deleteRecoverEmailSent": { - "message": "If your account exists, we've sent you an email with further instructions." + "message": "Eğer bir hesabınız varsa size daha fazla talimat içeren bir e-posta gönderdik." }, "deleteRecoverConfirmDesc": { "message": "Bitwarden hesabınızı silme talebinde bulundunuz. Onaylamak için aşağıdaki düğmeye tıklayın." @@ -2801,7 +2801,7 @@ "message": "Vergi bilgileri" }, "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." + "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ünmesi için, bir vergi numarası ve/veya adres ekleyebilirsiniz." }, "billingPlan": { "message": "Plan", @@ -2812,7 +2812,7 @@ "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.", + "message": "Aşağıdaki bilgileri sağlayarak hesabınızı başka bir plana 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": { @@ -2838,7 +2838,7 @@ "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": "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." + "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." @@ -2882,10 +2882,10 @@ "message": "Yükleme numarasını girin" }, "limitSubscriptionDesc": { - "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + "message": "Aboneliğiniz için bir kullanıcı limiti belirleyin. Bu sınıra ulaşıldığında, yeni kullanıcıları davet edemezsiniz." }, "maxSeatLimit": { - "message": "Maximum Seat Limit (optional)", + "message": "Maksimum Kullanıcı Limiti (isteğe bağlı)", "description": "Upper limit of seats to allow through autoscaling" }, "maxSeatCost": { @@ -2900,7 +2900,7 @@ "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." + "message": "Aboneliğinizde yapılan ayarlamalar, fatura toplamlarınızda orantılı değişikliklere neden olacaktır. Yeni davet edilen kullanıcılar abonelik kullanıcı sayınızı aşarsa, ek kullanıcılar için anlık orantılı bir ücretlendirme görürsünüz." }, "subscriptionUserSeats": { "message": "Aboneliğiniz toplam $COUNT$ kullanıcıya izin veriyor.", @@ -2915,10 +2915,10 @@ "message": "Limit Subscription (Optional)" }, "subscriptionSeats": { - "message": "Subscription Seats" + "message": "Abone Kullanıcısı" }, "subscriptionUpdated": { - "message": "Subscription updated" + "message": "Abonelik güncellendi" }, "additionalOptions": { "message": "Ek Seçenekler" @@ -3444,6 +3444,9 @@ "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" }, @@ -4211,7 +4214,7 @@ "message": "Sağlayıcı kuruldu." }, "clients": { - "message": "Clients" + "message": "Müşteriler" }, "providerAdmin": { "message": "Sağlayıcı yöneticisi" @@ -4247,7 +4250,7 @@ "message": "Sağlayıcı" }, "newClientOrganization": { - "message": "New Client Organization" + "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." @@ -4396,10 +4399,10 @@ "message": "Authority" }, "clientId": { - "message": "Client ID" + "message": "Müşteri kimliği" }, "clientSecret": { - "message": "Client Secret" + "message": "Müşteri anahtarı" }, "metadataAddress": { "message": "Meta veri adresi" @@ -4717,7 +4720,7 @@ "message": "Teklifi kabul et" }, "sponsoringOrg": { - "message": "Sponsoring Organization" + "message": "Sponsor Organizasyon" }, "keyConnectorTest": { "message": "Test" @@ -4729,7 +4732,7 @@ "message": "Key Connector 'e ulaşılamadı. URL 'i kontrol edin." }, "sponsorshipTokenHasExpired": { - "message": "The sponsorship offer has expired." + "message": "Sponsorluk teklifinin süresi doldu." }, "freeWithSponsorship": { "message": "FREE with sponsorship" diff --git a/src/locales/uk/messages.json b/src/locales/uk/messages.json index c73ccf03..46118bc2 100644 --- a/src/locales/uk/messages.json +++ b/src/locales/uk/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Від'єднати SSO" }, + "unlinkSsoConfirmation": { + "message": "Ви справді хочете від'єднати SSO для цієї організації?" + }, "linkSso": { "message": "Під'єднати SSO" }, @@ -4525,7 +4528,7 @@ "message": "Введіть особисту електронну адресу для активації Bitwarden Families" }, "sponsoredFamiliesLeaveCopy": { - "message": "Якщо ви покинете цю організацію, ваш доступ до тарифного плану Bitwarden Families завершиться в кінці оплаченого періоду." + "message": "Якщо ви покинете цю спонсоровану організацію, ваш доступ до тарифного плану Bitwarden Families завершиться в кінці оплаченого періоду." }, "acceptBitwardenFamiliesHelp": { "message": "Прийняти пропозицію для наявної організації або створити нову сімейну організацію." diff --git a/src/locales/vi/messages.json b/src/locales/vi/messages.json index acf199ea..4a84f3d3 100644 --- a/src/locales/vi/messages.json +++ b/src/locales/vi/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "Unlink SSO" }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, "linkSso": { "message": "Link SSO" }, diff --git a/src/locales/zh_CN/messages.json b/src/locales/zh_CN/messages.json index 59928fd8..9447286c 100644 --- a/src/locales/zh_CN/messages.json +++ b/src/locales/zh_CN/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "取消链接 SSO" }, + "unlinkSsoConfirmation": { + "message": "您确定要断开该组织的 SSO 链接吗?" + }, "linkSso": { "message": "链接 SSO" }, @@ -4516,7 +4519,7 @@ "message": "兑换" }, "sponsoredFamiliesSelectOffer": { - "message": "选择您想要赞助的组织" + "message": "选择您希望被赞助的组织" }, "familiesSponsoringOrgSelect": { "message": "您想兑换哪一个免费家庭邀请?" diff --git a/src/locales/zh_TW/messages.json b/src/locales/zh_TW/messages.json index dd4204e7..b3b7aa75 100644 --- a/src/locales/zh_TW/messages.json +++ b/src/locales/zh_TW/messages.json @@ -3444,6 +3444,9 @@ "unlinkSso": { "message": "取消連結 SSO" }, + "unlinkSsoConfirmation": { + "message": "您確定要取消本組織的 SSO 連結嗎?" + }, "linkSso": { "message": "連結 SSO" }, diff --git a/src/models/account.ts b/src/models/account.ts new file mode 100644 index 00000000..b45c40b1 --- /dev/null +++ b/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/src/scss/styles.scss b/src/scss/styles.scss index a32b7094..a2bbe046 100644 --- a/src/scss/styles.scss +++ b/src/scss/styles.scss @@ -55,3 +55,5 @@ @import "./plugins"; @import "./tables"; @import "./toasts"; + +@import "../../jslib/angular/src/scss/icons.scss"; // Needs to be after font-awesome diff --git a/src/scss/variables.scss b/src/scss/variables.scss index fe2be0b6..929b9001 100644 --- a/src/scss/variables.scss +++ b/src/scss/variables.scss @@ -1,3 +1,5 @@ +$dark-icon-themes: "theme_dark"; + $primary: #175ddc; $primary-accent: #1252a3; $secondary: #ced4da; diff --git a/src/services/state.service.ts b/src/services/state.service.ts new file mode 100644 index 00000000..a46a7fe5 --- /dev/null +++ b/src/services/state.service.ts @@ -0,0 +1,13 @@ +import { StateService as BaseStateService } from "jslib-common/services/state.service"; + +import { Account } from "../models/account"; + +import { StateService as StateServiceAbstraction } from "jslib-common/abstractions/state.service"; + +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); + } +} diff --git a/tsconfig.json b/tsconfig.json index 30660909..5993e136 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,5 +20,5 @@ "preserveWhitespaces": true }, "files": ["src/app/polyfills.ts", "src/app/main.ts", "bitwarden_license/src/app/main.ts"], - "include": ["src/connectors/*.ts"] + "include": ["src/connectors/*.ts", "src/models/*.ts", "src/services/*.ts"] } diff --git a/webpack.config.js b/webpack.config.js index fb2314a0..f77b5690 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -36,7 +36,7 @@ const moduleRules = [ type: "asset/resource", }, { - test: /\.(jpe?g|png|gif|svg)$/i, + test: /\.(jpe?g|png|gif|svg|webp|avif)$/i, exclude: /.*(fontawesome-webfont)\.svg/, generator: { filename: "images/[name].[ext]",