diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 39e5b3f6003..d2b5cfaad51 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -66,6 +66,7 @@ apps/web/src/locales @bitwarden/team-platform-dev
apps/browser/src/vault @bitwarden/team-vault-dev
apps/cli/src/vault @bitwarden/team-vault-dev
apps/desktop/src/vault @bitwarden/team-vault-dev
+apps/web/src/app/shared/components/onboarding @bitwarden/team-vault-dev
apps/web/src/app/vault @bitwarden/team-vault-dev
libs/angular/src/vault @bitwarden/team-vault-dev
libs/common/src/vault @bitwarden/team-vault-dev
@@ -91,6 +92,7 @@ libs/angular/src/billing @bitwarden/team-billing-dev
libs/common/src/billing @bitwarden/team-billing-dev
libs/billing @bitwarden/team-billing-dev
libs/pricing @bitwarden/team-billing-dev
+libs/subscription @bitwarden/team-billing-dev
bitwarden_license/bit-web/src/app/billing @bitwarden/team-billing-dev
## Platform team files ##
@@ -162,9 +164,6 @@ apps/desktop/desktop_native/windows_plugin_authenticator @bitwarden/team-autofil
apps/desktop/desktop_native/autotype @bitwarden/team-autofill-desktop-dev
apps/desktop/desktop_native/core/src/ssh_agent @bitwarden/team-autofill-desktop-dev @bitwarden/wg-ssh-keys
apps/desktop/desktop_native/ssh_agent @bitwarden/team-autofill-desktop-dev @bitwarden/wg-ssh-keys
-apps/desktop/desktop_native/napi/src/autofill.rs @bitwarden/team-autofill-desktop-dev
-apps/desktop/desktop_native/napi/src/autotype.rs @bitwarden/team-autofill-desktop-dev
-apps/desktop/desktop_native/napi/src/sshagent.rs @bitwarden/team-autofill-desktop-dev
# DuckDuckGo integration
apps/desktop/native-messaging-test-runner @bitwarden/team-autofill-desktop-dev
apps/desktop/src/services/duckduckgo-message-handler.service.ts @bitwarden/team-autofill-desktop-dev
@@ -191,7 +190,9 @@ apps/cli/src/key-management @bitwarden/team-key-management-dev
bitwarden_license/bit-web/src/app/key-management @bitwarden/team-key-management-dev
libs/key-management @bitwarden/team-key-management-dev
libs/key-management-ui @bitwarden/team-key-management-dev
+libs/user-crypto-management @bitwarden/team-key-management-dev
libs/common/src/key-management @bitwarden/team-key-management-dev
+libs/unlock @bitwarden/team-key-management-dev
# Node-cryptofunction service
libs/node @bitwarden/team-key-management-dev
@@ -248,4 +249,3 @@ apps/desktop/native-messaging-test-runner/package-lock.json @bitwarden/team-plat
.claude/ @bitwarden/team-ai-sme
.github/workflows/respond.yml @bitwarden/team-ai-sme
.github/workflows/review-code.yml @bitwarden/team-ai-sme
-libs/subscription @bitwarden/team-billing-dev
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index b264514e736..1e8f72cd8a0 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -542,6 +542,12 @@
},
// ==================== Special Version Constraints ====================
+ {
+ matchPackageNames: ["actions/create-github-app-token"],
+ matchFileNames: [".github/workflows/test-browser-interactions.yml"],
+ allowedVersions: "<= 2.0.3",
+ description: "Versions after v2.0.3 break the test-browser-interactions workflow. Remediation tracked in PM-28174.",
+ },
{
// Any versions of lowdb above 1.0.0 are not compatible with CommonJS.
matchPackageNames: ["lowdb"],
diff --git a/.github/workflows/build-browser.yml b/.github/workflows/build-browser.yml
index 6a334e31a18..ef696c70d57 100644
--- a/.github/workflows/build-browser.yml
+++ b/.github/workflows/build-browser.yml
@@ -291,7 +291,7 @@ jobs:
working-directory: browser-source/
- name: Download SDK artifacts
- if: ${{ inputs.sdk_branch != '' }}
+ if: ${{ inputs.sdk_branch != '' && matrix.license_type.type != 'commercial' }}
uses: bitwarden/gh-actions/download-artifacts@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
@@ -304,10 +304,28 @@ jobs:
if_no_artifact_found: fail
- name: Override SDK
- if: ${{ inputs.sdk_branch != '' }}
+ if: ${{ inputs.sdk_branch != '' && matrix.license_type.type != 'commercial' }}
working-directory: browser-source/
run: npm link ../sdk-internal
+ - name: Download Commercial SDK Artifacts
+ if: ${{ inputs.sdk_branch != '' && matrix.license_type.type == 'commercial' }}
+ uses: bitwarden/gh-actions/download-artifacts@main
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ workflow: build-wasm-internal.yml
+ workflow_conclusion: success
+ branch: ${{ inputs.sdk_branch }}
+ artifacts: commercial-sdk-internal
+ repo: bitwarden/sdk-internal
+ path: commercial-sdk-internal
+ if_no_artifact_found: fail
+
+ - name: Override Commercial SDK
+ if: ${{ inputs.sdk_branch != '' && matrix.license_type.type == 'commercial' }}
+ working-directory: browser-source/
+ run: npm link ../commercial-sdk-internal
+
- name: Check source file size
if: ${{ startsWith(matrix.browser.name, 'firefox') }}
run: |
@@ -493,7 +511,7 @@ jobs:
working-directory: ./
- name: Download SDK Artifacts
- if: ${{ inputs.sdk_branch != '' }}
+ if: ${{ inputs.sdk_branch != '' && matrix.license_type.type != 'commercial' }}
uses: bitwarden/gh-actions/download-artifacts@main
with:
github_token: ${{secrets.GITHUB_TOKEN}}
@@ -506,11 +524,30 @@ jobs:
if_no_artifact_found: fail
- name: Override SDK
- if: ${{ inputs.sdk_branch != '' }}
+ if: ${{ inputs.sdk_branch != '' && matrix.license_type.type != 'commercial' }}
working-directory: ./
run: |
npm link ../sdk-internal
+ - name: Download Commercial SDK Artifacts
+ if: ${{ inputs.sdk_branch != '' && matrix.license_type.type == 'commercial' }}
+ uses: bitwarden/gh-actions/download-artifacts@main
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ workflow: build-wasm-internal.yml
+ workflow_conclusion: success
+ branch: ${{ inputs.sdk_branch }}
+ artifacts: commercial-sdk-internal
+ repo: bitwarden/sdk-internal
+ path: ../commercial-sdk-internal
+ if_no_artifact_found: fail
+
+ - name: Override Commercial SDK
+ if: ${{ inputs.sdk_branch != '' && matrix.license_type.type == 'commercial' }}
+ working-directory: ./
+ run: |
+ npm link ../commercial-sdk-internal
+
- name: Build Safari extension
run: npm run ${{matrix.license_type.npm_command_prefix}}safari
working-directory: apps/browser
diff --git a/.github/workflows/build-cli.yml b/.github/workflows/build-cli.yml
index 75820c54977..201c7858feb 100644
--- a/.github/workflows/build-cli.yml
+++ b/.github/workflows/build-cli.yml
@@ -146,7 +146,7 @@ jobs:
working-directory: ./
- name: Download SDK Artifacts
- if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' }}
+ if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' && matrix.license_type.type != 'commercial' }}
uses: bitwarden/gh-actions/download-artifacts@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
@@ -159,12 +159,31 @@ jobs:
if_no_artifact_found: fail
- name: Override SDK
- if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' }}
+ if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' && matrix.license_type.type != 'commercial' }}
working-directory: ./
run: |
ls -l ../
npm link ../sdk-internal
+ - name: Download Commercial SDK Artifacts
+ if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' && matrix.license_type.type == 'commercial' }}
+ uses: bitwarden/gh-actions/download-artifacts@main
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ workflow: build-wasm-internal.yml
+ workflow_conclusion: success
+ branch: ${{ inputs.sdk_branch }}
+ artifacts: commercial-sdk-internal
+ repo: bitwarden/sdk-internal
+ path: ../commercial-sdk-internal
+ if_no_artifact_found: fail
+
+ - name: Override Commercial SDK
+ if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' && matrix.license_type.type == 'commercial' }}
+ working-directory: ./
+ run: |
+ npm link ../commercial-sdk-internal
+
- name: Build & Package Unix
env:
_SHORT_RUNNER_OS: ${{ env.SHORT_RUNNER_OS }}
@@ -421,7 +440,7 @@ jobs:
working-directory: ./
- name: Download SDK Artifacts
- if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' }}
+ if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' && matrix.license_type.type != 'commercial' }}
uses: bitwarden/gh-actions/download-artifacts@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
@@ -434,12 +453,31 @@ jobs:
if_no_artifact_found: fail
- name: Override SDK
- if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' }}
+ if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' && matrix.license_type.type != 'commercial' }}
working-directory: ./
run: |
ls -l ../
npm link ../sdk-internal
+ - name: Download Commercial SDK Artifacts
+ if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' && matrix.license_type.type == 'commercial' }}
+ uses: bitwarden/gh-actions/download-artifacts@main
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ workflow: build-wasm-internal.yml
+ workflow_conclusion: success
+ branch: ${{ inputs.sdk_branch }}
+ artifacts: commercial-sdk-internal
+ repo: bitwarden/sdk-internal
+ path: ../commercial-sdk-internal
+ if_no_artifact_found: fail
+
+ - name: Override Commercial SDK
+ if: ${{ inputs.sdk_branch != '' && needs.setup.outputs.has_secrets == 'true' && matrix.license_type.type == 'commercial' }}
+ working-directory: ./
+ run: |
+ npm link ../commercial-sdk-internal
+
- name: Build & Package Windows
run: npm run dist:${{ matrix.license_type.build_prefix }}:win --quiet
diff --git a/.github/workflows/build-web.yml b/.github/workflows/build-web.yml
index 688bd30bfe5..36f8ee01c2c 100644
--- a/.github/workflows/build-web.yml
+++ b/.github/workflows/build-web.yml
@@ -187,7 +187,7 @@ jobs:
persist-credentials: false
- name: Download SDK Artifacts
- if: ${{ inputs.sdk_branch != '' }}
+ if: ${{ inputs.sdk_branch != '' && matrix.license_type != 'commercial' }}
uses: bitwarden/gh-actions/download-artifacts@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
@@ -199,6 +199,19 @@ jobs:
path: sdk-internal
if_no_artifact_found: fail
+ - name: Download Commercial SDK Artifacts
+ if: ${{ inputs.sdk_branch != '' && matrix.license_type == 'commercial' }}
+ uses: bitwarden/gh-actions/download-artifacts@main
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ workflow: build-wasm-internal.yml
+ workflow_conclusion: success
+ branch: ${{ inputs.sdk_branch }}
+ artifacts: commercial-sdk-internal
+ repo: bitwarden/sdk-internal
+ path: commercial-sdk-internal
+ if_no_artifact_found: fail
+
- name: Check Branch to Publish
env:
PUBLISH_BRANCHES: "main,rc,hotfix-rc-web"
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index efc8c25fc5e..b50db6e08b6 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -100,13 +100,13 @@ jobs:
persist-credentials: false
- name: Install Rust
- uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # stable
+ uses: dtolnay/rust-toolchain@efa25f7f19611383d5b0ccf2d1c8914531636bf9 # stable
with:
toolchain: stable
components: rustfmt, clippy
- name: Install Rust nightly
- uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # stable
+ uses: dtolnay/rust-toolchain@efa25f7f19611383d5b0ccf2d1c8914531636bf9 # stable
with:
toolchain: nightly
components: rustfmt
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index a0f783bbb36..d3cd64bde11 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -101,7 +101,7 @@ jobs:
echo "node_version=$NODE_VERSION" >> "$GITHUB_OUTPUT"
- name: Set up Node
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
+ uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
@@ -210,7 +210,7 @@ jobs:
persist-credentials: false
- name: Install rust
- uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # stable
+ uses: dtolnay/rust-toolchain@efa25f7f19611383d5b0ccf2d1c8914531636bf9 # stable
with:
toolchain: stable
components: llvm-tools
diff --git a/.storybook/tsconfig.json b/.storybook/tsconfig.json
index 34acc9a740c..ab86c4179af 100644
--- a/.storybook/tsconfig.json
+++ b/.storybook/tsconfig.json
@@ -1,7 +1,8 @@
{
"extends": "../tsconfig",
"compilerOptions": {
- "allowSyntheticDefaultImports": true
+ "allowSyntheticDefaultImports": true,
+ "moduleResolution": "bundler"
},
"exclude": ["../src/test.setup.ts", "../apps/**/*.spec.ts", "../libs/**/*.spec.ts"],
"files": [
diff --git a/apps/browser/package.json b/apps/browser/package.json
index 745c9d6f3e3..fa3da23991e 100644
--- a/apps/browser/package.json
+++ b/apps/browser/package.json
@@ -1,6 +1,6 @@
{
"name": "@bitwarden/browser",
- "version": "2026.1.0",
+ "version": "2026.2.0",
"scripts": {
"build": "npm run build:chrome",
"build:bit": "npm run build:bit:chrome",
diff --git a/apps/browser/src/_locales/ar/messages.json b/apps/browser/src/_locales/ar/messages.json
index 78cf90c3555..5768966511d 100644
--- a/apps/browser/src/_locales/ar/messages.json
+++ b/apps/browser/src/_locales/ar/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "رمز التحقق غير صالح"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "تم نسخ $VALUE$",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "إرسال رابط منسوخ",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/az/messages.json b/apps/browser/src/_locales/az/messages.json
index 6a43475da32..eb3135599f4 100644
--- a/apps/browser/src/_locales/az/messages.json
+++ b/apps/browser/src/_locales/az/messages.json
@@ -573,13 +573,10 @@
"noItemsInArchiveDesc": {
"message": "Arxivlənmiş elementlər burada görünəcək, ümumi axtarış nəticələrindən və avto-doldurma təkliflərindən xaric ediləcək."
},
- "itemWasSentToArchive": {
- "message": "Element arxivə göndərildi"
+ "itemArchiveToast": {
+ "message": "Element arxivləndi"
},
- "itemWasUnarchived": {
- "message": "Element arxivdən çıxarıldı"
- },
- "itemUnarchived": {
+ "itemUnarchivedToast": {
"message": "Element arxivdən çıxarıldı"
},
"archiveItem": {
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Yararsız doğrulama kodu"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ kopyalandı",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Risk altındakı girişlərin olduğu siyahının təsviri."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Risk altında olan saytda Bitwarden avto-doldurma menyusu ilə güclü, unikal parolları cəld yaradın.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ saat",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Bu Send keçidini kopyala və paylaş. Send, keçidə sahib olan hər kəs üçün növbəti $TIME$ ərzində əlçatan olacaq.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Bu Send keçidini kopyala və paylaş. Send, keçidə və ayarladığınız parola sahib olan hər kəs üçün növbəti $TIME$ ərzində əlçatan olacaq.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Bu Send keçidini kopyala və paylaş. Qeyd etdiyiniz şəxslər buna növbəti $TIME$ ərzində baxa bilər.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send keçidi kopyalandı",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Birdən çox e-poçtu daxil edərkən vergül istifadə edin."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Şəxslər, Send-ə baxması üçün parolu daxil etməli olacaqlar",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/be/messages.json b/apps/browser/src/_locales/be/messages.json
index 9f4a65e3072..cd48ff09ee4 100644
--- a/apps/browser/src/_locales/be/messages.json
+++ b/apps/browser/src/_locales/be/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Памылковы праверачны код"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ скапіяваны",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/bg/messages.json b/apps/browser/src/_locales/bg/messages.json
index a46ad75065e..275dd21d0e9 100644
--- a/apps/browser/src/_locales/bg/messages.json
+++ b/apps/browser/src/_locales/bg/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Архивираните елементи ще се показват тук и ще бъдат изключени от общите резултати при търсене и от предложенията за автоматично попълване."
},
- "itemWasSentToArchive": {
- "message": "Елементът беше преместен в архива"
+ "itemArchiveToast": {
+ "message": "Елементът е преместен в архива"
},
- "itemWasUnarchived": {
- "message": "Елементът беше изваден от архива"
- },
- "itemUnarchived": {
- "message": "Елементът беше изваден от архива"
+ "itemUnarchivedToast": {
+ "message": "Елементът е изваден от архива"
},
"archiveItem": {
"message": "Архивиране на елемента"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Грешен код за потвърждаване"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Грешна е-поща или код за потвърждаване"
+ },
"valueCopied": {
"message": "Копирано е $VALUE$",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Илюстрация на списък с елементи за вписване, които са в риск."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Илюстрация на оформлението на страницата с трезора в Битуорден."
+ },
"generatePasswordSlideDesc": {
"message": "Генерирайте бързо сложна и уникална парола от менюто за автоматично попълване на Битуорден, на уеб сайта, който е в риск.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ часа",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Копирайте и споделете връзката към Изпращането. То ще бъде достъпно за всеки с връзката в рамките на следващите $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Копирайте и споделете връзката към Изпращането. То ще бъде достъпно за всеки с връзката и паролата, която зададете, в рамките на следващите $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Копирайте и споделете връзка към това Изпращане. То ще може да бъде видяно само от хората, които сте посочили, в рамките на следващите $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Връзката към Изпращането е копирана",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Можете да въведете повече е-пощи, като ги разделите със запетая."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Потвърждаването на е-пощата изисква да е наличен поне един адрес на е-поща. Ако искате да премахнете всички е-пощи, променете начина за достъп по-горе."
+ },
"emailPlaceholder": {
"message": "потребител@bitwarden.com , потребител@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Хората ще трябва да въведат паролата, за да видят това Изпращане",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Проверката на потребителя беше неуспешна."
}
}
diff --git a/apps/browser/src/_locales/bn/messages.json b/apps/browser/src/_locales/bn/messages.json
index b46d0664231..8aa07e2ec82 100644
--- a/apps/browser/src/_locales/bn/messages.json
+++ b/apps/browser/src/_locales/bn/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ অনুলিপিত",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/bs/messages.json b/apps/browser/src/_locales/bs/messages.json
index e81fc637b5c..8ef61e0e63e 100644
--- a/apps/browser/src/_locales/bs/messages.json
+++ b/apps/browser/src/_locales/bs/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/ca/messages.json b/apps/browser/src/_locales/ca/messages.json
index 2bd53876953..d524731fb46 100644
--- a/apps/browser/src/_locales/ca/messages.json
+++ b/apps/browser/src/_locales/ca/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Codi de verificació no vàlid"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "S'ha copiat $VALUE$",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/cs/messages.json b/apps/browser/src/_locales/cs/messages.json
index 1501c7d7c4a..efadf781fc8 100644
--- a/apps/browser/src/_locales/cs/messages.json
+++ b/apps/browser/src/_locales/cs/messages.json
@@ -573,13 +573,10 @@
"noItemsInArchiveDesc": {
"message": "Zde se zobrazí archivované položky a budou vyloučeny z obecných výsledků vyhledávání a návrhů automatického vyplňování."
},
- "itemWasSentToArchive": {
- "message": "Položka byla přesunuta do archivu"
+ "itemArchiveToast": {
+ "message": "Položka archivována"
},
- "itemWasUnarchived": {
- "message": "Položka byla odebrána z archivu"
- },
- "itemUnarchived": {
+ "itemUnarchivedToast": {
"message": "Položka byla odebrána z archivu"
},
"archiveItem": {
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Neplatný ověřovací kód"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Neplatný e-mail nebo ověřovací kód"
+ },
"valueCopied": {
"message": "Zkopírováno: $VALUE$",
"description": "Value has been copied to the clipboard.",
@@ -1691,7 +1691,7 @@
"message": "Ověřovací aplikace"
},
"authenticatorAppDescV2": {
- "message": "Zadejte kód vygenerovaný ověřovací aplikací, jako je Autentikátor Bitwarden.",
+ "message": "Zadejte kód vygenerovaný ověřovací aplikací, jako je Bitwarden Authenticator.",
"description": "'Bitwarden Authenticator' is a product name and should not be translated."
},
"yubiKeyTitleV2": {
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Ilustrace seznamu přihlášení, která jsou ohrožená."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Ilustrace rozložení stránky trezoru Bitwarden."
+ },
"generatePasswordSlideDesc": {
"message": "Rychle vygeneruje silné, unikátní heslo s nabídkou automatického vyplňování Bitwarden na ohrožených stránkách.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hodin",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Zkopírujte a sdílejte tento odkaz Send. Send bude k dispozici komukoli s odkazem na dalších $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Zkopírujte a sdílejte tento odkaz Send. Send bude k dispozici komukoli s odkazem a heslem na dalších $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Zkopírujte a sdílejte tento Send pro odesílání. Můžou jej zobrazit osoby, které jste zadali, a to po dobu $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Odkaz Send byl zkopírován",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Zadejte více e-mailů oddělených čárkou."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Ověření e-mailu vyžaduje alespoň jednu e-mailovou adresu. Chcete-li odebrat všechny emaily, změňte výše uvedený typ přístupu."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Pro zobrazení tohoto Send budou muset jednotlivci zadat heslo",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Ověření uživatele se nezdařilo."
}
}
diff --git a/apps/browser/src/_locales/cy/messages.json b/apps/browser/src/_locales/cy/messages.json
index 6910fe2efb3..12dc8d7b44f 100644
--- a/apps/browser/src/_locales/cy/messages.json
+++ b/apps/browser/src/_locales/cy/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Cod dilysu annilys"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ wedi'i gopïo",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/da/messages.json b/apps/browser/src/_locales/da/messages.json
index faf4fc855ec..d19d07ee9f5 100644
--- a/apps/browser/src/_locales/da/messages.json
+++ b/apps/browser/src/_locales/da/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Ugyldig bekræftelseskode"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ kopieret",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send-link kopieret",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/de/messages.json b/apps/browser/src/_locales/de/messages.json
index ad5b45159df..8c33da9ae79 100644
--- a/apps/browser/src/_locales/de/messages.json
+++ b/apps/browser/src/_locales/de/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archivierte Einträge werden hier angezeigt und von allgemeinen Suchergebnissen sowie Vorschlägen zum automatischen Ausfüllen ausgeschlossen."
},
- "itemWasSentToArchive": {
- "message": "Eintrag wurde archiviert"
+ "itemArchiveToast": {
+ "message": "Eintrag archiviert"
},
- "itemWasUnarchived": {
- "message": "Eintrag wird nicht mehr archiviert"
- },
- "itemUnarchived": {
- "message": "Eintrag wird nicht mehr archiviert"
+ "itemUnarchivedToast": {
+ "message": "Eintrag nicht mehr archiviert"
},
"archiveItem": {
"message": "Eintrag archivieren"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Ungültiger Verifizierungscode"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "E-Mail oder Verifizierungscode ungültig"
+ },
"valueCopied": {
"message": "$VALUE$ kopiert",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration einer Liste gefährdeter Zugangsdaten."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Generiere schnell ein starkes, einzigartiges Passwort mit dem Bitwarden Auto-Ausfüllen-Menü auf der gefährdeten Website.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ Stunden",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Kopiere und teile diesen Send-Link. Das Send wird für jeden mit dem Link für die nächsten $TIME$ verfügbar sein.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Kopiere und teile diesen Send-Link. Das Send wird für jeden mit dem Link und dem von dir festgelegten Passwort für die nächsten $TIME$ verfügbar sein.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Kopiere und teile diesen Send-Link. Er kann von den von dir angegebenen Personen für die nächsten $TIME$ angesehen werden.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send-Link kopiert",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -5964,7 +6006,7 @@
"message": "Kartennummer"
},
"errorCannotDecrypt": {
- "message": "Error: Cannot decrypt"
+ "message": "Fehler: Entschlüsselung nicht möglich"
},
"removeMasterPasswordForOrgUserKeyConnector": {
"message": "Deine Organisation verwendet keine Master-Passwörter mehr, um sich bei Bitwarden anzumelden. Verifiziere die Organisation und Domain, um fortzufahren."
@@ -6124,11 +6166,14 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Gib mehrere E-Mail-Adressen ein, indem du sie mit einem Komma trennst."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "E-Mail-Verifizierung erfordert mindestens eine E-Mail-Adresse. Ändere den Zugriffstyp oben, um alle E-Mails zu entfernen."
+ },
"emailPlaceholder": {
"message": "benutzer@bitwarden.com, benutzer@acme.com"
},
"downloadBitwardenApps": {
- "message": "Download Bitwarden apps"
+ "message": "Bitwarden-Apps herunterladen"
},
"emailProtected": {
"message": "E-Mail-Adresse geschützt"
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Personen müssen das Passwort eingeben, um dieses Send anzusehen",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Benutzerverifizierung fehlgeschlagen."
}
}
diff --git a/apps/browser/src/_locales/el/messages.json b/apps/browser/src/_locales/el/messages.json
index 59f757008f2..0e5fc2eaeb1 100644
--- a/apps/browser/src/_locales/el/messages.json
+++ b/apps/browser/src/_locales/el/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Το στοιχείο στάλθηκε στην αρχειοθήκη"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Το στοιχείο επαναφέρθηκε από την αρχειοθήκη"
- },
- "itemUnarchived": {
- "message": "Το στοιχείο επαναφέρθηκε από την αρχειοθήκη"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Αρχειοθέτηση στοιχείου"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Μη έγκυρος κωδικός επαλήθευσης"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ αντιγράφηκε",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Ο σύνδεσμος Send αντιγράφηκε",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/en/messages.json b/apps/browser/src/_locales/en/messages.json
index e77550b01dc..8cbf884072e 100644
--- a/apps/browser/src/_locales/en/messages.json
+++ b/apps/browser/src/_locales/en/messages.json
@@ -896,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2857,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3080,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6106,6 +6151,15 @@
"searchResults": {
"message": "Search results"
},
+ "simplifiedAutofill": {
+ "message": "Simplified autofill"
+ },
+ "simplifiedAutofillDescription": {
+ "message": "When you click a suggested autofill item, it fills rather than taking you to details. You can still view these items from the More menu."
+ },
+ "openSimplifiedAutofillPopover": {
+ "message": "Open simplified autofill popover"
+ },
"resizeSideNavigation": {
"message": "Resize side navigation"
},
@@ -6121,10 +6175,12 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
-
"downloadBitwardenApps": {
"message": "Download Bitwarden apps"
},
@@ -6134,5 +6190,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/en_GB/messages.json b/apps/browser/src/_locales/en_GB/messages.json
index e34e20844e6..be564f8a950 100644
--- a/apps/browser/src/_locales/en_GB/messages.json
+++ b/apps/browser/src/_locales/en_GB/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/en_IN/messages.json b/apps/browser/src/_locales/en_IN/messages.json
index 9fd388a80d3..18e02ec48ca 100644
--- a/apps/browser/src/_locales/en_IN/messages.json
+++ b/apps/browser/src/_locales/en_IN/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/es/messages.json b/apps/browser/src/_locales/es/messages.json
index ab5fad7e3af..45d2139fd6b 100644
--- a/apps/browser/src/_locales/es/messages.json
+++ b/apps/browser/src/_locales/es/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Los elementos archivados aparecerán aquí y se excluirán de los resultados de búsqueda generales y de sugerencias de autocompletado."
},
- "itemWasSentToArchive": {
- "message": "El elemento fue archivado"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "El elemento fue desarchivado"
- },
- "itemUnarchived": {
- "message": "El elemento fue desarchivado"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archivar elemento"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Código de verificación no válido"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "Valor de $VALUE$ copiado",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Genera rápidamente una contraseña segura y única con el menú de autocompletado de Bitwarden en el sitio en riesgo.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Enlace del Send copiado",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6113,7 +6155,7 @@
"message": "Resize side navigation"
},
"whoCanView": {
- "message": "Quien puede ver"
+ "message": "Quién puede ver"
},
"specificPeople": {
"message": "Personas específicas"
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Introduce varios correos electrónicos separándolos con una coma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Los individuos tendrán que introducir la contraseña para ver este Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/et/messages.json b/apps/browser/src/_locales/et/messages.json
index e8efd12b1e2..789454218e1 100644
--- a/apps/browser/src/_locales/et/messages.json
+++ b/apps/browser/src/_locales/et/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Vale kinnituskood"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ on kopeeritud",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/eu/messages.json b/apps/browser/src/_locales/eu/messages.json
index e7fcd4998e0..f08604910af 100644
--- a/apps/browser/src/_locales/eu/messages.json
+++ b/apps/browser/src/_locales/eu/messages.json
@@ -3,14 +3,14 @@
"message": "Bitwarden"
},
"appLogoLabel": {
- "message": "Bitwarden logo"
+ "message": "Bitwardenen logoa"
},
"extName": {
"message": "Bitwarden pasahitz kudeatzailea",
"description": "Extension name, MUST be less than 40 characters (Safari restriction)"
},
"extDesc": {
- "message": "At home, at work, or on the go, Bitwarden easily secures all your passwords, passkeys, and sensitive information",
+ "message": "Etxean, lanean edo bidean, Bitwardenek zure pasahitz, giltz orokor edo informazio delikatua erraz gordetzen du",
"description": "Extension description, MUST be less than 112 characters (Safari restriction)"
},
"loginOrCreateNewAccount": {
@@ -23,19 +23,19 @@
"message": "Sortu kontua"
},
"newToBitwarden": {
- "message": "New to Bitwarden?"
+ "message": "Berria Bitwardenen?"
},
"logInWithPasskey": {
- "message": "Log in with passkey"
+ "message": "Sartu giltz orokorrarekin"
},
"unlockWithPasskey": {
- "message": "Unlock with passkey"
+ "message": "Ireki giltz orokorrarekin"
},
"useSingleSignOn": {
- "message": "Use single sign-on"
+ "message": "Erabili SSO"
},
"yourOrganizationRequiresSingleSignOn": {
- "message": "Your organization requires single sign-on."
+ "message": "Zure erakundeak SSO erabiltzera behartzen du."
},
"welcomeBack": {
"message": "Ongi etorri berriro ere"
@@ -71,7 +71,7 @@
"message": "Pasahitz nagusia ahazten baduzu, pista batek pasahitza gogoratzen lagunduko dizu."
},
"masterPassHintText": {
- "message": "If you forget your password, the password hint can be sent to your email. $CURRENT$/$MAXIMUM$ character maximum.",
+ "message": "Zure pasahitza ahazten bazaizu, pasahitzaren pista emailez bidal dezakegu. Gehienez $CURRENT$/$MAXIMUM$ karaktere.",
"placeholders": {
"current": {
"content": "$1",
@@ -90,7 +90,7 @@
"message": "Pasahitz nagusirako pista (aukerakoa)"
},
"passwordStrengthScore": {
- "message": "Password strength score $SCORE$",
+ "message": "Pasahitzaren sendotasun puntuazioa $SCORE$",
"placeholders": {
"score": {
"content": "$1",
@@ -99,10 +99,10 @@
}
},
"joinOrganization": {
- "message": "Join organization"
+ "message": "Erakundearen kide egin"
},
"joinOrganizationName": {
- "message": "Join $ORGANIZATIONNAME$",
+ "message": "$ORGANIZATIONNAME$-ren kide egin",
"placeholders": {
"organizationName": {
"content": "$1",
@@ -111,7 +111,7 @@
}
},
"finishJoiningThisOrganizationBySettingAMasterPassword": {
- "message": "Finish joining this organization by setting a master password."
+ "message": "Bukatu erakunde honen kide egitea pasahitz nagusi bat ezarriz."
},
"tab": {
"message": "Fitxak"
@@ -138,7 +138,7 @@
"message": "Kopiatu pasahitza"
},
"copyPassphrase": {
- "message": "Copy passphrase"
+ "message": "Kopiatu esaldi-gakoa"
},
"copyNote": {
"message": "Kopiatu oharra"
@@ -159,28 +159,28 @@
"message": "Izena kopiatu"
},
"copyCompany": {
- "message": "Copy company"
+ "message": "Kopiatu enpresa"
},
"copySSN": {
- "message": "Copy Social Security number"
+ "message": "Kopiatu segurtasun sozialaren zenbakia"
},
"copyPassportNumber": {
- "message": "Copy passport number"
+ "message": "Kopiatu pasaporte zenbakia"
},
"copyLicenseNumber": {
- "message": "Copy license number"
+ "message": "Kopiatu lizentzia zenbakia"
},
"copyPrivateKey": {
- "message": "Copy private key"
+ "message": "Kopiatu gako pribatua"
},
"copyPublicKey": {
- "message": "Copy public key"
+ "message": "Kopiatu gako publikoa"
},
"copyFingerprint": {
- "message": "Copy fingerprint"
+ "message": "Kopiatu hatz-marka"
},
"copyCustomField": {
- "message": "Copy $FIELD$",
+ "message": "Kopiatu $FIELD$",
"placeholders": {
"field": {
"content": "$1",
@@ -189,7 +189,7 @@
}
},
"copyWebsite": {
- "message": "Copy website"
+ "message": "Kopiatu webgunea"
},
"copyNotes": {
"message": "Kopiatu oharrak"
@@ -206,7 +206,7 @@
"message": "Auto-betetzea"
},
"autoFillLogin": {
- "message": "Autofill login"
+ "message": "Saio-hasiera autobetetzea"
},
"autoFillCard": {
"message": "Auto-bete txartela"
@@ -261,16 +261,16 @@
"message": "Gehitu elementua"
},
"accountEmail": {
- "message": "Account email"
+ "message": "Kontuaren e-maila"
},
"requestHint": {
- "message": "Request hint"
+ "message": "Argibidea eskatu"
},
"requestPasswordHint": {
- "message": "Request password hint"
+ "message": "Pasahitz-laguntza eskatu"
},
"enterYourAccountEmailAddressAndYourPasswordHintWillBeSentToYou": {
- "message": "Enter your account email address and your password hint will be sent to you"
+ "message": "Idatzi zure kontuaren e-maila eta pasahitzaren argibidea bidaliko dizugu"
},
"getMasterPasswordHint": {
"message": "Jaso pasahitz nagusiaren pista"
@@ -297,10 +297,10 @@
"message": "Aldatu pasahitz nagusia"
},
"continueToWebApp": {
- "message": "Continue to web app?"
+ "message": "Web aplikaziora jarraitu?"
},
"continueToWebAppDesc": {
- "message": "Explore more features of your Bitwarden account on the web app."
+ "message": "Esploratu zure Bitwarden kontuaren funtzio gehiago web-aplikazioan."
},
"continueToHelpCenter": {
"message": "Continue to Help Center?"
@@ -332,7 +332,7 @@
"message": "Itxi saioa"
},
"aboutBitwarden": {
- "message": "About Bitwarden"
+ "message": "Bitwardeni buruz"
},
"about": {
"message": "Honi buruz"
@@ -398,10 +398,10 @@
}
},
"newFolder": {
- "message": "New folder"
+ "message": "Karpeta berria"
},
"folderName": {
- "message": "Folder name"
+ "message": "Karpetaren izena"
},
"folderHintText": {
"message": "Nest a folder by adding the parent folder's name followed by a “/”. Example: Social/Forums"
@@ -440,7 +440,7 @@
"message": "Sinkronizatu"
},
"syncNow": {
- "message": "Sync now"
+ "message": "Sinkronizatu orain"
},
"lastSync": {
"message": "Azken sinkronizazioa:"
@@ -456,7 +456,7 @@
"message": "Automatikoki pasahitz sendo eta bakarrak sortzen ditu zure saio-hasieratarako."
},
"bitWebVaultApp": {
- "message": "Bitwarden web app"
+ "message": "Bitwarden web aplikazioa"
},
"select": {
"message": "Hautatu"
@@ -489,11 +489,11 @@
"message": "Luzera"
},
"include": {
- "message": "Include",
+ "message": "Sartu",
"description": "Card header for password generator include block"
},
"uppercaseDescription": {
- "message": "Include uppercase characters",
+ "message": "Sartu letra maiuskulak",
"description": "Tooltip for the password generator uppercase character checkbox"
},
"uppercaseLabel": {
@@ -501,7 +501,7 @@
"description": "Label for the password generator uppercase character checkbox"
},
"lowercaseDescription": {
- "message": "Include lowercase characters",
+ "message": "Sartu letra minuskulak",
"description": "Full description for the password generator lowercase character checkbox"
},
"lowercaseLabel": {
@@ -509,7 +509,7 @@
"description": "Label for the password generator lowercase character checkbox"
},
"numbersDescription": {
- "message": "Include numbers",
+ "message": "Sartu zenbakiak",
"description": "Full description for the password generator numbers checkbox"
},
"numbersLabel": {
@@ -517,7 +517,7 @@
"description": "Label for the password generator numbers checkbox"
},
"specialCharactersDescription": {
- "message": "Include special characters",
+ "message": "Sartu karaktere bereziak",
"description": "Full description for the password generator special characters checkbox"
},
"numWords": {
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -607,16 +604,16 @@
"message": "Erakutsi"
},
"viewAll": {
- "message": "View all"
+ "message": "Ikusi denak"
},
"showAll": {
- "message": "Show all"
+ "message": "Dena erakutsi"
},
"viewLess": {
"message": "View less"
},
"viewLogin": {
- "message": "View login"
+ "message": "Ikusi saio-hasiera"
},
"noItemsInList": {
"message": "Ez dago erakusteko elementurik."
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Egiaztatze-kodea ez da baliozkoa"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ kopiatuta",
"description": "Value has been copied to the clipboard.",
@@ -946,16 +946,16 @@
"message": "Saioa amaitu da."
},
"logIn": {
- "message": "Log in"
+ "message": "Hasi saioa"
},
"logInToBitwarden": {
- "message": "Log in to Bitwarden"
+ "message": "Sartu Bitwardenera"
},
"enterTheCodeSentToYourEmail": {
- "message": "Enter the code sent to your email"
+ "message": "Sartu e-mailera bidali dizugun kodea"
},
"enterTheCodeFromYourAuthenticatorApp": {
- "message": "Enter the code from your authenticator app"
+ "message": "Sartu zure egiaztapenerako aplikazioko kodea"
},
"pressYourYubiKeyToAuthenticate": {
"message": "Press your YubiKey to authenticate"
@@ -1344,11 +1344,11 @@
"message": "Export from"
},
"exportVerb": {
- "message": "Export",
+ "message": "Esportatu",
"description": "The verb form of the word Export"
},
"exportNoun": {
- "message": "Export",
+ "message": "Esportatu",
"description": "The noun form of the word Export"
},
"importNoun": {
@@ -1768,7 +1768,7 @@
"description": "Represents the message for allowing the user to enable the autofill overlay"
},
"autofillSuggestionsSectionTitle": {
- "message": "Autofill suggestions"
+ "message": "Autobetetzeko iradokizunak"
},
"autofillSpotlightTitle": {
"message": "Easily find autofill suggestions"
@@ -2165,7 +2165,7 @@
"description": "Header for edit file send"
},
"viewItemHeaderLogin": {
- "message": "View Login",
+ "message": "Ikusi saio-hasiera",
"description": "Header for view login item type"
},
"viewItemHeaderCard": {
@@ -2203,7 +2203,7 @@
"message": "Bildumak"
},
"nCollections": {
- "message": "$COUNT$ collections",
+ "message": "$COUNT$ bilduma",
"placeholders": {
"count": {
"content": "$1",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -2928,7 +2931,7 @@
}
},
"send": {
- "message": "Send",
+ "message": "Bidali",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendDetails": {
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -4019,7 +4061,7 @@
"message": "required"
},
"search": {
- "message": "Search"
+ "message": "Bilatu"
},
"inputMinLength": {
"message": "Input must be at least $COUNT$ characters long.",
@@ -4346,7 +4388,7 @@
"message": "Select a folder"
},
"selectImportCollection": {
- "message": "Select a collection"
+ "message": "Bilduma bat aukeratu"
},
"importTargetHintCollection": {
"message": "Select this option if you want the imported file contents moved to a collection"
@@ -4525,7 +4567,7 @@
"message": "Try again or look for an email from LastPass to verify it's you."
},
"collection": {
- "message": "Collection"
+ "message": "Bilduma"
},
"lastPassYubikeyDesc": {
"message": "Insert the YubiKey associated with your LastPass account into your computer's USB port, then touch its button."
@@ -4686,7 +4728,7 @@
"message": "Passkey removed"
},
"autofillSuggestions": {
- "message": "Autofill suggestions"
+ "message": "Autobetetzeko proposamenak"
},
"itemSuggestions": {
"message": "Suggested items"
@@ -4812,7 +4854,7 @@
"message": "No values to copy"
},
"assignToCollections": {
- "message": "Assign to collections"
+ "message": "Esleitu bildumetan"
},
"copyEmail": {
"message": "Copy email"
@@ -4904,7 +4946,7 @@
}
},
"new": {
- "message": "New"
+ "message": "Berria"
},
"removeItem": {
"message": "Remove $NAME$",
@@ -4942,10 +4984,10 @@
"message": "Additional information"
},
"itemHistory": {
- "message": "Item history"
+ "message": "Aldaketen historia"
},
"lastEdited": {
- "message": "Last edited"
+ "message": "Azken edizioa"
},
"ownerYou": {
"message": "Owner: You"
@@ -5029,7 +5071,7 @@
"message": "Filters"
},
"filterVault": {
- "message": "Filter vault"
+ "message": "Iragazi kutxa gotorra"
},
"filterApplied": {
"message": "One filter applied"
@@ -5066,13 +5108,13 @@
"description": "Used within the inline menu to provide an aria description when users are attempting to fill a card cipher."
},
"loginCredentials": {
- "message": "Login credentials"
+ "message": "Saio-hasierako kredentzialak"
},
"authenticatorKey": {
"message": "Authenticator key"
},
"autofillOptions": {
- "message": "Autofill options"
+ "message": "Autobetetzeko aukerak"
},
"websiteUri": {
"message": "Website (URI)"
@@ -5866,7 +5908,7 @@
"example": "Store your keys and connect with the SSH agent for fast, encrypted authentication. Learn more about SSH agent"
},
"generatorNudgeTitle": {
- "message": "Quickly create passwords"
+ "message": "Sortu pasahitzak azkar"
},
"generatorNudgeBodyOne": {
"message": "Easily create strong and unique passwords by clicking on",
@@ -5879,7 +5921,7 @@
"example": "Easily create strong and unique passwords by clicking on {icon} to help you keep your logins secure."
},
"generatorNudgeBodyAria": {
- "message": "Easily create strong and unique passwords by clicking on the Generate password button to help you keep your logins secure.",
+ "message": "Sortu erraz pasahitz sendo eta bakarrak Sortu pasahitza botoian klik eginez, zure saio-hasierak seguru mantentzen laguntzeko.",
"description": "Aria label for the body content of the generator nudge"
},
"aboutThisSetting": {
@@ -6107,7 +6149,7 @@
"message": "Items"
},
"searchResults": {
- "message": "Search results"
+ "message": "Bilaketaren emaitzak"
},
"resizeSideNavigation": {
"message": "Resize side navigation"
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/fa/messages.json b/apps/browser/src/_locales/fa/messages.json
index bca4ad20d52..4c2474d614c 100644
--- a/apps/browser/src/_locales/fa/messages.json
+++ b/apps/browser/src/_locales/fa/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "کد تأیید نامعتبر است"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ کپی شد",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "تصویری از فهرست ورودهایی که در معرض خطر هستند."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "با استفاده از منوی پر کردن خودکار Bitwarden در سایت در معرض خطر، بهسرعت یک کلمه عبور قوی و منحصر به فرد تولید کنید.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "لینک ارسال کپی شد",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/fi/messages.json b/apps/browser/src/_locales/fi/messages.json
index 2997ed6c128..8f5d3c05a63 100644
--- a/apps/browser/src/_locales/fi/messages.json
+++ b/apps/browser/src/_locales/fi/messages.json
@@ -29,7 +29,7 @@
"message": "Kirjaudu pääsyavaimella"
},
"unlockWithPasskey": {
- "message": "Unlock with passkey"
+ "message": "Poista lukitus todentamisavaimella"
},
"useSingleSignOn": {
"message": "Käytä kertakirjautumista"
@@ -440,7 +440,7 @@
"message": "Synkronointi"
},
"syncNow": {
- "message": "Sync now"
+ "message": "Synkronoi nyt"
},
"lastSync": {
"message": "Viimeisin synkronointi:"
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Arkistoi kohde"
@@ -610,10 +607,10 @@
"message": "Näytä kaikki"
},
"showAll": {
- "message": "Show all"
+ "message": "Näytä kaikki"
},
"viewLess": {
- "message": "View less"
+ "message": "Näytä vähemmän"
},
"viewLogin": {
"message": "View login"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Virheellinen todennuskoodi"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ kopioitu",
"description": "Value has been copied to the clipboard.",
@@ -1495,7 +1495,7 @@
"message": "This file is using an outdated encryption method."
},
"attachmentUpdated": {
- "message": "Attachment updated"
+ "message": "Liite päivitetty"
},
"file": {
"message": "Tiedosto"
@@ -1664,7 +1664,7 @@
"message": "Passkey authentication failed"
},
"useADifferentLogInMethod": {
- "message": "Use a different log in method"
+ "message": "Käytä vaihtoehtoista kirjautumistapaa"
},
"awaitingSecurityKeyInteraction": {
"message": "Odotetaan suojausavaimen aktivointia..."
@@ -1956,7 +1956,7 @@
"message": "Erääntymisvuosi"
},
"monthly": {
- "message": "month"
+ "message": "kuukausi"
},
"expiration": {
"message": "Voimassaolo päättyy"
@@ -2055,7 +2055,7 @@
"message": "Sähköposti"
},
"emails": {
- "message": "Emails"
+ "message": "Sähköpostit"
},
"phone": {
"message": "Puhelinnumero"
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Kuvitus vaarantuneiden kirjautumistietojen luettelosta."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Luo vahva ja ainutlaatuinen salasana nopeasti Bitwardenin automaattitäytön valikosta vaarantuneella sivustolla.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send-linkki kopioitiin",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -4827,7 +4869,7 @@
"message": "Hallintapaneelista"
},
"admin": {
- "message": "Admin"
+ "message": "Ylläpitäjä"
},
"automaticUserConfirmation": {
"message": "Automatic user confirmation"
@@ -4857,16 +4899,16 @@
"message": "Turned on automatic confirmation"
},
"availableNow": {
- "message": "Available now"
+ "message": "Saatavilla nyt"
},
"accountSecurity": {
"message": "Tilin suojaus"
},
"phishingBlocker": {
- "message": "Phishing Blocker"
+ "message": "Tietojenkalasteluhyökkäysten estäminen"
},
"enablePhishingDetection": {
- "message": "Phishing detection"
+ "message": "Tietojenkalasteluhyökkäysten tunnistaminen"
},
"enablePhishingDetectionDesc": {
"message": "Display warning before accessing suspected phishing sites"
@@ -4984,7 +5026,7 @@
}
},
"downloadAttachmentLabel": {
- "message": "Download Attachment"
+ "message": "Lataa liite"
},
"downloadBitwarden": {
"message": "Lataa Bitwarden"
@@ -5719,10 +5761,10 @@
"message": "This login is at-risk and missing a website. Add a website and change the password for stronger security."
},
"vulnerablePassword": {
- "message": "Vulnerable password."
+ "message": "Heikko salasana"
},
"changeNow": {
- "message": "Change now"
+ "message": "Vaihda nyt"
},
"missingWebsite": {
"message": "Missing website"
@@ -5776,13 +5818,13 @@
"message": "Tervetuloa holviisi!"
},
"phishingPageTitleV2": {
- "message": "Phishing attempt detected"
+ "message": "Havaittu tietojenkalasteluhyökkäyksen yritys"
},
"phishingPageSummary": {
- "message": "The site you are attempting to visit is a known malicious site and a security risk."
+ "message": "Sivusto jota olet avaamassa on tunnetusti haitallinen ja sen avaaminen on turvallisuusriski"
},
"phishingPageCloseTabV2": {
- "message": "Close this tab"
+ "message": "Sulje tämä välilehti"
},
"phishingPageContinueV2": {
"message": "Jatka tälle sivustolle (ei suositeltavaa)"
@@ -5896,10 +5938,10 @@
"description": "'WebAssembly' is a technical term and should not be translated."
},
"showMore": {
- "message": "Show more"
+ "message": "Näytä enemmän"
},
"showLess": {
- "message": "Show less"
+ "message": "Näytä vähemmän"
},
"next": {
"message": "Seuraava"
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/fil/messages.json b/apps/browser/src/_locales/fil/messages.json
index 11da450cc0f..069be19dc86 100644
--- a/apps/browser/src/_locales/fil/messages.json
+++ b/apps/browser/src/_locales/fil/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Maling verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "Kinopya ang $VALUE$",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/fr/messages.json b/apps/browser/src/_locales/fr/messages.json
index face33e0087..afd5415e249 100644
--- a/apps/browser/src/_locales/fr/messages.json
+++ b/apps/browser/src/_locales/fr/messages.json
@@ -29,7 +29,7 @@
"message": "Se connecter avec une clé d'accès"
},
"unlockWithPasskey": {
- "message": "Unlock with passkey"
+ "message": "Déverrouiller avec une clé d'accès"
},
"useSingleSignOn": {
"message": "Utiliser l'authentification unique"
@@ -573,32 +573,29 @@
"noItemsInArchiveDesc": {
"message": "Les éléments archivés apparaîtront ici et seront exclus des résultats de recherche généraux et des suggestions de remplissage automatique."
},
- "itemWasSentToArchive": {
- "message": "L'élément a été envoyé à l'archive"
+ "itemArchiveToast": {
+ "message": "Élément archivé"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "L'élément a été désarchivé"
+ "itemUnarchivedToast": {
+ "message": "Élément désarchivé"
},
"archiveItem": {
"message": "Archiver l'élément"
},
"archiveItemDialogContent": {
- "message": "Once archived, this item will be excluded from search results and autofill suggestions."
+ "message": "Une fois archivé, cet élément sera exclu des résultats de recherche et des suggestions de remplissage automatique."
},
"archived": {
- "message": "Archived"
+ "message": "Archivé"
},
"unarchiveAndSave": {
- "message": "Unarchive and save"
+ "message": "Désarchiver et enregistrer"
},
"upgradeToUseArchive": {
"message": "Une adhésion premium est requise pour utiliser Archive."
},
"itemRestored": {
- "message": "Item has been restored"
+ "message": "L'élément a été restauré"
},
"edit": {
"message": "Modifier"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Code de vérification invalide"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Courriel ou code de vérification invalide"
+ },
"valueCopied": {
"message": "$VALUE$ copié",
"description": "Value has been copied to the clipboard.",
@@ -991,10 +991,10 @@
"message": "Non"
},
"noAuth": {
- "message": "Anyone with the link"
+ "message": "Toute personne disposant du lien"
},
"anyOneWithPassword": {
- "message": "Anyone with a password set by you"
+ "message": "N'importe qui avec un mot de passe défini par vous"
},
"location": {
"message": "Emplacement"
@@ -1321,7 +1321,7 @@
"description": "Default URI match detection for autofill."
},
"defaultUriMatchDetectionDesc": {
- "message": "Choisit la manière dont la détection des correspondances URI est gérée par défaut pour les connexions lors d'actions telles que la saisie automatique."
+ "message": "Choisissez le mode de traitement par défaut de la détection de correspondance URI, pour les connexions lors de l'exécution d'actions telles que le remplissage automatique."
},
"theme": {
"message": "Thème"
@@ -1344,7 +1344,7 @@
"message": "Exporter à partir de"
},
"exportVerb": {
- "message": "Export",
+ "message": "Exporter",
"description": "The verb form of the word Export"
},
"exportNoun": {
@@ -1356,7 +1356,7 @@
"description": "The noun form of the word Import"
},
"importVerb": {
- "message": "Import",
+ "message": "Importer",
"description": "The verb form of the word Import"
},
"fileFormat": {
@@ -1555,13 +1555,13 @@
"message": "Options de connexion propriétaires à deux facteurs telles que YubiKey et Duo."
},
"premiumSubscriptionEnded": {
- "message": "Your Premium subscription ended"
+ "message": "Votre abonnement Premium est terminé"
},
"archivePremiumRestart": {
- "message": "To regain access to your archive, restart your Premium subscription. If you edit details for an archived item before restarting, it'll be moved back into your vault."
+ "message": "Pour récupérer l'accès à vos archives, redémarrez votre abonnement Premium. Si vous modifiez les détails d'un élément archivé avant de le redémarrer, il sera déplacé dans votre coffre."
},
"restartPremium": {
- "message": "Restart Premium"
+ "message": "Redémarrer Premium"
},
"ppremiumSignUpReports": {
"message": "Hygiène du mot de passe, santé du compte et rapports sur les brèches de données pour assurer la sécurité de votre coffre."
@@ -2055,7 +2055,7 @@
"message": "Courriel"
},
"emails": {
- "message": "Emails"
+ "message": "Courriels"
},
"phone": {
"message": "Téléphone"
@@ -2486,7 +2486,7 @@
"message": "Élément définitivement supprimé"
},
"archivedItemRestored": {
- "message": "Archived item restored"
+ "message": "Élément archivé restauré"
},
"restoreItem": {
"message": "Restaurer l'élément"
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration d'une liste de connexions à risque."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Générez rapidement un mot de passe fort et unique grâce au menu de saisie automatique de Bitwarden sur le site à risque.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ heures",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copiez et partagez ce lien Send. Le Send sera accessible à toute personne disposant du lien pour les prochains $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copiez et partagez ce lien Send. Le Send sera accessible à toute personne possédant le lien et le mot de passe que vous avez défini pendant $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copiez et partagez ce lien Send. Il peut être vu par les personnes définies pendant $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Lien Send copié",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -3353,10 +3395,10 @@
"message": "Erreur"
},
"prfUnlockFailed": {
- "message": "Failed to unlock with passkey. Please try again or use another unlock method."
+ "message": "Impossible de déverrouiller avec la clé d'accès. Veuillez réessayer ou utiliser une autre méthode de déverrouillage."
},
"noPrfCredentialsAvailable": {
- "message": "No PRF-enabled passkeys are available for unlock. Please log in with a passkey first."
+ "message": "Aucune clé d'accès PRF disponible pour le déverrouillage. Veuillez vous connecter avec une clé d'accès en premier lieu."
},
"decryptionError": {
"message": "Erreur de déchiffrement"
@@ -4145,7 +4187,7 @@
"message": "Ok"
},
"toggleSideNavigation": {
- "message": "Basculer la navigation latérale"
+ "message": "Activer la navigation latérale"
},
"skipToContent": {
"message": "Accéder directement au contenu"
@@ -4734,7 +4776,7 @@
}
},
"moreOptionsLabelNoPlaceholder": {
- "message": "More options"
+ "message": "Plus de paramètres"
},
"moreOptionsTitle": {
"message": "Plus d'options - $ITEMNAME$",
@@ -4830,46 +4872,46 @@
"message": "Admin"
},
"automaticUserConfirmation": {
- "message": "Automatic user confirmation"
+ "message": "Confirmation d'utilisateur automatique"
},
"automaticUserConfirmationHint": {
- "message": "Automatically confirm pending users while this device is unlocked"
+ "message": "Confirmer automatiquement les utilisateurs en attente pendant que cet appareil est déverrouillé"
},
"autoConfirmOnboardingCallout": {
- "message": "Save time with automatic user confirmation"
+ "message": "Gagnez du temps grâce à la confirmation d'utilisateur automatique"
},
"autoConfirmWarning": {
- "message": "This could impact your organization’s data security. "
+ "message": "Cela peut avoir un impact sur la sécurité des données de votre organisation. "
},
"autoConfirmWarningLink": {
- "message": "Learn about the risks"
+ "message": "En apprendre plus sur les risques"
},
"autoConfirmSetup": {
- "message": "Automatically confirm new users"
+ "message": "Confirmer les nouveaux utilisateurs automatiquement"
},
"autoConfirmSetupDesc": {
- "message": "New users will be automatically confirmed while this device is unlocked."
+ "message": "Les nouveaux utilisateurs seront confirmés automatiquement pendant que cet appareil est déverrouillé."
},
"autoConfirmSetupHint": {
- "message": "What are the potential security risks?"
+ "message": "Quels-sont les potentiels risques de sécurité ?"
},
"autoConfirmEnabled": {
- "message": "Turned on automatic confirmation"
+ "message": "Confirmation automatique activée"
},
"availableNow": {
- "message": "Available now"
+ "message": "Disponible maintenant"
},
"accountSecurity": {
"message": "Sécurité du compte"
},
"phishingBlocker": {
- "message": "Phishing Blocker"
+ "message": "Bloqueur d'hameçonnage"
},
"enablePhishingDetection": {
- "message": "Phishing detection"
+ "message": "Détection de l'hameçonnage"
},
"enablePhishingDetectionDesc": {
- "message": "Display warning before accessing suspected phishing sites"
+ "message": "Afficher un avertissement avant d'accéder à des sites soupçonnés d'hameçonnage"
},
"notifications": {
"message": "Notifications"
@@ -4984,7 +5026,7 @@
}
},
"downloadAttachmentLabel": {
- "message": "Download Attachment"
+ "message": "Télécharger la pièce jointe"
},
"downloadBitwarden": {
"message": "Télécharger Bitwarden"
@@ -5126,10 +5168,10 @@
}
},
"showMatchDetectionNoPlaceholder": {
- "message": "Show match detection"
+ "message": "Afficher la détection de correspondance"
},
"hideMatchDetectionNoPlaceholder": {
- "message": "Hide match detection"
+ "message": "Masquer la détection de correspondance"
},
"autoFillOnPageLoad": {
"message": "Saisir automatiquement lors du chargement de la page ?"
@@ -5365,10 +5407,10 @@
"message": "Emplacement de l'élément"
},
"fileSends": {
- "message": "Envoi de fichiers"
+ "message": "Sends de fichier"
},
"textSends": {
- "message": "Envoi de textes"
+ "message": "Sends de texte"
},
"accountActions": {
"message": "Actions du compte"
@@ -5668,7 +5710,7 @@
"message": "Très large"
},
"narrow": {
- "message": "Narrow"
+ "message": "Réduire"
},
"sshKeyWrongPassword": {
"message": "Le mot de passe saisi est incorrect."
@@ -5719,10 +5761,10 @@
"message": "Cet identifiant est à risques et manque un site web. Ajoutez un site web et changez le mot de passe pour une meilleure sécurité."
},
"vulnerablePassword": {
- "message": "Vulnerable password."
+ "message": "Mot de passe vulnérable."
},
"changeNow": {
- "message": "Change now"
+ "message": "Changer maintenant"
},
"missingWebsite": {
"message": "Site Web manquant"
@@ -5964,7 +6006,7 @@
"message": "Numéro de carte"
},
"errorCannotDecrypt": {
- "message": "Error: Cannot decrypt"
+ "message": "Erreur : décryptage impossible"
},
"removeMasterPasswordForOrgUserKeyConnector": {
"message": "Votre organisation n'utilise plus les mots de passe principaux pour se connecter à Bitwarden. Pour continuer, vérifiez l'organisation et le domaine."
@@ -6095,46 +6137,52 @@
}
},
"acceptTransfer": {
- "message": "Accept transfer"
+ "message": "Accepter le transfert"
},
"declineAndLeave": {
- "message": "Decline and leave"
+ "message": "Refuser et quitter"
},
"whyAmISeeingThis": {
- "message": "Why am I seeing this?"
+ "message": "Pourquoi vois-je ceci ?"
},
"items": {
- "message": "Items"
+ "message": "Éléments"
},
"searchResults": {
- "message": "Search results"
+ "message": "Résultats de la recherche"
},
"resizeSideNavigation": {
- "message": "Resize side navigation"
+ "message": "Ajuster la taille de la navigation latérale"
},
"whoCanView": {
- "message": "Who can view"
+ "message": "Qui peut visionner"
},
"specificPeople": {
- "message": "Specific people"
+ "message": "Personnes spécifiques"
},
"emailVerificationDesc": {
- "message": "After sharing this Send link, individuals will need to verify their email with a code to view this Send."
+ "message": "Après avoir partagé ce lien Send, les individus devront vérifier leur courriel à l'aide d'un code afin de voir ce Send."
},
"enterMultipleEmailsSeparatedByComma": {
- "message": "Enter multiple emails by separating with a comma."
+ "message": "Entrez plusieurs courriels en les séparant d'une virgule."
+ },
+ "emailsRequiredChangeAccessType": {
+ "message": "La vérification de courriel requiert au moins une adresse courriel. Pour retirer toutes les adresses, changez le type d'accès ci-dessus."
},
"emailPlaceholder": {
- "message": "user@bitwarden.com , user@acme.com"
+ "message": "utilisateur@bitwarden.com , utilisateur@acme.com"
},
"downloadBitwardenApps": {
- "message": "Download Bitwarden apps"
+ "message": "Télécharger les applications Bitwarden"
},
"emailProtected": {
- "message": "Email protected"
+ "message": "Courriel protégé"
},
"sendPasswordHelperText": {
- "message": "Individuals will need to enter the password to view this Send",
+ "message": "Les individus devront entrer le mot de passe pour visionner ce Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Échec de la vérification d'utilisateur."
}
}
diff --git a/apps/browser/src/_locales/gl/messages.json b/apps/browser/src/_locales/gl/messages.json
index 69ef54f78eb..c84e1f56a95 100644
--- a/apps/browser/src/_locales/gl/messages.json
+++ b/apps/browser/src/_locales/gl/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Código de verificación non válido"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copiado",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Ligazón do Send copiado",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/he/messages.json b/apps/browser/src/_locales/he/messages.json
index 22939259639..5462940fa63 100644
--- a/apps/browser/src/_locales/he/messages.json
+++ b/apps/browser/src/_locales/he/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "פריטים בארכיון יופיעו כאן ויוחרגו מתוצאות חיפוש כללי והצעות למילוי אוטומטי."
},
- "itemWasSentToArchive": {
- "message": "הפריט נשלח לארכיון"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "הפריט שוחזר מהארכיב"
- },
- "itemUnarchived": {
- "message": "הפריט הוסר מהארכיון"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "העבר פריט לארכיון"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "קוד אימות שגוי"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "השדה $VALUE$ הועתק לזיכרון",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "איור של רשימת כניסות בסיכון."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "צור במהירות סיסמה חזקה וייחודית עם תפריט המילוי האוטומטי של Bitwarden באתר שבסיכון.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "קישור סֵנְד הועתק",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/hi/messages.json b/apps/browser/src/_locales/hi/messages.json
index 298f0312be7..1fe7310a1f5 100644
--- a/apps/browser/src/_locales/hi/messages.json
+++ b/apps/browser/src/_locales/hi/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "सत्यापन कोड अवैध है"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ कॉपी हो गया है।",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "जोखिमग्रस्त लॉगिन की सूची का चित्रण।"
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/hr/messages.json b/apps/browser/src/_locales/hr/messages.json
index d7814a22da0..b73f52ffaf5 100644
--- a/apps/browser/src/_locales/hr/messages.json
+++ b/apps/browser/src/_locales/hr/messages.json
@@ -29,7 +29,7 @@
"message": "Prijava pristupnim ključem"
},
"unlockWithPasskey": {
- "message": "Unlock with passkey"
+ "message": "Otključaj prisutupnim ključem"
},
"useSingleSignOn": {
"message": "Jedinstvena prijava (SSO)"
@@ -573,13 +573,10 @@
"noItemsInArchiveDesc": {
"message": "Arhivirane stavke biti će prikazane ovdje i biti će izuzete iz rezultata općih pretraga i preporuka auto-ispune."
},
- "itemWasSentToArchive": {
- "message": "Stavka poslana u arhivu"
+ "itemArchiveToast": {
+ "message": "Stavka arhivirana"
},
- "itemWasUnarchived": {
- "message": "Stavka vraćena iz arhive"
- },
- "itemUnarchived": {
+ "itemUnarchivedToast": {
"message": "Stavka vraćena iz arhive"
},
"archiveItem": {
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Nevažeći kôd za provjeru"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": " kopirano",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Ilustracija liste rizičnih prijava."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Brzo generiraj jake, jedinstvene lozinke koristeći Bitwarden dijalog auto-ispune direktno na stranici.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Kopirana poveznica Senda",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/hu/messages.json b/apps/browser/src/_locales/hu/messages.json
index ec4b2d405bf..5736378a638 100644
--- a/apps/browser/src/_locales/hu/messages.json
+++ b/apps/browser/src/_locales/hu/messages.json
@@ -573,15 +573,12 @@
"noItemsInArchiveDesc": {
"message": "Az archivált elemek itt jelennek meg és kizárásra kerülnek az általános keresési eredményekből és az automatikus kitöltési javaslatokból."
},
- "itemWasSentToArchive": {
- "message": "Az elem az archivumba került."
+ "itemArchiveToast": {
+ "message": "Az elem archiválásra került."
},
- "itemWasUnarchived": {
+ "itemUnarchivedToast": {
"message": "Az elem visszavételre került az archivumból."
},
- "itemUnarchived": {
- "message": "Az elemek visszavéelre kerültek az archivumból."
- },
"archiveItem": {
"message": "Elem archiválása"
},
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Érvénytelen ellenőrző kód"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Az email cím vagy az ellenőrző kód érvénytelen."
+ },
"valueCopied": {
"message": "$VALUE$ másolásra került.",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "A kockázatos bejelentkezések listájának illusztrációja."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "A Bitwarden széf oldal elrendezésének illusztrációja."
+ },
"generatePasswordSlideDesc": {
"message": "Gyorsan generálhatunk erős, egyedi jelszót a Bitwarden automatikus kitöltési menüjével a kockázatos webhelyen.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ óra",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Másoljuk és osszuk meg ezt a Send elem hivatkozást. A Send elem bárki számára elérhető lesz, aki rendelkezik a hivatkozással a következő $TIME$ alatt.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Másoljuk és osszuk meg ezt a Send elem hivatkozást. A Send elem bárki számára elérhető lesz, aki rendelkezik a hivatkozással és a jelszóval a következő $TIME$ alatt.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Másoljuk és osszuk meg ezt a Send hivatkozást. Megtekinthetik a megadott személyek a következő $TIME$ intervallumban.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "A Send hivatkozás másolásra került.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Írjunk be több email címet vesszővel elválasztva."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Az email cím ellenőrzéshez legalább egy email cím szükséges. Az összes email cím eltávolításához módosítsuk a fenti hozzáférési típust."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "A személyeknek meg kell adniuk a jelszót a Send elem megtekintéséhez.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "A felhasználó ellenőrzése sikertelen volt."
}
}
diff --git a/apps/browser/src/_locales/id/messages.json b/apps/browser/src/_locales/id/messages.json
index f364b2f7540..63e975466ed 100644
--- a/apps/browser/src/_locales/id/messages.json
+++ b/apps/browser/src/_locales/id/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Butir yang diarsipkan akan muncul di sini dan akan dikecualikan dari hasil pencarian umum dan saran isi otomatis."
},
- "itemWasSentToArchive": {
- "message": "Butir dikirim ke arsip"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Arsipkan butir"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Kode verifikasi tidak valid"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ disalin",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Gambaran daftar info masuk yang berpotensi bahaya."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Hasilkan kata sandi yang kuat dan unik dengan cepat dengan menu isi otomatis Bitwarden pada situs yang berpotensi bahaya.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Tautan Send disalin",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/it/messages.json b/apps/browser/src/_locales/it/messages.json
index 9c4ce6a0369..f1d704c6d48 100644
--- a/apps/browser/src/_locales/it/messages.json
+++ b/apps/browser/src/_locales/it/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Gli elementi archiviati compariranno qui e saranno esclusi dai risultati di ricerca e suggerimenti di autoriempimento."
},
- "itemWasSentToArchive": {
+ "itemArchiveToast": {
"message": "Elemento archiviato"
},
- "itemWasUnarchived": {
- "message": "Elemento rimosso dall'archivio"
- },
- "itemUnarchived": {
- "message": "Elemento rimosso dall'archivio"
+ "itemUnarchivedToast": {
+ "message": "Elemento estratto dall'archivio"
},
"archiveItem": {
"message": "Archivia elemento"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Codice di verifica non valido"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Codice di verifica non valido"
+ },
"valueCopied": {
"message": "$VALUE$ copiata",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustrazione di una lista di login a rischio."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustrazione del layout di pagina della cassaforte Bitwarden."
+ },
"generatePasswordSlideDesc": {
"message": "Genera rapidamente una parola d'accesso forte e unica con il menu' di riempimento automatico Bitwarden nel sito a rischio.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ ore",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copia e condividi questo link di Send. Sarà disponibile a chiunque abbia il link per $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copia e condividi questo link di Send. Sarà disponibile a chiunque abbia link e password per $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copia e condividi questo link Send: potrà essere visualizzato dalle persone che hai specificato per $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Link del Send copiato",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -5964,7 +6006,7 @@
"message": "Numero di carta"
},
"errorCannotDecrypt": {
- "message": "Error: Cannot decrypt"
+ "message": "Errore: impossibile decrittare"
},
"removeMasterPasswordForOrgUserKeyConnector": {
"message": "La tua organizzazione non utilizza più le password principali per accedere a Bitwarden. Per continuare, verifica l'organizzazione e il dominio."
@@ -6104,10 +6146,10 @@
"message": "Perché vedo questo avviso?"
},
"items": {
- "message": "Items"
+ "message": "Elementi"
},
"searchResults": {
- "message": "Search results"
+ "message": "Risultati di ricerca"
},
"resizeSideNavigation": {
"message": "Ridimensiona la navigazione laterale"
@@ -6124,17 +6166,23 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Inserisci più indirizzi email separandoli con virgole."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "La verifica via email richiede almeno un indirizzo email. Per rimuovere tutte le email, modifica il tipo di accesso qui sopra."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
"downloadBitwardenApps": {
- "message": "Download Bitwarden apps"
+ "message": "Scarica l'app Bitwarden"
},
"emailProtected": {
- "message": "Email protected"
+ "message": "Email protetta"
},
"sendPasswordHelperText": {
- "message": "Individuals will need to enter the password to view this Send",
+ "message": "I destinatari dovranno inserire la password per visualizzare questo Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Verifica dell'utente non riuscita."
}
}
diff --git a/apps/browser/src/_locales/ja/messages.json b/apps/browser/src/_locales/ja/messages.json
index c8a963fc744..ecb03f3321d 100644
--- a/apps/browser/src/_locales/ja/messages.json
+++ b/apps/browser/src/_locales/ja/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "アーカイブされたアイテムはここに表示され、通常の検索結果および自動入力の候補から除外されます。"
},
- "itemWasSentToArchive": {
- "message": "アイテムはアーカイブに送信されました"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "アイテムはアーカイブから解除されました"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "アイテムをアーカイブ"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "認証コードが間違っています"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ をコピーしました",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "危険な状態にあるログイン情報の一覧表示の例"
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Bitwarden の自動入力メニューで、強力で一意なパスワードをすぐに生成しましょう。",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send リンクをコピーしました",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/ka/messages.json b/apps/browser/src/_locales/ka/messages.json
index cb6129ed2bb..17c86de13fb 100644
--- a/apps/browser/src/_locales/ka/messages.json
+++ b/apps/browser/src/_locales/ka/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "არასწორი გადამოწმების კოდი"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/km/messages.json b/apps/browser/src/_locales/km/messages.json
index 336e8783b75..51ca51960d7 100644
--- a/apps/browser/src/_locales/km/messages.json
+++ b/apps/browser/src/_locales/km/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/kn/messages.json b/apps/browser/src/_locales/kn/messages.json
index e97ce2a95a4..0dd4699a9a2 100644
--- a/apps/browser/src/_locales/kn/messages.json
+++ b/apps/browser/src/_locales/kn/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ ನಕಲಿಸಲಾಗಿದೆ",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/ko/messages.json b/apps/browser/src/_locales/ko/messages.json
index 9f570d62abb..66467d99888 100644
--- a/apps/browser/src/_locales/ko/messages.json
+++ b/apps/browser/src/_locales/ko/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "보관된 항목은 여기에 표시되며 일반 검색 결과 및 자동 완성 제안에서 제외됩니다."
},
- "itemWasSentToArchive": {
- "message": "항목이 보관함으로 이동되었습니다"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "항목이 보관 해제되었습니다"
- },
- "itemUnarchived": {
- "message": "항목 보관 해제됨"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "항목 보관"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "유효하지 않은 확인 코드"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$를 클립보드에 복사함",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send 링크 복사됨",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/lt/messages.json b/apps/browser/src/_locales/lt/messages.json
index 6e105f044f3..a4cfb34942c 100644
--- a/apps/browser/src/_locales/lt/messages.json
+++ b/apps/browser/src/_locales/lt/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Neteisingas patvirtinimo kodas"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "Nukopijuota $VALUE$",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/lv/messages.json b/apps/browser/src/_locales/lv/messages.json
index 8c86d7040fe..d6e9a171978 100644
--- a/apps/browser/src/_locales/lv/messages.json
+++ b/apps/browser/src/_locales/lv/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Šeit parādīsies arhivētie vienumi, un tie netiks iekļauti vispārējās meklēšanas iznākumos un automātiskās aizpildes ieteikumos."
},
- "itemWasSentToArchive": {
- "message": "Vienums tika ievietots arhīvā"
+ "itemArchiveToast": {
+ "message": "Vienums ievietots arhīvā"
},
- "itemWasUnarchived": {
- "message": "Vienums tika izņemts no arhīva"
- },
- "itemUnarchived": {
- "message": "Vienums tika izņemts no arhīva"
+ "itemUnarchivedToast": {
+ "message": "Vienums izņemts no arhīva"
},
"archiveItem": {
"message": "Arhivēt vienumu"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Nederīgs apliecinājuma kods"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Nederīga e-pasta adrese vai apliecinājuma kods"
+ },
"valueCopied": {
"message": "$VALUE$ ir starpliktuvē",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Riskam pakļauto pieteikšanās vienumu saraksta attēlojums."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Riskam pakļauto vienumu vietnē ar automātiskās aizpildes izvēlni var ātri izveidot stipru, neatkārtojamu paroli.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send saite ievietota starpliktuvē",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "E-pasta apliecināšanai ir nepieciešama vismaz viena e-pasta adrese. Lai noņemtu visas e-pasta adreses, augstāk jānomaina piekļūšanas veids."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Cilvēkiem būs jāievada parole, lai apskatītu šo Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Lietotāja apliecināšana neizdevās."
}
}
diff --git a/apps/browser/src/_locales/ml/messages.json b/apps/browser/src/_locales/ml/messages.json
index 61f69ffe22b..61b9f4d45ab 100644
--- a/apps/browser/src/_locales/ml/messages.json
+++ b/apps/browser/src/_locales/ml/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ പകർത്തി",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/mr/messages.json b/apps/browser/src/_locales/mr/messages.json
index 5cc614c5df7..2a793784aa2 100644
--- a/apps/browser/src/_locales/mr/messages.json
+++ b/apps/browser/src/_locales/mr/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/my/messages.json b/apps/browser/src/_locales/my/messages.json
index 336e8783b75..51ca51960d7 100644
--- a/apps/browser/src/_locales/my/messages.json
+++ b/apps/browser/src/_locales/my/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/nb/messages.json b/apps/browser/src/_locales/nb/messages.json
index ce6c8d5a7d4..d19dc3571e2 100644
--- a/apps/browser/src/_locales/nb/messages.json
+++ b/apps/browser/src/_locales/nb/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Ugyldig bekreftelseskode"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ er kopiert",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send-lenken ble kopiert",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/ne/messages.json b/apps/browser/src/_locales/ne/messages.json
index 336e8783b75..51ca51960d7 100644
--- a/apps/browser/src/_locales/ne/messages.json
+++ b/apps/browser/src/_locales/ne/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/nl/messages.json b/apps/browser/src/_locales/nl/messages.json
index 44522727429..0d3ed844a15 100644
--- a/apps/browser/src/_locales/nl/messages.json
+++ b/apps/browser/src/_locales/nl/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Gearchiveerde items verschijnen hier en worden uitgesloten van algemene zoekresultaten en automatisch invulsuggesties."
},
- "itemWasSentToArchive": {
- "message": "Item naar archief verzonden"
+ "itemArchiveToast": {
+ "message": "Item gearchiveerd"
},
- "itemWasUnarchived": {
- "message": "Item uit het archief gehaald"
- },
- "itemUnarchived": {
- "message": "Item uit het archief gehaald"
+ "itemUnarchivedToast": {
+ "message": "Item gedearchiveerd"
},
"archiveItem": {
"message": "Item archiveren"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Ongeldige verificatiecode"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Ongeldig e-mailadres verificatiecode"
+ },
"valueCopied": {
"message": "$VALUE$ gekopieerd",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Voorbeeld van een lijst van risicovolle inloggegevens."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustratie van de lay-out van de Bitwarden-kluispagina."
+ },
"generatePasswordSlideDesc": {
"message": "Genereer snel een sterk, uniek wachtwoord met het automatisch invulmenu van Bitwarden op de risicovolle website.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ uur",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Kopieer en deel deze Send-link. De Send is beschikbaar voor iedereen met de link voor de volgende $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Kopieer en deel deze Send-link. De Send is beschikbaar voor iedereen met de link en het ingestelde wachtwoord voor de volgende $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Kopieer en deel deze Send-link. Het kan worden bekeken door de mensen die je hebt opgegeven voor de volgende $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send-link gekopieerd",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Voer meerdere e-mailadressen in door te scheiden met een komma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "E-mailverificatie vereist ten minste één e-mailadres. Om alle e-mailadressen te verwijderen, moet je het toegangstype hierboven wijzigen."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuen moeten het wachtwoord invoeren om deze Send te bekijken",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Gebruikersverificatie is mislukt."
}
}
diff --git a/apps/browser/src/_locales/nn/messages.json b/apps/browser/src/_locales/nn/messages.json
index 336e8783b75..51ca51960d7 100644
--- a/apps/browser/src/_locales/nn/messages.json
+++ b/apps/browser/src/_locales/nn/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/or/messages.json b/apps/browser/src/_locales/or/messages.json
index 336e8783b75..51ca51960d7 100644
--- a/apps/browser/src/_locales/or/messages.json
+++ b/apps/browser/src/_locales/or/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/pl/messages.json b/apps/browser/src/_locales/pl/messages.json
index 44c7d9e6d47..c470af8c1dc 100644
--- a/apps/browser/src/_locales/pl/messages.json
+++ b/apps/browser/src/_locales/pl/messages.json
@@ -440,7 +440,7 @@
"message": "Synchronizacja"
},
"syncNow": {
- "message": "Sync now"
+ "message": "Synchronizuj teraz"
},
"lastSync": {
"message": "Ostatnia synchronizacja:"
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Zarchiwizowane elementy pojawią się tutaj i zostaną wykluczone z wyników wyszukiwania i sugestii autouzupełniania."
},
- "itemWasSentToArchive": {
- "message": "Element został przeniesiony do archiwum"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Element został usunięty z archiwum"
- },
- "itemUnarchived": {
- "message": "Element został usunięty z archiwum"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archiwizuj element"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Kod weryfikacyjny jest nieprawidłowy"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "Skopiowano $VALUE$",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Ilustracja listy danych logowania, które są zagrożone."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Wygeneruj silne i unikalne hasło dla zagrożonej strony internetowej za pomocą autouzupełniania Bitwarden.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Link wysyłki został skopiowany",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,11 +6166,14 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
"downloadBitwardenApps": {
- "message": "Download Bitwarden apps"
+ "message": "Pobierz aplikacje Bitwarden"
},
"emailProtected": {
"message": "Email protected"
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/pt_BR/messages.json b/apps/browser/src/_locales/pt_BR/messages.json
index 5ad95b480db..9b0c2483b2a 100644
--- a/apps/browser/src/_locales/pt_BR/messages.json
+++ b/apps/browser/src/_locales/pt_BR/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Os itens arquivados aparecerão aqui e serão excluídos dos resultados gerais de busca e das sugestões de preenchimento automático."
},
- "itemWasSentToArchive": {
- "message": "O item foi enviado para o arquivo"
+ "itemArchiveToast": {
+ "message": "Item arquivado"
},
- "itemWasUnarchived": {
- "message": "O item foi desarquivado"
- },
- "itemUnarchived": {
- "message": "O item foi desarquivado"
+ "itemUnarchivedToast": {
+ "message": "Item desarquivado"
},
"archiveItem": {
"message": "Arquivar item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Código de verificação inválido"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "E-mail ou código de verificação inválido"
+ },
"valueCopied": {
"message": "$VALUE$ copiado(a)",
"description": "Value has been copied to the clipboard.",
@@ -991,10 +991,10 @@
"message": "Não"
},
"noAuth": {
- "message": "Anyone with the link"
+ "message": "Qualquer um com o link"
},
"anyOneWithPassword": {
- "message": "Anyone with a password set by you"
+ "message": "Qualquer pessoa com uma senha configurada por você"
},
"location": {
"message": "Localização"
@@ -2055,7 +2055,7 @@
"message": "E-mail"
},
"emails": {
- "message": "Emails"
+ "message": "E-mails"
},
"phone": {
"message": "Telefone"
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Ilustração de uma lista de credenciais em risco."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Ilustração do layout da página do Cofre do Bitwarden."
+ },
"generatePasswordSlideDesc": {
"message": "Gere uma senha forte e única com rapidez com o menu de preenchimento automático no site em risco.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ horas",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copie e compartilhe este link do Send. O Send ficará disponível para qualquer um com o link por $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copie e compartilhe este link do Send. O Send ficará disponível para qualquer um com o link e a senha por $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copie e compartilhe este link do Send. Ele pode ser visto pelas pessoas que você especificou pelos próximos $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Link do Send copiado",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -5964,7 +6006,7 @@
"message": "Número do cartão"
},
"errorCannotDecrypt": {
- "message": "Error: Cannot decrypt"
+ "message": "Erro: Não é possível descriptografar"
},
"removeMasterPasswordForOrgUserKeyConnector": {
"message": "A sua organização não está mais usando senhas principais para se conectar ao Bitwarden. Para continuar, verifique a organização e o domínio."
@@ -6104,37 +6146,43 @@
"message": "Por que estou vendo isso?"
},
"items": {
- "message": "Items"
+ "message": "Itens"
},
"searchResults": {
- "message": "Search results"
+ "message": "Resultados da busca"
},
"resizeSideNavigation": {
"message": "Redimensionar navegação lateral"
},
"whoCanView": {
- "message": "Who can view"
+ "message": "Quem pode visualizar"
},
"specificPeople": {
- "message": "Specific people"
+ "message": "Pessoas específicas"
},
"emailVerificationDesc": {
- "message": "After sharing this Send link, individuals will need to verify their email with a code to view this Send."
+ "message": "Após compartilhar este link de Send, indivíduos precisarão verificar seus e-mails com um código para visualizar este Send."
},
"enterMultipleEmailsSeparatedByComma": {
- "message": "Enter multiple emails by separating with a comma."
+ "message": "Digite vários e-mails, separados com uma vírgula."
+ },
+ "emailsRequiredChangeAccessType": {
+ "message": "A verificação de e-mail requer pelo menos um endereço de e-mail. Para remover todos, altere o tipo de acesso acima."
},
"emailPlaceholder": {
- "message": "user@bitwarden.com , user@acme.com"
+ "message": "usuário@bitwarden.com , usuário@acme.com"
},
"downloadBitwardenApps": {
- "message": "Download Bitwarden apps"
+ "message": "Baixar aplicativos do Bitwarden"
},
"emailProtected": {
- "message": "Email protected"
+ "message": "Protegido por e-mail"
},
"sendPasswordHelperText": {
- "message": "Individuals will need to enter the password to view this Send",
+ "message": "Os indivíduos precisarão digitar a senha para ver este Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Falha na verificação do usuário."
}
}
diff --git a/apps/browser/src/_locales/pt_PT/messages.json b/apps/browser/src/_locales/pt_PT/messages.json
index 604bf054707..5d498908fa5 100644
--- a/apps/browser/src/_locales/pt_PT/messages.json
+++ b/apps/browser/src/_locales/pt_PT/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Os itens arquivados aparecerão aqui e serão excluídos dos resultados gerais da pesquisa e das sugestões de preenchimento automático."
},
- "itemWasSentToArchive": {
- "message": "O item foi movido para o arquivo"
+ "itemArchiveToast": {
+ "message": "Item arquivado"
},
- "itemWasUnarchived": {
- "message": "O item foi desarquivado"
- },
- "itemUnarchived": {
- "message": "O item foi desarquivado"
+ "itemUnarchivedToast": {
+ "message": "Item desarquivado"
},
"archiveItem": {
"message": "Arquivar item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Código de verificação inválido"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "E-mail ou código de verificação inválido"
+ },
"valueCopied": {
"message": "$VALUE$ copiado(a)",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Ilustração de uma lista de credenciais que estão em risco."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Ilustração do layout da página do cofre Bitwarden."
+ },
"generatePasswordSlideDesc": {
"message": "Gira rapidamente uma palavra-passe forte e única com o menu de preenchimento automático do Bitwarden no site em risco.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ horas",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copie e partilhe este link do Send. O Send estará disponível para qualquer pessoa com o link durante os próximos $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copie e partilhe este link do Send. O Send estará disponível para qualquer pessoa com o link e palavras-passe durante os próximos $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copie e partilhe este link do Send. Pode ser visualizado pelas pessoas que especificou durante os próximos $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Link do Send copiado",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Introduza vários e-mails, separados por vírgula."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "A verificação por e-mail requer pelo menos um endereço de e-mail. Para remover todos os e-mails, altere o tipo de acesso acima."
+ },
"emailPlaceholder": {
"message": "utilizador@bitwarden.com , utilizador@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Os indivíduos terão de introduzir a palavra-passe para ver este Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Falha na verificação do utilizador."
}
}
diff --git a/apps/browser/src/_locales/ro/messages.json b/apps/browser/src/_locales/ro/messages.json
index 12706943e83..eb6c7eb2a66 100644
--- a/apps/browser/src/_locales/ro/messages.json
+++ b/apps/browser/src/_locales/ro/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Cod de verificare nevalid"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": " $VALUE$ s-a copiat",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/ru/messages.json b/apps/browser/src/_locales/ru/messages.json
index dab9a22f03a..75a2afb4e1a 100644
--- a/apps/browser/src/_locales/ru/messages.json
+++ b/apps/browser/src/_locales/ru/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Архивированные элементы появятся здесь и будут исключены из общих результатов поиска и предложений автозаполнения."
},
- "itemWasSentToArchive": {
- "message": "Элемент был отправлен в архив"
+ "itemArchiveToast": {
+ "message": "Элемент архивирован"
},
- "itemWasUnarchived": {
- "message": "Элемент был разархивирован"
- },
- "itemUnarchived": {
- "message": "Элемент был разархивирован"
+ "itemUnarchivedToast": {
+ "message": "Элемент разархивирован"
},
"archiveItem": {
"message": "Архивировать элемент"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Неверный код подтверждения"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Неверный email или код подтверждения"
+ },
"valueCopied": {
"message": "$VALUE$ скопировано",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Иллюстрация списка логинов, которые подвержены риску."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Иллюстрация макета страницы хранилища Bitwarden."
+ },
"generatePasswordSlideDesc": {
"message": "Быстро сгенерируйте надежный уникальный пароль с помощью меню автозаполнения Bitwarden на сайте, подверженном риску.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ час.",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Скопируйте и поделитесь этой ссылкой Send. Send будет доступна всем, у кого есть ссылка, в течение следующих $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Скопируйте и поделитесь этой ссылкой Send. Send будет доступна всем, у кого есть ссылка и пароль в течение следующих $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Скопируйте и распространите эту ссылку для Send. Она может быть просмотрена указанными вами пользователями в течение $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Ссылка на Send скопирована",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Введите несколько email, разделяя их запятой."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Для проверки электронной почты требуется как минимум один адрес email. Чтобы удалить все адреса электронной почты, измените тип доступа выше."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Пользователям необходимо будет ввести пароль для просмотра этой Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Проверка пользователя не удалась."
}
}
diff --git a/apps/browser/src/_locales/si/messages.json b/apps/browser/src/_locales/si/messages.json
index d228cdb512a..d7e63d70f87 100644
--- a/apps/browser/src/_locales/si/messages.json
+++ b/apps/browser/src/_locales/si/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "වලංගු නොවන සත්යාපන කේතය"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ පිටපත් කරන ලදි",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/sk/messages.json b/apps/browser/src/_locales/sk/messages.json
index db7efcd8b9f..806e83e0b1f 100644
--- a/apps/browser/src/_locales/sk/messages.json
+++ b/apps/browser/src/_locales/sk/messages.json
@@ -573,13 +573,10 @@
"noItemsInArchiveDesc": {
"message": "Tu sa zobrazia archivované položky, ktoré budú vylúčené zo všeobecného vyhľadávania a z návrhov automatického vypĺňania."
},
- "itemWasSentToArchive": {
+ "itemArchiveToast": {
"message": "Položka bola archivovaná"
},
- "itemWasUnarchived": {
- "message": "Položka bola odobraná z archívu"
- },
- "itemUnarchived": {
+ "itemUnarchivedToast": {
"message": "Položka bola odobraná z archívu"
},
"archiveItem": {
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Neplatný verifikačný kód"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Neplatný e-mailový alebo overovací kód"
+ },
"valueCopied": {
"message": " skopírované",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Príklady zoznamu prihlásení, ktoré sú ohrozené."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Ilustrácia rozloženia stránky trezoru Bitwarden."
+ },
"generatePasswordSlideDesc": {
"message": "Rýchlo generujte silné, jedinečné heslo pomocu ponuky automatického vypĺňania Bitwardenu na ohrozených stránkach.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hod.",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Skopírujte a zdieľajte tento odkaz na Send. Send bude dostupný každému, kto má odkaz, počas nasledujúcich $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Skopírujte a zdieľajte tento odkaz na Send. Send bude dostupný každému, kto má odkaz a heslo od vás, počas nasledujúcich $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Skopírujte a zdieľajte tento odkaz na Send. Zobraziť ho môžu ľudia, ktorých ste vybrali, počas nasledujúcich $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Skopírovaný odkaz na Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Zadajte viacero e-mailových adries oddelených čiarkou."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Overenie e-mailu vyžaduje aspoň jednu e-mailovú adresu. Ak chcete odstrániť všetky e-maily, zmeňte typ prístupu vyššie."
+ },
"emailPlaceholder": {
"message": "pouzivate@bitwarden.com, pouzivatel@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Jednotlivci budú musieť zadať heslo, aby mohli zobraziť tento Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Overenie používateľa zlyhalo."
}
}
diff --git a/apps/browser/src/_locales/sl/messages.json b/apps/browser/src/_locales/sl/messages.json
index 07ee84ab810..88f54663ccd 100644
--- a/apps/browser/src/_locales/sl/messages.json
+++ b/apps/browser/src/_locales/sl/messages.json
@@ -6,30 +6,30 @@
"message": "Bitwarden logo"
},
"extName": {
- "message": "Bitwarden Password Manager",
+ "message": "Bitwarden – Upravitelj gesel",
"description": "Extension name, MUST be less than 40 characters (Safari restriction)"
},
"extDesc": {
- "message": "At home, at work, or on the go, Bitwarden easily secures all your passwords, passkeys, and sensitive information",
+ "message": "Doma, na delu ali na poti – Bitwarden enostavno zaščiti vsa vaša gesla, ključe za dostop in občutljive podatke",
"description": "Extension description, MUST be less than 112 characters (Safari restriction)"
},
"loginOrCreateNewAccount": {
"message": "Prijavite se ali ustvarite nov račun za dostop do svojega varnega trezorja."
},
"inviteAccepted": {
- "message": "Invitation accepted"
+ "message": "Povabilo sprejeto"
},
"createAccount": {
"message": "Ustvari račun"
},
"newToBitwarden": {
- "message": "New to Bitwarden?"
+ "message": "Novi na Bitwardenu?"
},
"logInWithPasskey": {
- "message": "Log in with passkey"
+ "message": "Prijava s ključem za dostop"
},
"unlockWithPasskey": {
- "message": "Unlock with passkey"
+ "message": "Odkleni s ključem za dostop"
},
"useSingleSignOn": {
"message": "Use single sign-on"
@@ -38,10 +38,10 @@
"message": "Your organization requires single sign-on."
},
"welcomeBack": {
- "message": "Welcome back"
+ "message": "Dobrodošli nazaj"
},
"setAStrongPassword": {
- "message": "Set a strong password"
+ "message": "Nastavite močno geslo"
},
"finishCreatingYourAccountBySettingAPassword": {
"message": "Finish creating your account by setting a password"
@@ -90,7 +90,7 @@
"message": "Namig za glavno geslo (neobvezno)"
},
"passwordStrengthScore": {
- "message": "Password strength score $SCORE$",
+ "message": "Ocena moči gesla: $SCORE$",
"placeholders": {
"score": {
"content": "$1",
@@ -99,7 +99,7 @@
}
},
"joinOrganization": {
- "message": "Join organization"
+ "message": "Pridružite se organizaciji"
},
"joinOrganizationName": {
"message": "Join $ORGANIZATIONNAME$",
@@ -156,31 +156,31 @@
"message": "Kopiraj varnostno kodo"
},
"copyName": {
- "message": "Copy name"
+ "message": "Kopiraj ime"
},
"copyCompany": {
- "message": "Copy company"
+ "message": "Kopiraj podjetje"
},
"copySSN": {
"message": "Copy Social Security number"
},
"copyPassportNumber": {
- "message": "Copy passport number"
+ "message": "Kopiraj številko potnega lista"
},
"copyLicenseNumber": {
"message": "Copy license number"
},
"copyPrivateKey": {
- "message": "Copy private key"
+ "message": "Kopiraj zasebni ključ"
},
"copyPublicKey": {
- "message": "Copy public key"
+ "message": "Kopiraj javni ključ"
},
"copyFingerprint": {
"message": "Copy fingerprint"
},
"copyCustomField": {
- "message": "Copy $FIELD$",
+ "message": "Kopiraj $FIELD$",
"placeholders": {
"field": {
"content": "$1",
@@ -189,17 +189,17 @@
}
},
"copyWebsite": {
- "message": "Copy website"
+ "message": "Kopiraj spletno stran"
},
"copyNotes": {
- "message": "Copy notes"
+ "message": "Kopiraj zapiske"
},
"copy": {
- "message": "Copy",
+ "message": "Kopiraj",
"description": "Copy to clipboard"
},
"fill": {
- "message": "Fill",
+ "message": "Izpolni",
"description": "This string is used on the vault page to indicate autofilling. Horizontal space is limited in the interface here so try and keep translations as concise as possible."
},
"autoFill": {
@@ -215,10 +215,10 @@
"message": "Samodejno izpolni identiteto"
},
"fillVerificationCode": {
- "message": "Fill verification code"
+ "message": "Izpolni kodo za preverjanje"
},
"fillVerificationCodeAria": {
- "message": "Fill Verification Code",
+ "message": "Izpolni kodo za preverjanje",
"description": "Aria label for the heading displayed the inline menu for totp code autofill"
},
"generatePasswordCopied": {
@@ -297,13 +297,13 @@
"message": "Spremeni glavno geslo"
},
"continueToWebApp": {
- "message": "Continue to web app?"
+ "message": "Nadaljuj v spletno aplikacijo?"
},
"continueToWebAppDesc": {
- "message": "Explore more features of your Bitwarden account on the web app."
+ "message": "Raziščite več funkcij vašega Bitwarden računa na spletni aplikaciji."
},
"continueToHelpCenter": {
- "message": "Continue to Help Center?"
+ "message": "Nadaljuj na center za pomoč?"
},
"continueToHelpCenterDesc": {
"message": "Learn more about how to use Bitwarden on the Help Center."
@@ -315,7 +315,7 @@
"message": "Help others find out if Bitwarden is right for them. Visit your browser's extension store and leave a rating now."
},
"changeMasterPasswordOnWebConfirmation": {
- "message": "You can change your master password on the Bitwarden web app."
+ "message": "Vaše glavno geslo lahko zamenjate v Bitwarden spletni aplikaciji."
},
"fingerprintPhrase": {
"message": "Identifikacijsko geslo",
@@ -332,19 +332,19 @@
"message": "Odjava"
},
"aboutBitwarden": {
- "message": "About Bitwarden"
+ "message": "O Bitwardenu"
},
"about": {
"message": "O programu"
},
"moreFromBitwarden": {
- "message": "More from Bitwarden"
+ "message": "Več od Bitwardena"
},
"continueToBitwardenDotCom": {
- "message": "Continue to bitwarden.com?"
+ "message": "Nadaljuj na bitwarden.com?"
},
"bitwardenForBusiness": {
- "message": "Bitwarden for Business"
+ "message": "Bitwarden za podjetja"
},
"bitwardenAuthenticator": {
"message": "Bitwarden Authenticator"
@@ -398,10 +398,10 @@
}
},
"newFolder": {
- "message": "New folder"
+ "message": "Nova mapa"
},
"folderName": {
- "message": "Folder name"
+ "message": "Ime mape"
},
"folderHintText": {
"message": "Nest a folder by adding the parent folder's name followed by a “/”. Example: Social/Forums"
@@ -440,7 +440,7 @@
"message": "Sinhronizacija"
},
"syncNow": {
- "message": "Sync now"
+ "message": "Sinhroniziraj zdaj"
},
"lastSync": {
"message": "Zadnja sinhronizacija:"
@@ -456,7 +456,7 @@
"message": "Avtomatično generiraj močna, edinstvena gesla za vaše prijave."
},
"bitWebVaultApp": {
- "message": "Bitwarden web app"
+ "message": "Bitwarden spletna aplikacija"
},
"select": {
"message": "Izberi"
@@ -468,7 +468,7 @@
"message": "Generate passphrase"
},
"passwordGenerated": {
- "message": "Password generated"
+ "message": "Geslo generirano"
},
"passphraseGenerated": {
"message": "Passphrase generated"
@@ -493,7 +493,7 @@
"description": "Card header for password generator include block"
},
"uppercaseDescription": {
- "message": "Include uppercase characters",
+ "message": "Vključi velike črke",
"description": "Tooltip for the password generator uppercase character checkbox"
},
"uppercaseLabel": {
@@ -501,7 +501,7 @@
"description": "Label for the password generator uppercase character checkbox"
},
"lowercaseDescription": {
- "message": "Include lowercase characters",
+ "message": "Vključi male črke",
"description": "Full description for the password generator lowercase character checkbox"
},
"lowercaseLabel": {
@@ -509,7 +509,7 @@
"description": "Label for the password generator lowercase character checkbox"
},
"numbersDescription": {
- "message": "Include numbers",
+ "message": "Vključi števila",
"description": "Full description for the password generator numbers checkbox"
},
"numbersLabel": {
@@ -517,7 +517,7 @@
"description": "Label for the password generator numbers checkbox"
},
"specialCharactersDescription": {
- "message": "Include special characters",
+ "message": "Vključi posebne znake",
"description": "Full description for the password generator special characters checkbox"
},
"numWords": {
@@ -540,7 +540,7 @@
"message": "Minimalno posebnih znakov"
},
"avoidAmbiguous": {
- "message": "Avoid ambiguous characters",
+ "message": "Izogibaj se dvoumnim znakom",
"description": "Label for the avoid ambiguous characters checkbox."
},
"generatorPolicyInEffect": {
@@ -554,33 +554,30 @@
"message": "Reset search"
},
"archiveNoun": {
- "message": "Archive",
+ "message": "Arhiv",
"description": "Noun"
},
"archiveVerb": {
- "message": "Archive",
+ "message": "Arhiviraj",
"description": "Verb"
},
"unArchive": {
- "message": "Unarchive"
+ "message": "Odstrani iz arhiva"
},
"itemsInArchive": {
- "message": "Items in archive"
+ "message": "Elementi v arhivu"
},
"noItemsInArchive": {
- "message": "No items in archive"
+ "message": "Ni elementov v arhivu"
},
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -595,10 +592,10 @@
"message": "Unarchive and save"
},
"upgradeToUseArchive": {
- "message": "A premium membership is required to use Archive."
+ "message": "Za uporabo Arhiva je potrebno premium članstvo."
},
"itemRestored": {
- "message": "Item has been restored"
+ "message": "Vnos je bil obnovljen"
},
"edit": {
"message": "Uredi"
@@ -607,13 +604,13 @@
"message": "Pogled"
},
"viewAll": {
- "message": "View all"
+ "message": "Poglej vse"
},
"showAll": {
- "message": "Show all"
+ "message": "Prikaži vse"
},
"viewLess": {
- "message": "View less"
+ "message": "Poglej manj"
},
"viewLogin": {
"message": "View login"
@@ -643,10 +640,10 @@
"message": "Unfavorite"
},
"itemAddedToFavorites": {
- "message": "Item added to favorites"
+ "message": "Element dodan med priljubljene"
},
"itemRemovedFromFavorites": {
- "message": "Item removed from favorites"
+ "message": "Element odstranen iz priljubljenih"
},
"notes": {
"message": "Opombe"
@@ -712,7 +709,7 @@
"message": "Vault timeout"
},
"otherOptions": {
- "message": "Other options"
+ "message": "Ostale možnosti"
},
"rateExtension": {
"message": "Ocenite to razširitev"
@@ -721,25 +718,25 @@
"message": "Vaš brskalnik ne podpira enostavnega kopiranja na odložišče. Prosimo, kopirajte ročno."
},
"verifyYourIdentity": {
- "message": "Verify your identity"
+ "message": "Potrdite vašo identiteto"
},
"weDontRecognizeThisDevice": {
- "message": "We don't recognize this device. Enter the code sent to your email to verify your identity."
+ "message": "Te naprave ne prepoznamo. Vnesite kodo, ki je bila poslana na vaš e-poštni naslov, da potrdite vašo identiteto."
},
"continueLoggingIn": {
- "message": "Continue logging in"
+ "message": "Nadaljujte s prijavo"
},
"yourVaultIsLocked": {
"message": "Vaš trezor je zaklenjen. Za nadaljevanje potrdite svojo identiteto."
},
"yourVaultIsLockedV2": {
- "message": "Your vault is locked"
+ "message": "Vaš trezor je zaklenjen"
},
"yourAccountIsLocked": {
- "message": "Your account is locked"
+ "message": "Vaš račun je zaklenjen"
},
"or": {
- "message": "or"
+ "message": "ali"
},
"unlock": {
"message": "Odkleni"
@@ -761,7 +758,7 @@
"message": "Napačno glavno geslo"
},
"invalidMasterPasswordConfirmEmailAndHost": {
- "message": "Invalid master password. Confirm your email is correct and your account was created on $HOST$.",
+ "message": "Neveljavno glavno geslo. Preverite, da je vaš e-poštni naslov pravilen, ter da je bil vaš račun ustvarjen na $HOST$.",
"placeholders": {
"host": {
"content": "$1",
@@ -779,7 +776,7 @@
"message": "Zakleni zdaj"
},
"lockAll": {
- "message": "Lock all"
+ "message": "Zakleni vse"
},
"immediately": {
"message": "Takoj"
@@ -836,13 +833,13 @@
"message": "Confirm master password"
},
"masterPassword": {
- "message": "Master password"
+ "message": "Glavno geslo"
},
"masterPassImportant": {
- "message": "Your master password cannot be recovered if you forget it!"
+ "message": "Če pozabite glavno geslo, ga ne bo mogoče obnoviti!"
},
"masterPassHintLabel": {
- "message": "Master password hint"
+ "message": "Namig za glavno geslo"
},
"errorOccurred": {
"message": "Prišlo je do napake"
@@ -879,7 +876,7 @@
"message": "Your new account has been created!"
},
"youHaveBeenLoggedIn": {
- "message": "You have been logged in!"
+ "message": "Prijavljeni ste!"
},
"youSuccessfullyLoggedIn": {
"message": "You successfully logged in"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Neveljavna koda za preverjanje"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ kopirana",
"description": "Value has been copied to the clipboard.",
@@ -973,7 +973,7 @@
"message": "Restart registration"
},
"expiredLink": {
- "message": "Expired link"
+ "message": "Pretečena povezava"
},
"pleaseRestartRegistrationOrTryLoggingIn": {
"message": "Please restart registration or try logging in."
@@ -997,7 +997,7 @@
"message": "Anyone with a password set by you"
},
"location": {
- "message": "Location"
+ "message": "Lokacija"
},
"unexpectedError": {
"message": "Prišlo je do nepričakovane napake."
@@ -1012,10 +1012,10 @@
"message": "Avtentikacija v dveh korakih dodatno varuje vaš račun, saj zahteva, da vsakokratno prijavo potrdite z drugo napravo, kot je varnostni ključ, aplikacija za preverjanje pristnosti, SMS, telefonski klic ali e-pošta. Avtentikacijo v dveh korakih lahko omogočite v spletnem trezorju bitwarden.com. Ali želite spletno stran obiskati sedaj?"
},
"twoStepLoginConfirmationContent": {
- "message": "Make your account more secure by setting up two-step login in the Bitwarden web app."
+ "message": "Zavarujte vaš račun tako, da nastavite dvostopenjsko prijavo v Bitwarden spletni aplikaciji."
},
"twoStepLoginConfirmationTitle": {
- "message": "Continue to web app?"
+ "message": "Nadaljuj v spletno aplikacijo?"
},
"editedFolder": {
"message": "Mapa shranjena"
@@ -1058,7 +1058,7 @@
"message": "Nov URI"
},
"addDomain": {
- "message": "Add domain",
+ "message": "Dodaj domeno",
"description": "'Domain' here refers to an internet domain name (e.g. 'bitwarden.com') and the message in whole described the act of putting a domain value into the context."
},
"addedItem": {
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6065,7 +6107,7 @@
"message": "Contact your admin to regain access."
},
"leaveConfirmationDialogConfirmButton": {
- "message": "Leave $ORGANIZATION$",
+ "message": "Zapusti $ORGANIZATION$",
"placeholders": {
"organization": {
"content": "$1",
@@ -6074,10 +6116,10 @@
}
},
"howToManageMyVault": {
- "message": "How do I manage my vault?"
+ "message": "Kako uporabljam svoj trezor?"
},
"transferItemsToOrganizationTitle": {
- "message": "Transfer items to $ORGANIZATION$",
+ "message": "Prenesi elemente v $ORGANIZATION$",
"placeholders": {
"organization": {
"content": "$1",
@@ -6095,19 +6137,19 @@
}
},
"acceptTransfer": {
- "message": "Accept transfer"
+ "message": "Sprejmi prenos"
},
"declineAndLeave": {
"message": "Decline and leave"
},
"whyAmISeeingThis": {
- "message": "Why am I seeing this?"
+ "message": "Zakaj se mi to prikazuje?"
},
"items": {
- "message": "Items"
+ "message": "Elementi"
},
"searchResults": {
- "message": "Search results"
+ "message": "Rezultati iskanja"
},
"resizeSideNavigation": {
"message": "Resize side navigation"
@@ -6124,11 +6166,14 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
- "message": "user@bitwarden.com , user@acme.com"
+ "message": "uporabnik@bitwarden.com , uporabnik@acme.com"
},
"downloadBitwardenApps": {
- "message": "Download Bitwarden apps"
+ "message": "Prenesi Bitwarden aplikacije"
},
"emailProtected": {
"message": "Email protected"
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/sr/messages.json b/apps/browser/src/_locales/sr/messages.json
index 0ad71788514..b375ca5d536 100644
--- a/apps/browser/src/_locales/sr/messages.json
+++ b/apps/browser/src/_locales/sr/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Архивиране ставке ће се овде појавити и бити искључени из општих резултата претраге и сугестија о ауто-пуњењу."
},
- "itemWasSentToArchive": {
- "message": "Ставка је послата у архиву"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Ставка враћена из архиве"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Архивирај ставку"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Неисправан верификациони код"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ копиран(а/о)",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Илустрација листе пријаве које су ризичне."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Брзо генеришите снажну, јединствену лозинку са Bitwarden менијем аутопуњења за коришћење на ризичном сајту.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send линк је копиран",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/sv/messages.json b/apps/browser/src/_locales/sv/messages.json
index 08cec673d27..eb5a7fef645 100644
--- a/apps/browser/src/_locales/sv/messages.json
+++ b/apps/browser/src/_locales/sv/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Arkiverade objekt kommer att visas här och kommer att uteslutas från allmänna sökresultat och förslag för autofyll."
},
- "itemWasSentToArchive": {
- "message": "Objektet skickades till arkivet"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Objektet har avarkiverats"
- },
- "itemUnarchived": {
- "message": "Objektet har avarkiverats"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Arkivera objekt"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Ogiltig verifieringskod"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ har kopierats",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration av en lista över inloggningar som är i riskzonen."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Skapa snabbt ett starkt, unikt lösenord med Bitwardens autofyllmeny på riskwebbplatsen.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ timmar",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Kopiera och dela denna Send-länk. Denna Send kommer att vara tillgänglig för alla med länken för nästa $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Kopiera och dela denna Send-länk. Denna Send kommer att vara tillgänglig för alla med den länk och lösenord du angav för nästa $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Kopiera och dela denna Send-länk. Den kan visas av personer som du har angivet nästa $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Skicka länk kopierad",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Ange flera e-postadresser genom att separera dem med kommatecken."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "användare@bitwarden.com , användare@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individer måste ange lösenordet för att visa denna Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/ta/messages.json b/apps/browser/src/_locales/ta/messages.json
index 374c0968d2c..72ad809e723 100644
--- a/apps/browser/src/_locales/ta/messages.json
+++ b/apps/browser/src/_locales/ta/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "காப்பகப்படுத்தப்பட்ட உருப்படிகள் இங்கே தோன்றும், மேலும் அவை பொதுவான தேடல் முடிவுகள் மற்றும் தானியங்குநிரப்பு பரிந்துரைகளிலிருந்து விலக்கப்படும்."
},
- "itemWasSentToArchive": {
- "message": "ஆவணம் காப்பகத்திற்கு அனுப்பப்பட்டது"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "காப்பகம் மீட்டெடுக்கப்பட்டது"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "உருப்படியைக் காப்பகப்படுத்து"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "தவறான சரிபார்ப்புக் குறியீடு"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ நகலெடுக்கப்பட்டது",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "ஆபத்தில் உள்ள உள்நுழைவுகளின் பட்டியலின் விளக்கம்."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "ஆபத்தில் உள்ள தளத்தில் உள்ள Bitwarden தானாக நிரப்பு மெனுவுடன் ஒரு வலுவான, தனிப்பட்ட கடவுச்சொல்லை விரைவாக உருவாக்குங்கள்.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "அனுப்பு இணைப்பு நகலெடுக்கப்பட்டது",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/te/messages.json b/apps/browser/src/_locales/te/messages.json
index 336e8783b75..51ca51960d7 100644
--- a/apps/browser/src/_locales/te/messages.json
+++ b/apps/browser/src/_locales/te/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Archived items will appear here and will be excluded from general search results and autofill suggestions."
},
- "itemWasSentToArchive": {
- "message": "Item was sent to archive"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "Item was unarchived"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Archive item"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Invalid verification code"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ copied",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Illustration of a list of logins that are at-risk."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send link copied",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/th/messages.json b/apps/browser/src/_locales/th/messages.json
index 5af1c742f45..82878eb3b52 100644
--- a/apps/browser/src/_locales/th/messages.json
+++ b/apps/browser/src/_locales/th/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "รายการที่จัดเก็บถาวรจะปรากฏที่นี่ และจะไม่ถูกรวมในผลการค้นหาทั่วไปหรือคำแนะนำการป้อนอัตโนมัติ"
},
- "itemWasSentToArchive": {
- "message": "ย้ายรายการไปที่จัดเก็บถาวรแล้ว"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Item was unarchived"
- },
- "itemUnarchived": {
- "message": "เลิกจัดเก็บถาวรรายการแล้ว"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "จัดเก็บรายการถาวร"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "รหัสยืนยันไม่ถูกต้อง"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "คัดลอก $VALUE$ แล้ว",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "ภาพประกอบรายการข้อมูลเข้าสู่ระบบที่มีความเสี่ยง"
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "สร้างรหัสผ่านที่รัดกุมและไม่ซ้ำกันอย่างรวดเร็วด้วยเมนูป้อนอัตโนมัติของ Bitwarden บนเว็บไซต์ที่มีความเสี่ยง",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "คัดลอกลิงก์ Send แล้ว",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/tr/messages.json b/apps/browser/src/_locales/tr/messages.json
index 33f600fb7a7..b3d1d46c9a5 100644
--- a/apps/browser/src/_locales/tr/messages.json
+++ b/apps/browser/src/_locales/tr/messages.json
@@ -573,13 +573,10 @@
"noItemsInArchiveDesc": {
"message": "Arşivlenmiş kayıtlar burada görünecek ve genel arama sonuçlarından ile otomatik doldurma önerilerinden hariç tutulacaktır."
},
- "itemWasSentToArchive": {
- "message": "Kayıt arşive gönderildi"
+ "itemArchiveToast": {
+ "message": "Kayıt arşivlendi"
},
- "itemWasUnarchived": {
- "message": "Kayıt arşivden çıkarıldı"
- },
- "itemUnarchived": {
+ "itemUnarchivedToast": {
"message": "Kayıt arşivden çıkarıldı"
},
"archiveItem": {
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Geçersiz doğrulama kodu"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "E-posta veya doğrulama kodu geçersiz"
+ },
"valueCopied": {
"message": "$VALUE$ kopyalandı",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Risk altındaki hesap listesinin illüstrasyonu."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Bitwarden kasa sayfası düzeninin illüstrasyonu."
+ },
"generatePasswordSlideDesc": {
"message": "Riskli sitede Bitwarden otomatik doldurma menüsünü kullanarak hızlıca güçlü ve benzersiz bir parola oluştur.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ saat",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Bu Send bağlantısını kopyalayıp paylaşın. Bu Send'e önümüzdeki $TIME$ boyunca bağlantıya sahip herkes ulaşabilecektir.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Bu Send bağlantısını kopyalayıp paylaşın. Bu Send'e önümüzdeki $TIME$ boyunca bağlantıya ve parolaya sahip herkes ulaşabilecektir.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Bu Send bağlantısını kopyalayıp paylaşın. Belirlediğiniz kişiler bağlantıyı önümüzdeki $TIME$ boyunca kullanabilir.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send bağlantısı kopyalandı",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "E-posta adreslerini virgülle ayırarak yazın."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "E-posta doğrulaması için en az bir e-posta adresi gerekir. Tüm e-postaları silmek için yukarıdan erişim türünü değiştirin."
+ },
"emailPlaceholder": {
"message": "kullanici@bitwarden.com , kullanici@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Bu Send'i görmek isteyen kişilerin parola girmesi gerekecektir",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Kullanıcı doğrulaması başarısız oldu."
}
}
diff --git a/apps/browser/src/_locales/uk/messages.json b/apps/browser/src/_locales/uk/messages.json
index b703cfeefce..143dc8037fd 100644
--- a/apps/browser/src/_locales/uk/messages.json
+++ b/apps/browser/src/_locales/uk/messages.json
@@ -573,13 +573,10 @@
"noItemsInArchiveDesc": {
"message": "Архівовані записи з'являтимуться тут і будуть виключені з результатів звичайного пошуку та пропозицій автозаповнення."
},
- "itemWasSentToArchive": {
+ "itemArchiveToast": {
"message": "Запис архівовано"
},
- "itemWasUnarchived": {
- "message": "Запис розархівовано"
- },
- "itemUnarchived": {
+ "itemUnarchivedToast": {
"message": "Запис розархівовано"
},
"archiveItem": {
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Недійсний код підтвердження"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Недійсна е-пошта або код підтвердження"
+ },
"valueCopied": {
"message": "$VALUE$ скопійовано",
"description": "Value has been copied to the clipboard.",
@@ -1144,7 +1144,7 @@
"message": "Натисніть на запис у режимі перегляду сховища для автозаповнення"
},
"clickToAutofill": {
- "message": "Натисніть запис у пропозиціях для автозаповнення"
+ "message": "Натиснути запис у пропозиціях для автозаповнення"
},
"clearClipboard": {
"message": "Очистити буфер обміну",
@@ -2055,7 +2055,7 @@
"message": "Е-пошта"
},
"emails": {
- "message": "Е-пошти"
+ "message": "Адреси е-пошти"
},
"phone": {
"message": "Телефон"
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Ілюстрація списку ризикованих записів."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Ілюстрація макету сторінки сховища Bitwarden."
+ },
"generatePasswordSlideDesc": {
"message": "Швидко згенеруйте надійний, унікальний пароль через меню автозаповнення Bitwarden на сайті з ризикованим паролем.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ годин",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Скопіюйте посилання на це відправлення і поділіться ним. Відправлення буде доступне за посиланням усім протягом $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Скопіюйте посилання на це відправлення і поділіться ним. Відправлення буде доступне за посиланням і встановленим вами паролем усім протягом $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Скопіюйте посилання на це відправлення і поділіться ним. Його зможуть переглядати зазначені вами користувачі протягом $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Посилання на відправлення скопійовано",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -3356,7 +3398,7 @@
"message": "Не вдалося розблокувати за допомогою ключа доступу. Повторіть спробу або скористайтеся іншим способом розблокування."
},
"noPrfCredentialsAvailable": {
- "message": "Немає ключів доступу з підтримкою PRF, доступних для розблокування. Спочатку увійдіть з ключем доступу."
+ "message": "Немає ключів доступу з підтримкою PRF, доступних для розблокування. Спочатку ввійдіть з ключем доступу."
},
"decryptionError": {
"message": "Помилка розшифрування"
@@ -4692,7 +4734,7 @@
"message": "Запропоновані записи"
},
"autofillSuggestionsTip": {
- "message": "Зберегти дані входу цього сайту для автозаповнення"
+ "message": "Збережіть дані входу цього сайту для автозаповнення"
},
"yourVaultIsEmpty": {
"message": "Ваше сховище порожнє"
@@ -4734,7 +4776,7 @@
}
},
"moreOptionsLabelNoPlaceholder": {
- "message": "Більше опцій"
+ "message": "Інші варіанти"
},
"moreOptionsTitle": {
"message": "Інші можливості – $ITEMNAME$",
@@ -5668,7 +5710,7 @@
"message": "Дуже широке"
},
"narrow": {
- "message": "Вузький"
+ "message": "Вузьке"
},
"sshKeyWrongPassword": {
"message": "Ви ввели неправильний пароль."
@@ -5964,7 +6006,7 @@
"message": "Номер картки"
},
"errorCannotDecrypt": {
- "message": "Error: Cannot decrypt"
+ "message": "Помилка: неможливо розшифрувати"
},
"removeMasterPasswordForOrgUserKeyConnector": {
"message": "Ваша організація більше не використовує головні паролі для входу в Bitwarden. Щоб продовжити, підтвердіть організацію та домен."
@@ -6116,25 +6158,31 @@
"message": "Хто може переглядати"
},
"specificPeople": {
- "message": "Певні люди"
+ "message": "Певні користувачі"
},
"emailVerificationDesc": {
- "message": "Після того, як ви поділитеся цим посиланням на відправлення, особам необхідно буде підтвердити свої е-пошти за допомогою коду, щоб переглянути це відправлення."
+ "message": "Після того, як ви поділитеся посиланням на це відправлення, користувачі мають підтвердити свою е-пошту за допомогою коду, щоб переглянути його."
},
"enterMultipleEmailsSeparatedByComma": {
"message": "Введіть декілька адрес е-пошти, розділяючи їх комою."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Для підтвердження адреси електронної пошти потрібна щонайменше одна адреса. Щоб вилучити всі адреси електронної пошти, змініть тип доступу вище."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
"downloadBitwardenApps": {
- "message": "Download Bitwarden apps"
+ "message": "Завантажити програми Bitwarden"
},
"emailProtected": {
"message": "Е-пошту захищено"
},
"sendPasswordHelperText": {
- "message": "Особам необхідно ввести пароль для перегляду цього відправлення",
+ "message": "Користувачі мають ввести пароль для перегляду цього відправлення",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "Не вдалося перевірити користувача."
}
}
diff --git a/apps/browser/src/_locales/vi/messages.json b/apps/browser/src/_locales/vi/messages.json
index 0082ee1ece7..ebd3a2500aa 100644
--- a/apps/browser/src/_locales/vi/messages.json
+++ b/apps/browser/src/_locales/vi/messages.json
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "Các mục đã lưu trữ sẽ hiển thị ở đây và sẽ bị loại khỏi kết quả tìm kiếm và gợi ý tự động điền."
},
- "itemWasSentToArchive": {
- "message": "Mục đã được chuyển vào kho lưu trữ"
+ "itemArchiveToast": {
+ "message": "Item archived"
},
- "itemWasUnarchived": {
- "message": "Mục đã được bỏ lưu trữ"
- },
- "itemUnarchived": {
- "message": "Mục đã được bỏ lưu trữ"
+ "itemUnarchivedToast": {
+ "message": "Item unarchived"
},
"archiveItem": {
"message": "Lưu trữ mục"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "Mã xác minh không đúng"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "Đã sao chép $VALUE$",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Minh họa danh sách các tài khoản đăng nhập có rủi ro."
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "Tạo nhanh một mật khẩu mạnh, duy nhất bằng menu tự động điền của Bitwarden trên trang web có nguy cơ.",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ hours",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "Copy and share this Send link. The Send will be available to anyone with the link and password you set for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "Copy and share this Send link. It can be viewed by the people you specified for the next $TIME$.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Đã sao chép liên kết Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "Enter multiple emails by separating with a comma."
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "Individuals will need to enter the password to view this Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/_locales/zh_CN/messages.json b/apps/browser/src/_locales/zh_CN/messages.json
index 860a8c09f27..c27d1a8bb24 100644
--- a/apps/browser/src/_locales/zh_CN/messages.json
+++ b/apps/browser/src/_locales/zh_CN/messages.json
@@ -573,13 +573,10 @@
"noItemsInArchiveDesc": {
"message": "已归档的项目将显示在此处,并将被排除在一般搜索结果和自动填充建议之外。"
},
- "itemWasSentToArchive": {
- "message": "项目已发送到归档"
+ "itemArchiveToast": {
+ "message": "项目已归档"
},
- "itemWasUnarchived": {
- "message": "项目已取消归档"
- },
- "itemUnarchived": {
+ "itemUnarchivedToast": {
"message": "项目已取消归档"
},
"archiveItem": {
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "无效的验证码"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "无效的电子邮箱或验证码"
+ },
"valueCopied": {
"message": "$VALUE$ 已复制",
"description": "Value has been copied to the clipboard.",
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "存在风险的登录列表示意图。"
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Bitwarden 密码库页面布局示意图。"
+ },
"generatePasswordSlideDesc": {
"message": "在存在风险的网站上,使用 Bitwarden 自动填充菜单快速生成强大且唯一的密码。",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ 小时",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "复制并分享此 Send 链接。在接下来的 $TIME$ 内,拥有此链接的任何人都可以访问此 Send。",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "复制并分享此 Send 链接。在接下来的 $TIME$ 内,拥有此链接以及您设置的密码的任何人都可以访问此 Send。",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "复制并分享此 Send 链接。在接下来的 $TIME$ 内,您指定的人员可查看此 Send。",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "Send 链接已复制",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "输入多个电子邮箱(使用逗号分隔)。"
},
+ "emailsRequiredChangeAccessType": {
+ "message": "电子邮箱验证要求至少有一个电子邮箱地址。要移除所有电子邮箱,请更改上面的访问类型。"
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com, user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "个人需要输入密码才能查看此 Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "用户验证失败。"
}
}
diff --git a/apps/browser/src/_locales/zh_TW/messages.json b/apps/browser/src/_locales/zh_TW/messages.json
index 3f387d935d4..d23106948ad 100644
--- a/apps/browser/src/_locales/zh_TW/messages.json
+++ b/apps/browser/src/_locales/zh_TW/messages.json
@@ -228,7 +228,7 @@
"message": "複製自訂欄位名稱"
},
"noMatchingLogins": {
- "message": "沒有符合的登入資料"
+ "message": "沒有相符的登入項目"
},
"noCards": {
"message": "沒有付款卡"
@@ -252,7 +252,7 @@
"message": "登入您的密碼庫"
},
"autoFillInfo": {
- "message": "沒有可以在目前瀏覽器分頁自動填入的登入資訊。"
+ "message": "目前瀏覽器分頁沒有可自動填入的登入項目。"
},
"addLogin": {
"message": "新增登入資料"
@@ -453,10 +453,10 @@
"description": "Short for 'credential generator'."
},
"passGenInfo": {
- "message": "為您的登入資料自動產生高強度且唯一的密碼。"
+ "message": "為您的登入項目自動產生高強度且唯一的密碼。"
},
"bitWebVaultApp": {
- "message": "Bitwarden 網頁應用程式"
+ "message": "Bitwarden Web 應用程式"
},
"select": {
"message": "選擇"
@@ -468,16 +468,16 @@
"message": "產生密碼短語"
},
"passwordGenerated": {
- "message": "已產生密碼"
+ "message": "密碼已產生"
},
"passphraseGenerated": {
- "message": "已產生密碼"
+ "message": "密碼短語已產生"
},
"usernameGenerated": {
- "message": "已產生使用者名稱"
+ "message": "使用者名稱已產生"
},
"emailGenerated": {
- "message": "已產生電子郵件"
+ "message": "電子郵件已產生"
},
"regeneratePassword": {
"message": "重新產生密碼"
@@ -573,14 +573,11 @@
"noItemsInArchiveDesc": {
"message": "封存的項目會顯示在此處,且不會出現在一般搜尋結果或自動填入建議中。"
},
- "itemWasSentToArchive": {
- "message": "項目已移至封存"
+ "itemArchiveToast": {
+ "message": "項目已封存"
},
- "itemWasUnarchived": {
- "message": "已取消封存項目"
- },
- "itemUnarchived": {
- "message": "項目取消封存"
+ "itemUnarchivedToast": {
+ "message": "項目已取消封存"
},
"archiveItem": {
"message": "封存項目"
@@ -598,7 +595,7 @@
"message": "需要進階版會員才能使用封存功能。"
},
"itemRestored": {
- "message": "已還原項目"
+ "message": "項目已還原"
},
"edit": {
"message": "編輯"
@@ -899,6 +896,9 @@
"invalidVerificationCode": {
"message": "驗證碼無效"
},
+ "invalidEmailOrVerificationCode": {
+ "message": "Invalid email or verification code"
+ },
"valueCopied": {
"message": "$VALUE$ 已複製",
"description": "Value has been copied to the clipboard.",
@@ -1215,7 +1215,7 @@
"description": "Button text for saving login details as a new entry."
},
"updateLoginAction": {
- "message": "更新登入資料",
+ "message": "更新登入項目",
"description": "Button text for updating an existing login entry."
},
"unlockToSave": {
@@ -1223,7 +1223,7 @@
"description": "User prompt to take action in order to save the login they just entered."
},
"saveLogin": {
- "message": "儲存登入資料",
+ "message": "儲存登入項目",
"description": "Prompt asking the user if they want to save their login details."
},
"updateLogin": {
@@ -1231,7 +1231,7 @@
"description": "Prompt asking the user if they want to update an existing login entry."
},
"loginSaveSuccess": {
- "message": "登入資訊已儲存",
+ "message": "登入項目已儲存",
"description": "Message displayed when login details are successfully saved."
},
"loginUpdateSuccess": {
@@ -1305,7 +1305,7 @@
"message": "解鎖"
},
"additionalOptions": {
- "message": "額外選項"
+ "message": "其他選項"
},
"enableContextMenuItem": {
"message": "顯示內容選單選項"
@@ -1567,7 +1567,7 @@
"message": "提供密碼健全性、帳戶健康狀態及資料外洩報告,確保您的密碼庫安全。"
},
"ppremiumSignUpTotp": {
- "message": "為密碼庫中的登入資料產生 TOTP 驗證碼(2FA)。"
+ "message": "為密碼庫中的登入項目產生 TOTP 驗證碼(2FA)。"
},
"ppremiumSignUpSupport": {
"message": "優先客戶支援。"
@@ -1801,7 +1801,7 @@
"message": "Bitwarden 如何保護您的資料免於網路釣魚攻擊?"
},
"currentWebsite": {
- "message": "目網站"
+ "message": "目前網站"
},
"autofillAndAddWebsite": {
"message": "自動填充並新增此網站"
@@ -2091,7 +2091,7 @@
"message": "登入資料"
},
"typeLogins": {
- "message": "登入資料"
+ "message": "登入項目"
},
"typeSecureNote": {
"message": "安全筆記"
@@ -2227,7 +2227,7 @@
"message": "身分"
},
"logins": {
- "message": "登入資料"
+ "message": "登入項目"
},
"secureNotes": {
"message": "安全筆記"
@@ -2513,7 +2513,7 @@
"message": "項目已自動填入並且已儲存統一資源標識符(URI)"
},
"autoFillSuccess": {
- "message": "項目已自動填入 "
+ "message": "項目已自動填入"
},
"insecurePageWarning": {
"message": "警告:此為不安全的 HTTP 頁面,您送出的任何資訊都可能被他人查看並修改。此登入資料原本儲存在安全的(HTTPS)頁面上。"
@@ -2773,10 +2773,10 @@
}
},
"atRiskPassword": {
- "message": "具有風險的密碼"
+ "message": "有風險的密碼"
},
"atRiskPasswords": {
- "message": "具有風險的密碼"
+ "message": "有風險的密碼"
},
"atRiskPasswordDescSingleOrg": {
"message": "$ORGANIZATION$ 要求你變更一組有風險的密碼。",
@@ -2848,7 +2848,7 @@
"message": "更新你的設定,以便能快速自動填入密碼並產生新密碼"
},
"reviewAtRiskLogins": {
- "message": "檢視有風險的登入資訊"
+ "message": "檢視有風險的登入項目"
},
"reviewAtRiskPasswords": {
"message": "檢視有風險的密碼"
@@ -2860,6 +2860,9 @@
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "有風險登入清單的示意圖。"
},
+ "welcomeDialogGraphicAlt": {
+ "message": "Illustration of the layout of the Bitwarden vault page."
+ },
"generatePasswordSlideDesc": {
"message": "在有風險的網站上,透過 Bitwarden 自動填入選單快速產生強且唯一的密碼。",
"description": "Description of the generate password slide on the at-risk password page carousel"
@@ -3083,6 +3086,45 @@
}
}
},
+ "durationTimeHours": {
+ "message": "$HOURS$ 小時",
+ "placeholders": {
+ "hours": {
+ "content": "$1",
+ "example": "5"
+ }
+ }
+ },
+ "sendCreatedDescriptionV2": {
+ "message": "複製並分享此 Send 連結。任何擁有此連結的人,都可在接下來的 $TIME$ 內存取該 Send。",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionPassword": {
+ "message": "複製並分享此 Send 連結。任何擁有此連結與您所設定密碼的人,都可在接下來的 $TIME$ 內存取該 Send。",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
+ "sendCreatedDescriptionEmail": {
+ "message": "複製並分享此 Send 連結。在接下來的 $TIME$ 內,只有您指定的人可以檢視。",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.",
+ "placeholders": {
+ "time": {
+ "content": "$1",
+ "example": "7 days, 1 hour, 1 day"
+ }
+ }
+ },
"sendLinkCopied": {
"message": "已複製 Send 連結",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -5749,7 +5791,7 @@
"message": "設定生物辨識解鎖及自動填入,不需要輸入任何字元就可以登入。"
},
"secureUser": {
- "message": "升級您的登入體驗"
+ "message": "讓您的登入項目更升級"
},
"secureUserBody": {
"message": "使用密碼產生器來建立及儲存高強度、唯一的密碼,來保護您所有的帳號。"
@@ -5964,7 +6006,7 @@
"message": "付款卡號碼"
},
"errorCannotDecrypt": {
- "message": "Error: Cannot decrypt"
+ "message": "錯誤:無法解密"
},
"removeMasterPasswordForOrgUserKeyConnector": {
"message": "您的組織已不再使用主密碼登入 Bitwarden。若要繼續,請驗證組織與網域。"
@@ -6124,6 +6166,9 @@
"enterMultipleEmailsSeparatedByComma": {
"message": "請以逗號分隔輸入多個電子郵件地址。"
},
+ "emailsRequiredChangeAccessType": {
+ "message": "Email verification requires at least one email address. To remove all emails, change the access type above."
+ },
"emailPlaceholder": {
"message": "user@bitwarden.com , user@acme.com"
},
@@ -6136,5 +6181,8 @@
"sendPasswordHelperText": {
"message": "對方必須輸入密碼才能檢視此 Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "userVerificationFailed": {
+ "message": "User verification failed."
}
}
diff --git a/apps/browser/src/auth/popup/account-switching/account-switcher.component.html b/apps/browser/src/auth/popup/account-switching/account-switcher.component.html
index 0a9e2a1dd9d..2eeaaf35f53 100644
--- a/apps/browser/src/auth/popup/account-switching/account-switcher.component.html
+++ b/apps/browser/src/auth/popup/account-switching/account-switcher.component.html
@@ -58,19 +58,19 @@
[disabled]="currentAccount.status === lockedStatus || !activeUserCanLock"
[title]="!activeUserCanLock ? ('unlockMethodNeeded' | i18n) : ''"
>
-
+
{{ "lockNow" | i18n }}
diff --git a/apps/browser/src/auth/popup/account-switching/account-switcher.component.ts b/apps/browser/src/auth/popup/account-switching/account-switcher.component.ts
index ae7f66a9018..53d488192ba 100644
--- a/apps/browser/src/auth/popup/account-switching/account-switcher.component.ts
+++ b/apps/browser/src/auth/popup/account-switching/account-switcher.component.ts
@@ -18,6 +18,7 @@ import {
AvatarModule,
ButtonModule,
DialogService,
+ IconModule,
ItemModule,
SectionComponent,
SectionHeaderComponent,
@@ -42,6 +43,7 @@ import { AccountSwitcherService } from "./services/account-switcher.service";
ButtonModule,
ItemModule,
AvatarModule,
+ IconModule,
PopupPageComponent,
PopupHeaderComponent,
PopOutComponent,
diff --git a/apps/browser/src/auth/popup/account-switching/account.component.html b/apps/browser/src/auth/popup/account-switching/account.component.html
index 35f4477fa1e..eefda3aecb4 100644
--- a/apps/browser/src/auth/popup/account-switching/account.component.html
+++ b/apps/browser/src/auth/popup/account-switching/account.component.html
@@ -31,13 +31,13 @@
-
+
diff --git a/apps/browser/src/auth/popup/account-switching/account.component.ts b/apps/browser/src/auth/popup/account-switching/account.component.ts
index edfad2a54b3..dbc31a1f011 100644
--- a/apps/browser/src/auth/popup/account-switching/account.component.ts
+++ b/apps/browser/src/auth/popup/account-switching/account.component.ts
@@ -8,7 +8,7 @@ import { JslibModule } from "@bitwarden/angular/jslib.module";
import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
-import { AvatarModule, ItemModule } from "@bitwarden/components";
+import { AvatarModule, IconModule, ItemModule, type BitwardenIcon } from "@bitwarden/components";
import { BiometricsService } from "@bitwarden/key-management";
import { AccountSwitcherService, AvailableAccount } from "./services/account-switcher.service";
@@ -18,7 +18,7 @@ import { AccountSwitcherService, AvailableAccount } from "./services/account-swi
@Component({
selector: "auth-account",
templateUrl: "account.component.html",
- imports: [CommonModule, JslibModule, AvatarModule, ItemModule],
+ imports: [CommonModule, JslibModule, AvatarModule, IconModule, ItemModule],
})
export class AccountComponent {
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
@@ -60,7 +60,7 @@ export class AccountComponent {
this.loading.emit(false);
}
- get status() {
+ get status(): { text: string; icon: BitwardenIcon } {
if (this.account.isActive) {
return { text: this.i18nService.t("active"), icon: "bwi-check-circle" };
}
diff --git a/apps/browser/src/auth/popup/settings/account-security.component.html b/apps/browser/src/auth/popup/settings/account-security.component.html
index bb6b141c6c5..366f5b82790 100644
--- a/apps/browser/src/auth/popup/settings/account-security.component.html
+++ b/apps/browser/src/auth/popup/settings/account-security.component.html
@@ -123,7 +123,7 @@
@@ -154,13 +154,13 @@
diff --git a/apps/browser/src/auth/popup/settings/account-security.component.ts b/apps/browser/src/auth/popup/settings/account-security.component.ts
index 1789feebe4e..b3bd9b842f7 100644
--- a/apps/browser/src/auth/popup/settings/account-security.component.ts
+++ b/apps/browser/src/auth/popup/settings/account-security.component.ts
@@ -56,6 +56,7 @@ import {
DialogService,
FormFieldModule,
IconButtonModule,
+ IconModule,
ItemModule,
LinkModule,
SectionComponent,
@@ -98,6 +99,7 @@ import { AwaitDesktopDialogComponent } from "./await-desktop-dialog.component";
FormsModule,
ReactiveFormsModule,
IconButtonModule,
+ IconModule,
ItemModule,
JslibModule,
LinkModule,
diff --git a/apps/browser/src/autofill/background/notification.background.spec.ts b/apps/browser/src/autofill/background/notification.background.spec.ts
index 95d4111987b..1bd1ae5513b 100644
--- a/apps/browser/src/autofill/background/notification.background.spec.ts
+++ b/apps/browser/src/autofill/background/notification.background.spec.ts
@@ -28,6 +28,7 @@ import { TaskService, SecurityTask } from "@bitwarden/common/vault/tasks";
import { BrowserApi } from "../../platform/browser/browser-api";
import { NotificationType } from "../enums/notification-type.enum";
+import { Fido2Background } from "../fido2/background/abstractions/fido2.background";
import { FormData } from "../services/abstractions/autofill.service";
import AutofillService from "../services/autofill.service";
import { createAutofillPageDetailsMock, createChromeTabMock } from "../spec/autofill-mocks";
@@ -81,6 +82,8 @@ describe("NotificationBackground", () => {
const configService = mock();
const accountService = mock();
const organizationService = mock();
+ const fido2Background = mock();
+ fido2Background.isCredentialRequestInProgress.mockReturnValue(false);
const userId = "testId" as UserId;
const activeAccountSubject = new BehaviorSubject({
@@ -115,6 +118,7 @@ describe("NotificationBackground", () => {
userNotificationSettingsService,
taskService,
messagingService,
+ fido2Background,
);
});
@@ -759,7 +763,6 @@ describe("NotificationBackground", () => {
notificationBackground as any,
"getEnableChangedPasswordPrompt",
);
-
pushChangePasswordToQueueSpy = jest.spyOn(
notificationBackground as any,
"pushChangePasswordToQueue",
@@ -822,6 +825,22 @@ describe("NotificationBackground", () => {
expectSkippedCheckingNotification();
});
+ it("skips checking if a notification should trigger if a fido2 credential request is in progress for the tab", async () => {
+ const formEntryData: ModifyLoginCipherFormData = {
+ newPassword: "",
+ password: "",
+ uri: mockFormURI,
+ username: "ADent",
+ };
+
+ activeAccountStatusMock$.next(AuthenticationStatus.Unlocked);
+ fido2Background.isCredentialRequestInProgress.mockReturnValueOnce(true);
+
+ await notificationBackground.triggerCipherNotification(formEntryData, tab);
+
+ expectSkippedCheckingNotification();
+ });
+
it("skips checking if a notification should trigger if the user has disabled both the new login and update password notification", async () => {
const formEntryData: ModifyLoginCipherFormData = {
newPassword: "Bab3lPhs5h",
diff --git a/apps/browser/src/autofill/background/notification.background.ts b/apps/browser/src/autofill/background/notification.background.ts
index 3713cd7c4c2..64c52701e21 100644
--- a/apps/browser/src/autofill/background/notification.background.ts
+++ b/apps/browser/src/autofill/background/notification.background.ts
@@ -61,6 +61,7 @@ import {
} from "../content/components/cipher/types";
import { CollectionView } from "../content/components/common-types";
import { NotificationType } from "../enums/notification-type.enum";
+import { Fido2Background } from "../fido2/background/abstractions/fido2.background";
import { AutofillService } from "../services/abstractions/autofill.service";
import { TemporaryNotificationChangeLoginService } from "../services/notification-change-login-password.service";
@@ -165,6 +166,7 @@ export default class NotificationBackground {
private userNotificationSettingsService: UserNotificationSettingsServiceAbstraction,
private taskService: TaskService,
protected messagingService: MessagingService,
+ private fido2Background: Fido2Background,
) {}
init() {
@@ -665,6 +667,11 @@ export default class NotificationBackground {
return false;
}
+ // If there is an active passkey prompt, exit early
+ if (this.fido2Background.isCredentialRequestInProgress(tab.id)) {
+ return false;
+ }
+
// If no cipher add/update notifications are enabled, we can exit early
const changePasswordNotificationIsEnabled = await this.getEnableChangedPasswordPrompt();
const newLoginNotificationIsEnabled = await this.getEnableAddedLoginPrompt();
diff --git a/apps/browser/src/autofill/fido2/background/abstractions/fido2.background.ts b/apps/browser/src/autofill/fido2/background/abstractions/fido2.background.ts
index 6ad069ad56e..c5346d61566 100644
--- a/apps/browser/src/autofill/fido2/background/abstractions/fido2.background.ts
+++ b/apps/browser/src/autofill/fido2/background/abstractions/fido2.background.ts
@@ -45,6 +45,8 @@ type Fido2BackgroundExtensionMessageHandlers = {
interface Fido2Background {
init(): void;
+ isCredentialRequestInProgress(tabId: number): boolean;
+ isPasskeySettingEnabled(): Promise;
}
export {
diff --git a/apps/browser/src/autofill/fido2/background/fido2.background.spec.ts b/apps/browser/src/autofill/fido2/background/fido2.background.spec.ts
index 752851b3d37..6ead7416b96 100644
--- a/apps/browser/src/autofill/fido2/background/fido2.background.spec.ts
+++ b/apps/browser/src/autofill/fido2/background/fido2.background.spec.ts
@@ -256,6 +256,84 @@ describe("Fido2Background", () => {
});
});
+ describe("isCredentialRequestInProgress", () => {
+ beforeEach(() => {
+ fido2Background.init();
+ });
+
+ it("returns false when no credential request is active", () => {
+ expect(fido2Background.isCredentialRequestInProgress(tabMock.id)).toBe(false);
+ });
+
+ it("returns true while a register credential request is in progress", async () => {
+ let duringRequestResult: boolean;
+ fido2ClientService.createCredential.mockImplementation(async () => {
+ duringRequestResult = fido2Background.isCredentialRequestInProgress(tabMock.id);
+ return mock();
+ });
+
+ const message = mock({
+ command: "fido2RegisterCredentialRequest",
+ requestId: "123",
+ data: mock(),
+ });
+
+ sendMockExtensionMessage(message, senderMock);
+ await flushPromises();
+
+ expect(duringRequestResult).toBe(true);
+ });
+
+ it("returns true while a get credential request is in progress", async () => {
+ let duringRequestResult: boolean;
+ fido2ClientService.assertCredential.mockImplementation(async () => {
+ duringRequestResult = fido2Background.isCredentialRequestInProgress(tabMock.id);
+ return mock();
+ });
+
+ const message = mock({
+ command: "fido2GetCredentialRequest",
+ requestId: "123",
+ data: mock(),
+ });
+
+ sendMockExtensionMessage(message, senderMock);
+ await flushPromises();
+
+ expect(duringRequestResult).toBe(true);
+ });
+
+ it("returns false after a credential request completes", async () => {
+ fido2ClientService.createCredential.mockResolvedValue(mock());
+
+ const message = mock({
+ command: "fido2RegisterCredentialRequest",
+ requestId: "123",
+ data: mock(),
+ });
+
+ sendMockExtensionMessage(message, senderMock);
+ await flushPromises();
+
+ expect(fido2Background.isCredentialRequestInProgress(tabMock.id)).toBe(false);
+ });
+
+ it("returns false after a credential request errors", async () => {
+ fido2ClientService.createCredential.mockRejectedValue(new Error("error"));
+
+ const message = mock({
+ command: "fido2RegisterCredentialRequest",
+ requestId: "123",
+ data: mock(),
+ });
+
+ sendMockExtensionMessage(message, senderMock);
+ await flushPromises();
+
+ expect(fido2Background.isCredentialRequestInProgress(tabMock.id)).toBe(false);
+ });
+ });
+
describe("extension message handlers", () => {
beforeEach(() => {
fido2Background.init();
diff --git a/apps/browser/src/autofill/fido2/background/fido2.background.ts b/apps/browser/src/autofill/fido2/background/fido2.background.ts
index 22ee4a1822d..495b0d85f0b 100644
--- a/apps/browser/src/autofill/fido2/background/fido2.background.ts
+++ b/apps/browser/src/autofill/fido2/background/fido2.background.ts
@@ -35,6 +35,7 @@ export class Fido2Background implements Fido2BackgroundInterface {
private currentAuthStatus$: Subscription;
private abortManager = new AbortManager();
private fido2ContentScriptPortsSet = new Set();
+ private activeCredentialRequests = new Set();
private registeredContentScripts: browser.contentScripts.RegisteredContentScript;
private readonly sharedInjectionDetails: SharedFido2ScriptInjectionDetails = {
runAt: "document_start",
@@ -61,6 +62,16 @@ export class Fido2Background implements Fido2BackgroundInterface {
private authService: AuthService,
) {}
+ /**
+ * Checks if a FIDO2 credential request (registration or assertion)
+ * is currently in progress for the given tab.
+ *
+ * @param tabId - The tab id to check.
+ */
+ isCredentialRequestInProgress(tabId: number): boolean {
+ return this.activeCredentialRequests.has(tabId);
+ }
+
/**
* Initializes the FIDO2 background service. Sets up the extension message
* and port listeners. Subscribes to the enablePasskeys$ observable to
@@ -307,20 +318,25 @@ export class Fido2Background implements Fido2BackgroundInterface {
abortController: AbortController,
) => Promise,
) => {
- return await this.abortManager.runWithAbortController(requestId, async (abortController) => {
- try {
- return await callback(data, tab, abortController);
- } finally {
- await BrowserApi.focusTab(tab.id);
- await BrowserApi.focusWindow(tab.windowId);
- }
- });
+ this.activeCredentialRequests.add(tab.id);
+ try {
+ return await this.abortManager.runWithAbortController(requestId, async (abortController) => {
+ try {
+ return await callback(data, tab, abortController);
+ } finally {
+ await BrowserApi.focusTab(tab.id);
+ await BrowserApi.focusWindow(tab.windowId);
+ }
+ });
+ } finally {
+ this.activeCredentialRequests.delete(tab.id);
+ }
};
/**
* Checks if the enablePasskeys setting is enabled.
*/
- private async isPasskeySettingEnabled() {
+ async isPasskeySettingEnabled() {
return await firstValueFrom(this.vaultSettingsService.enablePasskeys$);
}
diff --git a/apps/browser/src/autofill/fido2/services/browser-fido2-user-interface.service.ts b/apps/browser/src/autofill/fido2/services/browser-fido2-user-interface.service.ts
index 19c1dbc8790..11dc170db16 100644
--- a/apps/browser/src/autofill/fido2/services/browser-fido2-user-interface.service.ts
+++ b/apps/browser/src/autofill/fido2/services/browser-fido2-user-interface.service.ts
@@ -363,6 +363,9 @@ export class BrowserFido2UserInterfaceSession implements Fido2UserInterfaceSessi
),
);
+ // Defensive measure in case an existing notification appeared before the passkey popout
+ await BrowserApi.tabSendMessageData(this.tab, "closeNotificationBar");
+
const popoutId = await openFido2Popout(this.tab, {
sessionId: this.sessionId,
fallbackSupported: this.fallbackSupported,
diff --git a/apps/browser/src/autofill/fido2/utils/webauthn-utils.ts b/apps/browser/src/autofill/fido2/utils/webauthn-utils.ts
index 07ffa553b07..795e35e1e80 100644
--- a/apps/browser/src/autofill/fido2/utils/webauthn-utils.ts
+++ b/apps/browser/src/autofill/fido2/utils/webauthn-utils.ts
@@ -27,9 +27,11 @@ export class WebauthnUtils {
residentKey: keyOptions.authenticatorSelection?.residentKey,
userVerification: keyOptions.authenticatorSelection?.userVerification,
},
- challenge: Fido2Utils.bufferToString(keyOptions.challenge),
+ challenge: Fido2Utils.arrayToString(
+ Fido2Utils.bufferSourceToUint8Array(keyOptions.challenge),
+ ),
excludeCredentials: keyOptions.excludeCredentials?.map((credential) => ({
- id: Fido2Utils.bufferToString(credential.id),
+ id: Fido2Utils.arrayToString(Fido2Utils.bufferSourceToUint8Array(credential.id)),
transports: credential.transports,
type: credential.type,
})),
@@ -48,7 +50,7 @@ export class WebauthnUtils {
name: keyOptions.rp.name,
},
user: {
- id: Fido2Utils.bufferToString(keyOptions.user.id),
+ id: Fido2Utils.arrayToString(Fido2Utils.bufferSourceToUint8Array(keyOptions.user.id)),
displayName: keyOptions.user.displayName,
name: keyOptions.user.name,
},
@@ -60,19 +62,19 @@ export class WebauthnUtils {
static mapCredentialRegistrationResult(result: CreateCredentialResult): PublicKeyCredential {
const credential = {
id: result.credentialId,
- rawId: Fido2Utils.stringToBuffer(result.credentialId),
+ rawId: Fido2Utils.stringToArray(result.credentialId).buffer,
type: "public-key",
authenticatorAttachment: "platform",
response: {
- clientDataJSON: Fido2Utils.stringToBuffer(result.clientDataJSON),
- attestationObject: Fido2Utils.stringToBuffer(result.attestationObject),
+ clientDataJSON: Fido2Utils.stringToArray(result.clientDataJSON).buffer,
+ attestationObject: Fido2Utils.stringToArray(result.attestationObject).buffer,
getAuthenticatorData(): ArrayBuffer {
- return Fido2Utils.stringToBuffer(result.authData);
+ return Fido2Utils.stringToArray(result.authData).buffer;
},
getPublicKey(): ArrayBuffer {
- return Fido2Utils.stringToBuffer(result.publicKey);
+ return Fido2Utils.stringToArray(result.publicKey).buffer;
},
getPublicKeyAlgorithm(): number {
@@ -110,8 +112,12 @@ export class WebauthnUtils {
return {
allowedCredentialIds:
- keyOptions.allowCredentials?.map((c) => Fido2Utils.bufferToString(c.id)) ?? [],
- challenge: Fido2Utils.bufferToString(keyOptions.challenge),
+ keyOptions.allowCredentials?.map((c) =>
+ Fido2Utils.arrayToString(Fido2Utils.bufferSourceToUint8Array(c.id)),
+ ) ?? [],
+ challenge: Fido2Utils.arrayToString(
+ Fido2Utils.bufferSourceToUint8Array(keyOptions.challenge),
+ ),
rpId: keyOptions.rpId,
userVerification: keyOptions.userVerification,
timeout: keyOptions.timeout,
@@ -123,13 +129,13 @@ export class WebauthnUtils {
static mapCredentialAssertResult(result: AssertCredentialResult): PublicKeyCredential {
const credential = {
id: result.credentialId,
- rawId: Fido2Utils.stringToBuffer(result.credentialId),
+ rawId: Fido2Utils.stringToArray(result.credentialId).buffer,
type: "public-key",
response: {
- authenticatorData: Fido2Utils.stringToBuffer(result.authenticatorData),
- clientDataJSON: Fido2Utils.stringToBuffer(result.clientDataJSON),
- signature: Fido2Utils.stringToBuffer(result.signature),
- userHandle: Fido2Utils.stringToBuffer(result.userHandle),
+ authenticatorData: Fido2Utils.stringToArray(result.authenticatorData).buffer,
+ clientDataJSON: Fido2Utils.stringToArray(result.clientDataJSON).buffer,
+ signature: Fido2Utils.stringToArray(result.signature).buffer,
+ userHandle: Fido2Utils.stringToArray(result.userHandle).buffer,
} as AuthenticatorAssertionResponse,
getClientExtensionResults: () => ({}),
authenticatorAttachment: "platform",
diff --git a/apps/browser/src/background/main.background.ts b/apps/browser/src/background/main.background.ts
index 585942d7537..a45b371a9da 100644
--- a/apps/browser/src/background/main.background.ts
+++ b/apps/browser/src/background/main.background.ts
@@ -14,7 +14,14 @@ import {
timeout,
} from "rxjs";
-import { CollectionService, DefaultCollectionService } from "@bitwarden/admin-console/common";
+import {
+ CollectionService,
+ DefaultCollectionService,
+ DefaultOrganizationUserApiService,
+ DefaultOrganizationUserService,
+ OrganizationUserApiService,
+ OrganizationUserService,
+} from "@bitwarden/admin-console/common";
import {
AuthRequestApiServiceAbstraction,
AuthRequestService,
@@ -27,6 +34,10 @@ import {
LogoutReason,
UserDecryptionOptionsService,
} from "@bitwarden/auth/common";
+import {
+ AutomaticUserConfirmationService,
+ DefaultAutomaticUserConfirmationService,
+} from "@bitwarden/auto-confirm";
import { ApiService as ApiServiceAbstraction } from "@bitwarden/common/abstractions/api.service";
import { AuditService as AuditServiceAbstraction } from "@bitwarden/common/abstractions/audit.service";
import { EventCollectionService as EventCollectionServiceAbstraction } from "@bitwarden/common/abstractions/event/event-collection.service";
@@ -100,7 +111,9 @@ import { DeviceTrustServiceAbstraction } from "@bitwarden/common/key-management/
import { DeviceTrustService } from "@bitwarden/common/key-management/device-trust/services/device-trust.service.implementation";
import { KeyConnectorService as KeyConnectorServiceAbstraction } from "@bitwarden/common/key-management/key-connector/abstractions/key-connector.service";
import { KeyConnectorService } from "@bitwarden/common/key-management/key-connector/services/key-connector.service";
+import { MasterPasswordUnlockService } from "@bitwarden/common/key-management/master-password/abstractions/master-password-unlock.service";
import { InternalMasterPasswordServiceAbstraction } from "@bitwarden/common/key-management/master-password/abstractions/master-password.service.abstraction";
+import { DefaultMasterPasswordUnlockService } from "@bitwarden/common/key-management/master-password/services/default-master-password-unlock.service";
import { MasterPasswordService } from "@bitwarden/common/key-management/master-password/services/master-password.service";
import { PinStateService } from "@bitwarden/common/key-management/pin/pin-state.service.implementation";
import { PinServiceAbstraction } from "@bitwarden/common/key-management/pin/pin.service.abstraction";
@@ -362,6 +375,7 @@ export default class MainBackground {
keyService: KeyServiceAbstraction;
cryptoFunctionService: CryptoFunctionServiceAbstraction;
masterPasswordService: InternalMasterPasswordServiceAbstraction;
+ masterPasswordUnlockService: MasterPasswordUnlockService;
tokenService: TokenServiceAbstraction;
appIdService: AppIdServiceAbstraction;
apiService: ApiServiceAbstraction;
@@ -487,6 +501,9 @@ export default class MainBackground {
onUpdatedRan: boolean;
onReplacedRan: boolean;
loginToAutoFill: CipherView = null;
+ organizationUserService: OrganizationUserService;
+ organizationUserApiService: OrganizationUserApiService;
+ autoConfirmService: AutomaticUserConfirmationService;
private commandsBackground: CommandsBackground;
private contextMenusBackground: ContextMenusBackground;
@@ -718,6 +735,12 @@ export default class MainBackground {
this.accountCryptographicStateService,
);
+ this.masterPasswordUnlockService = new DefaultMasterPasswordUnlockService(
+ this.masterPasswordService,
+ this.keyService,
+ this.logService,
+ );
+
const pinStateService = new PinStateService(this.stateProvider);
this.appIdService = new AppIdService(this.storageService, this.logService);
@@ -763,6 +786,15 @@ export default class MainBackground {
{ createRequest: (url, request) => new Request(url, request) },
);
+ this.organizationUserApiService = new DefaultOrganizationUserApiService(this.apiService);
+ this.organizationUserService = new DefaultOrganizationUserService(
+ this.keyService,
+ this.encryptService,
+ this.organizationUserApiService,
+ this.accountService,
+ this.i18nService,
+ );
+
this.hibpApiService = new HibpApiService(this.apiService);
this.fileUploadService = new FileUploadService(this.logService, this.apiService);
this.cipherFileUploadService = new CipherFileUploadService(
@@ -804,6 +836,16 @@ export default class MainBackground {
this.authService,
);
+ this.autoConfirmService = new DefaultAutomaticUserConfirmationService(
+ this.configService,
+ this.apiService,
+ this.organizationUserService,
+ this.stateProvider,
+ this.organizationService,
+ this.organizationUserApiService,
+ this.policyService,
+ );
+
const sdkClientFactory = flagEnabled("sdk")
? new DefaultSdkClientFactory()
: new NoopSdkClientFactory();
@@ -815,7 +857,7 @@ export default class MainBackground {
this.accountService,
this.kdfConfigService,
this.keyService,
- this.securityStateService,
+ this.accountCryptographicStateService,
this.apiService,
this.stateProvider,
this.configService,
@@ -915,8 +957,6 @@ export default class MainBackground {
this.billingAccountProfileStateService = new DefaultBillingAccountProfileStateService(
this.stateProvider,
- this.platformUtilsService,
- this.apiService,
);
this.restrictedItemTypesService = new RestrictedItemTypesService(
@@ -991,6 +1031,7 @@ export default class MainBackground {
this.pinService,
this.kdfConfigService,
this.biometricsService,
+ this.masterPasswordUnlockService,
);
this.vaultSettingsService = new VaultSettingsService(
@@ -1219,6 +1260,7 @@ export default class MainBackground {
this.authRequestAnsweringService,
this.configService,
this.policyService,
+ this.autoConfirmService,
);
this.fido2UserInterfaceService = new BrowserFido2UserInterfaceService(this.authService);
@@ -1375,6 +1417,7 @@ export default class MainBackground {
this.userNotificationSettingsService,
this.taskService,
this.messagingService,
+ this.fido2Background,
);
this.overlayNotificationsBackground = new OverlayNotificationsBackground(
diff --git a/apps/browser/src/manifest.json b/apps/browser/src/manifest.json
index ce5311f848a..54a10e34b12 100644
--- a/apps/browser/src/manifest.json
+++ b/apps/browser/src/manifest.json
@@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "__MSG_extName__",
"short_name": "Bitwarden",
- "version": "2026.1.0",
+ "version": "2026.2.0",
"description": "__MSG_extDesc__",
"default_locale": "en",
"author": "Bitwarden Inc.",
diff --git a/apps/browser/src/manifest.v3.json b/apps/browser/src/manifest.v3.json
index 9cb77aa3040..206a300236c 100644
--- a/apps/browser/src/manifest.v3.json
+++ b/apps/browser/src/manifest.v3.json
@@ -3,7 +3,7 @@
"minimum_chrome_version": "102.0",
"name": "__MSG_extName__",
"short_name": "Bitwarden",
- "version": "2026.1.0",
+ "version": "2026.2.0",
"description": "__MSG_extDesc__",
"default_locale": "en",
"author": "Bitwarden Inc.",
diff --git a/apps/browser/src/platform/browser/browser-api.spec.ts b/apps/browser/src/platform/browser/browser-api.spec.ts
index f7561b2b50b..d8a8fe52570 100644
--- a/apps/browser/src/platform/browser/browser-api.spec.ts
+++ b/apps/browser/src/platform/browser/browser-api.spec.ts
@@ -1,5 +1,7 @@
import { mock } from "jest-mock-extended";
+import { LogService } from "@bitwarden/logging";
+
import { BrowserApi } from "./browser-api";
type ChromeSettingsGet = chrome.types.ChromeSetting["get"];
@@ -29,6 +31,104 @@ describe("BrowserApi", () => {
});
});
+ describe("senderIsInternal", () => {
+ const EXTENSION_ORIGIN = "chrome-extension://id";
+
+ beforeEach(() => {
+ jest.spyOn(BrowserApi, "getRuntimeURL").mockReturnValue(`${EXTENSION_ORIGIN}/`);
+ });
+
+ it("returns false when sender is undefined", () => {
+ const result = BrowserApi.senderIsInternal(undefined);
+
+ expect(result).toBe(false);
+ });
+
+ it("returns false when sender has no origin", () => {
+ const result = BrowserApi.senderIsInternal({ id: "abc" } as any);
+
+ expect(result).toBe(false);
+ });
+
+ it("returns false when the extension URL cannot be determined", () => {
+ jest.spyOn(BrowserApi, "getRuntimeURL").mockReturnValue("");
+
+ const result = BrowserApi.senderIsInternal({ origin: EXTENSION_ORIGIN });
+
+ expect(result).toBe(false);
+ });
+
+ it.each([
+ ["an external origin", "https://evil.com"],
+ ["a subdomain of the extension origin", "chrome-extension://id.evil.com"],
+ ["a file: URL (opaque origin)", "file:///home/user/page.html"],
+ ["a data: URL (opaque origin)", "data:text/html,
hi
"],
+ ])("returns false when sender origin is %s", (_, senderOrigin) => {
+ const result = BrowserApi.senderIsInternal({ origin: senderOrigin });
+
+ expect(result).toBe(false);
+ });
+
+ it("returns false when sender is from a non-top-level frame", () => {
+ const result = BrowserApi.senderIsInternal({ origin: EXTENSION_ORIGIN, frameId: 5 });
+
+ expect(result).toBe(false);
+ });
+
+ it("returns true when sender origin matches and no frameId is present (popup)", () => {
+ const result = BrowserApi.senderIsInternal({ origin: EXTENSION_ORIGIN });
+
+ expect(result).toBe(true);
+ });
+
+ it("returns true when sender origin matches and frameId is 0 (top-level frame)", () => {
+ const result = BrowserApi.senderIsInternal({ origin: EXTENSION_ORIGIN, frameId: 0 });
+
+ expect(result).toBe(true);
+ });
+
+ it("calls logger.warning when sender has no origin", () => {
+ const logger = mock();
+
+ BrowserApi.senderIsInternal({} as any, logger);
+
+ expect(logger.warning).toHaveBeenCalledWith(expect.stringContaining("no origin"));
+ });
+
+ it("calls logger.warning when the extension URL cannot be determined", () => {
+ jest.spyOn(BrowserApi, "getRuntimeURL").mockReturnValue("");
+ const logger = mock();
+
+ BrowserApi.senderIsInternal({ origin: EXTENSION_ORIGIN }, logger);
+
+ expect(logger.warning).toHaveBeenCalledWith(expect.stringContaining("extension URL"));
+ });
+
+ it("calls logger.warning when origin does not match", () => {
+ const logger = mock();
+
+ BrowserApi.senderIsInternal({ origin: "https://evil.com" }, logger);
+
+ expect(logger.warning).toHaveBeenCalledWith(expect.stringContaining("does not match"));
+ });
+
+ it("calls logger.warning when sender is from a non-top-level frame", () => {
+ const logger = mock();
+
+ BrowserApi.senderIsInternal({ origin: EXTENSION_ORIGIN, frameId: 5 }, logger);
+
+ expect(logger.warning).toHaveBeenCalledWith(expect.stringContaining("top-level frame"));
+ });
+
+ it("calls logger.info when sender is confirmed internal", () => {
+ const logger = mock();
+
+ BrowserApi.senderIsInternal({ origin: EXTENSION_ORIGIN }, logger);
+
+ expect(logger.info).toHaveBeenCalledWith(expect.stringContaining("internal"));
+ });
+ });
+
describe("getWindow", () => {
it("will get the current window if a window id is not provided", () => {
// FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.
diff --git a/apps/browser/src/platform/browser/browser-api.ts b/apps/browser/src/platform/browser/browser-api.ts
index feefd527636..1b0f7639d1d 100644
--- a/apps/browser/src/platform/browser/browser-api.ts
+++ b/apps/browser/src/platform/browser/browser-api.ts
@@ -6,7 +6,7 @@ import { BrowserClientVendors } from "@bitwarden/common/autofill/constants";
import { BrowserClientVendor } from "@bitwarden/common/autofill/types";
import { DeviceType } from "@bitwarden/common/enums";
import { LogService } from "@bitwarden/logging";
-import { isBrowserSafariApi } from "@bitwarden/platform";
+import { isBrowserSafariApi, urlOriginsMatch } from "@bitwarden/platform";
import { TabMessage } from "../../types/tab-messages";
import { BrowserPlatformUtilsService } from "../services/platform-utils/browser-platform-utils.service";
@@ -34,12 +34,20 @@ export class BrowserApi {
}
/**
- * Helper method that attempts to distinguish whether a message sender is internal to the extension or not.
+ * Returns `true` if the message sender appears to originate from within this extension.
*
- * Currently this is done through source origin matching, and frameId checking (only top-level frames are internal).
- * @param sender a message sender
- * @param logger an optional logger to log validation results
- * @returns whether or not the sender appears to be internal to the extension
+ * Returns `false` when:
+ * - `sender` is absent or has no `origin` property
+ * - The extension's own URL cannot be determined at runtime
+ * - The sender's origin does not match the extension's origin (compared by scheme, host, and port;
+ * senders without a host such as `file:` or `data:` URLs are always rejected)
+ * - The message comes from a sub-frame rather than the top-level frame
+ *
+ * Note: this is a best-effort check that relies on the browser correctly populating `sender.origin`.
+ *
+ * @param sender - The message sender to validate. `undefined` or a sender without `origin` returns `false`.
+ * @param logger - Optional logger; rejections are reported at `warning` level, acceptance at `info`.
+ * @returns `true` if the sender appears to be internal to the extension; `false` otherwise.
*/
static senderIsInternal(
sender: chrome.runtime.MessageSender | undefined,
@@ -49,28 +57,22 @@ export class BrowserApi {
logger?.warning("[BrowserApi] Message sender has no origin");
return false;
}
- const extensionUrl =
- (typeof chrome !== "undefined" && chrome.runtime?.getURL("")) ||
- (typeof browser !== "undefined" && browser.runtime?.getURL("")) ||
- "";
+ // Empty path yields the extension's base URL; coalesce to empty string so the guard below fires on a missing runtime.
+ const extensionUrl = BrowserApi.getRuntimeURL("") ?? "";
if (!extensionUrl) {
logger?.warning("[BrowserApi] Unable to determine extension URL");
return false;
}
- // Normalize both URLs by removing trailing slashes
- const normalizedOrigin = sender.origin.replace(/\/$/, "").toLowerCase();
- const normalizedExtensionUrl = extensionUrl.replace(/\/$/, "").toLowerCase();
-
- if (!normalizedOrigin.startsWith(normalizedExtensionUrl)) {
+ if (!urlOriginsMatch(extensionUrl, sender.origin)) {
logger?.warning(
- `[BrowserApi] Message sender origin (${normalizedOrigin}) does not match extension URL (${normalizedExtensionUrl})`,
+ `[BrowserApi] Message sender origin (${sender.origin}) does not match extension URL (${extensionUrl})`,
);
return false;
}
- // We only send messages from the top-level frame, but frameId is only set if tab is set, which for popups it is not.
+ // frameId is absent for popups, so use an 'in' check rather than direct comparison.
if ("frameId" in sender && sender.frameId !== 0) {
logger?.warning("[BrowserApi] Message sender is not from the top-level frame");
return false;
diff --git a/apps/browser/src/popup/app-routing.module.ts b/apps/browser/src/popup/app-routing.module.ts
index 4e14d1171fd..01d713742a5 100644
--- a/apps/browser/src/popup/app-routing.module.ts
+++ b/apps/browser/src/popup/app-routing.module.ts
@@ -42,7 +42,7 @@ import {
TwoFactorAuthComponent,
TwoFactorAuthGuard,
} from "@bitwarden/auth/angular";
-import { canAccessAutoConfirmSettings } from "@bitwarden/auto-confirm";
+import { canAccessAutoConfirmSettings } from "@bitwarden/auto-confirm/angular";
import { AnonLayoutWrapperComponent, AnonLayoutWrapperData } from "@bitwarden/components";
import {
LockComponent,
@@ -356,7 +356,7 @@ const routes: Routes = [
{
path: "edit-send",
component: SendAddEditV2Component,
- canActivate: [authGuard, filePickerPopoutGuard()],
+ canActivate: [authGuard],
data: { elevation: 1 } satisfies RouteDataProperties,
},
{
diff --git a/apps/browser/src/popup/services/services.module.ts b/apps/browser/src/popup/services/services.module.ts
index 7988bec29b9..8f446b32197 100644
--- a/apps/browser/src/popup/services/services.module.ts
+++ b/apps/browser/src/popup/services/services.module.ts
@@ -3,11 +3,7 @@
import { APP_INITIALIZER, NgModule, NgZone } from "@angular/core";
import { merge, of, Subject } from "rxjs";
-import {
- CollectionService,
- OrganizationUserApiService,
- OrganizationUserService,
-} from "@bitwarden/admin-console/common";
+import { CollectionService } from "@bitwarden/admin-console/common";
import { DeviceManagementComponentServiceAbstraction } from "@bitwarden/angular/auth/device-management/device-management-component.service.abstraction";
import { ChangePasswordService } from "@bitwarden/angular/auth/password-management/change-password";
import { AngularThemingService } from "@bitwarden/angular/platform/services/theming/angular-theming.service";
@@ -48,19 +44,13 @@ import {
LogoutService,
UserDecryptionOptionsServiceAbstraction,
} from "@bitwarden/auth/common";
-import {
- AutomaticUserConfirmationService,
- DefaultAutomaticUserConfirmationService,
-} from "@bitwarden/auto-confirm";
+import { AutomaticUserConfirmationService } from "@bitwarden/auto-confirm";
import { ExtensionAuthRequestAnsweringService } from "@bitwarden/browser/auth/services/auth-request-answering/extension-auth-request-answering.service";
import { ExtensionNewDeviceVerificationComponentService } from "@bitwarden/browser/auth/services/new-device-verification/extension-new-device-verification-component.service";
import { BrowserRouterService } from "@bitwarden/browser/platform/popup/services/browser-router.service";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { EventCollectionService as EventCollectionServiceAbstraction } from "@bitwarden/common/abstractions/event/event-collection.service";
-import {
- InternalOrganizationServiceAbstraction,
- OrganizationService,
-} from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
+import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
import {
AccountService,
@@ -776,19 +766,6 @@ const safeProviders: SafeProvider[] = [
useClass: ExtensionNewDeviceVerificationComponentService,
deps: [],
}),
- safeProvider({
- provide: AutomaticUserConfirmationService,
- useClass: DefaultAutomaticUserConfirmationService,
- deps: [
- ConfigService,
- ApiService,
- OrganizationUserService,
- StateProvider,
- InternalOrganizationServiceAbstraction,
- OrganizationUserApiService,
- PolicyService,
- ],
- }),
safeProvider({
provide: SessionTimeoutTypeService,
useClass: BrowserSessionTimeoutTypeService,
diff --git a/apps/browser/src/tools/popup/guards/file-picker-popout.guard.spec.ts b/apps/browser/src/tools/popup/guards/file-picker-popout.guard.spec.ts
index 2f100ab67f2..64b7ac673c1 100644
--- a/apps/browser/src/tools/popup/guards/file-picker-popout.guard.spec.ts
+++ b/apps/browser/src/tools/popup/guards/file-picker-popout.guard.spec.ts
@@ -269,23 +269,21 @@ describe("filePickerPopoutGuard", () => {
inSidebarSpy.mockReturnValue(false);
});
- it.each([
- { route: "/import" },
- { route: "/add-send" },
- { route: "/edit-send" },
- { route: "/attachments" },
- ])("should open popout for $route route", async ({ route }) => {
- const importState: RouterStateSnapshot = {
- url: route,
- } as RouterStateSnapshot;
+ it.each([{ route: "/import" }, { route: "/add-send" }, { route: "/attachments" }])(
+ "should open popout for $route route",
+ async ({ route }) => {
+ const importState: RouterStateSnapshot = {
+ url: route,
+ } as RouterStateSnapshot;
- const guard = filePickerPopoutGuard();
- const result = await TestBed.runInInjectionContext(() => guard(mockRoute, importState));
+ const guard = filePickerPopoutGuard();
+ const result = await TestBed.runInInjectionContext(() => guard(mockRoute, importState));
- expect(openPopoutSpy).toHaveBeenCalledWith("popup/index.html#" + route);
- expect(closePopupSpy).toHaveBeenCalledWith(window);
- expect(result).toBe(false);
- });
+ expect(openPopoutSpy).toHaveBeenCalledWith("popup/index.html#" + route);
+ expect(closePopupSpy).toHaveBeenCalledWith(window);
+ expect(result).toBe(false);
+ },
+ );
});
describe("Url handling", () => {
@@ -354,30 +352,6 @@ describe("filePickerPopoutGuard", () => {
expect(result).toBe(true);
},
);
-
- it.each([
- { deviceType: DeviceType.FirefoxExtension, name: "Firefox" },
- { deviceType: DeviceType.SafariExtension, name: "Safari" },
- { deviceType: DeviceType.ChromeExtension, name: "Chrome" },
- { deviceType: DeviceType.EdgeExtension, name: "Edge" },
- ])("should allow navigation for editing text Sends on $name", async ({ deviceType }) => {
- getDeviceSpy.mockReturnValue(deviceType);
- inPopoutSpy.mockReturnValue(false);
- inSidebarSpy.mockReturnValue(false);
-
- const editTextSendState: RouterStateSnapshot = {
- url: "/edit-send?sendId=abc123&type=0",
- } as RouterStateSnapshot;
-
- const guard = filePickerPopoutGuard();
- const result = await TestBed.runInInjectionContext(() =>
- guard(mockRoute, editTextSendState),
- );
-
- expect(openPopoutSpy).not.toHaveBeenCalled();
- expect(closePopupSpy).not.toHaveBeenCalled();
- expect(result).toBe(true);
- });
});
describe("File Sends (type=1)", () => {
@@ -487,115 +461,6 @@ describe("filePickerPopoutGuard", () => {
}
},
);
-
- it.each([
- {
- deviceType: DeviceType.FirefoxExtension,
- name: "Firefox",
- os: "Mac",
- userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",
- expectPopout: true,
- },
- {
- deviceType: DeviceType.FirefoxExtension,
- name: "Firefox",
- os: "Linux",
- userAgent: "Mozilla/5.0 (X11; Linux x86_64)",
- expectPopout: true,
- },
- {
- deviceType: DeviceType.FirefoxExtension,
- name: "Firefox",
- os: "Windows",
- userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
- expectPopout: true,
- },
- {
- deviceType: DeviceType.SafariExtension,
- name: "Safari",
- os: "Mac",
- userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",
- expectPopout: true,
- },
- {
- deviceType: DeviceType.ChromeExtension,
- name: "Chrome",
- os: "Mac",
- userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",
- expectPopout: true,
- },
- {
- deviceType: DeviceType.ChromeExtension,
- name: "Chrome",
- os: "Linux",
- userAgent: "Mozilla/5.0 (X11; Linux x86_64)",
- expectPopout: true,
- },
- {
- deviceType: DeviceType.ChromeExtension,
- name: "Chrome",
- os: "Windows",
- userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
- expectPopout: false,
- },
- {
- deviceType: DeviceType.EdgeExtension,
- name: "Edge",
- os: "Mac",
- userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",
- expectPopout: true,
- },
- {
- deviceType: DeviceType.EdgeExtension,
- name: "Edge",
- os: "Linux",
- userAgent: "Mozilla/5.0 (X11; Linux x86_64)",
- expectPopout: true,
- },
- {
- deviceType: DeviceType.EdgeExtension,
- name: "Edge",
- os: "Windows",
- userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
- expectPopout: false,
- },
- ])(
- "should require popout for editing a file Send on $name $os",
- async ({ deviceType, userAgent, expectPopout }) => {
- getDeviceSpy.mockReturnValue(deviceType);
- inPopoutSpy.mockReturnValue(false);
- inSidebarSpy.mockReturnValue(false);
-
- if (userAgent) {
- Object.defineProperty(window, "navigator", {
- value: { userAgent, appVersion: userAgent },
- configurable: true,
- writable: true,
- });
- }
-
- const editFileSendState: RouterStateSnapshot = {
- url: "/edit-send?sendId=abc123&type=1",
- } as RouterStateSnapshot;
-
- const guard = filePickerPopoutGuard();
- const result = await TestBed.runInInjectionContext(() =>
- guard(mockRoute, editFileSendState),
- );
-
- if (expectPopout === false) {
- expect(openPopoutSpy).not.toHaveBeenCalled();
- expect(closePopupSpy).not.toHaveBeenCalled();
- expect(result).toBe(true);
- } else {
- expect(openPopoutSpy).toHaveBeenCalledWith(
- "popup/index.html#/edit-send?sendId=abc123&type=1",
- );
- expect(closePopupSpy).toHaveBeenCalledWith(window);
- expect(result).toBe(false);
- }
- },
- );
});
describe("Send routes without type parameter", () => {
diff --git a/apps/browser/src/tools/popup/guards/file-picker-popout.guard.ts b/apps/browser/src/tools/popup/guards/file-picker-popout.guard.ts
index 900ff328ac8..48a73ed780f 100644
--- a/apps/browser/src/tools/popup/guards/file-picker-popout.guard.ts
+++ b/apps/browser/src/tools/popup/guards/file-picker-popout.guard.ts
@@ -24,9 +24,9 @@ import { SendType } from "@bitwarden/common/tools/send/types/send-type";
*/
export function filePickerPopoutGuard(): CanActivateFn {
return async (_route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {
- // Check if this is a text Send route (no file picker needed)
- if (isTextOnlySendRoute(state.url)) {
- return true; // Allow navigation without popout
+ // Text Sends have no file picker — never require a popout regardless of browser
+ if (isTextSendRoute(state.url)) {
+ return true;
}
// Check if browser is one that needs popout for file pickers
@@ -81,29 +81,16 @@ export function filePickerPopoutGuard(): CanActivateFn {
}
/**
- * Determines if the route is for a text Send that doesn't require file picker display.
- *
- * @param url The route URL with query parameters
- * @returns true if this is a Send route with explicitly text type (SendType.Text = 0)
+ * Returns true when the add-send route targets a Text Send (type=0).
+ * Text Sends have no file picker and never require a popout window.
*/
-function isTextOnlySendRoute(url: string): boolean {
- // Only apply to Send routes
- if (!url.includes("/add-send") && !url.includes("/edit-send")) {
+function isTextSendRoute(url: string): boolean {
+ if (!url.includes("/add-send")) {
return false;
}
-
- // Parse query parameters to check Send type
- const queryStartIndex = url.indexOf("?");
- if (queryStartIndex === -1) {
- // No query params - default to requiring popout for safety
+ const queryStart = url.indexOf("?");
+ if (queryStart === -1) {
return false;
}
-
- const queryString = url.substring(queryStartIndex + 1);
- const params = new URLSearchParams(queryString);
- const typeParam = params.get("type");
-
- // Only skip popout for explicitly text-based Sends (SendType.Text = 0)
- // If type is missing, null, or not text, default to requiring popout
- return typeParam === String(SendType.Text);
+ return new URLSearchParams(url.substring(queryStart + 1)).get("type") === String(SendType.Text);
}
diff --git a/apps/browser/src/tools/popup/guards/firefox-popout.guard.spec.ts b/apps/browser/src/tools/popup/guards/firefox-popout.guard.spec.ts
deleted file mode 100644
index df04b965d4c..00000000000
--- a/apps/browser/src/tools/popup/guards/firefox-popout.guard.spec.ts
+++ /dev/null
@@ -1,194 +0,0 @@
-import { TestBed } from "@angular/core/testing";
-import { ActivatedRouteSnapshot, RouterStateSnapshot } from "@angular/router";
-
-import { DeviceType } from "@bitwarden/common/enums";
-
-import { BrowserApi } from "../../../platform/browser/browser-api";
-import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
-import { BrowserPlatformUtilsService } from "../../../platform/services/platform-utils/browser-platform-utils.service";
-
-import { firefoxPopoutGuard } from "./firefox-popout.guard";
-
-describe("firefoxPopoutGuard", () => {
- let getDeviceSpy: jest.SpyInstance;
- let inPopoutSpy: jest.SpyInstance;
- let inSidebarSpy: jest.SpyInstance;
- let openPopoutSpy: jest.SpyInstance;
- let closePopupSpy: jest.SpyInstance;
-
- const mockRoute = {} as ActivatedRouteSnapshot;
- const mockState: RouterStateSnapshot = {
- url: "/import?param=value",
- } as RouterStateSnapshot;
-
- beforeEach(() => {
- getDeviceSpy = jest.spyOn(BrowserPlatformUtilsService, "getDevice");
- inPopoutSpy = jest.spyOn(BrowserPopupUtils, "inPopout");
- inSidebarSpy = jest.spyOn(BrowserPopupUtils, "inSidebar");
- openPopoutSpy = jest.spyOn(BrowserPopupUtils, "openPopout").mockImplementation();
- closePopupSpy = jest.spyOn(BrowserApi, "closePopup").mockImplementation();
-
- TestBed.configureTestingModule({});
- });
-
- afterEach(() => {
- jest.clearAllMocks();
- });
-
- describe("when browser is Firefox", () => {
- beforeEach(() => {
- getDeviceSpy.mockReturnValue(DeviceType.FirefoxExtension);
- inPopoutSpy.mockReturnValue(false);
- inSidebarSpy.mockReturnValue(false);
- });
-
- it("should open popout and block navigation when not already in popout or sidebar", async () => {
- const guard = firefoxPopoutGuard();
- const result = await TestBed.runInInjectionContext(() => guard(mockRoute, mockState));
-
- expect(getDeviceSpy).toHaveBeenCalledWith(window);
- expect(inPopoutSpy).toHaveBeenCalledWith(window);
- expect(inSidebarSpy).toHaveBeenCalledWith(window);
- expect(openPopoutSpy).toHaveBeenCalledWith("popup/index.html#/import?param=value");
- expect(closePopupSpy).toHaveBeenCalledWith(window);
- expect(result).toBe(false);
- });
-
- it("should not add autoClosePopout parameter to the url", async () => {
- const guard = firefoxPopoutGuard();
- await TestBed.runInInjectionContext(() => guard(mockRoute, mockState));
-
- expect(openPopoutSpy).toHaveBeenCalledWith("popup/index.html#/import?param=value");
- expect(openPopoutSpy).not.toHaveBeenCalledWith(expect.stringContaining("autoClosePopout"));
- });
-
- it("should allow navigation when already in popout", async () => {
- inPopoutSpy.mockReturnValue(true);
-
- const guard = firefoxPopoutGuard();
- const result = await TestBed.runInInjectionContext(() => guard(mockRoute, mockState));
-
- expect(openPopoutSpy).not.toHaveBeenCalled();
- expect(closePopupSpy).not.toHaveBeenCalled();
- expect(result).toBe(true);
- });
-
- it("should allow navigation when already in sidebar", async () => {
- inSidebarSpy.mockReturnValue(true);
-
- const guard = firefoxPopoutGuard();
- const result = await TestBed.runInInjectionContext(() => guard(mockRoute, mockState));
-
- expect(openPopoutSpy).not.toHaveBeenCalled();
- expect(closePopupSpy).not.toHaveBeenCalled();
- expect(result).toBe(true);
- });
- });
-
- describe("when browser is not Firefox", () => {
- beforeEach(() => {
- inPopoutSpy.mockReturnValue(false);
- inSidebarSpy.mockReturnValue(false);
- });
-
- it.each([
- { deviceType: DeviceType.ChromeExtension, name: "ChromeExtension" },
- { deviceType: DeviceType.EdgeExtension, name: "EdgeExtension" },
- { deviceType: DeviceType.OperaExtension, name: "OperaExtension" },
- { deviceType: DeviceType.SafariExtension, name: "SafariExtension" },
- { deviceType: DeviceType.VivaldiExtension, name: "VivaldiExtension" },
- ])(
- "should allow navigation without opening popout when device is $name",
- async ({ deviceType }) => {
- getDeviceSpy.mockReturnValue(deviceType);
-
- const guard = firefoxPopoutGuard();
- const result = await TestBed.runInInjectionContext(() => guard(mockRoute, mockState));
-
- expect(getDeviceSpy).toHaveBeenCalledWith(window);
- expect(openPopoutSpy).not.toHaveBeenCalled();
- expect(closePopupSpy).not.toHaveBeenCalled();
- expect(result).toBe(true);
- },
- );
- });
-
- describe("file picker routes", () => {
- beforeEach(() => {
- getDeviceSpy.mockReturnValue(DeviceType.FirefoxExtension);
- inPopoutSpy.mockReturnValue(false);
- inSidebarSpy.mockReturnValue(false);
- });
-
- it("should open popout for /import route", async () => {
- const importState: RouterStateSnapshot = {
- url: "/import",
- } as RouterStateSnapshot;
-
- const guard = firefoxPopoutGuard();
- const result = await TestBed.runInInjectionContext(() => guard(mockRoute, importState));
-
- expect(openPopoutSpy).toHaveBeenCalledWith("popup/index.html#/import");
- expect(closePopupSpy).toHaveBeenCalledWith(window);
- expect(result).toBe(false);
- });
-
- it("should open popout for /add-send route", async () => {
- const addSendState: RouterStateSnapshot = {
- url: "/add-send",
- } as RouterStateSnapshot;
-
- const guard = firefoxPopoutGuard();
- const result = await TestBed.runInInjectionContext(() => guard(mockRoute, addSendState));
-
- expect(openPopoutSpy).toHaveBeenCalledWith("popup/index.html#/add-send");
- expect(closePopupSpy).toHaveBeenCalledWith(window);
- expect(result).toBe(false);
- });
-
- it("should open popout for /edit-send route", async () => {
- const editSendState: RouterStateSnapshot = {
- url: "/edit-send",
- } as RouterStateSnapshot;
-
- const guard = firefoxPopoutGuard();
- const result = await TestBed.runInInjectionContext(() => guard(mockRoute, editSendState));
-
- expect(openPopoutSpy).toHaveBeenCalledWith("popup/index.html#/edit-send");
- expect(closePopupSpy).toHaveBeenCalledWith(window);
- expect(result).toBe(false);
- });
- });
-
- describe("url handling", () => {
- beforeEach(() => {
- getDeviceSpy.mockReturnValue(DeviceType.FirefoxExtension);
- inPopoutSpy.mockReturnValue(false);
- inSidebarSpy.mockReturnValue(false);
- });
-
- it("should preserve query parameters in the popout url", async () => {
- const stateWithQuery: RouterStateSnapshot = {
- url: "/import?foo=bar&baz=qux",
- } as RouterStateSnapshot;
-
- const guard = firefoxPopoutGuard();
- await TestBed.runInInjectionContext(() => guard(mockRoute, stateWithQuery));
-
- expect(openPopoutSpy).toHaveBeenCalledWith("popup/index.html#/import?foo=bar&baz=qux");
- expect(closePopupSpy).toHaveBeenCalledWith(window);
- });
-
- it("should handle urls without query parameters", async () => {
- const stateWithoutQuery: RouterStateSnapshot = {
- url: "/simple-path",
- } as RouterStateSnapshot;
-
- const guard = firefoxPopoutGuard();
- await TestBed.runInInjectionContext(() => guard(mockRoute, stateWithoutQuery));
-
- expect(openPopoutSpy).toHaveBeenCalledWith("popup/index.html#/simple-path");
- expect(closePopupSpy).toHaveBeenCalledWith(window);
- });
- });
-});
diff --git a/apps/browser/src/tools/popup/guards/firefox-popout.guard.ts b/apps/browser/src/tools/popup/guards/firefox-popout.guard.ts
deleted file mode 100644
index 821f1b7a5bc..00000000000
--- a/apps/browser/src/tools/popup/guards/firefox-popout.guard.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from "@angular/router";
-
-import { BrowserApi } from "@bitwarden/browser/platform/browser/browser-api";
-import BrowserPopupUtils from "@bitwarden/browser/platform/browser/browser-popup-utils";
-import { BrowserPlatformUtilsService } from "@bitwarden/browser/platform/services/platform-utils/browser-platform-utils.service";
-import { DeviceType } from "@bitwarden/common/enums";
-
-/**
- * Guard that forces a popout window on Firefox browser when a file picker could be exposed.
- * Necessary to avoid a crash: https://bugzilla.mozilla.org/show_bug.cgi?id=1292701
- * Also disallows the user from closing a popout and re-opening the view exposing the file picker.
- *
- * @returns CanActivateFn that opens popout and blocks navigation on Firefox
- */
-export function firefoxPopoutGuard(): CanActivateFn {
- return async (_route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {
- // Check if browser is Firefox using the platform utils service
- const deviceType = BrowserPlatformUtilsService.getDevice(window);
- const isFirefox = deviceType === DeviceType.FirefoxExtension;
-
- // Check if already in popout/sidebar
- const inPopout = BrowserPopupUtils.inPopout(window);
- const inSidebar = BrowserPopupUtils.inSidebar(window);
-
- // Open popout if on Firefox and not already in popout/sidebar
- if (isFirefox && !inPopout && !inSidebar) {
- // Don't add autoClosePopout for file picker scenarios - user should manually close
- await BrowserPopupUtils.openPopout(`popup/index.html#${state.url}`);
-
- // Close the original popup window
- BrowserApi.closePopup(window);
-
- return false; // Block navigation - popout will reload
- }
-
- return true; // Allow navigation
- };
-}
diff --git a/apps/browser/src/tools/popup/send-v2/send-created/send-created.component.html b/apps/browser/src/tools/popup/send-v2/send-created/send-created.component.html
index 94c1df46eea..38ef7a4f1df 100644
--- a/apps/browser/src/tools/popup/send-v2/send-created/send-created.component.html
+++ b/apps/browser/src/tools/popup/send-v2/send-created/send-created.component.html
@@ -20,7 +20,13 @@
{{ "createdSendSuccessfully" | i18n }}