diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 2665f345568..4b956fd577a 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -131,6 +131,7 @@ apps/web/src/translation-constants.ts @bitwarden/team-platform-dev
.github/workflows/version-auto-bump.yml @bitwarden/team-platform-dev
# ESLint custom rules
libs/eslint @bitwarden/team-platform-dev
+libs/eslint/components @bitwarden/team-ui-foundation
# Typescript tooling
tsconfig.base.json @bitwarden/team-platform-dev
nx.json @bitwarden/team-platform-dev
@@ -143,6 +144,7 @@ apps/desktop/macos/autofill-extension @bitwarden/team-autofill-dev
apps/desktop/src/app/components/fido2placeholder.component.ts @bitwarden/team-autofill-dev
apps/desktop/desktop_native/windows_plugin_authenticator @bitwarden/team-autofill-dev
apps/desktop/desktop_native/autotype @bitwarden/team-autofill-dev
+.github/workflows/test-browser-interactions.yml @bitwarden/team-autofill-dev
# DuckDuckGo integration
apps/desktop/native-messaging-test-runner @bitwarden/team-autofill-dev
apps/desktop/src/services/duckduckgo-message-handler.service.ts @bitwarden/team-autofill-dev
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index 906bbbd7125..e646049c3d6 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -197,6 +197,7 @@
"nx",
"oo7",
"oslog",
+ "parse5",
"pin-project",
"pkg",
"postcss",
diff --git a/.github/workflows/build-browser.yml b/.github/workflows/build-browser.yml
index be140b9a20e..43661d50910 100644
--- a/.github/workflows/build-browser.yml
+++ b/.github/workflows/build-browser.yml
@@ -232,7 +232,7 @@ jobs:
npm --version
- name: Download browser source
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
+ uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: browser-source-${{ env._BUILD_NUMBER }}.zip
diff --git a/.github/workflows/build-cli.yml b/.github/workflows/build-cli.yml
index 73b765f207a..22ba3a3e7be 100644
--- a/.github/workflows/build-cli.yml
+++ b/.github/workflows/build-cli.yml
@@ -499,7 +499,7 @@ jobs:
echo "BW Package Version: $_PACKAGE_VERSION"
- name: Get bw linux cli
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
+ uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: bw-linux-${{ env._PACKAGE_VERSION }}.zip
path: apps/cli/dist/snap
diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml
index 366d439fb45..e6c77b366b1 100644
--- a/.github/workflows/build-desktop.yml
+++ b/.github/workflows/build-desktop.yml
@@ -1079,7 +1079,7 @@ jobs:
run: npm run build
- name: Download Browser artifact
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
+ uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
path: ${{ github.workspace }}/browser-build-artifacts
@@ -1344,7 +1344,7 @@ jobs:
run: npm run build
- name: Download Browser artifact
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
+ uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
path: ${{ github.workspace }}/browser-build-artifacts
diff --git a/.github/workflows/release-desktop-beta.yml b/.github/workflows/release-desktop-beta.yml
index e3eb9090cb7..eb6af20f9ee 100644
--- a/.github/workflows/release-desktop-beta.yml
+++ b/.github/workflows/release-desktop-beta.yml
@@ -1035,7 +1035,7 @@ jobs:
uses: bitwarden/gh-actions/azure-logout@main
- name: Download all artifacts
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
+ uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
path: apps/desktop/artifacts
diff --git a/.github/workflows/test-browser-interactions.yml b/.github/workflows/test-browser-interactions.yml
new file mode 100644
index 00000000000..c6427b2e0d8
--- /dev/null
+++ b/.github/workflows/test-browser-interactions.yml
@@ -0,0 +1,83 @@
+name: Autofill BIT checks
+run-name: Autofill BIT checks on ${{ github.event.workflow_run.head_branch }} build
+
+on:
+ workflow_run:
+ workflows: ["Build Browser"]
+ types:
+ - completed
+
+jobs:
+ check-files:
+ name: Check files
+ runs-on: ubuntu-22.04
+ permissions:
+ actions: write
+ contents: read
+ id-token: write
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+ with:
+ fetch-depth: 0
+
+ - name: Check for job requirements
+ if: ${{ !github.event.workflow_run.pull_requests || !github.event.workflow_run.head_branch }}
+ env:
+ GH_TOKEN: ${{ github.token }}
+ run: |
+ gh run cancel ${{ github.run_id }}
+ gh run watch ${{ github.run_id }}
+
+ - name: Log in to Azure
+ uses: bitwarden/gh-actions/azure-login@main
+ with:
+ subscription_id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
+ tenant_id: ${{ secrets.AZURE_TENANT_ID }}
+ client_id: ${{ secrets.AZURE_CLIENT_ID }}
+
+ - name: Get Azure Key Vault secrets
+ id: get-kv-secrets
+ uses: bitwarden/gh-actions/get-keyvault-secrets@main
+ with:
+ keyvault: gh-org-bitwarden
+ secrets: "BW-GHAPP-ID,BW-GHAPP-KEY"
+
+ - name: Log out from Azure
+ uses: bitwarden/gh-actions/azure-logout@main
+
+ - name: Generate GH App token
+ uses: actions/create-github-app-token@30bf6253fa41bdc8d1501d202ad15287582246b4 # v2.0.3
+ id: app-token
+ with:
+ app-id: ${{ steps.get-kv-secrets.outputs.BW-GHAPP-ID }}
+ private-key: ${{ steps.get-kv-secrets.outputs.BW-GHAPP-KEY }}
+ owner: bitwarden
+ repositories: browser-interactions-testing
+ permission-actions: write
+
+ - name: Get changed files
+ id: changed-files
+ uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
+ with:
+ list-files: shell
+ ref: ${{ github.event.workflow_run.head_branch }}
+ token: ${{ secrets.GITHUB_TOKEN }}
+ filters: |
+ monitored:
+ - 'apps/browser/src/autofill/**'
+ - 'apps/browser/src/background/**'
+ - 'apps/browser/src/platform/services/browser-script-injector.service.ts'
+
+ - name: Trigger test-all workflow in browser-interactions-testing
+ if: steps.changed-files.outputs.monitored == 'true'
+ uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3.0.0
+ with:
+ token: ${{ steps.app-token.outputs.token }}
+ repository: "bitwarden/browser-interactions-testing"
+ event-type: trigger-bit-tests
+ client-payload: |-
+ {
+ "origin_issue": ${{ github.event.workflow_run.pull_requests[0].number }},
+ "origin_branch": "${{ github.event.workflow_run.pull_requests[0].head.ref }}"
+ }
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index a8bfd368884..64c4e0dff13 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -170,13 +170,13 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Download jest coverage
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
+ uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: jest-coverage
path: ./
- name: Download rust coverage
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
+ uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: rust-coverage
path: ./apps/desktop/desktop_native
diff --git a/apps/browser/package.json b/apps/browser/package.json
index cb0de28df5b..46c92ca8902 100644
--- a/apps/browser/package.json
+++ b/apps/browser/package.json
@@ -1,6 +1,6 @@
{
"name": "@bitwarden/browser",
- "version": "2025.7.1",
+ "version": "2025.8.0",
"scripts": {
"build": "npm run build:chrome",
"build:chrome": "cross-env BROWSER=chrome MANIFEST_VERSION=3 NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
diff --git a/apps/browser/src/_locales/ar/messages.json b/apps/browser/src/_locales/ar/messages.json
index 65ee9cab458..ee723217f2a 100644
--- a/apps/browser/src/_locales/ar/messages.json
+++ b/apps/browser/src/_locales/ar/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/az/messages.json b/apps/browser/src/_locales/az/messages.json
index 16b74ffe175..1d26f50bca6 100644
--- a/apps/browser/src/_locales/az/messages.json
+++ b/apps/browser/src/_locales/az/messages.json
@@ -14,7 +14,7 @@
"description": "Extension description, MUST be less than 112 characters (Safari restriction)"
},
"loginOrCreateNewAccount": {
- "message": "Güvənli seyfinizə müraciət etmək üçün giriş edin və ya yeni bir hesab yaradın."
+ "message": "Güvənli seyfinizə erişmək üçün giriş edin və ya yeni bir hesab yaradın."
},
"inviteAccepted": {
"message": "Dəvət qəbul edildi"
@@ -59,7 +59,7 @@
"message": "Ana parol"
},
"masterPassDesc": {
- "message": "Ana parol, seyfinizə müraciət etmək üçün istifadə edəcəyiniz paroldur. Ana parolu yadda saxlamaq çox vacibdir. Unutsanız, parolu bərpa etməyin heç bir yolu yoxdur."
+ "message": "Ana parol, seyfinizə erişmək üçün istifadə edəcəyiniz paroldur. Ana parolu yadda saxlamaq çox vacibdir. Unutsanız, parolu bərpa etməyin heç bir yolu yoxdur."
},
"masterPassHintDesc": {
"message": "Ana parol məsləhəti, unutduğunuz parolunuzu xatırlamağınıza kömək edir."
@@ -350,7 +350,7 @@
"message": "Bitwarden Sirr Meneceri"
},
"continueToSecretsManagerPageDesc": {
- "message": "Bitwarden Sirr Meneceri ilə developer sirlərini güvənli bir şəkildə saxlayın, idarə edin və paylaşın. Daha ətraflı bitwarden.com veb saytında öyrənə bilərsiniz."
+ "message": "Bitwarden Sirr Meneceri ilə gəlişdirici sirlərini güvənli bir şəkildə saxlayın, idarə edin və paylaşın. Daha ətraflı bitwarden.com veb saytında öyrənə bilərsiniz."
},
"passwordlessDotDev": {
"message": "Passwordless.dev"
@@ -548,7 +548,7 @@
"message": "Seyfdə axtar"
},
"resetSearch": {
- "message": "Reset search"
+ "message": "Axtarışı sıfırla"
},
"edit": {
"message": "Düzəliş et"
@@ -1216,10 +1216,10 @@
"message": "Konteks menyu seçimlərini göstər"
},
"contextMenuItemDesc": {
- "message": "Veb sayt üçün parol yaratmaq və uyuşan giriş məlumatlarına müraciət etmək üçün sağ klikləməni istifadə edin."
+ "message": "Veb sayt üçün parol yaradılmasına və uyuşan giriş məlumatlarına erişmək üçün sağ klikləməni istifadə edin."
},
"contextMenuItemDescAlt": {
- "message": "Veb sayt üçün parol yaratmaq və uyuşan giriş məlumatlarına müraciət etmək üçün sağ klikləməni istifadə edin. Giriş etmiş bütün hesablara aiddir."
+ "message": "Veb sayt üçün parol yaradılmasına və uyuşan giriş məlumatlarına erişmək üçün sağ klikləməni istifadə edin. Giriş etmiş bütün hesablara aiddir."
},
"defaultUriMatchDetection": {
"message": "İlkin URI uyuşma aşkarlaması",
@@ -1290,16 +1290,16 @@
"message": "Seyfi xaricə köçürməyi təsdiqlə"
},
"exportWarningDesc": {
- "message": "Xaricə köçürdüyünüz bu fayldakı datanız şifrələnməmiş formatdadır. Bu faylı güvənli olmayan kanallar (e-poçt kimi) üzərində saxlamamalı və ya göndərməməlisiniz. İşiniz bitdikdən sonra faylı dərhal silin."
+ "message": "Bu xaricə köçürmədəki seyf veriləriniz şifrələnməmiş formatdadır. Bu xaricə köçürülmüş faylı güvənli olmayan kanallar (e-poçt kimi) üzərində saxlamamalı və ya göndərməməlisiniz. İşiniz bitdikdən sonra faylı dərhal silin."
},
"encExportKeyWarningDesc": {
- "message": "Xaricə köçürdüyünüz bu fayldakı data, hesabınızın şifrələmə açarı istifadə edilərək şifrələnir. Hesabınızın şifrələmə açarını dəyişdirsəniz, bu faylın şifrəsini aça bilməyəcəksiniz və onu yenidən xaricə köçürməli olacaqsınız."
+ "message": "Bu xaricə köçürmə, verilərinizi hesabınızın şifrələmə açarını istifadə edərək şifrələyir. Hesabınızın şifrələmə açarını dəyişdirsəniz, bu faylın şifrəsini aça bilməyəcəksiniz və onu yenidən xaricə köçürməli olacaqsınız."
},
"encExportAccountWarningDesc": {
"message": "Hesab şifrələmə açarları, hər Bitwarden istifadəçi hesabı üçün unikaldır, buna görə də şifrələnmiş bir xaricə köçürməni, fərqli bir hesaba köçürə bilməzsiniz."
},
"exportMasterPassword": {
- "message": "Seyf datanızı xaricə köçürmək üçün ana parolunuzu daxil edin."
+ "message": "Seyf verilərinizi xaricə köçürmək üçün ana parolunuzu daxil edin."
},
"shared": {
"message": "Paylaşılan"
@@ -1399,13 +1399,13 @@
"message": "Fayl qoşmaları üçün 1 GB şifrələnmiş anbar sahəsi"
},
"premiumSignUpEmergency": {
- "message": "Fövqəladə hal müraciəti"
+ "message": "Fövqəladə hal erişimi."
},
"premiumSignUpTwoStepOptions": {
"message": "YubiKey və Duo kimi mülkiyyətçi iki addımlı giriş seçimləri."
},
"ppremiumSignUpReports": {
- "message": "Seyfinizi güvəndə saxlamaq üçün parol gigiyenası, hesab sağlamlığı və data pozuntusu hesabatları."
+ "message": "Seyfinizi güvəndə saxlamaq üçün parol gigiyenası, hesab sağlamlığı və veri pozuntusu hesabatları."
},
"ppremiumSignUpTotp": {
"message": "Seyfinizdəki girişlər üçün TOTP doğrulama kodu (2FA) yaradıcısı."
@@ -1523,7 +1523,7 @@
"message": "İki addımlı giriş üsulunu seçin"
},
"recoveryCodeDesc": {
- "message": "İki faktorlu provayderlərinə müraciəti itirmisiniz? Geri qaytarma kodunuzu istifadə edərək hesabınızdakı bütün iki faktorlu provayderləri sıradan çıxarda bilərsiniz."
+ "message": "İki faktorlu provayderlərinizə erişə bilmirsiniz? Geri qaytarma kodunuzu istifadə edərək hesabınızdakı bütün iki faktorlu provayderləri söndürün."
},
"recoveryCodeTitle": {
"message": "Geri qaytarma kodu"
@@ -1539,7 +1539,7 @@
"message": "Yubico OTP Güvənlik Açarı"
},
"yubiKeyDesc": {
- "message": "Hesabınıza müraciət etmək üçün bir YubiKey istifadə edin. YubiKey 4, 4 Nano, 4C və NEO cihazları ilə işləyir."
+ "message": "Hesabınıza erişmək üçün bir YubiKey istifadə edin. YubiKey 4, 4 Nano, 4C və NEO cihazları ilə işləyir."
},
"duoDescV2": {
"message": "Duo Security tərəfindən yaradılan kodu daxil edin.",
@@ -1553,7 +1553,7 @@
"message": "FIDO2 WebAuthn"
},
"webAuthnDesc": {
- "message": "Hesabınıza müraciət etmək üçün WebAuthn özəllikli istənilən bir güvənlik açarı istifadə edin."
+ "message": "Hesabınıza erişmək üçün istənilən WebAuthn uyumlu güvənlik açarını istifadə edin."
},
"emailTitle": {
"message": "E-poçt"
@@ -2023,7 +2023,7 @@
"message": "Parolun ifşalanıb ifşalanmadığını yoxlayın."
},
"passwordExposed": {
- "message": "Bu parol, məlumat pozuntularında $VALUE$ dəfə üzə çıxıb. Dəyişdirməyi məsləhət görürük.",
+ "message": "Bu parol, veri pozuntularında $VALUE$ dəfə üzə çıxıb. Dəyişdirməyi məsləhət görürük.",
"placeholders": {
"value": {
"content": "$1",
@@ -2032,7 +2032,7 @@
}
},
"passwordSafe": {
- "message": "Bu parol, məlumat pozuntularında qeydə alınmayıb. Rahatlıqla istifadə edə bilərsiniz."
+ "message": "Bu parol, veri pozuntularında qeydə alınmayıb. Rahatlıqla istifadə edə bilərsiniz."
},
"baseDomain": {
"message": "Baza domeni",
@@ -2275,7 +2275,7 @@
"message": "Artıq hesabınız var?"
},
"vaultTimeoutLogOutConfirmation": {
- "message": "Çıxış etdikdə, seyfinizə bütün müraciətiniz dayanacaq və vaxt bitməsindən sonra onlayn kimlik doğrulaması tələb olunacaq. Bu ayarı istifadə etmək istədiyinizə əminsiniz?"
+ "message": "Çıxış etdikdə, seyfinizə erişiminiz tamamilə dayanacaq və vaxt bitdikdən sonra onlayn kimlik doğrulaması tələb olunacaq. Bu ayarı istifadə etmək istədiyinizə əminsiniz?"
},
"vaultTimeoutLogOutConfirmationTitle": {
"message": "Vaxt bitmə əməliyyat təsdiqi"
@@ -2401,7 +2401,7 @@
"message": "Oldu"
},
"errorRefreshingAccessToken": {
- "message": "Müraciət tokeni təzələmə xətası"
+ "message": "Erişim tokeni təzələmə xətası"
},
"errorRefreshingAccessTokenDesc": {
"message": "Təzələmə tokeni və ya API açarlar tapılmadı. Lütfən çıxış edib yenidən giriş etməyə çalışın."
@@ -2726,7 +2726,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"maxAccessCountReached": {
- "message": "Maksimal müraciət sayına çatıldı",
+ "message": "Maksimum erişim sayına çatıldı",
"description": "This text will be displayed after a Send has been accessed the maximum amount of times."
},
"hideTextByDefault": {
@@ -2810,7 +2810,7 @@
"message": "Özəl"
},
"sendPasswordDescV3": {
- "message": "Alıcıların bu \"Send\"ə müraciət etməsi üçün ixtiyari bir parol əlavə edin.",
+ "message": "Alıcıların bu \"Send\"ə erişməsi üçün ixtiyari bir parol əlavə edin.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"createSend": {
@@ -2941,13 +2941,13 @@
"message": "Ana parolu güncəllə"
},
"updateMasterPasswordWarning": {
- "message": "Ana parolunuz təzəlikcə təşkilatınızdakı bir administrator tərəfindən dəyişdirildi. Seyfə müraciət etmək üçün onu indi güncəlləməlisiniz. Davam etsəniz, hazırkı seansdan çıxış edəcəksiniz və təkrar giriş etməli olacaqsınız. Digər cihazlardakı aktiv seanslar bir saata qədər aktiv qalmağa davam edə bilər."
+ "message": "Ana parolunuz təzəlikcə təşkilatınızdakı bir inzibatçı tərəfindən dəyişdirildi. Seyfə erişmək üçün onu indi güncəlləməlisiniz. Davam etsəniz, hazırkı seansdan çıxış edəcəksiniz və təkrar giriş etməli olacaqsınız. Digər cihazlardakı aktiv seanslar bir saata qədər aktiv qalmağa davam edə bilər."
},
"updateWeakMasterPasswordWarning": {
- "message": "Ana parolunuz təşkilatınızdakı siyasətlərdən birinə və ya bir neçəsinə uyğun gəlmir. Seyfə müraciət üçün ana parolunuzu indi güncəlləməlisiniz. Davam etsəniz, hazırkı seansdan çıxış etmiş və təkrar giriş etməli olacaqsınız. Digər cihazlardakı aktiv seanslar bir saata qədər aktiv qalmağa davam edə bilər."
+ "message": "Ana parolunuz təşkilatınızdakı siyasətlərdən birinə və ya bir neçəsinə uyğun gəlmir. Seyfə erişmək üçün ana parolunuzu indi güncəlləməlisiniz. Davam etsəniz, hazırkı seansdan çıxış etmiş və təkrar giriş etməli olacaqsınız. Digər cihazlardakı aktiv seanslar bir saata qədər aktiv qalmağa davam edə bilər."
},
"tdeDisabledMasterPasswordRequired": {
- "message": "Təşkilatınız, güvənli cihaz şifrələməsini sıradan çıxartdı. Seyfinizə müraciət etmək üçün lütfən ana parol təyin edin."
+ "message": "Təşkilatınız, güvənli cihaz şifrələməsini sıradan çıxartdı. Seyfinizə erişmək üçün lütfən ana parol təyin edin."
},
"resetPasswordPolicyAutoEnroll": {
"message": "Avtomatik yazılma"
@@ -3145,7 +3145,7 @@
"message": "Bitwarden, aşağıda sadalanan seyf element(lər)inin şifrəsini aça bilmədi."
},
"contactCSToAvoidDataLossPart1": {
- "message": "Əlavə data itkisini önləmək üçün",
+ "message": "Əlavə veri itkisini önləmək üçün",
"description": "This is part of a larger sentence. The full sentence will read 'Contact customer success to avoid additional data loss.'"
},
"contactCSToAvoidDataLossPart2": {
@@ -3362,7 +3362,7 @@
"description": "Part of a URL."
},
"apiAccessToken": {
- "message": "API müraciət tokeni"
+ "message": "API erişim tokeni"
},
"apiKey": {
"message": "API açar"
@@ -3377,7 +3377,7 @@
"message": "Təşkilat dayandırıldı."
},
"disabledOrganizationFilterError": {
- "message": "Dayandırılmış Təşkilatlardakı elementlərə müraciət edilə bilmir. Kömək üçün Təşkilatınızın sahibi ilə əlaqə saxlayın."
+ "message": "Fəaliyyəti dayandırılmış Təşkilatlardakı elementlərə erişilə bilməz. Kömək üçün Təşkilatınızın sahibi ilə əlaqə saxlayın."
},
"loggingInTo": {
"message": "$DOMAIN$ domeninə giriş edilir",
@@ -3495,16 +3495,16 @@
"message": "İfşa olunmuş ana parol"
},
"exposedMasterPasswordDesc": {
- "message": "Parol, məlumat pozuntusunda tapıldı. Hesabınızı qorumaq üçün unikal bir parol istifadə edin. İfşa olunmuş bir parol istifadə etmək istədiyinizə əminsiniz?"
+ "message": "Parol, veri pozuntusunda tapıldı. Hesabınızı qorumaq üçün unikal bir parol istifadə edin. İfşa olunmuş bir parol istifadə etmək istədiyinizə əminsiniz?"
},
"weakAndExposedMasterPassword": {
"message": "Zəif və ifşa olunmuş ana parol"
},
"weakAndBreachedMasterPasswordDesc": {
- "message": "Zəif parol məlumat pozuntusunda aşkarlandı və tapıldı. Hesabınızı qorumaq üçün güclü və unikal bir parol istifadə edin. Bu parolu istifadə etmək istədiyinizə əminsiniz?"
+ "message": "Zəif parol, veri pozuntusunda aşkarlandı və tapıldı. Hesabınızı qorumaq üçün güclü və unikal bir parol istifadə edin. Bu parolu istifadə etmək istədiyinizə əminsiniz?"
},
"checkForBreaches": {
- "message": "Bu parol üçün bilinən məlumat pozuntularını yoxlayın"
+ "message": "Bu parol üçün bilinən veri pozuntularını yoxlayın"
},
"important": {
"message": "Vacib:"
@@ -3631,7 +3631,7 @@
"message": "Cihazlar"
},
"accessAttemptBy": {
- "message": "$EMAIL$ ilə müraciət cəhdi",
+ "message": "$EMAIL$ ilə erişim cəhdi",
"placeholders": {
"email": {
"content": "$1",
@@ -3640,10 +3640,10 @@
}
},
"confirmAccess": {
- "message": "Müraciəti təsdiqlə"
+ "message": "Erişimi təsdiqlə"
},
"denyAccess": {
- "message": "Müraciətə rədd cavabı ver"
+ "message": "Erişimə rədd cavabı ver"
},
"time": {
"message": "Vaxt"
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Bu tələb artıq yararsızdır."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Hesabınıza müraciət etməyə çalışırsınız?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "$DEVICE$ cihazında $EMAIL$ üçün giriş təsdiqləndi",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Başqa bir cihazdan giriş cəhdinə rədd cavabı verdiniz. Bu həqiqətən siz idinizsə, cihazla yenidən giriş etməyə çalışın."
- },
"loginRequestHasAlreadyExpired": {
"message": "Giriş tələbinin müddəti artıq bitib."
},
@@ -3747,7 +3728,7 @@
"description": "European Union"
},
"accessDenied": {
- "message": "Müraciət rədd edildi. Bu səhifəyə baxmaq üçün icazəniz yoxdur."
+ "message": "Erişim rədd edildi. Bu səhifəyə baxmaq üçün icazəniz yoxdur."
},
"general": {
"message": "Ümumi"
@@ -3792,7 +3773,7 @@
"message": "Təşkilata güvənilmir"
},
"emergencyAccessTrustWarning": {
- "message": "Hesabınızın təhlükəsizliyi üçün yalnız bu istifadəçiyə fövqəladə hal müraciəti icazəsini verdiyinizi və onun barmaq izinin hesabında görünən barmaq izi ilə uyuşduğunu təsdiqləyin"
+ "message": "Hesabınızın təhlükəsizliyi üçün yalnız bu istifadəçiyə fövqəladə hal erişim icazəsini verdiyinizi və onun barmaq izinin hesabında görünən barmaq izi ilə uyuşduğunu təsdiqləyin"
},
"orgTrustWarning": {
"message": "Hesabınızın təhlükəsizliyi üçün yalnız bu təşkilatın üzvüsünüzsə, hesab geri qaytarma fəaldırsa və aşağıda görünən barmaq izi təşkilatın barmaq izi ilə uyuşursa davam edin."
@@ -3808,7 +3789,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendsBodyNoItems": {
- "message": "İstənilən platformada faylları və dataları hər kəslə paylaşın. İfşa olunmağı məhdudlaşdıraraq məlumatlarınız ucdan-uca şifrələnmiş qalacaq.",
+ "message": "İstənilən platformada faylları və veriləri hər kəslə güvənli şəkildə paylaşın. Məlumatlarınız, ifşa olunmamaq üçün ucdan-uca şifrələnmiş qalacaq.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"inputRequired": {
@@ -4039,14 +4020,14 @@
"message": "Yox say"
},
"importData": {
- "message": "Datanı daxilə köçür",
+ "message": "Veriləri daxilə köçür",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
},
"importError": {
"message": "Daxilə köçürmə xətası"
},
"importErrorDesc": {
- "message": "Daxilə köçürməyə çalışdığınız data ilə bağlı bir problem var. Lütfən mənbə faylınızda aşağıda sadalanan xətaları həll edib yenidən sınayın."
+ "message": "Daxilə köçürməyə çalışdığınız verilərlə bağlı bir problem var. Lütfən mənbə faylınızda aşağıda sadalanan xətaları həll edib yenidən sınayın."
},
"resolveTheErrorsBelowAndTryAgain": {
"message": "Aşağıdakı xətaları həll edin və yenidən sınayın."
@@ -4055,7 +4036,7 @@
"message": "Açıqlama"
},
"importSuccess": {
- "message": "Data uğurla daxilə köçürüldü"
+ "message": "Verilər uğurla daxilə köçürüldü"
},
"importSuccessNumberOfItems": {
"message": "Cəmi $AMOUNT$ element daxilə köçürüldü.",
@@ -4106,7 +4087,7 @@
"message": "Cəmi"
},
"importWarning": {
- "message": "Datanı $ORGANIZATION$ təşkilatına köçürürsünüz. Datanızı bu təşkilatın üzvləri ilə paylaşa bilərsiniz. Davam etmək istəyirsiniz?",
+ "message": "Veriləri $ORGANIZATION$ təşkilatına köçürürsünüz. Veriləriniz, bu təşkilatın üzvləri ilə paylaşıla bilər. Davam etmək istəyirsiniz?",
"placeholders": {
"organization": {
"content": "$1",
@@ -4127,13 +4108,13 @@
"message": "Duo-nu başlat"
},
"importFormatError": {
- "message": "Data doğru format edilməyib. Lütfən daxilə köçürmə faylınızı yoxlayıb yenidən sınayın."
+ "message": "Verilər düzgün format olunmayıb. Lütfən daxilə köçürmə faylınızı yoxlayıb yenidən sınayın."
},
"importNothingError": {
"message": "Heç nə daxilə köçürülmədi."
},
"importEncKeyError": {
- "message": "Xaricə köçürülən faylın şifrəsi açılarkən xəta baş verdi. Şifrələmə açarınız, datanı xaricə köçürmək üçün istifadə edilən şifrələmə açarı ilə uyuşmur."
+ "message": "Xaricə köçürülən faylın şifrəsi açılarkən xəta baş verdi. Şifrələmə açarınız, veriləri xaricə köçürmək üçün istifadə edilən şifrələmə açarı ilə uyuşmur."
},
"invalidFilePassword": {
"message": "Yararsız fayl parolu, lütfən xaricə köçürmə faylını yaradarkən daxil etdiyiniz parolu istifadə edin."
@@ -4192,19 +4173,19 @@
"message": "Seyfi daxilə köçürməyi təsdiqlə"
},
"confirmVaultImportDesc": {
- "message": "Bu fayl parolla qorunur. Məlumatları daxilə köçürmək üçün fayl parolunu daxil edin."
+ "message": "Bu fayl parolla qorunur. Veriləri daxilə köçürmək üçün fayl parolunu daxil edin."
},
"confirmFilePassword": {
"message": "Fayl parolunu təsdiqlə"
},
"exportSuccess": {
- "message": "Seyf datası xaricə köçürüldü"
+ "message": "Seyf veriləri xaricə köçürüldü"
},
"typePasskey": {
"message": "Keçid açarı"
},
"accessing": {
- "message": "Müraciət edilir"
+ "message": "Erişilir"
},
"loggedInExclamation": {
"message": "Giriş edildi!"
@@ -4270,7 +4251,7 @@
"message": "Çox faktorlu kimlik doğrulama ləğv edildi"
},
"noLastPassDataFound": {
- "message": "LastPass datası tapılmadı"
+ "message": "LastPass veriləri tapılmadı"
},
"incorrectUsernameOrPassword": {
"message": "Yanlış istifadəçi adı və ya parol"
@@ -4376,7 +4357,7 @@
"message": "sahiblik edən"
},
"useDeviceOrHardwareKey": {
- "message": "Cihazınızı və ya avadanlıq açarınızı istifadə edin"
+ "message": "Cihazınızı və ya donanım açarınızı istifadə edin"
},
"justOnce": {
"message": "Yalnız bir dəfə"
@@ -4700,7 +4681,7 @@
"description": "Used as a label to indicate that the user is the owner of an item."
},
"contactYourOrgAdmin": {
- "message": "Deaktiv edilmiş təşkilatlardakı elementlərə müraciət edilə bilməz. Kömək üçün təşkilatınızın sahibi ilə əlaqə saxlayın."
+ "message": "Deaktiv edilmiş təşkilatlardakı elementlərə erişilə bilməz. Kömək üçün təşkilatınızın sahibi ilə əlaqə saxlayın."
},
"additionalInformation": {
"message": "Əlavə məlumat"
@@ -4757,13 +4738,13 @@
"message": "Mobil tətbiqi əldə et"
},
"getTheMobileAppDesc": {
- "message": "Bitwarden mobil tətbiqi ilə parollarınıza hər yerdən müraciət edin."
+ "message": "Bitwarden mobil tətbiqi ilə parollarınıza hər yerdən erişin."
},
"getTheDesktopApp": {
"message": "Masaüstü tətbiqi əldə et"
},
"getTheDesktopAppDesc": {
- "message": "Seyfinizə brauzer olmadan müraciət edin, sonra həm masaüstü tətbiqində, həm də brauzer uzantısında kilid açma prosesini sürətləndirmək üçün biometrik ilə kilid açma prosesini qurun."
+ "message": "Seyfinizə brauzer olmadan erişin, sonra həm masaüstü tətbiqində, həm də brauzer uzantısında kilid açma prosesini sürətləndirmək üçün biometrik ilə kilid açma prosesini qurun."
},
"downloadFromBitwardenNow": {
"message": "İndi bitwarden.com saytından endir"
@@ -4916,7 +4897,7 @@
"message": "Yüklənir"
},
"data": {
- "message": "Data"
+ "message": "Veri"
},
"passkeys": {
"message": "Keçid açarı",
@@ -4934,10 +4915,10 @@
"message": "Təyin et"
},
"bulkCollectionAssignmentDialogDescriptionSingular": {
- "message": "Yalnız bu kolleksiyalara müraciəti olan təşkilat üzvləri bu elementi görə biləcək."
+ "message": "Yalnız bu kolleksiyalara erişimi olan təşkilat üzvləri bu elementi görə biləcək."
},
"bulkCollectionAssignmentDialogDescriptionPlural": {
- "message": "Yalnız bu kolleksiyalara müraciəti olan təşkilat üzvləri bu elementləri görə biləcək."
+ "message": "Yalnız bu kolleksiyalara erişimi olan təşkilat üzvləri bu elementləri görə biləcək."
},
"bulkCollectionAssignmentWarning": {
"message": "$TOTAL_COUNT$ element seçmisiniz. Düzəliş icazəniz olmadığı üçün $READONLY_COUNT$ elementi güncəlləyə bilməzsiniz.",
@@ -4964,10 +4945,10 @@
"message": "Xana etiketi"
},
"textHelpText": {
- "message": "Təhlükəsizlik sualları kimi datalar üçün mətn xanalarını istifadə edin"
+ "message": "Təhlükəsizlik sualları kimi verilər üçün mətn xanalarını istifadə edin"
},
"hiddenHelpText": {
- "message": "Parol kimi həssas datalar üçün gizli xanaları istifadə edin"
+ "message": "Parol kimi həssas verilər üçün gizli xanaları istifadə edin"
},
"checkBoxHelpText": {
"message": "\"E-poçtu xatırla\" kimi formun təsdiq qutusunu avto-doldurmaq istəyirsinizsə təsdiq qutularını istifadə edin"
@@ -5239,7 +5220,7 @@
"message": "Seyfinizin kilidini saniyələr ərzində açın"
},
"unlockVaultDesc": {
- "message": "Seyfinizə daha cəld müraciət etmək üçün kilid açma və bitmə vaxtı ayarlarını özəlləşdirə bilərsiniz."
+ "message": "Seyfinizə daha cəld erişmək üçün kilid açma və bitmə vaxtı ayarlarını özəlləşdirə bilərsiniz."
},
"unlockPinSet": {
"message": "PIN ilə kilid açma təyini"
@@ -5491,7 +5472,7 @@
"message": "Bütün hesablarınız üçün güclü, unikal parollar yaratmaq və saxlamaq üçün yaradıcını istifadə edin."
},
"secureDevices": {
- "message": "Datanız, ehtiyacınız olan vaxt yanınızdadır"
+ "message": "Veriləriniz, ehtiyacınız olan vaxt yanınızdadır"
},
"secureDevicesBody": {
"message": "Bitwarden mobil, brauzer və masaüstü tətbiqləri ilə limitsiz cihaz arasında limitsiz parol saxlayın."
@@ -5515,7 +5496,7 @@
"message": "Hazırkı səhifə üçün elementləri avto-doldur"
},
"hasItemsVaultNudgeBodyTwo": {
- "message": "Asan müraciət üçün elementləri sevimlilərə əlavə et"
+ "message": "Asan erişmək üçün elementləri sevimlilərə əlavə et"
},
"hasItemsVaultNudgeBodyThree": {
"message": "Seyfinizdə başqa bir şey axtarın"
@@ -5551,13 +5532,13 @@
"message": "Kimliklərinizlə, uzun qeydiyyat və ya əlaqə xanalarını daha tez avtomatik doldurun."
},
"newNoteNudgeTitle": {
- "message": "Həssas datalarınızı güvənli şəkildə saxlayın"
+ "message": "Həssas verilərinizi güvənli şəkildə saxlayın"
},
"newNoteNudgeBody": {
- "message": "Notlarla, bankçılıq və ya sığorta təfsilatları kimi həssas dataları təhlükəsiz saxlayın."
+ "message": "Notlarla, bankçılıq və ya sığorta təfsilatları kimi həssas veriləri təhlükəsiz saxlayın."
},
"newSshNudgeTitle": {
- "message": "Gəlişdirici dostu SSH müraciəti"
+ "message": "Gəlişdirici dostu SSH erişimi"
},
"newSshNudgeBodyOne": {
"message": "Açarlarınızı saxlayın və sürətli, şifrələnmiş kimlik doğrulama üçün SSH agentinə bağlayın.",
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly brauzerinizdə dəstəklənmir və ya fəal deyil. WebAssembly, Bitwarden tətbiqini istifadə etmək üçün tələb olunur.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Daha çox göstər"
+ },
+ "showLess": {
+ "message": "Daha az göstər"
}
}
diff --git a/apps/browser/src/_locales/be/messages.json b/apps/browser/src/_locales/be/messages.json
index d7a1db3adc8..d6090123878 100644
--- a/apps/browser/src/_locales/be/messages.json
+++ b/apps/browser/src/_locales/be/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/bg/messages.json b/apps/browser/src/_locales/bg/messages.json
index 79e13cdb677..3b411cd088c 100644
--- a/apps/browser/src/_locales/bg/messages.json
+++ b/apps/browser/src/_locales/bg/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Тази заявка вече не е активна."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Опитвате ли се да получите достъп до акаунта си?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Вписването за $EMAIL$ на $DEVICE$ е одобрено",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Вие отказахте опит за вписване от друго устройство. Ако това наистина сте били Вие, опитайте да се впишете от устройството отново."
- },
"loginRequestHasAlreadyExpired": {
"message": "Заявката за вписване вече е изтекла."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly не е включено или не се поддържа от Вашия браузър. За ползването на приложението на Битуорден е необходимо WebAssembly да работи.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Показване на повече"
+ },
+ "showLess": {
+ "message": "Показване на по-малко"
}
}
diff --git a/apps/browser/src/_locales/bn/messages.json b/apps/browser/src/_locales/bn/messages.json
index a3c029fb963..55baca0dad2 100644
--- a/apps/browser/src/_locales/bn/messages.json
+++ b/apps/browser/src/_locales/bn/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/bs/messages.json b/apps/browser/src/_locales/bs/messages.json
index 8a94ba3e9e9..7ad375dabf0 100644
--- a/apps/browser/src/_locales/bs/messages.json
+++ b/apps/browser/src/_locales/bs/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/ca/messages.json b/apps/browser/src/_locales/ca/messages.json
index 42fb9c24003..3edfb98eba2 100644
--- a/apps/browser/src/_locales/ca/messages.json
+++ b/apps/browser/src/_locales/ca/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/cs/messages.json b/apps/browser/src/_locales/cs/messages.json
index 3f8dd2e2b48..916f765ea21 100644
--- a/apps/browser/src/_locales/cs/messages.json
+++ b/apps/browser/src/_locales/cs/messages.json
@@ -338,7 +338,7 @@
"message": "Pokračovat na bitwarden.com?"
},
"bitwardenForBusiness": {
- "message": "Bitwarden pro byznys"
+ "message": "Bitwarden pro podnikání"
},
"bitwardenAuthenticator": {
"message": "Autentifikátor Bitwarden"
@@ -398,7 +398,7 @@
"message": "Název složky"
},
"folderHintText": {
- "message": "Vnořit složku přidáním názvu nadřazené složky následovaného znakem \"/\". Příklad: Sociální/Fóra"
+ "message": "Složku vnoříte přidáním názvu nadřazené složky následovaného znakem \"/\". Příklad: Sociální/Fóra"
},
"noFoldersAdded": {
"message": "Nebyly přidány žádné složky"
@@ -407,7 +407,7 @@
"message": "Vytvořte složky pro organizaci Vašich položek trezoru"
},
"deleteFolderPermanently": {
- "message": "Opravdu chcete trvale smazat tuto složku?"
+ "message": "Opravdu chcete tuto složku trvale smazat?"
},
"deleteFolder": {
"message": "Smazat složku"
@@ -531,10 +531,10 @@
"message": "Zahrnout číslice"
},
"minNumbers": {
- "message": "Minimální počet číslic"
+ "message": "Minimálně číslic"
},
"minSpecial": {
- "message": "Minimální počet speciálních znaků"
+ "message": "Minimálně speciálních znaků"
},
"avoidAmbiguous": {
"message": "Nepoužívat zaměnitelné znaky",
@@ -1016,7 +1016,7 @@
"description": "This is the folder for uncategorized items"
},
"enableAddLoginNotification": {
- "message": "Ptát se na přidání přihlášení"
+ "message": "Zeptat se na přidání přihlášení"
},
"vaultSaveOptionsTitle": {
"message": "Uložit do voleb trezoru"
@@ -1049,7 +1049,7 @@
"message": "Klepněte na položky pro automatické vyplnění v zobrazení trezoru"
},
"clickToAutofill": {
- "message": "Klepněte na položky v návrhu automatického vyplňování pro vyplnění"
+ "message": "Klepnout na položky v návrhu automatického vyplňování pro vyplnění"
},
"clearClipboard": {
"message": "Vymazat schránku",
@@ -1305,7 +1305,7 @@
"message": "Sdílené"
},
"bitwardenForBusinessPageDesc": {
- "message": "Bitwarden pro bvyznys Vám umožňuje sdílet položky v trezoru s ostatními prostřednictvím organizace. Více informací naleznete na bitwarden.com."
+ "message": "Bitwarden pro podnikání Vám umožňuje sdílet položky v trezoru s ostatními prostřednictvím organizace. Více informací naleznete na bitwarden.com."
},
"moveToOrganization": {
"message": "Přesunout do organizace"
@@ -1660,7 +1660,7 @@
"description": "Overlay appearance select option for showing the field on click of the overlay icon"
},
"enableAutoFillOnPageLoadSectionTitle": {
- "message": "Automaticky vyplnit údaje při načtení stránky"
+ "message": "Automatické vyplnění údajů při načtení stránky"
},
"enableAutoFillOnPageLoad": {
"message": "Automaticky vyplnit údaje při načtení stránky"
@@ -1678,7 +1678,7 @@
"message": "Více informací o automatickém vyplňování"
},
"defaultAutoFillOnPageLoad": {
- "message": "Výchozí nastavení automatického vyplňování pro položky přihlášení"
+ "message": "Výchozí nastavení autom. vyplňování"
},
"defaultAutoFillOnPageLoadDesc": {
"message": "Můžete vypnout automatické vyplňování při načtení stránky pro jednotlivé přihlašovací položky v zobrazení pro úpravu položky."
@@ -1690,10 +1690,10 @@
"message": "Použít výchozí nastavení"
},
"autoFillOnPageLoadYes": {
- "message": "Automatické vyplnění při načtení stránky"
+ "message": "Automatické vyplnění při načtení"
},
"autoFillOnPageLoadNo": {
- "message": "Nevyplňovat automaticky při načtení stránky"
+ "message": "Nevyplňovat automaticky při načtení"
},
"commandOpenPopup": {
"message": "Otevřít vyskakovací okno trezoru"
@@ -1851,7 +1851,7 @@
"message": "Slečna"
},
"dr": {
- "message": "MUDr."
+ "message": "Dr."
},
"mx": {
"message": "Neutrální"
@@ -1875,7 +1875,7 @@
"message": "Společnost"
},
"ssn": {
- "message": "Číslo sociálního pojištění"
+ "message": "Rodné číslo"
},
"passportNumber": {
"message": "Číslo cestovního pasu"
@@ -2099,7 +2099,7 @@
"message": "Nic k zobrazení"
},
"nothingGeneratedRecently": {
- "message": "Nedávno jste nic nevygenerovali"
+ "message": "Ještě jste nic nevygenerovali"
},
"remove": {
"message": "Odebrat"
@@ -2233,7 +2233,7 @@
"description": "This will be used as part of a larger sentence, broken up to include the generator icon. The full sentence will read 'Use the generator [GENERATOR_ICON] to create a strong unique password'"
},
"useGeneratorHelpTextPartTwo": {
- "message": "pro vytvoření silného jedinečného hesla",
+ "message": "pro vytvoření silného jedinečného hesla.",
"description": "This will be used as part of a larger sentence, broken up to include the generator icon. The full sentence will read 'Use the generator [GENERATOR_ICON] to create a strong unique password'"
},
"vaultCustomization": {
@@ -2685,7 +2685,7 @@
"message": "Změny v zablokovaných doménách byly uloženy"
},
"excludedDomainsSavedSuccess": {
- "message": "Vyloučené změny domény byly uloženy"
+ "message": "Změny vyloučené domény byly uloženy"
},
"limitSendViews": {
"message": "Omezit zobrazení"
@@ -2911,7 +2911,7 @@
"message": "Došlo k chybě při ukládání datumu smzání a vypršení platnosti."
},
"hideYourEmail": {
- "message": "Skryje Vaši e-mailovou adresu před zobrazením."
+ "message": "Skrýt Vaši e-mailovou adresu"
},
"passwordPrompt": {
"message": "Zeptat se znovu na hlavní heslo"
@@ -3228,7 +3228,7 @@
"description": "Labels the domain name email forwarder service option"
},
"forwarderDomainNameHint": {
- "message": "Vyberte doménu, která je podporována vybranou službou",
+ "message": "Vyberte doménu, která je podporována vybranou službou.",
"description": "Guidance provided for email forwarding services that support multiple email domains."
},
"forwarderError": {
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Tento požadavek již není platný."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Pokoušíte se získat přístup k Vašemu účtu?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Přihlášení bylo potvrzeno z $EMAIL$ pro $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Pokus o přihlášení byl zamítnut z jiného zařízení. Pokud jste to opravdu Vy, zkuste se znovu přihlásit do zařízení."
- },
"loginRequestHasAlreadyExpired": {
"message": "Požadavek na přihlášení již vypršel."
},
@@ -4151,7 +4132,7 @@
"message": "Zvolte sbírku"
},
"importTargetHint": {
- "message": "Pokud chcete obsah importovaného souboru přesunout do složky $DESTINATION$, vyberte tuto volbu",
+ "message": "Pokud chcete obsah importovaného souboru přesunout do: \"$DESTINATION$\", vyberte tuto volbu",
"description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.",
"placeholders": {
"destination": {
@@ -4426,7 +4407,7 @@
"description": "Title for dialog which asks if the user wants to proceed to a relevant Help Center page"
},
"confirmContinueToHelpCenterPasswordManagementContent": {
- "message": "Změňte nastavení automatického vyplňování a správy hesel.",
+ "message": "Změna nastavení automatického vyplňování a nastavení správy hesel.",
"description": "Body content for dialog which asks if the user wants to proceed to the Help Center's page about browser password management settings"
},
"confirmContinueToHelpCenterKeyboardShortcutsContent": {
@@ -4434,7 +4415,7 @@
"description": "Body content for dialog which asks if the user wants to proceed to the Help Center's page about browser keyboard shortcut settings"
},
"confirmContinueToBrowserPasswordManagementSettingsContent": {
- "message": "Změňte nastavení automatického vyplňování a správy hesel.",
+ "message": "Změna nastavení automatického vyplňování a nastavení správy hesel.",
"description": "Body content for dialog which asks if the user wants to proceed to the browser's password management settings page"
},
"confirmContinueToBrowserKeyboardShortcutSettingsContent": {
@@ -4964,13 +4945,13 @@
"message": "Popis pole"
},
"textHelpText": {
- "message": "Použijte textová pole pro data jako bezpečnostní otázky"
+ "message": "Použijte textová pole pro data (jako např. bezpečnostní otázky)."
},
"hiddenHelpText": {
- "message": "Použijte skrytá pole pro citlivá data, jako je heslo"
+ "message": "Použijte skrytá pole pro citlivá data, jako je heslo."
},
"checkBoxHelpText": {
- "message": "Použijte zaškrtávací políčka, pokud chcete automaticky vyplnit zaškrtávací políčko formuláře (např. pro zapamatování e-mailu)"
+ "message": "Použijte zaškrtávací políčka, pokud chcete automaticky zvolit zaškrtávací políčko formuláře (např. pro zapamatování e-mailu)."
},
"linkedHelpText": {
"message": "Použijte propojené pole, pokud máte problémy s automatickým vyplňováním na konkrétní webové stránce."
@@ -5140,7 +5121,7 @@
"message": "Zobrazit akce rychlé kopie v trezoru"
},
"systemDefault": {
- "message": "Systémový výchozí"
+ "message": "Výchozí systémový"
},
"enterprisePolicyRequirementsApplied": {
"message": "Na toto nastavení byly uplatněny požadavky podnikových zásad"
@@ -5197,7 +5178,7 @@
"message": "Položky, které smažete, se zde zobrazí a budou trvale smazány po 30 dnech."
},
"trashWarning": {
- "message": "Položky, které byly v koši déle než 30 dní, budou automaticky smazány."
+ "message": "Položky, které byly v koši déle než 30 dnů, budou automaticky smazány."
},
"restore": {
"message": "Obnovit"
@@ -5413,10 +5394,10 @@
"message": "Šířka rozšíření"
},
"wide": {
- "message": "Šířka"
+ "message": "Široké"
},
"extraWide": {
- "message": "Extra široký"
+ "message": "Extra široké"
},
"sshKeyWrongPassword": {
"message": "Zadané heslo není správné."
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly není ve Vašem prohlížeči podporováno nebo není povoleno. WebAssembly je vyžadováno pro použití aplikace Bitwarden.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Zobrazit více"
+ },
+ "showLess": {
+ "message": "Zobrazit méně"
}
}
diff --git a/apps/browser/src/_locales/cy/messages.json b/apps/browser/src/_locales/cy/messages.json
index 307373da9aa..8307b994fe0 100644
--- a/apps/browser/src/_locales/cy/messages.json
+++ b/apps/browser/src/_locales/cy/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/da/messages.json b/apps/browser/src/_locales/da/messages.json
index 4b6da81a994..0ff87e6e14f 100644
--- a/apps/browser/src/_locales/da/messages.json
+++ b/apps/browser/src/_locales/da/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/de/messages.json b/apps/browser/src/_locales/de/messages.json
index 9ef82a6d5ae..ffaf490fbf8 100644
--- a/apps/browser/src/_locales/de/messages.json
+++ b/apps/browser/src/_locales/de/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Diese Anfrage ist nicht mehr gültig."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Versuchst du auf dein Konto zuzugreifen?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Anmeldung von $EMAIL$ auf $DEVICE$ bestätigt",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Du hast einen Anmeldeversuch von einem anderen Gerät abgelehnt. Wenn du das wirklich warst, versuche dich erneut mit dem Gerät anzumelden."
- },
"loginRequestHasAlreadyExpired": {
"message": "Anmeldeanfrage ist bereits abgelaufen."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly wird von deinem Browser nicht unterstützt oder ist nicht aktiviert. WebAssembly wird benötigt, um die Bitwarden-App nutzen zu können.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Mehr anzeigen"
+ },
+ "showLess": {
+ "message": "Weniger anzeigen"
}
}
diff --git a/apps/browser/src/_locales/el/messages.json b/apps/browser/src/_locales/el/messages.json
index fa4f3ac0f3c..3d46b63ec45 100644
--- a/apps/browser/src/_locales/el/messages.json
+++ b/apps/browser/src/_locales/el/messages.json
@@ -84,7 +84,7 @@
"message": "Υπόδειξη κύριου κωδικού πρόσβασης (προαιρετικό)"
},
"passwordStrengthScore": {
- "message": "Password strength score $SCORE$",
+ "message": "Βαθμολογία ισχύς κωδικού πρόσβασης $SCORE$",
"placeholders": {
"score": {
"content": "$1",
@@ -468,13 +468,13 @@
"message": "Ο κωδικός δημιουργήθηκε"
},
"passphraseGenerated": {
- "message": "Passphrase generated"
+ "message": "Το συνθηματικό δημιουργήθηκε"
},
"usernameGenerated": {
- "message": "Username generated"
+ "message": "Το όνομα χρήστη δημιουργήθηκε"
},
"emailGenerated": {
- "message": "Email generated"
+ "message": "Το email δημιουργήθηκε"
},
"regeneratePassword": {
"message": "Επαναδημιουργία κωδικού πρόσβασης"
@@ -548,7 +548,7 @@
"message": "Αναζήτηση στο vault"
},
"resetSearch": {
- "message": "Reset search"
+ "message": "Επαναφορά αναζήτησης"
},
"edit": {
"message": "Επεξεργασία"
@@ -659,10 +659,10 @@
"message": "Το πρόγραμμα περιήγησης ιστού δεν υποστηρίζει εύκολη αντιγραφή πρόχειρου. Αντιγράψτε το με το χέρι αντ'αυτού."
},
"verifyYourIdentity": {
- "message": "Verify your identity"
+ "message": "Επαλήθευση ταυτότητας"
},
"weDontRecognizeThisDevice": {
- "message": "We don't recognize this device. Enter the code sent to your email to verify your identity."
+ "message": "Δεν αναγνωρίζουμε αυτή τη συσκευή. Εισάγετε τον κωδικό που στάλθηκε στο email σας για να επαληθεύσετε την ταυτότητά σας."
},
"continueLoggingIn": {
"message": "Continue logging in"
@@ -875,22 +875,22 @@
"message": "Σύνδεση στο Bitwarden"
},
"enterTheCodeSentToYourEmail": {
- "message": "Enter the code sent to your email"
+ "message": "Εισάγετε τον κωδικό που στάλθηκε στο email σας"
},
"enterTheCodeFromYourAuthenticatorApp": {
- "message": "Enter the code from your authenticator app"
+ "message": "Εισαγάγετε τον κωδικό μιας χρήσης από την εφαρμογή αυθεντικοποίησης"
},
"pressYourYubiKeyToAuthenticate": {
- "message": "Press your YubiKey to authenticate"
+ "message": "Πιέστε το YubiKey σας για ταυτοποίηση"
},
"duoTwoFactorRequiredPageSubtitle": {
- "message": "Duo two-step login is required for your account. Follow the steps below to finish logging in."
+ "message": "Απαιτείται σύνδεση Duo δύο βημάτων για το λογαριασμό σας. Ακολουθήστε τα παρακάτω βήματα για να ολοκληρώσετε τη σύνδεση."
},
"followTheStepsBelowToFinishLoggingIn": {
- "message": "Follow the steps below to finish logging in."
+ "message": "Ακολουθήστε τα παρακάτω βήματα για να ολοκληρώσετε τη σύνδεση."
},
"followTheStepsBelowToFinishLoggingInWithSecurityKey": {
- "message": "Follow the steps below to finish logging in with your security key."
+ "message": "Ακολουθήστε τα παρακάτω βήματα για να ολοκληρώσετε τη σύνδεση με το κλειδί ασφαλείας σας."
},
"restartRegistration": {
"message": "Επανεκκίνηση εγγραφής"
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/en/messages.json b/apps/browser/src/_locales/en/messages.json
index a58bcba21a0..fa249483b7d 100644
--- a/apps/browser/src/_locales/en/messages.json
+++ b/apps/browser/src/_locales/en/messages.json
@@ -4131,15 +4131,11 @@
"selectImportCollection": {
"message": "Select a collection"
},
- "importTargetHint": {
- "message": "Select this option if you want the imported file contents moved to a $DESTINATION$",
- "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.",
- "placeholders": {
- "destination": {
- "content": "$1",
- "example": "folder or collection"
- }
- }
+ "importTargetHintCollection": {
+ "message": "Select this option if you want the imported file contents moved to a collection"
+ },
+ "importTargetHintFolder": {
+ "message": "Select this option if you want the imported file contents moved to a folder"
},
"importUnassignedItemsError": {
"message": "File contains unassigned items."
@@ -5591,5 +5587,9 @@
},
"showLess": {
"message": "Show less"
+ },
+ "moreBreadcrumbs": {
+ "message": "More breadcrumbs",
+ "description": "This is used in the context of a breadcrumb navigation, indicating that there are more items in the breadcrumb trail that are not currently displayed."
}
}
diff --git a/apps/browser/src/_locales/en_GB/messages.json b/apps/browser/src/_locales/en_GB/messages.json
index a70fbd85123..8acf75e2ee5 100644
--- a/apps/browser/src/_locales/en_GB/messages.json
+++ b/apps/browser/src/_locales/en_GB/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/en_IN/messages.json b/apps/browser/src/_locales/en_IN/messages.json
index 39de06249fc..281caeac0d5 100644
--- a/apps/browser/src/_locales/en_IN/messages.json
+++ b/apps/browser/src/_locales/en_IN/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/es/messages.json b/apps/browser/src/_locales/es/messages.json
index 3b681054abc..0e1185148df 100644
--- a/apps/browser/src/_locales/es/messages.json
+++ b/apps/browser/src/_locales/es/messages.json
@@ -197,7 +197,7 @@
"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": {
- "message": "Autorrellenar"
+ "message": "Autocompletar"
},
"autoFillLogin": {
"message": "Autocompletar inicio de sesión"
@@ -548,7 +548,7 @@
"message": "Buscar en caja fuerte"
},
"resetSearch": {
- "message": "Reset search"
+ "message": "Restablecer búsqueda"
},
"edit": {
"message": "Editar"
@@ -1456,7 +1456,7 @@
"message": "Copiar TOTP automáticamente"
},
"disableAutoTotpCopyDesc": {
- "message": "Si tu entrada tiene una clave de autenticación adjunta, el código de verificación TOTP es copiado automáticamente al portapapeles cuando autorellenas una entrada."
+ "message": "Si tu entrada tiene una clave de autenticación, copiar el código de verificación TOTP a tu portapapeles cuando autocompletes el inicio de sesión."
},
"enableAutoBiometricsPrompt": {
"message": "Pedir datos biométricos al ejecutar"
@@ -1663,25 +1663,25 @@
"message": "Autocompletar al cargar la página"
},
"enableAutoFillOnPageLoad": {
- "message": "Habilitar autorrellenar al cargar la página"
+ "message": "Autocompletar al cargar la página"
},
"enableAutoFillOnPageLoadDesc": {
- "message": "Si se detecta un formulario, realizar automáticamente un autorellenado cuando la web cargue."
+ "message": "Si se detecta un formulario de inicio de sesión, autocompletar cuando cargue la página web."
},
"experimentalFeature": {
- "message": "Los sitios web vulnerados o no confiables pueden explotar el autorelleno al cargar la página."
+ "message": "Los sitios web vulnerados o no confiables pueden explotar el autocompletado al cargar la página."
},
"learnMoreAboutAutofillOnPageLoadLinkText": {
"message": "Más información sobre riesgos"
},
"learnMoreAboutAutofill": {
- "message": "Más información sobre el relleno automático"
+ "message": "Más información sobre el autocompletado"
},
"defaultAutoFillOnPageLoad": {
"message": "Configuración de autorrelleno por defecto para elementos de inicio de sesión"
},
"defaultAutoFillOnPageLoadDesc": {
- "message": "Después de activar el autorelleno en Carga de página, puede activar o desactivar la función para entradas individuales. Esta es la configuración predeterminada para elementos de inicio de sesión que no están configurados por separado."
+ "message": "Puedes desactivar el autocompletado al cargar la página para elementos individuales de inicio de sesión desde la vista de Edición del elemento."
},
"itemAutoFillOnPageLoad": {
"message": "Auto-relleno en carga de página (si está habilitado en opciones)"
@@ -2281,16 +2281,16 @@
"message": "Confirmación de la acción del tiempo de espera"
},
"autoFillAndSave": {
- "message": "Autorellenar y guardar"
+ "message": "Autocompletar y guardar"
},
"fillAndSave": {
"message": "Rellenar y guardar"
},
"autoFillSuccessAndSavedUri": {
- "message": "Objeto autorellenado y URI guardada"
+ "message": "Elemento autocompletado y URI guardada"
},
"autoFillSuccess": {
- "message": "Objeto autorellenado"
+ "message": "Elemento autocompletado "
},
"insecurePageWarning": {
"message": "Atención: Esta es una página HTTP no segura, y cualquier información que envíes puede ser vista y cambiada por otros. Este inicio de sesión fue guardado originalmente en una página segura (HTTPS)."
@@ -2528,7 +2528,7 @@
"message": "El autorrelleno y otras funcionalidades relacionadas no se ofrecerán para estos sitios web. Debe actualizar la página para que los cambios surtan efecto."
},
"autofillBlockedNoticeV2": {
- "message": "Autorelleno está desactivado para este sitio web."
+ "message": "Autocompletado está bloqueado para este sitio web."
},
"autofillBlockedNoticeGuidance": {
"message": "Cambia esto en los ajustes"
@@ -2709,7 +2709,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendDetails": {
- "message": "Send details",
+ "message": "Detalles del Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendTypeText": {
@@ -2932,7 +2932,7 @@
"message": "Debes verificar tu correo electrónico para usar esta función. Puedes verificar tu correo electrónico en la caja fuerte web."
},
"masterPasswordSuccessfullySet": {
- "message": "Master password successfully set"
+ "message": "Contraseña maestra establecida correctamente"
},
"updatedMasterPassword": {
"message": "Contraseña maestra actualizada"
@@ -3106,7 +3106,7 @@
"message": "Exportando caja fuerte personal"
},
"exportingIndividualVaultDescription": {
- "message": "Solo se exportarán los elementos individuales de la caja fuerte asociados con $EMAIL$. Los elementos de la bóveda de la organización no se incluirán. Solo se exportará la información de los elementos individuales y no incluirá adjuntos asociados.",
+ "message": "Solo se exportarán los elementos individuales de la caja fuerte asociados a $EMAIL$. Los elementos de la caja fuerte de la organización no se incluirán. Solo se exportará la información de los elementos de la caja fuerte y no se incluirá adjuntos asociados.",
"placeholders": {
"email": {
"content": "$1",
@@ -3483,13 +3483,13 @@
"message": "You denied a login attempt from another device. If this was you, try to log in with the device again."
},
"device": {
- "message": "Device"
+ "message": "Dispositivo"
},
"loginStatus": {
"message": "Login status"
},
"masterPasswordChanged": {
- "message": "Master password saved"
+ "message": "Contraseña maestra guardada"
},
"exposedMasterPassword": {
"message": "Contraseña maestra comprometida"
@@ -3525,7 +3525,7 @@
"message": "Las políticas de su organización han activado autocompletar al cargar la página."
},
"howToAutofill": {
- "message": "Cómo autorellenar"
+ "message": "Cómo autocompletar"
},
"autofillSelectInfoWithCommand": {
"message": "Selecciona un elemento de esta pantalla, usa el acceso directo $COMMAND$ o explora otras opciones en ajustes.",
@@ -3585,28 +3585,28 @@
"message": "Remember this device to make future logins seamless"
},
"manageDevices": {
- "message": "Manage devices"
+ "message": "Gestionar dispositivos"
},
"currentSession": {
- "message": "Current session"
+ "message": "Sesión actual"
},
"mobile": {
- "message": "Mobile",
+ "message": "Móvil",
"description": "Mobile app"
},
"extension": {
- "message": "Extension",
+ "message": "Extensión",
"description": "Browser extension/addon"
},
"desktop": {
- "message": "Desktop",
+ "message": "Escritorio",
"description": "Desktop app"
},
"webVault": {
- "message": "Web vault"
+ "message": "Caja fuerte Web"
},
"webApp": {
- "message": "Web app"
+ "message": "Aplicación Web"
},
"cli": {
"message": "CLI"
@@ -3616,22 +3616,22 @@
"description": "Software Development Kit"
},
"requestPending": {
- "message": "Request pending"
+ "message": "Solicitud pendiente"
},
"firstLogin": {
- "message": "First login"
+ "message": "Primer inicio de sesión"
},
"trusted": {
- "message": "Trusted"
+ "message": "De confianza"
},
"needsApproval": {
- "message": "Needs approval"
+ "message": "Necesita aprobación"
},
"devices": {
- "message": "Devices"
+ "message": "Dispositivos"
},
"accessAttemptBy": {
- "message": "Access attempt by $EMAIL$",
+ "message": "Intento de acceso de $EMAIL$",
"placeholders": {
"email": {
"content": "$1",
@@ -3640,16 +3640,16 @@
}
},
"confirmAccess": {
- "message": "Confirm access"
+ "message": "Confirmar acceso"
},
"denyAccess": {
- "message": "Deny access"
+ "message": "Denegar acceso"
},
"time": {
"message": "Time"
},
"deviceType": {
- "message": "Device Type"
+ "message": "Tipo de Dispositivo"
},
"loginRequest": {
"message": "Login request"
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5583,14 +5564,20 @@
"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": "Crea fácilmente contraseñas seguras y únicas haciendo clic en el botón Generar contraseña para ayudarte a mantener tus inicios de sesión seguros.",
"description": "Aria label for the body content of the generator nudge"
},
"noPermissionsViewPage": {
"message": "No tienes permisos para ver esta página. Intenta iniciar sesión con otra cuenta."
},
"wasmNotSupported": {
- "message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
+ "message": "WebAssembly no está soportado por tu navegador o no está habilitado. WebAssembly es necesario para usar la aplicación de Bitwarden.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/et/messages.json b/apps/browser/src/_locales/et/messages.json
index 8b61aa70a60..09e77bd361f 100644
--- a/apps/browser/src/_locales/et/messages.json
+++ b/apps/browser/src/_locales/et/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/eu/messages.json b/apps/browser/src/_locales/eu/messages.json
index 73bd992dacb..1cd1439e972 100644
--- a/apps/browser/src/_locales/eu/messages.json
+++ b/apps/browser/src/_locales/eu/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/fa/messages.json b/apps/browser/src/_locales/fa/messages.json
index 18afcb775f9..cfae87fd1a5 100644
--- a/apps/browser/src/_locales/fa/messages.json
+++ b/apps/browser/src/_locales/fa/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly در مرورگر شما پشتیبانی نمیشود یا فعال نیست. برای استفاده از برنامه Bitwarden، فعال بودن WebAssembly الزامی است.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/fi/messages.json b/apps/browser/src/_locales/fi/messages.json
index 894b50b5273..ffd5caea1d3 100644
--- a/apps/browser/src/_locales/fi/messages.json
+++ b/apps/browser/src/_locales/fi/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Tämä pyyntö ei ole enää voimassa."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Yritätkö kirjautua tilillesi?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Kirjautuminen vahvistettu tunnuksella $EMAIL$ laitteella $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Estit toisen laitteen lähettämän kirjautumispyynnön. Jos kuitenkin tunnistit kirjautumisyrityksen, suorita kirjautuminen uudelleen."
- },
"loginRequestHasAlreadyExpired": {
"message": "Kirjautumispyyntö on jo vanhentunut."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly ei ole tuettu selaimessasi tai se ei ole käytössä. WebAssembly vaaditaan, jotta voi käyttää Bitwardenia.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/fil/messages.json b/apps/browser/src/_locales/fil/messages.json
index dfc8d65cfd9..1682d21aa7f 100644
--- a/apps/browser/src/_locales/fil/messages.json
+++ b/apps/browser/src/_locales/fil/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/fr/messages.json b/apps/browser/src/_locales/fr/messages.json
index c35f4ca4bb9..1a4f466a41c 100644
--- a/apps/browser/src/_locales/fr/messages.json
+++ b/apps/browser/src/_locales/fr/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Cette demande n'est plus valide."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Essayez-vous d'accéder à votre compte ?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Connexion confirmée pour $EMAIL$ sur $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Vous avez refusé une tentative de connexion depuis un autre appareil. Si c'était vraiment vous, essayez de vous reconnecter avec l'appareil."
- },
"loginRequestHasAlreadyExpired": {
"message": "La demande de connexion a déjà expiré."
},
@@ -4601,7 +4582,7 @@
}
},
"copyFieldCipherName": {
- "message": "Copiez $FIELD$, $CIPHERNAME$",
+ "message": "Copier $FIELD$, $CIPHERNAME$",
"description": "Title for a button that copies a field value to the clipboard.",
"placeholders": {
"field": {
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly n'est pas pris en charge sur votre navigateur ou n'est pas activé. WebAssembly est requis pour utiliser l'application Bitwarden.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/gl/messages.json b/apps/browser/src/_locales/gl/messages.json
index c7d47b61209..0698191f53e 100644
--- a/apps/browser/src/_locales/gl/messages.json
+++ b/apps/browser/src/_locales/gl/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/he/messages.json b/apps/browser/src/_locales/he/messages.json
index c13bcad10c6..96dc5215051 100644
--- a/apps/browser/src/_locales/he/messages.json
+++ b/apps/browser/src/_locales/he/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/hi/messages.json b/apps/browser/src/_locales/hi/messages.json
index cc89f9cc2dd..35d7e8b2911 100644
--- a/apps/browser/src/_locales/hi/messages.json
+++ b/apps/browser/src/_locales/hi/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/hr/messages.json b/apps/browser/src/_locales/hr/messages.json
index 97bd79f2950..d38461ab553 100644
--- a/apps/browser/src/_locales/hr/messages.json
+++ b/apps/browser/src/_locales/hr/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Ovaj zahtjev više nije valjan."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Pokušavaš li pristupiti svom računu?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Prijava za $EMAIL$ potvrđena na uređaju $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Odbijena je prijava na drugom uređaju. Ako si ovo stvarno ti, pokušaj se ponovno prijaviti uređajem."
- },
"loginRequestHasAlreadyExpired": {
"message": "Zahtjev za prijavu je već istekao."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly ili nije podržan ili nije omogućen u tvom pregledniku. WebAssembly je potreban za korištenje Bitwarden aplikacije.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Prikaži više"
+ },
+ "showLess": {
+ "message": "Pokaži manje"
}
}
diff --git a/apps/browser/src/_locales/hu/messages.json b/apps/browser/src/_locales/hu/messages.json
index cfe79ea4b20..a0fc88e047a 100644
--- a/apps/browser/src/_locales/hu/messages.json
+++ b/apps/browser/src/_locales/hu/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "A kérés a továbbiakban már nem érvényes."
},
- "areYouTryingToAccessYourAccount": {
- "message": "A fiókhoz próbálunk hozzáférni?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "A bejelelentketés $EMAIL$ email címmel megerősítésre került $DEVICE$ eszközön.",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Megtagadásra került egy bejelentkezési kísérletet egy másik eszközről. Ha valóban mi voltunk, próbáljunk meg újra bejelentkezni az eszközzel."
- },
"loginRequestHasAlreadyExpired": {
"message": "A bejelentkezési kérés már lejárt."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "A WebAssembly nem támogatott a böngészőben vagy nincs engedélyezve. A WebAssembly szükséges a Bitwarden alkalmazás használatához.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Több megjelenítése"
+ },
+ "showLess": {
+ "message": "Kevesebb megjelenítése"
}
}
diff --git a/apps/browser/src/_locales/id/messages.json b/apps/browser/src/_locales/id/messages.json
index 4ce58ee7618..297b2d458e1 100644
--- a/apps/browser/src/_locales/id/messages.json
+++ b/apps/browser/src/_locales/id/messages.json
@@ -20,7 +20,7 @@
"message": "Undangan diterima"
},
"createAccount": {
- "message": "Buat Akun"
+ "message": "Buat akun"
},
"newToBitwarden": {
"message": "Baru menggunakan Bitwarden?"
@@ -548,7 +548,7 @@
"message": "Cari brankas"
},
"resetSearch": {
- "message": "Reset search"
+ "message": "Atur ulang pencarian"
},
"edit": {
"message": "Edit"
@@ -1177,10 +1177,10 @@
"description": "Detailed error message shown when saving login details fails."
},
"changePasswordWarning": {
- "message": "After changing your password, you will need to log in with your new password. Active sessions on other devices will be logged out within one hour."
+ "message": "Setelah mengubah kata sandi, Anda perlu masuk lagi dengan kata sandi baru. Sesi aktif di perangkat lain akan keluar dalam satu jam."
},
"accountRecoveryUpdateMasterPasswordSubtitle": {
- "message": "Change your master password to complete account recovery."
+ "message": "Ubah kata sandi utama Anda untuk menyelesaikan pemulihan akun."
},
"enableChangedPasswordNotification": {
"message": "Tanyakan untuk memperbarui masuk yang sudah ada"
@@ -1833,7 +1833,7 @@
"message": "Kode Keamanan"
},
"cardNumber": {
- "message": "card number"
+ "message": "nomor kartu"
},
"ex": {
"message": "mis."
@@ -2500,10 +2500,10 @@
"message": "Sebuah kebijakan organisasi telah menghalangi mengimpor benda-benda ke brankas pribadi Anda."
},
"restrictCardTypeImport": {
- "message": "Cannot import card item types"
+ "message": "Tidak dapat meingpor jenis item kartu"
},
"restrictCardTypeImportDesc": {
- "message": "A policy set by 1 or more organizations prevents you from importing cards to your vaults."
+ "message": "Kebijakan yang diatur 1 atau lebih organisasi tidak mengizinkan Anda mengimpor kartu ke brankas."
},
"domainsTitle": {
"message": "Domain",
@@ -2932,7 +2932,7 @@
"message": "Anda harus memverifikasi email Anda untuk menggunakan fitur ini. Anda dapat memverifikasi email Anda di brankas web."
},
"masterPasswordSuccessfullySet": {
- "message": "Master password successfully set"
+ "message": "Kata sandi utama berhasil diatur"
},
"updatedMasterPassword": {
"message": "Kata Sandi Utama Telah Diperbarui"
@@ -3467,7 +3467,7 @@
"message": "Permintaan terkirim"
},
"loginRequestApprovedForEmailOnDevice": {
- "message": "Login request approved for $EMAIL$ on $DEVICE$",
+ "message": "Permintaan masuk untuk $EMAIL$ di $DEVICE$ diizinkan",
"placeholders": {
"email": {
"content": "$1",
@@ -3480,16 +3480,16 @@
}
},
"youDeniedLoginAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this was you, try to log in with the device again."
+ "message": "Anda menolak percobaan masuk dari perangkat lain. Jika itu adalah Anda, mohon coba masuk kembali di perangkat tersebut."
},
"device": {
- "message": "Device"
+ "message": "Perangkat"
},
"loginStatus": {
- "message": "Login status"
+ "message": "Status masuk"
},
"masterPasswordChanged": {
- "message": "Master password saved"
+ "message": "Sandi utama disimpan"
},
"exposedMasterPassword": {
"message": "Kata Sandi Utama yang Terpapar"
@@ -3585,17 +3585,17 @@
"message": "Ingat perangkat ini untuk membuat login berikutnya lebih lancar"
},
"manageDevices": {
- "message": "Manage devices"
+ "message": "Kelola perangkat"
},
"currentSession": {
- "message": "Current session"
+ "message": "Sesi saat ini"
},
"mobile": {
- "message": "Mobile",
+ "message": "Seluler",
"description": "Mobile app"
},
"extension": {
- "message": "Extension",
+ "message": "Pengaya",
"description": "Browser extension/addon"
},
"desktop": {
@@ -3603,35 +3603,35 @@
"description": "Desktop app"
},
"webVault": {
- "message": "Web vault"
+ "message": "Brankas web"
},
"webApp": {
- "message": "Web app"
+ "message": "Aplikasi web"
},
"cli": {
- "message": "CLI"
+ "message": "Antarmuka Baris Perintah"
},
"sdk": {
"message": "SDK",
"description": "Software Development Kit"
},
"requestPending": {
- "message": "Request pending"
+ "message": "Permintaan tertunda"
},
"firstLogin": {
- "message": "First login"
+ "message": "Masuk pertama"
},
"trusted": {
- "message": "Trusted"
+ "message": "Terpercaya"
},
"needsApproval": {
- "message": "Needs approval"
+ "message": "Perlu persetujuan"
},
"devices": {
- "message": "Devices"
+ "message": "Perangkat"
},
"accessAttemptBy": {
- "message": "Access attempt by $EMAIL$",
+ "message": "Percobaan akses oleh $EMAIL$",
"placeholders": {
"email": {
"content": "$1",
@@ -3640,50 +3640,31 @@
}
},
"confirmAccess": {
- "message": "Confirm access"
+ "message": "Izinkan akses"
},
"denyAccess": {
- "message": "Deny access"
+ "message": "Tolak akses"
},
"time": {
- "message": "Time"
+ "message": "Waktu"
},
"deviceType": {
- "message": "Device Type"
+ "message": "Jenis Perangkat"
},
"loginRequest": {
- "message": "Login request"
+ "message": "Permintaan masuk"
},
"thisRequestIsNoLongerValid": {
- "message": "This request is no longer valid."
- },
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
+ "message": "Permintaan ini tidak lagi valid."
},
"loginRequestHasAlreadyExpired": {
- "message": "Login request has already expired."
+ "message": "Permintaan masuk kedaluwarsa."
},
"justNow": {
- "message": "Just now"
+ "message": "Baru saja"
},
"requestedXMinutesAgo": {
- "message": "Requested $MINUTES$ minutes ago",
+ "message": "Diminta $MINUTES$ menit yang lalu",
"placeholders": {
"minutes": {
"content": "$1",
@@ -3713,10 +3694,10 @@
"message": "Minta persetujuan admin"
},
"unableToCompleteLogin": {
- "message": "Unable to complete login"
+ "message": "Gagal menyelesaikan proses masuk"
},
"loginOnTrustedDeviceOrAskAdminToAssignPassword": {
- "message": "You need to log in on a trusted device or ask your administrator to assign you a password."
+ "message": "Anda harus masuk di perangkat terpercaya atau meminta administrator untuk membuat kata sandi Anda."
},
"ssoIdentifierRequired": {
"message": "Pengenal SSO organisasi diperlukan."
@@ -4398,23 +4379,23 @@
"description": "Label indicating the most common import formats"
},
"uriMatchDefaultStrategyHint": {
- "message": "URI match detection is how Bitwarden identifies autofill suggestions.",
+ "message": "Bitwarden mengenali saran isi otomatis menggunakan deteksi kecocokan URI.",
"description": "Explains to the user that URI match detection determines how Bitwarden suggests autofill options, and clarifies that this default strategy applies when no specific match detection is set for a login item."
},
"regExAdvancedOptionWarning": {
- "message": "\"Regular expression\" is an advanced option with increased risk of exposing credentials.",
+ "message": "\"Ekspresi regular\" adalah opsi lanjutan dengan risiko lebih besar untuk menyingkapkan identitas anda.",
"description": "Content for dialog which warns a user when selecting 'regular expression' matching strategy as a cipher match strategy"
},
"startsWithAdvancedOptionWarning": {
- "message": "\"Starts with\" is an advanced option with increased risk of exposing credentials.",
+ "message": "\"Bermula dengan\" adalah opsi lanjutan dengan risiko lebih besar untuk menyingkapkan identitas anda.",
"description": "Content for dialog which warns a user when selecting 'starts with' matching strategy as a cipher match strategy"
},
"uriMatchWarningDialogLink": {
- "message": "More about match detection",
+ "message": "Ketahui lebih tentang deteksi kecocokan",
"description": "Link to match detection docs on warning dialog for advance match strategy"
},
"uriAdvancedOption": {
- "message": "Advanced options",
+ "message": "Opsi lanjutan",
"description": "Advanced option placeholder for uri option component"
},
"confirmContinueToBrowserSettingsTitle": {
@@ -4601,7 +4582,7 @@
}
},
"copyFieldCipherName": {
- "message": "Copy $FIELD$, $CIPHERNAME$",
+ "message": "Salin $FIELD$, $CIPHERNAME$",
"description": "Title for a button that copies a field value to the clipboard.",
"placeholders": {
"field": {
@@ -5245,7 +5226,7 @@
"message": "PIN untuk membuka telah diatur"
},
"unlockWithBiometricSet": {
- "message": "Unlock with biometrics set"
+ "message": "Biometrik untuk membuka telah diatur"
},
"authenticating": {
"message": "Sedang memeriksa keaslian"
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly tidak didukung atau tidak dinyalakan oleh peramban Anda. Web Assembly diperlukan untuk menggunakan aplikasi Bitwarden.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/it/messages.json b/apps/browser/src/_locales/it/messages.json
index 164d46bcec5..4e1c1d63e50 100644
--- a/apps/browser/src/_locales/it/messages.json
+++ b/apps/browser/src/_locales/it/messages.json
@@ -548,7 +548,7 @@
"message": "Cerca nella cassaforte"
},
"resetSearch": {
- "message": "Reset search"
+ "message": "Svuota ricerca"
},
"edit": {
"message": "Modifica"
@@ -1177,10 +1177,10 @@
"description": "Detailed error message shown when saving login details fails."
},
"changePasswordWarning": {
- "message": "After changing your password, you will need to log in with your new password. Active sessions on other devices will be logged out within one hour."
+ "message": "Dopo aver cambiato la password, dovrai accedere con quella nuova. Le sessioni attive su altri dispositivi saranno disconnesse entro un'ora."
},
"accountRecoveryUpdateMasterPasswordSubtitle": {
- "message": "Change your master password to complete account recovery."
+ "message": "Cambia la password principale per completare il recupero dell'account."
},
"enableChangedPasswordNotification": {
"message": "Chiedi di aggiornare il login esistente"
@@ -1833,7 +1833,7 @@
"message": "Codice di sicurezza"
},
"cardNumber": {
- "message": "card number"
+ "message": "numero carta"
},
"ex": {
"message": "es."
@@ -2932,7 +2932,7 @@
"message": "Devi verificare la tua email per usare questa funzionalità. Puoi verificare la tua email nella cassaforte web."
},
"masterPasswordSuccessfullySet": {
- "message": "Master password successfully set"
+ "message": "Password principale impostata correttamente"
},
"updatedMasterPassword": {
"message": "Password principale aggiornata"
@@ -3467,7 +3467,7 @@
"message": "Richiesta inviata"
},
"loginRequestApprovedForEmailOnDevice": {
- "message": "Login request approved for $EMAIL$ on $DEVICE$",
+ "message": "Richiesta di accesso approvata per $EMAIL$ su $DEVICE$",
"placeholders": {
"email": {
"content": "$1",
@@ -3480,16 +3480,16 @@
}
},
"youDeniedLoginAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this was you, try to log in with the device again."
+ "message": "Hai negato un tentativo di accesso da un altro dispositivo. Se eri davvero tu, prova di nuovo ad accedere con il dispositivo."
},
"device": {
- "message": "Device"
+ "message": "Dispositivo"
},
"loginStatus": {
- "message": "Login status"
+ "message": "Stato login"
},
"masterPasswordChanged": {
- "message": "Master password saved"
+ "message": "Password principale salvata"
},
"exposedMasterPassword": {
"message": "Password principale violata"
@@ -3585,17 +3585,17 @@
"message": "Ricorda questo dispositivo per rendere immediati i futuri accessi"
},
"manageDevices": {
- "message": "Manage devices"
+ "message": "Gestisci dispositivi"
},
"currentSession": {
- "message": "Current session"
+ "message": "Sessione in corso"
},
"mobile": {
"message": "Mobile",
"description": "Mobile app"
},
"extension": {
- "message": "Extension",
+ "message": "Estensione",
"description": "Browser extension/addon"
},
"desktop": {
@@ -3603,35 +3603,35 @@
"description": "Desktop app"
},
"webVault": {
- "message": "Web vault"
+ "message": "Cassaforte Web"
},
"webApp": {
- "message": "Web app"
+ "message": "Bitwarden Web"
},
"cli": {
- "message": "CLI"
+ "message": "Linea di comando"
},
"sdk": {
"message": "SDK",
"description": "Software Development Kit"
},
"requestPending": {
- "message": "Request pending"
+ "message": "Richiesta in attesa"
},
"firstLogin": {
- "message": "First login"
+ "message": "Primo accesso"
},
"trusted": {
- "message": "Trusted"
+ "message": "Attendibile"
},
"needsApproval": {
- "message": "Needs approval"
+ "message": "In attesa di approvazione"
},
"devices": {
- "message": "Devices"
+ "message": "Dispositivi"
},
"accessAttemptBy": {
- "message": "Access attempt by $EMAIL$",
+ "message": "Tentativo di accesso da $EMAIL$",
"placeholders": {
"email": {
"content": "$1",
@@ -3640,50 +3640,31 @@
}
},
"confirmAccess": {
- "message": "Confirm access"
+ "message": "Conferma l'accesso"
},
"denyAccess": {
- "message": "Deny access"
+ "message": "Nega l'accesso"
},
"time": {
- "message": "Time"
+ "message": "Ora"
},
"deviceType": {
- "message": "Device Type"
+ "message": "Tipo di dispositivo"
},
"loginRequest": {
- "message": "Login request"
+ "message": "Richiesta di accesso"
},
"thisRequestIsNoLongerValid": {
- "message": "This request is no longer valid."
- },
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
+ "message": "Questa richiesta non è più valida."
},
"loginRequestHasAlreadyExpired": {
- "message": "Login request has already expired."
+ "message": "La richiesta di accesso è scaduta."
},
"justNow": {
- "message": "Just now"
+ "message": "Pochi secondi fa"
},
"requestedXMinutesAgo": {
- "message": "Requested $MINUTES$ minutes ago",
+ "message": "Richiesta: $MINUTES$ minuti fa",
"placeholders": {
"minutes": {
"content": "$1",
@@ -3713,10 +3694,10 @@
"message": "Richiedi approvazione dell'amministratore"
},
"unableToCompleteLogin": {
- "message": "Unable to complete login"
+ "message": "Impossibile completare l'accesso"
},
"loginOnTrustedDeviceOrAskAdminToAssignPassword": {
- "message": "You need to log in on a trusted device or ask your administrator to assign you a password."
+ "message": "È necessario accedere da un dispositivo attendibile oppure chiedere all'amministratore l'assegnazione di una password."
},
"ssoIdentifierRequired": {
"message": "Identificatore SSO dell'organizzazione obbligatorio."
@@ -4398,23 +4379,23 @@
"description": "Label indicating the most common import formats"
},
"uriMatchDefaultStrategyHint": {
- "message": "URI match detection is how Bitwarden identifies autofill suggestions.",
+ "message": "La corrispondenza URL è il metodo predefinito per identificare i suggerimenti di riempimento automatico.",
"description": "Explains to the user that URI match detection determines how Bitwarden suggests autofill options, and clarifies that this default strategy applies when no specific match detection is set for a login item."
},
"regExAdvancedOptionWarning": {
- "message": "\"Regular expression\" is an advanced option with increased risk of exposing credentials.",
+ "message": "'Espressione regolare' è un'opzione avanzata con un maggior rischio di esporre le credenziali.",
"description": "Content for dialog which warns a user when selecting 'regular expression' matching strategy as a cipher match strategy"
},
"startsWithAdvancedOptionWarning": {
- "message": "\"Starts with\" is an advanced option with increased risk of exposing credentials.",
+ "message": "'Inizia con' è un'opzione con un maggior rischio di esporre le credenziali.",
"description": "Content for dialog which warns a user when selecting 'starts with' matching strategy as a cipher match strategy"
},
"uriMatchWarningDialogLink": {
- "message": "More about match detection",
+ "message": "Ulteriori informazioni sulla corrispondenza degli URL",
"description": "Link to match detection docs on warning dialog for advance match strategy"
},
"uriAdvancedOption": {
- "message": "Advanced options",
+ "message": "Opzioni avanzate",
"description": "Advanced option placeholder for uri option component"
},
"confirmContinueToBrowserSettingsTitle": {
@@ -4601,7 +4582,7 @@
}
},
"copyFieldCipherName": {
- "message": "Copy $FIELD$, $CIPHERNAME$",
+ "message": "Copia $FIELD$, $CIPHERNAME$",
"description": "Title for a button that copies a field value to the clipboard.",
"placeholders": {
"field": {
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly non è supportato dal browser o non è abilitato. WebAssembly è richiesto per utilizzare l'app Bitwarden.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Mostra di più"
+ },
+ "showLess": {
+ "message": "Mostra di meno"
}
}
diff --git a/apps/browser/src/_locales/ja/messages.json b/apps/browser/src/_locales/ja/messages.json
index 977d04ca28a..9370a3ae6b1 100644
--- a/apps/browser/src/_locales/ja/messages.json
+++ b/apps/browser/src/_locales/ja/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/ka/messages.json b/apps/browser/src/_locales/ka/messages.json
index da70c255803..6bbdb6f67f3 100644
--- a/apps/browser/src/_locales/ka/messages.json
+++ b/apps/browser/src/_locales/ka/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/km/messages.json b/apps/browser/src/_locales/km/messages.json
index f4c58318bc1..d076ef01ef2 100644
--- a/apps/browser/src/_locales/km/messages.json
+++ b/apps/browser/src/_locales/km/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/kn/messages.json b/apps/browser/src/_locales/kn/messages.json
index 31b285f6780..f4ab488884a 100644
--- a/apps/browser/src/_locales/kn/messages.json
+++ b/apps/browser/src/_locales/kn/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/ko/messages.json b/apps/browser/src/_locales/ko/messages.json
index 89d59488aaf..50725e73064 100644
--- a/apps/browser/src/_locales/ko/messages.json
+++ b/apps/browser/src/_locales/ko/messages.json
@@ -747,7 +747,7 @@
"message": "시스템 잠금 시"
},
"onRestart": {
- "message": "브라우저 다시 시작 시"
+ "message": "브라우저 재시작 시"
},
"never": {
"message": "안함"
@@ -1016,7 +1016,7 @@
"description": "This is the folder for uncategorized items"
},
"enableAddLoginNotification": {
- "message": "로그인을 추가할 건지 물어보기"
+ "message": "로그인 추가 확인"
},
"vaultSaveOptionsTitle": {
"message": "보관함 옵션들을 저장하기"
@@ -1028,7 +1028,7 @@
"message": "보관함에 항목이 없을 경우 추가하라는 메시지를 표시합니다. 모든 로그인된 계정에 적용됩니다."
},
"showCardsInVaultViewV2": {
- "message": "보관함 보기에서 언제나 카드 자동 완성 제안을 표시"
+ "message": "보관함 보기에서 자동 완성 제안으로 카드를 항상 표시"
},
"showCardsCurrentTab": {
"message": "탭 페이지에 카드 표시"
@@ -1037,7 +1037,7 @@
"message": "간편한 자동완성을 위해 탭에 카드 항목들을 나열"
},
"showIdentitiesInVaultViewV2": {
- "message": "보관함 보기에서 언제나 신원의 자동 완성 제안을 표시"
+ "message": "보관함 보기에서 자동 채우기 제안으로 신원을 항상 표시"
},
"showIdentitiesCurrentTab": {
"message": "탭 페이지에 신원들을 표시"
@@ -1049,7 +1049,7 @@
"message": "보관함 보기에서 항목을 클릭하여 자동 완성"
},
"clickToAutofill": {
- "message": "Click items in autofill suggestion to fill"
+ "message": "자동 완성 제안에서 항목 클릭으로 채우기"
},
"clearClipboard": {
"message": "클립보드 비우기",
@@ -1183,7 +1183,7 @@
"message": "Change your master password to complete account recovery."
},
"enableChangedPasswordNotification": {
- "message": "현재 로그인으로 업데이트할 건지 묻기"
+ "message": "기존 로그인 정보 업데이트 확인"
},
"changedPasswordNotificationDesc": {
"message": "웹사이트에서 변경 사항이 감지되면 로그인 비밀번호를 업데이트하라는 메시지를 표시합니다."
@@ -1213,7 +1213,7 @@
"message": "추가 옵션"
},
"enableContextMenuItem": {
- "message": "문맥 매뉴 옵션 표시"
+ "message": "컨텍스트 메뉴 옵션 표시"
},
"contextMenuItemDesc": {
"message": "우클릭을 사용하여, 비밀번호 생성과 웹사이트 로그인 매칭에 접근하세요"
@@ -1264,10 +1264,10 @@
"message": "이 비밀번호는 이 파일을 파일 내보내거나, 가져오는데 사용됩니다."
},
"accountRestrictedOptionDescription": {
- "message": "내보내기를 당신의 계정의 사용자이름과 마스터비밀번호로부터 파생된 계정 암호화 키를 사용하여 암호화하고, 현재의 Bitwarden 계정으로만 가져오도록 제한합니다."
+ "message": "당신 계정의 사용자 이름과 마스터 비밀번호를 통한 암호화 키로 내보내기 파일을 암호화 하고, 현재의 Bitwarden 계정으로만 가져올 수 있도록 제한합니다."
},
"passwordProtectedOptionDescription": {
- "message": "파일에 비밀번호를 설정하여 내보내기를 암호화하고, 어느 Bitwarden 계정으로든 그 비밀번호로 해독하여 가져오기 합니다."
+ "message": "파일에 비밀번호를 설정하여 내보내기 파일을 암호화하며, 그 비밀번호만 입력하면 어느 Bitwarden 계정으로든 가져올 수 있습니다."
},
"exportTypeHeading": {
"message": "내보내기 유형"
@@ -1630,13 +1630,13 @@
"message": "양식 필드에 자동 완성 제안 표시"
},
"showInlineMenuIdentitiesLabel": {
- "message": "신원를 제안으로 표시"
+ "message": "신원을 제안으로 표시"
},
"showInlineMenuCardsLabel": {
"message": "카드를 제안으로 표시"
},
"showInlineMenuOnIconSelectionLabel": {
- "message": "아이콘을 선택할 때 제안을 표시"
+ "message": "아이콘 선택 시 제안 표시"
},
"showInlineMenuOnFormFieldsDescAlt": {
"message": "로그인한 모든 계정에 적용"
@@ -2196,7 +2196,7 @@
"message": "브라우저 다시 시작 시 마스터 비밀번호로 잠금"
},
"lockWithMasterPassOnRestart1": {
- "message": "브라우저 다시 시작 시 마스터 비밀번호가 필요합니다"
+ "message": "브라우저 재시작 시 마스터 비밀번호 요구"
},
"selectOneCollection": {
"message": "반드시 하나 이상의 컬렉션을 선택해야 합니다."
@@ -3115,7 +3115,7 @@
}
},
"exportingIndividualVaultWithAttachmentsDescription": {
- "message": "Only the individual vault items including attachments associated with $EMAIL$ will be exported. Organization vault items will not be included",
+ "message": "$EMAIL$ 계정과 관련된 개인 보관함 항목과 첨부 파일만 내보내집니다. 조직 보관함 항목은 포함되지 않습니다.",
"placeholders": {
"email": {
"content": "$1",
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -3808,7 +3789,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendsBodyNoItems": {
- "message": "Share files and data securely with anyone, on any platform. Your information will remain end-to-end encrypted while limiting exposure.",
+ "message": "플랫폼에 구애받지 않고 누구에게나 파일과 데이터를 안전하게 공유하세요. 전송하는 정보는 종단 간 암호화로 보호되어 외부 노출이 최소화됩니다.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"inputRequired": {
@@ -4398,7 +4379,7 @@
"description": "Label indicating the most common import formats"
},
"uriMatchDefaultStrategyHint": {
- "message": "URI match detection is how Bitwarden identifies autofill suggestions.",
+ "message": "Bitwarden에서 자동 채우기 제안을 식별하는 방법은 URI 일치 감지입니다.",
"description": "Explains to the user that URI match detection determines how Bitwarden suggests autofill options, and clarifies that this default strategy applies when no specific match detection is set for a login item."
},
"regExAdvancedOptionWarning": {
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/lt/messages.json b/apps/browser/src/_locales/lt/messages.json
index 5a4f0d8c419..fa53a42a4b7 100644
--- a/apps/browser/src/_locales/lt/messages.json
+++ b/apps/browser/src/_locales/lt/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/lv/messages.json b/apps/browser/src/_locales/lv/messages.json
index 81447182f26..68d5a0db2e3 100644
--- a/apps/browser/src/_locales/lv/messages.json
+++ b/apps/browser/src/_locales/lv/messages.json
@@ -605,7 +605,7 @@
"message": "Izdzēst vienumu"
},
"viewItem": {
- "message": "Skatīt vienumu"
+ "message": "Apskatīt vienumu"
},
"launch": {
"message": "Palaist"
@@ -1180,7 +1180,7 @@
"message": "Pēc savas paroles nomainīšanas būs nepieciešams pieteikties ar jauno paroli. Spēkā esošajās sesijās citās ierīcēs stundas laikā notiks atteikšanās."
},
"accountRecoveryUpdateMasterPasswordSubtitle": {
- "message": "Jānomaina sava galvenā'parole, lai pabeigtu konta atkopi."
+ "message": "Jānomaina sava galvenā parole, lai pabeigtu konta atkopi."
},
"enableChangedPasswordNotification": {
"message": "Vaicāt atjaunināt esošu pieteikšanās vienumu"
@@ -1490,7 +1490,7 @@
"description": "Select another two-step login method"
},
"useYourRecoveryCode": {
- "message": "Izmantot savu atkopes kodu"
+ "message": "Izmanto savu atkopes kodu"
},
"insertU2f": {
"message": "Ievieto savu drošības atslēgu datora USB ligzdā! Ja tai ir poga, pieskaries tai!"
@@ -1523,10 +1523,10 @@
"message": "Atlasīt divpakāpju pieteikšanās veidu"
},
"recoveryCodeDesc": {
- "message": "Zaudēta piekļuve visiem divpakāpju nodrošinātājiem? Izmanto atkopšanas kodus, lai atspējotu visus sava konta divpakāpju nodrošinātājus!"
+ "message": "Zaudēta piekļuve visiem divpakāpju nodrošinātājiem? Izmanto atkopes kodus, lai atspējotu visus sava konta divpakāpju nodrošinātājus!"
},
"recoveryCodeTitle": {
- "message": "Atgūšanas kods"
+ "message": "Atkopes kods"
},
"authenticatorAppTitle": {
"message": "Autentificētāja lietotne"
@@ -3437,7 +3437,7 @@
"message": "Atkārtoti nosūtīt paziņojumu"
},
"viewAllLogInOptions": {
- "message": "Skatīt visas pieteikšanās iespējas"
+ "message": "Apskatīt visas pieteikšanās iespējas"
},
"notificationSentDevice": {
"message": "Uz ierīci ir nosūtīts paziņojums."
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Šis pieprasījums vairs nav derīgs."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Vai mēģini piekļūt savam kontam?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "$EMAIL$ pieteikšanās apstiprināta ierīcē $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Tu noraidīji pieteikšanās mēģinājumu no citas ierīces. Ja tas tiešām biji Tu, mēģini pieteikties no ierīces vēlreiz!"
- },
"loginRequestHasAlreadyExpired": {
"message": "Pieteikšanās pieprasījuma derīgums jau ir beidzies."
},
@@ -3747,7 +3728,7 @@
"description": "European Union"
},
"accessDenied": {
- "message": "Piekļuve liegta. Nav nepieciešamo atļauju, lai skatītu šo lapu."
+ "message": "Piekļuve liegta. Nav nepieciešamo atļauju, lai apskatītu šo lapu."
},
"general": {
"message": "Vispārīgi"
@@ -4406,7 +4387,7 @@
"description": "Content for dialog which warns a user when selecting 'regular expression' matching strategy as a cipher match strategy"
},
"startsWithAdvancedOptionWarning": {
- "message": "\"Sākas ar' ir lietpratējiem paredzēta iespēja ar paaugstinātu piekļuves datu atklāšanas bīstamību.",
+ "message": "“Sākas ar” ir lietpratējiem paredzēta iespēja ar paaugstinātu piekļuves datu atklāšanas bīstamību.",
"description": "Content for dialog which warns a user when selecting 'starts with' matching strategy as a cipher match strategy"
},
"uriMatchWarningDialogLink": {
@@ -4430,7 +4411,7 @@
"description": "Body content for dialog which asks if the user wants to proceed to the Help Center's page about browser password management settings"
},
"confirmContinueToHelpCenterKeyboardShortcutsContent": {
- "message": "Paplašinājuma īsinājumtaustiņus skatīt un iestatīt var pārlūka iestatījumos.",
+ "message": "Paplašinājuma īsinājumtaustiņus apskatīt un iestatīt var pārlūka iestatījumos.",
"description": "Body content for dialog which asks if the user wants to proceed to the Help Center's page about browser keyboard shortcut settings"
},
"confirmContinueToBrowserPasswordManagementSettingsContent": {
@@ -4438,7 +4419,7 @@
"description": "Body content for dialog which asks if the user wants to proceed to the browser's password management settings page"
},
"confirmContinueToBrowserKeyboardShortcutSettingsContent": {
- "message": "Paplašinājuma īsinājumtaustiņus skatīt un iestatīt var pārlūka iestatījumos.",
+ "message": "Paplašinājuma īsinājumtaustiņus apskatīt un iestatīt var pārlūka iestatījumos.",
"description": "Body content for dialog which asks if the user wants to proceed to the browser's keyboard shortcut settings page"
},
"overrideDefaultBrowserAutofillTitle": {
@@ -4553,7 +4534,7 @@
}
},
"viewItemTitle": {
- "message": "Skatīt vienumu - $ITEMNAME$",
+ "message": "Apskatīt vienumu - $ITEMNAME$",
"description": "Title for a link that opens a view for an item.",
"placeholders": {
"itemname": {
@@ -4648,7 +4629,7 @@
"message": "Kļūda mērķa mapes piešķiršanā."
},
"viewItemsIn": {
- "message": "Skatīt $NAME$ vienumus",
+ "message": "Apskatīt $NAME$ vienumus",
"description": "Button to view the contents of a folder or collection",
"placeholders": {
"name": {
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly šajā pārlūkā netiek atbalstīts vai nav iespējots. WebAssebly ir nepieciešams, lai izmantotu Bitwarden lietotni.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Rādīt vairāk"
+ },
+ "showLess": {
+ "message": "Rādīt mazāk"
}
}
diff --git a/apps/browser/src/_locales/ml/messages.json b/apps/browser/src/_locales/ml/messages.json
index 11709a4611b..ca1bbc69297 100644
--- a/apps/browser/src/_locales/ml/messages.json
+++ b/apps/browser/src/_locales/ml/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/mr/messages.json b/apps/browser/src/_locales/mr/messages.json
index e7d06e4d5f9..70059b1552e 100644
--- a/apps/browser/src/_locales/mr/messages.json
+++ b/apps/browser/src/_locales/mr/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/my/messages.json b/apps/browser/src/_locales/my/messages.json
index f4c58318bc1..d076ef01ef2 100644
--- a/apps/browser/src/_locales/my/messages.json
+++ b/apps/browser/src/_locales/my/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/nb/messages.json b/apps/browser/src/_locales/nb/messages.json
index 7cbe8747d3b..9e617957dc8 100644
--- a/apps/browser/src/_locales/nb/messages.json
+++ b/apps/browser/src/_locales/nb/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Denne forespørselen er ikke lenger gyldig."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Innloggingsforespørselen har allerede utløpt."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/ne/messages.json b/apps/browser/src/_locales/ne/messages.json
index f4c58318bc1..d076ef01ef2 100644
--- a/apps/browser/src/_locales/ne/messages.json
+++ b/apps/browser/src/_locales/ne/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/nl/messages.json b/apps/browser/src/_locales/nl/messages.json
index 0c2bd31935f..4b38d8491aa 100644
--- a/apps/browser/src/_locales/nl/messages.json
+++ b/apps/browser/src/_locales/nl/messages.json
@@ -3073,13 +3073,13 @@
"message": "Geen unieke id gevonden."
},
"removeMasterPasswordForOrganizationUserKeyConnector": {
- "message": "A master password is no longer required for members of the following organization. Please confirm the domain below with your organization administrator."
+ "message": "Voor leden van de volgende organisatie is een hoofdwachtwoord niet langer nodig. Bevestig het domein hieronder met de beheerder van je organisatie."
},
"organizationName": {
- "message": "Organization name"
+ "message": "Organisatienaam"
},
"keyConnectorDomain": {
- "message": "Key Connector domain"
+ "message": "Key Connector domein"
},
"leaveOrganization": {
"message": "Organisatie verlaten"
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Dit verzoek is niet langer geldig."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Probeer je toegang te krijgen tot je account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Inloggen voor $EMAIL$ bevestigd op $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Je hebt een inlogpoging vanaf een ander apparaat geweigerd. Als je dit toch echt zelf was, probeer dan opnieuw in te loggen met het apparaat."
- },
"loginRequestHasAlreadyExpired": {
"message": "Inlogverzoek is al verlopen."
},
@@ -4772,7 +4753,7 @@
"message": "Download op Google Play"
},
"downloadOnTheAppStore": {
- "message": "Download on the App Store"
+ "message": "Te downloaden in de App Store"
},
"permanentlyDeleteAttachmentConfirmation": {
"message": "Weet je zeker dat je deze bijlage definitief wilt verwijderen?"
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly wordt niet ondersteund in je browser of is niet ingeschakeld. WebAssembly is vereist om de Bitwarden-app te gebruiken.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Meer weergeven"
+ },
+ "showLess": {
+ "message": "Minder weergeven"
}
}
diff --git a/apps/browser/src/_locales/nn/messages.json b/apps/browser/src/_locales/nn/messages.json
index f4c58318bc1..d076ef01ef2 100644
--- a/apps/browser/src/_locales/nn/messages.json
+++ b/apps/browser/src/_locales/nn/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/or/messages.json b/apps/browser/src/_locales/or/messages.json
index f4c58318bc1..d076ef01ef2 100644
--- a/apps/browser/src/_locales/or/messages.json
+++ b/apps/browser/src/_locales/or/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/pl/messages.json b/apps/browser/src/_locales/pl/messages.json
index 04112b08219..97875409529 100644
--- a/apps/browser/src/_locales/pl/messages.json
+++ b/apps/browser/src/_locales/pl/messages.json
@@ -1153,7 +1153,7 @@
"description": "Shown to user after login is updated."
},
"loginUpdateTaskSuccessAdditional": {
- "message": "Dziękujemy za dbanie o bezpieczeństwo $ORGANIZATION$. Pozostało $TASK_COUNT$ haseł do zaktualizowania.",
+ "message": "Dziękujemy za zwiększenie bezpieczeństwa organizacji $ORGANIZATION$. Zaktualizuj hasła dla jeszcze $TASK_COUNT$ danych logowania.",
"placeholders": {
"organization": {
"content": "$1"
@@ -1468,7 +1468,7 @@
"message": "Konto premium jest wymagane, aby skorzystać z tej funkcji."
},
"authenticationTimeout": {
- "message": "Limit czasu uwierzytelniania"
+ "message": "Przekroczono limit czasu uwierzytelniania"
},
"authenticationSessionTimedOut": {
"message": "Upłynął limit czasu uwierzytelniania. Zaloguj się ponownie."
@@ -1523,7 +1523,7 @@
"message": "Wybierz metodę logowania dwustopniowego"
},
"recoveryCodeDesc": {
- "message": "Utraciłeś dostęp do wszystkich swoich mechanizmów dwustopniowego logowania? Użyj kodów odzyskiwania, aby wyłączyć dwustopniowe logowanie na Twoim koncie."
+ "message": "Nie masz dostępu do logowania dwustopniowego? Użyj kodu odzyskiwania, aby je wyłączyć."
},
"recoveryCodeTitle": {
"message": "Kod odzyskiwania"
@@ -1681,7 +1681,7 @@
"message": "Domyślne ustawienie autouzupełniania"
},
"defaultAutoFillOnPageLoadDesc": {
- "message": "Po włączeniu autouzupełnianiu po załadowaniu strony możesz włączyć lub wyłączyć tę funkcję dla poszczególnych wpisów."
+ "message": "Możesz wyłączyć autouzupełnianie po załadowaniu strony dla poszczególnych elementów w opcjach konkretnych elementów."
},
"itemAutoFillOnPageLoad": {
"message": "Automatycznie uzupełniaj po załadowaniu strony (jeśli włączono w opcjach)"
@@ -1773,7 +1773,7 @@
"message": "Pokaż licznik na ikonie"
},
"badgeCounterDesc": {
- "message": "Wskaż, ile masz danych logowania do bieżącej strony internetowej."
+ "message": "Pokazuje liczbę danych logowania dla obecnej strony internetowej."
},
"cardholderName": {
"message": "Właściciel karty"
@@ -2178,7 +2178,7 @@
"message": "Kod PIN jest nieprawidłowy."
},
"tooManyInvalidPinEntryAttemptsLoggingOut": {
- "message": "Zbyt wiele nieprawidłowych prób wpisywania PIN. Wylogowywanie."
+ "message": "Zbyt wiele nieprawidłowych prób wpisywania kodu PIN. Trwa wylogowanie"
},
"unlockWithBiometrics": {
"message": "Odblokuj biometrią"
@@ -2476,13 +2476,13 @@
"message": "Logowanie biometrią nie powiodło się"
},
"biometricsFailedDesc": {
- "message": "Dane biometryczne nie mogę być użyte, rozważ użycie hasła głównego lub wylogowanie. Jeśli się to powtarza, skontaktuj się z pomocą techniczną Bitwarden."
+ "message": "Weryfikacja biometryczna nie powiodła się. Zaloguj się za pomocą hasła głównego. Jeśli problem się powtarza, skontaktuj się z pomocą techniczną Bitwarden."
},
"nativeMessaginPermissionErrorTitle": {
"message": "Uprawnienie nie zostało przyznane"
},
"nativeMessaginPermissionErrorDesc": {
- "message": "Bez uprawnienia do komunikowania się z aplikacją desktopową Bitwarden nie możemy dostarczyć obsługi danych biometrycznych w rozszerzeniu przeglądarki. Spróbuj ponownie."
+ "message": "Odblokowanie biometrią jest dostępne dopiero po połączeniu rozszerzenia przeglądarki z aplikacją desktopową Bitwarden. Spróbuj ponownie."
},
"nativeMessaginPermissionSidebarTitle": {
"message": "Wystąpił błąd żądania uprawnienia"
@@ -2503,7 +2503,7 @@
"message": "Nie można zaimportować karty"
},
"restrictCardTypeImportDesc": {
- "message": "Polityka ustawiona przez 1 lub więcej organizacji uniemożliwia importowanie kart do sejfów."
+ "message": "Zasada ustawiona przez co najmniej 1 organizację uniemożliwia importowanie kart do sejfów."
},
"domainsTitle": {
"message": "Domeny",
@@ -2610,7 +2610,7 @@
"message": "Sprawdź i zmień 1 zagrożone hasło"
},
"reviewAndChangeAtRiskPasswordsPlural": {
- "message": "Przejrzyj i zmień $COUNT$ zagrożonych haseł ",
+ "message": "Sprawdź i zmień zagrożone hasła ($COUNT$)",
"placeholders": {
"count": {
"content": "$1",
@@ -2631,14 +2631,14 @@
"message": "Sprawdź zagrożone hasła"
},
"reviewAtRiskLoginsSlideDesc": {
- "message": "Twoje hasła organizacji są zagrożone, ponieważ są słabe, ponownie używane i/lub narażone.",
+ "message": "Hasła w Twojej organizacji są zagrożone, ponieważ są słabe, identyczne lub ujawnione.",
"description": "Description of the review at-risk login slide on the at-risk password page carousel"
},
"reviewAtRiskLoginSlideImgAltPeriod": {
"message": "Ilustracja listy danych logowania, które są zagrożone."
},
"generatePasswordSlideDesc": {
- "message": "Szybko wygeneruj silne, unikalne hasło z menu autouzupełniania Bitwarden na stronie narażonej na ryzyko.",
+ "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"
},
"generatePasswordSlideImgAltPeriod": {
@@ -3115,7 +3115,7 @@
}
},
"exportingIndividualVaultWithAttachmentsDescription": {
- "message": "Tylko poszczególne elementy sejfu łącznie z załącznikami powiązanymi z $EMAIL$ zostaną wyeksportowane. Elementy sejfu organizacji nie będą dołączone",
+ "message": "Tylko osobisty sejf $EMAIL$ zostanie wyeksportowany. Elementy organizacji nie zostaną uwzględnione.",
"placeholders": {
"email": {
"content": "$1",
@@ -3127,7 +3127,7 @@
"message": "Eksportowanie sejfu organizacji"
},
"exportingOrganizationVaultDesc": {
- "message": "Tylko sejf organizacji powiązany z $ORGANIZATION$ zostanie wyeksportowany. Pozycje w poszczególnych sejfach lub innych organizacji nie będą uwzględnione.",
+ "message": "Tylko sejf organizacji $ORGANIZATION$ zostanie wyeksportowany. Elementy innych sejfów nie zostaną uwzględnione.",
"placeholders": {
"organization": {
"content": "$1",
@@ -3348,7 +3348,7 @@
}
},
"forwarderUnknownForwarder": {
- "message": "Nieznana usługa przekierowania: '$SERVICENAME$'.",
+ "message": "Usługa „$SERVICENAME$” jest nieznana.",
"description": "Displayed when the forwarding service is not supported.",
"placeholders": {
"servicename": {
@@ -3380,7 +3380,7 @@
"message": "Nie można uzyskać dostępu do elementów w zawieszonych organizacjach. Skontaktuj się z właścicielem organizacji, aby uzyskać pomoc."
},
"loggingInTo": {
- "message": "Logowanie na $DOMAIN$",
+ "message": "Serwer: $DOMAIN$",
"placeholders": {
"domain": {
"content": "$1",
@@ -3522,10 +3522,10 @@
}
},
"autofillPageLoadPolicyActivated": {
- "message": "Twoja organizacja włączyła autouzupełnianie podczas wczytywania strony."
+ "message": "Twoja organizacja włączyła autouzupełnianie po załadowaniu strony."
},
"howToAutofill": {
- "message": "Jak autouzupełniać"
+ "message": "Jak uzupełniać dane"
},
"autofillSelectInfoWithCommand": {
"message": "Wybierz element, użyj skrótu $COMMAND$ lub zobacz inne opcje w ustawieniach.",
@@ -3616,7 +3616,7 @@
"description": "Software Development Kit"
},
"requestPending": {
- "message": "Zapytanie oczekuje"
+ "message": "Oczekująca prośba"
},
"firstLogin": {
"message": "Pierwsze logowanie"
@@ -3652,30 +3652,11 @@
"message": "Rodzaj urządzenia"
},
"loginRequest": {
- "message": "Żądanie logowania"
+ "message": "Prośba logowania"
},
"thisRequestIsNoLongerValid": {
"message": "Prośba nie jest już ważna."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Czy próbujesz uzyskać dostęp do swojego konta?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Logowanie potwierdzone dla $EMAIL$ na $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Odrzucono próby logowania z innego urządzenia. Jeśli to naprawdę Ty, spróbuj ponownie zalogować się za pomocą urządzenia."
- },
"loginRequestHasAlreadyExpired": {
"message": "Prośba logowania wygasła."
},
@@ -3713,7 +3694,7 @@
"message": "Poproś administratora o potwierdzenie"
},
"unableToCompleteLogin": {
- "message": "Nie można ukończyć logowania"
+ "message": "Logowanie nie powiodło się"
},
"loginOnTrustedDeviceOrAskAdminToAssignPassword": {
"message": "Musisz zalogować się na zaufanym urządzeniu lub poprosić administratora o przypisanie hasła."
@@ -3747,7 +3728,7 @@
"description": "European Union"
},
"accessDenied": {
- "message": "Odmowa dostępu. Nie masz uprawnień do przeglądania tej strony."
+ "message": "Odmowa dostępu. Nie masz uprawnień do wyświetlenia tej strony."
},
"general": {
"message": "Ogólne"
@@ -3777,7 +3758,7 @@
"message": "Nie znaleziono aktywnego adresu e-mail. Trwa wylogowanie."
},
"deviceTrusted": {
- "message": "Zaufano urządzeniu"
+ "message": "Urządzenie zostało zaufane"
},
"trustOrganization": {
"message": "Zaufaj organizacji"
@@ -3935,7 +3916,7 @@
"description": "Toast message for describing that master password re-prompt cannot be autofilled on page load."
},
"autofillOnPageLoadSetToDefault": {
- "message": "Automatyczne wypełnianie przy wczytywaniu strony zostało ustawione, aby używać ustawień domyślnych.",
+ "message": "Autouzupełnianie po załadowaniu strony zostało ustawione do domyślnych ustawień.",
"description": "Toast message for informing the user that autofill on page load has been set to the default setting."
},
"turnOffMasterPasswordPromptToEditField": {
@@ -4046,7 +4027,7 @@
"message": "Błąd importowania"
},
"importErrorDesc": {
- "message": "Wystąpił problem z danymi, które chcesz zaimportować. Rozwiąż poniższe problemy w Twoim pliku i spróbuj ponownie."
+ "message": "Wystąpił problem podczas importowania danych. Usuń poniższe błędy w pliku źródłowym i spróbuj ponownie."
},
"resolveTheErrorsBelowAndTryAgain": {
"message": "Rozwiąż poniższe błędy i spróbuj ponownie."
@@ -4082,7 +4063,7 @@
"message": "Oczekiwanie na potwierdzenie"
},
"couldNotCompleteBiometrics": {
- "message": "Nie można ukończyć z użyciem biometrii."
+ "message": "Logowanie biometrią nie powiodło się"
},
"needADifferentMethod": {
"message": "Potrzebujesz innej metody?"
@@ -4303,7 +4284,7 @@
"message": "Wpisz jednorazowy kod z aplikacji uwierzytelniającej"
},
"lastPassOOBDesc": {
- "message": "Zatwierdź żądanie logowania w aplikacji uwierzytelniającej lub wprowadź jednorazowe hasło."
+ "message": "Potwierdź logowanie w aplikacji uwierzytelniającej lub wpisz jednorazowy kod."
},
"passcode": {
"message": "Kod"
@@ -4373,7 +4354,7 @@
"message": "serwer"
},
"hostedAt": {
- "message": "hostowany w"
+ "message": "serwer"
},
"useDeviceOrHardwareKey": {
"message": "Użyj urządzenia lub klucza sprzętowego"
@@ -4398,7 +4379,7 @@
"description": "Label indicating the most common import formats"
},
"uriMatchDefaultStrategyHint": {
- "message": "Wykrywanie URI polega na tym, jak Bitwarden identyfikuje sugestie autouzupełniania.",
+ "message": "Wykrywanie dopasowania to sposób, w jaki Bitwarden identyfikuje sugestie autouzupełniania.",
"description": "Explains to the user that URI match detection determines how Bitwarden suggests autofill options, and clarifies that this default strategy applies when no specific match detection is set for a login item."
},
"regExAdvancedOptionWarning": {
@@ -5044,7 +5025,7 @@
"message": "Element zostanie przeniesiony do organizacji. Nie będziesz już właścicielem elementu."
},
"personalItemsTransferWarningPlural": {
- "message": "$PERSONAL_ITEMS_COUNT$ elementów zostanie trwale przeniesionych do wybranej organizacji. Nie będziesz już posiadać tych elementów.",
+ "message": "Nie będziesz już właścicielem $PERSONAL_ITEMS_COUNT$ elementów przeniesionych do organizacji.",
"placeholders": {
"personal_items_count": {
"content": "$1",
@@ -5062,7 +5043,7 @@
}
},
"personalItemsWithOrgTransferWarningPlural": {
- "message": "$PERSONAL_ITEMS_COUNT$ elementy zostaną trwale przeniesione do $ORG$. Nie będziesz już posiadać tych elementów.",
+ "message": "Nie będziesz już właścicielem $PERSONAL_ITEMS_COUNT$ elementów przeniesionych do organizacji $ORG$.",
"placeholders": {
"personal_items_count": {
"content": "$1",
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly nie jest obsługiwany w przeglądarce lub jest wyłączony. WebAssembly jest wymagany do korzystania z aplikacji Bitwarden.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Pokaż więcej"
+ },
+ "showLess": {
+ "message": "Pokaż mniej"
}
}
diff --git a/apps/browser/src/_locales/pt_BR/messages.json b/apps/browser/src/_locales/pt_BR/messages.json
index 46fbb9beca3..ac5afdc9fce 100644
--- a/apps/browser/src/_locales/pt_BR/messages.json
+++ b/apps/browser/src/_locales/pt_BR/messages.json
@@ -1935,7 +1935,7 @@
"message": "Chave SSH"
},
"typeNote": {
- "message": "Note"
+ "message": "Nota"
},
"newItemHeader": {
"message": "Nova $TYPE$",
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -3804,11 +3785,11 @@
"message": "Trust user"
},
"sendsTitleNoItems": {
- "message": "Send sensitive information safely",
+ "message": "Envie informações sensíveis com segurança",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendsBodyNoItems": {
- "message": "Share files and data securely with anyone, on any platform. Your information will remain end-to-end encrypted while limiting exposure.",
+ "message": "Compartilhe arquivos e dados com segurança, com qualquer pessoa e em qualquer plataforma. Suas informações ficarão sempre criptografadas de ponta a ponta, garantindo exposição mínima.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"inputRequired": {
@@ -4748,25 +4729,25 @@
}
},
"downloadBitwarden": {
- "message": "Download Bitwarden"
+ "message": "Baixar o Bitwarden"
},
"downloadBitwardenOnAllDevices": {
- "message": "Download Bitwarden on all devices"
+ "message": "Baixar o Bitwarden em todos os dispositivos"
},
"getTheMobileApp": {
- "message": "Get the mobile app"
+ "message": "Baixar o aplicativo para dispositivos móveis"
},
"getTheMobileAppDesc": {
- "message": "Access your passwords on the go with the Bitwarden mobile app."
+ "message": "Acesse as suas senhas em qualquer lugar com o aplicativo móvel Bitwarden."
},
"getTheDesktopApp": {
"message": "Get the desktop app"
},
"getTheDesktopAppDesc": {
- "message": "Access your vault without a browser, then set up unlock with biometrics to expedite unlocking in both the desktop app and browser extension."
+ "message": "Acesse o seu cofre sem um navegador e, em seguida, configure o desbloqueio com dados biométricos para facilitar o desbloqueio tanto no aplicativo desktop quanto na extensão do navegador."
},
"downloadFromBitwardenNow": {
- "message": "Download from bitwarden.com now"
+ "message": "Baixar em bitwarden.com agora"
},
"getItOnGooglePlay": {
"message": "Get it on Google Play"
@@ -5464,7 +5445,7 @@
"message": "Alterar senhas vulneráveis"
},
"settingsVaultOptions": {
- "message": "Vault options"
+ "message": "Opções do cofre"
},
"emptyVaultDescription": {
"message": "The vault protects more than just your passwords. Store secure logins, IDs, cards and notes securely here."
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/pt_PT/messages.json b/apps/browser/src/_locales/pt_PT/messages.json
index 3cd813847d1..d3ce5ec3e48 100644
--- a/apps/browser/src/_locales/pt_PT/messages.json
+++ b/apps/browser/src/_locales/pt_PT/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Este pedido já não é válido."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Está a tentar aceder à sua conta?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Início de sessão confirmado para $EMAIL$ no $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Recusou uma tentativa de início de sessão de outro dispositivo. Se foi realmente o caso, tente iniciar sessão com o dispositivo novamente."
- },
"loginRequestHasAlreadyExpired": {
"message": "O pedido de início de sessão já expirou."
},
@@ -3747,7 +3728,7 @@
"description": "European Union"
},
"accessDenied": {
- "message": "Acesso negado. Não tem permissão para visualizar esta página."
+ "message": "Acesso negado. Não tem permissão para ver esta página."
},
"general": {
"message": "Geral"
@@ -4402,7 +4383,7 @@
"description": "Explains to the user that URI match detection determines how Bitwarden suggests autofill options, and clarifies that this default strategy applies when no specific match detection is set for a login item."
},
"regExAdvancedOptionWarning": {
- "message": "A \"expressão regular\" é uma opção avançada com um risco acrescido de exposição de credenciais.",
+ "message": "A \"Expressão regular\" é uma opção avançada com um risco acrescido de exposição de credenciais.",
"description": "Content for dialog which warns a user when selecting 'regular expression' matching strategy as a cipher match strategy"
},
"startsWithAdvancedOptionWarning": {
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "O WebAssembly não é suportado no seu navegador ou não está ativado. O WebAssembly é necessário para utilizar a app Bitwarden.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Mostrar mais"
+ },
+ "showLess": {
+ "message": "Mostrar menos"
}
}
diff --git a/apps/browser/src/_locales/ro/messages.json b/apps/browser/src/_locales/ro/messages.json
index 13fe8aa9482..741b491da13 100644
--- a/apps/browser/src/_locales/ro/messages.json
+++ b/apps/browser/src/_locales/ro/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/ru/messages.json b/apps/browser/src/_locales/ru/messages.json
index a5a6809a059..88fa89ac73e 100644
--- a/apps/browser/src/_locales/ru/messages.json
+++ b/apps/browser/src/_locales/ru/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Этот запрос больше не действителен."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Вы пытаетесь получить доступ к своему аккаунту?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Вход подтвержден для $EMAIL$ на $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Вы отклонили попытку авторизации с другого устройства. Если это действительно были вы, попробуйте авторизоваться с этого устройства еще раз."
- },
"loginRequestHasAlreadyExpired": {
"message": "Запрос на вход истек."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly не поддерживается вашим браузером или не включен. WebAssembly необходим для использования приложения Bitwarden.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Больше"
+ },
+ "showLess": {
+ "message": "Меньше"
}
}
diff --git a/apps/browser/src/_locales/si/messages.json b/apps/browser/src/_locales/si/messages.json
index 7bc0ba2694a..dd2df6f309c 100644
--- a/apps/browser/src/_locales/si/messages.json
+++ b/apps/browser/src/_locales/si/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/sk/messages.json b/apps/browser/src/_locales/sk/messages.json
index 28a687be339..e12a0c97ac4 100644
--- a/apps/browser/src/_locales/sk/messages.json
+++ b/apps/browser/src/_locales/sk/messages.json
@@ -216,7 +216,7 @@
"description": "Aria label for the heading displayed the inline menu for totp code autofill"
},
"generatePasswordCopied": {
- "message": "Vygenerovať heslo (skopírované)"
+ "message": "Vygenerovať heslo (+skopírovať)"
},
"copyElementIdentifier": {
"message": "Kopírovať názov vlastného poľa"
@@ -979,7 +979,7 @@
"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": {
- "message": "Pridaná položka"
+ "message": "Položka bola pridaná"
},
"editedItem": {
"message": "Položka upravená"
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Táto žiadosť už nie je platná."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Snažíte sa získať prístup k svojmu účtu?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Potvrdené prihlásenie pre $EMAIL$ na $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Odmietli ste pokus o prihlásenie z iného zariadenia. Ak ste to boli naozaj vy, skúste sa prihlásiť pomocou zariadenia znova."
- },
"loginRequestHasAlreadyExpired": {
"message": "Platnosť žiadosti o prihlásenie už vypršala."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly nie je vo vašom prehliadači podporovaný alebo nie je povolený. Na používanie Bitwardenu sa vyžaduje WebAssembly.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Zobraziť viac"
+ },
+ "showLess": {
+ "message": "Zobraziť menej"
}
}
diff --git a/apps/browser/src/_locales/sl/messages.json b/apps/browser/src/_locales/sl/messages.json
index 2db40266cd7..3af24b85889 100644
--- a/apps/browser/src/_locales/sl/messages.json
+++ b/apps/browser/src/_locales/sl/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/sr/messages.json b/apps/browser/src/_locales/sr/messages.json
index 3ee18612553..12d0c5b015e 100644
--- a/apps/browser/src/_locales/sr/messages.json
+++ b/apps/browser/src/_locales/sr/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Овај захтев више није важећи."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Да ли покушавате да приступите вашем налогу?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Пријава потврђена за $EMAIL$ на $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Одбили сте покушај пријаве са другог уређаја. Ако сте то заиста били ви, покушајте поново да се пријавите помоћу уређаја."
- },
"loginRequestHasAlreadyExpired": {
"message": "Захтев за пријаву је већ истекао."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly није подржано или није уапљено на вашем прегледачу. WebAssembly је потребно да би се користила апликација Bitwarden.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/sv/messages.json b/apps/browser/src/_locales/sv/messages.json
index 49d2765bf6e..1174b6ac077 100644
--- a/apps/browser/src/_locales/sv/messages.json
+++ b/apps/browser/src/_locales/sv/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Denna begäran är inte längre giltig."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Försöker du komma åt ditt konto?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Inloggning bekräftad för $EMAIL$ på $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Du har avvisat ett inloggningsförsök från en annan enhet. Om det verkligen var du, försök logga in med enheten igen."
- },
"loginRequestHasAlreadyExpired": {
"message": "Inloggningsbegäran har redan gått ut."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly stöds inte av din webbläsare eller är inte aktiverat. WebAssembly krävs för att använda Bitwarden-appen.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Visa mer"
+ },
+ "showLess": {
+ "message": "Visa mindre"
}
}
diff --git a/apps/browser/src/_locales/te/messages.json b/apps/browser/src/_locales/te/messages.json
index f4c58318bc1..d076ef01ef2 100644
--- a/apps/browser/src/_locales/te/messages.json
+++ b/apps/browser/src/_locales/te/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/th/messages.json b/apps/browser/src/_locales/th/messages.json
index fd92c71c200..2cea91a424e 100644
--- a/apps/browser/src/_locales/th/messages.json
+++ b/apps/browser/src/_locales/th/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/_locales/tr/messages.json b/apps/browser/src/_locales/tr/messages.json
index 83265497ddf..22a083959a9 100644
--- a/apps/browser/src/_locales/tr/messages.json
+++ b/apps/browser/src/_locales/tr/messages.json
@@ -84,7 +84,7 @@
"message": "Ana parola ipucu (isteğe bağlı)"
},
"passwordStrengthScore": {
- "message": "Parola Güvenlik Puanı $SCORE$",
+ "message": "Parola gücü puanı: $SCORE$",
"placeholders": {
"score": {
"content": "$1",
@@ -982,7 +982,7 @@
"message": "Kayıt eklendi"
},
"editedItem": {
- "message": "Kayıt kaydedildi"
+ "message": "Hesap kaydedildi"
},
"deleteItemConfirmation": {
"message": "Çöp kutusuna göndermek istediğinizden emin misiniz?"
@@ -2500,7 +2500,7 @@
"message": "Bir kuruluş ilkesi, kayıtları kişisel kasanıza içe aktarmayı engelledi."
},
"restrictCardTypeImport": {
- "message": "Cannot import card item types"
+ "message": "Kart öge türleri içe aktarılamıyor"
},
"restrictCardTypeImportDesc": {
"message": "A policy set by 1 or more organizations prevents you from importing cards to your vaults."
@@ -2625,7 +2625,7 @@
"message": "Ayarlarınızı güncelleyin, böylece parolalarınızı hızlıca otomatik doldurabilir ve yeni parolalar oluşturabilirsiniz"
},
"reviewAtRiskLogins": {
- "message": "Risk altındaki girişleri inceleyin"
+ "message": "Risk altındaki hesapları inceleyin"
},
"reviewAtRiskPasswords": {
"message": "Risk altındaki parolaları inceleyin"
@@ -3392,7 +3392,7 @@
"message": "Sunucu sürümü"
},
"selfHostedServer": {
- "message": "şirket içinde barındırılan"
+ "message": "şirket içi"
},
"thirdParty": {
"message": "Üçüncü taraf"
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Bu istek artık geçerli değil."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Hesabınıza erişmeye mi çalışıyorsunuz?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "$DEVICE$ cihazında $EMAIL$ girişi onaylandı",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Başka bir cihazdan giriş isteğini reddettiniz. Yanlışlıkla yaptıysanız aynı cihazdan yeniden giriş yapmayı deneyin."
- },
"loginRequestHasAlreadyExpired": {
"message": "Giriş isteğinin süresi doldu."
},
@@ -4009,7 +3990,7 @@
"description": "Button text to display within inline menu when there are no matching items on a login field"
},
"addNewLoginItemAria": {
- "message": "Add new vault login item, opens in a new window",
+ "message": "Yeni kasa giriş ögesini yeni bir açılır pencerede ekleyin",
"description": "Screen reader text (aria-label) for new login button within inline menu"
},
"newCard": {
@@ -4017,7 +3998,7 @@
"description": "Button text to display within inline menu when there are no matching items on a credit card field"
},
"addNewCardItemAria": {
- "message": "Add new vault card item, opens in a new window",
+ "message": "Yeni kasa kartı ögesini yeni bir açılır pencerede ekleyin",
"description": "Screen reader text (aria-label) for new card button within inline menu"
},
"newIdentity": {
@@ -4204,7 +4185,7 @@
"message": "Geçiş anahtarı"
},
"accessing": {
- "message": "Erişilen konum:"
+ "message": "Erişilen konum"
},
"loggedInExclamation": {
"message": "Giriş yapıldı!"
@@ -4398,7 +4379,7 @@
"description": "Label indicating the most common import formats"
},
"uriMatchDefaultStrategyHint": {
- "message": "URI match detection is how Bitwarden identifies autofill suggestions.",
+ "message": "URl eşleştirme tespiti, Bitwarden'ın otomatik doldurma önerilerini nasıl tanımladığıdır.",
"description": "Explains to the user that URI match detection determines how Bitwarden suggests autofill options, and clarifies that this default strategy applies when no specific match detection is set for a login item."
},
"regExAdvancedOptionWarning": {
@@ -4410,7 +4391,7 @@
"description": "Content for dialog which warns a user when selecting 'starts with' matching strategy as a cipher match strategy"
},
"uriMatchWarningDialogLink": {
- "message": "More about match detection",
+ "message": "Eşleşme tespiti hakkında daha fazla bilgi",
"description": "Link to match detection docs on warning dialog for advance match strategy"
},
"uriAdvancedOption": {
@@ -5209,22 +5190,22 @@
"message": "Bu kaydı düzenleme yetkisine sahip değilsiniz"
},
"biometricsStatusHelptextUnlockNeeded": {
- "message": "Biometric unlock is unavailable because PIN or password unlock is required first."
+ "message": "Önce PIN veya parola gerektiğinden biyometrik kilit açılamıyor."
},
"biometricsStatusHelptextHardwareUnavailable": {
- "message": "Biometric unlock is currently unavailable."
+ "message": "Biyometrik kilit açma şu anda kullanılamıyor."
},
"biometricsStatusHelptextAutoSetupNeeded": {
- "message": "Biometric unlock is unavailable due to misconfigured system files."
+ "message": "Biyometrik kilit açma, yanlış yapılandırılmış sistem dosyaları nedeniyle kullanılamıyor."
},
"biometricsStatusHelptextManualSetupNeeded": {
- "message": "Biometric unlock is unavailable due to misconfigured system files."
+ "message": "Biyometrik kilit açma, yanlış yapılandırılmış sistem dosyaları nedeniyle kullanılamıyor."
},
"biometricsStatusHelptextDesktopDisconnected": {
- "message": "Biometric unlock is unavailable because the Bitwarden desktop app is closed."
+ "message": "Bitwarden masaüstü uygulaması kapalı olduğu için biyometrik kilit açılamıyor."
},
"biometricsStatusHelptextNotEnabledInDesktop": {
- "message": "Biometric unlock is unavailable because it is not enabled for $EMAIL$ in the Bitwarden desktop app.",
+ "message": "Biyometrik kilit açma, Bitwarden masaüstü uygulamasında $EMAIL$ etkin olmadığı için kullanılamıyor.",
"placeholders": {
"email": {
"content": "$1",
@@ -5233,7 +5214,7 @@
}
},
"biometricsStatusHelptextUnavailableReasonUnknown": {
- "message": "Biometric unlock is currently unavailable for an unknown reason."
+ "message": "Biyometrik kilit açma şu anda bilinmeyen bir nedenden dolayı kullanılamıyor."
},
"unlockVault": {
"message": "Kasanızın kilidini saniyeler içinde açın"
@@ -5560,20 +5541,20 @@
"message": "Developer-friendly SSH access"
},
"newSshNudgeBodyOne": {
- "message": "Store your keys and connect with the SSH agent for fast, encrypted authentication.",
+ "message": "Anahtarlarınızı saklayın ve hızlı, şifreli kimlik doğrulama için SSH aracısıyla bağlantı kurun.",
"description": "Two part message",
"example": "Store your keys and connect with the SSH agent for fast, encrypted authentication. Learn more about SSH agent"
},
"newSshNudgeBodyTwo": {
- "message": "Learn more about SSH agent",
+ "message": "SSH agent hakkında daha fazla bilgi edinin",
"description": "Two part message",
"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": "Hızlı bir şekilde parolalar oluşturun"
},
"generatorNudgeBodyOne": {
- "message": "Easily create strong and unique passwords by clicking on",
+ "message": "Tıklayarak güçlü ve benzersiz parolaları kolayca oluşturun",
"description": "Two part message",
"example": "Easily create strong and unique passwords by clicking on {icon} to help you keep your logins secure."
},
@@ -5583,7 +5564,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": "Güvenli oturumlar açmaya yardımcı olmak için Parola Oluştur düğmesine tıklayarak güçlü ve benzersiz parolalar oluşturun.",
"description": "Aria label for the body content of the generator nudge"
},
"noPermissionsViewPage": {
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "Tarayıcınızda WebAssembly desteklenmiyor veya etkinleştirilmemişt. Bitwarden uygulamasını kullanmak için WebAssembly gereklidir.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Daha fazla göster"
+ },
+ "showLess": {
+ "message": "Daha az göster"
}
}
diff --git a/apps/browser/src/_locales/uk/messages.json b/apps/browser/src/_locales/uk/messages.json
index a03440efe02..537a9bfd5cf 100644
--- a/apps/browser/src/_locales/uk/messages.json
+++ b/apps/browser/src/_locales/uk/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Цей запит більше недійсний."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Ви намагаєтесь отримати доступ до свого облікового запису?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Підтверджено вхід для $EMAIL$ на $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Ви відхилили спробу входу з іншого пристрою. Якщо це були дійсно ви, спробуйте ввійти з пристроєм знову."
- },
"loginRequestHasAlreadyExpired": {
"message": "Термін дії запиту на вхід завершився."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly не підтримується або не ввімкнено у вашому браузері. WebAssembly є обов'язковою вимогою для програми Bitwarden.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Розгорнути"
+ },
+ "showLess": {
+ "message": "Згорнути"
}
}
diff --git a/apps/browser/src/_locales/vi/messages.json b/apps/browser/src/_locales/vi/messages.json
index f25cc9c51dc..7a596d7c23d 100644
--- a/apps/browser/src/_locales/vi/messages.json
+++ b/apps/browser/src/_locales/vi/messages.json
@@ -1836,7 +1836,7 @@
"message": "số thẻ"
},
"ex": {
- "message": "Ví dụ:"
+ "message": "ví dụ."
},
"title": {
"message": "Tiêu đề"
@@ -2458,7 +2458,7 @@
"message": "Nhận dạng sinh trắc học không được hỗ trợ"
},
"biometricsNotSupportedDesc": {
- "message": "Nhận dạng sinh trắc học trên trình duyệt không được hỗ trợ trên thiết bị này"
+ "message": "Nhận dạng sinh trắc học trên trình duyệt không được hỗ trợ trên thiết bị này."
},
"biometricsNotUnlockedTitle": {
"message": "Người dùng đã khoá hoặc đã đăng xuất"
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "Yêu cầu này không còn hiệu lực."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Bạn đang cố gắng truy cập tài khoản của mình?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Đã xác nhận đăng nhập cho $EMAIL$ trên $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "Bạn đã từ chối một lần đăng nhập từ thiết bị khác. Nếu thực sự là bạn, hãy thử đăng nhập lại bằng thiết bị đó."
- },
"loginRequestHasAlreadyExpired": {
"message": "Yêu cầu đăng nhập đã hết hạn."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly không được hỗ trợ trên trình duyệt của bạn hoặc chưa được kích hoạt. WebAssembly là yêu cầu bắt buộc để sử dụng ứng dụng Bitwarden.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Xem thêm"
+ },
+ "showLess": {
+ "message": "Thu gọn"
}
}
diff --git a/apps/browser/src/_locales/zh_CN/messages.json b/apps/browser/src/_locales/zh_CN/messages.json
index 2382e6fc971..fff87a949ce 100644
--- a/apps/browser/src/_locales/zh_CN/messages.json
+++ b/apps/browser/src/_locales/zh_CN/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "此请求已失效。"
},
- "areYouTryingToAccessYourAccount": {
- "message": "您正在尝试访问您的账户吗?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "已确认 $EMAIL$ 在 $DEVICE$ 上的登录",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "您拒绝了一个来自其他设备的登录尝试。若确实是您本人,请尝试再次发起设备登录。"
- },
"loginRequestHasAlreadyExpired": {
"message": "登录请求已过期。"
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "您的浏览器不支持 WebAssembly 或 WebAssembly 未启用。使用 Bitwarden App 需要 WebAssembly。",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "显示更多"
+ },
+ "showLess": {
+ "message": "显示更少"
}
}
diff --git a/apps/browser/src/_locales/zh_TW/messages.json b/apps/browser/src/_locales/zh_TW/messages.json
index d2776cb227d..e8873d74e92 100644
--- a/apps/browser/src/_locales/zh_TW/messages.json
+++ b/apps/browser/src/_locales/zh_TW/messages.json
@@ -3657,25 +3657,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestHasAlreadyExpired": {
"message": "Login request has already expired."
},
@@ -5592,5 +5573,11 @@
"wasmNotSupported": {
"message": "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app.",
"description": "'WebAssembly' is a technical term and should not be translated."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
}
diff --git a/apps/browser/src/auth/popup/account-switching/current-account.component.html b/apps/browser/src/auth/popup/account-switching/current-account.component.html
index 09342c58756..c16abdadf29 100644
--- a/apps/browser/src/auth/popup/account-switching/current-account.component.html
+++ b/apps/browser/src/auth/popup/account-switching/current-account.component.html
@@ -2,7 +2,7 @@
-
-
- {{ "moreFromBitwarden" | i18n }}
-
-
-
{{ "rateExtension" | i18n }}
diff --git a/apps/browser/src/tools/popup/settings/about-page/about-page-v2.component.ts b/apps/browser/src/tools/popup/settings/about-page/about-page-v2.component.ts
index 8a76290eff1..67212dc5c4a 100644
--- a/apps/browser/src/tools/popup/settings/about-page/about-page-v2.component.ts
+++ b/apps/browser/src/tools/popup/settings/about-page/about-page-v2.component.ts
@@ -5,8 +5,6 @@ import { firstValueFrom } from "rxjs";
import { JslibModule } from "@bitwarden/angular/jslib.module";
import { DeviceType } from "@bitwarden/common/enums";
-import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
-import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service";
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
import { DialogService, ItemModule } from "@bitwarden/components";
@@ -48,17 +46,12 @@ export class AboutPageV2Component {
private dialogService: DialogService,
private environmentService: EnvironmentService,
private platformUtilsService: PlatformUtilsService,
- private configService: ConfigService,
) {}
about() {
this.dialogService.open(AboutDialogComponent);
}
- protected isNudgeFeatureEnabled$ = this.configService.getFeatureFlag$(
- FeatureFlag.PM8851_BrowserOnboardingNudge,
- );
-
async launchHelp() {
const confirmed = await this.dialogService.openSimpleDialog({
title: { key: "continueToHelpCenter" },
diff --git a/apps/browser/src/tools/popup/settings/settings-v2.component.html b/apps/browser/src/tools/popup/settings/settings-v2.component.html
index 0b2e84712a4..a12c5fe005f 100644
--- a/apps/browser/src/tools/popup/settings/settings-v2.component.html
+++ b/apps/browser/src/tools/popup/settings/settings-v2.component.html
@@ -76,7 +76,7 @@
-
+
Weak -> Good -> Strong"
},
"good": {
- "message": "Good",
+ "message": "Tốt",
"description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weak": {
@@ -4760,22 +4741,22 @@
"description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong"
},
"weakMasterPassword": {
- "message": "Weak master password"
+ "message": "Mật khẩu chính yếu"
},
"weakMasterPasswordDesc": {
- "message": "Weak password identified. Use a strong password to protect your account. Are you sure you want to use a weak password?"
+ "message": "Phát hiện mật khẩu yếu. Hãy sử dụng mật khẩu mạnh để bảo vệ tài khoản của bạn. Bạn có chắc muốn sử dụng mật khẩu yếu này không?"
},
"rotateAccountEncKey": {
- "message": "Also rotate my account's encryption key"
+ "message": "Cũng xoay khóa mã hóa tài khoản của tôi"
},
"rotateEncKeyTitle": {
- "message": "Rotate encryption key"
+ "message": "Xoay khóa mã hóa"
},
"rotateEncKeyConfirmation": {
- "message": "Are you sure you want to rotate your account's encryption key?"
+ "message": "Bạn có chắc chắn muốn xoay khóa mã hóa của tài khoản mình không?"
},
"attachmentsNeedFix": {
- "message": "This item has old file attachments that need to be fixed."
+ "message": "Mục này có các tệp đính kèm cũ cần được sửa."
},
"attachmentFixDescription": {
"message": "Tệp đính kèm này sử dụng phương thức mã hóa đã lỗi thời. Chọn 'Sửa' để tải xuống, mã hóa lại và tải lên lại tệp đính kèm."
@@ -5000,10 +4981,10 @@
"message": "Mục đã được khôi phục"
},
"restoredItems": {
- "message": "Items restored"
+ "message": "Các mục đã được khôi phục"
},
"restoredItemId": {
- "message": "Item $ID$ restored",
+ "message": "Mục $ID$ đã được khôi phục",
"placeholders": {
"id": {
"content": "$1",
@@ -5012,70 +4993,70 @@
}
},
"vaultTimeoutLogOutConfirmation": {
- "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?"
+ "message": "Đăng xuất sẽ xóa toàn bộ quyền truy cập vào kho của bạn và yêu cầu xác thực trực tuyến sau khi hết thời gian chờ. Bạn có chắc chắn muốn sử dụng cài đặt này không?"
},
"vaultTimeoutLogOutConfirmationTitle": {
"message": "Xác nhận hành động khi hết thời gian mở kho"
},
"hidePasswords": {
- "message": "Hide passwords"
+ "message": "Ẩn mật khẩu"
},
"countryPostalCodeRequiredDesc": {
- "message": "We require this information for calculating sales tax and financial reporting only."
+ "message": "Chúng tôi chỉ yêu cầu thông tin này để tính thuế bán hàng và báo cáo tài chính."
},
"includeVAT": {
- "message": "Include VAT/GST Information (optional)"
+ "message": "Bao gồm thông tin VAT/GST (tùy chọn)"
},
"taxIdNumber": {
- "message": "VAT/GST Tax ID"
+ "message": "Mã số thuế VAT/GST"
},
"taxInfoUpdated": {
- "message": "Tax information updated."
+ "message": "Thông tin thuế đã được cập nhật."
},
"setMasterPassword": {
"message": "Đặt mật khẩu chính"
},
"identifier": {
- "message": "Identifier"
+ "message": "Định danh"
},
"organizationIdentifier": {
- "message": "Organization identifier"
+ "message": "Mã định danh tổ chức"
},
"ssoLogInWithOrgIdentifier": {
- "message": "Log in using your organization's single sign-on portal. Please enter your organization's SSO identifier to begin."
+ "message": "Đăng nhập bằng cổng đăng nhập một lần của tổ chức bạn. Vui lòng nhập mã định danh SSO của tổ chức để bắt đầu."
},
"singleSignOnEnterOrgIdentifier": {
- "message": "Enter your organization's SSO identifier to begin"
+ "message": "Nhập mã định danh SSO của tổ chức bạn để bắt đầu"
},
"singleSignOnEnterOrgIdentifierText": {
- "message": "To log in with your SSO provider, enter your organization's SSO identifier to begin. You may need to enter this SSO identifier when you log in from a new device."
+ "message": "Để đăng nhập bằng nhà cung cấp SSO của bạn, hãy nhập mã định danh SSO của tổ chức để bắt đầu. Bạn có thể cần nhập mã định danh SSO này khi đăng nhập từ một thiết bị mới."
},
"enterpriseSingleSignOn": {
- "message": "Enterprise single sign-on"
+ "message": "Đăng nhập một lần cho doanh nghiệp"
},
"ssoHandOff": {
- "message": "You may now close this tab and continue in the extension."
+ "message": "Bạn có thể đóng tab này và tiếp tục trong tiện ích mở rộng."
},
"youSuccessfullyLoggedIn": {
- "message": "You successfully logged in"
+ "message": "Bạn đã đăng nhập thành công"
},
"thisWindowWillCloseIn5Seconds": {
- "message": "This window will automatically close in 5 seconds"
+ "message": "Cửa sổ này sẽ tự động đóng trong 5 giây"
},
"youMayCloseThisWindow": {
- "message": "You may close this window"
+ "message": "Bạn có thể đóng cửa sổ này"
},
"includeAllTeamsFeatures": {
- "message": "All Teams features, plus:"
+ "message": "Tất cả tính năng của Nhóm, cộng thêm:"
},
"includeAllTeamsStarterFeatures": {
- "message": "All Teams Starter features, plus:"
+ "message": "Tất cả tính năng của Nhóm Starter, cộng thêm:"
},
"chooseMonthlyOrAnnualBilling": {
- "message": "Choose monthly or annual billing"
+ "message": "Chọn thanh toán theo tháng hoặc năm"
},
"abilityToAddMoreThanNMembers": {
- "message": "Ability to add more than $COUNT$ members",
+ "message": "Có thể thêm hơn $COUNT$ thành viên",
"placeholders": {
"count": {
"content": "$1",
@@ -5084,75 +5065,75 @@
}
},
"includeSsoAuthentication": {
- "message": "SSO Authentication via SAML2.0 and OpenID Connect"
+ "message": "Xác thực SSO qua SAML2.0 và OpenID Connect"
},
"includeEnterprisePolicies": {
- "message": "Enterprise policies"
+ "message": "Chính sách doanh nghiệp"
},
"ssoValidationFailed": {
- "message": "SSO validation failed"
+ "message": "Xác thực SSO thất bại"
},
"ssoIdentifierRequired": {
- "message": "Organization SSO identifier is required."
+ "message": "Yêu cầu mã định danh SSO của tổ chức."
},
"ssoIdentifier": {
- "message": "SSO identifier"
+ "message": "Mã định danh SSO"
},
"ssoIdentifierHintPartOne": {
- "message": "Provide this ID to your members to login with SSO. To bypass this step, set up ",
+ "message": "Cung cấp ID này cho các thành viên của bạn để đăng nhập bằng SSO. Để bỏ qua bước này, hãy thiết lập ",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Provide this ID to your members to login with SSO. To bypass this step, set up Domain verification'"
},
"unlinkSso": {
- "message": "Unlink SSO"
+ "message": "Hủy liên kết SSO"
},
"unlinkSsoConfirmation": {
- "message": "Are you sure you want to unlink SSO for this organization?"
+ "message": "Bạn có chắc chắn muốn hủy liên kết SSO cho tổ chức này không?"
},
"linkSso": {
- "message": "Link SSO"
+ "message": "Liên kết SSO"
},
"singleOrg": {
- "message": "Single organization"
+ "message": "Một tổ chức"
},
"singleOrgDesc": {
- "message": "Restrict members from joining other organizations."
+ "message": "Hạn chế thành viên tham gia các tổ chức khác."
},
"singleOrgPolicyDesc": {
- "message": "Restrict members from joining other organizations. This policy is required for organizations that have enabled domain verification."
+ "message": "Hạn chế thành viên tham gia các tổ chức khác. Chính sách này là bắt buộc đối với các tổ chức đã bật xác minh tên miền."
},
"singleOrgBlockCreateMessage": {
- "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account."
+ "message": "Tổ chức hiện tại của bạn có chính sách không cho phép bạn tham gia nhiều hơn một tổ chức. Vui lòng liên hệ với quản trị viên tổ chức của bạn hoặc đăng ký bằng một tài khoản Bitwarden khác."
},
"singleOrgPolicyMemberWarning": {
- "message": "Non-compliant members will be placed in revoked status until they leave all other organizations. Administrators are exempt and can restore members once compliance is met."
+ "message": "Các thành viên không tuân thủ sẽ bị đưa vào trạng thái thu hồi cho đến khi họ rời khỏi tất cả các tổ chức khác. Quản trị viên được miễn trừ và có thể khôi phục thành viên khi đã tuân thủ."
},
"requireSso": {
- "message": "Require single sign-on authentication"
+ "message": "Yêu cầu xác thực đăng nhập một lần"
},
"requireSsoPolicyDesc": {
- "message": "Require members to log in with the Enterprise single sign-on method."
+ "message": "Yêu cầu thành viên đăng nhập bằng phương thức đăng nhập một lần cho doanh nghiệp."
},
"prerequisite": {
- "message": "Prerequisite"
+ "message": "Điều kiện tiên quyết"
},
"requireSsoPolicyReq": {
- "message": "The single organization Enterprise policy must be turned on before activating this policy."
+ "message": "Chính sách Doanh nghiệp cho một tổ chức phải được bật trước khi kích hoạt chính sách này."
},
"requireSsoPolicyReqError": {
- "message": "Single organization policy not set up."
+ "message": "Chính sách một tổ chức chưa được thiết lập."
},
"requireSsoExemption": {
- "message": "Organization owners and admins are exempt from this policy's enforcement."
+ "message": "Chủ sở hữu và quản trị viên tổ chức được miễn áp dụng chính sách này."
},
"limitSendViews": {
- "message": "Limit views"
+ "message": "Giới hạn lượt xem"
},
"limitSendViewsHint": {
- "message": "No one can view this Send after the limit is reached.",
+ "message": "Không ai có thể xem Send này sau khi đạt giới hạn.",
"description": "Displayed under the limit views field on Send"
},
"limitSendViewsCount": {
- "message": "$ACCESSCOUNT$ views left",
+ "message": "Còn $ACCESSCOUNT$ lượt xem",
"description": "Displayed under the limit views field on Send",
"placeholders": {
"accessCount": {
@@ -5166,7 +5147,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendTypeTextToShare": {
- "message": "Text to share"
+ "message": "Văn bản để chia sẻ"
},
"sendTypeFile": {
"message": "Tập tin"
@@ -5175,7 +5156,7 @@
"message": "Văn bản"
},
"sendPasswordDescV3": {
- "message": "Add an optional password for recipients to access this Send.",
+ "message": "Thêm mật khẩu tùy chọn để người nhận truy cập Send này.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"createSend": {
@@ -5203,11 +5184,11 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"deleteSendPermanentConfirmation": {
- "message": "Are you sure you want to permanently delete this Send?",
+ "message": "Bạn có chắc chắn muốn xóa vĩnh viễn Send này không?",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"deletionDate": {
- "message": "Deletion date"
+ "message": "Xóa sau"
},
"deletionDateDescV2": {
"message": "Send sẽ được xóa vĩnh viễn vào ngày này.",
@@ -5284,6 +5265,14 @@
"downloadAttachments": {
"message": "Tải xuống tập tin đính kèm"
},
+ "sendAccessPasswordTitle": {
+ "message": "Nhập mật khẩu để xem Send này",
+ "description": "Title of the Send password authentication screen."
+ },
+ "sendAccessContentTitle": {
+ "message": "Xem Send",
+ "description": "Title of the Send view content screen."
+ },
"sendAccessUnavailable": {
"message": "Send mà bạn đang cố gắng truy cập không tồn tại hoặc không còn khả dụng.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -5293,7 +5282,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"noSendsInList": {
- "message": "Chưa có mục Gửi.",
+ "message": "Chưa có Send nào.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"emergencyAccess": {
@@ -5444,6 +5433,37 @@
"organizationDataOwnership": {
"message": "Thực thi quyền sở hữu dữ liệu của tổ chức"
},
+ "organizationDataOwnershipDesc": {
+ "message": "Yêu cầu tất cả các mục phải thuộc sở hữu của một tổ chức, loại bỏ tùy chọn lưu trữ mục ở cấp tài khoản.",
+ "description": "This is the policy description shown in the policy list."
+ },
+ "organizationDataOwnershipContent": {
+ "message": "Tất cả các mục sẽ thuộc sở hữu và được lưu vào tổ chức, cho phép kiểm soát, giám sát và báo cáo trên toàn tổ chức. Khi bật, một bộ sưu tập mặc định sẽ có sẵn cho mỗi thành viên để lưu trữ mục. Tìm hiểu thêm về quản lý ",
+ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'All items will be owned and saved to the organization, enabling organization-wide controls, visibility, and reporting. When turned on, a default collection be available for each member to store items. Learn more about managing the credential lifecycle.'"
+ },
+ "organizationDataOwnershipContentAnchor": {
+ "message": "vòng đời thông tin xác thực",
+ "description": "This will be used as a hyperlink"
+ },
+ "organizationDataOwnershipWarningTitle": {
+ "message": "Bạn có chắc chắn muốn tiếp tục không?"
+ },
+ "organizationDataOwnershipWarning1": {
+ "message": "sẽ vẫn có thể truy cập đối với các thành viên"
+ },
+ "organizationDataOwnershipWarning2": {
+ "message": "sẽ không được tự động chọn khi tạo mục mới"
+ },
+ "organizationDataOwnershipWarning3": {
+ "message": "không thể được quản lý từ Bảng điều khiển Quản trị cho đến khi người dùng được offboard"
+ },
+ "organizationDataOwnershipWarningContentTop": {
+ "message": "Khi tắt chính sách này, bộ sưu tập mặc định: "
+ },
+ "organizationDataOwnershipWarningContentBottom": {
+ "message": "Tìm hiểu thêm về ",
+ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about the credential lifecycle.'"
+ },
"personalOwnership": {
"message": "Xóa kho lưu trữ riêng lẻ"
},
@@ -5608,7 +5628,7 @@
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '"
},
"sendVaultCardSee": {
- "message": "see",
+ "message": "xem",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'"
},
"sendVaultCardHowItWorks": {
@@ -5620,73 +5640,73 @@
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'"
},
"developmentDevOpsAndITTeamsChooseBWSecret": {
- "message": "Development, DevOps, and IT teams choose Bitwarden Secrets Manager to securely manage and deploy their infrastructure and machine secrets."
+ "message": "Các nhóm Phát triển, DevOps và CNTT chọn Trình quản lý bí mật Bitwarden để quản lý và triển khai an toàn cơ sở hạ tầng và bí mật máy của họ."
},
"centralizeSecretsManagement": {
- "message": "Centralize secrets management."
+ "message": "Tập trung quản lý bí mật."
},
"centralizeSecretsManagementDescription": {
- "message": "Securely store and manage secrets in one location to prevent secret sprawl across your organization."
+ "message": "Lưu trữ và quản lý bí mật an toàn tại một nơi để ngăn chặn tình trạng phân tán bí mật trong toàn tổ chức."
},
"preventSecretLeaks": {
- "message": "Prevent secret leaks."
+ "message": "Ngăn chặn rò rỉ bí mật."
},
"preventSecretLeaksDescription": {
- "message": "Protect secrets with end-to-end encryption. No more hard coding secrets or sharing through .env files."
+ "message": "Bảo vệ bí mật bằng mã hóa đầu cuối. Không còn việc hard code bí mật hoặc chia sẻ qua tệp .env."
},
"enhanceDeveloperProductivity": {
- "message": "Enhance developer productivity."
+ "message": "Nâng cao năng suất của nhà phát triển."
},
"enhanceDeveloperProductivityDescription": {
- "message": "Programmatically retrieve and deploy secrets at runtime so developers can focus on what matters most, like improving code quality."
+ "message": "Truy xuất và triển khai bí mật theo lập trình khi chạy để các nhà phát triển có thể tập trung vào những việc quan trọng nhất, như cải thiện chất lượng mã."
},
"strengthenBusinessSecurity": {
- "message": "Strengthen business security."
+ "message": "Tăng cường bảo mật cho doanh nghiệp."
},
"strengthenBusinessSecurityDescription": {
- "message": "Maintain tight control over machine and human access to secrets with SSO integrations, event logs, and access rotation."
+ "message": "Duy trì kiểm soát chặt chẽ quyền truy cập bí mật của máy và con người với tích hợp SSO, nhật ký sự kiện và xoay vòng quyền truy cập."
},
"tryItNow": {
- "message": "Try it now"
+ "message": "Dùng thử ngay"
},
"sendRequest": {
- "message": "Send request"
+ "message": "Gửi yêu cầu"
},
"addANote": {
- "message": "Add a note"
+ "message": "Thêm ghi chú"
},
"bitwardenSecretsManager": {
- "message": "Bitwarden Secrets Manager"
+ "message": "Trình quản lý bí mật Bitwarden"
},
"moreProductsFromBitwarden": {
- "message": "More products from Bitwarden"
+ "message": "Các sản phẩm khác từ Bitwarden"
},
"requestAccessToSecretsManager": {
- "message": "Request access to Secrets Manager"
+ "message": "Yêu cầu quyền truy cập Trình quản lý Bí mật"
},
"youNeedApprovalFromYourAdminToTrySecretsManager": {
- "message": "You need approval from your administrator to try Secrets Manager."
+ "message": "Bạn cần được quản trị viên phê duyệt để dùng thử Trình quản lý bí mật."
},
"smAccessRequestEmailSent": {
"message": "Access request for secrets manager email sent to admins."
},
"requestAccessSMDefaultEmailContent": {
- "message": "Hi,\n\nI am requesting a subscription to Bitwarden Secrets Manager for our team. Your support would mean a great deal!\n\nBitwarden Secrets Manager is an end-to-end encrypted secrets management solution for securely storing, sharing, and deploying machine credentials like API keys, database passwords, and authentication certificates.\n\nSecrets Manager will help us to:\n\n- Improve security\n- Streamline operations\n- Prevent costly secret leaks\n\nTo request a free trial for our team, please reach out to Bitwarden.\n\nThank you for your help!"
+ "message": "Xin chào,\n\nTôi muốn đề nghị đăng ký sử dụng Trình quản lý Bí mật Bitwarden cho nhóm của chúng ta. Sự hỗ trợ của bạn sẽ rất đáng trân trọng!\n\nTrình quản lý Bí mật Bitwarden là giải pháp quản lý bí mật được mã hóa đầu cuối, giúp lưu trữ, chia sẻ và triển khai an toàn các thông tin xác thực của máy như khóa API, mật khẩu cơ sở dữ liệu và chứng chỉ xác thực.\n\nSecrets Manager sẽ giúp chúng ta:\n\n* Nâng cao bảo mật\n* Tinh giản quy trình hoạt động\n* Ngăn chặn rò rỉ bí mật tốn kém\n\nĐể yêu cầu dùng thử miễn phí cho nhóm, vui lòng liên hệ với Bitwarden.\n\nCảm ơn bạn đã hỗ trợ!"
},
"giveMembersAccess": {
- "message": "Give members access:"
+ "message": "Cấp quyền truy cập cho thành viên:"
},
"viewAndSelectTheMembers": {
- "message": "view and select the members you want to give access to Secrets Manager."
+ "message": "xem và chọn các thành viên bạn muốn cấp quyền truy cập Trình quản lý bí mật."
},
"openYourOrganizations": {
- "message": "Open your organization's"
+ "message": "Mở tổ chức của bạn"
},
"usingTheMenuSelect": {
- "message": "Using the menu, select"
+ "message": "Sử dụng menu, chọn"
},
"toGrantAccessToSelectedMembers": {
- "message": "to grant access to selected members."
+ "message": "để cấp quyền truy cập cho các thành viên đã chọn."
},
"sendVaultCardTryItNow": {
"message": "thử ngay",
@@ -5714,72 +5734,72 @@
}
},
"viewSend": {
- "message": "View Send",
+ "message": "Xem Send",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"viewSendHiddenEmailWarning": {
- "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.",
+ "message": "Người dùng Bitwarden đã tạo Send này đã chọn ẩn địa chỉ email của họ. Bạn nên đảm bảo rằng bạn tin tưởng nguồn của liên kết này trước khi sử dụng hoặc tải xuống nội dung của nó.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"expirationDateIsInvalid": {
- "message": "The expiration date provided is not valid."
+ "message": "Ngày hết hạn được cung cấp không hợp lệ."
},
"deletionDateIsInvalid": {
- "message": "The deletion date provided is not valid."
+ "message": "Ngày hết hạn được cung cấp không hợp lệ."
},
"expirationDateAndTimeRequired": {
- "message": "An expiration date and time are required."
+ "message": "Yêu cầu ngày và giờ hết hạn."
},
"deletionDateAndTimeRequired": {
- "message": "A deletion date and time are required."
+ "message": "Yêu cầu ngày và giờ xóa."
},
"dateParsingError": {
- "message": "There was an error saving your deletion and expiration dates."
+ "message": "Đã xảy ra lỗi khi lưu ngày xóa và ngày hết hạn của bạn."
},
"hideYourEmail": {
- "message": "Hide your email address from viewers."
+ "message": "Ẩn địa chỉ email của bạn khỏi người xem."
},
"webAuthnFallbackMsg": {
- "message": "To verify your 2FA please click the button below."
+ "message": "Để xác minh 2FA của bạn, vui lòng nhấn vào nút bên dưới."
},
"webAuthnAuthenticate": {
- "message": "Authenticate WebAuthn"
+ "message": "Xác thực WebAuthn"
},
"readSecurityKey": {
- "message": "Read security key"
+ "message": "Đọc khóa bảo mật"
},
"awaitingSecurityKeyInteraction": {
- "message": "Awaiting security key interaction..."
+ "message": "Đang chờ tương tác với khóa bảo mật..."
},
"webAuthnNotSupported": {
- "message": "WebAuthn is not supported in this browser."
+ "message": "Trình duyệt này không hỗ trợ WebAuthn."
},
"webAuthnSuccess": {
- "message": "WebAuthn verified successfully! You may close this tab."
+ "message": "WebAuthn đã được xác minh thành công! Bạn có thể đóng thẻ này."
},
"yourNewPasswordCannotBeTheSameAsYourCurrentPassword": {
- "message": "Your new password cannot be the same as your current password."
+ "message": "Mật khẩu mới của bạn không được trùng với mật khẩu hiện tại."
},
"hintEqualsPassword": {
- "message": "Your password hint cannot be the same as your password."
+ "message": "Gợi ý mật khẩu của bạn không được giống với mật khẩu."
},
"enrollAccountRecovery": {
- "message": "Enroll in account recovery"
+ "message": "Đăng ký khôi phục tài khoản"
},
"enrolledAccountRecovery": {
- "message": "Enrolled in account recovery"
+ "message": "Đã đăng ký khôi phục tài khoản"
},
"withdrawAccountRecovery": {
- "message": "Withdraw from account recovery"
+ "message": "Rút khỏi khôi phục tài khoản"
},
"enrollPasswordResetSuccess": {
- "message": "Enrollment success!"
+ "message": "Đăng ký thành công!"
},
"withdrawPasswordResetSuccess": {
- "message": "Withdrawal success!"
+ "message": "Rút khỏi thành công!"
},
"eventEnrollAccountRecovery": {
- "message": "User $ID$ enrolled in account recovery.",
+ "message": "Người dùng $ID$ đã đăng ký khôi phục tài khoản.",
"placeholders": {
"id": {
"content": "$1",
@@ -5788,7 +5808,7 @@
}
},
"eventWithdrawAccountRecovery": {
- "message": "User $ID$ withdrew from account recovery.",
+ "message": "Người dùng $ID$ đã rút khỏi khôi phục tài khoản.",
"placeholders": {
"id": {
"content": "$1",
@@ -5797,7 +5817,7 @@
}
},
"eventAdminPasswordReset": {
- "message": "Master password reset for user $ID$.",
+ "message": "Mật khẩu chính đã được đặt lại cho người dùng $ID$.",
"placeholders": {
"id": {
"content": "$1",
@@ -5806,7 +5826,7 @@
}
},
"eventResetSsoLink": {
- "message": "Reset SSO link for user $ID$",
+ "message": "Đặt lại liên kết SSO cho người dùng $ID$",
"placeholders": {
"id": {
"content": "$1",
@@ -5815,7 +5835,7 @@
}
},
"firstSsoLogin": {
- "message": "$ID$ logged in using Sso for the first time",
+ "message": "$ID$ đã đăng nhập bằng SSO lần đầu tiên",
"placeholders": {
"id": {
"content": "$1",
@@ -5944,7 +5964,7 @@
"message": "Đã xác nhận thành công"
},
"bulkReinviteMessage": {
- "message": "Đã mời lại thành côngvv"
+ "message": "Đã mời lại thành công"
},
"bulkRemovedMessage": {
"message": "Đã xóa thành công"
@@ -6003,68 +6023,68 @@
"message": "Tên nhà cung cấp"
},
"providerSetup": {
- "message": "Provider successfully set up"
+ "message": "Nhà cung cấp đã được thiết lập thành công"
},
"clients": {
- "message": "Clients"
+ "message": "Khách hàng"
},
"client": {
- "message": "Client",
+ "message": "Khách hàng",
"description": "This is used as a table header to describe which client application created an event log."
},
"providerAdmin": {
- "message": "Provider admin"
+ "message": "Quản trị viên nhà cung cấp"
},
"providerAdminDesc": {
- "message": "The highest access user that can manage all aspects of your Provider as well as access and manage client organizations."
+ "message": "Người dùng có quyền truy cập cao nhất có thể quản lý tất cả các khía cạnh của Nhà cung cấp của bạn cũng như truy cập và quản lý các tổ chức khách hàng."
},
"serviceUser": {
- "message": "Service user"
+ "message": "Người dùng dịch vụ"
},
"serviceUserDesc": {
- "message": "Service users can access and manage all client organizations."
+ "message": "Người dùng dịch vụ có thể truy cập và quản lý tất cả các tổ chức khách hàng."
},
"providerInviteUserDesc": {
- "message": "Invite a new user to your Provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account."
+ "message": "Mời người dùng mới vào Nhà cung cấp của bạn bằng cách nhập địa chỉ email tài khoản Bitwarden của họ bên dưới. Nếu họ chưa có tài khoản Bitwarden, sẽ được yêu cầu tạo tài khoản mới."
},
"joinProvider": {
- "message": "Join Provider"
+ "message": "Tham gia Nhà cung cấp"
},
"joinProviderDesc": {
- "message": "You've been invited to join the Provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account."
+ "message": "Bạn đã được mời tham gia Nhà cung cấp được liệt kê ở trên. Để chấp nhận lời mời, bạn cần đăng nhập hoặc tạo tài khoản Bitwarden mới."
},
"providerInviteAcceptFailed": {
- "message": "Unable to accept invitation. Ask a Provider admin to send a new invitation."
+ "message": "Không thể chấp nhận lời mời. Vui lòng yêu cầu quản trị viên Nhà cung cấp gửi lại lời mời mới."
},
"providerInviteAcceptedDesc": {
- "message": "You can access this Provider once an administrator confirms your membership. We'll send you an email when that happens."
+ "message": "Bạn có thể truy cập Nhà cung cấp này khi quản trị viên xác nhận tư cách thành viên của bạn. Chúng tôi sẽ gửi email thông báo cho bạn khi điều đó xảy ra."
},
"providerUsersNeedConfirmed": {
- "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the Provider until they are confirmed."
+ "message": "Bạn có những người dùng đã chấp nhận lời mời nhưng vẫn cần được xác nhận. Người dùng sẽ không thể truy cập Nhà cung cấp cho đến khi được xác nhận."
},
"provider": {
- "message": "Provider"
+ "message": "Nhà cung cấp"
},
"newClientOrganization": {
- "message": "New client organization"
+ "message": "Tổ chức khách hàng mới"
},
"newClientOrganizationDesc": {
- "message": "Create a new client organization that will be associated with you as the Provider. You will be able to access and manage this organization."
+ "message": "Tạo một tổ chức khách hàng mới sẽ được liên kết với bạn với vai trò Nhà cung cấp. Bạn sẽ có thể truy cập và quản lý tổ chức này."
},
"newClient": {
- "message": "New client"
+ "message": "Khách hàng mới"
},
"addExistingOrganization": {
- "message": "Add existing organization"
+ "message": "Thêm tổ chức hiện có"
},
"addNewOrganization": {
- "message": "Add new organization"
+ "message": "Thêm tổ chức mới"
},
"myProvider": {
- "message": "My Provider"
+ "message": "Nhà cung cấp của tôi"
},
"addOrganizationConfirmation": {
- "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?",
+ "message": "Bạn có chắc chắn muốn thêm $ORGANIZATION$ làm khách hàng của $PROVIDER$ không?",
"placeholders": {
"organization": {
"content": "$1",
@@ -6077,10 +6097,10 @@
}
},
"organizationJoinedProvider": {
- "message": "Organization was successfully added to the Provider"
+ "message": "Tổ chức đã được thêm thành công vào Nhà cung cấp"
},
"accessingUsingProvider": {
- "message": "Accessing organization using Provider $PROVIDER$",
+ "message": "Đang truy cập tổ chức bằng Nhà cung cấp $PROVIDER$",
"placeholders": {
"provider": {
"content": "$1",
@@ -6089,13 +6109,13 @@
}
},
"providerIsDisabled": {
- "message": "Provider suspended"
+ "message": "Nhà cung cấp đã bị tạm ngưng"
},
"providerUpdated": {
- "message": "Provider saved"
+ "message": "Nhà cung cấp đã được lưu"
},
"yourProviderIs": {
- "message": "Your Provider is $PROVIDER$. They have administrative and billing privileges for your organization.",
+ "message": "Nhà cung cấp của bạn là $PROVIDER$. Họ có quyền quản trị và thanh toán cho tổ chức của bạn.",
"placeholders": {
"provider": {
"content": "$1",
@@ -6104,7 +6124,7 @@
}
},
"detachedOrganization": {
- "message": "The organization $ORGANIZATION$ has been detached from your Provider.",
+ "message": "Tổ chức $ORGANIZATION$ đã được tách ra khỏi Nhà cung cấp của bạn.",
"placeholders": {
"organization": {
"content": "$1",
@@ -6113,70 +6133,70 @@
}
},
"detachOrganizationConfirmation": {
- "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the Provider."
+ "message": "Bạn có chắc chắn muốn tách tổ chức này không? Tổ chức sẽ tiếp tục tồn tại nhưng sẽ không còn được quản lý bởi Nhà cung cấp nữa."
},
"add": {
- "message": "Add"
+ "message": "Thêm"
},
"masterPasswordSuccessfullySet": {
- "message": "Master password successfully set"
+ "message": "Mật khẩu chính đã được thiết lập thành công"
},
"updatedMasterPassword": {
- "message": "Master password saved"
+ "message": "Mật khẩu chính đã được lưu"
},
"updateMasterPassword": {
- "message": "Update master password"
+ "message": "Cập nhật mật khẩu chính"
},
"accountRecoveryUpdateMasterPasswordSubtitle": {
- "message": "Change your master password to complete account recovery."
+ "message": "Thay đổi mật khẩu chính của bạn để hoàn tất khôi phục tài khoản."
},
"updateMasterPasswordSubtitle": {
- "message": "Your master password does not meet this organization’s requirements. Change your master password to continue."
+ "message": "Mật khẩu chính của bạn không đáp ứng yêu cầu của tổ chức này. Vui lòng thay đổi mật khẩu chính để tiếp tục."
},
"updateMasterPasswordWarning": {
- "message": "Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour."
+ "message": "Mật khẩu chính của bạn gần đây đã được quản trị viên trong tổ chức thay đổi. Để truy cập kho, bạn phải cập nhật mật khẩu chính ngay bây giờ. Việc tiếp tục sẽ đăng xuất phiên hiện tại của bạn và yêu cầu bạn đăng nhập lại. Các phiên hoạt động trên các thiết bị khác có thể vẫn tiếp tục trong tối đa một giờ."
},
"masterPasswordInvalidWarning": {
- "message": "Your master password does not meet the policy requirements of this organization. In order to join the organization, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour."
+ "message": "Mật khẩu chính của bạn không đáp ứng các yêu cầu chính sách của tổ chức này. Để tham gia tổ chức, bạn phải cập nhật mật khẩu chính ngay bây giờ. Việc tiếp tục sẽ đăng xuất phiên hiện tại của bạn và yêu cầu bạn đăng nhập lại. Các phiên hoạt động trên các thiết bị khác có thể vẫn tiếp tục trong tối đa một giờ."
},
"updateWeakMasterPasswordWarning": {
- "message": "Your master password does not meet one or more of your organization policies. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour."
+ "message": "Mật khẩu chính của bạn không đáp ứng một hoặc nhiều chính sách của tổ chức. Để truy cập kho, bạn phải cập nhật mật khẩu chính ngay bây giờ. Việc tiếp tục sẽ đăng xuất phiên hiện tại của bạn và yêu cầu bạn đăng nhập lại. Các phiên hoạt động trên các thiết bị khác có thể vẫn duy trì trong tối đa một giờ."
},
"automaticAppLogin": {
- "message": "Automatically log in users for allowed applications"
+ "message": "Tự động đăng nhập người dùng cho các ứng dụng được phép"
},
"automaticAppLoginDesc": {
- "message": "Login forms will automatically be filled and submitted for apps launched from your configured identity provider."
+ "message": "Các biểu mẫu đăng nhập sẽ tự động được điền và gửi cho các ứng dụng khởi chạy từ nhà cung cấp định danh mà bạn đã cấu hình."
},
"automaticAppLoginIdpHostLabel": {
- "message": "Identity provider host"
+ "message": "Máy chủ nhà cung cấp định danh"
},
"automaticAppLoginIdpHostDesc": {
- "message": "Enter your identity provider host URL. Enter multiple URLs by separating with a comma."
+ "message": "Nhập URL máy chủ nhà cung cấp định danh của bạn. Nhập nhiều URL bằng cách phân tách bằng dấu phẩy."
},
"tdeDisabledMasterPasswordRequired": {
- "message": "Your organization has updated your decryption options. Please set a master password to access your vault."
+ "message": "Tổ chức của bạn đã cập nhật tùy chọn giải mã. Vui lòng đặt mật khẩu chính để truy cập vào kho lưu trữ của bạn."
},
"maximumVaultTimeout": {
- "message": "Vault timeout"
+ "message": "Thời gian chờ của kho"
},
"maximumVaultTimeoutDesc": {
- "message": "Set a maximum vault timeout for members."
+ "message": "Đặt thời gian chờ tối đa cho kho dành cho các thành viên."
},
"maximumVaultTimeoutLabel": {
- "message": "Maximum vault timeout"
+ "message": "Thời gian chờ tối đa của kho"
},
"invalidMaximumVaultTimeout": {
- "message": "Invalid maximum vault timeout."
+ "message": "Thời gian chờ tối đa của kho không hợp lệ."
},
"hours": {
- "message": "Hours"
+ "message": "Giờ"
},
"minutes": {
- "message": "Minutes"
+ "message": "Phút"
},
"vaultTimeoutPolicyInEffect": {
- "message": "Your organization policies have set your maximum allowed vault timeout to $HOURS$ hour(s) and $MINUTES$ minute(s).",
+ "message": "Chính sách của tổ chức bạn đã đặt thời gian chờ tối đa của kho là $HOURS$ giờ và $MINUTES$ phút.",
"placeholders": {
"hours": {
"content": "$1",
@@ -6189,7 +6209,7 @@
}
},
"vaultTimeoutPolicyInEffect1": {
- "message": "$HOURS$ hour(s) and $MINUTES$ minute(s) maximum.",
+ "message": "Tối đa $HOURS$ giờ và $MINUTES$ phút.",
"placeholders": {
"hours": {
"content": "$1",
@@ -6270,163 +6290,163 @@
"message": "Cấu hình OpenID Connect"
},
"samlSpConfig": {
- "message": "SAML service provider configuration"
+ "message": "Cấu hình nhà cung cấp dịch vụ SAML"
},
"samlIdpConfig": {
- "message": "SAML identity provider configuration"
+ "message": "Cấu hình nhà cung cấp định danh SAML"
},
"callbackPath": {
- "message": "Callback path"
+ "message": "Đường dẫn callback"
},
"signedOutCallbackPath": {
- "message": "Signed out callback path"
+ "message": "Đường dẫn callback sau khi đăng xuất"
},
"authority": {
- "message": "Authority"
+ "message": "Cơ quan xác thực"
},
"clientId": {
- "message": "Client ID"
+ "message": "ID khách hàng"
},
"clientSecret": {
- "message": "Client secret"
+ "message": "Bí mật của khách hàng"
},
"metadataAddress": {
- "message": "Metadata address"
+ "message": "Địa chỉ siêu dữ liệu"
},
"oidcRedirectBehavior": {
- "message": "OIDC redirect behavior"
+ "message": "Hành vi chuyển hướng OIDC"
},
"getClaimsFromUserInfoEndpoint": {
- "message": "Get claims from user info endpoint"
+ "message": "Lấy thông tin xác nhận từ điểm cuối thông tin người dùng"
},
"additionalScopes": {
- "message": "Custom scopes"
+ "message": "Phạm vi tùy chỉnh"
},
"additionalUserIdClaimTypes": {
- "message": "Custom user ID claim types"
+ "message": "Các loại claim ID người dùng tùy chỉnh"
},
"additionalEmailClaimTypes": {
- "message": "Email claim types"
+ "message": "Các loại claim email"
},
"additionalNameClaimTypes": {
- "message": "Custom name claim types"
+ "message": "Các loại claim tên tùy chỉnh"
},
"acrValues": {
- "message": "Requested authentication context class reference values"
+ "message": "Các giá trị tham chiếu lớp ngữ cảnh xác thực được yêu cầu"
},
"expectedReturnAcrValue": {
- "message": "Expected \"acr\" claim value in response"
+ "message": "Giá trị claim \"acr\" mong đợi trong phản hồi"
},
"spEntityId": {
- "message": "SP entity ID"
+ "message": "ID thực thể SP"
},
"spMetadataUrl": {
- "message": "SAML 2.0 metadata URL"
+ "message": "URL siêu dữ liệu SAML 2.0"
},
"spAcsUrl": {
- "message": "Assertion consumer service (ACS) URL"
+ "message": "URL dịch vụ tiếp nhận xác nhận (ACS)"
},
"spNameIdFormat": {
- "message": "Name ID format"
+ "message": "Định dạng Name ID"
},
"spOutboundSigningAlgorithm": {
- "message": "Outbound signing algorithm"
+ "message": "Thuật toán ký gửi đi"
},
"spSigningBehavior": {
- "message": "Signing behavior"
+ "message": "Hành vi ký"
},
"spMinIncomingSigningAlgorithm": {
- "message": "Minimum incoming signing algorithm"
+ "message": "Thuật toán ký nhận tối thiểu"
},
"spWantAssertionsSigned": {
- "message": "Expect signed assertions"
+ "message": "Yêu cầu xác nhận đã ký"
},
"spValidateCertificates": {
- "message": "Validate certificates"
+ "message": "Xác thực chứng chỉ"
},
"spUniqueEntityId": {
- "message": "Set a unique SP entity ID"
+ "message": "Đặt ID thực thể SP duy nhất"
},
"spUniqueEntityIdDesc": {
- "message": "Generate an identifier that is unique to your organization"
+ "message": "Tạo một định danh duy nhất cho tổ chức của bạn"
},
"idpEntityId": {
- "message": "Entity ID"
+ "message": "ID thực thể"
},
"idpBindingType": {
- "message": "Binding type"
+ "message": "Loại liên kết"
},
"idpSingleSignOnServiceUrl": {
- "message": "Single sign-on service URL"
+ "message": "URL dịch vụ đăng nhập một lần (SSO)"
},
"idpSingleLogoutServiceUrl": {
- "message": "Single log-out service URL"
+ "message": "URL dịch vụ đăng xuất một lần"
},
"idpX509PublicCert": {
- "message": "X509 public certificate"
+ "message": "Chứng chỉ công khai X509"
},
"idpOutboundSigningAlgorithm": {
- "message": "Outbound signing algorithm"
+ "message": "Thuật toán ký gửi đi"
},
"idpAllowUnsolicitedAuthnResponse": {
- "message": "Allow unsolicited authentication response"
+ "message": "Cho phép phản hồi xác thực không được yêu cầu"
},
"idpAllowOutboundLogoutRequests": {
- "message": "Allow outbound logout requests"
+ "message": "Cho phép yêu cầu đăng xuất gửi đi"
},
"idpSignAuthenticationRequests": {
- "message": "Sign authentication requests"
+ "message": "Ký các yêu cầu xác thực"
},
"ssoSettingsSaved": {
- "message": "Single sign-on configuration saved"
+ "message": "Cấu hình đăng nhập một lần đã được lưu"
},
"sponsoredFamilies": {
- "message": "Free Bitwarden Families"
+ "message": "Gói Bitwarden Gia đình miễn phí"
},
"sponsoredBitwardenFamilies": {
- "message": "Sponsored families"
+ "message": "Gói Bitwarden Gia đình được tài trợ"
},
"noSponsoredFamiliesMessage": {
- "message": "No sponsored families"
+ "message": "Không có gói gia đình được tài trợ nào"
},
"nosponsoredFamiliesDetails": {
- "message": "Sponsored non-member families plans will display here"
+ "message": "Các gói gia đình không thành viên được tài trợ sẽ hiển thị tại đây"
},
"sponsorshipFreeBitwardenFamilies": {
- "message": "Members of your organization are eligible for Free Bitwarden Families. You can sponsor Free Bitwarden Families for employees who are not a member of your Bitwarden organization. Sponsoring a non-member requires an available seat within your organization."
+ "message": "Thành viên tổ chức của bạn đủ điều kiện sử dụng gói Bitwarden Gia đình miễn phí. Bạn có thể tài trợ Bitwarden Gia đình miễn phí cho nhân viên không thuộc tổ chức Bitwarden của bạn. Việc tài trợ cho người không phải thành viên yêu cầu có chỗ trống trong tổ chức của bạn."
},
"sponsoredFamiliesRemoveActiveSponsorship": {
- "message": "When you remove an active sponsorship, a seat within your organization will be available after the renewal date of the sponsored organization."
+ "message": "Khi bạn hủy tài trợ đang hoạt động, một ghế trong tổ chức của bạn sẽ khả dụng sau ngày gia hạn của tổ chức được tài trợ."
},
"sponsoredFamiliesEligible": {
- "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work."
+ "message": "Bạn và gia đình đủ điều kiện nhận Gói Bitwarden Gia đình miễn phí. Hãy kích hoạt bằng email cá nhân để giữ dữ liệu của bạn an toàn ngay cả khi không ở nơi làm việc."
},
"sponsoredFamiliesEligibleCard": {
- "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work."
+ "message": "Hãy nhận Gói Bitwarden Gia đình miễn phí của bạn ngay hôm nay để bảo vệ dữ liệu an toàn ngay cả khi bạn không ở nơi làm việc."
},
"sponsoredFamiliesIncludeMessage": {
- "message": "The Bitwarden for Families plan includes"
+ "message": "Gói Bitwarden Gia đình bao gồm"
},
"sponsoredFamiliesPremiumAccess": {
- "message": "Premium access for up to 6 users"
+ "message": "Quyền truy cập Cao cấp cho tối đa 6 người dùng"
},
"sponsoredFamiliesSharedCollectionsForFamilyMembers": {
- "message": "Shared collections for family members"
+ "message": "Các bộ sưu tập được chia sẻ cho các thành viên trong gia đình"
},
"memberFamilies": {
- "message": "Member families"
+ "message": "Thành viên gia đình"
},
"noMemberFamilies": {
- "message": "No member families"
+ "message": "Không có thành viên gia đình"
},
"noMemberFamiliesDescription": {
- "message": "Members who have redeemed family plans will display here"
+ "message": "Thành viên đã đổi gói gia đình sẽ hiển thị tại đây"
},
"membersWithSponsoredFamilies": {
- "message": "Members of your organization are eligible for Free Bitwarden Families. Here you can see members who have sponsored a Families organization."
+ "message": "Thành viên trong tổ chức của bạn đủ điều kiện nhận Gói Bitwarden Gia đình miễn phí. Tại đây, bạn có thể xem những thành viên đã tài trợ cho một tổ chức Gia đình."
},
"organizationHasMemberMessage": {
- "message": "A sponsorship cannot be sent to $EMAIL$ because they are a member of your organization.",
+ "message": "Không thể gửi tài trợ tới $EMAIL$ vì họ là thành viên của tổ chức của bạn.",
"placeholders": {
"email": {
"content": "$1",
@@ -6435,37 +6455,37 @@
}
},
"badToken": {
- "message": "The link is no longer valid. Please have the sponsor resend the offer."
+ "message": "Liên kết không còn hợp lệ. Vui lòng yêu cầu nhà tài trợ gửi lại ưu đãi."
},
"reclaimedFreePlan": {
- "message": "Reclaimed free plan"
+ "message": "Gói miễn phí đã được thu hồi"
},
"redeem": {
- "message": "Redeem"
+ "message": "Đổi"
},
"sponsoredFamiliesSelectOffer": {
- "message": "Select the organization you would like sponsored"
+ "message": "Chọn tổ chức bạn muốn được tài trợ"
},
"familiesSponsoringOrgSelect": {
- "message": "Which Free Families offer would you like to redeem?"
+ "message": "Bạn muốn đổi ưu đãi Gói Gia đình miễn phí nào?"
},
"sponsoredFamiliesEmail": {
- "message": "Enter your personal email to redeem Bitwarden Families"
+ "message": "Nhập email cá nhân của bạn để đổi Gói Bitwarden Gia đình"
},
"sponsoredFamiliesLeaveCopy": {
- "message": "If you remove an offer or are removed from the sponsoring organization, your Families sponsorship will expire at the next renewal date."
+ "message": "Nếu bạn hủy ưu đãi hoặc bị xóa khỏi tổ chức tài trợ, gói Gia đình được tài trợ của bạn sẽ hết hạn vào ngày gia hạn tiếp theo."
},
"acceptBitwardenFamiliesHelp": {
- "message": "Accept offer for an existing organization or create a new Families organization."
+ "message": "Chấp nhận ưu đãi cho một tổ chức hiện có hoặc tạo tổ chức Gia đình mới."
},
"setupSponsoredFamiliesLoginDesc": {
- "message": "You've been offered a free Bitwarden Families plan organization. To continue, you need to log in to the account that received the offer."
+ "message": "Bạn đã được tặng một tổ chức gói Bitwarden Gia đình miễn phí. Để tiếp tục, bạn cần đăng nhập vào tài khoản đã nhận ưu đãi này."
},
"sponsoredFamiliesAcceptFailed": {
- "message": "Unable to accept offer. Please resend the offer email from your Enterprise account and try again."
+ "message": "Không thể chấp nhận ưu đãi. Vui lòng gửi lại email ưu đãi từ tài khoản Doanh nghiệp của bạn và thử lại."
},
"sponsoredFamiliesAcceptFailedShort": {
- "message": "Unable to accept offer. $DESCRIPTION$",
+ "message": "Không thể chấp nhận ưu đãi. $DESCRIPTION$",
"placeholders": {
"description": {
"content": "$1",
@@ -6474,19 +6494,19 @@
}
},
"sponsoredFamiliesOffer": {
- "message": "Accept Free Bitwarden Families"
+ "message": "Chấp nhận Gói Bitwarden Gia đình miễn phí"
},
"sponsoredFamiliesOfferRedeemed": {
- "message": "Free Bitwarden Families offer successfully redeemed"
+ "message": "Ưu đãi Gói Bitwarden Gia đình miễn phí đã được đổi thành công"
},
"redeemed": {
- "message": "Redeemed"
+ "message": "Đã đổi"
},
"redeemedAccount": {
- "message": "Account redeemed"
+ "message": "Tài khoản đã được đổi"
},
"revokeAccountMessage": {
- "message": "Revoke account $NAME$",
+ "message": "Thu hồi tài khoản $NAME$",
"placeholders": {
"name": {
"content": "$1",
@@ -6495,7 +6515,7 @@
}
},
"resendEmailLabel": {
- "message": "Resend sponsorship email to $NAME$ sponsorship",
+ "message": "Gửi lại email tài trợ cho $NAME$",
"placeholders": {
"name": {
"content": "$1",
@@ -6504,265 +6524,265 @@
}
},
"freeFamiliesPlan": {
- "message": "Free Families plan"
+ "message": "Gói Gia đình miễn phí"
},
"redeemNow": {
- "message": "Redeem now"
+ "message": "Đổi ngay"
},
"recipient": {
- "message": "Recipient"
+ "message": "Người nhận"
},
"removeSponsorship": {
- "message": "Remove sponsorship"
+ "message": "Xóa tài trợ"
},
"removeSponsorshipConfirmation": {
"message": "Nếu xóa người tài trợ, bạn sẽ chịu trách nhiệm cho chi phí của gói này và cước phát sinh về sau. Bạn có chắc chắn muốn tiếp tục không?"
},
"sponsorshipCreated": {
- "message": "Sponsorship created"
+ "message": "Đã tạo tài trợ"
},
"emailSent": {
- "message": "Email sent"
+ "message": "Đã gửi email"
},
"removeSponsorshipSuccess": {
- "message": "Sponsorship removed"
+ "message": "Đã xóa tài trợ"
},
"ssoKeyConnectorError": {
- "message": "Key Connector error: make sure Key Connector is available and working correctly."
+ "message": "Lỗi Key Connector: hãy đảm bảo Key Connector khả dụng và hoạt động đúng cách."
},
"keyConnectorUrl": {
"message": "Key Connector URL"
},
"sendVerificationCode": {
- "message": "Send a verification code to your email"
+ "message": "Gửi mã xác minh tới email của bạn"
},
"sendCode": {
- "message": "Send code"
+ "message": "Gửi mã"
},
"codeSent": {
- "message": "Code sent"
+ "message": "Đã gửi mã"
},
"verificationCode": {
- "message": "Verification code"
+ "message": "Mã xác minh"
},
"confirmIdentity": {
- "message": "Confirm your identity to continue."
+ "message": "Xác minh danh tính của bạn để tiếp tục."
},
"verificationCodeRequired": {
- "message": "Verification code is required."
+ "message": "Yêu cầu mã xác minh."
},
"webauthnCancelOrTimeout": {
- "message": "The authentication was cancelled or took too long. Please try again."
+ "message": "Xác thực đã bị hủy hoặc mất quá nhiều thời gian. Vui lòng thử lại."
},
"invalidVerificationCode": {
- "message": "Invalid verification code"
+ "message": "Mã xác minh không đúng"
},
"removeMasterPasswordForOrganizationUserKeyConnector": {
- "message": "A master password is no longer required for members of the following organization. Please confirm the domain below with your organization administrator."
+ "message": "Không còn yêu cầu mật khẩu chính đối với các thành viên của tổ chức sau. Vui lòng xác nhận tên miền bên dưới với quản trị viên của tổ chức bạn."
},
"keyConnectorDomain": {
- "message": "Key Connector domain"
+ "message": "Tên miền Key Connector"
},
"leaveOrganization": {
- "message": "Leave organization"
+ "message": "Rời khỏi tổ chức"
},
"removeMasterPassword": {
- "message": "Remove master password"
+ "message": "Xóa mật khẩu chính"
},
"removedMasterPassword": {
- "message": "Master password removed"
+ "message": "Đã xóa mật khẩu chính"
},
"allowSso": {
- "message": "Allow SSO authentication"
+ "message": "Cho phép xác thực SSO"
},
"allowSsoDesc": {
- "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials."
+ "message": "Sau khi thiết lập, cấu hình của bạn sẽ được lưu và các thành viên sẽ có thể xác thực bằng thông tin đăng nhập từ Nhà cung cấp định danh của họ."
},
"ssoPolicyHelpStart": {
- "message": "Use the",
+ "message": "Sử dụng",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Use the require single-sign-on authentication policy to require all members to log in with SSO.'"
},
"ssoPolicyHelpAnchor": {
- "message": "require single sign-on authentication policy",
+ "message": "chính sách yêu cầu xác thực đăng nhập một lần (SSO)",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Use the require single-sign-on authentication policy to require all members to log in with SSO.'"
},
"ssoPolicyHelpEnd": {
- "message": "to require all members to log in with SSO.",
+ "message": "để yêu cầu tất cả thành viên đăng nhập bằng SSO.",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Use the require single-sign-on authentication policy to require all members to log in with SSO.'"
},
"memberDecryptionOption": {
- "message": "Member decryption options"
+ "message": "Tùy chọn giải mã của thành viên"
},
"memberDecryptionPassDesc": {
- "message": "Once authenticated, members will decrypt vault data using their master passwords."
+ "message": "Sau khi xác thực, các thành viên sẽ giải mã dữ liệu trong kho bằng mật khẩu chính của họ."
},
"keyConnector": {
"message": "Key Connector"
},
"memberDecryptionKeyConnectorDescStart": {
- "message": "Connect login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their master passwords to decrypt vault data. The",
+ "message": "Kết nối đăng nhập bằng SSO với máy chủ khóa giải mã tự lưu trữ của bạn. Khi sử dụng tùy chọn này, các thành viên sẽ không cần sử dụng mật khẩu chính để giải mã dữ liệu trong kho. Tùy chọn",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Connect login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their master passwords to decrypt vault data. The require SSO authentication and single organization policies are required to set up Key Connector decryption. Contact Bitwarden Support for set up assistance.'"
},
"memberDecryptionKeyConnectorDescLink": {
- "message": "require SSO authentication and single organization policies",
+ "message": "chính sách yêu cầu xác thực SSO và tổ chức đơn lẻ",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Connect login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their master passwords to decrypt vault data. The require SSO authentication and single organization policies are required to set up Key Connector decryption. Contact Bitwarden Support for set up assistance.'"
},
"memberDecryptionKeyConnectorDescEnd": {
- "message": "are required to set up Key Connector decryption. Contact Bitwarden Support for set up assistance.",
+ "message": "là bắt buộc để thiết lập giải mã bằng Key Connector. Liên hệ với Bộ phận hỗ trợ Bitwarden để được trợ giúp thiết lập.",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Connect login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their master passwords to decrypt vault data. The require SSO authentication and single organization policies are required to set up Key Connector decryption. Contact Bitwarden Support for set up assistance.'"
},
"keyConnectorPolicyRestriction": {
- "message": "\"Login with SSO and Key Connector Decryption\" is activated. This policy will only apply to owners and admins."
+ "message": "\"Đăng nhập bằng SSO và giải mã bằng Key Connector\" đã được kích hoạt. Chính sách này chỉ áp dụng cho chủ sở hữu và quản trị viên."
},
"enabledSso": {
- "message": "SSO turned on"
+ "message": "SSO đã bật"
},
"disabledSso": {
- "message": "SSO turned on"
+ "message": "SSO đã được bật"
},
"enabledKeyConnector": {
- "message": "Key Connector activated"
+ "message": "Key Connector đã được kích hoạt"
},
"disabledKeyConnector": {
- "message": "Key Connector deactivated"
+ "message": "Key Connector đã bị vô hiệu hóa"
},
"keyConnectorWarning": {
- "message": "Once members begin using Key Connector, your organization cannot revert to master password decryption. Proceed only if you are comfortable deploying and managing a key server."
+ "message": "Khi các thành viên bắt đầu sử dụng Key Connector, tổ chức của bạn sẽ không thể quay lại phương thức giải mã bằng mật khẩu chính. Chỉ tiếp tục nếu bạn sẵn sàng triển khai và quản lý máy chủ khóa."
},
"migratedKeyConnector": {
- "message": "Migrated to Key Connector"
+ "message": "Đã di chuyển sang Key Connector"
},
"paymentSponsored": {
- "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. "
+ "message": "Vui lòng cung cấp phương thức thanh toán để liên kết với tổ chức. Đừng lo, chúng tôi sẽ không tính phí trừ khi bạn chọn thêm tính năng hoặc khi gói tài trợ của bạn hết hạn. "
},
"orgCreatedSponsorshipInvalid": {
- "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility."
+ "message": "Ưu đãi tài trợ đã hết hạn. Bạn có thể xóa tổ chức mà bạn đã tạo để tránh bị tính phí khi kết thúc 7 ngày dùng thử. Nếu không, bạn có thể đóng thông báo này để giữ tổ chức và chịu trách nhiệm thanh toán."
},
"newFamiliesOrganization": {
- "message": "New Families organization"
+ "message": "Tổ chức Gia đình mới"
},
"acceptOffer": {
- "message": "Accept offer"
+ "message": "Chấp nhận ưu đãi"
},
"sponsoringOrg": {
- "message": "Sponsoring organization"
+ "message": "Tổ chức tài trợ"
},
"keyConnectorTest": {
- "message": "Test"
+ "message": "Kiểm tra"
},
"keyConnectorTestSuccess": {
- "message": "Success! Key Connector reached."
+ "message": "Thành công! Đã kết nối với Key Connector."
},
"keyConnectorTestFail": {
- "message": "Cannot reach Key Connector. Check URL."
+ "message": "Không thể kết nối với Key Connector. Vui lòng kiểm tra URL."
},
"sponsorshipTokenHasExpired": {
- "message": "The sponsorship offer has expired."
+ "message": "Ưu đãi tài trợ đã hết hạn."
},
"freeWithSponsorship": {
- "message": "FREE with sponsorship"
+ "message": "MIỄN PHÍ với tài trợ"
},
"viewBillingSyncToken": {
- "message": "View billing sync token"
+ "message": "Xem token đồng bộ thanh toán"
},
"generateBillingToken": {
- "message": "Generate billing token"
+ "message": "Tạo token thanh toán"
},
"copyPasteBillingSync": {
- "message": "Copy and paste this token into the billing sync settings of your self-hosted organization."
+ "message": "Sao chép và dán token này vào cài đặt đồng bộ thanh toán của tổ chức tự lưu trữ của bạn."
},
"billingSyncCanAccess": {
- "message": "Your billing sync token can access and edit this organization's subscription settings."
+ "message": "Token đồng bộ thanh toán của bạn có thể truy cập và chỉnh sửa cài đặt đăng ký của tổ chức này."
},
"manageBillingTokenSync": {
- "message": "Manage Billing Token"
+ "message": "Quản lý Token thanh toán"
},
"setUpBillingSync": {
- "message": "Set up billing sync"
+ "message": "Thiết lập đồng bộ thanh toán"
},
"generateToken": {
- "message": "Generate token"
+ "message": "Tạo mã thông báo"
},
"rotateToken": {
- "message": "Rotate token"
+ "message": "Xoay mã thông báo"
},
"rotateBillingSyncTokenWarning": {
- "message": "If you proceed, you will need to re-setup billing sync on your self-hosted server."
+ "message": "Nếu bạn tiếp tục, bạn sẽ cần thiết lập lại đồng bộ thanh toán trên máy chủ tự lưu trữ của mình."
},
"rotateBillingSyncTokenTitle": {
- "message": "Rotating the billing sync token will invalidate the previous token."
+ "message": "Việc xoay mã thông báo đồng bộ thanh toán sẽ làm vô hiệu hóa mã thông báo trước đó."
},
"selfHostedServer": {
- "message": "self-hosted"
+ "message": "tự lưu trữ"
},
"customEnvironment": {
- "message": "Custom environment"
+ "message": "Môi trường tùy chỉnh"
},
"selfHostedBaseUrlHint": {
- "message": "Specify the base URL of your on-premises hosted Bitwarden installation. Example: https://bitwarden.company.com"
+ "message": "Chỉ định URL gốc của cài đặt Bitwarden được lưu trữ tại chỗ của bạn. Ví dụ: https://bitwarden.company.com"
},
"selfHostedCustomEnvHeader": {
- "message": "For advanced configuration, you can specify the base URL of each service independently."
+ "message": "Đối với cấu hình nâng cao, bạn có thể chỉ định URL gốc của từng dịch vụ một cách độc lập."
},
"selfHostedEnvFormInvalid": {
- "message": "You must add either the base Server URL or at least one custom environment."
+ "message": "Bạn phải thêm URL Máy chủ gốc hoặc ít nhất một môi trường tùy chỉnh."
},
"apiUrl": {
- "message": "API server URL"
+ "message": "URL máy chủ API"
},
"webVaultUrl": {
- "message": "Web vault server URL"
+ "message": "URL máy chủ kho web"
},
"identityUrl": {
- "message": "Identity server URL"
+ "message": "URL máy chủ nhận dạng"
},
"notificationsUrl": {
- "message": "Notifications server URL"
+ "message": "URL máy chủ thông báo"
},
"iconsUrl": {
- "message": "Icons server URL"
+ "message": "URL máy chủ biểu tượng"
},
"environmentSaved": {
- "message": "Environment URLs saved"
+ "message": "Các URL môi trường đã được lưu"
},
"selfHostingTitle": {
- "message": "Self-hosting"
+ "message": "Tự lưu trữ"
},
"selfHostingEnterpriseOrganizationSectionCopy": {
- "message": "To set-up your organization on your own server, you will need to upload your license file. To support Free Families plans and advanced billing capabilities for your self-hosted organization, you will need to set up billing sync."
+ "message": "Để thiết lập tổ chĐể thiết lập tổ chức của bạn trên máy chủ riêng, bạn sẽ cần tải lên tệp giấy phép. Để hỗ trợ gói Gia đình miễn phí và các tính năng thanh toán nâng cao cho tổ chức tự lưu trữ của bạn, bạn sẽ cần thiết lập đồng bộ thanh toán.ức của bạn trên máy chủ riêng, bạn sẽ cần tải lên tệp giấy phép. Để hỗ trợ gói Gia đình miễn phí và các tính năng thanh toán nâng cao cho tổ chức tự lưu trữ của bạn, bạn sẽ cần thiết lập đồng bộ thanh toán."
},
"billingSyncApiKeyRotated": {
- "message": "Token rotated"
+ "message": "Token đã được xoay"
},
"billingSyncKeyDesc": {
- "message": "A billing sync token from your cloud organization's subscription settings is required to complete this form."
+ "message": "Cần mã thông báo đồng bộ thanh toán từ cài đặt đăng ký của tổ chức trên đám mây của bạn để hoàn tất biểu mẫu này."
},
"billingSyncKey": {
- "message": "Billing sync token"
+ "message": "Mã thông báo đồng bộ thanh toán"
},
"automaticBillingSyncDesc": {
- "message": "Automatic sync unlocks Families sponsorships and allows you to sync your license without uploading a file. After making updates in the Bitwarden cloud server, select Sync License to apply changes."
+ "message": "Đồng bộ tự động sẽ mở khóa tài trợ Gói Gia đình và cho phép bạn đồng bộ giấy phép mà không cần tải tệp lên. Sau khi thực hiện các cập nhật trên máy chủ đám mây Bitwarden, hãy chọn Đồng bộ giấy phép để áp dụng thay đổi."
},
"active": {
- "message": "Active"
+ "message": "Đang hoạt động"
},
"inactive": {
- "message": "Inactive"
+ "message": "Không hoạt động"
},
"sentAwaitingSync": {
- "message": "Sent (awaiting sync)"
+ "message": "Đã gửi (đang chờ đồng bộ)"
},
"sent": {
- "message": "Sent"
+ "message": "Đã gửi"
},
"requestRemoved": {
- "message": "Removed (awaiting sync)"
+ "message": "Đã xóa (đang chờ đồng bộ)"
},
"requested": {
- "message": "Requested"
+ "message": "Đã yêu cầu"
},
"formErrorSummaryPlural": {
- "message": "$COUNT$ fields above need your attention.",
+ "message": "$COUNT$ trường bên trên cần bạn chú ý.",
"placeholders": {
"count": {
"content": "$1",
@@ -6771,10 +6791,10 @@
}
},
"formErrorSummarySingle": {
- "message": "1 field above needs your attention."
+ "message": "1 trường bên trên cần bạn chú ý."
},
"fieldRequiredError": {
- "message": "$FIELDNAME$ is required.",
+ "message": "$FIELDNAME$ là bắt buộc.",
"placeholders": {
"fieldname": {
"content": "$1",
@@ -6783,10 +6803,10 @@
}
},
"required": {
- "message": "required"
+ "message": "bắt buộc"
},
"charactersCurrentAndMaximum": {
- "message": "$CURRENT$/$MAX$ character maximum",
+ "message": "Tối đa $CURRENT$/$MAX$ ký tự",
"placeholders": {
"current": {
"content": "$1",
@@ -6808,31 +6828,31 @@
}
},
"idpSingleSignOnServiceUrlRequired": {
- "message": "Required if Entity ID is not a URL."
+ "message": "Bắt buộc nếu ID thực thể không phải là URL."
},
"offerNoLongerValid": {
- "message": "This offer is no longer valid. Contact your organization administrators for more information."
+ "message": "Ưu đãi này không còn hợp lệ. Liên hệ quản trị viên tổ chức của bạn để biết thêm thông tin."
},
"openIdOptionalCustomizations": {
- "message": "Optional customizations"
+ "message": "Tùy chỉnh tùy chọn"
},
"openIdAuthorityRequired": {
- "message": "Required if Authority is not valid."
+ "message": "Bắt buộc nếu Authority không hợp lệ."
},
"separateMultipleWithComma": {
- "message": "Separate multiple with a comma."
+ "message": "Ngăn cách nhiều mục bằng dấu phẩy."
},
"sessionTimeout": {
- "message": "Your session has timed out. Please go back and try logging in again."
+ "message": "Phiên của bạn đã hết hạn. Vui lòng quay lại và thử đăng nhập lại."
},
"exportingPersonalVaultTitle": {
- "message": "Exporting individual vault"
+ "message": "Xuất kho riêng lẻ"
},
"exportingOrganizationVaultTitle": {
- "message": "Exporting organization vault"
+ "message": "Xuất kho của tổ chức"
},
"exportingIndividualVaultDescription": {
- "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.",
+ "message": "Chỉ dữ liệu trong kho cá nhân liên kết với $EMAIL$ mới được xuất. Không bao gồm các dữ liệu trong kho tổ chức. Chỉ thông tin về các mục trong kho mới được xuất, sẽ không có các tệp đính kèm.",
"placeholders": {
"email": {
"content": "$1",
@@ -6841,7 +6861,7 @@
}
},
"exportingIndividualVaultWithAttachmentsDescription": {
- "message": "Only the individual vault items including attachments associated with $EMAIL$ will be exported. Organization vault items will not be included",
+ "message": "Chỉ các mục trong kho cá nhân, bao gồm tệp đính kèm liên kết với $EMAIL$, sẽ được xuất. Các mục trong kho của tổ chức sẽ không được bao gồm",
"placeholders": {
"email": {
"content": "$1",
@@ -6850,7 +6870,7 @@
}
},
"exportingOrganizationVaultDesc": {
- "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Items in individual vaults or other organizations will not be included.",
+ "message": "Chỉ kho của tổ chức liên kết với $ORGANIZATION$ sẽ được xuất. Các mục trong kho cá nhân hoặc tổ chức khác sẽ không được bao gồm.",
"placeholders": {
"organization": {
"content": "$1",
@@ -6859,32 +6879,32 @@
}
},
"accessDenied": {
- "message": "Access denied. You do not have permission to view this page."
+ "message": "Truy cập bị từ chối. Bạn không có quyền xem trang này."
},
"masterPassword": {
- "message": "Master password"
+ "message": "Mật khẩu chính"
},
"security": {
"message": "Bảo mật"
},
"keys": {
- "message": "Keys"
+ "message": "Khóa"
},
"billingHistory": {
"message": "Lịch sử thanh toán"
},
"backToReports": {
- "message": "Back to reports"
+ "message": "Quay lại báo cáo"
},
"organizationPicker": {
- "message": "Organization picker"
+ "message": "Trình chọn tổ chức"
},
"currentOrganization": {
- "message": "Current organization",
+ "message": "Tổ chức hiện tại",
"description": "This is used by screen readers to indicate the organization that is currently being shown to the user."
},
"accountLoggedInAsName": {
- "message": "Account: Logged in as $NAME$",
+ "message": "Tài khoản: Đã đăng nhập với tên $NAME$",
"placeholders": {
"name": {
"content": "$1",
@@ -6903,28 +6923,28 @@
"message": "Tạo tên đăng nhập"
},
"generateEmail": {
- "message": "Generate email"
+ "message": "Tạo email"
},
"generatePassword": {
"message": "Tạo mật khẩu"
},
"generatePassphrase": {
- "message": "Generate passphrase"
+ "message": "Tạo cụm mật khẩu"
},
"passwordGenerated": {
- "message": "Password generated"
+ "message": "Đã tạo mật khẩu"
},
"passphraseGenerated": {
- "message": "Passphrase generated"
+ "message": "Đã tạo cụm mật khẩu"
},
"usernameGenerated": {
"message": "Tên đăng nhập được tạo tự động"
},
"emailGenerated": {
- "message": "Email generated"
+ "message": "Đã tạo email"
},
"spinboxBoundariesHint": {
- "message": "Value must be between $MIN$ and $MAX$.",
+ "message": "Giá trị phải nằm trong khoảng từ $MIN$ đến $MAX$.",
"description": "Explains spin box minimum and maximum values to the user",
"placeholders": {
"min": {
@@ -6938,7 +6958,7 @@
}
},
"passwordLengthRecommendationHint": {
- "message": " Use $RECOMMENDED$ characters or more to generate a strong password.",
+ "message": " Sử dụng $RECOMMENDED$ ký tự trở lên để tạo mật khẩu mạnh.",
"description": "Appended to `spinboxBoundariesHint` to recommend a length to the user. This must include any language-specific 'sentence' separator characters (e.g. a space in english).",
"placeholders": {
"recommended": {
@@ -6948,7 +6968,7 @@
}
},
"passphraseNumWordsRecommendationHint": {
- "message": " Use $RECOMMENDED$ words or more to generate a strong passphrase.",
+ "message": " Sử dụng $RECOMMENDED$ từ trở lên để tạo cụm mật khẩu mạnh.",
"description": "Appended to `spinboxBoundariesHint` to recommend a number of words to the user. This must include any language-specific 'sentence' separator characters (e.g. a space in english).",
"placeholders": {
"recommended": {
@@ -6962,58 +6982,58 @@
"description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com"
},
"plusAddressedEmailDesc": {
- "message": "Use your email provider's sub-addressing capabilities."
+ "message": "Sử dụng tính năng địa chỉ phụ của nhà cung cấp email của bạn."
},
"catchallEmail": {
- "message": "Catch-all email"
+ "message": "Email bắt tất cả"
},
"catchallEmailDesc": {
- "message": "Use your domain's configured catch-all inbox."
+ "message": "Sử dụng hộp thư bắt tất cả đã được cấu hình cho tên miền của bạn."
},
"useThisEmail": {
- "message": "Use this email"
+ "message": "Sử dụng email này"
},
"random": {
"message": "Ngẫu nhiên",
"description": "Generates domain-based username using random letters"
},
"randomWord": {
- "message": "Random word"
+ "message": "Từ ngẫu nhiên"
},
"usernameGenerator": {
"message": "Trình tạo tên đăng nhập"
},
"useThisPassword": {
- "message": "Use this password"
+ "message": "Sử dụng mật khẩu này"
},
"useThisPassphrase": {
- "message": "Use this passphrase"
+ "message": "Sử dụng cụm mật khẩu này"
},
"useThisUsername": {
"message": "Dùng tên đăng nhập này"
},
"securePasswordGenerated": {
- "message": "Secure password generated! Don't forget to also update your password on the website."
+ "message": "Mật khẩu an toàn đã được tạo! Đừng quên cập nhật mật khẩu của bạn trên trang web."
},
"useGeneratorHelpTextPartOne": {
- "message": "Use the generator",
+ "message": "Sử dụng trình tạo",
"description": "This will be used as part of a larger sentence, broken up to include the generator icon. The full sentence will read 'Use the generator [GENERATOR_ICON] to create a strong unique password'"
},
"useGeneratorHelpTextPartTwo": {
- "message": "to create a strong unique password",
+ "message": "để tạo mật khẩu mạnh và duy nhất",
"description": "This will be used as part of a larger sentence, broken up to include the generator icon. The full sentence will read 'Use the generator [GENERATOR_ICON] to create a strong unique password'"
},
"service": {
- "message": "Service"
+ "message": "Dịch vụ"
},
"unknownCipher": {
- "message": "Unknown item, you may need to request permission to access this item."
+ "message": "Mục không xác định, bạn có thể cần yêu cầu quyền để truy cập mục này."
},
"cannotSponsorSelf": {
- "message": "You cannot redeem for the active account. Enter a different email."
+ "message": "Bạn không thể đổi thưởng cho tài khoản đang hoạt động. Vui lòng nhập email khác."
},
"revokeWhenExpired": {
- "message": "Expires $DATE$",
+ "message": "Hết hạn $DATE$",
"placeholders": {
"date": {
"content": "$1",
@@ -7022,7 +7042,7 @@
}
},
"awaitingSyncSingular": {
- "message": "Token rotated $DAYS$ day ago. Update the billing sync token in your self-hosted organization settings.",
+ "message": "Token đã được xoay cách đây $DAYS$ ngày. Hãy cập nhật token đồng bộ thanh toán trong cài đặt tổ chức tự lưu trữ của bạn.",
"placeholders": {
"days": {
"content": "$1",
@@ -7031,7 +7051,7 @@
}
},
"awaitingSyncPlural": {
- "message": "Token rotated $DAYS$ days ago. Update the billing sync token in your self-hosted organization settings.",
+ "message": "Token đã được xoay cách đây $DAYS$ ngày. Hãy cập nhật token đồng bộ thanh toán trong cài đặt tổ chức tự lưu trữ của bạn.",
"placeholders": {
"days": {
"content": "$1",
@@ -7040,14 +7060,14 @@
}
},
"lastSync": {
- "message": "Last sync",
+ "message": "Lần đồng bộ cuối",
"description": "Used as a prefix to indicate the last time a sync occurred. Example \"Last sync 1968-11-16 00:00:00\""
},
"sponsorshipsSynced": {
- "message": "Self-hosted sponsorships synced."
+ "message": "Các gói tài trợ tự lưu trữ đã được đồng bộ."
},
"billingManagedByProvider": {
- "message": "Managed by $PROVIDER$",
+ "message": "Được quản lý bởi $PROVIDER$",
"placeholders": {
"provider": {
"content": "$1",
@@ -7056,25 +7076,25 @@
}
},
"billingContactProviderForAssistance": {
- "message": "Please reach out to them for further assistance",
+ "message": "Vui lòng liên hệ với họ để được hỗ trợ thêm",
"description": "This text is displayed if an organization's billing is managed by a Provider. It tells the user to contact the Provider for assistance."
},
"forwardedEmail": {
- "message": "Forwarded email alias"
+ "message": "Bí danh email chuyển tiếp"
},
"forwardedEmailDesc": {
- "message": "Generate an email alias with an external forwarding service."
+ "message": "Tạo bí danh email với dịch vụ chuyển tiếp bên ngoài."
},
"forwarderDomainName": {
- "message": "Email domain",
+ "message": "Tên miền email",
"description": "Labels the domain name email forwarder service option"
},
"forwarderDomainNameHint": {
- "message": "Choose a domain that is supported by the selected service",
+ "message": "Chọn một tên miền được hỗ trợ bởi dịch vụ đã chọn",
"description": "Guidance provided for email forwarding services that support multiple email domains."
},
"forwarderError": {
- "message": "$SERVICENAME$ error: $ERRORMESSAGE$",
+ "message": "Lỗi $SERVICENAME$: $ERRORMESSAGE$",
"description": "Reports an error returned by a forwarding service to the user.",
"placeholders": {
"servicename": {
@@ -7088,11 +7108,11 @@
}
},
"forwarderGeneratedBy": {
- "message": "Generated by Bitwarden.",
+ "message": "Được tạo bởi Bitwarden.",
"description": "Displayed with the address on the forwarding service's configuration screen."
},
"forwarderGeneratedByWithWebsite": {
- "message": "Website: $WEBSITE$. Generated by Bitwarden.",
+ "message": "Trang web: $WEBSITE$. Được tạo bởi Bitwarden.",
"description": "Displayed with the address on the forwarding service's configuration screen.",
"placeholders": {
"WEBSITE": {
@@ -7102,7 +7122,7 @@
}
},
"forwaderInvalidToken": {
- "message": "Invalid $SERVICENAME$ API token",
+ "message": "Token API $SERVICENAME$ không hợp lệ",
"description": "Displayed when the user's API token is empty or rejected by the forwarding service.",
"placeholders": {
"servicename": {
@@ -7112,7 +7132,7 @@
}
},
"forwaderInvalidTokenWithMessage": {
- "message": "Invalid $SERVICENAME$ API token: $ERRORMESSAGE$",
+ "message": "Token API $SERVICENAME$ không hợp lệ: $ERRORMESSAGE$",
"description": "Displayed when the user's API token is rejected by the forwarding service with an error message.",
"placeholders": {
"servicename": {
@@ -7126,7 +7146,7 @@
}
},
"forwaderInvalidOperation": {
- "message": "$SERVICENAME$ refused your request. Please contact your service provider for assistance.",
+ "message": "$SERVICENAME$ từ chối yêu cầu của bạn. Vui lòng liên hệ với nhà cung cấp dịch vụ để được hỗ trợ.",
"description": "Displayed when the user is forbidden from using the API by the forwarding service.",
"placeholders": {
"servicename": {
@@ -7136,7 +7156,7 @@
}
},
"forwaderInvalidOperationWithMessage": {
- "message": "$SERVICENAME$ refused your request: $ERRORMESSAGE$",
+ "message": "$SERVICENAME$ từ chối yêu cầu của bạn: $ERRORMESSAGE$",
"description": "Displayed when the user is forbidden from using the API by the forwarding service with an error message.",
"placeholders": {
"servicename": {
@@ -7150,7 +7170,7 @@
}
},
"forwarderNoAccountId": {
- "message": "Unable to obtain $SERVICENAME$ masked email account ID.",
+ "message": "Không thể lấy ID tài khoản email ẩn danh $SERVICENAME$.",
"description": "Displayed when the forwarding service fails to return an account ID.",
"placeholders": {
"servicename": {
@@ -7160,7 +7180,7 @@
}
},
"forwarderNoDomain": {
- "message": "Invalid $SERVICENAME$ domain.",
+ "message": "Tên miền $SERVICENAME$ không hợp lệ.",
"description": "Displayed when the domain is empty or domain authorization failed at the forwarding service.",
"placeholders": {
"servicename": {
@@ -7170,7 +7190,7 @@
}
},
"forwarderNoUrl": {
- "message": "Invalid $SERVICENAME$ url.",
+ "message": "URL $SERVICENAME$ không hợp lệ.",
"description": "Displayed when the url of the forwarding service wasn't supplied.",
"placeholders": {
"servicename": {
@@ -7180,7 +7200,7 @@
}
},
"forwarderUnknownError": {
- "message": "Unknown $SERVICENAME$ error occurred.",
+ "message": "Đã xảy ra lỗi không xác định từ $SERVICENAME$.",
"description": "Displayed when the forwarding service failed due to an unknown error.",
"placeholders": {
"servicename": {
@@ -7190,7 +7210,7 @@
}
},
"forwarderUnknownForwarder": {
- "message": "Unknown forwarder: '$SERVICENAME$'.",
+ "message": "Dịch vụ chuyển tiếp không xác định: '$SERVICENAME$'.",
"description": "Displayed when the forwarding service is not supported.",
"placeholders": {
"servicename": {
@@ -7200,23 +7220,23 @@
}
},
"hostname": {
- "message": "Hostname",
+ "message": "Tên máy chủ",
"description": "Part of a URL."
},
"deviceVerification": {
- "message": "Device verification"
+ "message": "Xác minh thiết bị"
},
"enableDeviceVerification": {
- "message": "Turn on device verification"
+ "message": "Bật xác minh thiết bị"
},
"deviceVerificationDesc": {
- "message": "Verification codes are sent to your email address when logging in from an unrecognized device"
+ "message": "Mã xác minh sẽ được gửi đến địa chỉ email của bạn khi đăng nhập từ thiết bị không nhận dạng"
},
"updatedDeviceVerification": {
- "message": "Updated device verification"
+ "message": "Xác minh thiết bị đã được cập nhật"
},
"areYouSureYouWantToEnableDeviceVerificationTheVerificationCodeEmailsWillArriveAtX": {
- "message": "Are you sure you want to turn on device verification? The verification code emails will arrive at: $EMAIL$",
+ "message": "Bạn có chắc chắn muốn bật xác minh thiết bị không? Email mã xác minh sẽ được gửi đến: $EMAIL$",
"placeholders": {
"email": {
"content": "$1",
@@ -7225,52 +7245,52 @@
}
},
"premiumSubcriptionRequired": {
- "message": "Premium subscription required"
+ "message": "Cần đăng ký gói Premium"
},
"scim": {
- "message": "SCIM provisioning",
+ "message": "Cung cấp SCIM",
"description": "The text, 'SCIM', is an acronym and should not be translated."
},
"scimDescription": {
- "message": "Automatically provision users and groups with your preferred identity provider via SCIM provisioning",
+ "message": "Tự động cung cấp người dùng và nhóm với nhà cung cấp định danh ưa thích của bạn thông qua cung cấp SCIM",
"description": "the text, 'SCIM', is an acronym and should not be translated."
},
"scimIntegrationDescription": {
- "message": "Automatically provision users and groups with your preferred identity provider via SCIM provisioning. Find supported integrations",
+ "message": "Tự động cung cấp người dùng và nhóm với nhà cung cấp danh tính bạn chọn thông qua SCIM provisioning. Tìm các tích hợp được hỗ trợ",
"description": "the text, 'SCIM', is an acronym and should not be translated."
},
"scimEnabledCheckboxDesc": {
- "message": "Enable SCIM",
+ "message": "Bật SCIM",
"description": "the text, 'SCIM', is an acronym and should not be translated."
},
"scimEnabledCheckboxDescHelpText": {
- "message": "Set up your preferred identity provider by configuring the URL and SCIM API Key",
+ "message": "Thiết lập nhà cung cấp danh tính bạn chọn bằng cách cấu hình URL và SCIM API Key",
"description": "the text, 'SCIM', is an acronym and should not be translated."
},
"scimApiKeyHelperText": {
- "message": "This API key has access to manage users within your organization. It should be kept secret."
+ "message": "Khóa API này có quyền quản lý người dùng trong tổ chức của bạn. Hãy giữ bí mật khóa này."
},
"copyScimKey": {
"message": "Sao chép khóa API SCIM vào bảng nhớ tạm",
"description": "the text, 'SCIM' and 'API', are acronyms and should not be translated."
},
"rotateScimKey": {
- "message": "Rotate the SCIM API key",
+ "message": "Xoay khóa API SCIM",
"description": "the text, 'SCIM' and 'API', are acronyms and should not be translated."
},
"rotateScimKeyWarning": {
- "message": "Are you sure you want to rotate the SCIM API Key? The current key will no longer work for any existing integrations.",
+ "message": "Bạn có chắc chắn muốn xoay khóa API SCIM? Khóa hiện tại sẽ không còn hoạt động cho bất kỳ tích hợp nào hiện có.",
"description": "the text, 'SCIM' and 'API', are acronyms and should not be translated."
},
"rotateKey": {
- "message": "Rotate key"
+ "message": "Xoay khóa"
},
"scimApiKey": {
- "message": "SCIM API key",
+ "message": "Khóa API SCIM",
"description": "the text, 'SCIM' and 'API', are acronyms and should not be translated."
},
"copyScimUrl": {
- "message": "Sao chép SCIM endpoint URL vào bảng nhớ tạm",
+ "message": "Sao chép URL endpoint SCIM vào bảng nhớ tạm của bạn",
"description": "the text, 'SCIM' and 'URL', are acronyms and should not be translated."
},
"scimUrl": {
@@ -7278,11 +7298,11 @@
"description": "the text, 'SCIM' and 'URL', are acronyms and should not be translated."
},
"scimApiKeyRotated": {
- "message": "SCIM API key successfully rotated",
+ "message": "Khóa API SCIM đã được xoay thành công",
"description": "the text, 'SCIM' and 'API', are acronyms and should not be translated."
},
"scimSettingsSaved": {
- "message": "SCIM settings saved",
+ "message": "Đã lưu cài đặt SCIM",
"description": "the text, 'SCIM', is an acronym and should not be translated."
},
"inputRequired": {
@@ -7340,7 +7360,7 @@
"message": "Có ít nhất 1 địa chỉ email không hợp lệ"
},
"tooManyEmails": {
- "message": "You can only submit up to $COUNT$ emails at a time",
+ "message": "Bạn chỉ có thể gửi tối đa $COUNT$ email cùng lúc",
"placeholders": {
"count": {
"content": "$1",
@@ -7349,7 +7369,7 @@
}
},
"fieldsNeedAttention": {
- "message": "$COUNT$ field(s) above need your attention.",
+ "message": "$COUNT$ trường ở trên cần bạn chú ý.",
"placeholders": {
"count": {
"content": "$1",
@@ -7358,10 +7378,10 @@
}
},
"singleFieldNeedsAttention": {
- "message": "1 field needs your attention."
+ "message": "1 trường cần bạn chú ý."
},
"multipleFieldsNeedAttention": {
- "message": "$COUNT$ fields need your attention.",
+ "message": "$COUNT$ trường bạn cần chú ý.",
"placeholders": {
"count": {
"content": "$1",
@@ -7370,120 +7390,120 @@
}
},
"duoHealthCheckResultsInNullAuthUrlError": {
- "message": "Error connecting with the Duo service. Use a different two-step login method or contact Duo for assistance."
+ "message": "Lỗi kết nối với dịch vụ Duo. Sử dụng phương thức đăng nhập hai bước khác hoặc liên hệ với Duo để được hỗ trợ."
},
"duoRequiredByOrgForAccount": {
- "message": "Duo two-step login is required for your account."
+ "message": "Tài khoản của bạn bắt buộc đăng nhập hai bước bằng Duo."
},
"duoTwoFactorRequiredPageSubtitle": {
- "message": "Duo two-step login is required for your account. Follow the steps below to finish logging in."
+ "message": "Đăng nhập hai bước là bắt buộc cho tài khoản của bạn. Hãy làm theo các bước dưới đây để hoàn tất quá trình đăng nhập."
},
"followTheStepsBelowToFinishLoggingIn": {
- "message": "Follow the steps below to finish logging in."
+ "message": "Thực hiện các bước sau để hoàn tất đăng nhập."
},
"followTheStepsBelowToFinishLoggingInWithSecurityKey": {
- "message": "Follow the steps below to finish logging in with your security key."
+ "message": "Thực hiện các bước sau để hoàn tất đăng nhập bằng khóa bảo mật của bạn."
},
"launchDuo": {
- "message": "Launch Duo"
+ "message": "Khởi chạy Dou"
},
"turnOn": {
- "message": "Turn on"
+ "message": "Bật"
},
"on": {
- "message": "On"
+ "message": "Bật"
},
"off": {
- "message": "Off"
+ "message": "Tắt"
},
"members": {
- "message": "Members"
+ "message": "Thành viên"
},
"reporting": {
- "message": "Reporting"
+ "message": "Báo cáo"
},
"numberOfUsers": {
"message": "Số lượng người dùng"
},
"pickAnAvatarColor": {
- "message": "Pick an avatar color"
+ "message": "Chọn màu ảnh đại diện"
},
"customizeAvatar": {
- "message": "Customize avatar"
+ "message": "Tùy chỉnh ảnh đại diện"
},
"avatarUpdated": {
- "message": "Avatar updated"
+ "message": "Ảnh đại diện đã được cập nhật"
},
"brightBlue": {
- "message": "Bright Blue"
+ "message": "Xanh lam sáng"
},
"green": {
- "message": "Green"
+ "message": "Xanh lục"
},
"orange": {
- "message": "Orange"
+ "message": "Cam"
},
"lavender": {
- "message": "Lavender"
+ "message": "Oải hương"
},
"yellow": {
- "message": "Yellow"
+ "message": "Vàng"
},
"indigo": {
- "message": "Indigo"
+ "message": "Chàm"
},
"teal": {
- "message": "Teal"
+ "message": "Xanh mòng két"
},
"salmon": {
- "message": "Salmon"
+ "message": "Đỏ cá hồi"
},
"pink": {
- "message": "Pink"
+ "message": "Hồng"
},
"customColor": {
- "message": "Custom Color"
+ "message": "Tùy chỉnh màu"
},
"selectPlaceholder": {
- "message": "-- Select --"
+ "message": "-- Chọn --"
},
"multiSelectPlaceholder": {
- "message": "-- Type to filter --"
+ "message": "-- Nhập từ khóa để lọc --"
},
"multiSelectLoading": {
- "message": "Retrieving options..."
+ "message": "Đang tải các tuỳ chọn..."
},
"multiSelectNotFound": {
- "message": "No items found"
+ "message": "Không tìm thấy mục nào"
},
"multiSelectClearAll": {
- "message": "Clear all"
+ "message": "Xoá tất cả"
},
"toggleCharacterCount": {
- "message": "Toggle character count",
+ "message": "Bật/tắt hiển thị số ký tự",
"description": "'Character count' describes a feature that displays a number next to each character of the password."
},
"passwordCharacterCount": {
- "message": "Password character count",
+ "message": "Số ký tự mật khẩu",
"description": "'Character count' describes a feature that displays a number next to each character of the password."
},
"hide": {
- "message": "Hide"
+ "message": "Ẩn"
},
"projects": {
- "message": "Projects",
+ "message": "Dự án",
"description": "Description for the Projects field."
},
"lastEdited": {
- "message": "Last edited",
+ "message": "Lần sửa đổi cuối",
"description": "The label for the date and time when a item was last edited."
},
"editSecret": {
- "message": "Edit secret",
+ "message": "Chỉnh sửa bí mật",
"description": "Action to modify an existing secret."
},
"addSecret": {
- "message": "Add secret",
+ "message": "Thêm bí mật",
"description": "Action to create a new secret."
},
"copySecretName": {
@@ -7495,21 +7515,21 @@
"description": "Action to copy the value of a secret to the system's clipboard."
},
"deleteSecret": {
- "message": "Delete secret",
+ "message": "Xóa bí mật",
"description": "Action to delete a single secret from the system."
},
"deleteSecrets": {
- "message": "Delete secrets",
+ "message": "Xóa các bí mật",
"description": "The action to delete multiple secrets from the system."
},
"hardDeleteSecret": {
- "message": "Permanently delete secret"
+ "message": "Xóa vĩnh viễn bí mật"
},
"hardDeleteSecrets": {
- "message": "Permanently delete secrets"
+ "message": "Xóa vĩnh viễn các bí mật"
},
"secretProjectAssociationDescription": {
- "message": "Select projects that the secret will be associated with. Only organization users with access to these projects will be able to see the secret.",
+ "message": "Chọn các dự án mà bí mật sẽ được liên kết. Chỉ những người dùng trong tổ chức có quyền truy cập các dự án này mới có thể xem bí mật.",
"description": "A prompt explaining how secrets can be associated with projects."
},
"selectProjects": {
@@ -7517,102 +7537,102 @@
"description": "A label for a type-to-filter input field to choose projects."
},
"searchProjects": {
- "message": "Search projects",
+ "message": "Tìm kiếm dự án",
"description": "Label for the search bar used to search projects."
},
"project": {
- "message": "Project",
+ "message": "Dự án",
"description": "Similar to collections, projects can be used to group secrets."
},
"editProject": {
- "message": "Edit project",
+ "message": "Chỉnh sửa dự án",
"description": "The action to modify an existing project."
},
"viewProject": {
- "message": "View project",
+ "message": "Xem dự án",
"description": "The action to view details of a project."
},
"deleteProject": {
- "message": "Delete project",
+ "message": "Xóa dự án",
"description": "The action to delete a project from the system."
},
"deleteProjects": {
- "message": "Delete projects",
+ "message": "Xóa các dự án",
"description": "The action to delete multiple projects from the system."
},
"secret": {
- "message": "Secret",
+ "message": "Bí mật",
"description": "Label for a secret (key/value pair)"
},
"serviceAccount": {
- "message": "Service account",
+ "message": "Tài khoản dịch vụ",
"description": "A machine user which can be used to automate processes and access secrets in the system."
},
"serviceAccounts": {
- "message": "Service accounts",
+ "message": "Các tài khoản dịch vụ",
"description": "The title for the section that deals with service accounts."
},
"secrets": {
- "message": "Secrets",
+ "message": "Các bí mật",
"description": "The title for the section of the application that deals with secrets."
},
"nameValuePair": {
- "message": "Name/Value pair",
+ "message": "Cặp Tên/Giá trị",
"description": "Title for a name/ value pair. Secrets typically consist of a name and value pair."
},
"secretEdited": {
- "message": "Secret edited",
+ "message": "Bí mật đã được chỉnh sửa",
"description": "Notification for the successful editing of a secret."
},
"secretCreated": {
- "message": "Secret created",
+ "message": "Bí mật đã được tạo",
"description": "Notification for the successful creation of a secret."
},
"newSecret": {
- "message": "New secret",
+ "message": "Bí mật mới",
"description": "Title for creating a new secret."
},
"newServiceAccount": {
- "message": "New service account",
+ "message": "Tài khoản dịch vụ mới",
"description": "Title for creating a new service account."
},
"secretsNoItemsTitle": {
- "message": "No secrets to show",
+ "message": "Không có bí mật nào để hiển thị",
"description": "Empty state to indicate that there are no secrets to display."
},
"secretsNoItemsMessage": {
- "message": "To get started, add a new secret or import secrets.",
+ "message": "Để bắt đầu, hãy thêm bí mật mới hoặc nhập các bí mật.",
"description": "Message to encourage the user to start adding secrets."
},
"secretsTrashNoItemsMessage": {
- "message": "There are no secrets in the trash."
+ "message": "Không có bí mật nào trong thùng rác."
},
"serviceAccountsNoItemsMessage": {
- "message": "Create a new service account to get started automating secret access.",
+ "message": "Tạo tài khoản dịch vụ mới để bắt đầu tự động hóa việc truy cập bí mật.",
"description": "Message to encourage the user to start creating service accounts."
},
"serviceAccountsNoItemsTitle": {
- "message": "Nothing to show yet",
+ "message": "Chưa có nội dung để hiển thị",
"description": "Title to indicate that there are no service accounts to display."
},
"searchSecrets": {
- "message": "Search secrets",
+ "message": "Tìm kiếm bí mật",
"description": "Placeholder text for searching secrets."
},
"deleteServiceAccounts": {
- "message": "Delete service accounts",
+ "message": "Xóa các tài khoản dịch vụ",
"description": "Title for the action to delete one or multiple service accounts."
},
"deleteServiceAccount": {
- "message": "Delete service account",
+ "message": "Xóa tài khoản dịch vụ",
"description": "Title for the action to delete a single service account."
},
"viewServiceAccount": {
- "message": "View service account",
+ "message": "Xem tài khoản dịch vụ",
"description": "Action to view the details of a service account."
},
"deleteServiceAccountDialogMessage": {
- "message": "Deleting service account $SERVICE_ACCOUNT$ is permanent and irreversible.",
+ "message": "Việc xóa tài khoản dịch vụ $SERVICE_ACCOUNT$ là vĩnh viễn và không thể hoàn tác.",
"placeholders": {
"service_account": {
"content": "$1",
@@ -7621,10 +7641,10 @@
}
},
"deleteServiceAccountsDialogMessage": {
- "message": "Deleting service accounts is permanent and irreversible."
+ "message": "Việc xóa các tài khoản dịch vụ là vĩnh viễn và không thể hoàn tác."
},
"deleteServiceAccountsConfirmMessage": {
- "message": "Delete $COUNT$ service accounts",
+ "message": "Xóa $COUNT$ tài khoản dịch vụ",
"placeholders": {
"count": {
"content": "$1",
@@ -7633,98 +7653,98 @@
}
},
"deleteServiceAccountToast": {
- "message": "Service account deleted"
+ "message": "Đã xóa tài khoản dịch vụ"
},
"deleteServiceAccountsToast": {
- "message": "Service accounts deleted"
+ "message": "Đã xóa các tài khoản dịch vụ"
},
"searchServiceAccounts": {
- "message": "Search service accounts",
+ "message": "Tìm kiếm tài khoản dịch vụ",
"description": "Placeholder text for searching service accounts."
},
"editServiceAccount": {
- "message": "Edit service account",
+ "message": "Chỉnh sửa tài khoản dịch vụ",
"description": "Title for editing a service account."
},
"addProject": {
- "message": "Add project",
+ "message": "Thêm dự án",
"description": "Title for creating a new project."
},
"projectEdited": {
- "message": "Project edited",
+ "message": "Dự án đã được chỉnh sửa",
"description": "Notification for the successful editing of a project."
},
"projectSaved": {
- "message": "Project saved",
+ "message": "Đã lưu dự án",
"description": "Notification for the successful saving of a project."
},
"projectCreated": {
- "message": "Project created",
+ "message": "Dự án đã được tạo",
"description": "Notification for the successful creation of a project."
},
"projectName": {
- "message": "Project name",
+ "message": "Tên dự án",
"description": "Label for entering the name of a project."
},
"newProject": {
- "message": "New project",
+ "message": "Dự án mới",
"description": "Title for creating a new project."
},
"softDeleteSecretWarning": {
- "message": "Deleting secrets can affect existing integrations.",
+ "message": "Việc xóa bí mật có thể ảnh hưởng đến các tích hợp hiện có.",
"description": "Warns that deleting secrets can have consequences on integrations"
},
"softDeletesSuccessToast": {
- "message": "Secrets sent to trash",
+ "message": "Các bí mật đã được chuyển vào thùng rác",
"description": "Notifies that the selected secrets have been moved to the trash"
},
"hardDeleteSecretConfirmation": {
- "message": "Are you sure you want to permanently delete this secret?"
+ "message": "Bạn có chắc chắn muốn xóa vĩnh viễn bí mật này không?"
},
"hardDeleteSecretsConfirmation": {
- "message": "Are you sure you want to permanently delete these secrets?"
+ "message": "Bạn có chắc chắn muốn xóa vĩnh viễn các bí mật này không?"
},
"hardDeletesSuccessToast": {
- "message": "Secrets permanently deleted"
+ "message": "Bí mật đã bị xóa vĩnh viễn"
},
"smAccess": {
- "message": "Access",
+ "message": "Quyền truy cập",
"description": "Title indicating what permissions a service account has"
},
"projectCommaSecret": {
- "message": "Project, Secret",
+ "message": "Dự án, Bí mật",
"description": ""
},
"serviceAccountName": {
- "message": "Service account name",
+ "message": "Tên tài khoản dịch vụ",
"description": "Label for the name of a service account"
},
"serviceAccountCreated": {
- "message": "Service account created",
+ "message": "Đã tạo tài khoản dịch vụ",
"description": "Notifies that a new service account has been created"
},
"serviceAccountUpdated": {
- "message": "Service account updated",
+ "message": "Đã cập nhật tài khoản dịch vụ",
"description": "Notifies that a service account has been updated"
},
"typeOrSelectProjects": {
- "message": "Type or select projects",
+ "message": "Nhập hoặc chọn dự án",
"description": "Instructions for selecting projects for a service account"
},
"newSaTypeToFilter": {
- "message": "Type to filter",
+ "message": "Nhập từ khóa để lọc",
"description": "Instructions for filtering a list of projects or secrets"
},
"deleteProjectsToast": {
- "message": "Projects deleted",
+ "message": "Đã xóa dự án",
"description": "Notifies that the selected projects have been deleted"
},
"deleteProjectToast": {
- "message": "Project deleted",
+ "message": "Đã xóa dự án",
"description": "Notifies that a project has been deleted"
},
"deleteProjectDialogMessage": {
- "message": "Deleting project $PROJECT$ is permanent and irreversible.",
+ "message": "Việc xóa dự án $PROJECT$ là vĩnh viễn và không thể hoàn tác.",
"description": "Informs users that projects are hard deleted and not sent to trash",
"placeholders": {
"project": {
@@ -7734,7 +7754,7 @@
}
},
"deleteProjectInputLabel": {
- "message": "Nhập $CONFIRM$ để tiếp tục",
+ "message": "Nhập \"$CONFIRM$\" để tiếp tục",
"description": "Users are prompted to type 'confirm' to delete a project",
"placeholders": {
"confirm": {
@@ -7744,7 +7764,7 @@
}
},
"deleteProjectConfirmMessage": {
- "message": "Delete $PROJECT$",
+ "message": "Xóa $PROJECT$",
"description": "Confirmation prompt to delete a specific project, where '$PROJECT$' is a placeholder for the name of the project.",
"placeholders": {
"project": {
@@ -7754,7 +7774,7 @@
}
},
"deleteProjectsConfirmMessage": {
- "message": "Delete $COUNT$ Projects",
+ "message": "Xóa $COUNT$ dự án",
"description": "Confirmation prompt to delete multiple projects, where '$COUNT$' is a placeholder for the number of projects to be deleted.",
"placeholders": {
"count": {
@@ -7764,66 +7784,66 @@
}
},
"deleteProjectsDialogMessage": {
- "message": "Deleting projects is permanent and irreversible.",
+ "message": "Việc xóa dự án là vĩnh viễn và không thể hoàn tác.",
"description": "This message is displayed in a dialog box as a warning before proceeding with project deletion."
},
"projectsNoItemsTitle": {
- "message": "No projects to display",
+ "message": "Không có dự án nào để hiển thị",
"description": "Empty state to be displayed when there are no projects to display in the list."
},
"projectsNoItemsMessage": {
- "message": "Add a new project to get started organizing secrets.",
+ "message": "Thêm một dự án mới để bắt đầu sắp xếp bí mật.",
"description": "Message to be displayed when there are no projects to display in the list."
},
"smConfirmationRequired": {
- "message": "Confirmation required",
+ "message": "Yêu cầu xác nhận",
"description": "Indicates that user confirmation is required for an action to proceed."
},
"bulkDeleteProjectsErrorMessage": {
- "message": "The following projects could not be deleted:",
+ "message": "Không thể xóa các dự án sau:",
"description": "Message to be displayed when there is an error during bulk project deletion."
},
"softDeleteSuccessToast": {
- "message": "Secret sent to trash",
+ "message": "Bí mật đã được chuyển vào thùng rác",
"description": "Notification to be displayed when a secret is successfully sent to the trash."
},
"hardDeleteSuccessToast": {
- "message": "Secret permanently deleted"
+ "message": "Bí mật đã bị xóa vĩnh viễn"
},
"accessTokens": {
- "message": "Access tokens",
+ "message": "Mã token truy cập",
"description": "Title for the section displaying access tokens."
},
"createAccessToken": {
- "message": "Create access token",
+ "message": "Tạo token truy cập",
"description": "Button label for creating a new access token."
},
"expires": {
- "message": "Expires",
+ "message": "Hết hạn",
"description": "Label for the expiration date of an access token."
},
"canRead": {
- "message": "Can read",
+ "message": "Có thể đọc",
"description": "Label for the access level of an access token (Read only)."
},
"accessTokensNoItemsTitle": {
- "message": "No access tokens to show",
+ "message": "Không có mã token truy cập để hiển thị",
"description": "Title to be displayed when there are no access tokens to display in the list."
},
"accessTokensNoItemsDesc": {
- "message": "To get started, create an access token",
+ "message": "Để bắt đầu, hãy tạo một token truy cập",
"description": "Message to be displayed when there are no access tokens to display in the list."
},
"downloadAccessToken": {
- "message": "Download or copy before closing.",
+ "message": "Tải xuống hoặc sao chép trước khi đóng.",
"description": "Message to be displayed before closing an access token, reminding the user to download or copy it."
},
"expiresOnAccessToken": {
- "message": "Expires on:",
+ "message": "Hết hạn vào:",
"description": "Label for the expiration date of an access token."
},
"accessTokenCallOutTitle": {
- "message": "Access tokens are not stored and cannot be retrieved",
+ "message": "Mã token truy cập không được lưu trữ và không thể truy xuất",
"description": "Notification to inform the user that access tokens are only displayed once and cannot be retrieved again."
},
"copyToken": {
@@ -7831,11 +7851,11 @@
"description": "Copies the generated access token to the user's clipboard."
},
"accessToken": {
- "message": "Access token",
+ "message": "Mã token truy cập",
"description": "A unique string that gives a client application (eg. CLI) access to a secret or set of secrets."
},
"accessTokenExpirationRequired": {
- "message": "Expiration date required",
+ "message": "Yêu cầu ngày hết hạn",
"description": "Error message indicating that an expiration date for the access token must be set."
},
"accessTokenCreatedAndCopied": {
@@ -7843,40 +7863,40 @@
"description": "Notification to inform the user that the access token has been created and copied to the clipboard."
},
"revokeAccessToken": {
- "message": "Revoke access token",
+ "message": "Thu hồi mã token truy cập",
"description": "Invalidates / cancels an access token and as such removes access to secrets for the client application."
},
"revokeAccessTokens": {
- "message": "Revoke access tokens"
+ "message": "Thu hồi mã token truy cập"
},
"revokeAccessTokenDesc": {
- "message": "Revoking access tokens is permanent and irreversible."
+ "message": "Việc thu hồi mã token truy cập là vĩnh viễn và không thể đảo ngược."
},
"accessTokenRevoked": {
- "message": "Access tokens revoked",
+ "message": "Đã thu hồi mã token truy cập",
"description": "Toast message after deleting one or multiple access tokens."
},
"noAccessTokenSelected": {
- "message": "No access token selected to revoke",
+ "message": "Chưa chọn token truy cập để thu hồi",
"description": "Toast error message after trying to delete access tokens but not selecting any access tokens."
},
"submenu": {
- "message": "Submenu"
+ "message": "Menu con"
},
"from": {
- "message": "From"
+ "message": "Từ"
},
"to": {
- "message": "To"
+ "message": "Đến"
},
"member": {
- "message": "Member"
+ "message": "Thành viên"
},
"update": {
- "message": "Update"
+ "message": "Cập nhật"
},
"plusNMore": {
- "message": "+ $QUANTITY$ more",
+ "message": "+ $QUANTITY$ nhiều hơn",
"placeholders": {
"quantity": {
"content": "$1",
@@ -7885,85 +7905,85 @@
}
},
"groupInfo": {
- "message": "Group info"
+ "message": "Thông tin nhóm"
},
"editGroupMembersDesc": {
- "message": "Grant members access to the group's assigned collections."
+ "message": "Cấp quyền cho thành viên truy cập vào các bộ sưu tập được gán cho nhóm."
},
"editGroupCollectionsDesc": {
- "message": "Grant access to collections by adding them to this group."
+ "message": "Cấp quyền truy cập vào bộ sưu tập bằng cách thêm chúng vào nhóm này."
},
"restrictedCollectionAssignmentDesc": {
- "message": "You can only assign collections you manage."
+ "message": "Bạn chỉ có thể gán các bộ sưu tập mà bạn quản lý."
},
"selectMembers": {
- "message": "Select members"
+ "message": "Chọn thành viên"
},
"selectCollections": {
- "message": "Select collections"
+ "message": "Chọn bộ sưu tập"
},
"role": {
"message": "Role"
},
"removeMember": {
- "message": "Remove member"
+ "message": "Xóa thành viên"
},
"collection": {
- "message": "Collection"
+ "message": "Bộ sưu tập"
},
"noCollection": {
- "message": "No collection"
+ "message": "Chưa có bộ sưu tập nào"
},
"noCollectionsAdded": {
- "message": "No collections added"
+ "message": "Chưa thêm bộ sưu tập nào"
},
"noMembersAdded": {
- "message": "No members added"
+ "message": "Chưa thêm thành viên nào"
},
"noGroupsAdded": {
- "message": "No groups added"
+ "message": "Chưa thêm nhóm nào"
},
"group": {
- "message": "Group"
+ "message": "Nhóm"
},
"domainVerification": {
- "message": "Domain verification"
+ "message": "Xác minh tên miền"
},
"newDomain": {
- "message": "New domain"
+ "message": "Tên miền mới"
},
"noDomains": {
- "message": "No domains"
+ "message": "Chưa có tên miền nào"
},
"noDomainsSubText": {
- "message": "Connecting a domain allows members to skip the SSO identifier field during Login with SSO."
+ "message": "Kết nối tên miền cho phép thành viên bỏ qua trường định danh SSO khi đăng nhập bằng SSO."
},
"copyDnsTxtRecord": {
- "message": "Copy DNS TXT record"
+ "message": "Sao chép bản ghi DNS TXT"
},
"dnsTxtRecord": {
- "message": "DNS TXT record"
+ "message": "Bản ghi DNS TXT"
},
"dnsTxtRecordInputHint": {
"message": "Sao chép và dán bản ghi TXT vào nhà cung cấp DNS của bạn."
},
"removeDomain": {
- "message": "Remove domain"
+ "message": "Xóa tên miền"
},
"removeDomainWarning": {
- "message": "Removing a domain cannot be undone. Are you sure you want to continue?"
+ "message": "Việc xóa tên miền không thể hoàn tác. Bạn có chắc chắn muốn tiếp tục không?"
},
"domainRemoved": {
- "message": "Domain removed"
+ "message": "Đã xóa tên miền"
},
"domainSaved": {
- "message": "Domain saved"
+ "message": "Đã lưu tên miền"
},
"duplicateDomainError": {
- "message": "You can't claim the same domain twice."
+ "message": "Bạn không thể yêu cầu xác nhận cùng một tên miền hai lần."
},
"domainNotAvailable": {
- "message": "Someone else is using $DOMAIN$. Use a different domain to continue.",
+ "message": "Tên miền $DOMAIN$ đang được người khác sử dụng. Vui lòng sử dụng tên miền khác để tiếp tục.",
"placeholders": {
"DOMAIN": {
"content": "$1",
@@ -7972,22 +7992,22 @@
}
},
"domainNameTh": {
- "message": "Name"
+ "message": "Tên"
},
"domainStatusTh": {
- "message": "Status"
+ "message": "Trạng thái"
},
"lastChecked": {
- "message": "Last checked"
+ "message": "Lần kiểm tra cuối"
},
"editDomain": {
"message": "Chỉnh sửa tên miền"
},
"domainFormInvalid": {
- "message": "There are form errors that need your attention"
+ "message": "Có lỗi trong biểu mẫu cần bạn chú ý"
},
"addedDomain": {
- "message": "Added domain $DOMAIN$",
+ "message": "Đã thêm tên miền $DOMAIN$",
"placeholders": {
"DOMAIN": {
"content": "$1",
@@ -7996,7 +8016,7 @@
}
},
"removedDomain": {
- "message": "Removed domain $DOMAIN$",
+ "message": "Đã xóa tên miền $DOMAIN$",
"placeholders": {
"DOMAIN": {
"content": "$1",
@@ -8005,82 +8025,82 @@
}
},
"verificationRequiredForActionSetPinToContinue": {
- "message": "Verification required for this action. Set a PIN to continue."
+ "message": "Cần xác minh cho hành động này. Vui lòng đặt mã PIN để tiếp tục."
},
"setPin": {
- "message": "Set PIN"
+ "message": "Đặt mã PIN"
},
"verifyWithBiometrics": {
- "message": "Verify with biometrics"
+ "message": "Xác minh bằng sinh trắc học"
},
"awaitingConfirmation": {
- "message": "Awaiting confirmation"
+ "message": "Đang chờ xác nhận"
},
"couldNotCompleteBiometrics": {
- "message": "Could not complete biometrics."
+ "message": "Không thể hoàn tất xác minh sinh trắc học."
},
"needADifferentMethod": {
- "message": "Need a different method?"
+ "message": "Cần phương pháp khác?"
},
"useMasterPassword": {
- "message": "Use master password"
+ "message": "Sử dụng mật khẩu chính"
},
"usePin": {
- "message": "Use PIN"
+ "message": "Sử dụng mã PIN"
},
"useBiometrics": {
- "message": "Use biometrics"
+ "message": "Sử dụng sinh trắc học"
},
"enterVerificationCodeSentToEmail": {
- "message": "Enter the verification code that was sent to your email."
+ "message": "Nhập mã xác minh đã được gửi đến email của bạn."
},
"resendCode": {
- "message": "Resend code"
+ "message": "Gửi lại mã"
},
"memberColumnHeader": {
- "message": "Member"
+ "message": "Thành viên"
},
"groupSlashMemberColumnHeader": {
- "message": "Group/Member"
+ "message": "Nhóm/Thành viên"
},
"selectGroupsAndMembers": {
- "message": "Select groups and members"
+ "message": "Chọn nhóm và thành viên"
},
"selectGroups": {
- "message": "Select groups"
+ "message": "Chọn nhóm"
},
"userPermissionOverrideHelperDesc": {
- "message": "Permissions set for a member will replace permissions set by that member's group."
+ "message": "Các quyền được thiết lập cho một thành viên sẽ thay thế các quyền do nhóm của thành viên đó thiết lập."
},
"noMembersOrGroupsAdded": {
- "message": "No members or groups added"
+ "message": "Chưa thêm thành viên hoặc nhóm nào"
},
"deleted": {
- "message": "Deleted"
+ "message": "Đã xóa"
},
"memberStatusFilter": {
- "message": "Member status filter"
+ "message": "Bộ lọc trạng thái thành viên"
},
"inviteMember": {
- "message": "Invite member"
+ "message": "Mời thành viên"
},
"addSponsorship": {
- "message": "Add sponsorship"
+ "message": "Thêm tài trợ"
},
"needsConfirmation": {
- "message": "Needs confirmation"
+ "message": "Cần xác nhận"
},
"memberRole": {
- "message": "Member role"
+ "message": "Vai trò thành viên"
},
"moreFromBitwarden": {
- "message": "More from Bitwarden"
+ "message": "Thêm từ Bitwarden"
},
"switchProducts": {
- "message": "Switch products"
+ "message": "Chuyển đổi sản phẩm"
},
"freeOrgInvLimitReachedManageBilling": {
- "message": "Free organizations may have up to $SEATCOUNT$ members. Upgrade to a paid plan to invite more members.",
+ "message": "Tổ chức miễn phí có thể có tối đa $SEATCOUNT$ thành viên. Nâng cấp lên gói trả phí để mời thêm thành viên.",
"placeholders": {
"seatcount": {
"content": "$1",
@@ -8089,7 +8109,7 @@
}
},
"freeOrgInvLimitReachedNoManageBilling": {
- "message": "Free organizations may have up to $SEATCOUNT$ members. Contact your organization owner to upgrade.",
+ "message": "Tổ chức miễn phí có thể có tối đa $SEATCOUNT$ thành viên. Liên hệ với chủ sở hữu tổ chức của bạn để nâng cấp.",
"placeholders": {
"seatcount": {
"content": "$1",
@@ -8098,7 +8118,7 @@
}
},
"teamsStarterPlanInvLimitReachedManageBilling": {
- "message": "Teams Starter plans may have up to $SEATCOUNT$ members. Upgrade to your plan to invite more members.",
+ "message": "Gói Teams Starter có thể có tối đa $SEATCOUNT$ thành viên. Nâng cấp gói của bạn để mời thêm thành viên.",
"placeholders": {
"seatcount": {
"content": "$1",
@@ -8107,7 +8127,7 @@
}
},
"teamsStarterPlanInvLimitReachedNoManageBilling": {
- "message": "Teams Starter plans may have up to $SEATCOUNT$ members. Contact your organization owner to upgrade your plan and invite more members.",
+ "message": "Gói Teams Starter có thể có tối đa $SEATCOUNT$ thành viên. Liên hệ với chủ sở hữu tổ chức của bạn để nâng cấp gói và mời thêm thành viên.",
"placeholders": {
"seatcount": {
"content": "$1",
@@ -8116,7 +8136,7 @@
}
},
"freeOrgMaxCollectionReachedManageBilling": {
- "message": "Free organizations may have up to $COLLECTIONCOUNT$ collections. Upgrade to a paid plan to add more collections.",
+ "message": "Tổ chức miễn phí có thể có tối đa $COLLECTIONCOUNT$ bộ sưu tập. Nâng cấp lên gói trả phí để thêm nhiều bộ sưu tập hơn.",
"placeholders": {
"COLLECTIONCOUNT": {
"content": "$1",
@@ -8125,7 +8145,7 @@
}
},
"freeOrgMaxCollectionReachedNoManageBilling": {
- "message": "Free organizations may have up to $COLLECTIONCOUNT$ collections. Contact your organization owner to upgrade.",
+ "message": "Tổ chức miễn phí có thể có tối đa $COLLECTIONCOUNT$ bộ sưu tập. Liên hệ với chủ sở hữu tổ chức của bạn để nâng cấp.",
"placeholders": {
"COLLECTIONCOUNT": {
"content": "$1",
@@ -8134,7 +8154,7 @@
}
},
"server": {
- "message": "Server"
+ "message": "Máy chủ"
},
"exportData": {
"message": "Xuất dữ liệu"
@@ -8143,7 +8163,7 @@
"message": "Xuất dữ liệu bí mật của tổ chức"
},
"exportingOrganizationSecretDataDescription": {
- "message": "Only the Secrets Manager data associated with $ORGANIZATION$ will be exported. Items in other products or from other organizations will not be included.",
+ "message": "Chỉ dữ liệu Trình quản lý Bí mật liên kết với $ORGANIZATION$ mới được xuất. Các mục trong sản phẩm khác hoặc từ tổ chức khác sẽ không được bao gồm.",
"placeholders": {
"ORGANIZATION": {
"content": "$1",
@@ -8155,7 +8175,7 @@
"message": "Tải tập tin lên"
},
"upload": {
- "message": "Upload"
+ "message": "Tải lên"
},
"acceptedFormats": {
"message": "Định dạng được chấp nhận:"
@@ -8167,13 +8187,13 @@
"message": "hoặc"
},
"unlockWithBiometrics": {
- "message": "Unlock with biometrics"
+ "message": "Mở khóa bằng sinh trắc học"
},
"unlockWithPin": {
- "message": "Unlock with PIN"
+ "message": "Mở khóa bằng mã PIN"
},
"unlockWithMasterPassword": {
- "message": "Unlock with master password"
+ "message": "Mở khóa bằng mật khẩu chính"
},
"licenseAndBillingManagement": {
"message": "Quản lý giấy phép và thanh toán"
@@ -8185,7 +8205,7 @@
"message": "Tải lên thủ công"
},
"manualBillingTokenUploadDesc": {
- "message": "If you do not want to opt into billing sync, manually upload your license here. This will not automatically unlock Families sponsorships."
+ "message": "Nếu bạn không muốn tham gia đồng bộ thanh toán, hãy tải lên giấy phép của bạn theo cách thủ công tại đây. Điều này sẽ không tự động mở khóa tài trợ Gói Gia đình."
},
"syncLicense": {
"message": "Đồng bộ hóa giấy phép"
@@ -8203,10 +8223,10 @@
"message": "Trợ giúp về Đồng Bộ Thanh Toán"
},
"licensePaidFeaturesHelp": {
- "message": "License paid features help"
+ "message": "Trợ giúp tính năng trả phí theo giấy phép"
},
"selfHostGracePeriodHelp": {
- "message": "After your subscription expires, you have 60 days to apply an updated license file to your organization. Grace period ends $GRACE_PERIOD_END_DATE$.",
+ "message": "Sau khi đăng ký của bạn hết hạn, bạn có 60 ngày để áp dụng tệp giấy phép đã cập nhật cho tổ chức của mình. Thời gian gia hạn kết thúc vào $GRACE_PERIOD_END_DATE$.",
"placeholders": {
"GRACE_PERIOD_END_DATE": {
"content": "$1",
@@ -8218,64 +8238,64 @@
"message": "Tải lên giấy phép"
},
"projectPeopleDescription": {
- "message": "Grant groups or people access to this project."
+ "message": "Cấp quyền truy cập dự án này cho nhóm hoặc cá nhân."
},
"projectPeopleSelectHint": {
- "message": "Type or select people or groups"
+ "message": "Nhập hoặc chọn người hoặc nhóm"
},
"projectServiceAccountsDescription": {
- "message": "Grant service accounts access to this project."
+ "message": "Cấp quyền cho tài khoản dịch vụ truy cập vào dự án này."
},
"projectServiceAccountsSelectHint": {
- "message": "Type or select service accounts"
+ "message": "Nhập hoặc chọn tài khoản dịch vụ"
},
"projectEmptyPeopleAccessPolicies": {
- "message": "Add people or groups to start collaborating"
+ "message": "Thêm người hoặc nhóm để bắt đầu cộng tác"
},
"projectEmptyServiceAccountAccessPolicies": {
- "message": "Add service accounts to grant access"
+ "message": "Thêm tài khoản dịch vụ để cấp quyền truy cập"
},
"serviceAccountPeopleDescription": {
- "message": "Grant groups or people access to this service account."
+ "message": "Cấp quyền truy cập tài khoản dịch vụ này cho nhóm hoặc cá nhân."
},
"serviceAccountProjectsDescription": {
- "message": "Assign projects to this service account. "
+ "message": "Gán dự án cho tài khoản dịch vụ này. "
},
"serviceAccountEmptyProjectAccesspolicies": {
- "message": "Add projects to grant access"
+ "message": "Thêm dự án để cấp quyền truy cập"
},
"canReadWrite": {
- "message": "Can read, write"
+ "message": "Có thể đọc, ghi"
},
"groupSlashUser": {
- "message": "Group/User"
+ "message": "Nhóm/Người dùng"
},
"lowKdfIterations": {
- "message": "Low KDF Iterations"
+ "message": "Số vòng lặp KDF thấp"
},
"updateLowKdfIterationsDesc": {
- "message": "Update your encryption settings to meet new security recommendations and improve account protection."
+ "message": "Cập nhật cài đặt mã hóa của bạn để đáp ứng các khuyến nghị bảo mật mới và cải thiện bảo vệ tài khoản."
},
"kdfSettingsChangeLogoutWarning": {
- "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login, if any. We recommend exporting your vault before changing your encryption settings to prevent data loss."
+ "message": "Tiếp tục sẽ đăng xuất bạn khỏi tất cả các phiên hoạt động. Bạn sẽ cần đăng nhập lại và hoàn tất đăng nhập hai bước (nếu có). Chúng tôi khuyến nghị xuất kho mật khẩu của bạn trước khi thay đổi cài đặt mã hóa để tránh mất dữ liệu."
},
"secretsManager": {
- "message": "Secrets Manager"
+ "message": "Trình quản lý Bí mật"
},
"secretsManagerAccessDescription": {
- "message": "Activate user access to Secrets Manager."
+ "message": "Kích hoạt quyền truy cập Trình quản lý Bí mật cho người dùng."
},
"userAccessSecretsManagerGA": {
- "message": "This user can access Secrets Manager"
+ "message": "Người dùng này có thể truy cập Trình quản lý Bí mật"
},
"important": {
- "message": "Important:"
+ "message": "Quan trọng:"
},
"viewAll": {
- "message": "View all"
+ "message": "Xem tất cả"
},
"showingPortionOfTotal": {
- "message": "Showing $PORTION$ of $TOTAL$",
+ "message": "Hiển thị $PORTION$ trên $TOTAL$",
"placeholders": {
"portion": {
"content": "$1",
@@ -8297,7 +8317,7 @@
"message": "Đã xảy ra lỗi khi cố đọc tập tin nhập"
},
"accessedSecretWithId": {
- "message": "Accessed a secret with identifier: $SECRET_ID$",
+ "message": "Đã truy cập một bí mật với định danh: $SECRET_ID$",
"placeholders": {
"secret_id": {
"content": "$1",
@@ -8306,7 +8326,7 @@
}
},
"accessedSecret": {
- "message": "Accessed secret $SECRET_ID$.",
+ "message": "Đã truy cập bí mật $SECRET_ID$.",
"placeholders": {
"secret_id": {
"content": "$1",
@@ -8315,7 +8335,7 @@
}
},
"editedSecretWithId": {
- "message": "Edited a secret with identifier: $SECRET_ID$",
+ "message": "Đã chỉnh sửa một bí mật với định danh: $SECRET_ID$",
"placeholders": {
"secret_id": {
"content": "$1",
@@ -8324,7 +8344,7 @@
}
},
"deletedSecretWithId": {
- "message": "Deleted a secret with identifier: $SECRET_ID$",
+ "message": "Đã xóa một bí mật với định danh: $SECRET_ID$",
"placeholders": {
"secret_id": {
"content": "$1",
@@ -8333,7 +8353,7 @@
}
},
"createdSecretWithId": {
- "message": "Created a new secret with identifier: $SECRET_ID$",
+ "message": "Đã tạo một bí mật mới với định danh: $SECRET_ID$",
"placeholders": {
"secret_id": {
"content": "$1",
@@ -8346,32 +8366,32 @@
"description": "Software Development Kit"
},
"createAnAccount": {
- "message": "Create an account"
+ "message": "Tạo một tài khoản"
},
"createSecret": {
- "message": "Create a secret"
+ "message": "Tạo bí mật"
},
"createProject": {
- "message": "Create a project"
+ "message": "Tạo một dự án"
},
"createServiceAccount": {
- "message": "Create a service account"
+ "message": "Tạo tài khoản dịch vụ"
},
"downloadThe": {
- "message": "Download the",
+ "message": "Tải xuống",
"description": "Link to a downloadable resource. This will be used as part of a larger phrase. Example: Download the Secrets Manager CLI"
},
"smCLI": {
- "message": "Secrets Manager CLI"
+ "message": "CLI Trình quản lý Bí mật"
},
"importSecrets": {
- "message": "Import secrets"
+ "message": "Nhập bí mật"
},
"getStarted": {
- "message": "Get started"
+ "message": "Bắt đầu"
},
"complete": {
- "message": "$COMPLETED$/$TOTAL$ Complete",
+ "message": "Hoàn thành $COMPLETED$/$TOTAL$",
"placeholders": {
"COMPLETED": {
"content": "$1",
@@ -8384,64 +8404,64 @@
}
},
"restoreSecret": {
- "message": "Restore secret"
+ "message": "Khôi phục bí mật"
},
"restoreSecrets": {
- "message": "Restore secrets"
+ "message": "Khôi phục bí mật"
},
"restoreSecretPrompt": {
- "message": "Are you sure you want to restore this secret?"
+ "message": "Bạn có chắc chắn muốn khôi phục bí mật này không?"
},
"restoreSecretsPrompt": {
- "message": "Are you sure you want to restore these secrets?"
+ "message": "Bạn có chắc chắn muốn khôi phục các bí mật này không?"
},
"secretRestoredSuccessToast": {
- "message": "Secret restored"
+ "message": "Đã khôi phục bí mật"
},
"secretsRestoredSuccessToast": {
- "message": "Secrets restored"
+ "message": "Đã khôi phục các bí mật"
},
"selectionIsRequired": {
"message": "Lựa chọn là bắt buộc."
},
"saPeopleWarningTitle": {
- "message": "Access tokens still available"
+ "message": "Các token truy cập vẫn còn hiệu lực"
},
"saPeopleWarningMessage": {
- "message": "Removing people from a service account does not remove the access tokens they created. For security best practice, it is recommended to revoke access tokens created by people removed from a service account."
+ "message": "Việc xóa người khỏi tài khoản dịch vụ không xóa các mã token truy cập mà họ đã tạo. Để đảm bảo an toàn, bạn nên thu hồi các mã token truy cập được tạo bởi những người đã bị xóa khỏi tài khoản dịch vụ."
},
"smAccessRemovalWarningProjectTitle": {
- "message": "Remove access to this project"
+ "message": "Thu hồi quyền truy cập dự án này"
},
"smAccessRemovalWarningProjectMessage": {
- "message": "This action will remove your access to the project."
+ "message": "Hành động này sẽ thu hồi quyền truy cập của bạn vào dự án."
},
"smAccessRemovalWarningSaTitle": {
- "message": "Remove access to this service account"
+ "message": "Thu hồi quyền truy cập tài khoản dịch vụ này"
},
"smAccessRemovalWarningSaMessage": {
- "message": "This action will remove your access to the service account."
+ "message": "Hành động này sẽ thu hồi quyền truy cập của bạn vào tài khoản dịch vụ."
},
"removeAccess": {
- "message": "Remove access"
+ "message": "Thu hồi quyền truy cập"
},
"checkForBreaches": {
- "message": "Check known data breaches for this password"
+ "message": "Kiểm tra các vụ rò rỉ dữ liệu đã biết với mật khẩu này"
},
"exposedMasterPassword": {
- "message": "Exposed Master Password"
+ "message": "Mật khẩu chính đã bị lộ"
},
"exposedMasterPasswordDesc": {
- "message": "Password found in a data breach. Use a unique password to protect your account. Are you sure you want to use an exposed password?"
+ "message": "Mật khẩu này đã bị lộ trong một vụ rò rỉ dữ liệu. Hãy sử dụng mật khẩu duy nhất để bảo vệ tài khoản của bạn. Bạn có chắc chắn muốn sử dụng mật khẩu đã bị lộ này không?"
},
"weakAndExposedMasterPassword": {
- "message": "Weak and Exposed Master Password"
+ "message": "Mật khẩu chính yếu và đã bị lộ"
},
"weakAndBreachedMasterPasswordDesc": {
- "message": "Weak password identified and found in a data breach. Use a strong and unique password to protect your account. Are you sure you want to use this password?"
+ "message": "Phát hiện mật khẩu yếu và đã bị lộ trong một vụ rò rỉ dữ liệu. Hãy sử dụng mật khẩu mạnh và duy nhất để bảo vệ tài khoản của bạn. Bạn có chắc chắn muốn sử dụng mật khẩu này không?"
},
"characterMinimum": {
- "message": "$LENGTH$ character minimum",
+ "message": "Tối thiểu $LENGTH$ ký tự",
"placeholders": {
"length": {
"content": "$1",
@@ -8450,7 +8470,7 @@
}
},
"masterPasswordMinimumlength": {
- "message": "Master password must be at least $LENGTH$ characters long.",
+ "message": "Mật khẩu chính phải có độ dài ít nhất $LENGTH$ ký tự.",
"placeholders": {
"length": {
"content": "$1",
@@ -8463,106 +8483,106 @@
"description": "Notification to inform the user that a form's input can't contain only whitespace."
},
"dismiss": {
- "message": "Dismiss"
+ "message": "Đóng"
},
"notAvailableForFreeOrganization": {
- "message": "This feature is not available for free organizations. Contact your organization owner to upgrade."
+ "message": "Tính năng này không khả dụng cho tổ chức miễn phí. Vui lòng liên hệ chủ tổ chức để nâng cấp."
},
"smProjectSecretsNoItemsNoAccess": {
- "message": "Contact your organization's admin to manage secrets for this project.",
+ "message": "Liên hệ quản trị viên tổ chức của bạn để quản lý bí mật cho dự án này.",
"description": "The message shown to the user under a project's secrets tab when the user only has read access to the project."
},
"enforceOnLoginDesc": {
- "message": "Require existing members to change their passwords"
+ "message": "Yêu cầu các thành viên hiện tại thay đổi mật khẩu của họ"
},
"smProjectDeleteAccessRestricted": {
- "message": "You don't have permissions to delete this project",
+ "message": "Bạn không có quyền xóa dự án này",
"description": "The individual description shown to the user when the user doesn't have access to delete a project."
},
"smProjectsDeleteBulkConfirmation": {
- "message": "The following projects can not be deleted. Would you like to continue?",
+ "message": "Không thể xóa các dự án sau. Bạn có muốn tiếp tục không?",
"description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects."
},
"updateKdfSettings": {
- "message": "Update KDF settings"
+ "message": "Cập nhật cài đặt KDF"
},
"loginInitiated": {
- "message": "Login initiated"
+ "message": "Đăng nhập đã được khởi tạo"
},
"rememberThisDeviceToMakeFutureLoginsSeamless": {
- "message": "Remember this device to make future logins seamless"
+ "message": "Ghi nhớ thiết bị này để đăng nhập thuận tiện hơn trong tương lai"
},
"deviceApprovalRequired": {
- "message": "Device approval required. Select an approval option below:"
+ "message": "Yêu cầu phê duyệt thiết bị. Vui lòng chọn một tùy chọn phê duyệt bên dưới:"
},
"deviceApprovalRequiredV2": {
- "message": "Device approval required"
+ "message": "Cần phê duyệt thiết bị"
},
"selectAnApprovalOptionBelow": {
- "message": "Select an approval option below"
+ "message": "Chọn một tùy chọn phê duyệt bên dưới"
},
"rememberThisDevice": {
- "message": "Remember this device"
+ "message": "Ghi nhớ thiết bị này"
},
"uncheckIfPublicDevice": {
"message": "Bỏ chọn nếu sử dụng thiết bị công cộng"
},
"approveFromYourOtherDevice": {
- "message": "Approve from your other device"
+ "message": "Phê duyệt từ thiết bị khác của bạn"
},
"requestAdminApproval": {
- "message": "Request admin approval"
+ "message": "Yêu cầu phê duyệt từ quản trị viên"
},
"unableToCompleteLogin": {
- "message": "Unable to complete login"
+ "message": "Không thể hoàn tất đăng nhập"
},
"loginOnTrustedDeviceOrAskAdminToAssignPassword": {
- "message": "You need to log in on a trusted device or ask your administrator to assign you a password."
+ "message": "Bạn cần đăng nhập trên thiết bị đáng tin cậy hoặc yêu cầu quản trị viên cấp mật khẩu cho bạn."
},
"trustedDeviceEncryption": {
- "message": "Trusted device encryption"
+ "message": "Mã hóa thiết bị đáng tin cậy"
},
"trustedDevices": {
- "message": "Trusted devices"
+ "message": "Các thiết bị đáng tin cậy"
},
"memberDecryptionOptionTdeDescPart1": {
- "message": "Members will not need a master password when logging in with SSO. Master password is replaced with an encryption key stored on the device, making that device trusted. The first device a member creates their account and logs into will be trusted. New devices will need to be approved by an existing trusted device or by an administrator. The",
+ "message": "Các thành viên sẽ không cần mật khẩu chính khi đăng nhập bằng SSO. Mật khẩu chính được thay thế bằng khóa mã hóa được lưu trữ trên thiết bị, biến thiết bị đó thành thiết bị đáng tin cậy. Thiết bị đầu tiên mà thành viên tạo tài khoản và đăng nhập sẽ được coi là đáng tin cậy. Các thiết bị mới sẽ cần được phê duyệt bởi một thiết bị đáng tin cậy hiện có hoặc bởi quản trị viên.",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Members will not need a master password when logging in with SSO. Master password is replaced with an encryption key stored on the device, making that device trusted. The first device a member creates their account and logs into will be trusted. New devices will need to be approved by an existing trusted device or by an administrator. The single organization policy, SSO required policy, and account recovery administration policy will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescLink1": {
- "message": "single organization",
+ "message": "tổ chức đơn lẻ",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Members will not need a master password when logging in with SSO. Master password is replaced with an encryption key stored on the device, making that device trusted. The first device a member creates their account and logs into will be trusted. New devices will need to be approved by an existing trusted device or by an administrator. The single organization policy, SSO required policy, and account recovery administration policy will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescPart2": {
- "message": "policy,",
+ "message": "chính sách,",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Members will not need a master password when logging in with SSO. Master password is replaced with an encryption key stored on the device, making that device trusted. The first device a member creates their account and logs into will be trusted. New devices will need to be approved by an existing trusted device or by an administrator. The single organization policy, SSO required policy, and account recovery administration policy will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescLink2": {
- "message": "SSO required",
+ "message": "Bắt buộc SSO",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Members will not need a master password when logging in with SSO. Master password is replaced with an encryption key stored on the device, making that device trusted. The first device a member creates their account and logs into will be trusted. New devices will need to be approved by an existing trusted device or by an administrator. The single organization policy, SSO required policy, and account recovery administration policy will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescPart3": {
- "message": "policy, and",
+ "message": "chính sách, và",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Members will not need a master password when logging in with SSO. Master password is replaced with an encryption key stored on the device, making that device trusted. The first device a member creates their account and logs into will be trusted. New devices will need to be approved by an existing trusted device or by an administrator. The single organization policy, SSO required policy, and account recovery administration policy will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescLink3": {
- "message": "account recovery administration",
+ "message": "quản lý khôi phục tài khoản",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Members will not need a master password when logging in with SSO. Master password is replaced with an encryption key stored on the device, making that device trusted. The first device a member creates their account and logs into will be trusted. New devices will need to be approved by an existing trusted device or by an administrator. The single organization policy, SSO required policy, and account recovery administration policy will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescPart4": {
- "message": "policy will turn on when this option is used.",
+ "message": "chính sách sẽ được kích hoạt khi tùy chọn này được sử dụng.",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Members will not need a master password when logging in with SSO. Master password is replaced with an encryption key stored on the device, making that device trusted. The first device a member creates their account and logs into will be trusted. New devices will need to be approved by an existing trusted device or by an administrator. The single organization policy, SSO required policy, and account recovery administration policy will turn on when this option is used.'"
},
"orgPermissionsUpdatedMustSetPassword": {
- "message": "Your organization permissions were updated, requiring you to set a master password.",
+ "message": "Quyền truy cập của tổ chức bạn đã được cập nhật, yêu cầu bạn phải thiết lập mật khẩu chính.",
"description": "Used as a card title description on the set password page to explain why the user is there"
},
"orgRequiresYouToSetPassword": {
- "message": "Your organization requires you to set a master password.",
+ "message": "Tổ chức của bạn yêu cầu bạn thiết lập mật khẩu chính.",
"description": "Used as a card title description on the set password page to explain why the user is there"
},
"cardMetrics": {
- "message": "out of $TOTAL$",
+ "message": "trong tổng số $TOTAL$",
"placeholders": {
"total": {
"content": "$1",
@@ -8571,7 +8591,7 @@
}
},
"notFound": {
- "message": "$RESOURCE$ not found",
+ "message": "Không tìm thấy $RESOURCE$",
"placeholders": {
"resource": {
"content": "$1",
@@ -8580,86 +8600,86 @@
}
},
"verificationRequired": {
- "message": "Verification required",
+ "message": "Yêu cầu xác minh",
"description": "Default title for the user verification dialog."
},
"recoverAccount": {
- "message": "Recover account"
+ "message": "Khôi phục tài khoản"
},
"updatedTempPassword": {
- "message": "User updated a password issued through account recovery."
+ "message": "Người dùng đã cập nhật mật khẩu được cấp thông qua khôi phục tài khoản."
},
"activatedAccessToSecretsManager": {
- "message": "Activated access to Secrets Manager",
+ "message": "Đã kích hoạt quyền truy cập Trình quản lý Bí mật",
"description": "Confirmation message that one or more users gained access to Secrets Manager"
},
"activateAccess": {
- "message": "Activate access"
+ "message": "Kích hoạt quyền truy cập"
},
"bulkEnableSecretsManagerDescription": {
- "message": "Grant the following members access to Secrets Manager. The role granted in the Password Manager will apply to Secrets Manager.",
+ "message": "Cấp quyền truy cập Trình quản lý Bí mật cho các thành viên sau. Vai trò được cấp trong Trình quản lý Mật khẩu sẽ áp dụng cho Trình quản lý Bí mật.",
"description": "This description is shown to an admin when they are attempting to add more users to Secrets Manager."
},
"activateSecretsManager": {
- "message": "Activate Secrets Manager"
+ "message": "Kích hoạt Trình quản lý Bí mật"
},
"yourOrganizationsFingerprint": {
- "message": "Your organization's fingerprint phrase",
+ "message": "Cụm từ xác thực của tổ chức bạn",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their organization's public key with another user, for the purposes of sharing."
},
"deviceApprovals": {
- "message": "Device approvals"
+ "message": "Phê duyệt thiết bị"
},
"deviceApprovalsDesc": {
- "message": "Approve login requests below to allow the requesting member to finish logging in. Unapproved requests expire after 1 week. Verify the member’s information before approving."
+ "message": "Phê duyệt các yêu cầu đăng nhập dưới đây để cho phép thành viên yêu cầu hoàn tất đăng nhập. Các yêu cầu chưa được phê duyệt sẽ hết hạn sau 1 tuần. Xác minh thông tin của thành viên trước khi phê duyệt."
},
"deviceInfo": {
- "message": "Device info"
+ "message": "Thông tin thiết bị"
},
"time": {
- "message": "Time"
+ "message": "Thời gian"
},
"denyAllRequests": {
- "message": "Deny all requests"
+ "message": "Từ chối tất cả yêu cầu"
},
"denyRequest": {
- "message": "Deny request"
+ "message": "Từ chối yêu cầu"
},
"approveRequest": {
- "message": "Approve request"
+ "message": "Phê duyệt yêu cầu"
},
"deviceApproved": {
- "message": "Device approved"
+ "message": "Thiết bị đã được chấp nhận"
},
"deviceRemoved": {
- "message": "Device removed"
+ "message": "Đã xóa thiết bị"
},
"removeDevice": {
- "message": "Remove device"
+ "message": "Xóa thiết bị"
},
"removeDeviceConfirmation": {
- "message": "Are you sure you want to remove this device?"
+ "message": "Bạn có chắc chắn muốn xóa thiết bị này không?"
},
"noDeviceRequests": {
- "message": "No device requests"
+ "message": "Không có yêu cầu thiết bị"
},
"noDeviceRequestsDesc": {
- "message": "Member device approval requests will appear here"
+ "message": "Yêu cầu phê duyệt thiết bị của thành viên sẽ xuất hiện tại đây"
},
"loginRequestDenied": {
- "message": "Login request denied"
+ "message": "Yêu cầu đăng nhập bị từ chối"
},
"allLoginRequestsDenied": {
- "message": "All login requests denied"
+ "message": "Tất cả yêu cầu đăng nhập bị từ chối"
},
"loginRequestApproved": {
- "message": "Login request approved"
+ "message": "Yêu cầu đăng nhập đã được phê duyệt"
},
"removeOrgUserNoMasterPasswordTitle": {
- "message": "Account does not have master password"
+ "message": "Tài khoản không có mật khẩu chính"
},
"removeOrgUserNoMasterPasswordDesc": {
- "message": "Removing $USER$ without setting a master password for them may restrict access to their full account. Are you sure you want to continue?",
+ "message": "Việc xóa $USER$ mà không đặt mật khẩu chính cho họ có thể hạn chế quyền truy cập vào toàn bộ tài khoản của họ. Bạn có chắc chắn muốn tiếp tục không?",
"placeholders": {
"user": {
"content": "$1",
@@ -8668,13 +8688,13 @@
}
},
"noMasterPassword": {
- "message": "No master password"
+ "message": "Không có mật khẩu chính"
},
"removeMembersWithoutMasterPasswordWarning": {
- "message": "Removing members who do not have master passwords without setting one for them may restrict access to their full account."
+ "message": "Việc xóa các thành viên không có mật khẩu chính mà không thiết lập mật khẩu cho họ có thể hạn chế quyền truy cập vào toàn bộ tài khoản của họ."
},
"approvedAuthRequest": {
- "message": "Approved device for $ID$.",
+ "message": "Đã phê duyệt thiết bị cho $ID$.",
"placeholders": {
"id": {
"content": "$1",
@@ -8683,7 +8703,7 @@
}
},
"rejectedAuthRequest": {
- "message": "Denied device for $ID$.",
+ "message": "Đã từ chối thiết bị cho $ID$.",
"placeholders": {
"id": {
"content": "$1",
@@ -8692,13 +8712,13 @@
}
},
"requestedDeviceApproval": {
- "message": "Requested device approval."
+ "message": "Đã yêu cầu phê duyệt thiết bị."
},
"tdeOffboardingPasswordSet": {
- "message": "User set a master password during TDE offboarding."
+ "message": "Người dùng đã đặt mật khẩu chính trong quá trình offboarding TDE."
},
"startYour7DayFreeTrialOfBitwardenFor": {
- "message": "Start your 7-Day free trial of Bitwarden for $ORG$",
+ "message": "Bắt đầu dùng thử 7 ngày miễn phí Bitwarden cho $ORG$",
"placeholders": {
"org": {
"content": "$1",
@@ -8707,7 +8727,7 @@
}
},
"startYour7DayFreeTrialOfBitwardenSecretsManagerFor": {
- "message": "Start your 7-Day free trial of Bitwarden Secrets Manager for $ORG$",
+ "message": "Bắt đầu dùng thử 7 ngày miễn phí Trình quản lý Bí mật Bitwarden cho $ORG$",
"placeholders": {
"org": {
"content": "$1",
@@ -8716,43 +8736,43 @@
}
},
"next": {
- "message": "Next"
+ "message": "Tiếp theo"
},
"ssoLoginIsRequired": {
"message": "Yêu cầu đăng nhập bằng SSO"
},
"selectedRegionFlag": {
- "message": "Selected region flag"
+ "message": "Cờ vùng đã chọn"
},
"accountSuccessfullyCreated": {
- "message": "Account successfully created!"
+ "message": "Tạo tài khoản thành công!"
},
"adminApprovalRequested": {
- "message": "Admin approval requested"
+ "message": "Yêu cầu quản trị viên phê duyệt"
},
"adminApprovalRequestSentToAdmins": {
- "message": "Your request has been sent to your admin."
+ "message": "Yêu cầu của bạn đã được gửi đến quản trị viên."
},
"troubleLoggingIn": {
- "message": "Trouble logging in?"
+ "message": "Gặp vấn đề khi đăng nhập?"
},
"loginApproved": {
- "message": "Login approved"
+ "message": "Lượt đăng nhập đã phê duyệt"
},
"userEmailMissing": {
- "message": "User email missing"
+ "message": "Thiếu email người dùng"
},
"activeUserEmailNotFoundLoggingYouOut": {
- "message": "Active user email not found. Logging you out."
+ "message": "Không tìm thấy email người dùng đang hoạt động. Đang đăng xuất bạn."
},
"deviceTrusted": {
- "message": "Device trusted"
+ "message": "Thiết bị đáng tin cậy"
},
"inviteUsers": {
- "message": "Invite Users"
+ "message": "Mời người dùng"
},
"secretsManagerForPlan": {
- "message": "Secrets Manager for $PLAN$",
+ "message": "Trình quản lý Bí mật cho $PLAN$",
"placeholders": {
"plan": {
"content": "$1",
@@ -8761,19 +8781,19 @@
}
},
"secretsManagerForPlanDesc": {
- "message": "For engineering and DevOps teams to manage secrets throughout the software development lifecycle."
+ "message": "Dành cho các nhóm kỹ thuật và DevOps quản lý bí mật xuyên suốt vòng đời phát triển phần mềm."
},
"free2PersonOrganization": {
- "message": "Free 2-person Organizations"
+ "message": "Miễn phí cho 2 người của tổ chức"
},
"unlimitedSecrets": {
- "message": "Unlimited secrets"
+ "message": "Bí mật không giới hạn"
},
"unlimitedProjects": {
- "message": "Unlimited projects"
+ "message": "Dự án không giới hạn"
},
"projectsIncluded": {
- "message": "$COUNT$ projects included",
+ "message": "Bao gồm $COUNT$ dự án",
"placeholders": {
"count": {
"content": "$1",
@@ -8782,7 +8802,7 @@
}
},
"serviceAccountsIncluded": {
- "message": "$COUNT$ service accounts included",
+ "message": "Bao gồm $COUNT$ tài khoản dịch vụ",
"placeholders": {
"count": {
"content": "$1",
@@ -8791,7 +8811,7 @@
}
},
"additionalServiceAccountCost": {
- "message": "$COST$ per month for additional service accounts",
+ "message": "$COST$ mỗi tháng cho các tài khoản dịch vụ bổ sung",
"placeholders": {
"cost": {
"content": "$1",
@@ -8800,16 +8820,16 @@
}
},
"subscribeToSecretsManager": {
- "message": "Subscribe to Secrets Manager"
+ "message": "Đăng ký Trình quản lý Bí mật"
},
"addSecretsManagerUpgradeDesc": {
- "message": "Add Secrets Manager to your upgraded plan to maintain access to any secrets created with your previous plan."
+ "message": "Thêm Trình quản lý Bí mật vào gói đã nâng cấp của bạn để duy trì quyền truy cập vào mọi bí mật được tạo bằng gói trước đó."
},
"additionalServiceAccounts": {
- "message": "Additional service accounts"
+ "message": "Tài khoản dịch vụ bổ sung"
},
"includedServiceAccounts": {
- "message": "Your plan comes with $COUNT$ service accounts.",
+ "message": "Gói của bạn đi kèm với $COUNT$ tài khoản dịch vụ.",
"placeholders": {
"count": {
"content": "$1",
@@ -8818,7 +8838,7 @@
}
},
"addAdditionalServiceAccounts": {
- "message": "You can add additional service accounts for $COST$ per month.",
+ "message": "Bạn có thể thêm tài khoản dịch vụ bổ sung với $COST$ mỗi tháng.",
"placeholders": {
"cost": {
"content": "$1",
@@ -8827,67 +8847,67 @@
}
},
"collectionManagement": {
- "message": "Collection management"
+ "message": "Quản lý bộ sưu tập"
},
"collectionManagementDesc": {
- "message": "Manage the collection behavior for the organization"
+ "message": "Quản lý hành vi của bộ sưu tập cho tổ chức"
},
"limitCollectionCreationDesc": {
- "message": "Limit collection creation to owners and admins"
+ "message": "Giới hạn việc tạo bộ sưu tập cho chủ sở hữu và quản trị viên"
},
"limitCollectionDeletionDesc": {
- "message": "Limit collection deletion to owners and admins"
+ "message": "Giới hạn việc xóa bộ sưu tập cho chủ sở hữu và quản trị viên"
},
"limitItemDeletionDescription": {
- "message": "Limit item deletion to members with the Manage collection permissions"
+ "message": "Giới hạn việc xóa mục cho các thành viên có quyền Quản lý bộ sưu tập"
},
"allowAdminAccessToAllCollectionItemsDesc": {
"message": "Chủ sở hữu và quản trị viên có thể quản lý tất cả các bộ sưu tập và mục"
},
"updatedCollectionManagement": {
- "message": "Updated collection management setting"
+ "message": "Đã cập nhật cài đặt quản lý bộ sưu tập"
},
"passwordManagerPlanPrice": {
- "message": "Password Manager plan price"
+ "message": "Giá gói Trình quản lý Mật khẩu"
},
"secretsManagerPlanPrice": {
- "message": "Secrets Manager plan price"
+ "message": "Giá gói Trình quản lý Bí mật"
},
"passwordManager": {
- "message": "Password Manager"
+ "message": "Trình quản lý Mật khẩu"
},
"freeOrganization": {
- "message": "Free Organization"
+ "message": "Tổ chức miễn phí"
},
"limitServiceAccounts": {
- "message": "Limit service accounts (optional)"
+ "message": "Giới hạn tài khoản dịch vụ (tùy chọn)"
},
"limitServiceAccountsDesc": {
- "message": "Set a limit for your service accounts. Once this limit is reached, you will not be able to create new service accounts."
+ "message": "Đặt giới hạn cho tài khoản dịch vụ của bạn. Khi đạt đến giới hạn này, bạn sẽ không thể tạo thêm tài khoản dịch vụ mới."
},
"serviceAccountLimit": {
- "message": "Service account limit (optional)"
+ "message": "Giới hạn tài khoản dịch vụ (tùy chọn)"
},
"maxServiceAccountCost": {
- "message": "Max potential service account cost"
+ "message": "Chi phí tối đa có thể có cho tài khoản dịch vụ"
},
"loggedInExclamation": {
- "message": "Logged in!"
+ "message": "Đã đăng nhập!"
},
"beta": {
- "message": "Beta"
+ "message": "Phiên bản Beta"
},
"assignCollectionAccess": {
- "message": "Assign collection access"
+ "message": "Gán quyền truy cập bộ sưu tập"
},
"editedCollections": {
- "message": "Edited collections"
+ "message": "Đã chỉnh sửa bộ sưu tập"
},
"baseUrl": {
"message": "Địa chỉ máy chủ"
},
"selfHostBaseUrl": {
- "message": "Self-host server URL",
+ "message": "URL máy chủ tự lưu trữ",
"description": "Label for field requesting a self-hosted integration service URL"
},
"alreadyHaveAccount": {
@@ -8900,7 +8920,7 @@
"message": "Chuyển đến nội dung"
},
"managePermissionRequired": {
- "message": "At least one member or group must have can manage permission."
+ "message": "Ít nhất một thành viên hoặc nhóm phải có quyền quản lý."
},
"typePasskey": {
"message": "Mã khoá"
@@ -8921,17 +8941,17 @@
}
},
"seeDetailedInstructions": {
- "message": "See detailed instructions on our help site at",
+ "message": "Xem hướng dẫn chi tiết trên trang trợ giúp của chúng tôi tại",
"description": "This is followed a by a hyperlink to the help website."
},
"installBrowserExtension": {
- "message": "Install browser extension"
+ "message": "Cài đặt tiện ích mở rộng trình duyệt"
},
"installBrowserExtensionDetails": {
- "message": "Use the extension to quickly save logins and auto-fill forms without opening the web app."
+ "message": "Sử dụng tiện ích mở rộng để nhanh chóng lưu đăng nhập và tự động điền biểu mẫu mà không cần mở ứng dụng web."
},
"projectAccessUpdated": {
- "message": "Project access updated"
+ "message": "Quyền truy cập dự án đã được cập nhật"
},
"unexpectedErrorSend": {
"message": "Đã xảy ra lỗi khi tải mục Gửi này. Hãy thử lại sau."
@@ -8946,59 +8966,59 @@
"message": "Đã đạt đến giới hạn số lượng người dùng. Liên hệ nhà cung cấp của bạn để mua thêm suất."
},
"collectionAccessRestricted": {
- "message": "Collection access is restricted"
+ "message": "Quyền truy cập bộ sưu tập bị hạn chế"
},
"readOnlyCollectionAccess": {
- "message": "You do not have access to manage this collection."
+ "message": "Bạn không có quyền quản lý bộ sưu tập này."
},
"grantManageCollectionWarningTitle": {
- "message": "Missing Manage Collection Permissions"
+ "message": "Thiếu quyền Quản lý bộ sưu tập"
},
"grantManageCollectionWarning": {
- "message": "Grant Manage collection permissions to allow full collection management including deletion of collection."
+ "message": "Cấp quyền Quản lý bộ sưu tập để cho phép quản lý đầy đủ bộ sưu tập, bao gồm cả việc xóa bộ sưu tập."
},
"grantCollectionAccess": {
- "message": "Grant groups or members access to this collection."
+ "message": "Cấp quyền truy cập bộ sưu tập này cho nhóm hoặc thành viên."
},
"grantCollectionAccessMembersOnly": {
- "message": "Grant members access to this collection."
+ "message": "Cấp quyền truy cập bộ sưu tập này cho thành viên."
},
"adminCollectionAccess": {
- "message": "Administrators can access and manage collections."
+ "message": "Quản trị viên có thể truy cập và quản lý các bộ sưu tập."
},
"serviceAccountAccessUpdated": {
- "message": "Service account access updated"
+ "message": "Quyền truy cập tài khoản dịch vụ đã được cập nhật"
},
"commonImportFormats": {
"message": "Định dạng chung",
"description": "Label indicating the most common import formats"
},
"uriMatchDefaultStrategyHint": {
- "message": "URI match detection is how Bitwarden identifies autofill suggestions.",
+ "message": "Phát hiện khớp URI là cách Bitwarden xác định các gợi ý tự động điền.",
"description": "Explains to the user that URI match detection determines how Bitwarden suggests autofill options, and clarifies that this default strategy applies when no specific match detection is set for a login item."
},
"regExAdvancedOptionWarning": {
- "message": "\"Regular expression\" is an advanced option with increased risk of exposing credentials.",
+ "message": "\"Biểu thức chính quy\" là tùy chọn nâng cao với nguy cơ cao hơn trong việc lộ thông tin đăng nhập.",
"description": "Content for dialog which warns a user when selecting 'regular expression' matching strategy as a cipher match strategy"
},
"startsWithAdvancedOptionWarning": {
- "message": "\"Starts with\" is an advanced option with increased risk of exposing credentials.",
+ "message": "\"Bắt đầu với\" là tùy chọn nâng cao với nguy cơ cao hơn trong việc lộ thông tin đăng nhập.",
"description": "Content for dialog which warns a user when selecting 'starts with' matching strategy as a cipher match strategy"
},
"uriMatchWarningDialogLink": {
- "message": "More about match detection",
+ "message": "Thông tin thêm về độ phù hợp",
"description": "Link to match detection docs on warning dialog for advance match strategy"
},
"uriAdvancedOption": {
- "message": "Advanced options",
+ "message": "Tùy chọn nâng cao",
"description": "Advanced option placeholder for uri option component"
},
"warningCapitalized": {
- "message": "Warning",
+ "message": "Cảnh báo",
"description": "Warning (should maintain locale-relevant capitalization)"
},
"maintainYourSubscription": {
- "message": "To maintain your subscription for $ORG$, ",
+ "message": "Để duy trì gói đăng ký của bạn cho $ORG$, ",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To maintain your subscription for $ORG$, add a payment method.'",
"placeholders": {
"org": {
@@ -9008,103 +9028,103 @@
}
},
"addAPaymentMethod": {
- "message": "add a payment method",
+ "message": "thêm phương thức thanh toán",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To maintain your subscription for $ORG$, add a payment method'"
},
"organizationInformation": {
- "message": "Organization information"
+ "message": "Thông tin tổ chức"
},
"confirmationDetails": {
- "message": "Confirmation details"
+ "message": "Chi tiết xác nhận"
},
"smFreeTrialThankYou": {
- "message": "Thank you for signing up for Bitwarden Secrets Manager!"
+ "message": "Cảm ơn bạn đã đăng ký Trình quản lý Bí mật Bitwarden!"
},
"smFreeTrialConfirmationEmail": {
- "message": "We've sent a confirmation email to your email at "
+ "message": "Chúng tôi đã gửi email xác nhận đến địa chỉ email của bạn tại "
},
"sorryToSeeYouGo": {
- "message": "Sorry to see you go! Help improve Bitwarden by sharing why you're canceling.",
+ "message": "Rất tiếc khi thấy bạn rời đi! Hãy giúp cải thiện Bitwarden bằng cách chia sẻ lý do bạn hủy.",
"description": "A message shown to users as part of an offboarding survey asking them to provide more information on their subscription cancelation."
},
"selectCancellationReason": {
- "message": "Select a reason for canceling",
+ "message": "Chọn lý do hủy",
"description": "Used as a form field label for a select input on the offboarding survey."
},
"anyOtherFeedback": {
- "message": "Is there any other feedback you'd like to share?",
+ "message": "Bạn có muốn chia sẻ thêm phản hồi nào khác không?",
"description": "Used as a form field label for a textarea input on the offboarding survey."
},
"missingFeatures": {
- "message": "Missing features",
+ "message": "Thiếu tính năng",
"description": "An option for the offboarding survey shown when a user cancels their subscription."
},
"movingToAnotherTool": {
- "message": "Moving to another tool",
+ "message": "Chuyển sang công cụ khác",
"description": "An option for the offboarding survey shown when a user cancels their subscription."
},
"tooDifficultToUse": {
- "message": "Too difficult to use",
+ "message": "Quá khó sử dụng",
"description": "An option for the offboarding survey shown when a user cancels their subscription."
},
"notUsingEnough": {
- "message": "Not using enough",
+ "message": "Không sử dụng nhiều",
"description": "An option for the offboarding survey shown when a user cancels their subscription."
},
"tooExpensive": {
- "message": "Too expensive",
+ "message": "Quá đắt",
"description": "An option for the offboarding survey shown when a user cancels their subscription."
},
"freeForOneYear": {
- "message": "Free for 1 year"
+ "message": "Miễn phí 1 năm"
},
"newWebApp": {
- "message": "Welcome to the new and improved web app. Learn more about what’s changed."
+ "message": "Chào mừng bạn đến với ứng dụng web mới được cải tiến. Tìm hiểu thêm về những thay đổi."
},
"releaseBlog": {
- "message": "Read release blog"
+ "message": "Đọc blog giới thiệu sản phẩm"
},
"adminConsole": {
- "message": "Admin Console"
+ "message": "Bảng điều khiển dành cho quản trị viên"
},
"providerPortal": {
- "message": "Provider Portal"
+ "message": "Cổng thông tin nhà cung cấp"
},
"success": {
- "message": "Success"
+ "message": "Thành công"
},
"restrictedGroupAccess": {
- "message": "You cannot add yourself to groups."
+ "message": "Bạn không thể tự thêm mình vào nhóm."
},
"cannotAddYourselfToCollections": {
- "message": "You cannot add yourself to collections."
+ "message": "Bạn không thể tự thêm mình vào bộ sưu tập."
},
"assign": {
- "message": "Assign"
+ "message": "Gán"
},
"assignToCollections": {
- "message": "Assign to collections"
+ "message": "Gán vào bộ sưu tập"
},
"assignToTheseCollections": {
- "message": "Assign to these collections"
+ "message": "Gán vào các bộ sưu tập này"
},
"bulkCollectionAssignmentDialogDescriptionSingular": {
- "message": "Only organization members with access to these collections will be able to see the item."
+ "message": "Chỉ những thành viên của tổ chức có quyền truy cập vào các bộ sưu tập này mới có thể xem mục này."
},
"bulkCollectionAssignmentDialogDescriptionPlural": {
- "message": "Only organization members with access to these collections will be able to see the items."
+ "message": "Chỉ những thành viên của tổ chức có quyền truy cập vào các bộ sưu tập này mới có thể xem các mục này."
},
"selectCollectionsToAssign": {
- "message": "Select collections to assign"
+ "message": "Chọn bộ sưu tập để gán"
},
"noCollectionsAssigned": {
- "message": "No collections have been assigned"
+ "message": "Chưa có bộ sưu tập nào được gán"
},
"successfullyAssignedCollections": {
- "message": "Successfully assigned collections"
+ "message": "Đã gán vào bộ sưu tập thành công"
},
"bulkCollectionAssignmentWarning": {
- "message": "You have selected $TOTAL_COUNT$ items. You cannot update $READONLY_COUNT$ of the items because you do not have edit permissions.",
+ "message": "Bạn đã chọn $TOTAL_COUNT$ mục. Bạn không thể cập nhật $READONLY_COUNT$ mục vì bạn không có quyền chỉnh sửa.",
"placeholders": {
"total_count": {
"content": "$1",
@@ -9117,61 +9137,61 @@
}
},
"addField": {
- "message": "Add field"
+ "message": "Thêm trường"
},
"editField": {
- "message": "Edit field"
+ "message": "Chỉnh sửa trường"
},
"items": {
- "message": "Items"
+ "message": "Mục"
},
"assignedSeats": {
- "message": "Assigned seats"
+ "message": "Ghế đã gán"
},
"assigned": {
- "message": "Assigned"
+ "message": "Đã gán"
},
"used": {
- "message": "Used"
+ "message": "Đã dùng"
},
"remaining": {
- "message": "Remaining"
+ "message": "Còn lại"
},
"unlinkOrganization": {
- "message": "Unlink organization"
+ "message": "Hủy liên kết tổ chức"
},
"manageSeats": {
- "message": "MANAGE SEATS"
+ "message": "QUẢN LÝ GHẾ"
},
"manageSeatsDescription": {
- "message": "Adjustments to seats will be reflected in the next billing cycle."
+ "message": "Điều chỉnh số ghế sẽ được áp dụng trong chu kỳ thanh toán tiếp theo."
},
"unassignedSeatsDescription": {
- "message": "Unassigned seats"
+ "message": "Ghế chưa gán"
},
"purchaseSeatDescription": {
- "message": "Additional seats purchased"
+ "message": "Đã mua thêm ghế"
},
"assignedSeatCannotUpdate": {
- "message": "Assigned Seats can not be updated. Please contact your organization owner for assistance."
+ "message": "Không thể cập nhật ghế đã gán. Vui lòng liên hệ với chủ sở hữu tổ chức của bạn để được hỗ trợ."
},
"subscriptionUpdateFailed": {
- "message": "Subscription update failed"
+ "message": "Cập nhật gói đăng ký không thành công"
},
"trial": {
- "message": "Trial",
+ "message": "Dùng thử",
"description": "A subscription status label."
},
"pastDue": {
- "message": "Past due",
+ "message": "Quá hạn thanh toán",
"description": "A subscription status label"
},
"subscriptionExpired": {
- "message": "Subscription expired",
+ "message": "Gói đăng ký đã hết hạn",
"description": "The date header used when a subscription is past due."
},
"pastDueWarningForChargeAutomatically": {
- "message": "You have a grace period of $DAYS$ days from your subscription expiration date to maintain your subscription. Please resolve the past due invoices by $SUSPENSION_DATE$.",
+ "message": "Bạn có $DAYS$ ngày gia hạn kể từ ngày hết hạn gói đăng ký để duy trì gói. Vui lòng thanh toán các hóa đơn quá hạn trước ngày $SUSPENSION_DATE$.",
"placeholders": {
"days": {
"content": "$1",
@@ -9185,7 +9205,7 @@
"description": "A warning shown to the user when their subscription is past due and they are charged automatically."
},
"pastDueWarningForSendInvoice": {
- "message": "You have a grace period of $DAYS$ days from the date your first unpaid invoice is due to maintain your subscription. Please resolve the past due invoices by $SUSPENSION_DATE$.",
+ "message": "Bạn có $DAYS$ ngày gia hạn kể từ ngày hóa đơn chưa thanh toán đầu tiên đến hạn để duy trì gói đăng ký. Vui lòng thanh toán các hóa đơn quá hạn trước ngày $SUSPENSION_DATE$.",
"placeholders": {
"days": {
"content": "$1",
@@ -9199,54 +9219,54 @@
"description": "A warning shown to the user when their subscription is past due and they pay via invoice."
},
"unpaidInvoice": {
- "message": "Unpaid invoice",
+ "message": "Hóa đơn chưa thanh toán",
"description": "The header of a warning box shown to a user whose subscription is unpaid."
},
"toReactivateYourSubscription": {
- "message": "To reactivate your subscription, please resolve the past due invoices.",
+ "message": "Để kích hoạt lại gói đăng ký, vui lòng thanh toán các hóa đơn quá hạn.",
"description": "The body of a warning box shown to a user whose subscription is unpaid."
},
"cancellationDate": {
- "message": "Cancellation date",
+ "message": "Ngày hủy",
"description": "The date header used when a subscription is cancelled."
},
"machineAccountsCannotCreate": {
- "message": "Machine accounts cannot be created in suspended organizations. Please contact your organization owner for assistance."
+ "message": "Không thể tạo tài khoản máy trong các tổ chức đã bị tạm ngưng. Vui lòng liên hệ với chủ sở hữu tổ chức của bạn để được hỗ trợ."
},
"machineAccount": {
- "message": "Machine account",
+ "message": "Tài khoản máy",
"description": "A machine user which can be used to automate processes and access secrets in the system."
},
"machineAccounts": {
- "message": "Machine accounts",
+ "message": "Tài khoản máy",
"description": "The title for the section that deals with machine accounts."
},
"newMachineAccount": {
- "message": "New machine account",
+ "message": "Tài khoản máy mới",
"description": "Title for creating a new machine account."
},
"machineAccountsNoItemsMessage": {
- "message": "Create a new machine account to get started automating secret access.",
+ "message": "Tạo tài khoản máy mới để bắt đầu tự động hóa truy cập bí mật.",
"description": "Message to encourage the user to start creating machine accounts."
},
"machineAccountsNoItemsTitle": {
- "message": "Nothing to show yet",
+ "message": "Chưa có nội dung để hiển thị",
"description": "Title to indicate that there are no machine accounts to display."
},
"deleteMachineAccounts": {
- "message": "Delete machine accounts",
+ "message": "Xóa tài khoản máy",
"description": "Title for the action to delete one or multiple machine accounts."
},
"deleteMachineAccount": {
- "message": "Delete machine account",
+ "message": "Xóa tài khoản máy",
"description": "Title for the action to delete a single machine account."
},
"viewMachineAccount": {
- "message": "View machine account",
+ "message": "Xem tài khoản máy",
"description": "Action to view the details of a machine account."
},
"deleteMachineAccountDialogMessage": {
- "message": "Deleting machine account $MACHINE_ACCOUNT$ is permanent and irreversible.",
+ "message": "Việc xóa tài khoản máy $MACHINE_ACCOUNT$ là vĩnh viễn và không thể hoàn tác.",
"placeholders": {
"machine_account": {
"content": "$1",
@@ -9255,10 +9275,10 @@
}
},
"deleteMachineAccountsDialogMessage": {
- "message": "Deleting machine accounts is permanent and irreversible."
+ "message": "Việc xóa tài khoản máy là vĩnh viễn và không thể hoàn tác."
},
"deleteMachineAccountsConfirmMessage": {
- "message": "Delete $COUNT$ machine accounts",
+ "message": "Xóa $COUNT$ tài khoản máy",
"placeholders": {
"count": {
"content": "$1",
@@ -9267,60 +9287,60 @@
}
},
"deleteMachineAccountToast": {
- "message": "Machine account deleted"
+ "message": "Đã xóa tài khoản máy"
},
"deleteMachineAccountsToast": {
- "message": "Machine accounts deleted"
+ "message": "Đã xóa các tài khoản máy"
},
"searchMachineAccounts": {
- "message": "Search machine accounts",
+ "message": "Tìm kiếm tài khoản máy",
"description": "Placeholder text for searching machine accounts."
},
"editMachineAccount": {
- "message": "Edit machine account",
+ "message": "Chỉnh sửa tài khoản máy",
"description": "Title for editing a machine account."
},
"machineAccountName": {
- "message": "Machine account name",
+ "message": "Tên tài khoản máy",
"description": "Label for the name of a machine account"
},
"machineAccountCreated": {
- "message": "Machine account created",
+ "message": "Đã tạo tài khoản máy",
"description": "Notifies that a new machine account has been created"
},
"machineAccountUpdated": {
- "message": "Machine account updated",
+ "message": "Đã cập nhật tài khoản máy",
"description": "Notifies that a machine account has been updated"
},
"projectMachineAccountsDescription": {
- "message": "Grant machine accounts access to this project."
+ "message": "Cấp quyền truy cập dự án này cho các tài khoản máy."
},
"projectMachineAccountsSelectHint": {
- "message": "Type or select machine accounts"
+ "message": "Nhập hoặc chọn tài khoản máy"
},
"projectEmptyMachineAccountAccessPolicies": {
- "message": "Add machine accounts to grant access"
+ "message": "Thêm tài khoản máy để cấp quyền truy cập"
},
"machineAccountPeopleDescription": {
- "message": "Grant groups or people access to this machine account."
+ "message": "Cấp quyền truy cập tài khoản máy này cho nhóm hoặc cá nhân."
},
"machineAccountProjectsDescription": {
- "message": "Assign projects to this machine account. "
+ "message": "Gán dự án cho tài khoản máy này. "
},
"createMachineAccount": {
- "message": "Create a machine account"
+ "message": "Tạo tài khoản máy"
},
"maPeopleWarningMessage": {
- "message": "Removing people from a machine account does not remove the access tokens they created. For security best practice, it is recommended to revoke access tokens created by people removed from a machine account."
+ "message": "Việc xóa người khỏi tài khoản máy không xóa các token truy cập mà họ đã tạo. Để đảm bảo an toàn, nên thu hồi các token truy cập được tạo bởi những người đã bị xóa khỏi tài khoản máy."
},
"smAccessRemovalWarningMaTitle": {
- "message": "Remove access to this machine account"
+ "message": "Thu hồi quyền truy cập tài khoản máy này"
},
"smAccessRemovalWarningMaMessage": {
- "message": "This action will remove your access to the machine account."
+ "message": "Hành động này sẽ thu hồi quyền truy cập của bạn đối với tài khoản máy."
},
"machineAccountsIncluded": {
- "message": "$COUNT$ machine accounts included",
+ "message": "Bao gồm $COUNT$ tài khoản máy",
"placeholders": {
"count": {
"content": "$1",
@@ -9329,7 +9349,7 @@
}
},
"additionalMachineAccountCost": {
- "message": "$COST$ per month for additional machine accounts",
+ "message": "$COST$ mỗi tháng cho các tài khoản máy bổ sung",
"placeholders": {
"cost": {
"content": "$1",
@@ -9338,10 +9358,10 @@
}
},
"additionalMachineAccounts": {
- "message": "Additional machine accounts"
+ "message": "Tài khoản máy bổ sung"
},
"includedMachineAccounts": {
- "message": "Your plan comes with $COUNT$ machine accounts.",
+ "message": "Gói của bạn đi kèm với $COUNT$ tài khoản máy.",
"placeholders": {
"count": {
"content": "$1",
@@ -9350,7 +9370,7 @@
}
},
"addAdditionalMachineAccounts": {
- "message": "You can add additional machine accounts for $COST$ per month.",
+ "message": "Bạn có thể thêm tài khoản máy bổ sung với $COST$ mỗi tháng.",
"placeholders": {
"cost": {
"content": "$1",
@@ -9359,31 +9379,31 @@
}
},
"limitMachineAccounts": {
- "message": "Limit machine accounts (optional)"
+ "message": "Giới hạn tài khoản máy (tùy chọn)"
},
"limitMachineAccountsDesc": {
- "message": "Set a limit for your machine accounts. Once this limit is reached, you will not be able to create new machine accounts."
+ "message": "Đặt giới hạn cho tài khoản máy của bạn. Khi đạt đến giới hạn này, bạn sẽ không thể tạo thêm tài khoản máy mới."
},
"machineAccountLimit": {
- "message": "Machine account limit (optional)"
+ "message": "Giới hạn tài khoản máy (tùy chọn)"
},
"maxMachineAccountCost": {
- "message": "Max potential machine account cost"
+ "message": "Chi phí tối đa có thể có cho tài khoản máy"
},
"machineAccountAccessUpdated": {
- "message": "Machine account access updated"
+ "message": "Quyền truy cập tài khoản máy đã được cập nhật"
},
"restrictedGroupAccessDesc": {
- "message": "You cannot add yourself to a group."
+ "message": "Bạn không thể thêm chính mình vào nhóm."
},
"deleteProvider": {
- "message": "Delete provider"
+ "message": "Xóa nhà cung cấp"
},
"deleteProviderConfirmation": {
- "message": "Deleting a provider is permanent and irreversible. Enter your master password to confirm the deletion of the provider and all associated data."
+ "message": "Việc xóa nhà cung cấp là vĩnh viễn và không thể hoàn tác. Vui lòng nhập mật khẩu chính của bạn để xác nhận việc xóa nhà cung cấp và tất cả dữ liệu liên quan."
},
"deleteProviderName": {
- "message": "Cannot delete $ID$",
+ "message": "Không thể xóa $ID$",
"placeholders": {
"id": {
"content": "$1",
@@ -9392,7 +9412,7 @@
}
},
"deleteProviderWarningDescription": {
- "message": "You must unlink all clients before you can delete $ID$.",
+ "message": "Bạn phải hủy liên kết tất cả các khách hàng trước khi có thể xóa $ID$.",
"placeholders": {
"id": {
"content": "$1",
@@ -9401,102 +9421,102 @@
}
},
"providerDeleted": {
- "message": "Provider deleted"
+ "message": "Đã xóa nhà cung cấp"
},
"providerDeletedDesc": {
- "message": "The Provider and all associated data has been deleted."
+ "message": "Nhà cung cấp và tất cả dữ liệu liên quan đã được xóa."
},
"deleteProviderRecoverConfirmDesc": {
- "message": "You have requested to delete this Provider. Use the button below to confirm."
+ "message": "Bạn đã yêu cầu xóa Nhà cung cấp này. Sử dụng nút bên dưới để xác nhận."
},
"deleteProviderWarning": {
- "message": "Deleting your provider is permanent. It cannot be undone."
+ "message": "Việc xóa nhà cung cấp của bạn là vĩnh viễn. Không thể hoàn tác."
},
"errorAssigningTargetCollection": {
- "message": "Error assigning target collection."
+ "message": "Lỗi khi gán vào bộ sưu tập đã chọn."
},
"errorAssigningTargetFolder": {
- "message": "Error assigning target folder."
+ "message": "Lỗi khi gán vào thư mục đã chọn."
},
"integrationsAndSdks": {
- "message": "Integrations & SDKs",
+ "message": "Tích hợp & SDK",
"description": "The title for the section that deals with integrations and SDKs."
},
"integrations": {
- "message": "Integrations"
+ "message": "Tích hợp"
},
"integrationsDesc": {
- "message": "Automatically sync secrets from Bitwarden Secrets Manager to a third-party service."
+ "message": "Tự động đồng bộ bí mật từ Trình quản lý Bí mật Bitwarden đến dịch vụ bên thứ ba."
},
"sdks": {
"message": "SDKs"
},
"sdksDesc": {
- "message": "Use Bitwarden Secrets Manager SDK in the following programming languages to build your own applications."
+ "message": "Sử dụng SDK Trình quản lý Bí mật Bitwarden trong các ngôn ngữ lập trình sau để xây dựng ứng dụng của bạn."
},
"ssoDescStart": {
- "message": "Configure",
+ "message": "Cấu hình",
"description": "This represents the beginning of a sentence, broken up to include links. The full sentence will be 'Configure single sign-on for Bitwarden using the implementation guide for your Identity Provider."
},
"ssoDescEnd": {
- "message": "for Bitwarden using the implementation guide for your Identity Provider.",
+ "message": "cho Bitwarden bằng cách sử dụng hướng dẫn triển khai cho Nhà cung cấp danh tính của bạn.",
"description": "This represents the end of a sentence, broken up to include links. The full sentence will be 'Configure single sign-on for Bitwarden using the implementation guide for your Identity Provider."
},
"userProvisioning": {
- "message": "User provisioning"
+ "message": "Cấp phép người dùng"
},
"scimIntegration": {
"message": "SCIM"
},
"scimIntegrationDescStart": {
- "message": "Configure ",
+ "message": "Cấu hình ",
"description": "This represents the beginning of a sentence, broken up to include links. The full sentence will be 'Configure SCIM (System for Cross-domain Identity Management) to automatically provision users and groups to Bitwarden using the implementation guide for your Identity Provider"
},
"scimIntegrationDescEnd": {
- "message": "(System for Cross-domain Identity Management) to automatically provision users and groups to Bitwarden using the implementation guide for your Identity Provider.",
+ "message": "(Hệ thống quản lý danh tính đa miền) để tự động cấp phép người dùng và nhóm cho Bitwarden bằng cách sử dụng hướng dẫn triển khai cho Nhà cung cấp danh tính của bạn.",
"description": "This represents the end of a sentence, broken up to include links. The full sentence will be 'Configure SCIM (System for Cross-domain Identity Management) to automatically provision users and groups to Bitwarden using the implementation guide for your Identity Provider"
},
"bwdc": {
- "message": "Bitwarden Directory Connector"
+ "message": "Trình kết nối thư mục Bitwarden"
},
"bwdcDesc": {
- "message": "Configure Bitwarden Directory Connector to automatically provision users and groups using the implementation guide for your Identity Provider."
+ "message": "Cấu hình Trình kết nối thư mục Bitwarden để tự động cấp phép người dùng và nhóm bằng cách sử dụng hướng dẫn triển khai cho Nhà cung cấp danh tính của bạn."
},
"eventManagement": {
- "message": "Event management"
+ "message": "Quản lý sự kiện"
},
"eventManagementDesc": {
- "message": "Integrate Bitwarden event logs with your SIEM (system information and event management) system by using the implementation guide for your platform."
+ "message": "Tích hợp nhật ký sự kiện của Bitwarden với hệ thống SIEM (quản lý thông tin và sự kiện hệ thống) của bạn bằng cách sử dụng hướng dẫn triển khai cho nền tảng của bạn."
},
"deviceManagement": {
- "message": "Device management"
+ "message": "Quản lý thiết bị"
},
"deviceManagementDesc": {
- "message": "Configure device management for Bitwarden using the implementation guide for your platform."
+ "message": "Cấu hình quản lý thiết bị cho Bitwarden bằng cách sử dụng hướng dẫn triển khai cho nền tảng của bạn."
},
"crowdstrikeEventIntegrationDesc": {
- "message": "Send event data to your Logscale instance"
+ "message": "Gửi dữ liệu sự kiện đến thực thể Logscale của bạn"
},
"failedToSaveIntegration": {
- "message": "Failed to save integration. Please try again later."
+ "message": "Không thể lưu tích hợp. Vui lòng thử lại sau."
},
"deviceIdMissing": {
- "message": "Device ID is missing"
+ "message": "Thiếu ID thiết bị"
},
"deviceTypeMissing": {
- "message": "Device type is missing"
+ "message": "Thiếu loại thiết bị"
},
"deviceCreationDateMissing": {
- "message": "Device creation date is missing"
+ "message": "Thiếu ngày tạo thiết bị"
},
"desktopRequired": {
- "message": "Desktop required"
+ "message": "Yêu cầu máy tính để bàn"
},
"reopenLinkOnDesktop": {
- "message": "Reopen this link from your email on a desktop."
+ "message": "Hãy mở lại liên kết này từ email của bạn trên máy tính để bàn."
},
"connectIntegrationButtonDesc": {
- "message": "Connect $INTEGRATION$",
+ "message": "Kết nối $INTEGRATION$",
"placeholders": {
"integration": {
"content": "$1",
@@ -9505,7 +9525,7 @@
}
},
"integrationCardTooltip": {
- "message": "Launch $INTEGRATION$ implementation guide.",
+ "message": "Mở hướng dẫn triển khai $INTEGRATION$.",
"placeholders": {
"integration": {
"content": "$1",
@@ -9514,7 +9534,7 @@
}
},
"smIntegrationTooltip": {
- "message": "Set up $INTEGRATION$.",
+ "message": "Thiết lập $INTEGRATION$.",
"placeholders": {
"integration": {
"content": "$1",
@@ -9523,7 +9543,7 @@
}
},
"smSdkTooltip": {
- "message": "View $SDK$ repository",
+ "message": "Xem kho lưu trữ $SDK$",
"placeholders": {
"sdk": {
"content": "$1",
@@ -9532,7 +9552,7 @@
}
},
"integrationCardAriaLabel": {
- "message": "open $INTEGRATION$ implementation guide in a new tab.",
+ "message": "mở hướng dẫn triển khai $INTEGRATION$ trong tab mới.",
"placeholders": {
"integration": {
"content": "$1",
@@ -9541,7 +9561,7 @@
}
},
"smSdkAriaLabel": {
- "message": "view $SDK$ repository in a new tab.",
+ "message": "xem kho lưu trữ $SDK$ trong tab mới.",
"placeholders": {
"sdk": {
"content": "$1",
@@ -9550,7 +9570,7 @@
}
},
"smIntegrationCardAriaLabel": {
- "message": "set up $INTEGRATION$ implementation guide in a new tab.",
+ "message": "thiết lập hướng dẫn triển khai $INTEGRATION$ trong tab mới.",
"placeholders": {
"integration": {
"content": "$1",
@@ -9559,85 +9579,85 @@
}
},
"createNewClientToManageAsProvider": {
- "message": "Create a new client organization to manage as a Provider. Additional seats will be reflected in the next billing cycle."
+ "message": "Tạo một tổ chức khách hàng mới để quản lý với tư cách Nhà cung cấp. Các ghế bổ sung sẽ được phản ánh trong chu kỳ thanh toán tiếp theo."
},
"url": {
- "message": "URL"
+ "message": "Địa chỉ (URL)"
},
"bearerToken": {
"message": "Bearer Token"
},
"index": {
- "message": "Index"
+ "message": "Mục lục"
},
"selectAPlan": {
- "message": "Select a plan"
+ "message": "Chọn một gói"
},
"thirtyFivePercentDiscount": {
- "message": "35% Discount"
+ "message": "Giảm giá 35%"
},
"monthPerMember": {
- "message": "month per member"
+ "message": "tháng/thành viên"
},
"monthPerMemberBilledAnnually": {
- "message": "month per member billed annually"
+ "message": "tháng/thành viên, thanh toán hằng năm"
},
"seats": {
- "message": "Seats"
+ "message": "Số ghế"
},
"addOrganization": {
- "message": "Add organization"
+ "message": "Thêm tổ chức"
},
"createdNewClient": {
- "message": "Successfully created new client"
+ "message": "Đã tạo khách hàng mới thành công"
},
"noAccess": {
- "message": "No access"
+ "message": "Không có quyền truy cập"
},
"collectionAdminConsoleManaged": {
- "message": "This collection is only accessible from the admin console"
+ "message": "Bộ sưu tập này chỉ có thể truy cập từ bảng điều khiển quản trị"
},
"organizationOptionsMenu": {
- "message": "Toggle Organization Menu"
+ "message": "Chuyển đổi Menu Tổ chức"
},
"vaultItemSelect": {
- "message": "Select vault item"
+ "message": "Chọn mục trong kho"
},
"collectionItemSelect": {
- "message": "Select collection item"
+ "message": "Chọn mục trong bộ sưu tập"
},
"manageBillingFromProviderPortalMessage": {
- "message": "Manage billing from the Provider Portal"
+ "message": "Quản lý thanh toán từ Cổng thông tin Nhà cung cấp"
},
"continueSettingUp": {
- "message": "Continue setting up Bitwarden"
+ "message": "Tiếp tục thiết lập Bitwarden"
},
"continueSettingUpFreeTrial": {
- "message": "Continue setting up your free trial of Bitwarden"
+ "message": "Tiếp tục thiết lập bản dùng thử miễn phí Bitwarden của bạn"
},
"continueSettingUpPasswordManager": {
- "message": "Continue setting up Bitwarden Password Manager"
+ "message": "Tiếp tục thiết lập Trình quản lý mật khẩu Bitwarden"
},
"continueSettingUpFreeTrialPasswordManager": {
- "message": "Continue setting up your free trial of Bitwarden Password Manager"
+ "message": "Tiếp tục thiết lập bản dùng thử miễn phí của Trình quản lý mật khẩu Bitwarden"
},
"continueSettingUpSecretsManager": {
- "message": "Continue setting up Bitwarden Secrets Manager"
+ "message": "Tiếp tục thiết lập Trình quản lý Bí mật Bitwarden"
},
"continueSettingUpFreeTrialSecretsManager": {
- "message": "Continue setting up your free trial of Bitwarden Secrets Manager"
+ "message": "Tiếp tục thiết lập bản dùng thử miễn phí của Trình quản lý Bí mật Bitwarden"
},
"enterTeamsOrgInfo": {
- "message": "Enter your Teams organization information"
+ "message": "Nhập thông tin tổ chức Teams của bạn"
},
"enterFamiliesOrgInfo": {
- "message": "Enter your Families organization information"
+ "message": "Nhập thông tin tổ chức Gói Gia đình của bạn"
},
"enterEnterpriseOrgInfo": {
- "message": "Enter your Enterprise organization information"
+ "message": "Nhập thông tin tổ chức Enterprise của bạn"
},
"viewItemsIn": {
- "message": "View items in $NAME$",
+ "message": "Xem các mục trong $NAME$",
"description": "Button to view the contents of a folder or collection",
"placeholders": {
"name": {
@@ -9647,7 +9667,7 @@
}
},
"backTo": {
- "message": "Back to $NAME$",
+ "message": "Quay lại $NAME$",
"description": "Navigate back to a previous folder or collection",
"placeholders": {
"name": {
@@ -9657,11 +9677,11 @@
}
},
"back": {
- "message": "Back",
+ "message": "Quay lại",
"description": "Button text to navigate back"
},
"removeItem": {
- "message": "Remove $NAME$",
+ "message": "Xóa $NAME$",
"description": "Remove a selected option, such as a folder or collection",
"placeholders": {
"name": {
@@ -9671,34 +9691,34 @@
}
},
"viewInfo": {
- "message": "View info"
+ "message": "Xem thông tin"
},
"viewAccess": {
- "message": "View access"
+ "message": "Xem quyền truy cập"
},
"noCollectionsSelected": {
- "message": "You have not selected any collections."
+ "message": "Bạn chưa chọn bộ sưu tập nào."
},
"updateName": {
- "message": "Update name"
+ "message": "Cập nhật tên"
},
"updatedOrganizationName": {
- "message": "Updated organization name"
+ "message": "Đã cập nhật tên tổ chức"
},
"providerPlan": {
- "message": "Managed Service Provider"
+ "message": "Nhà cung cấp dịch vụ quản lý"
},
"managedServiceProvider": {
- "message": "Managed service provider"
+ "message": "Nhà cung cấp dịch vụ quản lý"
},
"multiOrganizationEnterprise": {
- "message": "Multi-organization enterprise"
+ "message": "Doanh nghiệp đa tổ chức"
},
"orgSeats": {
- "message": "Organization Seats"
+ "message": "Số ghế tổ chức"
},
"providerDiscount": {
- "message": "$AMOUNT$% Discount",
+ "message": "Giảm giá $AMOUNT$%",
"placeholders": {
"amount": {
"content": "$1",
@@ -9707,28 +9727,28 @@
}
},
"lowKDFIterationsBanner": {
- "message": "Low KDF iterations. Increase your iterations to improve the security of your account."
+ "message": "Số vòng lặp KDF thấp. Tăng số vòng lặp để cải thiện bảo mật cho tài khoản của bạn."
},
"changeKDFSettings": {
- "message": "Change KDF settings"
+ "message": "Thay đổi cài đặt KDF"
},
"secureYourInfrastructure": {
- "message": "Secure your infrastructure"
+ "message": "Bảo vệ hạ tầng của bạn"
},
"protectYourFamilyOrBusiness": {
- "message": "Protect your family or business"
+ "message": "Bảo vệ gia đình hoặc doanh nghiệp của bạn"
},
"upgradeOrganizationCloseSecurityGaps": {
- "message": "Close security gaps with monitoring reports"
+ "message": "Đóng các lỗ hổng bảo mật bằng các báo cáo giám sát"
},
"upgradeOrganizationCloseSecurityGapsDesc": {
- "message": "Stay ahead of security vulnerabilities by upgrading to a paid plan for enhanced monitoring."
+ "message": "Luôn đi trước các lỗ hổng bảo mật bằng cách nâng cấp lên gói trả phí để có giám sát nâng cao."
},
"approveAllRequests": {
- "message": "Approve all requests"
+ "message": "Phê duyệt tất cả yêu cầu"
},
"allLoginRequestsApproved": {
- "message": "All login requests approved"
+ "message": "Tất cả yêu cầu đăng nhập đã được phê duyệt"
},
"payPal": {
"message": "PayPal"
@@ -9737,56 +9757,56 @@
"message": "Bitcoin"
},
"updatedTaxInformation": {
- "message": "Updated tax information"
+ "message": "Đã cập nhật thông tin thuế"
},
"billingInvalidTaxIdError": {
- "message": "Invalid tax ID, if you believe this is an error please contact support."
+ "message": "Mã số thuế không hợp lệ, nếu bạn cho rằng đây là lỗi, vui lòng liên hệ bộ phận hỗ trợ."
},
"billingTaxIdTypeInferenceError": {
- "message": "We were unable to validate your tax ID, if you believe this is an error please contact support."
+ "message": "Chúng tôi không thể xác minh mã số thuế của bạn, nếu bạn cho rằng đây là lỗi, vui lòng liên hệ bộ phận hỗ trợ."
},
"billingPreviewInvalidTaxIdError": {
- "message": "Invalid tax ID, if you believe this is an error please contact support."
+ "message": "Mã số thuế không hợp lệ, nếu bạn cho rằng đây là lỗi, vui lòng liên hệ bộ phận hỗ trợ."
},
"billingPreviewInvoiceError": {
- "message": "An error occurred while previewing the invoice. Please try again later."
+ "message": "Đã xảy ra lỗi khi xem trước hóa đơn. Vui lòng thử lại sau."
},
"unverified": {
- "message": "Unverified"
+ "message": "Chưa xác minh"
},
"verified": {
- "message": "Verified"
+ "message": "Đã xác minh"
},
"viewSecret": {
- "message": "View secret"
+ "message": "Xem bí mật"
},
"noClients": {
- "message": "There are no clients to list"
+ "message": "Không có khách hàng nào để liệt kê"
},
"providerBillingEmailHint": {
- "message": "This email address will receive all invoices pertaining to this provider",
+ "message": "Địa chỉ email này sẽ nhận tất cả hóa đơn liên quan đến nhà cung cấp này",
"description": "A hint that shows up on the Provider setup page to inform the admin the billing email will receive the provider's invoices."
},
"upgradeOrganizationEnterprise": {
- "message": "Identify security risks by auditing member access"
+ "message": "Xác định rủi ro bảo mật bằng cách kiểm tra quyền truy cập của thành viên"
},
"onlyAvailableForEnterpriseOrganization": {
- "message": "Quickly view member access across the organization by upgrading to an Enterprise plan."
+ "message": "Nhanh chóng xem quyền truy cập của thành viên trên toàn tổ chức bằng cách nâng cấp lên gói Doanh nghiệp."
},
"date": {
- "message": "Date"
+ "message": "Ngày"
},
"exportClientReport": {
- "message": "Export client report"
+ "message": "Xuất báo cáo khách hàng"
},
"memberAccessReport": {
- "message": "Member access"
+ "message": "Quyền truy cập của thành viên"
},
"memberAccessReportDesc": {
- "message": "Ensure members have access to the right credentials and their accounts are secure. Use this report to obtain a CSV of member access and account configurations."
+ "message": "Đảm bảo các thành viên có quyền truy cập vào đúng thông tin xác thực và tài khoản của họ được bảo mật. Sử dụng báo cáo này để lấy tệp CSV về quyền truy cập của thành viên và cấu hình tài khoản."
},
"memberAccessReportPageDesc": {
- "message": "Audit organization member access across groups, collections, and collection items. The CSV export provides a detailed breakdown per member, including information on collection permissions and account configurations."
+ "message": "Kiểm tra quyền truy cập của thành viên tổ chức trên các nhóm, bộ sưu tập và mục trong bộ sưu tập. Tệp CSV xuất ra cung cấp bảng phân tích chi tiết cho từng thành viên, bao gồm thông tin về quyền của bộ sưu tập và cấu hình tài khoản."
},
"memberAccessReportNoCollection": {
"message": "(Không có Bố sưu tập)"
@@ -9810,19 +9830,19 @@
"message": "Tắt"
},
"higherKDFIterations": {
- "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker."
+ "message": "Số vòng lặp KDF cao hơn có thể giúp bảo vệ mật khẩu chính của bạn khỏi bị kẻ tấn công tấn công brute force."
},
"incrementsOf100,000": {
- "message": "increments of 100,000"
+ "message": "tăng theo bội số 100.000"
},
"smallIncrements": {
- "message": "small increments"
+ "message": "bước nhỏ"
},
"kdfIterationRecommends": {
- "message": "We recommend 600,000 or more"
+ "message": "Chúng tôi khuyến nghị 600.000 hoặc cao hơn"
},
"kdfToHighWarningIncreaseInIncrements": {
- "message": "For older devices, setting your KDF too high may lead to performance issues. Increase the value in $VALUE$ and test your devices.",
+ "message": "Đối với các thiết bị cũ, đặt KDF quá cao có thể dẫn đến vấn đề về hiệu suất. Tăng giá trị trong $VALUE$ và kiểm tra thiết bị của bạn.",
"placeholders": {
"value": {
"content": "$1",
@@ -9831,31 +9851,31 @@
}
},
"providerReinstate": {
- "message": " Contact Customer Support to reinstate your subscription."
+ "message": " Liên hệ với Bộ phận Hỗ trợ Khách hàng để khôi phục gói đăng ký của bạn."
},
"secretPeopleDescription": {
"message": "Grant groups or people access to this secret. Permissions set for people will override permissions set by groups."
},
"secretPeopleEmptyMessage": {
- "message": "Add people or groups to share access to this secret"
+ "message": "Thêm người hoặc nhóm để chia sẻ quyền truy cập bí mật này"
},
"secretMachineAccountsDescription": {
- "message": "Grant machine accounts access to this secret."
+ "message": "Cấp quyền truy cập bí mật này cho các tài khoản máy."
},
"secretMachineAccountsEmptyMessage": {
- "message": "Add machine accounts to grant access to this secret"
+ "message": "Thêm tài khoản máy để cấp quyền truy cập bí mật này"
},
"smAccessRemovalWarningSecretTitle": {
- "message": "Remove access to this secret"
+ "message": "Thu hồi quyền truy cập bí mật này"
},
"smAccessRemovalSecretMessage": {
- "message": "This action will remove your access to this secret."
+ "message": "Hành động này sẽ thu hồi quyền truy cập của bạn đối với bí mật này."
},
"invoice": {
- "message": "Invoice"
+ "message": "Hoá đơn"
},
"unassignedSeatsAvailable": {
- "message": "You have $SEATS$ unassigned seats available.",
+ "message": "Bạn có $SEATS$ ghế chưa được gán.",
"placeholders": {
"seats": {
"content": "$1",
@@ -9872,31 +9892,31 @@
"description": "The status of an invoice."
},
"uncollectible": {
- "message": "Uncollectible",
+ "message": "Không thể thu hồi",
"description": "The status of an invoice."
},
"clientDetails": {
- "message": "Client details"
+ "message": "Chi tiết khách hàng"
},
"downloadCSV": {
- "message": "Download CSV"
+ "message": "Tải xuống CSV"
},
"monthlySubscriptionUserSeatsMessage": {
- "message": "Adjustments to your subscription will result in prorated charges to your billing totals on your next billing period. "
+ "message": "Điều chỉnh gói đăng ký của bạn sẽ dẫn đến các khoản phí được tính theo tỷ lệ vào tổng thanh toán trong kỳ thanh toán tiếp theo. "
},
"annualSubscriptionUserSeatsMessage": {
- "message": "Adjustments to your subscription will result in prorated charges on a monthly billing cycle. "
+ "message": "Điều chỉnh gói đăng ký của bạn sẽ dẫn đến các khoản phí được tính theo tỷ lệ trong chu kỳ thanh toán hàng tháng. "
},
"billingHistoryDescription": {
- "message": "Download a CSV to obtain client details for each billing date. Prorated charges are not included in the CSV and may vary from the linked invoice. For the most accurate billing details, refer to your monthly invoices.",
+ "message": "Tải xuống tệp CSV để lấy thông tin khách hàng cho từng ngày thanh toán. Các khoản phí tính theo tỷ lệ không được bao gồm trong tệp CSV và có thể khác so với hóa đơn được liên kết. Để có thông tin thanh toán chính xác nhất, hãy tham khảo hóa đơn hàng tháng của bạn.",
"description": "A paragraph on the Billing History page of the Provider Portal letting users know they can download a CSV report for their invoices that does not include prorations."
},
"noInvoicesToList": {
- "message": "There are no invoices to list",
+ "message": "Không có hóa đơn nào để liệt kê",
"description": "A paragraph on the Billing History page of the Provider Portal letting users know they can download a CSV report for their invoices that does not include prorations."
},
"providerClientVaultPrivacyNotification": {
- "message": "Notice: Later this month, client vault privacy will be improved and provider members will no longer have direct access to client vault items. For questions,",
+ "message": "Thông báo: Cuối tháng này, quyền riêng tư của kho mật khẩu khách hàng sẽ được cải thiện và các thành viên nhà cung cấp sẽ không còn quyền truy cập trực tiếp vào các mục trong kho mật khẩu của khách hàng. Nếu có thắc mắc,",
"description": "This will be displayed as part of a larger sentence. The whole sentence reads: 'Notice: Later this month, client vault privacy will be improved and provider members will no longer have direct access to client vault items. For questions, please contact Bitwarden support'."
},
"contactBitwardenSupport": {
@@ -9907,7 +9927,7 @@
"message": "Được tài trợ"
},
"licenseAndBillingManagementDesc": {
- "message": "After making updates in the Bitwarden cloud server, upload your license file to apply the most recent changes."
+ "message": "Sau khi thực hiện các cập nhật trên máy chủ đám mây Bitwarden, hãy tải lên tệp giấy phép của bạn để áp dụng các thay đổi mới nhất."
},
"addToFolder": {
"message": "Thêm vào thư mục"
@@ -9916,10 +9936,10 @@
"message": "Chọn thư mục"
},
"personalItemTransferWarningSingular": {
- "message": "1 item will be permanently transferred to the selected organization. You will no longer own this item."
+ "message": "1 mục sẽ được chuyển vĩnh viễn đến tổ chức đã chọn. Bạn sẽ không còn sở hữu mục này nữa."
},
"personalItemsTransferWarningPlural": {
- "message": "$PERSONAL_ITEMS_COUNT$ items will be permanently transferred to the selected organization. You will no longer own these items.",
+ "message": "$PERSONAL_ITEMS_COUNT$ mục sẽ được chuyển vĩnh viễn đến tổ chức đã chọn. Bạn sẽ không còn sở hữu các mục này nữa.",
"placeholders": {
"personal_items_count": {
"content": "$1",
@@ -9928,7 +9948,7 @@
}
},
"personalItemWithOrgTransferWarningSingular": {
- "message": "1 item will be permanently transferred to $ORG$. You will no longer own this item.",
+ "message": "1 mục sẽ được chuyển vĩnh viễn đến $ORG$. Bạn sẽ không còn sở hữu mục này nữa.",
"placeholders": {
"org": {
"content": "$1",
@@ -9937,7 +9957,7 @@
}
},
"personalItemsWithOrgTransferWarningPlural": {
- "message": "$PERSONAL_ITEMS_COUNT$ items will be permanently transferred to $ORG$. You will no longer own these items.",
+ "message": "$PERSONAL_ITEMS_COUNT$ mục sẽ được chuyển vĩnh viễn đến $ORG$. Bạn sẽ không còn sở hữu các mục này nữa.",
"placeholders": {
"personal_items_count": {
"content": "$1",
@@ -9953,82 +9973,82 @@
"message": "Dữ liệu"
},
"purchasedSeatsRemoved": {
- "message": "purchased seats removed"
+ "message": "đã xóa ghế đã mua"
},
"environmentVariables": {
- "message": "Environment variables"
+ "message": "Biến môi trường"
},
"organizationId": {
- "message": "Organization ID"
+ "message": "ID tổ chức"
},
"projectIds": {
- "message": "Project IDs"
+ "message": "ID dự án"
},
"projectId": {
- "message": "Project ID"
+ "message": "ID dự án"
},
"projectsAccessedByMachineAccount": {
- "message": "The following projects can be accessed by this machine account."
+ "message": "Tài khoản máy này có thể truy cập các dự án sau."
},
"config": {
- "message": "Config"
+ "message": "Cấu hình"
},
"learnMoreAboutEmergencyAccess": {
- "message": "Learn more about emergency access"
+ "message": "Tìm hiểu thêm về quyền truy cập khẩn cấp"
},
"learnMoreAboutMatchDetection": {
- "message": "Learn more about match detection"
+ "message": "Tìm hiểu thêm về phát hiện khớp"
},
"learnMoreAboutMasterPasswordReprompt": {
- "message": "Learn more about master password re-prompt"
+ "message": "Tìm hiểu thêm về yêu cầu nhập lại mật khẩu chính"
},
"learnMoreAboutSearchingYourVault": {
- "message": "Learn more about searching your vault"
+ "message": "Tìm hiểu thêm về cách tìm kiếm trong kho mật khẩu của bạn"
},
"learnMoreAboutYourAccountFingerprintPhrase": {
- "message": "Learn about your account fingerprint phrase"
+ "message": "Tìm hiểu về cụm từ dấu vân tay tài khoản của bạn"
},
"impactOfRotatingYourEncryptionKey": {
- "message": "Impact of rotating your encryption key"
+ "message": "Tác động của việc xoay khóa mã hóa"
},
"learnMoreAboutEncryptionAlgorithms": {
- "message": "Learn more about encryption algorithms"
+ "message": "Tìm hiểu thêm về các thuật toán mã hóa"
},
"learnMoreAboutKDFIterations": {
- "message": "Learn more about KDF iterations"
+ "message": "Tìm hiểu thêm về số vòng lặp KDF"
},
"learnMoreAboutLocalization": {
- "message": "Learn more about localization"
+ "message": "Tìm hiểu thêm về bản địa hóa"
},
"learnMoreAboutWebsiteIcons": {
- "message": "Learn more about using website icons"
+ "message": "Tìm hiểu thêm về việc sử dụng biểu tượng trang web"
},
"learnMoreAboutUserAccess": {
- "message": "Learn more about user access"
+ "message": "Tìm hiểu thêm về quyền truy cập của người dùng"
},
"learnMoreAboutMemberRoles": {
- "message": "Learn more about member roles and permissions"
+ "message": "Tìm hiểu thêm về vai trò và quyền của thành viên"
},
"whatIsACvvNumber": {
- "message": "What is a CVV number?"
+ "message": "Số CVV là gì?"
},
"learnMoreAboutApi": {
- "message": "Learn more about Bitwarden's API"
+ "message": "Tìm hiểu thêm về API của Bitwarden"
},
"fileSend": {
- "message": "File Send"
+ "message": "Send tập tin"
},
"fileSends": {
- "message": "File Sends"
+ "message": "Send tập tin"
},
"textSend": {
- "message": "Text Send"
+ "message": "Send văn bản"
},
"textSends": {
- "message": "Text Sends"
+ "message": "Gửi văn bản"
},
"includesXMembers": {
- "message": "for $COUNT$ member",
+ "message": "cho $COUNT$ thành viên",
"placeholders": {
"count": {
"content": "$1",
@@ -10046,10 +10066,10 @@
}
},
"optionalOnPremHosting": {
- "message": "Optional on-premises hosting"
+ "message": "Lưu trữ tại chỗ tùy chọn"
},
"upgradeFreeOrganization": {
- "message": "Upgrade your $NAME$ organization ",
+ "message": "Nâng cấp tổ chức $NAME$ của bạn ",
"placeholders": {
"name": {
"content": "$1",
@@ -10058,10 +10078,10 @@
}
},
"includeSsoAuthenticationMessage": {
- "message": "SSO Authentication"
+ "message": "Xác thực SSO"
},
"familiesPlanInvLimitReachedManageBilling": {
- "message": "Families organizations may have up to $SEATCOUNT$ members. Upgrade to a paid plan to invite more members.",
+ "message": "Gói Bitwarden Gia đình có thể có tối đa $SEATCOUNT$ thành viên. Nâng cấp lên gói trả phí để mời thêm thành viên.",
"placeholders": {
"seatcount": {
"content": "$1",
@@ -10070,7 +10090,7 @@
}
},
"familiesPlanInvLimitReachedNoManageBilling": {
- "message": "Families organizations may have up to $SEATCOUNT$ members. Contact your organization owner to upgrade.",
+ "message": "Gói Bitwarden Gia đình có thể có tối đa $SEATCOUNT$ thành viên. Liên hệ chủ sở hữu tổ chức để nâng cấp.",
"placeholders": {
"seatcount": {
"content": "$1",
@@ -10079,10 +10099,10 @@
}
},
"upgradePlans": {
- "message": "Upgrade your plan to invite members and experience powerful security features."
+ "message": "Nâng cấp gói của bạn để mời thành viên và trải nghiệm các tính năng bảo mật mạnh mẽ."
},
"upgradeDiscount": {
- "message": "Save $AMOUNT$%",
+ "message": "Tiết kiệm $AMOUNT$%",
"placeholders": {
"amount": {
"content": "$1",
@@ -10091,49 +10111,49 @@
}
},
"enterprisePlanUpgradeMessage": {
- "message": "Advanced capabilities for larger organizations"
+ "message": "Khả năng nâng cao cho các tổ chức lớn hơn"
},
"teamsPlanUpgradeMessage": {
- "message": "Resilient protection for growing teams"
+ "message": "Bảo vệ kiên cường cho các nhóm đang phát triển"
},
"teamsInviteMessage": {
- "message": "Invite unlimited members"
+ "message": "Mời không giới hạn thành viên"
},
"accessToCreateGroups": {
- "message": "Access to create groups"
+ "message": "Quyền truy cập để tạo nhóm"
},
"syncGroupsAndUsersFromDirectory": {
- "message": "Sync groups and users from a directory"
+ "message": "Đồng bộ hóa nhóm và người dùng từ một thư mục"
},
"familyPlanUpgradeMessage": {
- "message": "Secure your family logins"
+ "message": "Bảo mật thông tin đăng nhập gia đình của bạn"
},
"accessToPremiumFeatures": {
- "message": "Access to Premium features"
+ "message": "Quyền truy cập vào các tính năng Premium"
},
"additionalStorageGbMessage": {
- "message": "GB additional storage"
+ "message": "GB dung lượng lưu trữ bổ sung"
},
"sshKeyAlgorithm": {
- "message": "Key algorithm"
+ "message": "Thuật toán khóa"
},
"sshPrivateKey": {
- "message": "Private key"
+ "message": "Khóa riêng tư"
},
"sshPublicKey": {
- "message": "Public key"
+ "message": "Khóa công khai"
},
"sshFingerprint": {
- "message": "Fingerprint"
+ "message": "Vân tay"
},
"sshKeyFingerprint": {
- "message": "Fingerprint"
+ "message": "Vân tay"
},
"sshKeyPrivateKey": {
- "message": "Private key"
+ "message": "Khóa riêng tư"
},
"sshKeyPublicKey": {
- "message": "Public key"
+ "message": "Khóa công khai"
},
"sshKeyAlgorithmED25519": {
"message": "ED25519"
@@ -10148,89 +10168,89 @@
"message": "RSA 4096-Bit"
},
"premiumAccounts": {
- "message": "6 premium accounts"
+ "message": "6 tài khoản cao cấp"
},
"unlimitedSharing": {
- "message": "Unlimited sharing"
+ "message": "Chia sẻ không giới hạn"
},
"unlimitedCollections": {
- "message": "Unlimited collections"
+ "message": "Bộ sưu tập không giới hạn"
},
"secureDataSharing": {
- "message": "Secure data sharing"
+ "message": "Chia sẻ dữ liệu an toàn"
},
"eventLogMonitoring": {
- "message": "Event log monitoring"
+ "message": "Giám sát nhật ký sự kiện"
},
"directoryIntegration": {
- "message": "Directory integration"
+ "message": "Tích hợp thư mục"
},
"passwordLessSso": {
- "message": "Passwordless SSO"
+ "message": "SSO không mật khẩu"
},
"accountRecovery": {
- "message": "Account recovery"
+ "message": "Khôi phục tài khoản"
},
"customRoles": {
- "message": "Custom roles"
+ "message": "Vai trò tùy chỉnh"
},
"unlimitedSecretsStorage": {
- "message": "Unlimited secrets storage"
+ "message": "Lưu trữ bí mật không giới hạn"
},
"unlimitedUsers": {
- "message": "Unlimited users"
+ "message": "Người dùng không giới hạn"
},
"UpTo50MachineAccounts": {
- "message": "Up to 50 machine accounts"
+ "message": "Tối đa 50 tài khoản máy"
},
"UpTo20MachineAccounts": {
- "message": "Up to 20 machine accounts"
+ "message": "Tối đa 20 tài khoản máy"
},
"current": {
- "message": "Current"
+ "message": "Hiện tại"
},
"secretsManagerSubscriptionInfo": {
- "message": "Your Secrets Manager subscription will upgrade based on the plan selected"
+ "message": "Gói đăng ký Trình quản lý Bí mật của bạn sẽ được nâng cấp dựa trên gói đã chọn"
},
"bitwardenPasswordManager": {
- "message": "Bitwarden Password Manager"
+ "message": "Trình quản lý mật khẩu Bitwarden"
},
"secretsManagerComplimentaryPasswordManager": {
- "message": "Gói đăng ký Password Manager miễn phí một năm của bạn sẽ được nâng cấp lên gói đã chọn. Bạn sẽ không bị tính phí cho đến khi thời gian miễn phí kết thúc."
+ "message": "Gói đăng ký Trình quản lý Mật khẩu miễn phí một năm của bạn sẽ được nâng cấp lên gói đã chọn. Bạn sẽ không bị tính phí cho đến khi thời gian miễn phí kết thúc."
},
"fileSavedToDevice": {
"message": "Đã lưu file. Xem mục tải xuống trên thiết bị của bạn."
},
"publicApi": {
- "message": "Public API",
+ "message": "API mở",
"description": "The text, 'API', is an acronym and should not be translated."
},
"showCharacterCount": {
- "message": "Show character count"
+ "message": "Hiển thị số lượng ký tự"
},
"hideCharacterCount": {
- "message": "Hide character count"
+ "message": "Ẩn số lượng ký tự"
},
"editAccess": {
- "message": "Edit access"
+ "message": "Chỉnh sửa quyền truy cập"
},
"textHelpText": {
- "message": "Use text fields for data like security questions"
+ "message": "Sử dụng các trường văn bản cho dữ liệu như câu hỏi bảo mật"
},
"hiddenHelpText": {
- "message": "Use hidden fields for sensitive data like a password"
+ "message": "Sử dụng các trường ẩn để lưu dữ liệu nhạy cảm như mật khẩu"
},
"checkBoxHelpText": {
- "message": "Use checkboxes if you'd like to autofill a form's checkbox, like a remember email"
+ "message": "Dùng các ô tích chọn nếu bạn muốn tự động điền vào ô tích chọn của biểu mẫu, chẳng hạn như ghi nhớ email"
},
"linkedHelpText": {
- "message": "Use a linked field when you are experiencing autofill issues for a specific website."
+ "message": "Sử dụng trường liên kết khi bạn gặp vấn đề với tính năng tự động điền trên một trang web cụ thể."
},
"linkedLabelHelpText": {
- "message": "Enter the the field's html id, name, aria-label, or placeholder."
+ "message": "Nhập html id, name, aria-label hoặc placeholder của các trường."
},
"uppercaseDescription": {
- "message": "Include uppercase characters",
+ "message": "Bao gồm các ký tự viết hoa",
"description": "Tooltip for the password generator uppercase character checkbox"
},
"uppercaseLabel": {
@@ -10238,7 +10258,7 @@
"description": "Label for the password generator uppercase character checkbox"
},
"lowercaseDescription": {
- "message": "Include lowercase characters",
+ "message": "Bao gồm các ký tự viết thường",
"description": "Full description for the password generator lowercase character checkbox"
},
"lowercaseLabel": {
@@ -10246,7 +10266,7 @@
"description": "Label for the password generator lowercase character checkbox"
},
"numbersDescription": {
- "message": "Include numbers",
+ "message": "Bao gồm cả số",
"description": "Full description for the password generator numbers checkbox"
},
"numbersLabel": {
@@ -10254,36 +10274,36 @@
"description": "Label for the password generator numbers checkbox"
},
"specialCharactersDescription": {
- "message": "Include special characters",
+ "message": "Bao gồm các ký tự đặc biệt",
"description": "Full description for the password generator special characters checkbox"
},
"addAttachment": {
- "message": "Add attachment"
+ "message": "Thêm tệp đính kèm"
},
"maxFileSizeSansPunctuation": {
- "message": "Maximum file size is 500 MB"
+ "message": "Kích thước tối đa của tập tin là 500MB"
},
"permanentlyDeleteAttachmentConfirmation": {
- "message": "Are you sure you want to permanently delete this attachment?"
+ "message": "Bạn có chắc chắn muốn xóa vĩnh viễn tệp đính kèm này không?"
},
"manageSubscriptionFromThe": {
- "message": "Manage subscription from the",
+ "message": "Quản lý đăng ký từ",
"description": "This represents the beginning of a sentence. The full sentence will be 'Manage subscription from the Provider Portal', but 'Provider Portal' will be a link and thus cannot be included in the translation file."
},
"toHostBitwardenOnYourOwnServer": {
- "message": "To host Bitwarden on your own server, you will need to upload your license file. To support Free Families plans and advanced billing capabilities for your self-hosted organization, you will need to set up automatic sync in your self-hosted organization."
+ "message": "Để tự lưu trữ Bitwarden trên máy chủ của bạn, bạn sẽ cần tải tệp giấy phép lên. Để hỗ trợ các gói Gia đình Miễn phí và các tính năng thanh toán nâng cao cho tổ chức tự lưu trữ của bạn, bạn sẽ cần thiết lập đồng bộ tự động trong tổ chức tự lưu trữ."
},
"selfHostingTitleProper": {
- "message": "Self-Hosting"
+ "message": "Tự lưu trữ"
},
"claim-domain-single-org-warning": {
- "message": "Claiming a domain will turn on the single organization policy."
+ "message": "Việc xác nhận quyền sở hữu tên miền sẽ bật chính sách một tổ chức."
},
"single-org-revoked-user-warning": {
- "message": "Non-compliant members will be revoked. Administrators can restore members once they leave all other organizations."
+ "message": "Các thành viên không tuân thủ sẽ bị thu hồi. Quản trị viên có thể khôi phục thành viên khi họ rời khỏi tất cả các tổ chức khác."
},
"deleteOrganizationUser": {
- "message": "Delete $NAME$",
+ "message": "Xóa $NAME$",
"placeholders": {
"name": {
"content": "$1",
@@ -10293,7 +10313,7 @@
}
},
"deleteOrganizationUserWarningDesc": {
- "message": "This will permanently delete all items owned by $NAME$. Collection items are not impacted.",
+ "message": "Thao tác này sẽ xóa vĩnh viễn tất cả các mục thuộc sở hữu của $NAME$. Các mục trong bộ sưu tập sẽ không bị ảnh hưởng.",
"description": "Warning description for the delete organization user dialog",
"placeholders": {
"name": {
@@ -10303,11 +10323,11 @@
}
},
"deleteManyOrganizationUsersWarningDesc": {
- "message": "This will permanently delete all items owned by the following members. Collection items are not impacted.",
+ "message": "Thao tác này sẽ xóa vĩnh viễn tất cả các mục thuộc sở hữu của những thành viên sau. Các mục trong bộ sưu tập sẽ không bị ảnh hưởng.",
"description": "Warning description for the bulk delete organization users dialog"
},
"organizationUserDeleted": {
- "message": "Deleted $NAME$",
+ "message": "Đã xóa $NAME$",
"placeholders": {
"name": {
"content": "$1",
@@ -10316,10 +10336,10 @@
}
},
"organizationUserDeletedDesc": {
- "message": "The user was removed from the organization and all associated user data has been deleted."
+ "message": "Người dùng đã bị xóa khỏi tổ chức và tất cả dữ liệu người dùng liên quan đã bị xóa."
},
"deletedUserIdEventMessage": {
- "message": "Deleted user $ID$",
+ "message": "Đã xóa người dùng $ID$",
"placeholders": {
"id": {
"content": "$1",
@@ -10328,7 +10348,7 @@
}
},
"userLeftOrganization": {
- "message": "User $ID$ left organization",
+ "message": "Người dùng $ID$ đã rời tổ chức",
"placeholders": {
"id": {
"content": "$1",
@@ -10337,7 +10357,7 @@
}
},
"suspendedOrganizationTitle": {
- "message": "The $ORGANIZATION$ is suspended",
+ "message": "Tổ chức $ORGANIZATION$ bị tạm ngưng",
"placeholders": {
"organization": {
"content": "$1",
@@ -10346,37 +10366,37 @@
}
},
"suspendedUserOrgMessage": {
- "message": "Contact your organization owner for assistance."
+ "message": "Liên hệ chủ sở hữu tổ chức của bạn để được hỗ trợ."
},
"suspendedOwnerOrgMessage": {
- "message": "To regain access to your organization, add a payment method."
+ "message": "Để lấy lại quyền truy cập vào tổ chức, hãy thêm phương thức thanh toán."
},
"deleteMembers": {
- "message": "Delete members"
+ "message": "Xóa thành viên"
},
"noSelectedMembersApplicable": {
- "message": "This action is not applicable to any of the selected members."
+ "message": "Thao tác này không áp dụng cho bất kỳ thành viên nào được chọn."
},
"deletedSuccessfully": {
- "message": "Deleted successfully"
+ "message": "Đã xóa thành công"
},
"freeFamiliesSponsorship": {
- "message": "Remove Free Bitwarden Families sponsorship"
+ "message": "Xóa tài trợ Gói Bitwarden Gia đình miễn phí"
},
"freeFamiliesSponsorshipPolicyDesc": {
- "message": "Do not allow members to redeem a Families plan through this organization."
+ "message": "Không cho phép thành viên đổi gói Gia đình thông qua tổ chức này."
},
"verifyBankAccountWithStatementDescriptorWarning": {
- "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make a micro-deposit within the next 1-2 business days. Enter the statement descriptor code from this deposit on the organization's billing page to verify the bank account. Failure to verify the bank account will result in a missed payment and your subscription being suspended."
+ "message": "Thanh toán bằng tài khoản ngân hàng chỉ khả dụng cho khách hàng ở Hoa Kỳ. Bạn sẽ được yêu cầu xác minh tài khoản ngân hàng của mình. Chúng tôi sẽ thực hiện một khoản tiền gửi nhỏ trong vòng 1-2 ngày làm việc tới. Nhập mã mô tả sao kê từ khoản tiền gửi này trên trang thanh toán của tổ chức để xác minh tài khoản ngân hàng. Việc không xác minh tài khoản ngân hàng sẽ dẫn đến thanh toán bị bỏ lỡ và đăng ký của bạn bị tạm ngưng."
},
"verifyBankAccountWithStatementDescriptorInstructions": {
- "message": "We have made a micro-deposit to your bank account (this may take 1-2 business days). Enter the six-digit code starting with 'SM' found on the deposit description. Failure to verify the bank account will result in a missed payment and your subscription being suspended."
+ "message": "Chúng tôi đã thực hiện một khoản tiền gửi nhỏ vào tài khoản ngân hàng của bạn (việc này có thể mất 1-2 ngày làm việc). Nhập mã sáu chữ số bắt đầu bằng 'SM' có trong phần mô tả tiền gửi. Việc không xác minh tài khoản ngân hàng sẽ dẫn đến thanh toán bị bỏ lỡ và đăng ký của bạn bị tạm ngưng."
},
"descriptorCode": {
- "message": "Descriptor code"
+ "message": "Mã mô tả"
},
"cannotRemoveViewOnlyCollections": {
- "message": "You cannot remove collections with View only permissions: $COLLECTIONS$",
+ "message": "Bạn không thể xóa các bộ sưu tập chỉ có quyền Xem: $COLLECTIONS$",
"placeholders": {
"collections": {
"content": "$1",
@@ -10385,37 +10405,37 @@
}
},
"removeMembers": {
- "message": "Remove members"
+ "message": "Xóa thành viên"
},
"devices": {
- "message": "Devices"
+ "message": "Thiết bị"
},
"deviceListDescription": {
- "message": "Your account was logged in to each of the devices below. If you do not recognize a device, remove it now."
+ "message": "Tài khoản của bạn đã đăng nhập vào từng thiết bị dưới đây. Nếu bạn không nhận ra một thiết bị, hãy xóa thiết bị đó ngay."
},
"deviceListDescriptionTemp": {
- "message": "Your account was logged in to each of the devices below."
+ "message": "Tài khoản của bạn đã đăng nhập vào từng thiết bị dưới đây."
},
"claimedDomains": {
- "message": "Claimed domains"
+ "message": "Tên miền đã xác nhận"
},
"claimDomain": {
- "message": "Claim domain"
+ "message": "Xác nhận tên miền"
},
"reclaimDomain": {
- "message": "Reclaim domain"
+ "message": "Yêu cầu lại tên miền"
},
"claimDomainNameInputHint": {
- "message": "Example: mydomain.com. Subdomains require separate entries to be claimed."
+ "message": "Ví dụ: mydomain.com. Tên miền phụ cần các mục nhập riêng để được xác nhận."
},
"automaticClaimedDomains": {
- "message": "Automatic Claimed Domains"
+ "message": "Tên miền tự động được xác nhận"
},
"automaticDomainClaimProcess": {
- "message": "Bitwarden will attempt to claim the domain 3 times during the first 72 hours. If the domain can’t be claimed, check the DNS record in your host and manually claim. The domain will be removed from your organization in 7 days if it is not claimed."
+ "message": "Bitwarden sẽ thử xác nhận tên miền 3 lần trong 72 giờ đầu tiên. Nếu tên miền không thể được xác nhận, hãy kiểm tra bản ghi DNS trong máy chủ của bạn và tự xác nhận. Tên miền sẽ bị xóa khỏi tổ chức của bạn trong 7 ngày nếu không được xác nhận."
},
"domainNotClaimed": {
- "message": "$DOMAIN$ not claimed. Check your DNS records.",
+ "message": "$DOMAIN$ chưa được xác nhận. Vui lòng kiểm tra bản ghi DNS của bạn.",
"placeholders": {
"DOMAIN": {
"content": "$1",
@@ -10424,19 +10444,19 @@
}
},
"domainStatusClaimed": {
- "message": "Claimed"
+ "message": "Đã xác nhận"
},
"domainStatusUnderVerification": {
- "message": "Under verification"
+ "message": "Đang trong quá trình xác minh"
},
"claimedDomainsDescription": {
- "message": "Claim a domain to own member accounts. The SSO identifier page will be skipped during login for members with claimed domains and administrators will be able to delete claimed accounts."
+ "message": "Xác nhận một tên miền để sở hữu tài khoản của thành viên. Trang định danh SSO sẽ bị bỏ qua trong quá trình đăng nhập cho các thành viên có tên miền đã xác nhận và quản trị viên sẽ có thể xóa các tài khoản đã xác nhận."
},
"invalidDomainNameClaimMessage": {
"message": "Định dạng nhập vào không hợp lệ. Định dạng: mydomain.com. Các tên miền con yêu cầu các mục riêng biệt để được xác nhận."
},
"domainClaimedEvent": {
- "message": "$DOMAIN$ claimed",
+ "message": "Đã xác nhận tên miền $DOMAIN$",
"placeholders": {
"DOMAIN": {
"content": "$1",
@@ -10445,7 +10465,7 @@
}
},
"domainNotClaimedEvent": {
- "message": "$DOMAIN$ not claimed",
+ "message": "$DOMAIN$ chưa được xác nhận",
"placeholders": {
"DOMAIN": {
"content": "$1",
@@ -10454,7 +10474,7 @@
}
},
"updatedRevokeSponsorshipConfirmationForSentSponsorship": {
- "message": "If you remove $EMAIL$, the sponsorship for this Family plan cannot be redeemed. Are you sure you want to continue?",
+ "message": "Nếu bạn xóa $EMAIL$, chương trình tài trợ cho gói Gia đình này sẽ không thể được đổi. Bạn có chắc chắn muốn tiếp tục không?",
"placeholders": {
"email": {
"content": "$1",
@@ -10463,7 +10483,7 @@
}
},
"updatedRevokeSponsorshipConfirmationForAcceptedSponsorship": {
- "message": "If you remove $EMAIL$, the sponsorship for this Family plan will end and the saved payment method will be charged $40 + applicable tax on $DATE$. You will not be able to redeem a new sponsorship until $DATE$. Are you sure you want to continue?",
+ "message": "Nếu bạn xóa $EMAIL$, chương trình tài trợ cho gói Gia đình này sẽ kết thúc và phương thức thanh toán đã lưu sẽ bị tính phí 40$ + thuế hiện hành vào ngày $DATE$. Bạn sẽ không thể đổi một chương trình tài trợ mới cho đến ngày $DATE$. Bạn có chắc chắn muốn tiếp tục không?",
"placeholders": {
"email": {
"content": "$1",
@@ -10476,108 +10496,108 @@
}
},
"domainClaimed": {
- "message": "Domain claimed"
+ "message": "Đã xác nhận tên miền"
},
"organizationNameMaxLength": {
- "message": "Organization name cannot exceed 50 characters."
+ "message": "Tên tổ chức không được vượt quá 50 ký tự."
},
"rotationCompletedTitle": {
- "message": "Key rotation successful"
+ "message": "Xoay khóa thành công"
},
"rotationCompletedDesc": {
- "message": "Your master password and encryption keys have been updated. Your other devices have been logged out."
+ "message": "Mật khẩu chính và khóa mã hóa của bạn đã được cập nhật. Các thiết bị khác của bạn đã bị đăng xuất."
},
"trustUserEmergencyAccess": {
- "message": "Trust and confirm user"
+ "message": "Tin tưởng và xác nhận người dùng"
},
"trustOrganization": {
- "message": "Trust organization"
+ "message": "Tin tưởng tổ chức"
},
"trust": {
- "message": "Trust"
+ "message": "Tin tưởng"
},
"doNotTrust": {
- "message": "Do not trust"
+ "message": "Không tin tưởng"
},
"organizationNotTrusted": {
- "message": "Organization is not trusted"
+ "message": "Tổ chức không được tin cậy"
},
"emergencyAccessTrustWarning": {
- "message": "For the security of your account, only confirm if you have granted emergency access to this user and their fingerprint matches what is displayed in their account"
+ "message": "Để đảm bảo an toàn tài khoản của bạn, chỉ xác nhận nếu bạn đã cấp quyền truy cập khẩn cấp cho người dùng này và cụm từ nhận dạng của họ khớp với những gì hiển thị trong tài khoản của họ"
},
"orgTrustWarning": {
- "message": "For the security of your account, only proceed if you are a member of this organization, have account recovery enabled, and the fingerprint displayed below matches the organization's fingerprint."
+ "message": "Để đảm bảo an toàn cho tài khoản của bạn, vui lòng chỉ tiếp tục nếu bạn là thành viên của tổ chức này, đã kích hoạt tính năng khôi phục tài khoản và cụm từ nhận dạng hiển thị bên dưới trùng khớp với cụm từ nhận dạng của tổ chức."
},
"orgTrustWarning1": {
- "message": "This organization has an Enterprise policy that will enroll you in account recovery. Enrollment will allow organization administrators to change your password. Only proceed if you recognize this organization and the fingerprint phrase displayed below matches the organization's fingerprint."
+ "message": "Tổ chức này có chính sách doanh nghiệp sẽ đăng ký bạn vào quy trình khôi phục tài khoản. Việc đăng ký sẽ cho phép các quản trị viên của tổ chức thay đổi mật khẩu của bạn. Chỉ tiếp tục nếu bạn nhận ra tổ chức này và cụm từ xác thực hiển thị bên dưới khớp với cụm từ xác thực của tổ chức."
},
"trustUser": {
- "message": "Trust user"
+ "message": "Người dùng tin cậy"
},
"sshKeyWrongPassword": {
- "message": "The password you entered is incorrect."
+ "message": "Mật khẩu bạn đã nhập không đúng."
},
"importSshKey": {
- "message": "Import"
+ "message": "Nhập"
},
"confirmSshKeyPassword": {
- "message": "Confirm password"
+ "message": "Xác nhận mật khẩu"
},
"enterSshKeyPasswordDesc": {
- "message": "Enter the password for the SSH key."
+ "message": "Nhập mật khẩu cho khóa SSH."
},
"enterSshKeyPassword": {
- "message": "Enter password"
+ "message": "Nhập mật khẩu"
},
"invalidSshKey": {
- "message": "The SSH key is invalid"
+ "message": "Khóa SSH không hợp lệ"
},
"sshKeyTypeUnsupported": {
- "message": "The SSH key type is not supported"
+ "message": "Loại khóa SSH không được hỗ trợ"
},
"importSshKeyFromClipboard": {
"message": "Nhập khóa từ bảng nhớ tạm"
},
"sshKeyImported": {
- "message": "SSH key imported successfully"
+ "message": "Khóa SSH được nhập thành công"
},
"copySSHPrivateKey": {
- "message": "Copy private key"
+ "message": "Sao chép khóa riêng tư"
},
"openingExtension": {
- "message": "Opening the Bitwarden browser extension"
+ "message": "Đang mở tiện ích mở rộng trình duyệt Bitwarden"
},
"somethingWentWrong": {
- "message": "Something went wrong..."
+ "message": "Đã có lỗi xảy ra..."
},
"openingExtensionError": {
- "message": "We had trouble opening the Bitwarden browser extension. Click the button to open it now."
+ "message": "Chúng tôi gặp sự cố khi mở tiện ích mở rộng trình duyệt Bitwarden. Nhấp vào nút để mở ngay bây giờ."
},
"openExtension": {
- "message": "Open extension"
+ "message": "Mở tiện ích mở rộng"
},
"doNotHaveExtension": {
- "message": "Don't have the Bitwarden browser extension?"
+ "message": "Bạn chưa có tiện ích mở rộng trình duyệt Bitwarden?"
},
"installExtension": {
- "message": "Install extension"
+ "message": "Cài đặt tiện ích mở rộng"
},
"openedExtension": {
- "message": "Opened the browser extension"
+ "message": "Đã mở tiện ích mở rộng trình duyệt"
},
"openedExtensionViewAtRiskPasswords": {
- "message": "Successfully opened the Bitwarden browser extension. You can now review your at-risk passwords."
+ "message": "Đã mở tiện ích mở rộng trình duyệt Bitwarden thành công. Bây giờ bạn có thể xem lại mật khẩu có rủi ro của mình."
},
"openExtensionManuallyPart1": {
- "message": "We had trouble opening the Bitwarden browser extension. Open the Bitwarden icon",
+ "message": "Chúng tôi gặp sự cố khi mở tiện ích mở rộng trình duyệt Bitwarden. Mở biểu tượng Bitwarden",
"description": "This will be used as part of a larger sentence, broken up to include the Bitwarden icon. The full sentence will read 'We had trouble opening the Bitwarden browser extension. Open the Bitwarden icon [Bitwarden Icon] from the toolbar.'"
},
"openExtensionManuallyPart2": {
- "message": "from the toolbar.",
+ "message": "từ thanh công cụ.",
"description": "This will be used as part of a larger sentence, broken up to include the Bitwarden icon. The full sentence will read 'We had trouble opening the Bitwarden browser extension. Open the Bitwarden icon [Bitwarden Icon] from the toolbar.'"
},
"resellerRenewalWarningMsg": {
- "message": "Your subscription will renew soon. To ensure uninterrupted service, contact $RESELLER$ to confirm your renewal before $RENEWAL_DATE$.",
+ "message": "Đăng ký của bạn sẽ sớm được gia hạn. Để đảm bảo dịch vụ không bị gián đoạn, hãy liên hệ $RESELLER$ để xác nhận gia hạn trước $RENEWAL_DATE$.",
"placeholders": {
"reseller": {
"content": "$1",
@@ -10590,7 +10610,7 @@
}
},
"resellerOpenInvoiceWarningMgs": {
- "message": "An invoice for your subscription was issued on $ISSUED_DATE$. To ensure uninterrupted service, contact $RESELLER$ to confirm your renewal before $DUE_DATE$.",
+ "message": "Một hóa đơn cho đăng ký của bạn đã được phát hành vào ngày $ISSUED_DATE$. Để đảm bảo dịch vụ không bị gián đoạn, hãy liên hệ $RESELLER$ để xác nhận gia hạn trước $DUE_DATE$.",
"placeholders": {
"reseller": {
"content": "$1",
@@ -10607,7 +10627,7 @@
}
},
"resellerPastDueWarningMsg": {
- "message": "The invoice for your subscription has not been paid. To ensure uninterrupted service, contact $RESELLER$ to confirm your renewal before $GRACE_PERIOD_END$.",
+ "message": "Hóa đơn cho đăng ký của bạn chưa được thanh toán. Để đảm bảo dịch vụ không bị gián đoạn, hãy liên hệ $RESELLER$ để xác nhận gia hạn trước $GRACE_PERIOD_END$.",
"placeholders": {
"reseller": {
"content": "$1",
@@ -10620,13 +10640,13 @@
}
},
"restartOrganizationSubscription": {
- "message": "Organization subscription restarted"
+ "message": "Đăng ký tổ chức đã được khởi động lại"
},
"restartSubscription": {
- "message": "Restart your subscription"
+ "message": "Khởi động lại đăng ký của bạn"
},
"suspendedManagedOrgMessage": {
- "message": "Contact $PROVIDER$ for assistance.",
+ "message": "Liên hệ $PROVIDER$ để được hỗ trợ.",
"placeholders": {
"provider": {
"content": "$1",
@@ -10635,16 +10655,16 @@
}
},
"accountDeprovisioningNotification": {
- "message": "Administrators now have the ability to delete member accounts that belong to a claimed domain."
+ "message": "Giờ đây, quản trị viên có khả năng xóa tài khoản thành viên thuộc một tên miền đã xác nhận."
},
"deleteManagedUserWarningDesc": {
- "message": "This action will delete the member account including all items in their vault. This replaces the previous Remove action."
+ "message": "Thao tác này sẽ xóa tài khoản thành viên bao gồm tất cả các mục trong kho của họ. Thao tác này thay thế cho hành động Xóa trước đó."
},
"deleteManagedUserWarning": {
- "message": "Delete is a new action!"
+ "message": "Xóa là một hành động mới!"
},
"seatsRemaining": {
- "message": "You have $REMAINING$ seats remaining out of $TOTAL$ seats assigned to this organization. Contact your provider to manage your subscription.",
+ "message": "Bạn còn $REMAINING$ ghế trong tổng số $TOTAL$ ghế được chỉ định cho tổ chức này. Liên hệ nhà cung cấp của bạn để quản lý đăng ký của bạn.",
"placeholders": {
"remaining": {
"content": "$1",
@@ -10657,19 +10677,19 @@
}
},
"existingOrganization": {
- "message": "Existing organization"
+ "message": "Tổ chức hiện có"
},
"selectOrganizationProviderPortal": {
- "message": "Select an organization to add to your Provider Portal."
+ "message": "Chọn một tổ chức để thêm vào Cổng thông tin Nhà cung cấp của bạn."
},
"noOrganizations": {
- "message": "There are no organizations to list"
+ "message": "Không có tổ chức nào để liệt kê"
},
"yourProviderSubscriptionCredit": {
- "message": "Your provider subscription will receive a credit for any remaining time in the organization's subscription."
+ "message": "Đăng ký nhà cung cấp của bạn sẽ nhận được một khoản tín dụng cho bất kỳ thời gian còn lại nào trong đăng ký của tổ chức."
},
"doYouWantToAddThisOrg": {
- "message": "Do you want to add this organization to $PROVIDER$?",
+ "message": "Bạn có muốn thêm tổ chức này vào $PROVIDER$ không?",
"placeholders": {
"provider": {
"content": "$1",
@@ -10678,13 +10698,13 @@
}
},
"addedExistingOrganization": {
- "message": "Added existing organization"
+ "message": "Đã thêm tổ chức hiện có"
},
"assignedExceedsAvailable": {
- "message": "Assigned seats exceed available seats."
+ "message": "Số ghế được chỉ định vượt quá số ghế có sẵn."
},
"userkeyRotationDisclaimerEmergencyAccessText": {
- "message": "Fingerprint phrase for $NUM_USERS$ contacts for which you have enabled emergency access.",
+ "message": "Cụm từ xác thực cho $NUM_USERS$ liên hệ mà bạn đã bật quyền truy cập khẩn cấp.",
"placeholders": {
"num_users": {
"content": "$1",
@@ -10693,7 +10713,7 @@
}
},
"userkeyRotationDisclaimerAccountRecoveryOrgsText": {
- "message": "Fingerprint phrase for the organization $ORG_NAME$ for which you have enabled account recovery.",
+ "message": "Cụm từ xác thực cho tổ chức $ORG_NAME$ mà bạn đã bật khôi phục tài khoản.",
"placeholders": {
"org_name": {
"content": "$1",
@@ -10702,171 +10722,171 @@
}
},
"userkeyRotationDisclaimerDescription": {
- "message": "Rotating your encryption keys will require you to trust keys of any organizations that can recover your account, and any contacts that you have enabled emergency access for. To continue, make sure you can verify the following:"
+ "message": "Việc xoay khóa mã hóa của bạn sẽ yêu cầu bạn phải tin tưởng khóa của bất kỳ tổ chức nào có thể khôi phục tài khoản của bạn và bất kỳ liên hệ nào mà bạn đã bật quyền truy cập khẩn cấp. Để tiếp tục, hãy đảm bảo rằng bạn có thể xác minh những điều sau:"
},
"userkeyRotationDisclaimerTitle": {
- "message": "Untrusted encryption keys"
+ "message": "Khóa mã hóa không đáng tin cậy"
},
"changeAtRiskPassword": {
- "message": "Change at-risk password"
+ "message": "Thay đổi mật khẩu có rủi ro"
},
"removeUnlockWithPinPolicyTitle": {
- "message": "Remove Unlock with PIN"
+ "message": "Xóa Mở khóa bằng mã PIN"
},
"removeUnlockWithPinPolicyDesc": {
- "message": "Do not allow members to unlock their account with a PIN."
+ "message": "Không cho phép thành viên mở khóa tài khoản của họ bằng mã PIN."
},
"upgradeForFullEventsMessage": {
- "message": "Event logs are not stored for your organization. Upgrade to a Teams or Enterprise plan to get full access to organization event logs."
+ "message": "Nhật ký sự kiện không được lưu trữ cho tổ chức của bạn. Nâng cấp lên gói Teams hoặc Enterprise để có toàn quyền truy cập vào nhật ký sự kiện của tổ chức."
},
"upgradeEventLogTitleMessage": {
- "message": "Upgrade to see event logs from your organization."
+ "message": "Nâng cấp để xem nhật ký sự kiện từ tổ chức của bạn."
},
"upgradeEventLogMessage": {
- "message": "These events are examples only and do not reflect real events within your Bitwarden organization."
+ "message": "Những sự kiện này chỉ là ví dụ và không phản ánh các sự kiện thực tế trong tổ chức Bitwarden của bạn."
},
"cannotCreateCollection": {
- "message": "Free organizations may have up to 2 collections. Upgrade to a paid plan to add more collections."
+ "message": "Các tổ chức miễn phí có thể có tối đa 2 bộ sưu tập. Nâng cấp lên gói trả phí để thêm nhiều bộ sưu tập hơn."
},
"businessUnit": {
- "message": "Business Unit"
+ "message": "Bộ phận kinh doanh"
},
"businessUnits": {
- "message": "Business Units"
+ "message": "Các bộ phận kinh doanh"
},
"newBusinessUnit": {
- "message": "New business unit"
+ "message": "Bộ phận kinh doanh mới"
},
"sendsTitleNoItems": {
- "message": "Send sensitive information safely",
+ "message": "Gửi thông tin nhạy cảm một cách an toàn",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendsBodyNoItems": {
- "message": "Share files and data securely with anyone, on any platform. Your information will remain end-to-end encrypted while limiting exposure.",
+ "message": "Chia sẻ tệp tin và dữ liệu một cách an toàn với bất kỳ ai, trên bất kỳ nền tảng nào. Thông tin của bạn sẽ được mã hóa đầu cuối để hạn chế rủi ro bị lộ.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"generatorNudgeTitle": {
- "message": "Quickly create passwords"
+ "message": "Tạo mật khẩu nhanh chóng"
},
"generatorNudgeBodyOne": {
- "message": "Easily create strong and unique passwords by clicking on",
+ "message": "Dễ dàng tạo mật khẩu mạnh và duy nhất chỉ trong một cú nhấp chuột",
"description": "Two part message",
"example": "Easily create strong and unique passwords by clicking on {icon} to help you keep your logins secure."
},
"generatorNudgeBodyTwo": {
- "message": "to help you keep your logins secure.",
+ "message": "để giúp bạn bảo vệ thông tin đăng nhập của mình.",
"description": "Two part message",
"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": "Dễ dàng tạo mật khẩu mạnh và duy nhất bằng cách nhấp vào Trình tạo mật khẩu để giúp bạn bảo vệ tài khoản đăng nhập của mình.",
"description": "Aria label for the body content of the generator nudge"
},
"newLoginNudgeTitle": {
- "message": "Save time with autofill"
+ "message": "Tiết kiệm thời gian với tính năng tự động điền"
},
"newLoginNudgeBodyOne": {
- "message": "Include a",
+ "message": "Bao gồm một",
"description": "This is in multiple parts to allow for bold text in the middle of the sentence.",
"example": "Include a Website so this login appears as an autofill suggestion."
},
"newLoginNudgeBodyBold": {
- "message": "Website",
+ "message": "Trang web",
"description": "This is in multiple parts to allow for bold text in the middle of the sentence.",
"example": "Include a Website so this login appears as an autofill suggestion."
},
"newLoginNudgeBodyTwo": {
- "message": "so this login appears as an autofill suggestion.",
+ "message": "vì vậy, thông tin đăng nhập này sẽ xuất hiện như đề xuất tự động điền.",
"description": "This is in multiple parts to allow for bold text in the middle of the sentence.",
"example": "Include a Website so this login appears as an autofill suggestion."
},
"newCardNudgeTitle": {
- "message": "Seamless online checkout"
+ "message": "Thanh toán trực tuyến không gián đoạn"
},
"newCardNudgeBody": {
- "message": "With cards, easily autofill payment forms securely and accurately."
+ "message": "Với thẻ, dễ dàng tự động điền các biểu mẫu thanh toán an toàn và chính xác."
},
"newIdentityNudgeTitle": {
- "message": "Simplify creating accounts"
+ "message": "Đơn giản hóa việc tạo tài khoản"
},
"newIdentityNudgeBody": {
- "message": "With identities, quickly autofill long registration or contact forms."
+ "message": "Với danh tính, nhanh chóng tự động điền các biểu mẫu đăng ký hoặc liên hệ dài."
},
"newNoteNudgeTitle": {
- "message": "Keep your sensitive data safe"
+ "message": "Giữ dữ liệu nhạy cảm của bạn an toàn"
},
"newNoteNudgeBody": {
- "message": "With notes, securely store sensitive data like banking or insurance details."
+ "message": "Với ghi chú, lưu trữ an toàn dữ liệu nhạy cảm như thông tin ngân hàng hoặc bảo hiểm."
},
"newSshNudgeTitle": {
- "message": "Developer-friendly SSH access"
+ "message": "Truy cập SSH thân thiện với nhà phát triển"
},
"newSshNudgeBodyOne": {
- "message": "Store your keys and connect with the SSH agent for fast, encrypted authentication.",
+ "message": "Lưu trữ khóa của bạn và kết nối với trình quản lý khóa SSH để xác thực nhanh chóng và được mã hóa.",
"description": "Two part message",
"example": "Store your keys and connect with the SSH agent for fast, encrypted authentication. Learn more about SSH agent"
},
"newSshNudgeBodyTwo": {
- "message": "Learn more about SSH agent",
+ "message": "Tìm hiểu thêm về SSH agent",
"description": "Two part message",
"example": "Store your keys and connect with the SSH agent for fast, encrypted authentication. Learn more about SSH agent"
},
"setupExtensionPageTitle": {
- "message": "Autofill your passwords securely with one click"
+ "message": "Tự động điền mật khẩu của bạn một cách an toàn chỉ với một cú nhấp chuột"
},
"setupExtensionPageDescription": {
- "message": "Get the Bitwarden browser extension and start autofilling today"
+ "message": "Tải tiện ích mở rộng trình duyệt Bitwarden và bắt đầu tự động điền ngay hôm nay"
},
"getTheExtension": {
- "message": "Get the extension"
+ "message": "Tải tiện ích mở rộng"
},
"addItLater": {
- "message": "Add it later"
+ "message": "Thêm sau"
},
"cannotAutofillPasswordsWithoutExtensionTitle": {
- "message": "You can't autofill passwords without the browser extension"
+ "message": "Bạn không thể tự động điền mật khẩu nếu không có tiện ích mở rộng trình duyệt"
},
"cannotAutofillPasswordsWithoutExtensionDesc": {
- "message": "Are you sure you don't want to add the extension now?"
+ "message": "Bạn có chắc chắn rằng bạn không muốn thêm tiện ích mở rộng ngay bây giờ không?"
},
"skipToWebApp": {
- "message": "Skip to web app"
+ "message": "Chuyển đến ứng dụng web"
},
"bitwardenExtensionInstalled": {
- "message": "Bitwarden extension installed!"
+ "message": "Đã cài đặt tiện ích mở rộng Bitwarden!"
},
"openExtensionToAutofill": {
- "message": "Open the extension to log in and start autofilling."
+ "message": "Mở tiện ích mở rộng để đăng nhập và bắt đầu tự động điền."
},
"openBitwardenExtension": {
- "message": "Open Bitwarden extension"
+ "message": "Mở tiện ích mở rộng Bitwarden"
},
"gettingStartedWithBitwardenPart1": {
- "message": "For tips on getting started with Bitwarden visit the",
+ "message": "Để biết các mẹo bắt đầu sử dụng Bitwarden, hãy truy cập",
"description": "This will be displayed as part of a larger sentence. The whole sentence reads: 'For tips on getting started with Bitwarden visit the Learning Center and Help Center'"
},
"gettingStartedWithBitwardenPart2": {
- "message": "Learning Center",
+ "message": "Trung tâm học tập",
"description": "This will be displayed as part of a larger sentence. The whole sentence reads: 'For tips on getting started with Bitwarden visit the Learning Center and Help Center'"
},
"gettingStartedWithBitwardenPart3": {
- "message": "Help Center",
+ "message": "Trung tâm Trợ giúp",
"description": "This will be displayed as part of a larger sentence. The whole sentence reads: 'For tips on getting started with Bitwarden visit the Learning Center and Help Center'"
},
"setupExtensionContentAlt": {
- "message": "With the Bitwarden browser extension you can easily create new logins, access your saved logins directly from your browser toolbar, and sign in to accounts quickly using Bitwarden autofill."
+ "message": "Với tiện ích mở rộng trình duyệt Bitwarden, bạn có thể dễ dàng tạo thông tin đăng nhập mới, truy cập thông tin đăng nhập đã lưu trực tiếp từ thanh công cụ trình duyệt của mình và đăng nhập vào tài khoản một cách nhanh chóng bằng cách sử dụng tính năng tự động điền của Bitwarden."
},
"restart": {
- "message": "Restart"
+ "message": "Khởi động lại"
},
"verifyProviderBankAccountWithStatementDescriptorWarning": {
- "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make a micro-deposit within the next 1-2 business days. Enter the statement descriptor code from this deposit on the provider's subscription page to verify the bank account. Failure to verify the bank account will result in a missed payment and your subscription being suspended."
+ "message": "Thanh toán bằng tài khoản ngân hàng chỉ khả dụng cho khách hàng ở Hoa Kỳ. Bạn sẽ được yêu cầu xác minh tài khoản ngân hàng của mình. Chúng tôi sẽ thực hiện một khoản tiền gửi nhỏ trong vòng 1-2 ngày làm việc tới. Nhập mã mô tả sao kê từ khoản tiền gửi này trên trang đăng ký của nhà cung cấp để xác minh tài khoản ngân hàng. Việc không xác minh tài khoản ngân hàng sẽ dẫn đến thanh toán bị bỏ lỡ và đăng ký của bạn bị tạm ngưng."
},
"clickPayWithPayPal": {
- "message": "Please click the Pay with PayPal button to add your payment method."
+ "message": "Vui lòng nhấp vào nút \"Thanh toán bằng PayPal\" để thêm phương thức thanh toán của bạn."
},
"revokeActiveSponsorshipConfirmation": {
- "message": "If you remove $EMAIL$, the sponsorship for this Family plan will end. A seat within your organization will become available for members or sponsorships after the sponsored organization renewal date on $DATE$.",
+ "message": "Nếu bạn xóa $EMAIL$, chương trình tài trợ cho gói Gia đình này sẽ kết thúc. Một ghế trong tổ chức của bạn sẽ khả dụng cho các thành viên hoặc chương trình tài trợ sau ngày gia hạn tổ chức được tài trợ vào $DATE$.",
"placeholders": {
"email": {
"content": "$1",
@@ -10879,50 +10899,50 @@
}
},
"billingAddressRequiredToAddCredit": {
- "message": "Billing address required to add credit.",
+ "message": "Cần có địa chỉ thanh toán để thêm tín dụng.",
"description": "Error message shown when trying to add credit to a trialing organization without a billing address."
},
"billingAddress": {
- "message": "Billing address"
+ "message": "Địa chỉ thanh toán"
},
"addBillingAddress": {
- "message": "Add billing address"
+ "message": "Thêm địa chỉ thanh toán"
},
"editBillingAddress": {
- "message": "Edit billing address"
+ "message": "Chỉnh sửa địa chỉ thanh toán"
},
"noBillingAddress": {
- "message": "No address on file."
+ "message": "Không có địa chỉ trong hồ sơ."
},
"billingAddressUpdated": {
- "message": "Your billing address has been updated."
+ "message": "Địa chỉ thanh toán của bạn đã được cập nhật."
},
"paymentDetails": {
- "message": "Payment details"
+ "message": "Chi tiết thanh toán"
},
"paymentMethodUpdated": {
- "message": "Your payment method has been updated."
+ "message": "Phương thức thanh toán của bạn đã được cập nhật."
},
"bankAccountVerified": {
- "message": "Your bank account has been verified."
+ "message": "Tài khoản ngân hàng của bạn đã được xác minh."
},
"availableCreditAppliedToInvoice": {
- "message": "Any available credit will be automatically applied towards invoices generated for this account."
+ "message": "Mọi khoản tín dụng có sẵn sẽ được tự động áp dụng cho các hóa đơn được tạo cho tài khoản này."
},
"mustBePositiveNumber": {
- "message": "Must be a positive number"
+ "message": "Phải là một số dương"
},
"cardSecurityCode": {
- "message": "Card security code"
+ "message": "Mã bảo mật của thẻ"
},
"cardSecurityCodeDescription": {
- "message": "Card security code, also known as CVV or CVC, is typically a 3 digit number printed on the back of your credit card or 4 digit number printed on the front above your card number."
+ "message": "Mã bảo mật thẻ, còn được gọi là CVV hoặc CVC, thường là một số có 3 chữ số được in ở mặt sau thẻ tín dụng của bạn hoặc một số có 4 chữ số được in ở mặt trước phía trên số thẻ của bạn."
},
"verifyBankAccountWarning": {
- "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make a micro-deposit within the next 1-2 business days. Enter the statement descriptor code from this deposit on the Payment Details page to verify the bank account. Failure to verify the bank account will result in a missed payment and your subscription being suspended."
+ "message": "Thanh toán bằng tài khoản ngân hàng chỉ khả dụng cho khách hàng ở Hoa Kỳ. Bạn sẽ được yêu cầu xác minh tài khoản ngân hàng của mình. Chúng tôi sẽ thực hiện một khoản tiền gửi nhỏ trong vòng 1-2 ngày làm việc tới. Nhập mã mô tả sao kê từ khoản tiền gửi này trên trang Chi tiết thanh toán để xác minh tài khoản ngân hàng. Việc không xác minh tài khoản ngân hàng sẽ dẫn đến thanh toán bị bỏ lỡ và đăng ký của bạn bị tạm ngưng."
},
"taxId": {
- "message": "Tax ID: $TAX_ID$",
+ "message": "Mã số thuế: $TAX_ID$",
"placeholders": {
"tax_id": {
"content": "$1",
@@ -10931,14 +10951,14 @@
}
},
"unpaidInvoices": {
- "message": "Unpaid invoices"
+ "message": "Hóa đơn chưa thanh toán"
},
"unpaidInvoicesForServiceUser": {
- "message": "Your subscription has not been paid. Contact your provider administrator to restore service to you and your clients.",
+ "message": "Đăng ký của bạn chưa được thanh toán. Liên hệ quản trị viên nhà cung cấp của bạn để khôi phục dịch vụ cho bạn và khách hàng của bạn.",
"description": "A message shown in a non-dismissible dialog to service users of unpaid providers."
},
"providerSuspended": {
- "message": "$PROVIDER$ is suspended",
+ "message": "$PROVIDER$ bị tạm ngưng",
"placeholders": {
"provider": {
"content": "$1",
@@ -10947,11 +10967,11 @@
}
},
"restoreProviderPortalAccessViaCustomerSupport": {
- "message": "To restore access to your provider portal, contact Bitwarden Customer Support to renew your subscription.",
+ "message": "Để khôi phục quyền truy cập vào cổng thông tin nhà cung cấp của bạn, hãy liên hệ Bộ phận Hỗ trợ khách hàng của Bitwarden để gia hạn đăng ký.",
"description": "A message shown in a non-dismissible dialog to any user of a suspended providers."
},
"restoreProviderPortalAccessViaPaymentMethod": {
- "message": "Your subscription has not been paid. To restore service to you and your clients, add a payment method by $CANCELLATION_DATE$.",
+ "message": "Đăng ký của bạn chưa được thanh toán. Để khôi phục dịch vụ cho bạn và khách hàng của bạn, hãy thêm phương thức thanh toán trước ngày $CANCELLATION_DATE$.",
"placeholders": {
"cancellation_date": {
"content": "$1",
@@ -10961,7 +10981,7 @@
"description": "A message shown in a non-dismissible dialog to admins of unpaid providers."
},
"subscribetoEnterprise": {
- "message": "Subscribe to $PLAN$",
+ "message": "Đăng ký $PLAN$",
"placeholders": {
"plan": {
"content": "$1",
@@ -10970,7 +10990,7 @@
}
},
"subscribeEnterpriseSubtitle": {
- "message": "Your 7-day $PLAN$ trial starts today. Add a payment method now to continue using these features after your trial ends: ",
+ "message": "Bản dùng thử $PLAN$ trong 7 ngày của bạn bắt đầu từ hôm nay. Thêm phương thức thanh toán ngay để tiếp tục sử dụng các tính năng này sau khi bản dùng thử của bạn kết thúc: ",
"placeholders": {
"plan": {
"content": "$1",
@@ -10979,6 +10999,18 @@
}
},
"unlimitedSecretsAndProjects": {
- "message": "Unlimited secrets and projects"
+ "message": "Bí mật và dự án không giới hạn"
+ },
+ "providersubscriptionCanceled": {
+ "message": "Đã hủy đăng ký"
+ },
+ "providersubCanceledmessage": {
+ "message": "Để đăng ký lại, hãy liên hệ Bộ phận Hỗ trợ khách hàng của Bitwarden."
+ },
+ "showMore": {
+ "message": "Hiển thị thêm"
+ },
+ "showLess": {
+ "message": "Hiển thị bớt"
}
-}
\ No newline at end of file
+}
diff --git a/apps/web/src/locales/zh_CN/messages.json b/apps/web/src/locales/zh_CN/messages.json
index 5a61a42212a..0f904cb85e8 100644
--- a/apps/web/src/locales/zh_CN/messages.json
+++ b/apps/web/src/locales/zh_CN/messages.json
@@ -1428,9 +1428,6 @@
"notificationSentDevicePart1": {
"message": "解锁您设备上的 Bitwarden 或通过"
},
- "areYouTryingToAccessYourAccount": {
- "message": "您正在尝试访问您的账户吗?"
- },
"accessAttemptBy": {
"message": "$EMAIL$ 的访问尝试",
"placeholders": {
@@ -3977,22 +3974,6 @@
"thisRequestIsNoLongerValid": {
"message": "此请求已失效。"
},
- "logInConfirmedForEmailOnDevice": {
- "message": "已确认 $EMAIL$ 在 $DEVICE$ 上的登录",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "您拒绝了一个来自其他设备的登录尝试。若确实是您本人,请尝试再次发起设备登录。"
- },
"loginRequestApprovedForEmailOnDevice": {
"message": "已批准 $EMAIL$ 在 $DEVICE$ 上的登录请求",
"placeholders": {
@@ -5284,6 +5265,14 @@
"downloadAttachments": {
"message": "下载附件"
},
+ "sendAccessPasswordTitle": {
+ "message": "输入密码后查看此 Send",
+ "description": "Title of the Send password authentication screen."
+ },
+ "sendAccessContentTitle": {
+ "message": "查看 Send",
+ "description": "Title of the Send view content screen."
+ },
"sendAccessUnavailable": {
"message": "您尝试访问的 Send 不存在或不再可用。",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -5444,6 +5433,37 @@
"organizationDataOwnership": {
"message": "强制组织数据所有权"
},
+ "organizationDataOwnershipDesc": {
+ "message": "要求所有项目归一个组织所有,移除将项目存储到账户级的选项。",
+ "description": "This is the policy description shown in the policy list."
+ },
+ "organizationDataOwnershipContent": {
+ "message": "All items will be owned and saved to the organization, enabling organization-wide controls, visibility, and reporting. When turned on, a default collection be available for each member to store items. Learn more about managing the ",
+ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'All items will be owned and saved to the organization, enabling organization-wide controls, visibility, and reporting. When turned on, a default collection be available for each member to store items. Learn more about managing the credential lifecycle.'"
+ },
+ "organizationDataOwnershipContentAnchor": {
+ "message": "凭据的生命周期",
+ "description": "This will be used as a hyperlink"
+ },
+ "organizationDataOwnershipWarningTitle": {
+ "message": "您确定要继续吗?"
+ },
+ "organizationDataOwnershipWarning1": {
+ "message": "将继续向会员开放"
+ },
+ "organizationDataOwnershipWarning2": {
+ "message": "创建新项目时不会自动选择"
+ },
+ "organizationDataOwnershipWarning3": {
+ "message": "在用户下线之前,无法从管理控制台进行管理"
+ },
+ "organizationDataOwnershipWarningContentTop": {
+ "message": "By turning this policy off, the default collection: "
+ },
+ "organizationDataOwnershipWarningContentBottom": {
+ "message": "进一步了解",
+ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about the credential lifecycle.'"
+ },
"personalOwnership": {
"message": "禁用个人密码库"
},
@@ -9478,7 +9498,7 @@
"message": "将事件数据发送到您的 Logscale 实例"
},
"failedToSaveIntegration": {
- "message": "Failed to save integration. Please try again later."
+ "message": "无法保存集成。请稍后再试。"
},
"deviceIdMissing": {
"message": "缺少设备 ID"
@@ -9565,7 +9585,7 @@
"message": "URL"
},
"bearerToken": {
- "message": "Bearer Token"
+ "message": "Bearer 令牌"
},
"index": {
"message": "Index"
@@ -10947,7 +10967,7 @@
}
},
"restoreProviderPortalAccessViaCustomerSupport": {
- "message": "To restore access to your provider portal, contact Bitwarden Customer Support to renew your subscription.",
+ "message": "要恢复您的提供商门户访问权限,请联系 Bitwarden 客户支持续费您的订阅。",
"description": "A message shown in a non-dismissible dialog to any user of a suspended providers."
},
"restoreProviderPortalAccessViaPaymentMethod": {
@@ -10961,7 +10981,7 @@
"description": "A message shown in a non-dismissible dialog to admins of unpaid providers."
},
"subscribetoEnterprise": {
- "message": "Subscribe to $PLAN$",
+ "message": "订阅为 $PLAN$",
"placeholders": {
"plan": {
"content": "$1",
@@ -10980,5 +11000,17 @@
},
"unlimitedSecretsAndProjects": {
"message": "不限数量的机密和工程"
+ },
+ "providersubscriptionCanceled": {
+ "message": "订阅已取消"
+ },
+ "providersubCanceledmessage": {
+ "message": "要重新订阅,请联系 Bitwarden 客户支持。"
+ },
+ "showMore": {
+ "message": "显示更多"
+ },
+ "showLess": {
+ "message": "显示更少"
}
-}
\ No newline at end of file
+}
diff --git a/apps/web/src/locales/zh_TW/messages.json b/apps/web/src/locales/zh_TW/messages.json
index e74ac10fc47..f7d7b16ec8a 100644
--- a/apps/web/src/locales/zh_TW/messages.json
+++ b/apps/web/src/locales/zh_TW/messages.json
@@ -1428,9 +1428,6 @@
"notificationSentDevicePart1": {
"message": "Unlock Bitwarden on your device or on the "
},
- "areYouTryingToAccessYourAccount": {
- "message": "Are you trying to access your account?"
- },
"accessAttemptBy": {
"message": "Access attempt by $EMAIL$",
"placeholders": {
@@ -3977,22 +3974,6 @@
"thisRequestIsNoLongerValid": {
"message": "This request is no longer valid."
},
- "logInConfirmedForEmailOnDevice": {
- "message": "Login confirmed for $EMAIL$ on $DEVICE$",
- "placeholders": {
- "email": {
- "content": "$1",
- "example": "name@example.com"
- },
- "device": {
- "content": "$2",
- "example": "iOS"
- }
- }
- },
- "youDeniedALogInAttemptFromAnotherDevice": {
- "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again."
- },
"loginRequestApprovedForEmailOnDevice": {
"message": "Login request approved for $EMAIL$ on $DEVICE$",
"placeholders": {
@@ -5284,6 +5265,14 @@
"downloadAttachments": {
"message": "下載附件"
},
+ "sendAccessPasswordTitle": {
+ "message": "Enter the password to view this Send",
+ "description": "Title of the Send password authentication screen."
+ },
+ "sendAccessContentTitle": {
+ "message": "View Send",
+ "description": "Title of the Send view content screen."
+ },
"sendAccessUnavailable": {
"message": "您嘗試存取的 Send 不存在或無法再使用。",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
@@ -5444,6 +5433,37 @@
"organizationDataOwnership": {
"message": "Enforce organization data ownership"
},
+ "organizationDataOwnershipDesc": {
+ "message": "Require all items to be owned by an organization, removing the option to store items at the account level.",
+ "description": "This is the policy description shown in the policy list."
+ },
+ "organizationDataOwnershipContent": {
+ "message": "All items will be owned and saved to the organization, enabling organization-wide controls, visibility, and reporting. When turned on, a default collection be available for each member to store items. Learn more about managing the ",
+ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'All items will be owned and saved to the organization, enabling organization-wide controls, visibility, and reporting. When turned on, a default collection be available for each member to store items. Learn more about managing the credential lifecycle.'"
+ },
+ "organizationDataOwnershipContentAnchor": {
+ "message": "credential lifecycle",
+ "description": "This will be used as a hyperlink"
+ },
+ "organizationDataOwnershipWarningTitle": {
+ "message": "Are you sure you want to proceed?"
+ },
+ "organizationDataOwnershipWarning1": {
+ "message": "will remain accessible to members"
+ },
+ "organizationDataOwnershipWarning2": {
+ "message": "will not be automatically selected when creating new items"
+ },
+ "organizationDataOwnershipWarning3": {
+ "message": "cannot be managed from the Admin Console until the user is offboarded"
+ },
+ "organizationDataOwnershipWarningContentTop": {
+ "message": "By turning this policy off, the default collection: "
+ },
+ "organizationDataOwnershipWarningContentBottom": {
+ "message": "Learn more about the ",
+ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about the credential lifecycle.'"
+ },
"personalOwnership": {
"message": "停用個人密碼庫"
},
@@ -10980,5 +11000,17 @@
},
"unlimitedSecretsAndProjects": {
"message": "Unlimited secrets and projects"
+ },
+ "providersubscriptionCanceled": {
+ "message": "Subscription canceled"
+ },
+ "providersubCanceledmessage": {
+ "message": "To resubscribe, contact Bitwarden Customer Support."
+ },
+ "showMore": {
+ "message": "Show more"
+ },
+ "showLess": {
+ "message": "Show less"
}
-}
\ No newline at end of file
+}
diff --git a/apps/web/src/scss/base.scss b/apps/web/src/scss/base.scss
deleted file mode 100644
index 495e7df6926..00000000000
--- a/apps/web/src/scss/base.scss
+++ /dev/null
@@ -1,308 +0,0 @@
-html {
- font-size: 16px;
-}
-
-body {
- min-width: 1010px;
- position: relative;
-
- &.layout_frontend {
- @media (prefers-color-scheme: dark) {
- background-color: $darkDarkBlue2;
- }
- @media (prefers-color-scheme: light) {
- background-color: $white;
- }
- @include themify($themes) {
- background-color: themed("layoutFrontendColor");
- color: themed("textHeadingColor");
- }
- }
-
- @include themify($themes) {
- background-color: themed("backgroundColor");
- color: themed("textColor");
- }
-
- &.full-width:not(.layout_frontend) {
- .container {
- min-width: 980px;
- width: 90%;
- }
- }
-}
-
-.container {
- margin: 0 auto;
- max-width: none !important;
- padding: 0;
- width: 980px;
-}
-
-.page-header,
-.secondary-header,
-.tabbed-header {
- margin-bottom: 0.5rem;
- padding-bottom: 0.6rem;
-
- &:not(.text-danger) {
- h1,
- h2,
- h3,
- h4 {
- margin: 0;
- @include themify($themes) {
- color: themed("textHeadingColor");
- }
- }
- }
-}
-
-.page-header,
-.secondary-header {
- @include themify($themes) {
- border-bottom: 1px solid themed("separator");
- }
-}
-
-.secondary-header,
-.spaced-header {
- margin-top: 4rem;
-}
-
-.tabbed-header {
- margin-top: 1.5rem;
-}
-
-img.logo {
- display: block;
- height: 43px;
- margin: 0 auto;
- width: 284px;
-}
-
-img.logo-themed {
- @include themify($themes) {
- content: url("../images/logo-" + themed("logoSuffix") + "@2x.png");
- }
-}
-
-.page-content {
- margin-top: 20px;
-}
-
-hr,
-.dropdown-divider {
- @include themify($themes) {
- border-top: 1px solid themed("separatorHr");
- }
-}
-
-.min-height-fix {
- min-height: 1px;
-}
-
-.overflow-hidden {
- overflow: hidden;
-}
-
-.cursor-move {
- cursor: move !important;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5 {
- @include themify($themes) {
- color: themed("textHeadingColor");
- }
-
- small {
- font-size: 80%;
- }
-
- &.spaced-header {
- @include themify($themes) {
- color: themed("textHeadingColor");
- }
- }
-}
-
-a {
- @include themify($themes) {
- color: themed("linkColor");
- }
-
- &.text-body {
- @include themify($themes) {
- color: themed("textHeadingColor") !important;
- font-weight: themed("linkWeight");
- }
- }
-}
-
-code {
- @include themify($themes) {
- color: themed("codeColor");
- }
-}
-
-.bwi-icon-above-input {
- height: 1.5em;
-}
-
-.text-lg {
- font-size: $font-size-lg;
-}
-
-.text-strike {
- text-decoration: line-through;
-}
-
-.font-weight-semibold {
- font-weight: 600;
-}
-
-.btn:focus,
-.btn.focus,
-.form-control:focus {
- @include themify($themes) {
- box-shadow: 0 0 0 0.2rem themed("focus");
- }
-}
-
-/* Override Bootstrap theming */
-
-.bg-primary {
- @include themify($themes) {
- background-color: themed("bgPrimaryColor");
- }
-}
-
-.bg-light {
- @include themify($themes) {
- background-color: themed("bgLightColor") !important;
- }
-}
-
-.bg-success {
- @include themify($themes) {
- background-color: themed("success") !important;
- color: themed("textSuccessColor") !important;
- }
-}
-
-.bg-warning {
- @include themify($themes) {
- background-color: themed("warning") !important;
- color: themed("textWarningColor") !important;
- }
-}
-
-.bg-error,
-.bg-danger {
- @include themify($themes) {
- background-color: themed("danger") !important;
- color: themed("textDangerColor") !important;
- }
-}
-
-.bg-info {
- @include themify($themes) {
- background-color: themed("info") !important;
- color: themed("textInfoColor") !important;
- }
-}
-
-.border-primary {
- @include themify($themes) {
- border-color: themed("borderPrimaryColor") !important;
- }
-}
-
-.border-warning {
- @include themify($themes) {
- border-color: themed("warning") !important;
- }
-}
-
-.border-danger {
- @include themify($themes) {
- border-color: themed("danger") !important;
- }
-}
-
-.border-info {
- @include themify($themes) {
- border-color: themed("info") !important;
- }
-}
-
-.text-success {
- @include themify($themes) {
- color: themed("success") !important;
- }
-
- & > h1,
- h2,
- h3,
- h4 {
- @include themify($themes) {
- color: themed("success") !important;
- }
- }
-}
-
-.text-warning {
- @include themify($themes) {
- color: themed("warning") !important;
- }
-
- & > h1,
- h2,
- h3,
- h4 {
- @include themify($themes) {
- color: themed("warning") !important;
- }
- }
-}
-
-.text-danger {
- &:not(.dropdown-item) {
- @include themify($themes) {
- color: themed("danger") !important;
- }
-
- & > h1,
- h2,
- h3,
- h4 {
- @include themify($themes) {
- color: themed("danger") !important;
- }
- }
- }
-}
-
-.text-muted {
- @include themify($themes) {
- color: themed("textMuted") !important;
- }
-}
-
-button:not([bitbutton]):not([biticonbutton]) i.bwi,
-a i.bwi {
- margin-right: 0.25rem;
-}
-
-.no-items {
- display: flex;
- height: 100%;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- text-align: center;
-}
diff --git a/apps/web/src/scss/buttons.scss b/apps/web/src/scss/buttons.scss
deleted file mode 100644
index f026aa898e7..00000000000
--- a/apps/web/src/scss/buttons.scss
+++ /dev/null
@@ -1,202 +0,0 @@
-.btn-primary {
- @include themify($themes) {
- background-color: themed("btnPrimary");
- border-color: themed("btnPrimary");
- color: themed("btnPrimaryText");
- }
-
- &:hover:not(:disabled),
- &:active:not(:disabled) {
- @include themify($themes) {
- background-color: themed("btnPrimaryHover");
- border-color: themed("btnPrimaryBorderHover");
- color: themed("btnPrimaryText");
- }
- }
-
- &:disabled {
- opacity: 0.65;
- }
-}
-
-.btn-outline-primary {
- @include themify($themes) {
- background-color: themed("btnOutlinePrimaryBackground");
- border-color: themed("btnOutlinePrimaryBorder");
- color: themed("btnOutlinePrimaryText");
- }
-
- &:hover:not(:disabled),
- &:active {
- @include themify($themes) {
- background-color: themed("btnOutlinePrimaryBackgroundHover");
- border-color: themed("btnOutlinePrimaryBorderHover");
- color: themed("btnOutlinePrimaryTextHover");
- }
- }
-}
-
-.btn-secondary {
- @include themify($themes) {
- background-color: themed("btnSecondary");
- border-color: themed("btnSecondaryBorder");
- color: themed("btnSecondaryText");
- }
-
- &:hover:not(:disabled),
- &:active:not(:disabled) {
- @include themify($themes) {
- background-color: themed("btnSecondaryHover");
- border-color: themed("btnSecondaryBorderHover");
- color: themed("btnSecondaryTextHover");
- }
- }
-
- &:disabled {
- opacity: 0.65;
- }
-
- &:focus,
- &.focus {
- @include themify($themes) {
- box-shadow: 0 0 0 $btn-focus-width
- rgba(mix(color-yiq(themed("primary")), themed("primary"), 15%), 0.5);
- }
- }
-}
-
-.btn-outline-secondary {
- @include themify($themes) {
- background-color: themed("btnOutlineSecondaryBackground");
- border-color: themed("btnOutlineSecondaryBorder");
- color: themed("btnOutlineSecondaryText");
- }
-
- &:hover:not(:disabled),
- &:active {
- @include themify($themes) {
- background-color: themed("btnOutlineSecondaryBackgroundHover");
- border-color: themed("btnOutlineSecondaryBorderHover");
- color: themed("btnOutlineSecondaryTextHover");
- }
- }
-}
-
-.show > .btn-outline-secondary {
- &.dropdown-toggle,
- &:focus {
- @include themify($themes) {
- background-color: themed("btnOutlineSecondaryBackground");
- border-color: themed("btnOutlineSecondaryBorder");
- color: themed("btnOutlineSecondaryText");
- }
- }
-
- &:hover {
- @include themify($themes) {
- background-color: themed("btnOutlineSecondaryBackgroundHover");
- border-color: themed("btnOutlineSecondaryBorderHover");
- color: themed("btnOutlineSecondaryTextHover");
- }
- }
-}
-
-.btn-danger {
- @include themify($themes) {
- background-color: themed("btnDanger");
- border-color: themed("btnDanger");
- color: themed("btnDangerText");
- }
-
- &:hover:not(:disabled),
- &:active:not(:disabled) {
- @include themify($themes) {
- background-color: themed("btnDangerHover");
- border-color: themed("btnDangerHover");
- color: themed("btnDangerText");
- }
- }
-}
-
-.btn-outline-danger {
- @include themify($themes) {
- background-color: themed("btnOutlineDangerBackground");
- border-color: themed("btnOutlineDangerBorder");
- color: themed("btnOutlineDangerText");
- }
-
- &:hover:not(:disabled),
- &:active {
- @include themify($themes) {
- background-color: themed("btnOutlineDangerBackgroundHover");
- border-color: themed("btnOutlineDangerBorderHover");
- color: themed("btnOutlineDangerTextHover");
- }
- }
-}
-
-.btn-link {
- &:focus,
- &.focus {
- outline-color: -webkit-focus-ring-color;
- outline-offset: 1px;
- outline-style: auto;
- outline-width: 1px;
- }
-
- &:not(.text-danger):not(.cursor-move) {
- @include themify($themes) {
- color: themed("btnLinkText");
- }
- }
-
- &:hover:not(.text-danger):not(.cursor-move) {
- @include themify($themes) {
- color: themed("btnLinkTextHover");
- }
- }
-}
-
-.btn-submit {
- position: relative;
-
- .bwi-spinner {
- align-items: center;
- bottom: 0;
- display: none;
- justify-content: center;
- left: 0;
- position: absolute;
- right: 0;
- top: 0;
- }
-
- &:disabled:not(.manual),
- &[aria-disabled="true"]:not(.manual),
- &.loading {
- .bwi-spinner {
- display: flex;
- }
-
- span {
- visibility: hidden;
- }
- }
-}
-
-button.no-btn,
-a.no-btn {
- background: transparent;
- border: none;
- padding: 0;
- color: inherit;
- overflow: hidden;
- text-overflow: ellipsis;
-
- &:hover,
- &:focus {
- background: transparent;
- box-shadow: none;
- color: inherit;
- }
-}
diff --git a/apps/web/src/scss/cards.scss b/apps/web/src/scss/cards.scss
deleted file mode 100644
index b57687fb8ff..00000000000
--- a/apps/web/src/scss/cards.scss
+++ /dev/null
@@ -1,98 +0,0 @@
-.card {
- @include themify($themes) {
- background-color: themed("foregroundColor");
- border-color: themed("borderColor");
- color: themed("textColor");
- }
-
- &.text-danger {
- &.text-danger > .card-body {
- @include themify($themes) {
- color: themed("danger");
- }
- }
- }
-}
-
-.card-header,
-.modal-header {
- font-weight: bold;
- text-transform: uppercase;
-
- small {
- font-weight: normal;
- text-transform: none;
- @extend .text-muted;
- }
-}
-
-.card-header {
- @include themify($themes) {
- background-color: themed("headerColor");
- color: themed("textHeadingColor");
- }
-
- a:hover {
- &:not(.badge) {
- @include themify($themes) {
- color: themed("learnMoreHover");
- }
- }
- }
-}
-
-.card-body-header {
- font-size: $font-size-lg;
- @extend .mb-4;
-}
-
-.card ul.bwi-ul.card-ul {
- margin-left: 1.9em;
-
- li {
- word-break: break-all;
- }
-
- .bwi-li {
- top: 4px;
- }
-
- &.carets {
- margin-left: 1.1em;
-
- .bwi-li {
- left: -17px;
- width: 1.1em;
- }
- }
-
- ul {
- &.carets {
- margin-left: 0.85em;
- }
- }
-
- &.no-margin {
- margin-left: 0;
- }
-}
-
-.card-org-plans {
- h2 {
- font-size: $font-size-lg;
- }
-}
-
-.card-body {
- &:not(.bg-light > .card-body) {
- @include themify($themes) {
- background-color: themed("foregroundColor");
- color: themed("textColor");
- }
- &.card-body a:not(li a) {
- @include themify($themes) {
- font-weight: themed("linkWeight");
- }
- }
- }
-}
diff --git a/apps/web/src/scss/forms.scss b/apps/web/src/scss/forms.scss
deleted file mode 100644
index fd40d977911..00000000000
--- a/apps/web/src/scss/forms.scss
+++ /dev/null
@@ -1,224 +0,0 @@
-::-ms-reveal {
- display: none;
-}
-
-::placeholder {
- @include themify($themes) {
- color: themed("inputPlaceholderColor");
- }
-}
-
-input,
-select,
-textarea {
- &:required {
- box-shadow: none;
- }
-}
-
-input[type="search"]::-webkit-search-cancel-button {
- -webkit-appearance: -cancel-button;
-}
-
-label:not(.form-check-label):not(.btn):not(:has(bit-label)),
-label.bold {
- font-weight: 600;
- @include themify($themes) {
- color: themed("textHeadingColor");
- }
-}
-
-label.form-check-label,
-.form-control-file {
- @include themify($themes) {
- color: themed("textHeadingColor");
- }
-}
-
-.form-check-block {
- .form-check-label {
- font-weight: 600;
-
- > small {
- display: block;
- font-weight: normal;
- @include themify($themes) {
- color: themed("textMuted");
- }
- }
-
- > span {
- display: block;
- font-weight: normal;
- @extend .mt-2;
- }
- }
-}
-
-.form-check-block + .form-check-block {
- &:not(.mt-2) {
- @extend .mt-3;
- }
-}
-
-.form-group {
- .form-group-child-check {
- @extend .ml-4;
- }
-}
-
-.form-inline {
- input[type="datetime-local"] {
- width: 200px;
- }
-}
-
-.form-control {
- @include themify($themes) {
- background-color: themed("inputBackgroundColor");
- border-color: themed("inputBorderColor");
- color: themed("inputTextColor");
-
- option {
- background-color: themed("backgroundColor");
- }
- }
-
- &:disabled,
- &[readonly] {
- @include themify($themes) {
- background-color: themed("inputDisabledBackground");
- color: themed("inputDisabledColor");
- }
- }
-}
-
-input[type="radio"],
-input[type="checkbox"] {
- cursor: pointer;
-}
-
-.dropdown-menu,
-.dropdown-item {
- @include themify($themes) {
- background-color: themed("dropdownBackground");
- color: themed("dropdownTextColor");
- }
-}
-
-.dropdown-item {
- @include themify($themes) {
- color: themed("dropdownTextColor");
- }
-
- &.text-danger {
- @include themify($themes) {
- color: themed("danger") !important;
- }
- }
- &:hover {
- @include themify($themes) {
- background-color: themed("dropdownHover");
- }
- }
- &:active {
- background-color: rgba(0, 0, 0, 0.1) !important;
- }
-}
-
-.dropdown-menu {
- button {
- cursor: pointer;
- }
- @include themify($themes) {
- border: 1px solid themed("listItemBorder");
- }
-}
-
-.list-group-item {
- &:focus,
- &.focus {
- z-index: 100;
- }
- @include themify($themes) {
- background-color: themed("foregroundColor");
- border-color: themed("listItemBorder");
- color: themed("textColor");
- }
- > .two-factor-content {
- justify-content: center;
- flex-direction: row;
- display: flex;
- > .text-col {
- flex-direction: column;
- flex: 1;
- }
- > .logo-col {
- min-width: 100px;
- margin-right: 20px;
- display: flex;
- align-items: center;
- justify-content: center;
- img {
- height: fit-content;
- }
- }
- > .btn-col {
- width: 85px;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- }
-}
-
-.list-group-item.active {
- font-weight: bold !important;
- padding-left: calc(#{$list-group-item-padding-x} - 3px);
- @include themify($themes) {
- border-color: themed("borderColor");
- border-left: 3px solid themed("borderPrimaryColor");
- color: themed("listItemActive");
- }
-}
-
-.section-header {
- h3,
- .btn.btn-link {
- @include themify($themes) {
- color: themed("headingColor");
- }
- }
-
- h3 {
- font-weight: normal;
- text-transform: uppercase;
- }
-}
-
-.error-inline {
- @include themify($themes) {
- color: themed("danger");
- }
-}
-
-// Theming for invalid form elements in the SSO Config Form only
-// Will be deprecated by component-level styling in the Component Library
-app-org-manage-sso form {
- .form-control.ng-invalid,
- app-input-text.ng-invalid .form-control,
- app-select.ng-invalid .form-control {
- @include themify($themes) {
- border-color: themed("danger");
- }
- }
-}
-
-// Browser specific icons overlayed on input fields. e.g. caps lock indicator on password field
-::-webkit-calendar-picker-indicator,
-input::-webkit-caps-lock-indicator,
-input::-webkit-credentials-auto-fill-button {
- @include themify($themes) {
- filter: themed("browserInputIconsFilter");
- }
-}
diff --git a/apps/web/src/scss/modals.scss b/apps/web/src/scss/modals.scss
deleted file mode 100644
index 92e6ef3a18e..00000000000
--- a/apps/web/src/scss/modals.scss
+++ /dev/null
@@ -1,179 +0,0 @@
-.modal-content {
- border: none;
- border-radius: none;
- @include themify($themes) {
- background-color: themed("backgroundColor");
- }
-}
-
-.modal-dialog {
- border: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 0.3rem;
- width: $modal-md;
-}
-
-.modal-sm {
- width: $modal-sm;
-}
-
-.modal-lg {
- width: $modal-lg;
-}
-
-.modal-header {
- @include themify($themes) {
- background-color: themed("foregroundColor");
- border-bottom: 1px solid themed("separator");
- color: themed("textColor");
- }
-
- .modal-title {
- font-size: 1.3rem;
- }
-}
-
-.modal-body {
- @include themify($themes) {
- background-color: themed("foregroundColor");
- color: themed("textColor");
- }
-
- h3,
- .section-header > * {
- font-weight: normal;
- text-transform: uppercase;
- @include themify($themes) {
- color: themed("textMuted");
- }
- }
-}
-.modal .list-group-flush {
- :first-child {
- border-top: none;
- }
-
- :last-child {
- border-bottom: none;
- }
-}
-
-.modal .list-group-flush-2fa {
- div {
- border-left: none;
- border-right: none;
- }
- div:first-child {
- border-top: none;
- }
-
- div:last-child {
- border-bottom: none;
- }
-}
-
-.modal-footer {
- justify-content: flex-start;
- @include themify($themes) {
- background-color: themed("footerBackgroundColor");
- border-top: 1px solid themed("separator");
- }
-}
-
-.close {
- @include themify($themes) {
- color: themed("textColor");
- }
-}
-
-.totp {
- .totp-code {
- @extend .text-monospace;
- font-size: 1.2rem;
- }
-
- .totp-countdown {
- display: block;
- margin: 3px 3px 0 0;
- user-select: none;
-
- .totp-sec {
- font-size: 0.85em;
- line-height: 32px;
- position: absolute;
- text-align: center;
- width: 32px;
- }
-
- svg {
- height: 32px;
- transform: rotate(-90deg);
- width: 32px;
- }
-
- .totp-circle {
- fill: none;
- @include themify($themes) {
- stroke: themed("primary");
- }
-
- &.inner {
- stroke-dasharray: 78.6;
- stroke-dashoffset: 0;
- stroke-width: 3;
- }
-
- &.outer {
- stroke-dasharray: 88;
- stroke-dashoffset: 0;
- stroke-width: 2;
- }
- }
-
- .totp-circle-muted {
- fill: none;
- @include themify($themes) {
- stroke: themed("info");
- }
-
- &.inner {
- stroke-dasharray: 78.6;
- stroke-dashoffset: 0;
- stroke-width: 3;
- }
-
- &.outer {
- stroke-dasharray: 88;
- stroke-dashoffset: 0;
- stroke-width: 2;
- }
- }
- }
-
- > .align-items-center {
- margin-bottom: -5px;
- }
-
- &.low {
- .totp-sec,
- .totp-code {
- @include themify($themes) {
- color: themed("danger");
- }
- }
-
- .totp-circle {
- @include themify($themes) {
- stroke: themed("danger");
- }
- }
- }
-}
-
-.cdk-drag-preview {
- border-radius: $border-radius;
- opacity: 0.8;
- z-index: $zindex-tooltip !important;
- @include themify($themes) {
- background: themed("cdkDraggingBackground");
- }
-}
diff --git a/apps/web/src/scss/pages.scss b/apps/web/src/scss/pages.scss
deleted file mode 100644
index 1e5c233e326..00000000000
--- a/apps/web/src/scss/pages.scss
+++ /dev/null
@@ -1,117 +0,0 @@
-tools-import {
- textarea {
- height: 150px;
- }
-}
-
-app-avatar {
- img {
- @extend .rounded;
- }
-}
-
-app-user-billing {
- .progress {
- height: 20px;
-
- .progress-bar {
- min-width: 50px;
- }
- }
-}
-
-app-sponsored-families {
- .inset-list {
- padding-left: 1.5rem;
- }
-}
-
-/* Register Layout Page */
-.layout {
- &.default,
- &.teams,
- &.teams1,
- &.teams2,
- &.enterprise,
- &.enterprise1,
- &.enterprise2,
- &.cnetcmpgnent,
- &.cnetcmpgnteams,
- &.cnetcmpgnind {
- header {
- background: #175ddc;
- color: #ced4da;
- height: 70px;
-
- &:before {
- background: #175ddc;
- content: "";
- height: 520px;
- left: 0;
- position: absolute;
- top: -80px;
- transform: skewY(-3deg);
- width: 100%;
- z-index: -1;
- }
- img.logo {
- height: 57px;
- margin: 12px 0 0;
- max-width: 284px;
- width: 284px;
- }
- }
-
- h1 {
- color: #ffffff;
- font-size: 3.5rem;
- margin: 50px 0 0;
- }
-
- h2 {
- color: #ffffff;
- font-size: 2rem;
- line-height: 1.5;
- margin: 20px 0 140px;
- }
-
- p {
- font-size: 2rem;
- margin: 10px 0 70px 0;
-
- &:before {
- content: "/";
- padding-right: 12px;
- }
- &:not(.highlight) {
- &:before {
- color: #1252a3;
- }
- }
-
- b {
- &:after {
- content: "⟶";
- font-size: 2rem;
- padding-left: 6px;
- }
- }
- }
-
- figure {
- margin: 0;
- }
-
- blockquote {
- font-size: 1.4rem;
- margin: 20px 0 0;
- }
- }
-
- &.cnetcmpgnind {
- p {
- font-size: 1.5rem;
- margin: 10px 0 50px 0;
- }
- }
-}
diff --git a/apps/web/src/scss/plugins.scss b/apps/web/src/scss/plugins.scss
index 721c2420187..bdd368bc661 100644
--- a/apps/web/src/scss/plugins.scss
+++ b/apps/web/src/scss/plugins.scss
@@ -1,21 +1,5 @@
-#duo-frame {
- height: 330px;
- @include themify($themes) {
- background: themed("imgLoading") 0 0 no-repeat;
- }
-
- iframe {
- border: none;
- height: 100%;
- width: 100%;
- }
-}
-
#web-authn-frame {
height: 40px;
- @include themify($themes) {
- background: themed("imgLoading") 0 0 no-repeat;
- }
iframe {
border: none;
@@ -24,6 +8,9 @@
}
}
+// MFA Types for logo styling with no dark theme alternative
+$mfaTypes: 0, 2, 3, 4, 6;
+
@each $mfaType in $mfaTypes {
.mfaType#{$mfaType} {
content: url("../images/two-factor/" + $mfaType + ".png");
@@ -32,31 +19,33 @@
}
.mfaType0 {
- @include themify($themes) {
- content: url("../images/two-factor/0.png");
- max-width: 120px;
- max-height: 62px;
- }
+ content: url("../images/two-factor/0.png");
+ max-width: 120px;
+ max-height: 62px;
}
.mfaType1 {
- @include themify($themes) {
- content: url("../images/two-factor/1" + themed("mfaLogoSuffix"));
- max-width: 120px;
- max-height: 62px;
+ max-width: 120px;
+ max-height: 62px;
+
+ &:is(.theme_light *) {
+ content: url("../images/two-factor/1.png");
+ }
+
+ &:is(.theme_dark *) {
+ content: url("../images/two-factor/1-w.png");
}
}
.mfaType7 {
- @include themify($themes) {
- content: url("../images/two-factor/7" + themed("mfaLogoSuffix"));
- max-width: 120px;
- }
-}
+ max-width: 120px;
-.progress {
- @include themify($themes) {
- background-color: themed("pwStrengthBackground");
+ &:is(.theme_light *) {
+ content: url("../images/two-factor/7.png");
+ }
+
+ &:is(.theme_dark *) {
+ content: url("../images/two-factor/7-w.png");
}
}
@@ -64,8 +53,12 @@
#bt-dropin-container {
min-height: 50px;
- @include themify($themes) {
- background: themed("loadingSvg") center center no-repeat;
+ &:is(.theme_light *) {
+ background: url("../images/loading.svg") center center no-repeat;
+ }
+
+ &:is(.theme_dark *) {
+ background: url("../images/loading-white.svg") center center no-repeat;
}
}
@@ -96,31 +89,21 @@
}
[data-braintree-id="upper-container"]::before {
- @include themify($themes) {
- background-color: themed("backgroundColor");
- }
+ background-color: rgba(var(--color-background));
}
.card [data-braintree-id="upper-container"]::before {
- @include themify($themes) {
- background-color: themed("foregroundColor");
- }
+ background-color: rgba(var(--color-background-alt));
}
[data-braintree-id="paypal-button"] {
- @include themify($themes) {
- background-color: themed("backgroundColor");
- }
+ background-color: rgba(var(--color-background));
}
.card [data-braintree-id="paypal-button"] {
- @include themify($themes) {
- background-color: themed("foregroundColor");
- }
+ background-color: rgba(var(--color-background-alt));
}
.paypal-button-text {
- @include themify($themes) {
- color: themed("textColor");
- }
+ color: rgba(var(--color-text-main));
}
diff --git a/apps/web/src/scss/styles.scss b/apps/web/src/scss/styles.scss
index e2b764e45af..34247494459 100644
--- a/apps/web/src/scss/styles.scss
+++ b/apps/web/src/scss/styles.scss
@@ -1,55 +1,11 @@
-@import "../../../../libs/angular/src/scss/webfonts.css";
@import "./variables";
+
+@import "../../../../libs/angular/src/scss/webfonts.css";
@import "../../../../libs/angular/src/scss/bwicons/styles/style.scss";
@import "../../../../libs/angular/src/scss/icons.scss";
@import "../../../../libs/components/src/multi-select/scss/bw.theme";
@import "@angular/cdk/overlay-prebuilt.css";
@import "@angular/cdk/text-field-prebuilt.css";
-//@import "~bootstrap/scss/bootstrap";
-@import "~bootstrap/scss/_functions";
-@import "~bootstrap/scss/_variables";
-@import "~bootstrap/scss/_mixins";
-@import "~bootstrap/scss/_root";
-@import "~bootstrap/scss/_reboot";
-@import "~bootstrap/scss/_type";
-@import "~bootstrap/scss/_images";
-@import "~bootstrap/scss/_code";
-@import "~bootstrap/scss/_grid";
-@import "~bootstrap/scss/_tables";
-@import "~bootstrap/scss/_forms";
-@import "~bootstrap/scss/_buttons";
-@import "~bootstrap/scss/_transitions";
-@import "~bootstrap/scss/_dropdown";
-// @import "~bootstrap/scss/_button-group";
-@import "~bootstrap/scss/_input-group";
-// @import "~bootstrap/scss/_custom-forms";
-@import "~bootstrap/scss/_nav";
-// @import "~bootstrap/scss/_navbar";
-@import "~bootstrap/scss/_card";
-// @import "~bootstrap/scss/_breadcrumb";
-// @import "~bootstrap/scss/_pagination";
-// @import "~bootstrap/scss/_jumbotron";
-// @import "~bootstrap/scss/_alert";
-@import "~bootstrap/scss/_progress";
-// @import "~bootstrap/scss/_media";
-@import "~bootstrap/scss/_list-group";
-@import "~bootstrap/scss/_close";
-//@import "~bootstrap/scss/_toasts";
-@import "~bootstrap/scss/_modal";
-// @import "~bootstrap/scss/_tooltip";
-// @import "~bootstrap/scss/_popover";
-// @import "~bootstrap/scss/_carousel";
-// @import "~bootstrap/scss/_spinners";
-@import "~bootstrap/scss/_utilities";
-@import "~bootstrap/scss/_print";
-
-@import "./base";
-@import "./buttons";
-@import "./cards";
-@import "./forms";
-@import "./modals";
-@import "./pages";
-@import "./plugins";
-@import "./tables";
@import "./vault-filters";
+@import "./plugins.scss";
diff --git a/apps/web/src/scss/tables.scss b/apps/web/src/scss/tables.scss
deleted file mode 100644
index 914a190c77b..00000000000
--- a/apps/web/src/scss/tables.scss
+++ /dev/null
@@ -1,145 +0,0 @@
-.table {
- @include themify($themes) {
- color: themed("textColor");
- }
-
- td {
- vertical-align: middle;
- @include themify($themes) {
- color: themed("textColor");
- }
-
- & > a {
- &:not(.badge) {
- @include themify($themes) {
- color: themed("tableLinkColor");
- }
- &:hover {
- @include themify($themes) {
- color: themed("tableLinkColorHover");
- }
- }
- }
- }
-
- &.reduced-lh {
- line-height: 1;
-
- small {
- font-size: 80%;
- }
- }
-
- small,
- > .bwi,
- .icon {
- @include themify($themes) {
- color: themed("textMuted");
- }
- }
-
- .bwi-globe {
- @include themify($themes) {
- color: themed("iconColor");
- }
- }
- }
-
- td.wrap {
- word-break: break-all;
- }
-
- td.table-list-options {
- height: 50px;
- max-width: 76px;
- text-align: right;
- width: 76px;
-
- &.wider {
- max-width: 100px;
- width: 100px;
- }
-
- .btn {
- line-height: 1;
- transition: initial;
- }
-
- .dropdown-menu {
- line-height: $line-height-base;
- }
- }
-
- td.table-action-right {
- text-align: right;
- }
-
- // Deprecated: only used for old Bootstrap table-list-option menus before the End User Vault Refresh.
- // New menus should be permanently visible.
- tr:not(:hover) td.table-list-options {
- > .dropdown:not(.show) button:not(:focus):not(:active),
- > button.dropdown-toggle:not(:focus):not(:active) {
- @extend .sr-only;
- }
- }
-
- td.table-list-icon {
- max-width: 45px;
- text-align: center;
- width: 45px;
-
- img {
- @extend .rounded;
- @extend .img-fluid;
- max-height: 24px;
- }
- }
-
- td.table-list-checkbox {
- max-width: 35px;
- width: 35px;
- }
-
- td.table-list-strike {
- text-decoration: line-through;
- @include themify($themes) {
- color: themed("textMuted");
- }
- }
-
- &.table-list {
- &.table td,
- .table th {
- &:not(tr:first-child td) {
- @include themify($themes) {
- border-top: 1px solid themed("tableSeparator");
- }
- }
- }
-
- thead th {
- border-top: none;
- }
-
- tr:first-child {
- td {
- border: none;
- }
- }
- }
-}
-
-.table-hover tbody tr:hover {
- @include themify($themes) {
- background-color: themed("tableRowHover");
- color: themed("tableColorHover");
- }
-}
-
-// Restrict app-vault-icon in new bit-table to max height of 24px
-// Can be removed when app-vault-icon is migrated to use Tailwind
-bit-table td app-vault-icon img {
- @extend .rounded;
- @extend .img-fluid;
- max-height: 24px;
-}
diff --git a/apps/web/src/scss/tailwind.css b/apps/web/src/scss/tailwind.css
index d0878ac080b..57332e033b9 100644
--- a/apps/web/src/scss/tailwind.css
+++ b/apps/web/src/scss/tailwind.css
@@ -1,7 +1,4 @@
-@import "../../../../libs/components/src/tw-theme.css";
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
+@import "../../../../libs/components/src/tw-theme-preflight.css";
/*
* Web specific global styling.
@@ -14,19 +11,9 @@
* - Shared styles like Logo.
*/
@layer components {
- .tw-h1 {
- @apply tw-text-3xl tw-font-semibold;
- }
-
- .tw-btn {
- @apply tw-font-semibold tw-py-1.5 tw-px-3 tw-rounded tw-transition tw-border tw-border-solid tw-text-center tw-no-underline hover:tw-no-underline focus:tw-outline-none;
- }
-
- .tw-btn-secondary {
- @apply tw-btn;
-
- @apply tw-bg-transparent tw-border-text-muted hover:tw-bg-text-muted hover:tw-border-text-muted hover:!tw-text-contrast disabled:tw-bg-transparent disabled:tw-border-text-muted/60 disabled:!tw-text-muted/60 disabled:tw-cursor-not-allowed;
- @apply tw-text-muted !important;
+ body {
+ @apply tw-bg-background;
+ @apply tw-text-main;
}
/**
@@ -68,6 +55,16 @@
}
}
+ /**
+ * Logo on old `FrontendLayoutComponent`. Remove when the component is gone.
+ */
+ img.logo {
+ display: block;
+ height: 43px;
+ margin: 0 auto;
+ width: 284px;
+ }
+
/**
* Logo, used both in loading and on "frontend" pages.
*/
@@ -83,3 +80,28 @@
content: url("../images/logo-white.svg");
}
}
+
+/**
+ * 404 page styling.
+ */
+@layer components {
+ .tw-h1 {
+ @apply tw-text-3xl tw-font-semibold;
+ }
+
+ .tw-btn {
+ @apply tw-font-semibold tw-py-1.5 tw-px-3 tw-rounded-full tw-transition tw-border-2 tw-border-solid tw-text-center tw-no-underline focus:tw-outline-none;
+ }
+
+ .tw-btn-secondary {
+ @apply tw-btn;
+
+ @apply tw-bg-transparent tw-text-primary-600 tw-border-primary-600 hover:tw-bg-hover-default;
+ }
+
+ .tw-link {
+ @apply tw-font-semibold hover:tw-underline hover:tw-decoration-1;
+
+ @apply tw-text-primary-600 hover:tw-text-primary-700 focus-visible:before:tw-ring-primary-600;
+ }
+}
diff --git a/apps/web/src/scss/variables.scss b/apps/web/src/scss/variables.scss
index 6c5278b2f9a..a7f3ad51479 100644
--- a/apps/web/src/scss/variables.scss
+++ b/apps/web/src/scss/variables.scss
@@ -1,336 +1 @@
$dark-icon-themes: "theme_dark";
-
-$primary: #175ddc;
-$primary-accent: #1252a3;
-$secondary: #ced4da;
-$secondary-alt: #1a3b66;
-$success: #017e45;
-$info: #555555;
-$warning: #8b6609;
-$danger: #c83522;
-$white: #ffffff;
-
-// Bootstrap Variable Overrides
-
-$theme-colors: (
- "primary-accent": $primary-accent,
- "secondary-alt": $secondary-alt,
-);
-
-$body-bg: $white;
-$body-color: #1b2029;
-
-$font-family-sans-serif:
- Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
- "Segoe UI Symbol";
-
-$h1-font-size: 1.7rem;
-$h2-font-size: 1.3rem;
-$h3-font-size: 1rem;
-$h4-font-size: 1rem;
-$h5-font-size: 1rem;
-$h6-font-size: 1rem;
-
-$small-font-size: 90%;
-$font-size-lg: 1.15rem;
-$code-font-size: 100%;
-
-$grid-gutter-width: 20px;
-$card-spacer-y: 0.6rem;
-
-$list-group-item-padding-y: 0.6rem;
-$list-group-active-color: $body-color;
-$list-group-active-bg: $white;
-$list-group-active-border-color: rgba(#000000, 0.125);
-
-$dropdown-link-color: $body-color;
-$dropdown-link-hover-bg: rgba(#000000, 0.06);
-$dropdown-link-active-color: $dropdown-link-color;
-$dropdown-link-active-bg: rgba(#000000, 0.1);
-$dropdown-item-padding-x: 1rem;
-
-$input-bg: #fbfbfb;
-$input-focus-bg: $white;
-$input-disabled-bg: #e0e0e0;
-$input-placeholder-color: #b4b4b4;
-
-$table-accent-bg: rgba(#000000, 0.02);
-$table-hover-bg: rgba(#000000, 0.03);
-
-$modal-backdrop-opacity: 0.3;
-$btn-font-weight: 600;
-$lead-font-weight: normal;
-
-$grid-breakpoints: (
- xs: 0,
- sm: 1px,
- md: 2px,
- lg: 3px,
- xl: 4px,
-);
-
-$border-color: $secondary;
-
-// MFA Types for logo styling with no dark theme alternative
-
-$mfaTypes: 0, 2, 3, 4, 6;
-
-// Theme Variables
-// Light
-
-$lightDangerHover: #c43421;
-$lightInputColor: #465057;
-$lightInputPlaceholderColor: #b6b8b8;
-$lightCodeColor: #c01176;
-
-// Dark
-
-$darkPrimary: #6a99f0;
-$darkPrimary-alt: #b4ccf9;
-$darkDanger: #ff8d85;
-$darkDangerHover: #ffbfbb;
-$darkSuccess: #52e07c;
-$darkWarning: #ffeb66;
-$darkInfo: #a4b0c6;
-$darkLinks: #6a99f0;
-$darkGrey1: #bac0ce;
-$darkGrey2: #8d94a5;
-$darkBlue1: #4c525f;
-$darkBlue2: #3c424e;
-$darkDarkBlue1: #2f343d;
-$darkDarkBlue2: #1f242e;
-$darkInputColor: $white;
-$darkInputPlaceholderColor: $darkGrey1;
-$darkCodeColor: #f08dc7;
-
-$themes: (
- light: (
- primary: $primary,
- primaryAlt: $primary-accent,
- danger: $danger,
- info: #343a40,
- success: $success,
- warning: $warning,
- backgroundColor: $white,
- badgeDangerBackground: $danger,
- badgeDangerText: $white,
- badgeInfoBackground: #555555,
- badgeInfoText: $white,
- badgePrimaryBackground: $primary,
- badgePrimaryBackgroundHover: #134eb9,
- badgePrimaryText: $white,
- badgeSecondaryBackground: #ced4da,
- badgeSecondaryText: #212529,
- bgLightColor: #f8f9fa,
- bgPrimaryColor: $primary,
- borderColor: $border-color,
- borderPrimaryColor: $primary,
- browserInputIconsFilter: invert(0),
- btnDanger: $danger,
- btnDangerHover: $lightDangerHover,
- btnDangerText: $white,
- btnLinkText: $primary,
- btnLinkTextHover: #104097,
- btnOutlineDangerBackground: $input-bg,
- btnOutlineDangerBackgroundHover: $danger,
- btnOutlineDangerBorder: #ced4da,
- btnOutlineDangerBorderHover: $danger,
- btnOutlineDangerText: $danger,
- btnOutlineDangerTextHover: $white,
- btnOutlinePrimaryBackground: $input-bg,
- btnOutlinePrimaryBackgroundHover: $primary,
- btnOutlinePrimaryBorder: #ced4da,
- btnOutlinePrimaryBorderHover: $primary,
- btnOutlinePrimaryText: $primary,
- btnOutlinePrimaryTextHover: $white,
- btnOutlineSecondaryBackground: $input-bg,
- btnOutlineSecondaryBackgroundHover: #ced4da,
- btnOutlineSecondaryBorder: #ced4da,
- btnOutlineSecondaryBorderHover: #ced4da,
- btnOutlineSecondaryText: #6c757d,
- btnOutlineSecondaryTextHover: #333333,
- btnPrimary: $primary,
- btnPrimaryBorderHover: #1249ae,
- btnPrimaryHover: #134eb9,
- btnPrimaryText: $white,
- btnSecondary: $secondary,
- btnSecondaryBorder: $secondary,
- btnSecondaryBorderHover: #b1bbc4,
- btnSecondaryHover: #b8c1ca,
- btnSecondaryText: #212529,
- btnSecondaryTextHover: #212529,
- calloutBackground: #fafafa,
- calloutColor: #212529,
- cdkDraggingBackground: $white,
- codeColor: $lightCodeColor,
- dropdownBackground: $white,
- dropdownHover: rgba(0, 0, 0, 0.06),
- dropdownTextColor: $body-color,
- dropdownTextMuted: #6c757d,
- focus: rgb(23 93 220 / 25%),
- footerBackgroundColor: #fbfbfb,
- foregroundColor: $white,
- headerColor: rgba(0, 0, 0, 0.03),
- iconColor: #777777,
- iconHover: $body-color,
- imgFilter: invert(0) grayscale(0),
- inputBackgroundColor: $input-bg,
- inputBorderColor: $border-color,
- inputDisabledBackground: #e0e0e0,
- inputDisabledColor: #6c757d,
- inputPlaceholderColor: $lightInputPlaceholderColor,
- inputTextColor: $lightInputColor,
- layoutFrontendColor: #ecf0f5,
- learnMoreHover: #104097,
- linkColor: $primary,
- linkColorHover: #104097,
- linkWeight: 400,
- listItemActive: $body-color,
- listItemBorder: rgba(0, 0, 0, 0.125),
- loadingSvg: url("../images/loading.svg"),
- logoSuffix: "dark",
- mfaLogoSuffix: ".png",
- pwStrengthBackground: #e9ecef,
- separator: $secondary,
- separatorHr: rgb(0, 0, 0, 0.1),
- tableColorHover: #333333,
- tableLinkColor: $primary,
- tableLinkColorHover: #104097,
- tableRowHover: rgba(0, 0, 0, 0.03),
- tableSeparator: #dee2e6,
- textColor: $body-color,
- textDangerColor: $white,
- textInfoColor: $white,
- textHeadingColor: $body-color,
- textMuted: #6c757d,
- textSuccessColor: $white,
- textWarningColor: $white,
- svgSuffix: "-light.svg",
- ),
- dark: (
- primary: $darkPrimary,
- primaryAlt: $darkPrimary-alt,
- danger: $darkDanger,
- info: $darkInfo,
- success: $darkSuccess,
- warning: $darkWarning,
- backgroundColor: $darkDarkBlue2,
- badgeDangerBackground: $darkDanger,
- badgeDangerText: $darkDarkBlue2,
- badgeInfoBackground: $darkInfo,
- badgeInfoText: $darkDarkBlue2,
- badgePrimaryBackground: $darkLinks,
- badgePrimaryBackgroundHover: $darkPrimary-alt,
- badgePrimaryText: $darkDarkBlue2,
- badgeSecondaryBackground: $darkGrey2,
- badgeSecondaryText: $darkDarkBlue2,
- bgLightColor: $darkDarkBlue2,
- bgPrimaryColor: $darkPrimary,
- borderColor: $darkBlue1,
- borderPrimaryColor: $darkPrimary,
- browserInputIconsFilter: invert(1),
- btnDanger: $darkDanger,
- btnDangerHover: $darkDangerHover,
- btnDangerText: $darkDarkBlue2,
- btnLinkText: $white,
- btnLinkTextHover: $darkGrey1,
- btnOutlineDangerBackground: $darkDanger,
- btnOutlineDangerBackgroundHover: $darkDangerHover,
- btnOutlineDangerBorder: $darkDanger,
- btnOutlineDangerBorderHover: $darkDangerHover,
- btnOutlineDangerText: $darkDarkBlue2,
- btnOutlineDangerTextHover: $darkDarkBlue2,
- btnOutlinePrimaryBackground: $darkPrimary,
- btnOutlinePrimaryBackgroundHover: $darkPrimary-alt,
- btnOutlinePrimaryBorder: $darkPrimary,
- btnOutlinePrimaryBorderHover: $darkPrimary-alt,
- btnOutlinePrimaryText: $darkDarkBlue2,
- btnOutlinePrimaryTextHover: $darkDarkBlue2,
- btnOutlineSecondaryBackground: transparent,
- btnOutlineSecondaryBackgroundHover: transparent,
- btnOutlineSecondaryBorder: $darkGrey1,
- btnOutlineSecondaryBorderHover: $darkGrey2,
- btnOutlineSecondaryText: $white,
- btnOutlineSecondaryTextHover: $darkGrey2,
- btnPrimary: $darkLinks,
- btnPrimaryBorderHover: $darkPrimary-alt,
- btnPrimaryHover: $darkPrimary-alt,
- btnPrimaryText: $darkDarkBlue2,
- btnSecondary: transparent,
- btnSecondaryBorder: $darkGrey1,
- btnSecondaryBorderHover: $darkGrey2,
- btnSecondaryHover: transparent,
- btnSecondaryText: $white,
- btnSecondaryTextHover: $darkGrey2,
- calloutBackground: $darkBlue2,
- calloutColor: $white,
- cdkDraggingBackground: $darkDarkBlue1,
- codeColor: $darkCodeColor,
- dropdownBackground: $darkDarkBlue1,
- dropdownHover: rgba(255, 255, 255, 0.03),
- dropdownTextColor: $white,
- dropdownTextMuted: #bec6cf,
- focus: rgb(106 153 240 / 25%),
- footerBackgroundColor: $darkBlue1,
- foregroundColor: $darkDarkBlue1,
- headerColor: $darkBlue1,
- iconColor: #777777,
- iconHover: $darkGrey2,
- imgFilter: invert(1) grayscale(1),
- inputBackgroundColor: transparent,
- inputBorderColor: $darkGrey1,
- inputDisabledBackground: $darkBlue2,
- inputDisabledColor: $darkGrey1,
- inputPlaceholderColor: $darkInputPlaceholderColor,
- inputTextColor: $darkInputColor,
- layoutFrontendColor: $darkDarkBlue2,
- learnMoreHover: $darkPrimary-alt,
- linkColor: $darkLinks,
- linkColorHover: $darkLinks,
- linkWeight: 600,
- listItemActive: $darkPrimary,
- listItemBorder: $darkBlue1,
- loadingSvg: url("../images/loading-white.svg"),
- logoSuffix: "white",
- mfaLogoSuffix: "-w.png",
- pwStrengthBackground: $darkBlue2,
- separator: $darkBlue1,
- separatorHr: $darkBlue1,
- tableColorHover: $darkGrey1,
- tableLinkColor: $white,
- tableLinkColorHover: $white,
- tableRowHover: rgba(255, 255, 255, 0.03),
- tableSeparator: $darkBlue1,
- textColor: $darkGrey1,
- textDangerColor: $darkDarkBlue2,
- textHeadingColor: $white,
- textInfoColor: $darkDarkBlue2,
- textMuted: $darkGrey1,
- textSuccessColor: $darkDarkBlue2,
- textWarningColor: $darkDarkBlue2,
- svgSuffix: "-dark.svg",
- ),
-);
-
-@mixin themify($themes: $themes) {
- @each $theme, $map in $themes {
- html.theme_#{$theme} & {
- $theme-map: () !global;
- @each $key, $submap in $map {
- $value: map-get(map-get($themes, $theme), "#{$key}");
- $theme-map: map-merge(
- $theme-map,
- (
- $key: $value,
- )
- ) !global;
- }
- @content;
- $theme-map: null !global;
- }
- }
-}
-
-@function themed($key) {
- @return map-get($theme-map, $key);
-}
diff --git a/apps/web/src/scss/vault-filters.scss b/apps/web/src/scss/vault-filters.scss
index 7133c469284..52c85e8f0ae 100644
--- a/apps/web/src/scss/vault-filters.scss
+++ b/apps/web/src/scss/vault-filters.scss
@@ -7,22 +7,18 @@
align-items: center;
* {
- @include themify($themes) {
- color: themed("headingColor");
- }
- font-size: $font-size-base;
+ font-size: 1rem;
}
button {
- @extend .no-btn;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
h3,
button.filter-button {
margin: 0;
- @include themify($themes) {
- color: themed("textMuted");
- }
+ color: rgb(var(--color-text-muted));
}
.filter-button {
@@ -31,9 +27,7 @@
&:hover,
&:focus,
&.active {
- @include themify($themes) {
- color: themed("linkColor") !important;
- }
+ color: rgb(var(--color-primary-600));
}
&.active {
font-weight: bold;
@@ -44,12 +38,6 @@
button.toggle-button,
button.add-button {
margin-right: 0.25rem;
- &:hover,
- &:focus {
- @include themify($themes) {
- color: themed("iconHover") !important;
- }
- }
}
}
@@ -65,16 +53,12 @@
}
.filter-option {
- @include themify($themes) {
- color: themed("textColor");
- }
+ color: rgb(var(--color-text-main));
&.active {
> .filter-buttons {
.filter-button {
- @include themify($themes) {
- color: themed("linkColor") !important;
- }
+ color: rgb(var(--color-primary-600));
font-weight: bold;
}
@@ -91,7 +75,8 @@
button,
a {
- @extend .no-btn;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
.contents {
@@ -100,12 +85,6 @@
.toggle-button {
margin-right: 0.25rem;
- &:hover,
- &:focus {
- @include themify($themes) {
- color: themed("iconHover") !important;
- }
- }
}
.filter-button {
@@ -115,9 +94,7 @@
&:hover,
&:focus,
&:active {
- @include themify($themes) {
- color: themed("linkColor") !important;
- }
+ color: rgb(var(--color-primary-600));
text-decoration: none;
}
@@ -130,15 +107,11 @@
visibility: hidden;
margin-left: auto;
- @include themify($themes) {
- color: themed("headingButtonColor");
- }
+ color: rgb(var(--color-primary-600));
&:hover,
&:focus {
- @include themify($themes) {
- color: themed("iconHover") !important;
- }
+ color: rgb(var(--color-text-main));
}
}
@@ -152,33 +125,15 @@
margin-bottom: 0;
}
- a {
- @include themify($themes) {
- color: themed("textHeadingColor");
- }
- }
- .show-active {
- display: none;
- }
- li.active {
- > .show-active,
- > div .show-active {
- display: inline;
- }
- }
li.active {
> button:first-of-type,
> div button:first-of-type {
- @include themify($themes) {
- color: themed("linkColor");
- }
+ color: rgb(var(--color-primary-600));
}
> .bwi,
> div > .bwi {
- @include themify($themes) {
- color: themed("linkColor");
- }
+ color: rgb(var(--color-primary-600));
}
}
}
diff --git a/apps/web/tailwind.config.js b/apps/web/tailwind.config.js
index 4a3f6cfef1b..d33f94e94a9 100644
--- a/apps/web/tailwind.config.js
+++ b/apps/web/tailwind.config.js
@@ -10,5 +10,6 @@ config.content = [
"../../libs/angular/src/**/*.{html,ts}",
"../../bitwarden_license/bit-web/src/**/*.{html,ts}",
];
+config.corePlugins.preflight = true;
module.exports = config;
diff --git a/bitwarden_license/bit-cli/src/service-container.ts b/bitwarden_license/bit-cli/src/service-container.ts
index 9e659c1a59d..f3c2b75a7d1 100644
--- a/bitwarden_license/bit-cli/src/service-container.ts
+++ b/bitwarden_license/bit-cli/src/service-container.ts
@@ -22,6 +22,7 @@ export class ServiceContainer extends OssServiceContainer {
this.keyService,
this.encryptService,
this.organizationUserApiService,
+ this.accountService,
);
}
}
diff --git a/bitwarden_license/bit-common/src/admin-console/auth-requests/organization-auth-request.service.spec.ts b/bitwarden_license/bit-common/src/admin-console/auth-requests/organization-auth-request.service.spec.ts
index 9efac2a3b9e..25d12672dd3 100644
--- a/bitwarden_license/bit-common/src/admin-console/auth-requests/organization-auth-request.service.spec.ts
+++ b/bitwarden_license/bit-common/src/admin-console/auth-requests/organization-auth-request.service.spec.ts
@@ -1,4 +1,5 @@
import { MockProxy, mock } from "jest-mock-extended";
+import { of } from "rxjs";
import {
OrganizationUserApiService,
@@ -8,30 +9,42 @@ import { EncryptService } from "@bitwarden/common/key-management/crypto/abstract
import { EncString } from "@bitwarden/common/key-management/crypto/models/enc-string";
import { ListResponse } from "@bitwarden/common/models/response/list.response";
import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key";
+import { newGuid } from "@bitwarden/guid";
import { KeyService } from "@bitwarden/key-management";
+import { UserId } from "@bitwarden/user-core";
import { OrganizationAuthRequestApiService } from "./organization-auth-request-api.service";
import { OrganizationAuthRequestUpdateRequest } from "./organization-auth-request-update.request";
import { OrganizationAuthRequestService } from "./organization-auth-request.service";
import { PendingAuthRequestView } from "./pending-auth-request.view";
+import {
+ FakeAccountService,
+ mockAccountServiceWith,
+} from "@bitwarden/common/../spec/fake-account-service";
+
describe("OrganizationAuthRequestService", () => {
let organizationAuthRequestApiService: MockProxy;
let keyService: MockProxy;
let encryptService: MockProxy;
let organizationUserApiService: MockProxy;
let organizationAuthRequestService: OrganizationAuthRequestService;
+ const mockUserId = newGuid() as UserId;
+ let accountService: FakeAccountService;
beforeEach(() => {
organizationAuthRequestApiService = mock();
keyService = mock();
encryptService = mock();
organizationUserApiService = mock();
+ accountService = mockAccountServiceWith(mockUserId);
+
organizationAuthRequestService = new OrganizationAuthRequestService(
organizationAuthRequestApiService,
keyService,
encryptService,
organizationUserApiService,
+ accountService,
);
});
@@ -162,6 +175,7 @@ describe("OrganizationAuthRequestService", () => {
describe("approvePendingRequests", () => {
it("should approve the specified pending auth requests", async () => {
jest.spyOn(organizationAuthRequestApiService, "bulkUpdatePendingRequests");
+ jest.spyOn(keyService, "orgKeys$").mockReturnValue(of({ key: "fake-key" }));
const organizationId = "organizationId";
@@ -213,6 +227,7 @@ describe("OrganizationAuthRequestService", () => {
describe("approvePendingRequest", () => {
it("should approve the specified pending auth request", async () => {
jest.spyOn(organizationAuthRequestApiService, "approvePendingRequest");
+ jest.spyOn(keyService, "orgKeys$").mockReturnValue(of({ key: "fake-key" }));
const organizationId = "organizationId";
diff --git a/bitwarden_license/bit-common/src/admin-console/auth-requests/organization-auth-request.service.ts b/bitwarden_license/bit-common/src/admin-console/auth-requests/organization-auth-request.service.ts
index f7b87d8c1a5..c0ef0849bc7 100644
--- a/bitwarden_license/bit-common/src/admin-console/auth-requests/organization-auth-request.service.ts
+++ b/bitwarden_license/bit-common/src/admin-console/auth-requests/organization-auth-request.service.ts
@@ -1,12 +1,17 @@
// FIXME: Update this file to be type safe and remove this and next line
// @ts-strict-ignore
+import { firstValueFrom, map, switchMap } from "rxjs";
+
import {
OrganizationUserApiService,
OrganizationUserResetPasswordDetailsResponse,
} from "@bitwarden/admin-console/common";
+import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
+import { getUserId } from "@bitwarden/common/auth/services/account.service";
import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service";
import { EncString } from "@bitwarden/common/key-management/crypto/models/enc-string";
import { Utils } from "@bitwarden/common/platform/misc/utils";
+import { OrganizationId } from "@bitwarden/common/types/guid";
import { KeyService } from "@bitwarden/key-management";
import { OrganizationAuthRequestApiService } from "./organization-auth-request-api.service";
@@ -20,6 +25,7 @@ export class OrganizationAuthRequestService {
private keyService: KeyService,
private encryptService: EncryptService,
private organizationUserApiService: OrganizationUserApiService,
+ private accountService: AccountService,
) {}
async listPendingRequests(organizationId: string): Promise {
@@ -122,7 +128,13 @@ export class OrganizationAuthRequestService {
const devicePubKey = Utils.fromB64ToArray(devicePublicKey);
// Decrypt Organization's encrypted Private Key with org key
- const orgSymKey = await this.keyService.getOrgKey(organizationId);
+ const orgSymKey = await firstValueFrom(
+ this.accountService.activeAccount$.pipe(
+ getUserId,
+ switchMap((userId) => this.keyService.orgKeys$(userId)),
+ map((orgKeys) => orgKeys[organizationId as OrganizationId] ?? null),
+ ),
+ );
const decOrgPrivateKey = await this.encryptService.decryptBytes(
new EncString(encryptedOrgPrivateKey),
orgSymKey,
diff --git a/bitwarden_license/bit-web/src/app/admin-console/organizations/manage/device-approvals/device-approvals.component.html b/bitwarden_license/bit-web/src/app/admin-console/organizations/manage/device-approvals/device-approvals.component.html
index 48463b7359e..fb17989aa57 100644
--- a/bitwarden_license/bit-web/src/app/admin-console/organizations/manage/device-approvals/device-approvals.component.html
+++ b/bitwarden_license/bit-web/src/app/admin-console/organizations/manage/device-approvals/device-approvals.component.html
@@ -25,7 +25,7 @@
bitIconButton="bwi-ellipsis-v"
size="small"
type="button"
- appA11yTitle="{{ 'options' | i18n }}"
+ label="{{ 'options' | i18n }}"
>
@@ -67,8 +67,7 @@
bitIconButton="bwi-trash"
buttonType="danger"
size="default"
- title="{{ 'delete' | i18n }}"
- aria-label="Delete"
+ label="{{ 'delete' | i18n }}"
[bitAction]="deleteDomain"
type="submit"
bitFormButton
diff --git a/bitwarden_license/bit-web/src/app/admin-console/organizations/manage/scim.component.html b/bitwarden_license/bit-web/src/app/admin-console/organizations/manage/scim.component.html
index 7ade2e6c63d..38cb077c623 100644
--- a/bitwarden_license/bit-web/src/app/admin-console/organizations/manage/scim.component.html
+++ b/bitwarden_license/bit-web/src/app/admin-console/organizations/manage/scim.component.html
@@ -29,7 +29,7 @@
bitSuffix
bitIconButton="bwi-clone"
[bitAction]="copyScimUrl"
- [appA11yTitle]="'copyScimUrl' | i18n"
+ [label]="'copyScimUrl' | i18n"
>
@@ -46,7 +46,7 @@
bitSuffix
[bitIconButton]="showScimKey ? 'bwi-eye-slash' : 'bwi-eye'"
[bitAction]="toggleScimKey"
- [appA11yTitle]="'toggleVisibility' | i18n"
+ [label]="'toggleVisibility' | i18n"
>
{{ "scimApiKeyHelperText" | i18n }}
diff --git a/bitwarden_license/bit-web/src/app/admin-console/providers/manage/dialogs/add-edit-member-dialog.component.html b/bitwarden_license/bit-web/src/app/admin-console/providers/manage/dialogs/add-edit-member-dialog.component.html
index 60993f5570c..08e694aa45a 100644
--- a/bitwarden_license/bit-web/src/app/admin-console/providers/manage/dialogs/add-edit-member-dialog.component.html
+++ b/bitwarden_license/bit-web/src/app/admin-console/providers/manage/dialogs/add-edit-member-dialog.component.html
@@ -58,7 +58,7 @@
bitIconButton="bwi-trash"
buttonType="danger"
bitFormButton
- [appA11yTitle]="'delete' | i18n"
+ [label]="'delete' | i18n"
[bitAction]="delete"
[disabled]="loading"
>
diff --git a/bitwarden_license/bit-web/src/app/admin-console/providers/manage/events.component.ts b/bitwarden_license/bit-web/src/app/admin-console/providers/manage/events.component.ts
index 2ad2ecdccbd..d8ad2e01343 100644
--- a/bitwarden_license/bit-web/src/app/admin-console/providers/manage/events.component.ts
+++ b/bitwarden_license/bit-web/src/app/admin-console/providers/manage/events.component.ts
@@ -5,7 +5,9 @@ import { ActivatedRoute, Router } from "@angular/router";
import { UserNamePipe } from "@bitwarden/angular/pipes/user-name.pipe";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
+import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
import { ProviderService } from "@bitwarden/common/admin-console/abstractions/provider.service";
+import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
import { EventResponse } from "@bitwarden/common/models/response/event.response";
import { FileDownloadService } from "@bitwarden/common/platform/abstractions/file-download/file-download.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
@@ -41,6 +43,8 @@ export class EventsComponent extends BaseEventsComponent implements OnInit {
private userNamePipe: UserNamePipe,
fileDownloadService: FileDownloadService,
toastService: ToastService,
+ accountService: AccountService,
+ organizationService: OrganizationService,
) {
super(
eventService,
@@ -50,6 +54,9 @@ export class EventsComponent extends BaseEventsComponent implements OnInit {
logService,
fileDownloadService,
toastService,
+ route,
+ accountService,
+ organizationService,
);
}
@@ -69,6 +76,7 @@ export class EventsComponent extends BaseEventsComponent implements OnInit {
}
async load() {
+ this.initBase();
const response = await this.apiService.getProviderUsers(this.providerId);
response.data.forEach((u) => {
const name = this.userNamePipe.transform(u);
diff --git a/bitwarden_license/bit-web/src/app/admin-console/providers/manage/members.component.html b/bitwarden_license/bit-web/src/app/admin-console/providers/manage/members.component.html
index f203b7a934a..07ccd997b96 100644
--- a/bitwarden_license/bit-web/src/app/admin-console/providers/manage/members.component.html
+++ b/bitwarden_license/bit-web/src/app/admin-console/providers/manage/members.component.html
@@ -79,7 +79,7 @@
type="button"
bitIconButton="bwi-ellipsis-v"
size="small"
- appA11yTitle="{{ 'options' | i18n }}"
+ label="{{ 'options' | i18n }}"
>
+
+