From bbe64f4ae64d71c2b0564bcd5c627790d51d6177 Mon Sep 17 00:00:00 2001 From: Jake Fink Date: Wed, 21 Aug 2024 15:06:19 -0400 Subject: [PATCH 01/40] prevent computation of samlsigningoptions on change detection (#10399) --- .../bit-web/src/app/auth/sso/sso.component.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/bitwarden_license/bit-web/src/app/auth/sso/sso.component.ts b/bitwarden_license/bit-web/src/app/auth/sso/sso.component.ts index 7a1510ef64..4074c20d9d 100644 --- a/bitwarden_license/bit-web/src/app/auth/sso/sso.component.ts +++ b/bitwarden_license/bit-web/src/app/auth/sso/sso.component.ts @@ -26,7 +26,6 @@ import { SsoConfigApi } from "@bitwarden/common/auth/models/api/sso-config.api"; import { OrganizationSsoRequest } from "@bitwarden/common/auth/models/request/organization-sso.request"; import { OrganizationSsoResponse } from "@bitwarden/common/auth/models/response/organization-sso.response"; import { SsoConfigView } from "@bitwarden/common/auth/models/view/sso-config.view"; -import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { Utils } from "@bitwarden/common/platform/misc/utils"; @@ -61,6 +60,10 @@ export class SsoComponent implements OnInit, OnDestroy { "http://www.w3.org/2000/09/xmldsig#rsa-sha512", ]; + readonly samlSigningAlgorithmOptions: SelectOptions[] = this.samlSigningAlgorithms.map( + (algorithm) => ({ name: algorithm, value: algorithm }), + ); + readonly saml2SigningBehaviourOptions: SelectOptions[] = [ { name: "If IdP Wants Authn Requests Signed", @@ -186,7 +189,6 @@ export class SsoComponent implements OnInit, OnDestroy { private i18nService: I18nService, private organizationService: OrganizationService, private organizationApiService: OrganizationApiServiceAbstraction, - private configService: ConfigService, ) {} async ngOnInit() { @@ -330,10 +332,6 @@ export class SsoComponent implements OnInit, OnDestroy { return this.ssoConfigForm.get("keyConnectorUrl"); } - get samlSigningAlgorithmOptions(): SelectOptions[] { - return this.samlSigningAlgorithms.map((algorithm) => ({ name: algorithm, value: algorithm })); - } - /** * Shows any validation errors for the form by marking all controls as dirty and touched. * If nested form groups are found, they are also updated. From a8edce2cc17b6c124f48851a8b9c9438220bf9b9 Mon Sep 17 00:00:00 2001 From: Shane Melton Date: Wed, 21 Aug 2024 14:54:09 -0700 Subject: [PATCH 02/40] [PM-10381] Fix waiting for last sync - Browser Refresh (#10438) * [PM-10381] Add activeUserLastSync$ to SyncService * [PM-10381] Introduce waitUtil operator * [PM-10381] Use new activeUserLastSync$ observable to wait until a sync completes before attempting to get decrypted ciphers * [PM-10381] Fix failing test --------- Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com> --- .../vault-popup-items.service.spec.ts | 6 ++-- .../services/vault-popup-items.service.ts | 13 ++++++-- apps/browser/src/vault/util.ts | 30 +++++++++++++++++++ .../src/platform/sync/core-sync.service.ts | 13 +++++++- libs/common/src/platform/sync/sync.service.ts | 6 ++++ 5 files changed, 63 insertions(+), 5 deletions(-) create mode 100644 apps/browser/src/vault/util.ts diff --git a/apps/browser/src/vault/popup/services/vault-popup-items.service.spec.ts b/apps/browser/src/vault/popup/services/vault-popup-items.service.spec.ts index 2ead93e512..03e37fb71c 100644 --- a/apps/browser/src/vault/popup/services/vault-popup-items.service.spec.ts +++ b/apps/browser/src/vault/popup/services/vault-popup-items.service.spec.ts @@ -30,6 +30,7 @@ describe("VaultPopupItemsService", () => { let mockOrg: Organization; let mockCollections: CollectionView[]; + let activeUserLastSync$: BehaviorSubject; const cipherServiceMock = mock(); const vaultSettingsServiceMock = mock(); @@ -92,7 +93,8 @@ describe("VaultPopupItemsService", () => { organizationServiceMock.organizations$ = new BehaviorSubject([mockOrg]); collectionService.decryptedCollections$ = new BehaviorSubject(mockCollections); - syncServiceMock.getLastSync.mockResolvedValue(new Date()); + activeUserLastSync$ = new BehaviorSubject(new Date()); + syncServiceMock.activeUserLastSync$.mockReturnValue(activeUserLastSync$); testBed = TestBed.configureTestingModule({ providers: [ @@ -161,7 +163,7 @@ describe("VaultPopupItemsService", () => { }); it("should not emit cipher list if syncService.getLastSync returns null", async () => { - syncServiceMock.getLastSync.mockResolvedValue(null); + activeUserLastSync$.next(null); const obs$ = service.autoFillCiphers$.pipe(timeout(50)); diff --git a/apps/browser/src/vault/popup/services/vault-popup-items.service.ts b/apps/browser/src/vault/popup/services/vault-popup-items.service.ts index e78e289c75..be5c908731 100644 --- a/apps/browser/src/vault/popup/services/vault-popup-items.service.ts +++ b/apps/browser/src/vault/popup/services/vault-popup-items.service.ts @@ -9,6 +9,7 @@ import { from, map, merge, + MonoTypeOperatorFunction, Observable, of, shareReplay, @@ -31,6 +32,7 @@ import { CipherType } from "@bitwarden/common/vault/enums"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; import { runInsideAngular } from "../../../platform/browser/run-inside-angular.operator"; +import { waitUntil } from "../../util"; import { PopupCipherView } from "../views/popup-cipher.view"; import { VaultPopupAutofillService } from "./vault-popup-autofill.service"; @@ -80,8 +82,7 @@ export class VaultPopupItemsService { ).pipe( runInsideAngular(inject(NgZone)), // Workaround to ensure cipher$ state provider emissions are run inside Angular tap(() => this._ciphersLoading$.next()), - switchMap(() => Utils.asyncToObservable(() => this.syncService.getLastSync())), - filter((lastSync) => lastSync !== null), // Only attempt to load ciphers if we performed a sync + waitUntilSync(this.syncService), switchMap(() => Utils.asyncToObservable(() => this.cipherService.getAllDecrypted())), switchMap((ciphers) => combineLatest([ @@ -270,3 +271,11 @@ export class VaultPopupItemsService { return this.cipherService.sortCiphersByLastUsedThenName(a, b); } } + +/** + * Operator that waits until the active account has synced at least once before allowing the source to continue emission. + * @param syncService + */ +const waitUntilSync = (syncService: SyncService): MonoTypeOperatorFunction => { + return waitUntil(syncService.activeUserLastSync$().pipe(filter((lastSync) => lastSync != null))); +}; diff --git a/apps/browser/src/vault/util.ts b/apps/browser/src/vault/util.ts new file mode 100644 index 0000000000..f410375aa4 --- /dev/null +++ b/apps/browser/src/vault/util.ts @@ -0,0 +1,30 @@ +import { + merge, + MonoTypeOperatorFunction, + Observable, + ObservableInput, + sample, + share, + skipUntil, + take, +} from "rxjs"; + +/** + * Operator that waits until the trigger observable emits before allowing the source to continue emission. + * @param trigger$ The observable that will trigger the source to continue emission. + * + * ``` + * source$ a-----b-----c-----d-----e + * trigger$ ---------------X--------- + * output$ ---------------c--d-----e + * ``` + */ +export const waitUntil = (trigger$: ObservableInput): MonoTypeOperatorFunction => { + return (source: Observable) => { + const sharedSource$ = source.pipe(share()); + return merge( + sharedSource$.pipe(sample(trigger$), take(1)), + sharedSource$.pipe(skipUntil(trigger$)), + ); + }; +}; diff --git a/libs/common/src/platform/sync/core-sync.service.ts b/libs/common/src/platform/sync/core-sync.service.ts index fd028df09b..e9cfa37d11 100644 --- a/libs/common/src/platform/sync/core-sync.service.ts +++ b/libs/common/src/platform/sync/core-sync.service.ts @@ -1,4 +1,4 @@ -import { firstValueFrom, map, of, switchMap } from "rxjs"; +import { firstValueFrom, map, Observable, of, switchMap } from "rxjs"; import { ApiService } from "../../abstractions/api.service"; import { AccountService } from "../../auth/abstractions/account.service"; @@ -67,6 +67,17 @@ export abstract class CoreSyncService implements SyncService { return this.stateProvider.getUser(userId, LAST_SYNC_DATE).state$; } + activeUserLastSync$(): Observable { + return this.accountService.activeAccount$.pipe( + switchMap((a) => { + if (a == null) { + return of(null); + } + return this.lastSync$(a.id); + }), + ); + } + async setLastSync(date: Date, userId: UserId): Promise { await this.stateProvider.getUser(userId, LAST_SYNC_DATE).update(() => date); } diff --git a/libs/common/src/platform/sync/sync.service.ts b/libs/common/src/platform/sync/sync.service.ts index be5aa4622c..733b7beaff 100644 --- a/libs/common/src/platform/sync/sync.service.ts +++ b/libs/common/src/platform/sync/sync.service.ts @@ -34,6 +34,12 @@ export abstract class SyncService { */ abstract lastSync$(userId: UserId): Observable; + /** + * Retrieves a stream of the currently active user's last sync date. + * Or null if there is no current active user or the active user has not synced before. + */ + abstract activeUserLastSync$(): Observable; + /** * Optionally does a full sync operation including going to the server to gather the source * of truth and set that data to state. From cf536466318fe6854f3bb4b89da262c502ff54cd Mon Sep 17 00:00:00 2001 From: Jordan Aasen <166539328+jaasen-livefront@users.noreply.github.com> Date: Thu, 22 Aug 2024 03:18:31 -0700 Subject: [PATCH 03/40] add alt bg to import dialog (#10643) --- apps/desktop/src/app/tools/import/import-desktop.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/desktop/src/app/tools/import/import-desktop.component.html b/apps/desktop/src/app/tools/import/import-desktop.component.html index 9fe2ee47c2..2bb715b5a4 100644 --- a/apps/desktop/src/app/tools/import/import-desktop.component.html +++ b/apps/desktop/src/app/tools/import/import-desktop.component.html @@ -1,4 +1,4 @@ - + {{ "importData" | i18n }} Date: Thu, 22 Aug 2024 13:34:53 +0200 Subject: [PATCH 04/40] [deps] Platform: Update @types/chrome to v0.0.270 (#8737) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 9 +++++---- package.json | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 51220dd2b6..c540eb7f37 100644 --- a/package-lock.json +++ b/package-lock.json @@ -95,7 +95,7 @@ "@storybook/manager-api": "8.2.6", "@storybook/theming": "8.2.6", "@types/argon2-browser": "1.18.4", - "@types/chrome": "0.0.262", + "@types/chrome": "0.0.270", "@types/firefox-webext-browser": "111.0.5", "@types/inquirer": "8.2.10", "@types/jest": "29.5.12", @@ -8073,10 +8073,11 @@ } }, "node_modules/@types/chrome": { - "version": "0.0.262", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.262.tgz", - "integrity": "sha512-TOoj3dqSYE13PD2fRuMQ6X6pggEvL9rRk/yOYOyWE6sfqRWxsJm4VoVm+wr9pkr4Sht/M5t7FFL4vXato8d1gA==", + "version": "0.0.270", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.270.tgz", + "integrity": "sha512-ADvkowV7YnJfycZZxL2brluZ6STGW+9oKG37B422UePf2PCXuFA/XdERI0T18wtuWPx0tmFeZqq6MOXVk1IC+Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/filesystem": "*", "@types/har-format": "*" diff --git a/package.json b/package.json index 89d216ee7a..0fe85f018a 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "@storybook/manager-api": "8.2.6", "@storybook/theming": "8.2.6", "@types/argon2-browser": "1.18.4", - "@types/chrome": "0.0.262", + "@types/chrome": "0.0.270", "@types/firefox-webext-browser": "111.0.5", "@types/inquirer": "8.2.10", "@types/jest": "29.5.12", From 64005d25e2d6704d94cc1c2ee9729c0cb74b50d8 Mon Sep 17 00:00:00 2001 From: Vince Grassia <593223+vgrassia@users.noreply.github.com> Date: Thu, 22 Aug 2024 08:24:26 -0400 Subject: [PATCH 05/40] Fix reference to variable (#10670) --- .github/workflows/release-cli.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release-cli.yml b/.github/workflows/release-cli.yml index fe402e7a8f..19d0677f6d 100644 --- a/.github/workflows/release-cli.yml +++ b/.github/workflows/release-cli.yml @@ -30,7 +30,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Branch check - if: ${{ github.event.inputs.release_type != 'Dry Run' }} + if: ${{ inputs.release_type != 'Dry Run' }} run: | if [[ "$GITHUB_REF" != "refs/heads/rc" ]] && [[ "$GITHUB_REF" != "refs/heads/hotfix-rc-cli" ]]; then echo "===================================" @@ -43,7 +43,7 @@ jobs: id: version uses: bitwarden/gh-actions/release-version-check@main with: - release-type: ${{ github.event.inputs.release_type }} + release-type: ${{ inputs.release_type }} project-type: ts file: apps/cli/package.json monorepo: true @@ -55,7 +55,7 @@ jobs: needs: setup steps: - name: Download all Release artifacts - if: ${{ github.event.inputs.release_type != 'Dry Run' }} + if: ${{ inputs.release_type != 'Dry Run' }} uses: bitwarden/gh-actions/download-artifacts@main with: workflow: build-cli.yml @@ -64,7 +64,7 @@ jobs: branch: ${{ github.ref_name }} - name: Dry Run - Download all artifacts - if: ${{ github.event.inputs.release_type == 'Dry Run' }} + if: ${{ inputs.release_type == 'Dry Run' }} uses: bitwarden/gh-actions/download-artifacts@main with: workflow: build-cli.yml @@ -73,10 +73,10 @@ jobs: branch: main - name: Create release - if: ${{ github.event.inputs.release_type != 'Dry Run' }} + if: ${{ inputs.release_type != 'Dry Run' }} uses: ncipollo/release-action@2c591bcc8ecdcd2db72b97d6147f871fcd833ba5 # v1.14.0 env: - PKG_VERSION: ${{ steps.version.outputs.version }} + PKG_VERSION: ${{ needs.setup.outputs.release-version }} with: artifacts: "apps/cli/bw-oss-windows-${{ env.PKG_VERSION }}.zip, apps/cli/bw-oss-windows-sha256-${{ env.PKG_VERSION }}.txt, From bc8f785f573eb3cb1ad8118f962887394c34b49c Mon Sep 17 00:00:00 2001 From: Bernd Schoolmann Date: Thu, 22 Aug 2024 14:36:39 +0200 Subject: [PATCH 06/40] Remove duplicate i18n key (#10671) --- apps/browser/src/_locales/en/messages.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/apps/browser/src/_locales/en/messages.json b/apps/browser/src/_locales/en/messages.json index 6dc0a93059..5ed28c6ec0 100644 --- a/apps/browser/src/_locales/en/messages.json +++ b/apps/browser/src/_locales/en/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Log in" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, From 7da1082849906d9d733c6f2a175799946923a5c6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 12:57:40 +0000 Subject: [PATCH 07/40] Autosync the updated translations (#10674) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/browser/src/_locales/ar/messages.json | 23 +++++++++--- apps/browser/src/_locales/az/messages.json | 31 +++++++++++----- apps/browser/src/_locales/be/messages.json | 23 +++++++++--- apps/browser/src/_locales/bg/messages.json | 25 ++++++++++--- apps/browser/src/_locales/bn/messages.json | 23 +++++++++--- apps/browser/src/_locales/bs/messages.json | 23 +++++++++--- apps/browser/src/_locales/ca/messages.json | 23 +++++++++--- apps/browser/src/_locales/cs/messages.json | 21 +++++++++-- apps/browser/src/_locales/cy/messages.json | 23 +++++++++--- apps/browser/src/_locales/da/messages.json | 21 +++++++++-- apps/browser/src/_locales/de/messages.json | 31 +++++++++++----- apps/browser/src/_locales/el/messages.json | 29 +++++++++++---- apps/browser/src/_locales/en_GB/messages.json | 21 +++++++++-- apps/browser/src/_locales/en_IN/messages.json | 21 +++++++++-- apps/browser/src/_locales/es/messages.json | 23 +++++++++--- apps/browser/src/_locales/et/messages.json | 23 +++++++++--- apps/browser/src/_locales/eu/messages.json | 23 +++++++++--- apps/browser/src/_locales/fa/messages.json | 23 +++++++++--- apps/browser/src/_locales/fi/messages.json | 35 +++++++++++++------ apps/browser/src/_locales/fil/messages.json | 23 +++++++++--- apps/browser/src/_locales/fr/messages.json | 27 ++++++++++---- apps/browser/src/_locales/gl/messages.json | 23 +++++++++--- apps/browser/src/_locales/he/messages.json | 23 +++++++++--- apps/browser/src/_locales/hi/messages.json | 23 +++++++++--- apps/browser/src/_locales/hr/messages.json | 29 +++++++++++---- apps/browser/src/_locales/hu/messages.json | 25 ++++++++++--- apps/browser/src/_locales/id/messages.json | 23 +++++++++--- apps/browser/src/_locales/it/messages.json | 23 +++++++++--- apps/browser/src/_locales/ja/messages.json | 31 +++++++++++----- apps/browser/src/_locales/ka/messages.json | 23 +++++++++--- apps/browser/src/_locales/km/messages.json | 23 +++++++++--- apps/browser/src/_locales/kn/messages.json | 23 +++++++++--- apps/browser/src/_locales/ko/messages.json | 23 +++++++++--- apps/browser/src/_locales/lt/messages.json | 23 +++++++++--- apps/browser/src/_locales/lv/messages.json | 31 +++++++++++----- apps/browser/src/_locales/ml/messages.json | 23 +++++++++--- apps/browser/src/_locales/mr/messages.json | 23 +++++++++--- apps/browser/src/_locales/my/messages.json | 23 +++++++++--- apps/browser/src/_locales/nb/messages.json | 23 +++++++++--- apps/browser/src/_locales/ne/messages.json | 23 +++++++++--- apps/browser/src/_locales/nl/messages.json | 31 +++++++++++----- apps/browser/src/_locales/nn/messages.json | 23 +++++++++--- apps/browser/src/_locales/or/messages.json | 23 +++++++++--- apps/browser/src/_locales/pl/messages.json | 23 +++++++++--- apps/browser/src/_locales/pt_BR/messages.json | 23 +++++++++--- apps/browser/src/_locales/pt_PT/messages.json | 23 +++++++++--- apps/browser/src/_locales/ro/messages.json | 23 +++++++++--- apps/browser/src/_locales/ru/messages.json | 21 +++++++++-- apps/browser/src/_locales/si/messages.json | 23 +++++++++--- apps/browser/src/_locales/sk/messages.json | 23 +++++++++--- apps/browser/src/_locales/sl/messages.json | 23 +++++++++--- apps/browser/src/_locales/sr/messages.json | 23 +++++++++--- apps/browser/src/_locales/sv/messages.json | 23 +++++++++--- apps/browser/src/_locales/te/messages.json | 23 +++++++++--- apps/browser/src/_locales/th/messages.json | 23 +++++++++--- apps/browser/src/_locales/tr/messages.json | 29 +++++++++++---- apps/browser/src/_locales/uk/messages.json | 23 +++++++++--- apps/browser/src/_locales/vi/messages.json | 33 ++++++++++++----- apps/browser/src/_locales/zh_CN/messages.json | 35 +++++++++++++------ apps/browser/src/_locales/zh_TW/messages.json | 23 +++++++++--- 60 files changed, 1185 insertions(+), 285 deletions(-) diff --git a/apps/browser/src/_locales/ar/messages.json b/apps/browser/src/_locales/ar/messages.json index d57fed94c1..88d53937f3 100644 --- a/apps/browser/src/_locales/ar/messages.json +++ b/apps/browser/src/_locales/ar/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "تسجيل الدخول" - }, "enterpriseSingleSignOn": { "message": "تسجيل الدخول الأُحادي للمؤسسات – SSO" }, @@ -1083,7 +1080,7 @@ "message": "1 جيغابايت وحدة تخزين مشفرة لمرفقات الملفات." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "خيارات تسجيل الدخول بخطوتين المملوكة لجهات اخرى مثل YubiKey و Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "شكرا لك على دعم Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "الكل فقط بـ $PRICE$ /سنة!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "اكتمل التحديث" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/az/messages.json b/apps/browser/src/_locales/az/messages.json index 0c181277ce..32df9140af 100644 --- a/apps/browser/src/_locales/az/messages.json +++ b/apps/browser/src/_locales/az/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Bir parol təyin edərək hesabınızı yaratmağı başa çatdırın" }, - "login": { - "message": "Giriş et" - }, "enterpriseSingleSignOn": { "message": "Müəssisə üçün tək daxil olma" }, @@ -1083,7 +1080,7 @@ "message": "Fayl qoşmaları üçün 1 GB şifrələnmiş saxlama sahəsi" }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Fövqəladə hal müraciəti" }, "premiumSignUpTwoStepOptions": { "message": "YubiKey və Duo kimi mülkiyyətçi iki addımlı giriş seçimləri." @@ -1107,7 +1104,7 @@ "message": "Premium üzvlüyü bitwarden.com veb anbarında satın ala bilərsiniz. İndi saytı ziyarət etmək istəyirsiniz?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "Bitwarden veb tətbiqindəki hesab ayarlarınızda Premium satın ala bilərsiniz." }, "premiumCurrentMember": { "message": "Premium üzvsünüz!" @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Bitwarden-i dəstəklədiyiniz üçün təşəkkürlər!" }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Hamısı sadəcə ildə $PRICE$!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Təzələmə tamamlandı" }, @@ -2305,11 +2314,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSendSuccessfully": { - "message": "Send created successfully!", + "message": "Send uğurla yaradıldı!", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { - "message": "The Send will be available to anyone with the link for the next $DAYS$ days.", + "message": "Send, növbəti $DAYS$ ərzində keçidə sahib olan hər kəsə əlçatan olacaq.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "placeholders": { "days": { @@ -2319,7 +2328,7 @@ } }, "sendLinkCopied": { - "message": "Send link copied", + "message": "Send keçidi kopyalandı", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Səhifə yüklənəndə avto-doldurulsun?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Kart detalları" }, diff --git a/apps/browser/src/_locales/be/messages.json b/apps/browser/src/_locales/be/messages.json index dcf5c21eed..a49add0958 100644 --- a/apps/browser/src/_locales/be/messages.json +++ b/apps/browser/src/_locales/be/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Увайсці" - }, "enterpriseSingleSignOn": { "message": "Адзіны ўваход прадпрыемства (SSO)" }, @@ -1083,7 +1080,7 @@ "message": "1 ГБ зашыфраванага сховішча для далучаных файлаў." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Дзякуй за падтрымку Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Усяго за $PRICE$ у год!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Абнаўленне завершана" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/bg/messages.json b/apps/browser/src/_locales/bg/messages.json index 87f0a53a3e..1d6f1cda36 100644 --- a/apps/browser/src/_locales/bg/messages.json +++ b/apps/browser/src/_locales/bg/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Завършете регистрацията си като зададете парола" }, - "login": { - "message": "Вписване" - }, "enterpriseSingleSignOn": { "message": "Еднократна идентификация (SSO)" }, @@ -1083,7 +1080,7 @@ "message": "1 GB пространство за файлове, които се шифрират." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Авариен достъп" }, "premiumSignUpTwoStepOptions": { "message": "Частно двустепенно удостоверяване чрез YubiKey и Duo." @@ -1107,7 +1104,7 @@ "message": "Може да платите абонамента си през сайта bitwarden.com. Искате ли да го посетите сега?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "Можете да закупите платената версия от настройките на регистрацията си, в приложението по уеб на Битуорден." }, "premiumCurrentMember": { "message": "Честито, ползвате платен абонамент!" @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Благодарим ви за подкрепата на Bitwarden." }, + "premiumFeatures": { + "message": "Преминете към платената версия и ще получите:" + }, "premiumPrice": { "message": "И това само за $PRICE$ на година!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "И това само за $PRICE$ на година!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Абонаментът е опреснен" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Автоматично попълване при зареждане на страницата?" }, + "cardExpiredTitle": { + "message": "Изтекла карта" + }, + "cardExpiredMessage": { + "message": "Ако сте я подновили, актуализирайте информацията за картата" + }, "cardDetails": { "message": "Данни за картата" }, diff --git a/apps/browser/src/_locales/bn/messages.json b/apps/browser/src/_locales/bn/messages.json index 7881e0658d..b570bf14b2 100644 --- a/apps/browser/src/_locales/bn/messages.json +++ b/apps/browser/src/_locales/bn/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "প্রবেশ করুন" - }, "enterpriseSingleSignOn": { "message": "এন্টারপ্রাইজ একক সাইন-অন" }, @@ -1083,7 +1080,7 @@ "message": "ফাইল সংযুক্তির জন্য ১ জিবি এনক্রিপ্টেড স্থান।" }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Bitwarden কে সমর্থন করার জন্য আপনাকে ধন্যবাদ।" }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "সমস্ত মাত্র $PRICE$ / বছরের জন্য!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "পুনঃসতেজ সম্পূর্ণ" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/bs/messages.json b/apps/browser/src/_locales/bs/messages.json index 0a72dbfa47..550b49f056 100644 --- a/apps/browser/src/_locales/bs/messages.json +++ b/apps/browser/src/_locales/bs/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Prijavite se" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1083,7 +1080,7 @@ "message": "1 GB encrypted storage for file attachments." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/ca/messages.json b/apps/browser/src/_locales/ca/messages.json index 3b961fa004..0374ce8384 100644 --- a/apps/browser/src/_locales/ca/messages.json +++ b/apps/browser/src/_locales/ca/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Acabeu de crear el vostre compte establint una contrasenya" }, - "login": { - "message": "Inicia sessió" - }, "enterpriseSingleSignOn": { "message": "Inici de sessió únic d'empresa" }, @@ -1083,7 +1080,7 @@ "message": "1 GB d'emmagatzematge xifrat per als fitxers adjunts." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Opcions propietàries de doble factor com ara YubiKey i Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Gràcies per donar suport a Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Tot per només $PRICE$ / any!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Actualització completa" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/cs/messages.json b/apps/browser/src/_locales/cs/messages.json index b22f6ff55f..aff80372c6 100644 --- a/apps/browser/src/_locales/cs/messages.json +++ b/apps/browser/src/_locales/cs/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Dokončete vytváření účtu nastavením hesla" }, - "login": { - "message": "Přihlásit se" - }, "enterpriseSingleSignOn": { "message": "Jednotné podnikové přihlášení" }, @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Děkujeme za podporu Bitwardenu." }, + "premiumFeatures": { + "message": "Přejděte na Premium a získáte:" + }, "premiumPrice": { "message": "Vše jen za $PRICE$ ročně!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Vše jen za $PRICE$ ročně!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Obnova je dokončena" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Automaticky vyplnit při načtení stránky?" }, + "cardExpiredTitle": { + "message": "Prošlá karta" + }, + "cardExpiredMessage": { + "message": "Pokud jste ji obnovili, aktualizujte informace o kartě" + }, "cardDetails": { "message": "Podrobnosti karty" }, diff --git a/apps/browser/src/_locales/cy/messages.json b/apps/browser/src/_locales/cy/messages.json index 4d3f9a9b49..43eb9c4172 100644 --- a/apps/browser/src/_locales/cy/messages.json +++ b/apps/browser/src/_locales/cy/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Mewngofnodi" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1083,7 +1080,7 @@ "message": "Storfa 1GB wedi'i hamgryptio ar gyfer atodiadau ffeiliau." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Dewisiadau mewngofnodi dau gam perchenogol megis YubiKey a Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Diolch am gefnogi Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Hyn oll am $PRICE$ y flwyddyn!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/da/messages.json b/apps/browser/src/_locales/da/messages.json index 8f35a21bb1..52f463a3a4 100644 --- a/apps/browser/src/_locales/da/messages.json +++ b/apps/browser/src/_locales/da/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Afslut kontooprettelsen med at indstille en adgangskode" }, - "login": { - "message": "Log ind" - }, "enterpriseSingleSignOn": { "message": "Virksomheds Single-Sign-On" }, @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Tak fordi du støtter Bitwarden." }, + "premiumFeatures": { + "message": "Opgradér til Premium og modtag:" + }, "premiumPrice": { "message": "Alt dette for kun $PRICE$ /år!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Alt dette for kun $PRICE$ pr. år!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Opdatering færdig" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Udløbet kort" + }, + "cardExpiredMessage": { + "message": "Er det blevet fornyet, opdatér venligst kortoplysningerne" + }, "cardDetails": { "message": "Kortoplysninger" }, diff --git a/apps/browser/src/_locales/de/messages.json b/apps/browser/src/_locales/de/messages.json index 2c68a9e6db..c5905ed913 100644 --- a/apps/browser/src/_locales/de/messages.json +++ b/apps/browser/src/_locales/de/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Schließe die Erstellung deines Kontos ab, indem du ein Passwort festlegst" }, - "login": { - "message": "Anmelden" - }, "enterpriseSingleSignOn": { "message": "Enterprise Single-Sign-On" }, @@ -1083,7 +1080,7 @@ "message": "1 GB verschlüsselter Speicherplatz für Dateianhänge." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Notfallzugriff." }, "premiumSignUpTwoStepOptions": { "message": "Proprietäre Optionen für die Zwei-Faktor Authentifizierung wie YubiKey und Duo." @@ -1107,7 +1104,7 @@ "message": "Du kannst deine Premium-Mitgliedschaft im Bitwarden.com Web-Tresor kaufen. Möchtest du die Website jetzt besuchen?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "Du kannst Premium über deine Kontoeinstellungen in der Bitwarden Web-App kaufen." }, "premiumCurrentMember": { "message": "Du bist jetzt Premium-Mitglied!" @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Vielen Dank, dass du Bitwarden unterstützt." }, + "premiumFeatures": { + "message": "Upgrade auf Premium und erhalte:" + }, "premiumPrice": { "message": "Das alles für %price% pro Jahr!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Alles für nur $PRICE$ pro Jahr!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Aktualisierung abgeschlossen" }, @@ -2305,11 +2314,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSendSuccessfully": { - "message": "Send created successfully!", + "message": "Send erfolgreich erstellt!", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { - "message": "The Send will be available to anyone with the link for the next $DAYS$ days.", + "message": "Das Send wird jedem mit dem Link für die nächsten $DAYS$ Tage zur Verfügung stehen.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "placeholders": { "days": { @@ -2319,7 +2328,7 @@ } }, "sendLinkCopied": { - "message": "Send link copied", + "message": "Send-Link kopiert", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Auto-Ausfüllen beim Laden einer Seite?" }, + "cardExpiredTitle": { + "message": "Abgelaufene Karte" + }, + "cardExpiredMessage": { + "message": "Wenn du die Karte erneuert hast, aktualisiere die Angaben zur Karte" + }, "cardDetails": { "message": "Kartendetails" }, diff --git a/apps/browser/src/_locales/el/messages.json b/apps/browser/src/_locales/el/messages.json index 2811dcf1b5..a29eaab755 100644 --- a/apps/browser/src/_locales/el/messages.json +++ b/apps/browser/src/_locales/el/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Ολοκληρώστε τη δημιουργία του λογαριασμού σας ορίζοντας έναν κωδικό πρόσβασης" }, - "login": { - "message": "Σύνδεση" - }, "enterpriseSingleSignOn": { "message": "Ενιαία είσοδος για επιχειρήσεις" }, @@ -1083,7 +1080,7 @@ "message": "1 GB κρυπτογραφημένο αποθηκευτικό χώρο για συνημμένα αρχεία." }, "premiumSignUpEmergency": { - "message": "Πρόσβαση έκτακτης ανάγκης" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Πρόσθετες επιλογές σύνδεσης δύο βημάτων, όπως το YubiKey και το Duo." @@ -1107,7 +1104,7 @@ "message": "Μπορείτε να αγοράσετε συνδρομή Premium στο διαδικτυακό θησαυ/κιο του bitwarden.com. Θέλετε να επισκεφθείτε την ιστοσελίδα τώρα;" }, "premiumPurchaseAlertV2": { - "message": "Μπορείτε να αγοράσετε το Premium από τις ρυθμίσεις λογαριασμού σας στην διαδικτυακή εφαρμογή Bitwarden." + "message": "You can purchase Premium from your account settings on the Bitwarden web app." }, "premiumCurrentMember": { "message": "Είστε Premium μέλος!" @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Ευχαριστούμε που υποστηρίζετε το Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Όλα για μόνο $PRICE$ /έτος!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Επιτυχής ανανέωση" }, @@ -2305,7 +2314,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSendSuccessfully": { - "message": "Το Send δημιουργήθηκε επιτυχώς!", + "message": "Send created successfully!", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { @@ -2319,7 +2328,7 @@ } }, "sendLinkCopied": { - "message": "Ο σύνδεσμος Send αντιγράφηκε", + "message": "Send link copied", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Αυτόματη συμπλήρωση κατά τη φόρτωση της σελίδας;" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Στοιχεία κάρτας" }, diff --git a/apps/browser/src/_locales/en_GB/messages.json b/apps/browser/src/_locales/en_GB/messages.json index 5146e6151d..533e271e6d 100644 --- a/apps/browser/src/_locales/en_GB/messages.json +++ b/apps/browser/src/_locales/en_GB/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Log in" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/en_IN/messages.json b/apps/browser/src/_locales/en_IN/messages.json index 8cb0875739..feefa391c1 100644 --- a/apps/browser/src/_locales/en_IN/messages.json +++ b/apps/browser/src/_locales/en_IN/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Log in" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/es/messages.json b/apps/browser/src/_locales/es/messages.json index 2ab3499784..a9a8e11595 100644 --- a/apps/browser/src/_locales/es/messages.json +++ b/apps/browser/src/_locales/es/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Termina de crear tu cuenta estableciendo una contraseña" }, - "login": { - "message": "Iniciar sesión" - }, "enterpriseSingleSignOn": { "message": "Inicio de sesión único empresarial" }, @@ -1083,7 +1080,7 @@ "message": "1 GB de espacio cifrado en disco para adjuntos." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Opciones de inicio de sesión con autenticación de dos pasos propietarios como YubiKey y Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Gracias por apoyar el desarrollo de Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "¡Todo por solo %price% /año!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Actualización completada" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Datos de la tarjeta" }, diff --git a/apps/browser/src/_locales/et/messages.json b/apps/browser/src/_locales/et/messages.json index d707cd5108..c8bc75fa43 100644 --- a/apps/browser/src/_locales/et/messages.json +++ b/apps/browser/src/_locales/et/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Lõpeta konto loomine parooli luues" }, - "login": { - "message": "Logi sisse" - }, "enterpriseSingleSignOn": { "message": "Ettevõtte ühekordne sisselogimine" }, @@ -1083,7 +1080,7 @@ "message": "1 GB ulatuses krüpteeritud salvestusruum." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Täname, et toetad Bitwardenit." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Kõik see ainult $PRICE$ / aastas!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Uuendamine lõpetatud" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/eu/messages.json b/apps/browser/src/_locales/eu/messages.json index c407fcd74e..f102af8442 100644 --- a/apps/browser/src/_locales/eu/messages.json +++ b/apps/browser/src/_locales/eu/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Hasi saioa" - }, "enterpriseSingleSignOn": { "message": "Enpresentzako saio hasiera bakarra" }, @@ -1083,7 +1080,7 @@ "message": "Eranskinentzako 1GB-eko zifratutako biltegia." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Eskerrik asko Bitwarden babesteagatik." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Dena, urtean $PRICE$gatik!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Eguneratzea eginda" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/fa/messages.json b/apps/browser/src/_locales/fa/messages.json index fa178ccbd8..109a5228a9 100644 --- a/apps/browser/src/_locales/fa/messages.json +++ b/apps/browser/src/_locales/fa/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "ایجاد حساب خود را با تنظیم رمز عبور تکمیل کنید" }, - "login": { - "message": "ورود" - }, "enterpriseSingleSignOn": { "message": "ورود به سیستم پروژه" }, @@ -1083,7 +1080,7 @@ "message": "۱ گیگابایت فضای ذخیره سازی رمزگذاری شده برای پیوست های پرونده." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "گزینه های ورود اضافی دو مرحله ای مانند YubiKey و Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "برای حمایتتان از Bitwarden سپاسگزاریم." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "تمامش فقط $PRICE$ در سال!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "نوسازی کامل شد" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/fi/messages.json b/apps/browser/src/_locales/fi/messages.json index 5aa1a0d138..1ca7d1ce15 100644 --- a/apps/browser/src/_locales/fi/messages.json +++ b/apps/browser/src/_locales/fi/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Viimeistele tilin luonti asettamalla salasana" }, - "login": { - "message": "Kirjaudu" - }, "enterpriseSingleSignOn": { "message": "Yrityksen kertakirjautuminen (SSO)" }, @@ -311,13 +308,13 @@ "message": "Kansion nimi" }, "folderHintText": { - "message": "Luo alikansioita lisäämällä olemassa olevan kansion nimi merkin “/” jälkeen. Esim: Some/Foorumit" + "message": "Luo alikansio lisäämällä olemassa olevan kansion nimi \"/\"-merkin jälkeen. Esim: Some/Foorumit." }, "noFoldersAdded": { "message": "Kansioita ei ole lisätty" }, "createFoldersToOrganize": { - "message": "Luo kansioita järjestääksesi holvisi kohteita" + "message": "Lajittele holvisi kohteita luomalla kansioita" }, "deleteFolderPermanently": { "message": "Haluatko varmasti poistaa kansion pysyvästi?" @@ -1083,7 +1080,7 @@ "message": "1 Gt salattua tallennustilaa tiedostoliitteille." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Varmuuskäyttö" }, "premiumSignUpTwoStepOptions": { "message": "Omisteiset kaksivaiheisen kirjautumisen vaihtoehdot, kuten YubiKey ja Duo." @@ -1107,7 +1104,7 @@ "message": "Voit ostaa Premium-jäsenyyden bitwarden.com-verkkoholvista. Haluatko avata sivuston nyt?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "Voit ostaa Premiumin tiliasetuksistasi Bitwardenin verkkosovelluksen kautta." }, "premiumCurrentMember": { "message": "Olet Premium-jäsen!" @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Kiitos kun tuet Bitwardenia." }, + "premiumFeatures": { + "message": "Päivitä premium-tilaukseen ja saat:" + }, "premiumPrice": { "message": "Kaikki tämä vain $PRICE$/vuosi!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Kaikki tämä vain $PRICE$/vuosi!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Päivitys valmistui" }, @@ -2305,11 +2314,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSendSuccessfully": { - "message": "Send created successfully!", + "message": "Sendin luonti onnistui!", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { - "message": "The Send will be available to anyone with the link for the next $DAYS$ days.", + "message": "Tämän linkin välityksellä Send on kenen tahansa avattavissa seuraavien $DAYS$ päivän ajan.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "placeholders": { "days": { @@ -2319,7 +2328,7 @@ } }, "sendLinkCopied": { - "message": "Send link copied", + "message": "Send-linkki kopioitiin", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Automaattitäytetäänkö sivun avautuessa?" }, + "cardExpiredTitle": { + "message": "Kortti on vanhentunut" + }, + "cardExpiredMessage": { + "message": "Jos olet uusinut sen, päivitä kortin tiedot" + }, "cardDetails": { "message": "Kortin tiedot" }, diff --git a/apps/browser/src/_locales/fil/messages.json b/apps/browser/src/_locales/fil/messages.json index e2f32ae5d9..9f09fb6964 100644 --- a/apps/browser/src/_locales/fil/messages.json +++ b/apps/browser/src/_locales/fil/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Mag-login" - }, "enterpriseSingleSignOn": { "message": "Enterprise Single Sign-On sa Filipino ay Isang Sign-On na Enterprise" }, @@ -1083,7 +1080,7 @@ "message": "1 GB encrypted storage para sa mga file attachment." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Pagmamay-ari na dalawang hakbang na opsyon sa pag-log in gaya ng YubiKey at Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Salamat sa pagsuporta sa Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Lahat para lamang sa $PRICE$ /taon!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "I-refresh ang lahat" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/fr/messages.json b/apps/browser/src/_locales/fr/messages.json index bd799815c3..153c5710b0 100644 --- a/apps/browser/src/_locales/fr/messages.json +++ b/apps/browser/src/_locales/fr/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Terminer la création de votre compte en définissant un mot de passe" }, - "login": { - "message": "Se connecter" - }, "enterpriseSingleSignOn": { "message": "Portail de connexion unique d'entreprise" }, @@ -1083,7 +1080,7 @@ "message": "1 Go de stockage chiffré pour les fichiers joints." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Options de connexion propriétaires à deux facteurs telles que YubiKey et Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Merci de soutenir Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Tout pour seulement $PRICE$/an !", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Actualisation terminée" }, @@ -1285,7 +1294,7 @@ "description": "Represents the message for allowing the user to enable the autofill overlay" }, "autofillSuggestionsSectionTitle": { - "message": "Autofill suggestions" + "message": "Suggestions de saisie automatique" }, "showInlineMenuLabel": { "message": "Show autofill suggestions on form fields" @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, @@ -3973,7 +3988,7 @@ } }, "addAccount": { - "message": "Add account" + "message": "Ajouter un compte" }, "loading": { "message": "Loading" diff --git a/apps/browser/src/_locales/gl/messages.json b/apps/browser/src/_locales/gl/messages.json index 6084adadfe..b57ca6c701 100644 --- a/apps/browser/src/_locales/gl/messages.json +++ b/apps/browser/src/_locales/gl/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Iniciar sesión" - }, "enterpriseSingleSignOn": { "message": "Inicio de sesión único empresarial" }, @@ -1083,7 +1080,7 @@ "message": "1 GB encrypted storage for file attachments." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/he/messages.json b/apps/browser/src/_locales/he/messages.json index 82a1c59f7f..df0a0b46d5 100644 --- a/apps/browser/src/_locales/he/messages.json +++ b/apps/browser/src/_locales/he/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "התחבר" - }, "enterpriseSingleSignOn": { "message": "כניסה ארגונית אחידה" }, @@ -1083,7 +1080,7 @@ "message": "1 ג'יגה של מקום אחסון עבור קבצים מצורפים." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "תודה על תמיכתך בBitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "הכל רק ב$PRICE$ לשנה!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "הרענון הושלם" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/hi/messages.json b/apps/browser/src/_locales/hi/messages.json index 3ec9630e47..9d65d502e2 100644 --- a/apps/browser/src/_locales/hi/messages.json +++ b/apps/browser/src/_locales/hi/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "पासवर्ड सेट करके अपना खाता निर्माण पूरा करें" }, - "login": { - "message": "Log In" - }, "enterpriseSingleSignOn": { "message": "उद्यम एकल साइन-ऑन" }, @@ -1083,7 +1080,7 @@ "message": "1 GB of encrypted file storage." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "ताज़ा पूरा" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/hr/messages.json b/apps/browser/src/_locales/hr/messages.json index 857310e21b..e60676782a 100644 --- a/apps/browser/src/_locales/hr/messages.json +++ b/apps/browser/src/_locales/hr/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Dovrši stvaranje svog računa postavljanjem lozinke" }, - "login": { - "message": "Prijava" - }, "enterpriseSingleSignOn": { "message": "Jedinstvena prijava na razini tvrtke (SSO)" }, @@ -1083,7 +1080,7 @@ "message": "1 GB šifriranog prostora za pohranu podataka." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Mogućnosti za prijavu u dva koraka kao što su YubiKey i Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Hvala ti što podupireš Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Sve za samo $PRICE$ /godišnje!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Osvježavanje završeno" }, @@ -2305,11 +2314,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSendSuccessfully": { - "message": "Send je uspješno stvoren!", + "message": "Send created successfully!", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { - "message": "Send će biti dostupan svakome s poveznicom ovoliko dana: $DAYS$.", + "message": "The Send will be available to anyone with the link for the next $DAYS$ days.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "placeholders": { "days": { @@ -2319,7 +2328,7 @@ } }, "sendLinkCopied": { - "message": "Kopirana poveznica Senda", + "message": "Send link copied", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Auto-ispuna kod učitavanja?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Detalji kartice" }, diff --git a/apps/browser/src/_locales/hu/messages.json b/apps/browser/src/_locales/hu/messages.json index 3cdbadfffd..72d0b8a188 100644 --- a/apps/browser/src/_locales/hu/messages.json +++ b/apps/browser/src/_locales/hu/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "A fiók létrehozásának befejezése jelszó beállításával" }, - "login": { - "message": "Bejelentkezés" - }, "enterpriseSingleSignOn": { "message": "Vállalati önálló bejelentkezés" }, @@ -1083,7 +1080,7 @@ "message": "1 GB titkosított tárhely a fájlmellékleteknek." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Sürgősségi hozzáférés" }, "premiumSignUpTwoStepOptions": { "message": "Saját kétlépcsős bejelentkezési lehetőségek mint a YubiKey és a Duo." @@ -1107,7 +1104,7 @@ "message": "A prémium tagság megvásárolható a bitwarden.com webes széfben. Szeretnénk felkeresni a webhelyet most?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "Prémium szolgáltatást vásárolhatunk a Bitwarden webalkalmazás fiókbeállításai között." }, "premiumCurrentMember": { "message": "Prémium tag vagyunk!" @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Köszönjük a Bitwarden támogatását." }, + "premiumFeatures": { + "message": "Áttérés prémium verzióra és fogadás:" + }, "premiumPrice": { "message": "Mindez csak $PRICE$ /év.", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Mindez csak $PRICE$ /év!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Frissítés megtörtént" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Automatikus kitöltés oldalbetöltésnél?" }, + "cardExpiredTitle": { + "message": "Lejárt kártya" + }, + "cardExpiredMessage": { + "message": "Ha megújítottuk, frissítsük a kártya adatait." + }, "cardDetails": { "message": "Kártyaadatok" }, diff --git a/apps/browser/src/_locales/id/messages.json b/apps/browser/src/_locales/id/messages.json index 2eb1c089b9..b70e8d6788 100644 --- a/apps/browser/src/_locales/id/messages.json +++ b/apps/browser/src/_locales/id/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Masuk" - }, "enterpriseSingleSignOn": { "message": "SSO Perusahaan" }, @@ -1083,7 +1080,7 @@ "message": "1 GB penyimpanan berkas yang dienkripsi." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Terima kasih telah mendukung Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Semua itu hanya $PRICE$ /tahun!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Penyegaran selesai" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/it/messages.json b/apps/browser/src/_locales/it/messages.json index 0c1eb9ef4f..60ce1373d0 100644 --- a/apps/browser/src/_locales/it/messages.json +++ b/apps/browser/src/_locales/it/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Accedi" - }, "enterpriseSingleSignOn": { "message": "Single Sign-On aziendale" }, @@ -1083,7 +1080,7 @@ "message": "1 GB di spazio di archiviazione crittografato per gli allegati." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Opzioni di verifica in due passaggi proprietarie come YubiKey e Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Grazie per il tuo supporto a Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Il tutto per soli $PRICE$ all'anno!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Aggiornamento completato" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/ja/messages.json b/apps/browser/src/_locales/ja/messages.json index 9cf7d556a0..0072b24fa5 100644 --- a/apps/browser/src/_locales/ja/messages.json +++ b/apps/browser/src/_locales/ja/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "パスワードを設定してアカウントの作成を完了してください" }, - "login": { - "message": "ログイン" - }, "enterpriseSingleSignOn": { "message": "組織のシングルサインオン" }, @@ -1083,7 +1080,7 @@ "message": "1GB の暗号化されたファイルストレージ" }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "緊急アクセス" }, "premiumSignUpTwoStepOptions": { "message": "YubiKey、Duo などのプロプライエタリな2段階認証オプション。" @@ -1107,7 +1104,7 @@ "message": "プレミアム会員権は bitwarden.com ウェブ保管庫で購入できます。ウェブサイトを開きますか?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "Bitwarden ウェブアプリでアカウント設定からプレミアムを購入できます。" }, "premiumCurrentMember": { "message": "あなたはプレミアム会員です!" @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Bitwarden を支援いただき、ありがとうございます。" }, + "premiumFeatures": { + "message": "プレミアムにアップグレードして受け取る:" + }, "premiumPrice": { "message": "全部でなんと$PRICE$/年だけ!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "すべて込みで年間たったの$PRICE$!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "更新完了" }, @@ -2305,11 +2314,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSendSuccessfully": { - "message": "Send created successfully!", + "message": "Send を作成しました!", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { - "message": "The Send will be available to anyone with the link for the next $DAYS$ days.", + "message": "Send は、次の $DAYS$ 日間はリンクを知っている人全員が利用できます。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "placeholders": { "days": { @@ -2319,7 +2328,7 @@ } }, "sendLinkCopied": { - "message": "Send link copied", + "message": "Send リンクをコピーしました", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "ページ読み込み時に自動入力する" }, + "cardExpiredTitle": { + "message": "期限切れのカード" + }, + "cardExpiredMessage": { + "message": "カードの更新があった場合、カード情報を更新してください" + }, "cardDetails": { "message": "カード情報" }, diff --git a/apps/browser/src/_locales/ka/messages.json b/apps/browser/src/_locales/ka/messages.json index a55860c8ff..d8e02622fd 100644 --- a/apps/browser/src/_locales/ka/messages.json +++ b/apps/browser/src/_locales/ka/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "ავტორიზაცია" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1083,7 +1080,7 @@ "message": "1 GB encrypted storage for file attachments." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/km/messages.json b/apps/browser/src/_locales/km/messages.json index 5503227cba..0700341d23 100644 --- a/apps/browser/src/_locales/km/messages.json +++ b/apps/browser/src/_locales/km/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Log in" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1083,7 +1080,7 @@ "message": "1 GB encrypted storage for file attachments." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/kn/messages.json b/apps/browser/src/_locales/kn/messages.json index 6c398b6aeb..afcb7a17d0 100644 --- a/apps/browser/src/_locales/kn/messages.json +++ b/apps/browser/src/_locales/kn/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "ಲಾಗಿನ್" - }, "enterpriseSingleSignOn": { "message": "ಎಂಟರ್‌ಪ್ರೈಸ್ ಏಕ ಸೈನ್-ಆನ್" }, @@ -1083,7 +1080,7 @@ "message": "ಫೈಲ್ ಲಗತ್ತುಗಳಿಗಾಗಿ 1 ಜಿಬಿ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ಸಂಗ್ರಹ." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "ಬಿಟ್ವಾರ್ಡೆನ್ ಅವರನ್ನು ಬೆಂಬಲಿಸಿದ್ದಕ್ಕಾಗಿ ಧನ್ಯವಾದಗಳು." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "ಎಲ್ಲವೂ ಕೇವಲ $PRICE$ / ವರ್ಷಕ್ಕೆ!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "ರಿಫ್ರೆಶ್ ಪೂರ್ಣಗೊಂಡಿದೆ" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/ko/messages.json b/apps/browser/src/_locales/ko/messages.json index 3b07fa8607..4325971967 100644 --- a/apps/browser/src/_locales/ko/messages.json +++ b/apps/browser/src/_locales/ko/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "로그인" - }, "enterpriseSingleSignOn": { "message": "엔터프라이즈 통합 인증 (SSO)" }, @@ -1083,7 +1080,7 @@ "message": "1GB의 암호화된 파일 저장소." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Bitwarden을 지원해 주셔서 감사합니다." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "이 모든 기능을 연 $PRICE$에 이용하실 수 있습니다!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "새로 고침 완료" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/lt/messages.json b/apps/browser/src/_locales/lt/messages.json index ac58c6df12..d41ce8ec21 100644 --- a/apps/browser/src/_locales/lt/messages.json +++ b/apps/browser/src/_locales/lt/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Baigkite kurti paskyrą nustatydami slaptažodį" }, - "login": { - "message": "Prisijungti" - }, "enterpriseSingleSignOn": { "message": "Vienkartinis įmonės prisijungimas" }, @@ -1083,7 +1080,7 @@ "message": "1 GB užšifruotos vietos diske bylų prisegimams." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Patentuotos dviejų žingsnių prisijungimo parinktys, tokios kaip YubiKey ir Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Dėkojame, kad palaikote „Bitwarden“." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Visa tai tik už $PRICE$ / metus!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Atnaujinimas įvykdytas" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Kortelės duomenys" }, diff --git a/apps/browser/src/_locales/lv/messages.json b/apps/browser/src/_locales/lv/messages.json index f43955f7a6..75725ebb3a 100644 --- a/apps/browser/src/_locales/lv/messages.json +++ b/apps/browser/src/_locales/lv/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Sava konta izveidošana jāpabeidz ar paroles iestatīšanu" }, - "login": { - "message": "Pieteikties" - }, "enterpriseSingleSignOn": { "message": "Uzņēmuma vienotā pieteikšanās" }, @@ -1083,7 +1080,7 @@ "message": "1 GB šifrētas krātuves datņu pielikumiem." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Ārkārtas piekļuve" }, "premiumSignUpTwoStepOptions": { "message": "Tādas slēgtā pirmavota divpakāpju pieteikšanās iespējas kā YubiKey un Duo." @@ -1107,7 +1104,7 @@ "message": "Premium dalību ir iespējams iegādāties bitwarden.com tīmekļa glabātavā. Vai tagad apmeklēt tīmekļvietni?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "Premium var iegādāties Bitwarden tīmekļa lietotnē sava konta iestatījumos." }, "premiumCurrentMember": { "message": "Tu esi Premium dalībnieks!" @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Paldies, ka atbalsti Bitwarden!" }, + "premiumFeatures": { + "message": "Uzlabo uz \"Premium\" un saņem:" + }, "premiumPrice": { "message": "Viss par tikai $PRICE$ gadā!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Viss par tikai $PRICE$ gadā.", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Atsvaidzināšana pabeigta" }, @@ -2305,11 +2314,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSendSuccessfully": { - "message": "Send created successfully!", + "message": "Send tika veiksmīgi izveidots.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { - "message": "The Send will be available to anyone with the link for the next $DAYS$ days.", + "message": "Send būs pieejams nākamās $DAYS$ dienas ikvienam, kuram ir saite.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "placeholders": { "days": { @@ -2319,7 +2328,7 @@ } }, "sendLinkCopied": { - "message": "Send link copied", + "message": "Send saite ievietota starpliktuvē", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Automātiski aizpildīt lapas ielādes brīdī?" }, + "cardExpiredTitle": { + "message": "Beidzies kartes derīgums" + }, + "cardExpiredMessage": { + "message": "Ja atjaunoji to, jāatjaunina kartes informācija" + }, "cardDetails": { "message": "Kartes dati" }, diff --git a/apps/browser/src/_locales/ml/messages.json b/apps/browser/src/_locales/ml/messages.json index aa9247fb37..2dcf65d111 100644 --- a/apps/browser/src/_locales/ml/messages.json +++ b/apps/browser/src/_locales/ml/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "ലോഗിൻ" - }, "enterpriseSingleSignOn": { "message": "എന്റർപ്രൈസ് സിംഗിൾ സൈൻ-ഓൺ" }, @@ -1083,7 +1080,7 @@ "message": "ഫയൽ അറ്റാച്ചുമെന്റുകൾക്കായി 1 ജിബി എൻക്രിപ്റ്റുചെയ്‌ത സംഭരണം." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Bitwardenനെ പിന്തുണച്ചതിന് നന്ദി." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "എല്ലാം വെറും $PRICE$/ വർഷത്തേക്ക്!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "റിഫ്രഷ് പൂർത്തിയായി" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/mr/messages.json b/apps/browser/src/_locales/mr/messages.json index 0dd108a577..39941ed1a1 100644 --- a/apps/browser/src/_locales/mr/messages.json +++ b/apps/browser/src/_locales/mr/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "प्रवेश करा" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1083,7 +1080,7 @@ "message": "1 GB encrypted storage for file attachments." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/my/messages.json b/apps/browser/src/_locales/my/messages.json index 5503227cba..0700341d23 100644 --- a/apps/browser/src/_locales/my/messages.json +++ b/apps/browser/src/_locales/my/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Log in" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1083,7 +1080,7 @@ "message": "1 GB encrypted storage for file attachments." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/nb/messages.json b/apps/browser/src/_locales/nb/messages.json index 6f9a8eacb2..b9fd5fd32a 100644 --- a/apps/browser/src/_locales/nb/messages.json +++ b/apps/browser/src/_locales/nb/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Logg inn" - }, "enterpriseSingleSignOn": { "message": "Bedriftsinnlogging (SSO)" }, @@ -1083,7 +1080,7 @@ "message": "1 GB med kryptert fillagring for filvedlegg." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Takk for at du støtter Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Og alt det for %price%/år!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Oppfriskning fullført" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/ne/messages.json b/apps/browser/src/_locales/ne/messages.json index 5503227cba..0700341d23 100644 --- a/apps/browser/src/_locales/ne/messages.json +++ b/apps/browser/src/_locales/ne/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Log in" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1083,7 +1080,7 @@ "message": "1 GB encrypted storage for file attachments." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/nl/messages.json b/apps/browser/src/_locales/nl/messages.json index 9f4cfc9888..1b29416c1f 100644 --- a/apps/browser/src/_locales/nl/messages.json +++ b/apps/browser/src/_locales/nl/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Rond het aanmaken van je account af met het instellen van een wachtwoord" }, - "login": { - "message": "Inloggen" - }, "enterpriseSingleSignOn": { "message": "Single sign-on voor bedrijven" }, @@ -1083,7 +1080,7 @@ "message": "1 GB versleutelde opslag voor bijlagen." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Noodtoegang" }, "premiumSignUpTwoStepOptions": { "message": "Eigen opties voor tweestapsaanmelding zoals YubiKey en Duo." @@ -1107,7 +1104,7 @@ "message": "Je kunt een Premium-abonnement aanschaffen in de webkluis op bitwarden.com. Wil je de website nu bezoeken?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "Je kunt Premium via je accountinstellingen in de Bitwarden-webapp kopen." }, "premiumCurrentMember": { "message": "Je bent Premium-lid!" @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Bedankt voor het ondersteunen van Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade naar premium en ontvang:" + }, "premiumPrice": { "message": "Dit alles voor slechts $PRICE$ per jaar!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Dit alles voor slechts $PRICE$ per jaar!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Bijwerken voltooid" }, @@ -2305,11 +2314,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSendSuccessfully": { - "message": "Send created successfully!", + "message": "Send succesvol aangemaakt!", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { - "message": "The Send will be available to anyone with the link for the next $DAYS$ days.", + "message": "De Send is de komende $DAYS$ dagen beschikbaar voor iedereen met de link.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "placeholders": { "days": { @@ -2319,7 +2328,7 @@ } }, "sendLinkCopied": { - "message": "Send link copied", + "message": "Send-link gekopieerd", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Automatisch invullen bij laden van pagina?" }, + "cardExpiredTitle": { + "message": "Verlopen kaart" + }, + "cardExpiredMessage": { + "message": "Als je het hebt vernieuwd, werk dan de informatie van de kaart bij" + }, "cardDetails": { "message": "Kaartgegevens" }, diff --git a/apps/browser/src/_locales/nn/messages.json b/apps/browser/src/_locales/nn/messages.json index 5503227cba..0700341d23 100644 --- a/apps/browser/src/_locales/nn/messages.json +++ b/apps/browser/src/_locales/nn/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Log in" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1083,7 +1080,7 @@ "message": "1 GB encrypted storage for file attachments." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/or/messages.json b/apps/browser/src/_locales/or/messages.json index 5503227cba..0700341d23 100644 --- a/apps/browser/src/_locales/or/messages.json +++ b/apps/browser/src/_locales/or/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Log in" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1083,7 +1080,7 @@ "message": "1 GB encrypted storage for file attachments." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/pl/messages.json b/apps/browser/src/_locales/pl/messages.json index 482f07671c..bded75e089 100644 --- a/apps/browser/src/_locales/pl/messages.json +++ b/apps/browser/src/_locales/pl/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Ukończ tworzenie konta poprzez ustawienie hasła" }, - "login": { - "message": "Zaloguj się" - }, "enterpriseSingleSignOn": { "message": "Logowanie jednokrotne" }, @@ -1083,7 +1080,7 @@ "message": "1 GB miejsca na zaszyfrowane załączniki." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Własnościowe opcje logowania dwuetapowego, takie jak YubiKey i Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Dziękujemy za wspieranie Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Wszystko to jedynie za $PRICE$ /rok!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Odświeżanie zostało zakończone" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Włącz autouzupełnianie po załadowaniu strony?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Szczegóły karty" }, diff --git a/apps/browser/src/_locales/pt_BR/messages.json b/apps/browser/src/_locales/pt_BR/messages.json index e7d20057c9..7829d7a59a 100644 --- a/apps/browser/src/_locales/pt_BR/messages.json +++ b/apps/browser/src/_locales/pt_BR/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Termine de criar a sua conta definindo uma senha" }, - "login": { - "message": "Iniciar Sessão" - }, "enterpriseSingleSignOn": { "message": "Iniciar Sessão Empresarial Única" }, @@ -1083,7 +1080,7 @@ "message": "1 GB de armazenamento de arquivos encriptados." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Opções de login em duas etapas como YubiKey e Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Obrigado por apoiar o Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Tudo por apenas %price% /ano!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Atualização completa" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Preenchimento automático ao carregar a página?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Detalhes do cartão" }, diff --git a/apps/browser/src/_locales/pt_PT/messages.json b/apps/browser/src/_locales/pt_PT/messages.json index f08f0875a9..a40029dc1a 100644 --- a/apps/browser/src/_locales/pt_PT/messages.json +++ b/apps/browser/src/_locales/pt_PT/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Termine a criação da sua conta definindo uma palavra-passe" }, - "login": { - "message": "Iniciar sessão" - }, "enterpriseSingleSignOn": { "message": "Início de sessão único para empresas" }, @@ -1083,7 +1080,7 @@ "message": "1 GB de armazenamento encriptado para anexos de ficheiros." }, "premiumSignUpEmergency": { - "message": "Acesso de emergência" + "message": "Acesso de emergência." }, "premiumSignUpTwoStepOptions": { "message": "Opções proprietárias de verificação de dois passos, como YubiKey e Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Obrigado por apoiar o Bitwarden." }, + "premiumFeatures": { + "message": "Atualize para o Premium e receba:" + }, "premiumPrice": { "message": "Tudo por apenas $PRICE$ /ano!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Tudo por apenas $PRICE$ por ano!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Atualização concluída" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Preencher automaticamente ao carregar a página?" }, + "cardExpiredTitle": { + "message": "Cartão expirado" + }, + "cardExpiredMessage": { + "message": "Se o renovou, atualize as informações do cartão" + }, "cardDetails": { "message": "Detalhes do cartão" }, diff --git a/apps/browser/src/_locales/ro/messages.json b/apps/browser/src/_locales/ro/messages.json index 2359101274..2c0a570161 100644 --- a/apps/browser/src/_locales/ro/messages.json +++ b/apps/browser/src/_locales/ro/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finalizați crearea contului prin setarea unei parole" }, - "login": { - "message": "Conectare" - }, "enterpriseSingleSignOn": { "message": "Conectare unică organizație" }, @@ -1083,7 +1080,7 @@ "message": "1 GB spațiu de stocare criptat pentru atașamente de fișiere." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Opțiuni brevetate de conectare cu doi factori, cum ar fi YubiKey și Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Vă mulțumim pentru susținerea Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Totul pentru doar %price% /an!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Actualizare completă" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/ru/messages.json b/apps/browser/src/_locales/ru/messages.json index 67bbdb3f43..f115aa8032 100644 --- a/apps/browser/src/_locales/ru/messages.json +++ b/apps/browser/src/_locales/ru/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Завершите создание аккаунта, задав пароль" }, - "login": { - "message": "Войти" - }, "enterpriseSingleSignOn": { "message": "Единая корпоративная авторизация" }, @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Благодарим вас за поддержку Bitwarden." }, + "premiumFeatures": { + "message": "Перейдите на Премиум и получите:" + }, "premiumPrice": { "message": "Всего лишь $PRICE$ в год!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Всего лишь $PRICE$ в год!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Обновление завершено" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Автозаполнение при загрузке страницы?" }, + "cardExpiredTitle": { + "message": "Истек срок действия карты" + }, + "cardExpiredMessage": { + "message": "Если вы заменили карту, обновите информацию о ней" + }, "cardDetails": { "message": "Реквизиты карты" }, diff --git a/apps/browser/src/_locales/si/messages.json b/apps/browser/src/_locales/si/messages.json index 5c5cb238ab..02ff1f43a3 100644 --- a/apps/browser/src/_locales/si/messages.json +++ b/apps/browser/src/_locales/si/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "පිවිසෙන්න" - }, "enterpriseSingleSignOn": { "message": "ව්යවසාය තනි සංඥා මත" }, @@ -1083,7 +1080,7 @@ "message": "ගොනු ඇමුණුම් සඳහා 1 GB සංකේතාත්මක ගබඩා." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "බිට්වර්ඩන්ට සහාය වීම ගැන ස්තූතියි." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "සියල්ල $PRICE$ /අවුරුද්ද සඳහා!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "සම්පූර්ණ නැවුම් කරන්න" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/sk/messages.json b/apps/browser/src/_locales/sk/messages.json index 85e80156e6..ef4f60b0c5 100644 --- a/apps/browser/src/_locales/sk/messages.json +++ b/apps/browser/src/_locales/sk/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Zdajte heslo na vytvorenie účtu" }, - "login": { - "message": "Prihlásiť sa" - }, "enterpriseSingleSignOn": { "message": "Jednotné prihlásenie pre podniky (SSO)" }, @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Ďakujeme, že podporujete Bitwarden." }, + "premiumFeatures": { + "message": "Povýšte na premium a získajte:" + }, "premiumPrice": { "message": "Všetko len za %price% /rok!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Všetko len za $PRICE$ ročne!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Obnova kompletná" }, @@ -2309,7 +2318,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { - "message": "Send bude k dispozícii každemu s odkazom po dobu $DAYS$ dní.", + "message": "Send bude k dispozícii každému s odkazom po dobu $DAYS$ dní.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "placeholders": { "days": { @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Automaticky vyplniť pri načítaní stránky?" }, + "cardExpiredTitle": { + "message": "Exspirovaná karta" + }, + "cardExpiredMessage": { + "message": "Ak ste kartu obnovili, aktualizujte jej údaje" + }, "cardDetails": { "message": "Podrobnosti o karte" }, diff --git a/apps/browser/src/_locales/sl/messages.json b/apps/browser/src/_locales/sl/messages.json index 19fb63eca7..f32fbca0a1 100644 --- a/apps/browser/src/_locales/sl/messages.json +++ b/apps/browser/src/_locales/sl/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Prijavi se" - }, "enterpriseSingleSignOn": { "message": "Enkratna podjetniška prijava." }, @@ -1083,7 +1080,7 @@ "message": "1 GB šifriranega prostora za shrambo podatkov." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Hvala, ker podpirate Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Vse za samo $PRICE$ /leto!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Osveževanje zaključeno" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/sr/messages.json b/apps/browser/src/_locales/sr/messages.json index ec6b5e98b8..5cd284196f 100644 --- a/apps/browser/src/_locales/sr/messages.json +++ b/apps/browser/src/_locales/sr/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Завршите креирање налога постављањем лозинке" }, - "login": { - "message": "Пријавите се" - }, "enterpriseSingleSignOn": { "message": "Enterprise Једна Пријава" }, @@ -1083,7 +1080,7 @@ "message": "1ГБ шифровано складиште за прилоге." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Приоритарне опције пријаве у два корака као што су YubiKey и Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Хвала Вам за подршку Bitwarden-а." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Све за само $PRICE$ годишње!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Освежавање је завршено" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Ауто-попуњавање при учитавању странице?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Детаљи картице" }, diff --git a/apps/browser/src/_locales/sv/messages.json b/apps/browser/src/_locales/sv/messages.json index e0265494f1..b4b4a0adf2 100644 --- a/apps/browser/src/_locales/sv/messages.json +++ b/apps/browser/src/_locales/sv/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Logga in" - }, "enterpriseSingleSignOn": { "message": "Single Sign-On för företag" }, @@ -1083,7 +1080,7 @@ "message": "1 GB lagring av krypterade filer." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Nödåtkomst" }, "premiumSignUpTwoStepOptions": { "message": "Premium-alternativ för tvåstegsverifiering, såsom YubiKey och Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Tack för att du stödjer Bitwarden." }, + "premiumFeatures": { + "message": "Uppgradera till Premium och få:" + }, "premiumPrice": { "message": "Allt för endast $PRICE$/år!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Allt för endast $PRICE$ per år!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Uppdatering färdig" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/te/messages.json b/apps/browser/src/_locales/te/messages.json index 5503227cba..0700341d23 100644 --- a/apps/browser/src/_locales/te/messages.json +++ b/apps/browser/src/_locales/te/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "Log in" - }, "enterpriseSingleSignOn": { "message": "Enterprise single sign-on" }, @@ -1083,7 +1080,7 @@ "message": "1 GB encrypted storage for file attachments." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/th/messages.json b/apps/browser/src/_locales/th/messages.json index 3ce8155e8e..f630cc928e 100644 --- a/apps/browser/src/_locales/th/messages.json +++ b/apps/browser/src/_locales/th/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "เข้าสู่ระบบ" - }, "enterpriseSingleSignOn": { "message": "Enterprise Single Sign-On" }, @@ -1083,7 +1080,7 @@ "message": "1 GB of encrypted file storage." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Proprietary two-step login options such as YubiKey and Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Thank you for supporting bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "All for just $PRICE$ /year!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Refresh complete" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, diff --git a/apps/browser/src/_locales/tr/messages.json b/apps/browser/src/_locales/tr/messages.json index 045ca1057f..776d098664 100644 --- a/apps/browser/src/_locales/tr/messages.json +++ b/apps/browser/src/_locales/tr/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Parolanızı belirleyerek hesabınızı oluşturmayı tamamlayın" }, - "login": { - "message": "Giriş yap" - }, "enterpriseSingleSignOn": { "message": "Kurumsal tek oturum açma (SSO)" }, @@ -1083,7 +1080,7 @@ "message": "Dosya ekleri için 1 GB şifrelenmiş depolama." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Acil durum erişimi" }, "premiumSignUpTwoStepOptions": { "message": "YubiKey ve Duo gibi marka bazlı iki aşamalı giriş seçenekleri." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Bitwarden'ı desteklediğiniz için teşekkür ederiz." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Bunların hepsi sadece yılda $PRICE$!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Yenileme tamamlandı" }, @@ -3311,7 +3320,7 @@ "message": "Error connecting with the Duo service. Use a different two-step login method or contact Duo for assistance." }, "launchDuoAndFollowStepsToFinishLoggingIn": { - "message": "Duo'yu başlatın ve oturum açmayı tamamlamak için adımları izleyin." + "message": "Duo'yu açın ve girişi tamamlamak için adımları izleyin." }, "duoRequiredForAccount": { "message": "Hesabınız için Duo iki adımlı giriş gereklidir." @@ -3323,7 +3332,7 @@ "message": "Uzantıyı dışarı al" }, "launchDuo": { - "message": "Duo'yu başlat" + "message": "Duo'yu aç" }, "importFormatError": { "message": "Veriler doğru biçimlendirilmemiş. Lütfen içe aktarma dosyanızı kontrol edin ve tekrar deneyin." @@ -3557,7 +3566,7 @@ "message": "konum" }, "useDeviceOrHardwareKey": { - "message": "Cihazınızı veya donanımsal anahtarınızı kullanın" + "message": "Cihazımı veya anahtar donanımımı kullanacağım" }, "justOnce": { "message": "Yalnızca bir defa" @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Sayfa yüklendiğinde otomatik doldur" }, + "cardExpiredTitle": { + "message": "Kartın süresi dolmuş" + }, + "cardExpiredMessage": { + "message": "Kartı yenilediyseniz kart bilgilerini güncelleyin" + }, "cardDetails": { "message": "Kart bilgileri" }, diff --git a/apps/browser/src/_locales/uk/messages.json b/apps/browser/src/_locales/uk/messages.json index b351a39bfa..97158d37e4 100644 --- a/apps/browser/src/_locales/uk/messages.json +++ b/apps/browser/src/_locales/uk/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Завершіть створення облікового запису, встановивши пароль" }, - "login": { - "message": "Увійти" - }, "enterpriseSingleSignOn": { "message": "Єдиний корпоративний вхід (SSO)" }, @@ -1083,7 +1080,7 @@ "message": "1 ГБ зашифрованого сховища для файлів." }, "premiumSignUpEmergency": { - "message": "Екстрений доступ" + "message": "Екстрений доступ." }, "premiumSignUpTwoStepOptions": { "message": "Додаткові можливості двоетапної авторизації, як-от YubiKey та Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Дякуємо за підтримку Bitwarden." }, + "premiumFeatures": { + "message": "Передплатіть преміум та отримайте:" + }, "premiumPrice": { "message": "Всього лише $PRICE$ / за рік!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "Усе лише за $PRICE$ на рік!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Оновлення завершено" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Автоматично заповнювати під час завантаження сторінки?" }, + "cardExpiredTitle": { + "message": "Протермінована картка" + }, + "cardExpiredMessage": { + "message": "Якщо ви її поновили, оновіть інформацію" + }, "cardDetails": { "message": "Подробиці картки" }, diff --git a/apps/browser/src/_locales/vi/messages.json b/apps/browser/src/_locales/vi/messages.json index d61e8941ee..77d8a9de14 100644 --- a/apps/browser/src/_locales/vi/messages.json +++ b/apps/browser/src/_locales/vi/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Hoàn thành việc tạo tài khoản của bạn bằng cách đặt mật khẩu" }, - "login": { - "message": "Đăng nhập" - }, "enterpriseSingleSignOn": { "message": "Đăng nhập bằng tài khoản tổ chức" }, @@ -1083,7 +1080,7 @@ "message": "1GB bộ nhớ lưu trữ được mã hóa cho các tệp đính kèm." }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "Các tùy chọn xác minh hai bước như YubiKey và Duo." @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "Cảm ơn bạn vì đã hỗ trợ Bitwarden." }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "Tất cả chỉ với $PRICE$/năm!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "Làm mới hoàn tất" }, @@ -1450,7 +1459,7 @@ "message": "Thương hiệu" }, "expirationMonth": { - "message": "Tháng Hết Hạn" + "message": "Tháng hết hạn" }, "expirationYear": { "message": "Năm hết hạn" @@ -1976,16 +1985,16 @@ "message": "Mật khẩu chính bạn chọn không đáp ứng yêu cầu." }, "receiveMarketingEmailsV2": { - "message": "Nhận lời khuyên, thông báo và cơ hội nghiên cứu từ Bitwarden trong hộp thư đến của bạn." + "message": "Nhận đề xuất, thông báo và cơ hội nghiên cứu từ Bitwarden trong hộp thư đến của bạn." }, "unsubscribe": { - "message": "Huỷ đăng ký" + "message": "Hủy đăng ký" }, "atAnyTime": { "message": "bất cứ lúc nào." }, "byContinuingYouAgreeToThe": { - "message": "Bằng cách tiếp tục, bạn đồng ý" + "message": "Nếu tiếp tục, bạn đồng ý" }, "and": { "message": "và" @@ -2490,7 +2499,7 @@ "message": "Không tìm thấy danh tính duy nhất." }, "convertOrganizationEncryptionDesc": { - "message": "$ORGANIZATION$ hiện đang dùng SSO với khoá máy chủ tự lưu trữ. Từ giờ không cần mật khẩu chính để đăng nhập vào tổ chức này nữa.", + "message": "$ORGANIZATION$ đang sử dụng SSO với khóa máy chủ tự lưu trữ. Mật khẩu chính không còn cần để đăng nhập cho các thành viên của tổ chức này.", "placeholders": { "organization": { "content": "$1", @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Thông tin thẻ" }, diff --git a/apps/browser/src/_locales/zh_CN/messages.json b/apps/browser/src/_locales/zh_CN/messages.json index 5ae7d2cd2d..0fbedf2634 100644 --- a/apps/browser/src/_locales/zh_CN/messages.json +++ b/apps/browser/src/_locales/zh_CN/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "设置密码以完成账户的创建" }, - "login": { - "message": "登录" - }, "enterpriseSingleSignOn": { "message": "企业单点登录" }, @@ -1083,7 +1080,7 @@ "message": "1 GB 文件附件加密存储。" }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "紧急访问。" }, "premiumSignUpTwoStepOptions": { "message": "专有的两步登录选项,如 YubiKey 和 Duo。" @@ -1098,7 +1095,7 @@ "message": "优先客户支持。" }, "ppremiumSignUpFuture": { - "message": "未来会增加更多高级功能。敬请期待!" + "message": "未来的更多高级功能。敬请期待!" }, "premiumPurchase": { "message": "购买高级版" @@ -1107,7 +1104,7 @@ "message": "您可以在 bitwarden.com 网页版密码库购买高级会员。现在要访问吗?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "您可以在 Bitwarden 网页 App 的账户设置中购买高级版。" }, "premiumCurrentMember": { "message": "您目前是高级会员!" @@ -1115,8 +1112,20 @@ "premiumCurrentMemberThanks": { "message": "感谢您支持 Bitwarden。" }, + "premiumFeatures": { + "message": "升级到高级版并接收:" + }, "premiumPrice": { - "message": "只需 $PRICE$ /年!", + "message": "所有功能仅需 $PRICE$ /年!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "premiumPriceV2": { + "message": "所有功能仅需 $PRICE$ /年!", "placeholders": { "price": { "content": "$1", @@ -2305,11 +2314,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSendSuccessfully": { - "message": "Send created successfully!", + "message": "Send 创建成功!", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { - "message": "The Send will be available to anyone with the link for the next $DAYS$ days.", + "message": "在接下来的 $DAYS$ 天内,任何拥有链接的人都可以访问此 Send。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "placeholders": { "days": { @@ -2319,7 +2328,7 @@ } }, "sendLinkCopied": { - "message": "Send link copied", + "message": "Send 链接已复制", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "页面加载时自动填充吗?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "支付卡详情" }, diff --git a/apps/browser/src/_locales/zh_TW/messages.json b/apps/browser/src/_locales/zh_TW/messages.json index 945b712eef..a7a264ad47 100644 --- a/apps/browser/src/_locales/zh_TW/messages.json +++ b/apps/browser/src/_locales/zh_TW/messages.json @@ -25,9 +25,6 @@ "finishCreatingYourAccountBySettingAPassword": { "message": "Finish creating your account by setting a password" }, - "login": { - "message": "登入" - }, "enterpriseSingleSignOn": { "message": "企業單一登入" }, @@ -1083,7 +1080,7 @@ "message": "用於檔案附件的 1 GB 加密儲存空間。" }, "premiumSignUpEmergency": { - "message": "Emergency access" + "message": "Emergency access." }, "premiumSignUpTwoStepOptions": { "message": "專有的兩步驟登入選項,例如 YubiKey 和 Duo。" @@ -1115,6 +1112,9 @@ "premiumCurrentMemberThanks": { "message": "感謝您支持 Bitwarden 。" }, + "premiumFeatures": { + "message": "Upgrade to premium and receive:" + }, "premiumPrice": { "message": "每年只需 $PRICE$!", "placeholders": { @@ -1124,6 +1124,15 @@ } } }, + "premiumPriceV2": { + "message": "All for just $PRICE$ per year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, "refreshComplete": { "message": "狀態更新完成" }, @@ -3960,6 +3969,12 @@ "autoFillOnPageLoad": { "message": "Autofill on page load?" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "cardDetails": { "message": "Card details" }, From ade01c9d078613f6ba176209192238ffe59ee684 Mon Sep 17 00:00:00 2001 From: Shane Melton Date: Thu, 22 Aug 2024 07:40:32 -0700 Subject: [PATCH 08/40] [PM-8380] Browser Refresh - Virtual scrolling (#10646) * [PM-8380] Add option to disable content padding for popup page * [PM-8380] Add cdkVirtualScroll to vault list items and fixed item heights * [PM-8380] Move item height constants to item component --- .../popup/layout/popup-page.component.html | 3 +- .../popup/layout/popup-page.component.ts | 5 +- .../vault-list-items-container.component.html | 87 ++++++++++--------- .../vault-list-items-container.component.ts | 7 ++ .../components/vault/vault-v2.component.html | 6 +- .../components/vault/vault-v2.component.ts | 2 + libs/components/src/item/index.ts | 2 + libs/components/src/item/item.component.ts | 14 +++ 8 files changed, 79 insertions(+), 47 deletions(-) diff --git a/apps/browser/src/platform/popup/layout/popup-page.component.html b/apps/browser/src/platform/popup/layout/popup-page.component.html index cef86a3849..8a7bedf088 100644 --- a/apps/browser/src/platform/popup/layout/popup-page.component.html +++ b/apps/browser/src/platform/popup/layout/popup-page.component.html @@ -17,7 +17,8 @@ [ngClass]="{ 'tw-invisible': loading }" >
diff --git a/apps/browser/src/platform/popup/layout/popup-page.component.ts b/apps/browser/src/platform/popup/layout/popup-page.component.ts index 50db3e370f..7b4665040f 100644 --- a/apps/browser/src/platform/popup/layout/popup-page.component.ts +++ b/apps/browser/src/platform/popup/layout/popup-page.component.ts @@ -1,5 +1,5 @@ import { CommonModule } from "@angular/common"; -import { Component, Input, inject, signal } from "@angular/core"; +import { booleanAttribute, Component, inject, Input, signal } from "@angular/core"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; @@ -17,6 +17,9 @@ export class PopupPageComponent { @Input() loading = false; + @Input({ transform: booleanAttribute }) + disablePadding = false; + protected scrolled = signal(false); isScrolled = this.scrolled.asReadonly(); diff --git a/apps/browser/src/vault/popup/components/vault-v2/vault-list-items-container/vault-list-items-container.component.html b/apps/browser/src/vault/popup/components/vault-v2/vault-list-items-container/vault-list-items-container.component.html index 6ac793e4d4..e24723d583 100644 --- a/apps/browser/src/vault/popup/components/vault-v2/vault-list-items-container/vault-list-items-container.component.html +++ b/apps/browser/src/vault/popup/components/vault-v2/vault-list-items-container/vault-list-items-container.component.html @@ -17,47 +17,50 @@ {{ description }} - - - - {{ cipher.name }} - - - {{ cipher.subTitle }} - - - - - - - - - + + + + + {{ cipher.name }} + + + {{ cipher.subTitle }} + + + + + + + + + + diff --git a/apps/browser/src/vault/popup/components/vault-v2/vault-list-items-container/vault-list-items-container.component.ts b/apps/browser/src/vault/popup/components/vault-v2/vault-list-items-container/vault-list-items-container.component.ts index 0f5287af34..615d37cb60 100644 --- a/apps/browser/src/vault/popup/components/vault-v2/vault-list-items-container/vault-list-items-container.component.ts +++ b/apps/browser/src/vault/popup/components/vault-v2/vault-list-items-container/vault-list-items-container.component.ts @@ -1,3 +1,4 @@ +import { ScrollingModule } from "@angular/cdk/scrolling"; import { CommonModule } from "@angular/common"; import { booleanAttribute, Component, EventEmitter, Input, Output } from "@angular/core"; import { Router, RouterLink } from "@angular/router"; @@ -6,6 +7,8 @@ import { JslibModule } from "@bitwarden/angular/jslib.module"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { BadgeModule, + BitItemHeight, + BitItemHeightClass, ButtonModule, IconButtonModule, ItemModule, @@ -35,12 +38,16 @@ import { ItemMoreOptionsComponent } from "../item-more-options/item-more-options ItemCopyActionsComponent, ItemMoreOptionsComponent, OrgIconDirective, + ScrollingModule, ], selector: "app-vault-list-items-container", templateUrl: "vault-list-items-container.component.html", standalone: true, }) export class VaultListItemsContainerComponent { + protected ItemHeightClass = BitItemHeightClass; + protected ItemHeight = BitItemHeight; + /** * The list of ciphers to display. */ diff --git a/apps/browser/src/vault/popup/components/vault/vault-v2.component.html b/apps/browser/src/vault/popup/components/vault/vault-v2.component.html index 3279d28e93..e402e13143 100644 --- a/apps/browser/src/vault/popup/components/vault/vault-v2.component.html +++ b/apps/browser/src/vault/popup/components/vault/vault-v2.component.html @@ -1,4 +1,4 @@ - + @@ -54,7 +54,7 @@ - +
- +
diff --git a/apps/browser/src/vault/popup/components/vault/vault-v2.component.ts b/apps/browser/src/vault/popup/components/vault/vault-v2.component.ts index a2b778984d..c088626487 100644 --- a/apps/browser/src/vault/popup/components/vault/vault-v2.component.ts +++ b/apps/browser/src/vault/popup/components/vault/vault-v2.component.ts @@ -1,3 +1,4 @@ +import { ScrollingModule } from "@angular/cdk/scrolling"; import { CommonModule } from "@angular/common"; import { Component, OnDestroy, OnInit } from "@angular/core"; import { takeUntilDestroyed } from "@angular/core/rxjs-interop"; @@ -51,6 +52,7 @@ enum VaultState { RouterLink, VaultV2SearchComponent, NewItemDropdownV2Component, + ScrollingModule, ], providers: [VaultUiOnboardingService], }) diff --git a/libs/components/src/item/index.ts b/libs/components/src/item/index.ts index 56896cdc3c..3d65fdb8e0 100644 --- a/libs/components/src/item/index.ts +++ b/libs/components/src/item/index.ts @@ -1 +1,3 @@ export * from "./item.module"; + +export { BitItemHeight, BitItemHeightClass } from "./item.component"; diff --git a/libs/components/src/item/item.component.ts b/libs/components/src/item/item.component.ts index 4b7b57fa9f..58545a49b5 100644 --- a/libs/components/src/item/item.component.ts +++ b/libs/components/src/item/item.component.ts @@ -5,6 +5,20 @@ import { A11yRowDirective } from "../a11y/a11y-row.directive"; import { ItemActionComponent } from "./item-action.component"; +/** + * The class used to set the height of a bit item's inner content. + */ +export const BitItemHeightClass = `tw-h-[52px]`; + +/** + * The height of a bit item in pixels. Includes any margin, padding, or border. Used by the virtual scroll + * to estimate how many items can be displayed at once and how large the virtual container should be. + * Needs to be updated if the item height or spacing changes. + * + * 52px + 5.25px bottom margin + 1px border = 58.25px + */ +export const BitItemHeight = 58.25; // + @Component({ selector: "bit-item", standalone: true, From ed703b365855fddfe121034ea2e3dd5917c758c2 Mon Sep 17 00:00:00 2001 From: Vince Grassia <593223+vgrassia@users.noreply.github.com> Date: Thu, 22 Aug 2024 10:54:23 -0400 Subject: [PATCH 09/40] BRE-272 - Fix Publish Workflows and other misc workflow updates (#10676) --- .github/workflows/build-cli.yml | 26 ++++++------- .github/workflows/chromatic.yml | 3 +- .github/workflows/crowdin-pull.yml | 1 - .github/workflows/deploy-web.yml | 2 +- .github/workflows/publish-cli.yml | 46 +++++++++++++--------- .github/workflows/publish-desktop.yml | 55 ++++++++++++++++----------- .github/workflows/publish-web.yml | 20 +++++----- .github/workflows/release-desktop.yml | 2 +- .github/workflows/scan.yml | 3 +- .github/workflows/test.yml | 3 +- 10 files changed, 91 insertions(+), 70 deletions(-) diff --git a/.github/workflows/build-cli.yml b/.github/workflows/build-cli.yml index ad2ac53971..1f1b9936bf 100644 --- a/.github/workflows/build-cli.yml +++ b/.github/workflows/build-cli.yml @@ -65,15 +65,15 @@ jobs: strategy: matrix: os: - [ - { base: "linux", distro: "ubuntu-22.04" }, - { base: "mac", distro: "macos-13" } - ] + [ + { base: "linux", distro: "ubuntu-22.04" }, + { base: "mac", distro: "macos-13" } + ] license_type: - [ - { build_prefix: "oss", artifact_prefix: "-oss", readable: "open source license" }, - { build_prefix: "bit", artifact_prefix: "", readable: "commercial license"} - ] + [ + { build_prefix: "oss", artifact_prefix: "-oss", readable: "open source license" }, + { build_prefix: "bit", artifact_prefix: "", readable: "commercial license" } + ] runs-on: ${{ matrix.os.distro }} needs: - setup @@ -148,10 +148,10 @@ jobs: strategy: matrix: license_type: - [ - { build_prefix: "oss", artifact_prefix: "-oss", readable: "open source license" }, - { build_prefix: "bit", artifact_prefix: "", readable: "commercial license"} - ] + [ + { build_prefix: "oss", artifact_prefix: "-oss", readable: "open source license" }, + { build_prefix: "bit", artifact_prefix: "", readable: "commercial license" } + ] runs-on: windows-2022 needs: - setup @@ -241,7 +241,7 @@ jobs: - name: Package Chocolatey shell: pwsh - if: ${{ matrix.license_type.build_prefix }} == 'bit' + if: ${{ matrix.license_type.build_prefix == 'bit' }} run: | Copy-Item -Path stores/chocolatey -Destination dist/chocolatey -Recurse Copy-Item dist/${{ matrix.license_type.build_prefix }}/windows/bw.exe -Destination dist/chocolatey/tools diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index f422c3560e..9ae2db7244 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -1,3 +1,4 @@ +--- name: Chromatic on: @@ -13,7 +14,7 @@ jobs: check-run: name: Check PR run uses: bitwarden/gh-actions/.github/workflows/check-run.yml@main - + chromatic: name: Chromatic runs-on: ubuntu-22.04 diff --git a/.github/workflows/crowdin-pull.yml b/.github/workflows/crowdin-pull.yml index b6c2e27646..1f5df5a66c 100644 --- a/.github/workflows/crowdin-pull.yml +++ b/.github/workflows/crowdin-pull.yml @@ -59,4 +59,3 @@ jobs: working_directory: apps/${{ matrix.app_name }} gpg_private_key: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key }} gpg_passphrase: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key-passphrase }} - diff --git a/.github/workflows/deploy-web.yml b/.github/workflows/deploy-web.yml index 5aa92c4dd8..27475709b6 100644 --- a/.github/workflows/deploy-web.yml +++ b/.github/workflows/deploy-web.yml @@ -7,7 +7,7 @@ on: inputs: environment: description: 'Environment' - default: 'QA' + default: 'USQA' type: choice options: - USQA diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 3f9eb7b2e4..a7bb9ae8df 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -35,40 +35,45 @@ on: default: true type: boolean - -defaults: - run: - working-directory: apps/cli - jobs: setup: name: Setup runs-on: ubuntu-22.04 outputs: release-version: ${{ steps.version-output.outputs.version }} - deployment-id: ${{ steps.deployment.outputs.deployment-id }} + deployment-id: ${{ steps.deployment.outputs.deployment_id }} steps: + - name: Branch check + if: ${{ inputs.publish_type != 'Dry Run' }} + run: | + if [[ "$GITHUB_REF" != "refs/heads/rc" ]] && [[ "$GITHUB_REF" != "refs/heads/hotfix-rc-cli" ]]; then + echo "===================================" + echo "[!] Can only publish from the 'rc' or 'hotfix-rc-cli' branches" + echo "===================================" + exit 1 + fi + - name: Version output id: version-output run: | - if [[ "${{ github.event.inputs.version }}" == "latest" || "${{ github.event.inputs.version }}" == "" ]]; then + if [[ "${{ inputs.version }}" == "latest" || "${{ inputs.version }}" == "" ]]; then VERSION=$(curl "https://api.github.com/repos/bitwarden/clients/releases" | jq -c '.[] | select(.tag_name | contains("cli")) | .tag_name' | head -1 | grep -ohE '20[0-9]{2}\.([1-9]|1[0-2])\.[0-9]+') echo "Latest Released Version: $VERSION" - echo "::set-output name=version::$VERSION" + echo "version=$VERSION" >> $GITHUB_OUTPUT else - echo "Release Version: ${{ github.event.inputs.version }}" - echo "::set-output name=version::${{ github.event.inputs.version }}" + echo "Release Version: ${{ inputs.version }}" + echo "version=${{ inputs.version }}" >> $GITHUB_OUTPUT fi - name: Create GitHub deployment - if: ${{ github.event.inputs.release_type != 'Dry Run' }} + if: ${{ inputs.publish_type != 'Dry Run' }} uses: chrnorm/deployment-action@55729fcebec3d284f60f5bcabbd8376437d696b1 # v2.0.7 id: deployment with: token: '${{ secrets.GITHUB_TOKEN }}' initial-status: 'in_progress' environment: 'CLI - Production' - description: 'Deployment ${{ steps.version.outputs.version }} from branch ${{ github.ref_name }}' + description: 'Deployment ${{ steps.version-output.outputs.version }} from branch ${{ github.ref_name }}' task: release snap: @@ -78,6 +83,9 @@ jobs: if: inputs.snap_publish env: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} + defaults: + run: + working-directory: apps/cli steps: - name: Checkout repo uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 @@ -101,7 +109,7 @@ jobs: run: wget https://github.com/bitwarden/clients/releases/cli-v${{ env._PKG_VERSION }}/download/bw_${{ env._PKG_VERSION }}_amd64.snap - name: Publish Snap & logout - if: ${{ github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ inputs.publish_type != 'Dry Run' }} env: SNAPCRAFT_STORE_CREDENTIALS: ${{ steps.retrieve-secrets.outputs.snapcraft-store-token }} run: | @@ -144,7 +152,7 @@ jobs: run: wget https://github.com/bitwarden/clients/releases/cli-v${{ env._PKG_VERSION }}/download/bitwarden-cli.${{ env._PKG_VERSION }}.nupkg - name: Push to Chocolatey - if: ${{ github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ inputs.publish_type != 'Dry Run' }} shell: pwsh run: | cd dist @@ -187,7 +195,7 @@ jobs: run: npm install -g husky - name: Publish NPM - if: ${{ github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ inputs.publish_type != 'Dry Run' }} run: npm publish --access public --regsitry=https://registry.npmjs.org/ --userconfig=./.npmrc update-deployment: @@ -198,14 +206,14 @@ jobs: - npm - snap - choco - if: ${{ always() && github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ always() && inputs.publish_type != 'Dry Run' }} steps: - name: Check if any job failed if: contains(needs.*.result, 'failure') run: exit 1 - name: Update deployment status to Success - if: ${{ github.event.inputs.release_type != 'Dry Run' && success() }} + if: ${{ inputs.publish_type != 'Dry Run' && success() }} uses: chrnorm/deployment-status@9a72af4586197112e0491ea843682b5dc280d806 # v2.0.3 with: token: '${{ secrets.GITHUB_TOKEN }}' @@ -213,9 +221,9 @@ jobs: deployment-id: ${{ needs.setup.outputs.deployment-id }} - name: Update deployment status to Failure - if: ${{ github.event.inputs.release_type != 'Dry Run' && failure() }} + if: ${{ inputs.publish_type != 'Dry Run' && failure() }} uses: chrnorm/deployment-status@9a72af4586197112e0491ea843682b5dc280d806 # v2.0.3 with: token: '${{ secrets.GITHUB_TOKEN }}' state: 'failure' - deployment-id: ${{ needs.setup.outputs.deployment-id }} \ No newline at end of file + deployment-id: ${{ needs.setup.outputs.deployment-id }} diff --git a/.github/workflows/publish-desktop.yml b/.github/workflows/publish-desktop.yml index 2c4e467bc2..0554270645 100644 --- a/.github/workflows/publish-desktop.yml +++ b/.github/workflows/publish-desktop.yml @@ -49,25 +49,35 @@ jobs: tag-name: ${{ steps.version.outputs.tag_name }} deployment-id: ${{ steps.deployment.outputs.deployment_id }} steps: + - name: Branch check + if: ${{ inputs.publish_type != 'Dry Run' }} + run: | + if [[ "$GITHUB_REF" != "refs/heads/rc" ]] && [[ "$GITHUB_REF" != "refs/heads/hotfix-rc-desktop" ]]; then + echo "===================================" + echo "[!] Can only publish from the 'rc' or 'hotfix-rc-desktop' branches" + echo "===================================" + exit 1 + fi + - name: Check Publish Version id: version run: | - if [[ "${{ github.event.inputs.version }}" == "latest" || "${{ github.event.inputs.version }}" == "" ]]; then + if [[ "${{ inputs.version }}" == "latest" || "${{ inputs.version }}" == "" ]]; then TAG_NAME=$(curl "https://api.github.com/repos/bitwarden/clients/releases" | jq -c '.[] | select(.tag_name | contains("desktop")) | .tag_name' | head -1 | cut -d '"' -f 2) VERSION=$(echo $TAG_NAME | sed "s/desktop-v//") echo "Latest Released Version: $VERSION" - echo "::set-output name=version::$VERSION" + echo "version=$VERSION" >> $GITHUB_OUTPUT echo "Tag name: $TAG_NAME" - echo "::set-output name=tag_name::$TAG_NAME" + echo "tag_name=$TAG_NAME" >> $GITHUB_OUTPUT else - echo "Release Version: ${{ github.event.inputs.version }}" - echo "::set-output name=version::${{ github.event.inputs.version }}" + echo "Release Version: ${{ inputs.version }}" + echo "version=${{ inputs.version }}" - $TAG_NAME="desktop-v${{ github.event.inputs.version }}" + $TAG_NAME="desktop-v${{ inputs.version }}" echo "Tag name: $TAG_NAME" - echo "::set-output name=tag_name::$TAG_NAME" + echo "tag_name=$TAG_NAME" >> $GITHUB_OUTPUT fi - name: Get Version Channel @@ -88,7 +98,7 @@ jobs: esac - name: Create GitHub deployment - if: ${{ github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ inputs.publish_type != 'Dry Run' }} uses: chrnorm/deployment-action@55729fcebec3d284f60f5bcabbd8376437d696b1 # v2.0.7 id: deployment with: @@ -101,6 +111,7 @@ jobs: electron-blob: name: Electron blob publish runs-on: ubuntu-22.04 + needs: setup env: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} _RELEASE_TAG: ${{ needs.setup.outputs.tag-name }} @@ -120,7 +131,7 @@ jobs: aws-electron-bucket-name" - name: Download all artifacts - if: ${{ github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ inputs.publish_type != 'Dry Run' }} uses: bitwarden/gh-actions/download-artifacts@main with: workflow: build-desktop.yml @@ -134,7 +145,7 @@ jobs: - name: Set staged rollout percentage env: - RELEASE_CHANNEL: ${{ steps.release-channel.outputs.channel }} + RELEASE_CHANNEL: ${{ needs.setup.outputs.release-channel }} ROLLOUT_PCT: ${{ inputs.rollout_percentage }} run: | echo "stagingPercentage: ${ROLLOUT_PCT}" >> apps/desktop/artifacts/${RELEASE_CHANNEL}.yml @@ -142,7 +153,7 @@ jobs: echo "stagingPercentage: ${ROLLOUT_PCT}" >> apps/desktop/artifacts/${RELEASE_CHANNEL}-mac.yml - name: Publish artifacts to S3 - if: ${{ github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ inputs.publish_type != 'Dry Run' }} env: AWS_ACCESS_KEY_ID: ${{ steps.retrieve-secrets.outputs.aws-electron-access-id }} AWS_SECRET_ACCESS_KEY: ${{ steps.retrieve-secrets.outputs.aws-electron-access-key }} @@ -156,26 +167,26 @@ jobs: --quiet - name: Update deployment status to Success - if: ${{ github.event.inputs.publish_type != 'Dry Run' && success() }} + if: ${{ inputs.publish_type != 'Dry Run' && success() }} uses: chrnorm/deployment-status@9a72af4586197112e0491ea843682b5dc280d806 # v2.0.3 with: token: '${{ secrets.GITHUB_TOKEN }}' state: 'success' - deployment-id: ${{ steps.deployment.outputs.deployment_id }} + deployment-id: ${{ needs.setup.outputs.deployment-id }} - name: Update deployment status to Failure - if: ${{ github.event.inputs.publish_type != 'Dry Run' && failure() }} + if: ${{ inputs.publish_type != 'Dry Run' && failure() }} uses: chrnorm/deployment-status@9a72af4586197112e0491ea843682b5dc280d806 # v2.0.3 with: token: '${{ secrets.GITHUB_TOKEN }}' state: 'failure' - deployment-id: ${{ steps.deployment.outputs.deployment_id }} + deployment-id: ${{ needs.setup.outputs.deployment-id }} snap: name: Deploy Snap runs-on: ubuntu-22.04 needs: setup - if: ${{ github.event.inputs.snap_publish == 'true' }} + if: ${{ inputs.snap_publish == 'true' }} env: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} _RELEASE_TAG: ${{ needs.setup.outputs.tag-name }} @@ -207,7 +218,7 @@ jobs: run: wget https://github.com/bitwarden/clients/releases/${{ env._RELEASE_TAG }}/download/bitwarden_${{ env._PKG_VERSION }}_amd64.snap - name: Deploy to Snap Store - if: ${{ github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ inputs.publish_type != 'Dry Run' }} env: SNAPCRAFT_STORE_CREDENTIALS: ${{ steps.retrieve-secrets.outputs.snapcraft-store-token }} run: | @@ -219,7 +230,7 @@ jobs: name: Deploy Choco runs-on: windows-2022 needs: setup - if: ${{ github.event.inputs.choco_publish == 'true' }} + if: ${{ inputs.choco_publish == 'true' }} env: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} _RELEASE_TAG: ${{ needs.setup.outputs.tag-name }} @@ -260,7 +271,7 @@ jobs: run: wget https://github.com/bitwarden/clients/releases/${{ env._RELEASE_TAG }}/download/bitwarden.${{ env._PKG_VERSION }}.nupkg - name: Push to Chocolatey - if: ${{ github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ inputs.publish_type != 'Dry Run' }} shell: pwsh run: choco push --source=https://push.chocolatey.org/ working-directory: apps/desktop/dist @@ -273,14 +284,14 @@ jobs: - electron-blob - snap - choco - if: ${{ always() && github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ always() && inputs.publish_type != 'Dry Run' }} steps: - name: Check if any job failed if: contains(needs.*.result, 'failure') run: exit 1 - name: Update deployment status to Success - if: ${{ github.event.inputs.release_type != 'Dry Run' && success() }} + if: ${{ inputs.publish_type != 'Dry Run' && success() }} uses: chrnorm/deployment-status@9a72af4586197112e0491ea843682b5dc280d806 # v2.0.3 with: token: '${{ secrets.GITHUB_TOKEN }}' @@ -288,7 +299,7 @@ jobs: deployment-id: ${{ needs.setup.outputs.deployment-id }} - name: Update deployment status to Failure - if: ${{ github.event.inputs.release_type != 'Dry Run' && failure() }} + if: ${{ inputs.publish_type != 'Dry Run' && failure() }} uses: chrnorm/deployment-status@9a72af4586197112e0491ea843682b5dc280d806 # v2.0.3 with: token: '${{ secrets.GITHUB_TOKEN }}' diff --git a/.github/workflows/publish-web.yml b/.github/workflows/publish-web.yml index 733e3945e5..c22bcdc370 100644 --- a/.github/workflows/publish-web.yml +++ b/.github/workflows/publish-web.yml @@ -30,11 +30,11 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Branch check - if: ${{ github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ inputs.publish_type != 'Dry Run' }} run: | if [[ "$GITHUB_REF" != "refs/heads/rc" ]] && [[ "$GITHUB_REF" != "refs/heads/hotfix-rc-web" ]]; then echo "===================================" - echo "[!] Can only release from the 'rc' or 'hotfix-rc-web' branches" + echo "[!] Can only publish from the 'rc' or 'hotfix-rc-web' branches" echo "===================================" exit 1 fi @@ -43,7 +43,7 @@ jobs: id: version uses: bitwarden/gh-actions/release-version-check@main with: - release-type: ${{ github.event.inputs.publish_type }} + release-type: ${{ inputs.publish_type }} project-type: ts file: apps/web/package.json monorepo: true @@ -56,7 +56,7 @@ jobs: env: _BRANCH_NAME: ${{ github.ref_name }} _RELEASE_VERSION: ${{ needs.setup.outputs.release_version }} - _RELEASE_OPTION: ${{ github.event.inputs.publish_type }} + _RELEASE_OPTION: ${{ inputs.publish_type }} steps: - name: Print environment run: | @@ -79,7 +79,7 @@ jobs: run: az acr login -n bitwardenprod - name: Create GitHub deployment - if: ${{ github.event.inputs.publish_type != 'Dry Run' }} + if: ${{ inputs.publish_type != 'Dry Run' }} uses: chrnorm/deployment-action@55729fcebec3d284f60f5bcabbd8376437d696b1 # v2.0.7 id: deployment with: @@ -92,7 +92,7 @@ jobs: - name: Pull branch image run: | - if [[ "${{ github.event.inputs.publish_type }}" == "Dry Run" ]]; then + if [[ "${{ inputs.publish_type }}" == "Dry Run" ]]; then docker pull $_AZ_REGISTRY/web:latest else docker pull $_AZ_REGISTRY/web:$_BRANCH_NAME @@ -100,7 +100,7 @@ jobs: - name: Tag version run: | - if [[ "${{ github.event.inputs.publish_type }}" == "Dry Run" ]]; then + if [[ "${{ inputs.publish_type }}" == "Dry Run" ]]; then docker tag $_AZ_REGISTRY/web:latest $_AZ_REGISTRY/web:dryrun docker tag $_AZ_REGISTRY/web:latest $_AZ_REGISTRY/web-sh:dryrun else @@ -112,7 +112,7 @@ jobs: - name: Push version run: | - if [[ "${{ github.event.inputs.publish_type }}" == "Dry Run" ]]; then + if [[ "${{ inputs.publish_type }}" == "Dry Run" ]]; then docker push $_AZ_REGISTRY/web:dryrun docker push $_AZ_REGISTRY/web-sh:dryrun else @@ -123,7 +123,7 @@ jobs: fi - name: Update deployment status to Success - if: ${{ github.event.inputs.publish_type != 'Dry Run' && success() }} + if: ${{ inputs.publish_type != 'Dry Run' && success() }} uses: chrnorm/deployment-status@9a72af4586197112e0491ea843682b5dc280d806 # v2.0.3 with: token: '${{ secrets.GITHUB_TOKEN }}' @@ -132,7 +132,7 @@ jobs: deployment-id: ${{ steps.deployment.outputs.deployment_id }} - name: Update deployment status to Failure - if: ${{ github.event.inputs.publish_type != 'Dry Run' && failure() }} + if: ${{ inputs.publish_type != 'Dry Run' && failure() }} uses: chrnorm/deployment-status@9a72af4586197112e0491ea843682b5dc280d806 # v2.0.3 with: token: '${{ secrets.GITHUB_TOKEN }}' diff --git a/.github/workflows/release-desktop.yml b/.github/workflows/release-desktop.yml index c9e1df9402..2fe7cb2b7a 100644 --- a/.github/workflows/release-desktop.yml +++ b/.github/workflows/release-desktop.yml @@ -98,7 +98,7 @@ jobs: - name: Create Release uses: ncipollo/release-action@2c591bcc8ecdcd2db72b97d6147f871fcd833ba5 # v1.14.0 - if: ${{ steps.release-channel.outputs.channel == 'latest' && github.event.inputs.release_type != 'Dry Run' && github.event.inputs.github_release == 'true' }} + if: ${{ steps.release-channel.outputs.channel == 'latest' && github.event.inputs.release_type != 'Dry Run' }} env: PKG_VERSION: ${{ steps.version.outputs.version }} RELEASE_CHANNEL: ${{ steps.release-channel.outputs.channel }} diff --git a/.github/workflows/scan.yml b/.github/workflows/scan.yml index f7d2004474..212795d3a2 100644 --- a/.github/workflows/scan.yml +++ b/.github/workflows/scan.yml @@ -1,3 +1,4 @@ +--- name: Scan on: @@ -31,7 +32,7 @@ jobs: ref: ${{ github.event.pull_request.head.sha }} - name: Scan with Checkmarx - uses: checkmarx/ast-github-action@749fec53e0db0f6404a97e2e0807c3e80e3583a7 #2.0.23 + uses: checkmarx/ast-github-action@749fec53e0db0f6404a97e2e0807c3e80e3583a7 # v2.0.23 env: INCREMENTAL: "${{ contains(github.event_name, 'pull_request') && '--sast-incremental' || '' }}" with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a4aa94a2ed..52928e9a04 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,3 +1,4 @@ +--- name: Testing on: @@ -37,7 +38,7 @@ jobs: checks: write contents: read pull-requests: write - + steps: - name: Check out repo uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 From fa1373295722b75d15b3eff131212a27e4c228a0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:09:02 +0000 Subject: [PATCH 10/40] Autosync the updated translations (#10675) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/web/src/locales/af/messages.json | 15 +++++++++++++++ apps/web/src/locales/ar/messages.json | 15 +++++++++++++++ apps/web/src/locales/az/messages.json | 15 +++++++++++++++ apps/web/src/locales/be/messages.json | 15 +++++++++++++++ apps/web/src/locales/bg/messages.json | 15 +++++++++++++++ apps/web/src/locales/bn/messages.json | 15 +++++++++++++++ apps/web/src/locales/bs/messages.json | 15 +++++++++++++++ apps/web/src/locales/ca/messages.json | 15 +++++++++++++++ apps/web/src/locales/cs/messages.json | 15 +++++++++++++++ apps/web/src/locales/cy/messages.json | 15 +++++++++++++++ apps/web/src/locales/da/messages.json | 15 +++++++++++++++ apps/web/src/locales/de/messages.json | 21 ++++++++++++++++++--- apps/web/src/locales/el/messages.json | 15 +++++++++++++++ apps/web/src/locales/en_GB/messages.json | 15 +++++++++++++++ apps/web/src/locales/en_IN/messages.json | 15 +++++++++++++++ apps/web/src/locales/eo/messages.json | 15 +++++++++++++++ apps/web/src/locales/es/messages.json | 15 +++++++++++++++ apps/web/src/locales/et/messages.json | 15 +++++++++++++++ apps/web/src/locales/eu/messages.json | 15 +++++++++++++++ apps/web/src/locales/fa/messages.json | 15 +++++++++++++++ apps/web/src/locales/fi/messages.json | 19 +++++++++++++++++-- apps/web/src/locales/fil/messages.json | 15 +++++++++++++++ apps/web/src/locales/fr/messages.json | 17 ++++++++++++++++- apps/web/src/locales/gl/messages.json | 15 +++++++++++++++ apps/web/src/locales/he/messages.json | 15 +++++++++++++++ apps/web/src/locales/hi/messages.json | 15 +++++++++++++++ apps/web/src/locales/hr/messages.json | 15 +++++++++++++++ apps/web/src/locales/hu/messages.json | 15 +++++++++++++++ apps/web/src/locales/id/messages.json | 15 +++++++++++++++ apps/web/src/locales/it/messages.json | 15 +++++++++++++++ apps/web/src/locales/ja/messages.json | 15 +++++++++++++++ apps/web/src/locales/ka/messages.json | 15 +++++++++++++++ apps/web/src/locales/km/messages.json | 15 +++++++++++++++ apps/web/src/locales/kn/messages.json | 15 +++++++++++++++ apps/web/src/locales/ko/messages.json | 15 +++++++++++++++ apps/web/src/locales/lv/messages.json | 15 +++++++++++++++ apps/web/src/locales/ml/messages.json | 15 +++++++++++++++ apps/web/src/locales/mr/messages.json | 15 +++++++++++++++ apps/web/src/locales/my/messages.json | 15 +++++++++++++++ apps/web/src/locales/nb/messages.json | 15 +++++++++++++++ apps/web/src/locales/ne/messages.json | 15 +++++++++++++++ apps/web/src/locales/nl/messages.json | 15 +++++++++++++++ apps/web/src/locales/nn/messages.json | 15 +++++++++++++++ apps/web/src/locales/or/messages.json | 15 +++++++++++++++ apps/web/src/locales/pl/messages.json | 15 +++++++++++++++ apps/web/src/locales/pt_BR/messages.json | 15 +++++++++++++++ apps/web/src/locales/pt_PT/messages.json | 15 +++++++++++++++ apps/web/src/locales/ro/messages.json | 15 +++++++++++++++ apps/web/src/locales/ru/messages.json | 15 +++++++++++++++ apps/web/src/locales/si/messages.json | 15 +++++++++++++++ apps/web/src/locales/sk/messages.json | 19 +++++++++++++++++-- apps/web/src/locales/sl/messages.json | 15 +++++++++++++++ apps/web/src/locales/sr/messages.json | 15 +++++++++++++++ apps/web/src/locales/sr_CS/messages.json | 15 +++++++++++++++ apps/web/src/locales/sv/messages.json | 19 +++++++++++++++++-- apps/web/src/locales/te/messages.json | 15 +++++++++++++++ apps/web/src/locales/th/messages.json | 15 +++++++++++++++ apps/web/src/locales/tr/messages.json | 15 +++++++++++++++ apps/web/src/locales/uk/messages.json | 15 +++++++++++++++ apps/web/src/locales/vi/messages.json | 17 ++++++++++++++++- apps/web/src/locales/zh_CN/messages.json | 23 +++++++++++++++++++---- apps/web/src/locales/zh_TW/messages.json | 15 +++++++++++++++ 62 files changed, 945 insertions(+), 15 deletions(-) diff --git a/apps/web/src/locales/af/messages.json b/apps/web/src/locales/af/messages.json index 0673b8bb76..2d80f8b5d7 100644 --- a/apps/web/src/locales/af/messages.json +++ b/apps/web/src/locales/af/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr." }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Vervalmaand" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Bekyk item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Nuut", "description": "for adding new items" diff --git a/apps/web/src/locales/ar/messages.json b/apps/web/src/locales/ar/messages.json index a946211ee0..cad9b5e655 100644 --- a/apps/web/src/locales/ar/messages.json +++ b/apps/web/src/locales/ar/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "د" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "شهر انتهاء الصَّلاحِيَة" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "عرض العنصر" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "جديد", "description": "for adding new items" diff --git a/apps/web/src/locales/az/messages.json b/apps/web/src/locales/az/messages.json index 6984d000ba..e6972df25d 100644 --- a/apps/web/src/locales/az/messages.json +++ b/apps/web/src/locales/az/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Son istifadə ayı" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Elementə bax" }, + "viewItemType": { + "message": "$ITEMTYPE$ - bax", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Yeni", "description": "for adding new items" diff --git a/apps/web/src/locales/be/messages.json b/apps/web/src/locales/be/messages.json index 6c20081ead..7c4a782c98 100644 --- a/apps/web/src/locales/be/messages.json +++ b/apps/web/src/locales/be/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Доктар" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Месяц завяршэння" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Прагледзець элемент" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Новы", "description": "for adding new items" diff --git a/apps/web/src/locales/bg/messages.json b/apps/web/src/locales/bg/messages.json index 199144bf6b..c847ccbf1f 100644 --- a/apps/web/src/locales/bg/messages.json +++ b/apps/web/src/locales/bg/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Д-р" }, + "cardExpiredTitle": { + "message": "Изтекла карта" + }, + "cardExpiredMessage": { + "message": "Ако сте я подновили, актуализирайте информацията за картата" + }, "expirationMonth": { "message": "Месец на изтичане" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Преглед на елемента" }, + "viewItemType": { + "message": "Преглед на $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Ново", "description": "for adding new items" diff --git a/apps/web/src/locales/bn/messages.json b/apps/web/src/locales/bn/messages.json index 290ded160b..b2232f425f 100644 --- a/apps/web/src/locales/bn/messages.json +++ b/apps/web/src/locales/bn/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "ডাঃ" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "মেয়াদোত্তীর্ণ মাস" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "বস্তু দেখুন" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/bs/messages.json b/apps/web/src/locales/bs/messages.json index 7e69e71d77..a4a301e0d4 100644 --- a/apps/web/src/locales/bs/messages.json +++ b/apps/web/src/locales/bs/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Mjesec Isteka" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Prikaz Stavke" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Novo", "description": "for adding new items" diff --git a/apps/web/src/locales/ca/messages.json b/apps/web/src/locales/ca/messages.json index f5b246a542..a252d27c98 100644 --- a/apps/web/src/locales/ca/messages.json +++ b/apps/web/src/locales/ca/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr." }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Mes de venciment" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Visualitza l'element" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Nou", "description": "for adding new items" diff --git a/apps/web/src/locales/cs/messages.json b/apps/web/src/locales/cs/messages.json index b003c625d8..e3575fd161 100644 --- a/apps/web/src/locales/cs/messages.json +++ b/apps/web/src/locales/cs/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "MUDr." }, + "cardExpiredTitle": { + "message": "Prošlá karta" + }, + "cardExpiredMessage": { + "message": "Pokud jste ji obnovili, aktualizujte informace o kartě" + }, "expirationMonth": { "message": "Měsíc expirace" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Zobrazit položku" }, + "viewItemType": { + "message": "Zobrazit $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Nový", "description": "for adding new items" diff --git a/apps/web/src/locales/cy/messages.json b/apps/web/src/locales/cy/messages.json index 82dad244d1..0cae6bcd6e 100644 --- a/apps/web/src/locales/cy/messages.json +++ b/apps/web/src/locales/cy/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Expiration month" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/da/messages.json b/apps/web/src/locales/da/messages.json index c958322042..b59571ae88 100644 --- a/apps/web/src/locales/da/messages.json +++ b/apps/web/src/locales/da/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr." }, + "cardExpiredTitle": { + "message": "Udløbet kort" + }, + "cardExpiredMessage": { + "message": "Er det blevet fornyet, opdatér venligst kortoplysningerne" + }, "expirationMonth": { "message": "Udløbsmåned" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Vis emne" }, + "viewItemType": { + "message": "Vis $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Nyt", "description": "for adding new items" diff --git a/apps/web/src/locales/de/messages.json b/apps/web/src/locales/de/messages.json index c5f48c6630..1519de5aea 100644 --- a/apps/web/src/locales/de/messages.json +++ b/apps/web/src/locales/de/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr." }, + "cardExpiredTitle": { + "message": "Abgelaufene Karte" + }, + "cardExpiredMessage": { + "message": "Wenn du die Karte erneuert hast, aktualisiere die Angaben zur Karte" + }, "expirationMonth": { "message": "Ablaufmonat" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Eintrag anzeigen" }, + "viewItemType": { + "message": "$ITEMTYPE$ anzeigen", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Neu", "description": "for adding new items" @@ -1514,11 +1529,11 @@ "message": "Daten importieren" }, "onboardingImportDataDetailsPartOne": { - "message": "Wenn du keine Daten zu importieren hast, kannst du stattdessen einen ", + "message": "Wenn du keine Daten zu importieren hast, kannst du stattdessen ", "description": "This will be part of a larger sentence, that will read like this: If you don't have any data to import, you can create a new item instead. (Optional second half: You may need to wait until your administrator confirms your organization membership.)" }, "onboardingImportDataDetailsLink": { - "message": "neuen Eintrag", + "message": "einen neuen Eintrag", "description": "This will be part of a larger sentence, that will read like this: If you don't have any data to import, you can create a new item instead. (Optional second half: You may need to wait until your administrator confirms your organization membership.)" }, "onboardingImportDataDetailsLoginLink": { @@ -4929,7 +4944,7 @@ "message": "Mitgliedern Zugriff geben:" }, "viewAndSelectTheMembers": { - "message": "Die Mitgliedern anzeigen und auswählen, denen du Zugriff auf den Secrets Manager gewähren möchtest." + "message": "Die Mitglieder anzeigen und auswählen, denen du Zugriff auf den Secrets Manager gewähren möchtest." }, "openYourOrganizations": { "message": "Open your organization's" diff --git a/apps/web/src/locales/el/messages.json b/apps/web/src/locales/el/messages.json index 3f3f1d35b2..06dd40ceae 100644 --- a/apps/web/src/locales/el/messages.json +++ b/apps/web/src/locales/el/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Μήνας λήξης" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Προβολή Στοιχείου" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Νέο", "description": "for adding new items" diff --git a/apps/web/src/locales/en_GB/messages.json b/apps/web/src/locales/en_GB/messages.json index c49710489e..27698eaa11 100644 --- a/apps/web/src/locales/en_GB/messages.json +++ b/apps/web/src/locales/en_GB/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Expiration month" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/en_IN/messages.json b/apps/web/src/locales/en_IN/messages.json index 25b3350d44..e1087d38d6 100644 --- a/apps/web/src/locales/en_IN/messages.json +++ b/apps/web/src/locales/en_IN/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Expiration month" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/eo/messages.json b/apps/web/src/locales/eo/messages.json index ead5794bc9..918c6070a6 100644 --- a/apps/web/src/locales/eo/messages.json +++ b/apps/web/src/locales/eo/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr-o" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Monato de validoperiodo" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Vidigi Artikolon" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/es/messages.json b/apps/web/src/locales/es/messages.json index a0ac1f754c..37184524be 100644 --- a/apps/web/src/locales/es/messages.json +++ b/apps/web/src/locales/es/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Mes de expiración" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Ver elemento" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Nuevo", "description": "for adding new items" diff --git a/apps/web/src/locales/et/messages.json b/apps/web/src/locales/et/messages.json index c535f1a889..552a97b7ae 100644 --- a/apps/web/src/locales/et/messages.json +++ b/apps/web/src/locales/et/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Aegumise kuu" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Kirje vaatamine" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Uus", "description": "for adding new items" diff --git a/apps/web/src/locales/eu/messages.json b/apps/web/src/locales/eu/messages.json index fdb9a2427f..b0a1ed7481 100644 --- a/apps/web/src/locales/eu/messages.json +++ b/apps/web/src/locales/eu/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Jn." }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Iraungitze hilabetea" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Bistaratu elementua" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/fa/messages.json b/apps/web/src/locales/fa/messages.json index 3cc4d71eb9..ce90b6c9e1 100644 --- a/apps/web/src/locales/fa/messages.json +++ b/apps/web/src/locales/fa/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "دکتر" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "ماه انقضاء" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "مشاهده مورد" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "جدید", "description": "for adding new items" diff --git a/apps/web/src/locales/fi/messages.json b/apps/web/src/locales/fi/messages.json index 36fb9f7396..ab79c65c05 100644 --- a/apps/web/src/locales/fi/messages.json +++ b/apps/web/src/locales/fi/messages.json @@ -37,7 +37,7 @@ "message": "Merkinnät" }, "note": { - "message": "Merkintä" + "message": "Muistiinpano" }, "customFields": { "message": "Lisäkentät" @@ -68,7 +68,7 @@ } }, "websiteAdded": { - "message": "Verkkosivusto lisättiin" + "message": "Sivusto lisätty" }, "addWebsite": { "message": "Lisää verkkosivusto" @@ -194,6 +194,12 @@ "dr": { "message": "Tri" }, + "cardExpiredTitle": { + "message": "Vanhentunut kortti" + }, + "cardExpiredMessage": { + "message": "Jos olet uusinut sen, päivitä kortin tiedot" + }, "expirationMonth": { "message": "Erääntymiskuukausi" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Näytä kohde" }, + "viewItemType": { + "message": "Näytä $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Uusi", "description": "for adding new items" diff --git a/apps/web/src/locales/fil/messages.json b/apps/web/src/locales/fil/messages.json index f23f4920f4..64fe74b527 100644 --- a/apps/web/src/locales/fil/messages.json +++ b/apps/web/src/locales/fil/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr(a)" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Buwan ng pag-expire" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Tingnan ang item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Bago", "description": "for adding new items" diff --git a/apps/web/src/locales/fr/messages.json b/apps/web/src/locales/fr/messages.json index a17fced747..5b41ebbe84 100644 --- a/apps/web/src/locales/fr/messages.json +++ b/apps/web/src/locales/fr/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Carte expirée" + }, + "cardExpiredMessage": { + "message": "Si vous l'avez renouvelée, mettez à jour les informations de la carte" + }, "expirationMonth": { "message": "Mois d'expiration" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Afficher l'élément" }, + "viewItemType": { + "message": "Voir $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Nouveau", "description": "for adding new items" @@ -1167,7 +1182,7 @@ "message": "Êtes-vous sûr(e) de vouloir continuer ?" }, "moveSelectedItemsDesc": { - "message": "Choose a folder that you would like to add the $COUNT$ selected item(s) to.", + "message": "Choisissez un dossier dans lequel vous souhaitez ajouter le(s) $COUNT$ élément(s) sélectionné(s).", "placeholders": { "count": { "content": "$1", diff --git a/apps/web/src/locales/gl/messages.json b/apps/web/src/locales/gl/messages.json index f972a0e73c..daceeeca49 100644 --- a/apps/web/src/locales/gl/messages.json +++ b/apps/web/src/locales/gl/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Expiration month" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Ver elemento" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Novo", "description": "for adding new items" diff --git a/apps/web/src/locales/he/messages.json b/apps/web/src/locales/he/messages.json index bfa5ff1ba5..a706124d4e 100644 --- a/apps/web/src/locales/he/messages.json +++ b/apps/web/src/locales/he/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "דוקטור" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "תוקף אשראי - חודש" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "הצג פריט" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/hi/messages.json b/apps/web/src/locales/hi/messages.json index bb3173fc51..debe7d9c16 100644 --- a/apps/web/src/locales/hi/messages.json +++ b/apps/web/src/locales/hi/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "डॉ" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "समाप्ति माह" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/hr/messages.json b/apps/web/src/locales/hr/messages.json index 2497b9eb68..f7aa923fb9 100644 --- a/apps/web/src/locales/hr/messages.json +++ b/apps/web/src/locales/hr/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "dr." }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Mjesec isteka" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Prikaz stavke" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Novo", "description": "for adding new items" diff --git a/apps/web/src/locales/hu/messages.json b/apps/web/src/locales/hu/messages.json index f58d778f33..970c1f43e8 100644 --- a/apps/web/src/locales/hu/messages.json +++ b/apps/web/src/locales/hu/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr." }, + "cardExpiredTitle": { + "message": "Lejárt kártya" + }, + "cardExpiredMessage": { + "message": "Ha megújítottuk, frissítsük a kártya adatait." + }, "expirationMonth": { "message": "Lejárati hónap" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Elem megtekintése" }, + "viewItemType": { + "message": "$ITEMTYPE$ megtekintése", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Új", "description": "for adding new items" diff --git a/apps/web/src/locales/id/messages.json b/apps/web/src/locales/id/messages.json index 6d4ce09c3a..0aefb63b36 100644 --- a/apps/web/src/locales/id/messages.json +++ b/apps/web/src/locales/id/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Bulan Kedaluwarsa" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Lihat Item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/it/messages.json b/apps/web/src/locales/it/messages.json index 6b3a5c0028..ab7a078f45 100644 --- a/apps/web/src/locales/it/messages.json +++ b/apps/web/src/locales/it/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dott" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Mese di scadenza" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Visualizza elemento" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Nuovo", "description": "for adding new items" diff --git a/apps/web/src/locales/ja/messages.json b/apps/web/src/locales/ja/messages.json index 03ace731e8..9204fe2983 100644 --- a/apps/web/src/locales/ja/messages.json +++ b/apps/web/src/locales/ja/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "期限切れのカード" + }, + "cardExpiredMessage": { + "message": "カードの更新があった場合、カード情報を更新してください" + }, "expirationMonth": { "message": "有効期限月" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "アイテムの表示" }, + "viewItemType": { + "message": "$ITEMTYPE$ を表示", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "新規作成", "description": "for adding new items" diff --git a/apps/web/src/locales/ka/messages.json b/apps/web/src/locales/ka/messages.json index f70a5950a3..d4dc0fea15 100644 --- a/apps/web/src/locales/ka/messages.json +++ b/apps/web/src/locales/ka/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "დოქტორი" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "ვადა გასვლის თვე" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "ნახვა საგნის" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "ახალი", "description": "for adding new items" diff --git a/apps/web/src/locales/km/messages.json b/apps/web/src/locales/km/messages.json index 2f801ac015..b0f74968ef 100644 --- a/apps/web/src/locales/km/messages.json +++ b/apps/web/src/locales/km/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Expiration month" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/kn/messages.json b/apps/web/src/locales/kn/messages.json index 2003846c63..f7fb605afa 100644 --- a/apps/web/src/locales/kn/messages.json +++ b/apps/web/src/locales/kn/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "ಮುಕ್ತಾಯ ತಿಂಗಳು" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "ಐಟಂ ವೀಕ್ಷಿಸಿ" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/ko/messages.json b/apps/web/src/locales/ko/messages.json index 03bc47ff6d..8137fa3904 100644 --- a/apps/web/src/locales/ko/messages.json +++ b/apps/web/src/locales/ko/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "만료 월" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "항목 보기" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "새 항목", "description": "for adding new items" diff --git a/apps/web/src/locales/lv/messages.json b/apps/web/src/locales/lv/messages.json index e604add504..ef6af19465 100644 --- a/apps/web/src/locales/lv/messages.json +++ b/apps/web/src/locales/lv/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr." }, + "cardExpiredTitle": { + "message": "Beidzies kartes derīgums" + }, + "cardExpiredMessage": { + "message": "Ja atjaunoji to, jāatjaunina kartes informācija" + }, "expirationMonth": { "message": "Derīguma mēnesis" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Skatīt vienumu" }, + "viewItemType": { + "message": "Apskatīt $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Jauns", "description": "for adding new items" diff --git a/apps/web/src/locales/ml/messages.json b/apps/web/src/locales/ml/messages.json index b22d42f74b..b37a4797aa 100644 --- a/apps/web/src/locales/ml/messages.json +++ b/apps/web/src/locales/ml/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "ഡോ" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "കാലാവതി കഴിയുന്ന മാസം" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "ഇനം കാണുക" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/mr/messages.json b/apps/web/src/locales/mr/messages.json index 2f801ac015..b0f74968ef 100644 --- a/apps/web/src/locales/mr/messages.json +++ b/apps/web/src/locales/mr/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Expiration month" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/my/messages.json b/apps/web/src/locales/my/messages.json index 2f801ac015..b0f74968ef 100644 --- a/apps/web/src/locales/my/messages.json +++ b/apps/web/src/locales/my/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Expiration month" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/nb/messages.json b/apps/web/src/locales/nb/messages.json index 55b7bedbcd..8e6fc2c550 100644 --- a/apps/web/src/locales/nb/messages.json +++ b/apps/web/src/locales/nb/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr․" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Utløpsmåned" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Vis elementet" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Ny", "description": "for adding new items" diff --git a/apps/web/src/locales/ne/messages.json b/apps/web/src/locales/ne/messages.json index fc582e8324..bb7ebcd4d3 100644 --- a/apps/web/src/locales/ne/messages.json +++ b/apps/web/src/locales/ne/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "डा" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "म्याद सकिने महिना" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/nl/messages.json b/apps/web/src/locales/nl/messages.json index e8cfba484c..6e96fdd1b2 100644 --- a/apps/web/src/locales/nl/messages.json +++ b/apps/web/src/locales/nl/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr." }, + "cardExpiredTitle": { + "message": "Verlopen kaart" + }, + "cardExpiredMessage": { + "message": "Als je het hebt vernieuwd, werk dan de informatie van de kaart bij" + }, "expirationMonth": { "message": "Vervalmaand" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Item weergeven" }, + "viewItemType": { + "message": "$ITEMTYPE$ weergeven", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Nieuw", "description": "for adding new items" diff --git a/apps/web/src/locales/nn/messages.json b/apps/web/src/locales/nn/messages.json index 0bdb61b1ab..12200412ac 100644 --- a/apps/web/src/locales/nn/messages.json +++ b/apps/web/src/locales/nn/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr․" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Utløpsmånad" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Sjå oppføring" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/or/messages.json b/apps/web/src/locales/or/messages.json index 2f801ac015..b0f74968ef 100644 --- a/apps/web/src/locales/or/messages.json +++ b/apps/web/src/locales/or/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Expiration month" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/pl/messages.json b/apps/web/src/locales/pl/messages.json index 57dcb36d9d..c460ed3f6d 100644 --- a/apps/web/src/locales/pl/messages.json +++ b/apps/web/src/locales/pl/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Doktor" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Miesiąc wygaśnięcia" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Zobacz element" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Nowy", "description": "for adding new items" diff --git a/apps/web/src/locales/pt_BR/messages.json b/apps/web/src/locales/pt_BR/messages.json index f308e262a9..077e6f0f6b 100644 --- a/apps/web/src/locales/pt_BR/messages.json +++ b/apps/web/src/locales/pt_BR/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Mês de Vencimento" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Visualizar Item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Novo", "description": "for adding new items" diff --git a/apps/web/src/locales/pt_PT/messages.json b/apps/web/src/locales/pt_PT/messages.json index a6f3ea9d88..cde9fa3aa3 100644 --- a/apps/web/src/locales/pt_PT/messages.json +++ b/apps/web/src/locales/pt_PT/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr." }, + "cardExpiredTitle": { + "message": "Cartão expirado" + }, + "cardExpiredMessage": { + "message": "Se o renovou, atualize as informações do cartão" + }, "expirationMonth": { "message": "Mês de validade" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Ver item" }, + "viewItemType": { + "message": "Ver $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Novo", "description": "for adding new items" diff --git a/apps/web/src/locales/ro/messages.json b/apps/web/src/locales/ro/messages.json index 04ec54750d..81a09d0325 100644 --- a/apps/web/src/locales/ro/messages.json +++ b/apps/web/src/locales/ro/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr." }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Luna expirării" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Afișare articol" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/ru/messages.json b/apps/web/src/locales/ru/messages.json index 36c36a5894..6594fab88f 100644 --- a/apps/web/src/locales/ru/messages.json +++ b/apps/web/src/locales/ru/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Тов." }, + "cardExpiredTitle": { + "message": "Истек срок действия карты" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Месяц" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Просмотр элемента" }, + "viewItemType": { + "message": "Просмотр $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Новый", "description": "for adding new items" diff --git a/apps/web/src/locales/si/messages.json b/apps/web/src/locales/si/messages.json index 1dac83d3ec..ba50b1d297 100644 --- a/apps/web/src/locales/si/messages.json +++ b/apps/web/src/locales/si/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Expiration month" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/sk/messages.json b/apps/web/src/locales/sk/messages.json index 469396c7a4..dc547dc829 100644 --- a/apps/web/src/locales/sk/messages.json +++ b/apps/web/src/locales/sk/messages.json @@ -58,7 +58,7 @@ "message": "Webová stránka (URI)" }, "websiteUriCount": { - "message": "Website (URI) $COUNT$", + "message": "Webová stránka (URI) $COUNT$", "description": "Label for an input field that contains a website URI. The input field is part of a list of fields, and the count indicates the position of the field in the list.", "placeholders": { "count": { @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expirovaná karta" + }, + "cardExpiredMessage": { + "message": "Ak ste kartu obnovili, aktualizujte jej údaje" + }, "expirationMonth": { "message": "Mesiac exspirácie" }, @@ -213,7 +219,7 @@ "message": "Bitwarden umožňuje uložiť a vyplniť kódy dvojstupňového overenia. Vyberte ikonu fotoaparátu a zosnímajte obrazovku QR kódu overovacej aplikácie tejto webovej stránky alebo skopírujte a vložte kľúč do tohto poľa." }, "learnMoreAboutAuthenticators": { - "message": "Learn more about authenticators" + "message": "Viac informácií o overovateľoch" }, "folder": { "message": "Priečinok" @@ -475,6 +481,15 @@ "viewItem": { "message": "Zobraziť položku" }, + "viewItemType": { + "message": "Zobraziť $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/sl/messages.json b/apps/web/src/locales/sl/messages.json index 0386539a6c..e82043705e 100644 --- a/apps/web/src/locales/sl/messages.json +++ b/apps/web/src/locales/sl/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Mesec poteka" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Ogled elementa" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Nov", "description": "for adding new items" diff --git a/apps/web/src/locales/sr/messages.json b/apps/web/src/locales/sr/messages.json index 2360b44e1a..f59b398d76 100644 --- a/apps/web/src/locales/sr/messages.json +++ b/apps/web/src/locales/sr/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Др" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Месец истека" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Види ставку" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Ново/а", "description": "for adding new items" diff --git a/apps/web/src/locales/sr_CS/messages.json b/apps/web/src/locales/sr_CS/messages.json index ebe3e186a2..31dd8ca74b 100644 --- a/apps/web/src/locales/sr_CS/messages.json +++ b/apps/web/src/locales/sr_CS/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Mesec Isteka" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/sv/messages.json b/apps/web/src/locales/sv/messages.json index c9c346a358..ec7e3d882c 100644 --- a/apps/web/src/locales/sv/messages.json +++ b/apps/web/src/locales/sv/messages.json @@ -46,13 +46,13 @@ "message": "Kortinnehavarens namn" }, "loginCredentials": { - "message": "Login credentials" + "message": "Inloggningsuppgifter" }, "authenticatorKey": { "message": "Autentiseringsnyckel" }, "autofillOptions": { - "message": "Autofill options" + "message": "Alternativ för autofyll" }, "websiteUri": { "message": "Webbplats (URI)" @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Utgångsmånad" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Visa objekt" }, + "viewItemType": { + "message": "Visa $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Nytt", "description": "for adding new items" diff --git a/apps/web/src/locales/te/messages.json b/apps/web/src/locales/te/messages.json index 2f801ac015..b0f74968ef 100644 --- a/apps/web/src/locales/te/messages.json +++ b/apps/web/src/locales/te/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Expiration month" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "View item" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/th/messages.json b/apps/web/src/locales/th/messages.json index d40dc14cab..08445f7c53 100644 --- a/apps/web/src/locales/th/messages.json +++ b/apps/web/src/locales/th/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "ดร." }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "เดือนที่หมดอายุ" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "ดูรายการ" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "New", "description": "for adding new items" diff --git a/apps/web/src/locales/tr/messages.json b/apps/web/src/locales/tr/messages.json index 3019fd06e2..7f0440c471 100644 --- a/apps/web/src/locales/tr/messages.json +++ b/apps/web/src/locales/tr/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Kartın süresi dolmuş" + }, + "cardExpiredMessage": { + "message": "Kartı yenilediyseniz kart bilgilerini güncelleyin" + }, "expirationMonth": { "message": "Son kullanma ayı" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Kaydı göster" }, + "viewItemType": { + "message": "$ITEMTYPE$ bilgileri", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Yeni", "description": "for adding new items" diff --git a/apps/web/src/locales/uk/messages.json b/apps/web/src/locales/uk/messages.json index 14c1ec9725..e3a93a405e 100644 --- a/apps/web/src/locales/uk/messages.json +++ b/apps/web/src/locales/uk/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Доктор" }, + "cardExpiredTitle": { + "message": "Протермінована картка" + }, + "cardExpiredMessage": { + "message": "Якщо ви її поновили, оновіть інформацію" + }, "expirationMonth": { "message": "Місяць завершення" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Переглянути запис" }, + "viewItemType": { + "message": "Переглянути $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Новий", "description": "for adding new items" diff --git a/apps/web/src/locales/vi/messages.json b/apps/web/src/locales/vi/messages.json index f787800f66..bcc21316ac 100644 --- a/apps/web/src/locales/vi/messages.json +++ b/apps/web/src/locales/vi/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "Tháng hết hạn" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "Xem mục" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "Mới", "description": "for adding new items" @@ -3889,7 +3904,7 @@ "message": "Get advice, announcements, and research opportunities from Bitwarden in your inbox." }, "unsubscribe": { - "message": "Unsubscribe" + "message": "Hủy đăng ký" }, "atAnyTime": { "message": "at any time." diff --git a/apps/web/src/locales/zh_CN/messages.json b/apps/web/src/locales/zh_CN/messages.json index 2fd288a199..893c93a98f 100644 --- a/apps/web/src/locales/zh_CN/messages.json +++ b/apps/web/src/locales/zh_CN/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "博士" }, + "cardExpiredTitle": { + "message": "过期的支付卡" + }, + "cardExpiredMessage": { + "message": "如果您的支付卡已续期,请更新该卡的信息。" + }, "expirationMonth": { "message": "过期月份" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "查看项目" }, + "viewItemType": { + "message": "查看 $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "新增", "description": "for adding new items" @@ -2250,7 +2265,7 @@ "message": "优先客户支持。" }, "premiumSignUpFuture": { - "message": "未来会增加更多高级功能。敬请期待!" + "message": "未来的更多高级功能。敬请期待!" }, "premiumPrice": { "message": "只需 $PRICE$ /年!", @@ -2528,7 +2543,7 @@ "message": "已更新付款方式。" }, "purchasePremium": { - "message": "购买高级会员" + "message": "购买高级版" }, "licenseFile": { "message": "许可证文件" @@ -4063,7 +4078,7 @@ "message": "您的 API 密钥可用于验证 Bitwarden 公共 API。" }, "apiKeyRotateDesc": { - "message": "轮换 API 密钥将使前一个密钥无效。如果你认为当前密钥不再安全,你可以轮换您的 API 密钥。" + "message": "轮换 API 密钥将使前一个密钥失效。如果您认为当前密钥不再安全,可以轮换 API 密钥。" }, "apiKeyWarning": { "message": "您的 API 密钥拥有组织的全部访问权限。请严格保密。" @@ -5347,7 +5362,7 @@ "message": "为允许的应用程序自动登录用户" }, "automaticAppLoginDesc": { - "message": "登录表单将自动填写并提交给从您配置的身份提供程序启动的 App。" + "message": "从您配置的身份提供程序启动的 App 的登录表单将自动填写并提交。" }, "automaticAppLoginIdpHostLabel": { "message": "身份提供程序主机" diff --git a/apps/web/src/locales/zh_TW/messages.json b/apps/web/src/locales/zh_TW/messages.json index b5cb1f250e..9508a4ddd2 100644 --- a/apps/web/src/locales/zh_TW/messages.json +++ b/apps/web/src/locales/zh_TW/messages.json @@ -194,6 +194,12 @@ "dr": { "message": "Dr" }, + "cardExpiredTitle": { + "message": "Expired card" + }, + "cardExpiredMessage": { + "message": "If you've renewed it, update the card's information" + }, "expirationMonth": { "message": "逾期月份" }, @@ -475,6 +481,15 @@ "viewItem": { "message": "檢視項目" }, + "viewItemType": { + "message": "View $ITEMTYPE$", + "placeholders": { + "itemtype": { + "content": "$1", + "example": "login" + } + } + }, "new": { "message": "新增", "description": "for adding new items" From 8d408b209fb6a00bbb4e7477b01bf56eac69679d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:18:14 +0000 Subject: [PATCH 11/40] Autosync the updated translations (#10673) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/desktop/src/locales/af/messages.json | 107 ++++++++++--------- apps/desktop/src/locales/ar/messages.json | 3 + apps/desktop/src/locales/az/messages.json | 3 + apps/desktop/src/locales/be/messages.json | 3 + apps/desktop/src/locales/bg/messages.json | 3 + apps/desktop/src/locales/bn/messages.json | 3 + apps/desktop/src/locales/bs/messages.json | 3 + apps/desktop/src/locales/ca/messages.json | 3 + apps/desktop/src/locales/cs/messages.json | 3 + apps/desktop/src/locales/cy/messages.json | 3 + apps/desktop/src/locales/da/messages.json | 3 + apps/desktop/src/locales/de/messages.json | 3 + apps/desktop/src/locales/el/messages.json | 3 + apps/desktop/src/locales/en_GB/messages.json | 3 + apps/desktop/src/locales/en_IN/messages.json | 3 + apps/desktop/src/locales/eo/messages.json | 3 + apps/desktop/src/locales/es/messages.json | 3 + apps/desktop/src/locales/et/messages.json | 3 + apps/desktop/src/locales/eu/messages.json | 3 + apps/desktop/src/locales/fa/messages.json | 3 + apps/desktop/src/locales/fi/messages.json | 3 + apps/desktop/src/locales/fil/messages.json | 3 + apps/desktop/src/locales/fr/messages.json | 3 + apps/desktop/src/locales/gl/messages.json | 3 + apps/desktop/src/locales/he/messages.json | 3 + apps/desktop/src/locales/hi/messages.json | 3 + apps/desktop/src/locales/hr/messages.json | 3 + apps/desktop/src/locales/hu/messages.json | 3 + apps/desktop/src/locales/id/messages.json | 3 + apps/desktop/src/locales/it/messages.json | 3 + apps/desktop/src/locales/ja/messages.json | 3 + apps/desktop/src/locales/ka/messages.json | 3 + apps/desktop/src/locales/km/messages.json | 3 + apps/desktop/src/locales/kn/messages.json | 3 + apps/desktop/src/locales/ko/messages.json | 3 + apps/desktop/src/locales/lt/messages.json | 3 + apps/desktop/src/locales/lv/messages.json | 3 + apps/desktop/src/locales/me/messages.json | 3 + apps/desktop/src/locales/ml/messages.json | 3 + apps/desktop/src/locales/mr/messages.json | 3 + apps/desktop/src/locales/my/messages.json | 3 + apps/desktop/src/locales/nb/messages.json | 3 + apps/desktop/src/locales/ne/messages.json | 3 + apps/desktop/src/locales/nl/messages.json | 3 + apps/desktop/src/locales/nn/messages.json | 3 + apps/desktop/src/locales/or/messages.json | 3 + apps/desktop/src/locales/pl/messages.json | 3 + apps/desktop/src/locales/pt_BR/messages.json | 3 + apps/desktop/src/locales/pt_PT/messages.json | 3 + apps/desktop/src/locales/ro/messages.json | 3 + apps/desktop/src/locales/ru/messages.json | 3 + apps/desktop/src/locales/si/messages.json | 3 + apps/desktop/src/locales/sk/messages.json | 3 + apps/desktop/src/locales/sl/messages.json | 3 + apps/desktop/src/locales/sr/messages.json | 3 + apps/desktop/src/locales/sv/messages.json | 3 + apps/desktop/src/locales/te/messages.json | 3 + apps/desktop/src/locales/th/messages.json | 5 +- apps/desktop/src/locales/tr/messages.json | 7 +- apps/desktop/src/locales/uk/messages.json | 3 + apps/desktop/src/locales/vi/messages.json | 15 +-- apps/desktop/src/locales/zh_CN/messages.json | 3 + apps/desktop/src/locales/zh_TW/messages.json | 3 + 63 files changed, 250 insertions(+), 61 deletions(-) diff --git a/apps/desktop/src/locales/af/messages.json b/apps/desktop/src/locales/af/messages.json index 84b45245c4..44afdf3b64 100644 --- a/apps/desktop/src/locales/af/messages.json +++ b/apps/desktop/src/locales/af/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "U kan lidmaatskap op die bitwarden.com-webkluis koop. Wil u nou na die webwerf gaan?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "U is ’n premie-lid!" }, @@ -2581,7 +2584,7 @@ "message": "You have been logged out because your access token could not be decrypted. Please log in again to resolve this issue." }, "refreshTokenSecureStorageRetrievalFailure": { - "message": "You have been logged out because your refresh token could not be retrieved. Please log in again to resolve this issue." + "message": "Jy was uitgeteken omdat jou verfris teken nie opgespoor kon word nie. Teken asseblief weer in op die kwesie optelos." }, "masterPasswordHint": { "message": "Jou hoofwagwoord kan nie herkry word as jy dit vergeet nie!" @@ -2602,10 +2605,10 @@ "message": "Aanbevole bywerking van instellings" }, "deviceApprovalRequired": { - "message": "Device approval required. Select an approval option below:" + "message": "Toestel goedkeuring word vereis. Kies 'n goedkeuings opsie hieronder:" }, "rememberThisDevice": { - "message": "Remember this device" + "message": "Onthou hierdie toestel" }, "uncheckIfPublicDevice": { "message": "Uncheck if using a public device" @@ -2617,10 +2620,10 @@ "message": "Request admin approval" }, "approveWithMasterPassword": { - "message": "Approve with master password" + "message": "Keur goed met hoofwagwoord" }, "region": { - "message": "Region" + "message": "Streek" }, "ssoIdentifierRequired": { "message": "Organization SSO identifier is required." @@ -2630,10 +2633,10 @@ "description": "European Union" }, "loggingInOn": { - "message": "Logging in on" + "message": "Meld aan op" }, "selfHostedServer": { - "message": "self-hosted" + "message": "self-gehuisves" }, "accessDenied": { "message": "Toegang geweier. U het nie toestemming om hierdie blad te sien nie." @@ -2654,22 +2657,22 @@ "message": "Trouble logging in?" }, "loginApproved": { - "message": "Login approved" + "message": "Aanmelding goedgekeur" }, "userEmailMissing": { - "message": "User email missing" + "message": "Gebruiker-e-pos is vermis" }, "deviceTrusted": { - "message": "Device trusted" + "message": "Toestel is vertroud" }, "inputRequired": { - "message": "Input is required." + "message": "Inset word vereis." }, "required": { - "message": "required" + "message": "vereiste" }, "search": { - "message": "Search" + "message": "Soek" }, "inputMinLength": { "message": "Input must be at least $COUNT$ characters long.", @@ -2781,11 +2784,11 @@ "message": "Alias domain" }, "importData": { - "message": "Import data", + "message": "Invoer data", "description": "Used for the desktop menu item and the header of the import dialog" }, "importError": { - "message": "Import error" + "message": "Invoer fout" }, "importErrorDesc": { "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." @@ -2857,7 +2860,7 @@ "message": "Select a collection" }, "importTargetHint": { - "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "message": "Kies dié opsie as jy die inhoud van die ingevoerde lêer na $DESTINATION$ wil skuif", "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": { @@ -2867,25 +2870,25 @@ } }, "importUnassignedItemsError": { - "message": "File contains unassigned items." + "message": "Lêer bevat ontoegewysde items." }, "selectFormat": { - "message": "Select the format of the import file" + "message": "Kies die formaat van die invoer lêer" }, "selectImportFile": { - "message": "Select the import file" + "message": "Kies die invoer lêer" }, "chooseFile": { - "message": "Choose File" + "message": "Kies Lêer" }, "noFileChosen": { - "message": "No file chosen" + "message": "Geen Lêer gekies" }, "orCopyPasteFileContents": { - "message": "or copy/paste the import file contents" + "message": "of kopieer/plak die invoer lêer inhoud" }, "instructionsFor": { - "message": "$NAME$ Instructions", + "message": "$NAME$ Instruksies", "description": "The title for the import tool instructions.", "placeholders": { "name": { @@ -2895,89 +2898,89 @@ } }, "confirmVaultImport": { - "message": "Confirm vault import" + "message": "Bevesting kluis invoer" }, "confirmVaultImportDesc": { - "message": "This file is password-protected. Please enter the file password to import data." + "message": "Dié lêer is wagwoord-beskermed. Voer asseblief dié lêer se wagwoord in om data in te voer." }, "confirmFilePassword": { - "message": "Confirm file password" + "message": "Bevesting lêer-wagwoord" }, "exportSuccess": { - "message": "Vault data exported" + "message": "Kluis data uitgevoer" }, "multifactorAuthenticationCancelled": { - "message": "Multifactor authentication cancelled" + "message": "Multifaktor waarmerking gekanselleer" }, "noLastPassDataFound": { - "message": "No LastPass data found" + "message": "Geen LastPass data gevind" }, "incorrectUsernameOrPassword": { - "message": "Incorrect username or password" + "message": "Verkeerde gerbuikersnaam of wagwoord" }, "incorrectPassword": { - "message": "Incorrect password" + "message": "Verkeerde wagwoord" }, "incorrectCode": { - "message": "Incorrect code" + "message": "Verkeerde kode" }, "incorrectPin": { - "message": "Incorrect PIN" + "message": "Verkeerde PIN" }, "multifactorAuthenticationFailed": { - "message": "Multifactor authentication failed" + "message": "Multifaktor waarmerking gemisluk" }, "includeSharedFolders": { - "message": "Include shared folders" + "message": "Sluit gedeelde lêers in" }, "lastPassEmail": { - "message": "LastPass Email" + "message": "LastPass E-pos" }, "importingYourAccount": { - "message": "Importing your account..." + "message": "Jou rekening word ingevoer..." }, "lastPassMFARequired": { - "message": "LastPass multifactor authentication required" + "message": "LastPass multifaktor waarmerking word vereis" }, "lastPassMFADesc": { - "message": "Enter your one-time passcode from your authentication app" + "message": "Voer jou eenmalige wagkode van jou waarmerkings-toep" }, "lastPassOOBDesc": { "message": "Approve the login request in your authentication app or enter a one-time passcode." }, "passcode": { - "message": "Passcode" + "message": "Wagkode" }, "lastPassMasterPassword": { - "message": "LastPass master password" + "message": "LastPass hoofwagwoord" }, "lastPassAuthRequired": { - "message": "LastPass authentication required" + "message": "LastPass waarmerking word vereis" }, "awaitingSSO": { - "message": "Awaiting SSO authentication" + "message": "Wag SSO waarmerking af" }, "awaitingSSODesc": { - "message": "Please continue to log in using your company credentials." + "message": "Asseblief gaan voort om aantemeld met jou maatskappy se magtigingsbewyse." }, "seeDetailedInstructions": { - "message": "See detailed instructions on our help site at", + "message": "Sien gedetaleerde instruksies op ons help werf by", "description": "This is followed a by a hyperlink to the help website." }, "importDirectlyFromLastPass": { - "message": "Import directly from LastPass" + "message": "Voer in direk van LastPass" }, "importFromCSV": { - "message": "Import from CSV" + "message": "Voer van CSV in" }, "lastPassTryAgainCheckEmail": { - "message": "Try again or look for an email from LastPass to verify it's you." + "message": "Probeer weer of kyk vir 'n e-pos van LastPass om te verifieer dat dit jy is." }, "collection": { - "message": "Collection" + "message": "Versameling" }, "lastPassYubikeyDesc": { - "message": "Insert the YubiKey associated with your LastPass account into your computer's USB port, then touch its button." + "message": "Plass die YubiKey wat met jou LastPass-rekening geassosieer word in jou rekenaar se USB-poort in en raak dan aan die knoppie." }, "commonImportFormats": { "message": "Common formats", @@ -3045,9 +3048,9 @@ "message": "Data" }, "fileSends": { - "message": "File Sends" + "message": "Lêer stuur" }, "textSends": { - "message": "Text Sends" + "message": "Teks stuur" } } diff --git a/apps/desktop/src/locales/ar/messages.json b/apps/desktop/src/locales/ar/messages.json index 27cb1e1ba1..8ce9508675 100644 --- a/apps/desktop/src/locales/ar/messages.json +++ b/apps/desktop/src/locales/ar/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "يمكنك شراء العضوية المتميزة على bitwarden.com على خزانة الويب. هل تريد زيارة الموقع الآن؟" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "أنت عضو مميز!" }, diff --git a/apps/desktop/src/locales/az/messages.json b/apps/desktop/src/locales/az/messages.json index de0522d0e4..e20c48690b 100644 --- a/apps/desktop/src/locales/az/messages.json +++ b/apps/desktop/src/locales/az/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Premium üzvlüyü bitwarden.com veb anbarında satın ala bilərsiniz. İndi saytı ziyarət etmək istəyirsiniz?" }, + "premiumPurchaseAlertV2": { + "message": "Bitwarden veb tətbiqindəki hesab ayarlarınızda Premium satın ala bilərsiniz." + }, "premiumCurrentMember": { "message": "Premium üzvsünüz!" }, diff --git a/apps/desktop/src/locales/be/messages.json b/apps/desktop/src/locales/be/messages.json index 9931724dd9..822edf8caf 100644 --- a/apps/desktop/src/locales/be/messages.json +++ b/apps/desktop/src/locales/be/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Вы можаце купіць прэміяльны статус на bitwarden.com. Перайсці на вэб-сайт зараз?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "У вас прэміяльны статус!" }, diff --git a/apps/desktop/src/locales/bg/messages.json b/apps/desktop/src/locales/bg/messages.json index ce84d0259e..0ca46770ba 100644 --- a/apps/desktop/src/locales/bg/messages.json +++ b/apps/desktop/src/locales/bg/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Може да платите абонамента си през сайта bitwarden.com. Искате ли да го посетите сега?" }, + "premiumPurchaseAlertV2": { + "message": "Можете да закупите платената версия от настройките на регистрацията си, в приложението по уеб на Битуорден." + }, "premiumCurrentMember": { "message": "Честито, ползвате платен абонамент!" }, diff --git a/apps/desktop/src/locales/bn/messages.json b/apps/desktop/src/locales/bn/messages.json index 70b45364cc..c53838dd0f 100644 --- a/apps/desktop/src/locales/bn/messages.json +++ b/apps/desktop/src/locales/bn/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "আপনি bitwarden.com ওয়েব ভল্টে প্রিমিয়াম সদস্যতা কিনতে পারেন। আপনি কি এখনই ওয়েবসাইটটি দেখতে চান?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "আপনি প্রিমিয়াম সদস্য!" }, diff --git a/apps/desktop/src/locales/bs/messages.json b/apps/desktop/src/locales/bs/messages.json index 1e5d34decb..6ce58c87fe 100644 --- a/apps/desktop/src/locales/bs/messages.json +++ b/apps/desktop/src/locales/bs/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Svojim članstvom možeš upravljati na bitwarden.com web trezoru. Želiš li sada posjetiti web stranicu?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Ti si premium član!" }, diff --git a/apps/desktop/src/locales/ca/messages.json b/apps/desktop/src/locales/ca/messages.json index 8827bcd735..2496766711 100644 --- a/apps/desktop/src/locales/ca/messages.json +++ b/apps/desktop/src/locales/ca/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Podeu comprar la vostra subscripció a la caixa forta web de bitwarden.com. Voleu visitar el lloc web ara?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Sou un membre premium!" }, diff --git a/apps/desktop/src/locales/cs/messages.json b/apps/desktop/src/locales/cs/messages.json index 1c0854108e..5d83119f9e 100644 --- a/apps/desktop/src/locales/cs/messages.json +++ b/apps/desktop/src/locales/cs/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Prémiové členství můžete zakoupit na webové stránce bitwarden.com. Chcete tuto stránku nyní otevřít?" }, + "premiumPurchaseAlertV2": { + "message": "Premium si můžete zakoupit v nastavení účtu ve webové aplikaci Bitwarden." + }, "premiumCurrentMember": { "message": "Jste prémiovým členem!" }, diff --git a/apps/desktop/src/locales/cy/messages.json b/apps/desktop/src/locales/cy/messages.json index 19ef9c8ffb..5ba77a14bd 100644 --- a/apps/desktop/src/locales/cy/messages.json +++ b/apps/desktop/src/locales/cy/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/da/messages.json b/apps/desktop/src/locales/da/messages.json index ad371a4d11..eb0f7c8e8f 100644 --- a/apps/desktop/src/locales/da/messages.json +++ b/apps/desktop/src/locales/da/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Premium-medlemskab kan købes via bitwarden.com web-boksen. Besøg webstedet nu?" }, + "premiumPurchaseAlertV2": { + "message": "Der kan købes Premium fra kontoindstillingerne via Bitwarden web-appen." + }, "premiumCurrentMember": { "message": "Du er Premium-medlem!" }, diff --git a/apps/desktop/src/locales/de/messages.json b/apps/desktop/src/locales/de/messages.json index 6e5d5644c8..6d1bdd0581 100644 --- a/apps/desktop/src/locales/de/messages.json +++ b/apps/desktop/src/locales/de/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Du kannst deine Premium-Mitgliedschaft im bitwarden.com Web-Tresor kaufen. Möchtest du die Webseite jetzt besuchen?" }, + "premiumPurchaseAlertV2": { + "message": "Du kannst Premium über deine Kontoeinstellungen in der Bitwarden Web-App kaufen." + }, "premiumCurrentMember": { "message": "Du bist ein Premium-Mitglied!" }, diff --git a/apps/desktop/src/locales/el/messages.json b/apps/desktop/src/locales/el/messages.json index 014d597113..bfaa0e5af3 100644 --- a/apps/desktop/src/locales/el/messages.json +++ b/apps/desktop/src/locales/el/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Μπορείτε να αγοράσετε συνδρομή premium στο bitwarden.com web vault. Θέλετε να επισκεφθείτε την ιστοσελίδα τώρα;" }, + "premiumPurchaseAlertV2": { + "message": "Μπορείτε να αγοράσετε το Premium από τις ρυθμίσεις λογαριασμού σας στη διαδικτυακή εφαρμογή του Bitwarden." + }, "premiumCurrentMember": { "message": "Είστε ένα premium μέλος!" }, diff --git a/apps/desktop/src/locales/en_GB/messages.json b/apps/desktop/src/locales/en_GB/messages.json index e24cd7b641..6029f69e6e 100644 --- a/apps/desktop/src/locales/en_GB/messages.json +++ b/apps/desktop/src/locales/en_GB/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/en_IN/messages.json b/apps/desktop/src/locales/en_IN/messages.json index d09708b972..5e0905ce23 100644 --- a/apps/desktop/src/locales/en_IN/messages.json +++ b/apps/desktop/src/locales/en_IN/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/eo/messages.json b/apps/desktop/src/locales/eo/messages.json index eed26bd010..ad78a34e25 100644 --- a/apps/desktop/src/locales/eo/messages.json +++ b/apps/desktop/src/locales/eo/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/es/messages.json b/apps/desktop/src/locales/es/messages.json index bf331ce430..7227932545 100644 --- a/apps/desktop/src/locales/es/messages.json +++ b/apps/desktop/src/locales/es/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Puedes comprar la membresía Premium en la caja fuerte web de bitwarden.com. ¿Quieres visitar el sitio web ahora?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "¡Eres un miembro Premium!" }, diff --git a/apps/desktop/src/locales/et/messages.json b/apps/desktop/src/locales/et/messages.json index 5eb1a6fe0e..88993edc56 100644 --- a/apps/desktop/src/locales/et/messages.json +++ b/apps/desktop/src/locales/et/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Saad Preemium versiooni osta bitwarden.com veebihoidlas. Soovid seda kohe teha?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Oled preemium kasutaja!" }, diff --git a/apps/desktop/src/locales/eu/messages.json b/apps/desktop/src/locales/eu/messages.json index 146e6e31b8..1b90a77192 100644 --- a/apps/desktop/src/locales/eu/messages.json +++ b/apps/desktop/src/locales/eu/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Zure premium bazkidetza bitwarden.com webguneko kutxa gotorrean ordaindu dezakezu. Orain bisitatu nahi duzu webgunea?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Premium bazkide zara!" }, diff --git a/apps/desktop/src/locales/fa/messages.json b/apps/desktop/src/locales/fa/messages.json index 613fec6bed..2b5c810e4d 100644 --- a/apps/desktop/src/locales/fa/messages.json +++ b/apps/desktop/src/locales/fa/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "شما می‌توانید عضویت پرمیوم را از گاوصندوق وب bitwarden.com خریداری کنید. مایلید اکنون از وب‌سایت بازید کنید؟" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "شما یک عضو پرمیوم هستید!" }, diff --git a/apps/desktop/src/locales/fi/messages.json b/apps/desktop/src/locales/fi/messages.json index 8ad1389121..f9caf83129 100644 --- a/apps/desktop/src/locales/fi/messages.json +++ b/apps/desktop/src/locales/fi/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Voit ostaa Premium-jäsenyyden bitwarden.com-verkkoholvista. Haluatko käydä sivustolla nyt?" }, + "premiumPurchaseAlertV2": { + "message": "Voit ostaa Premiumin tiliasetuksistasi Bitwardenin verkkosovelluksen kautta." + }, "premiumCurrentMember": { "message": "Olet Premium-jäsen!" }, diff --git a/apps/desktop/src/locales/fil/messages.json b/apps/desktop/src/locales/fil/messages.json index 326a86060a..796c1581bb 100644 --- a/apps/desktop/src/locales/fil/messages.json +++ b/apps/desktop/src/locales/fil/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Maaari kang bumili ng premium membership sa bitwarden.com web vault. Gusto mo bang bisitahin ang website ngayon?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Ikaw ay isang premium na miyembro!" }, diff --git a/apps/desktop/src/locales/fr/messages.json b/apps/desktop/src/locales/fr/messages.json index 481deb119f..7693bc08a9 100644 --- a/apps/desktop/src/locales/fr/messages.json +++ b/apps/desktop/src/locales/fr/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Vous pouvez acheter une adhésion Premium sur le coffre web de bitwarden.com. Voulez-vous visiter le site web maintenant ?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Vous êtes un membre Premium !" }, diff --git a/apps/desktop/src/locales/gl/messages.json b/apps/desktop/src/locales/gl/messages.json index bc71a9703b..eb228ace8c 100644 --- a/apps/desktop/src/locales/gl/messages.json +++ b/apps/desktop/src/locales/gl/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/he/messages.json b/apps/desktop/src/locales/he/messages.json index 60fc0ef226..1687a9587e 100644 --- a/apps/desktop/src/locales/he/messages.json +++ b/apps/desktop/src/locales/he/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "באפשרותך לרכוש מנוי פרימיום בכספת באתר bitwarden.com. האם ברצונך לפתוח את האתר כעת?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "אתה מנוי פרימיום!" }, diff --git a/apps/desktop/src/locales/hi/messages.json b/apps/desktop/src/locales/hi/messages.json index d1edf8716b..7094badd42 100644 --- a/apps/desktop/src/locales/hi/messages.json +++ b/apps/desktop/src/locales/hi/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/hr/messages.json b/apps/desktop/src/locales/hr/messages.json index 081d975c00..4655da5b2f 100644 --- a/apps/desktop/src/locales/hr/messages.json +++ b/apps/desktop/src/locales/hr/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Možeš kupiti premium članstvo na web trezoru. Želiš li sada posjetiti bitwarden.com?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Ti si premium član!" }, diff --git a/apps/desktop/src/locales/hu/messages.json b/apps/desktop/src/locales/hu/messages.json index 56062cd38b..ed3d4da5d7 100644 --- a/apps/desktop/src/locales/hu/messages.json +++ b/apps/desktop/src/locales/hu/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Prémium tagságot a bitwarden.com webes széfben lehet vásárolni. Szeretnénk most felkeresni a webhelyet?" }, + "premiumPurchaseAlertV2": { + "message": "Prémium szolgáltatást vásárolhatunk a Bitwarden webalkalmazás fiókbeállításai között." + }, "premiumCurrentMember": { "message": "Jelenleg a prémium tagság érvényben van." }, diff --git a/apps/desktop/src/locales/id/messages.json b/apps/desktop/src/locales/id/messages.json index b57fc49adf..92252af3f8 100644 --- a/apps/desktop/src/locales/id/messages.json +++ b/apps/desktop/src/locales/id/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Kamu bisa membeli keanggotaan Premium di Brankas Web bitwarden.com. Apakah kamu ingin mengunjungi situs web itu sekarang?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Anda adalah anggota premium!" }, diff --git a/apps/desktop/src/locales/it/messages.json b/apps/desktop/src/locales/it/messages.json index 4a0261f4cf..ea84505eb0 100644 --- a/apps/desktop/src/locales/it/messages.json +++ b/apps/desktop/src/locales/it/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Puoi acquistare il un abbonamento Premium dalla cassaforte web su bitwarden.com. Vuoi visitare il sito?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Sei un membro Premium!" }, diff --git a/apps/desktop/src/locales/ja/messages.json b/apps/desktop/src/locales/ja/messages.json index 3067df84bb..0f24a42740 100644 --- a/apps/desktop/src/locales/ja/messages.json +++ b/apps/desktop/src/locales/ja/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "プレミアム会員権は bitwarden.com ウェブ保管庫で購入できます。ウェブサイトを開きますか?" }, + "premiumPurchaseAlertV2": { + "message": "Bitwarden ウェブアプリでアカウント設定からプレミアムを購入できます。" + }, "premiumCurrentMember": { "message": "あなたはプレミアム会員です!" }, diff --git a/apps/desktop/src/locales/ka/messages.json b/apps/desktop/src/locales/ka/messages.json index bc71a9703b..eb228ace8c 100644 --- a/apps/desktop/src/locales/ka/messages.json +++ b/apps/desktop/src/locales/ka/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/km/messages.json b/apps/desktop/src/locales/km/messages.json index bc71a9703b..eb228ace8c 100644 --- a/apps/desktop/src/locales/km/messages.json +++ b/apps/desktop/src/locales/km/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/kn/messages.json b/apps/desktop/src/locales/kn/messages.json index cdf612baac..1dbcf7c228 100644 --- a/apps/desktop/src/locales/kn/messages.json +++ b/apps/desktop/src/locales/kn/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "ನೀವು ಬಿಟ್ವಾರ್ಡೆನ್.ಕಾಮ್ ವೆಬ್ ವಾಲ್ಟ್ನಲ್ಲಿ ಪ್ರೀಮಿಯಂ ಸದಸ್ಯತ್ವವನ್ನು ಖರೀದಿಸಬಹುದು. ನೀವು ಈಗ ವೆಬ್‌ಸೈಟ್‌ಗೆ ಭೇಟಿ ನೀಡಲು ಬಯಸುವಿರಾ?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "ನೀವು ಪ್ರೀಮಿಯಂ ಸದಸ್ಯರಾಗಿದ್ದೀರಿ!" }, diff --git a/apps/desktop/src/locales/ko/messages.json b/apps/desktop/src/locales/ko/messages.json index c7c22ccbd6..e070516269 100644 --- a/apps/desktop/src/locales/ko/messages.json +++ b/apps/desktop/src/locales/ko/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "bitwarden.com 웹 보관함에서 프리미엄 멤버십을 구입할 수 있습니다. 지금 웹 사이트를 방문하시겠습니까?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "프리미엄 사용자입니다!" }, diff --git a/apps/desktop/src/locales/lt/messages.json b/apps/desktop/src/locales/lt/messages.json index 5ce46436e3..8c91fa3f2d 100644 --- a/apps/desktop/src/locales/lt/messages.json +++ b/apps/desktop/src/locales/lt/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Galite įsigyti Premium narystę bitwarden.com interneto saugykloje. Ar norite aplankyti svetainę dabar?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Esate Premium narys!" }, diff --git a/apps/desktop/src/locales/lv/messages.json b/apps/desktop/src/locales/lv/messages.json index 79d3322669..7a2bdd121b 100644 --- a/apps/desktop/src/locales/lv/messages.json +++ b/apps/desktop/src/locales/lv/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Premium dalību ir iespējams iegādāties bitwarden.com tīmekļa glabātavā. Vai tagad apmeklēt tīmekļvietni?" }, + "premiumPurchaseAlertV2": { + "message": "Premium var iegādāties Bitwarden tīmekļa lietotnē sava konta iestatījumos." + }, "premiumCurrentMember": { "message": "Jūs esat premium dalībnieks!" }, diff --git a/apps/desktop/src/locales/me/messages.json b/apps/desktop/src/locales/me/messages.json index dd6850cfa6..c94504d024 100644 --- a/apps/desktop/src/locales/me/messages.json +++ b/apps/desktop/src/locales/me/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Premium članstvo možete kupiti u trezoru na internet strani bitwarden.com. Da li želite da posjetite internet lokaciju sada?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Vi ste premijum član!" }, diff --git a/apps/desktop/src/locales/ml/messages.json b/apps/desktop/src/locales/ml/messages.json index bba2772f62..e4d154d6f5 100644 --- a/apps/desktop/src/locales/ml/messages.json +++ b/apps/desktop/src/locales/ml/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "നിങ്ങൾക്ക് bitwarden.com വെബ് വാൾട്ടിൽ പ്രീമിയം അംഗത്വം വാങ്ങാം. നിങ്ങൾക്ക് ഇപ്പോൾ വെബ്സൈറ്റ് സന്ദർശിക്കാൻ ആഗ്രഹമുണ്ടോ?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "തങ്ങൾ ഒരു പ്രീമിയം അംഗമാണ്!" }, diff --git a/apps/desktop/src/locales/mr/messages.json b/apps/desktop/src/locales/mr/messages.json index bc71a9703b..eb228ace8c 100644 --- a/apps/desktop/src/locales/mr/messages.json +++ b/apps/desktop/src/locales/mr/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/my/messages.json b/apps/desktop/src/locales/my/messages.json index a771badfb0..4d1b52f81b 100644 --- a/apps/desktop/src/locales/my/messages.json +++ b/apps/desktop/src/locales/my/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/nb/messages.json b/apps/desktop/src/locales/nb/messages.json index 50819e4968..8441dd2b2d 100644 --- a/apps/desktop/src/locales/nb/messages.json +++ b/apps/desktop/src/locales/nb/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Du kan kjøpe et Premium-medlemskap på bitwarden.net-netthvelvet. Vil du besøke det nettstedet nå?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Du er et Premium-medlem!" }, diff --git a/apps/desktop/src/locales/ne/messages.json b/apps/desktop/src/locales/ne/messages.json index 847da864d3..1764f7eb54 100644 --- a/apps/desktop/src/locales/ne/messages.json +++ b/apps/desktop/src/locales/ne/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/nl/messages.json b/apps/desktop/src/locales/nl/messages.json index ebceb9dbe8..aced612b27 100644 --- a/apps/desktop/src/locales/nl/messages.json +++ b/apps/desktop/src/locales/nl/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Je kunt een Premium-abonnement aanschaffen in de webkluis op bitwarden.com. Wil je de website nu bezoeken?" }, + "premiumPurchaseAlertV2": { + "message": "Je kunt Premium via je accountinstellingen in de Bitwarden-webapp kopen." + }, "premiumCurrentMember": { "message": "Je bent Premium-lid!" }, diff --git a/apps/desktop/src/locales/nn/messages.json b/apps/desktop/src/locales/nn/messages.json index c19b45212e..b79c2604f5 100644 --- a/apps/desktop/src/locales/nn/messages.json +++ b/apps/desktop/src/locales/nn/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Du kan kjøpe eit Premium-medlemsskap i Bitwarden sin nettkvelv. Vil du gå til nettstaden no?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Du er eit Premium-medlem!" }, diff --git a/apps/desktop/src/locales/or/messages.json b/apps/desktop/src/locales/or/messages.json index b82d3631ba..b0fb23dce1 100644 --- a/apps/desktop/src/locales/or/messages.json +++ b/apps/desktop/src/locales/or/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/pl/messages.json b/apps/desktop/src/locales/pl/messages.json index 20258cc6a4..64cc040465 100644 --- a/apps/desktop/src/locales/pl/messages.json +++ b/apps/desktop/src/locales/pl/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Konto Premium możesz zakupić na stronie sejfu bitwarden.com. Czy chcesz otworzyć tę stronę?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Posiadasz konto Premium!" }, diff --git a/apps/desktop/src/locales/pt_BR/messages.json b/apps/desktop/src/locales/pt_BR/messages.json index b3d00976b6..c57e10b0e1 100644 --- a/apps/desktop/src/locales/pt_BR/messages.json +++ b/apps/desktop/src/locales/pt_BR/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Você pode comprar a assinatura premium no cofre web em bitwarden.com. Você deseja visitar o site agora?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Você é um membro premium!" }, diff --git a/apps/desktop/src/locales/pt_PT/messages.json b/apps/desktop/src/locales/pt_PT/messages.json index e95095e56c..b8f77de53c 100644 --- a/apps/desktop/src/locales/pt_PT/messages.json +++ b/apps/desktop/src/locales/pt_PT/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Pode adquirir uma subscrição Premium no cofre web em bitwarden.com. Pretende visitar o site agora?" }, + "premiumPurchaseAlertV2": { + "message": "Pode adquirir o Premium a partir das definições da sua conta na aplicação Web do Bitwarden." + }, "premiumCurrentMember": { "message": "É um membro Premium!" }, diff --git a/apps/desktop/src/locales/ro/messages.json b/apps/desktop/src/locales/ro/messages.json index 209fc4dc3e..aba64a81aa 100644 --- a/apps/desktop/src/locales/ro/messages.json +++ b/apps/desktop/src/locales/ro/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Puteți achiziționa un abonament premium pe saitul web bitwarden.com. Doriți să vizitați saitul acum?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Sunteți un membru premium!" }, diff --git a/apps/desktop/src/locales/ru/messages.json b/apps/desktop/src/locales/ru/messages.json index c477062750..073a652cce 100644 --- a/apps/desktop/src/locales/ru/messages.json +++ b/apps/desktop/src/locales/ru/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Вы можете купить Премиум на bitwarden.com. Перейти на сайт сейчас?" }, + "premiumPurchaseAlertV2": { + "message": "Премиум можно приобрести в настройках аккаунта в веб-версии Bitwarden." + }, "premiumCurrentMember": { "message": "У вас есть Премиум!" }, diff --git a/apps/desktop/src/locales/si/messages.json b/apps/desktop/src/locales/si/messages.json index 29a230aba1..ae8e9bd25b 100644 --- a/apps/desktop/src/locales/si/messages.json +++ b/apps/desktop/src/locales/si/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/sk/messages.json b/apps/desktop/src/locales/sk/messages.json index 4d39730d0a..5f1afa731b 100644 --- a/apps/desktop/src/locales/sk/messages.json +++ b/apps/desktop/src/locales/sk/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Svoje prémiové členstvo môžete zakúpiť vo webovom trezore bitwarden.com. Chcete navštíviť túto stránku teraz?" }, + "premiumPurchaseAlertV2": { + "message": "Prémiové členstvo si môžete zakúpiť v nastaveniach svojho účtu vo webovej aplikácii Bitwarden." + }, "premiumCurrentMember": { "message": "Ste prémiovým členom!" }, diff --git a/apps/desktop/src/locales/sl/messages.json b/apps/desktop/src/locales/sl/messages.json index c19ec0ab51..102093af2a 100644 --- a/apps/desktop/src/locales/sl/messages.json +++ b/apps/desktop/src/locales/sl/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/sr/messages.json b/apps/desktop/src/locales/sr/messages.json index d21a17c035..4f57d63f0a 100644 --- a/apps/desktop/src/locales/sr/messages.json +++ b/apps/desktop/src/locales/sr/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Можете купити премијум претплату на bitwarden.com. Да ли желите да посетите веб сајт сада?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Ви сте премијум члан!" }, diff --git a/apps/desktop/src/locales/sv/messages.json b/apps/desktop/src/locales/sv/messages.json index 77badeaa0b..2399507668 100644 --- a/apps/desktop/src/locales/sv/messages.json +++ b/apps/desktop/src/locales/sv/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Du kan köpa premium-medlemskap i Bitwardens webbvalv. Vill du besöka webbplatsen nu?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Du är en premium-medlem!" }, diff --git a/apps/desktop/src/locales/te/messages.json b/apps/desktop/src/locales/te/messages.json index bc71a9703b..eb228ace8c 100644 --- a/apps/desktop/src/locales/te/messages.json +++ b/apps/desktop/src/locales/te/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/th/messages.json b/apps/desktop/src/locales/th/messages.json index 54bc05182b..91ba398f82 100644 --- a/apps/desktop/src/locales/th/messages.json +++ b/apps/desktop/src/locales/th/messages.json @@ -239,7 +239,7 @@ "message": "นางสาว" }, "mx": { - "message": "Mx" + "message": "เอมเอ็ก" }, "dr": { "message": "ดร." @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "You are a premium member!" }, diff --git a/apps/desktop/src/locales/tr/messages.json b/apps/desktop/src/locales/tr/messages.json index 4fcd925335..0c6f1ed8da 100644 --- a/apps/desktop/src/locales/tr/messages.json +++ b/apps/desktop/src/locales/tr/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Premium üyeliği bitwarden.com web kasası üzerinden satın alabilirsiniz. Şimdi siteye gitmek ister misiniz?" }, + "premiumPurchaseAlertV2": { + "message": "Bitwarden web uygulamasındaki hesap ayarlarınızdan Premium abonelik satın alabilirsiniz." + }, "premiumCurrentMember": { "message": "Premium üyesiniz!" }, @@ -2824,13 +2827,13 @@ "message": "Error connecting with the Duo service. Use a different two-step login method or contact Duo for assistance." }, "launchDuoAndFollowStepsToFinishLoggingIn": { - "message": "Duo'yu başlatın ve oturum açmayı tamamlamak için adımları izleyin." + "message": "Duo'yu açın ve girişi tamamlamak için adımları izleyin." }, "duoRequiredByOrgForAccount": { "message": "Hesabınız için Duo iki adımlı giriş gereklidir." }, "launchDuo": { - "message": "Duo'yu tarayıcıda başlat" + "message": "Duo'yu tarayıcıda aç" }, "importFormatError": { "message": "Veriler doğru biçimlendirilmemiş. Lütfen içe aktarma dosyanızı kontrol edin ve tekrar deneyin." diff --git a/apps/desktop/src/locales/uk/messages.json b/apps/desktop/src/locales/uk/messages.json index ce6697faf6..9a123edc74 100644 --- a/apps/desktop/src/locales/uk/messages.json +++ b/apps/desktop/src/locales/uk/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Ви можете передплатити преміум у сховищі на bitwarden.com. Хочете перейти на вебсайт зараз?" }, + "premiumPurchaseAlertV2": { + "message": "Ви можете придбати Преміум у налаштуваннях облікового запису вебпрограмі Bitwarden." + }, "premiumCurrentMember": { "message": "Ви користуєтеся передплатою преміум!" }, diff --git a/apps/desktop/src/locales/vi/messages.json b/apps/desktop/src/locales/vi/messages.json index 035c5bb845..24d10043ca 100644 --- a/apps/desktop/src/locales/vi/messages.json +++ b/apps/desktop/src/locales/vi/messages.json @@ -552,7 +552,7 @@ "message": "Gợi ý mật khẩu chính" }, "joinOrganization": { - "message": "Join organization" + "message": "Tham gia tổ chức" }, "finishJoiningThisOrganizationBySettingAMasterPassword": { "message": "Finish joining this organization by setting a master password." @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "Bạn có thể nâng cấp làm thành viên cao cấp trong kho bitwarden nền web. Bạn có muốn truy cập trang web bây giờ?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "Bạn là một thành viên cao cấp!" }, @@ -1721,16 +1724,16 @@ "message": "Mật khẩu chính bạn chọn không đáp ứng yêu cầu." }, "receiveMarketingEmailsV2": { - "message": "Nhận lời khuyên, thông báo và cơ hội nghiên cứu từ Bitwarden trong hộp thư đến của bạn." + "message": "Nhận đề xuất, thông báo và cơ hội nghiên cứu từ Bitwarden trong hộp thư đến của bạn." }, "unsubscribe": { - "message": "Huỷ đăng ký" + "message": "Hủy đăng ký" }, "atAnyTime": { "message": "bất cứ lúc nào." }, "byContinuingYouAgreeToThe": { - "message": "Bằng cách tiếp tục, bạn đồng ý" + "message": "Nếu tiếp tục, bạn đồng ý" }, "and": { "message": "và" @@ -2118,7 +2121,7 @@ "message": "Thời gian mở kho vượt quá giới hạn do tổ chức của bạn đặt ra." }, "inviteAccepted": { - "message": "Invitation accepted" + "message": "Lời mời được chấp nhận" }, "resetPasswordPolicyAutoEnroll": { "message": "Đăng ký tự động" @@ -2142,7 +2145,7 @@ "message": "Đã xóa mật khẩu chính" }, "convertOrganizationEncryptionDesc": { - "message": "$ORGANIZATION$ đang sử dụng SSO với khóa máy chủ tự lưu trữ. Các thành viên của tổ chức này không cần mật khẩu chính để đăng nhập.", + "message": "$ORGANIZATION$ đang sử dụng SSO với khóa máy chủ tự lưu trữ. Mật khẩu chính không còn cần để đăng nhập cho các thành viên của tổ chức này.", "placeholders": { "organization": { "content": "$1", diff --git a/apps/desktop/src/locales/zh_CN/messages.json b/apps/desktop/src/locales/zh_CN/messages.json index a715d09c9a..282ee02731 100644 --- a/apps/desktop/src/locales/zh_CN/messages.json +++ b/apps/desktop/src/locales/zh_CN/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "您可以在 bitwarden.com 网页版密码库购买高级会员。现在要访问吗?" }, + "premiumPurchaseAlertV2": { + "message": "您可以在 Bitwarden 网页 App 的账户设置中购买高级版。" + }, "premiumCurrentMember": { "message": "您目前是高级会员!" }, diff --git a/apps/desktop/src/locales/zh_TW/messages.json b/apps/desktop/src/locales/zh_TW/messages.json index 96c358d148..dc11ce73b0 100644 --- a/apps/desktop/src/locales/zh_TW/messages.json +++ b/apps/desktop/src/locales/zh_TW/messages.json @@ -1174,6 +1174,9 @@ "premiumPurchaseAlert": { "message": "您可以在 bitwarden.com 網頁版密碼庫購買進階會員資格。現在要前往嗎?" }, + "premiumPurchaseAlertV2": { + "message": "You can purchase Premium from your account settings on the Bitwarden web app." + }, "premiumCurrentMember": { "message": "您目前是進階會員!" }, From d2d49b254d088c2ab5eb89b43d789cc2d0fcaedf Mon Sep 17 00:00:00 2001 From: Jason Ng Date: Thu, 22 Aug 2024 12:59:53 -0400 Subject: [PATCH 12/40] PM-10982 update autofill options to show different uri (#10625) --- .../autofill-options/autofill-options-view.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/vault/src/cipher-view/autofill-options/autofill-options-view.component.html b/libs/vault/src/cipher-view/autofill-options/autofill-options-view.component.html index 65a80009ce..f691a931db 100644 --- a/libs/vault/src/cipher-view/autofill-options/autofill-options-view.component.html +++ b/libs/vault/src/cipher-view/autofill-options/autofill-options-view.component.html @@ -8,7 +8,7 @@ {{ "website" | i18n }} - + - + {{ "password" | i18n }} - +
- - +
+ {{ "verificationCodeTotp" | i18n }} Date: Thu, 22 Aug 2024 16:38:21 -0400 Subject: [PATCH 16/40] [PM-10653] MP Reprompt Check for Inline Autofill (#10546) * add logic for MP reprompt on autofill of web input opening popout browser --- .../item-more-options.component.ts | 2 +- .../view-v2/view-v2.component.spec.ts | 5 +++ .../vault-v2/view-v2/view-v2.component.ts | 17 +++++-- .../vault-popup-autofill.service.spec.ts | 18 +++++++- .../services/vault-popup-autofill.service.ts | 45 +++++++++++++++---- 5 files changed, 72 insertions(+), 15 deletions(-) diff --git a/apps/browser/src/vault/popup/components/vault-v2/item-more-options/item-more-options.component.ts b/apps/browser/src/vault/popup/components/vault-v2/item-more-options/item-more-options.component.ts index 161a68043f..2bc3fcea2f 100644 --- a/apps/browser/src/vault/popup/components/vault-v2/item-more-options/item-more-options.component.ts +++ b/apps/browser/src/vault/popup/components/vault-v2/item-more-options/item-more-options.component.ts @@ -79,7 +79,7 @@ export class ItemMoreOptionsComponent { } async doAutofillAndSave() { - await this.vaultPopupAutofillService.doAutofillAndSave(this.cipher); + await this.vaultPopupAutofillService.doAutofillAndSave(this.cipher, false); } /** diff --git a/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.spec.ts b/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.spec.ts index 9943046b1c..9851b16aa4 100644 --- a/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.spec.ts +++ b/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.spec.ts @@ -16,6 +16,7 @@ import { CipherType } from "@bitwarden/common/vault/enums"; import { PopupRouterCacheService } from "../../../../../platform/popup/view-cache/popup-router-cache.service"; +import { VaultPopupAutofillService } from "./../../../services/vault-popup-autofill.service"; import { ViewV2Component } from "./view-v2.component"; // 'qrcode-parser' is used by `BrowserTotpCaptureService` but is an es6 module that jest can't compile. @@ -34,6 +35,9 @@ describe("ViewV2Component", () => { type: CipherType.Login, }; + const mockVaultPopupAutofillService = { + doAutofill: jest.fn(), + }; const mockUserId = Utils.newGuid() as UserId; const accountService: FakeAccountService = mockAccountServiceWith(mockUserId); @@ -66,6 +70,7 @@ describe("ViewV2Component", () => { }, }, }, + { provide: VaultPopupAutofillService, useValue: mockVaultPopupAutofillService }, { provide: AccountService, useValue: accountService, diff --git a/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.ts b/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.ts index 9b8403cd31..dbdf7287dd 100644 --- a/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.ts +++ b/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.ts @@ -8,6 +8,7 @@ import { firstValueFrom, map, Observable, switchMap } from "rxjs"; import { JslibModule } from "@bitwarden/angular/jslib.module"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { AUTOFILL_ID, SHOW_AUTOFILL_BUTTON } from "@bitwarden/common/autofill/constants"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service"; @@ -32,6 +33,7 @@ import { BrowserTotpCaptureService } from "../../../services/browser-totp-captur import { PopupFooterComponent } from "./../../../../../platform/popup/layout/popup-footer.component"; import { PopupHeaderComponent } from "./../../../../../platform/popup/layout/popup-header.component"; import { PopupPageComponent } from "./../../../../../platform/popup/layout/popup-page.component"; +import { VaultPopupAutofillService } from "./../../../services/vault-popup-autofill.service"; @Component({ selector: "app-view-v2", @@ -59,6 +61,7 @@ export class ViewV2Component { organization$: Observable; folder$: Observable; collections$: Observable; + loadAction: typeof AUTOFILL_ID | typeof SHOW_AUTOFILL_BUTTON; constructor( private route: ActivatedRoute, @@ -68,6 +71,7 @@ export class ViewV2Component { private dialogService: DialogService, private logService: LogService, private toastService: ToastService, + private vaultPopupAutofillService: VaultPopupAutofillService, private accountService: AccountService, ) { this.subscribeToParams(); @@ -77,14 +81,19 @@ export class ViewV2Component { this.route.queryParams .pipe( switchMap(async (params): Promise => { + this.loadAction = params.action; return await this.getCipherData(params.cipherId); }), + switchMap(async (cipher) => { + this.cipher = cipher; + this.headerText = this.setHeader(cipher.type); + if (this.loadAction === AUTOFILL_ID || this.loadAction === SHOW_AUTOFILL_BUTTON) { + await this.vaultPopupAutofillService.doAutofill(this.cipher); + } + }), takeUntilDestroyed(), ) - .subscribe((cipher) => { - this.cipher = cipher; - this.headerText = this.setHeader(cipher.type); - }); + .subscribe(); } setHeader(type: CipherType) { diff --git a/apps/browser/src/vault/popup/services/vault-popup-autofill.service.spec.ts b/apps/browser/src/vault/popup/services/vault-popup-autofill.service.spec.ts index 2df52e6b55..effadad07f 100644 --- a/apps/browser/src/vault/popup/services/vault-popup-autofill.service.spec.ts +++ b/apps/browser/src/vault/popup/services/vault-popup-autofill.service.spec.ts @@ -1,6 +1,7 @@ import { TestBed } from "@angular/core/testing"; +import { ActivatedRoute } from "@angular/router"; import { mock } from "jest-mock-extended"; -import { BehaviorSubject } from "rxjs"; +import { BehaviorSubject, of } from "rxjs"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; @@ -33,6 +34,9 @@ describe("VaultPopupAutofillService", () => { let service: VaultPopupAutofillService; const mockCurrentTab = { url: "https://example.com" } as chrome.tabs.Tab; + const mockActivatedRoute = { + queryParams: of({}), + } as any; // Create mocks for VaultPopupAutofillService const mockAutofillService = mock(); @@ -61,6 +65,7 @@ describe("VaultPopupAutofillService", () => { { provide: PasswordRepromptService, useValue: mockPasswordRepromptService }, { provide: CipherService, useValue: mockCipherService }, { provide: MessagingService, useValue: mockMessagingService }, + { provide: ActivatedRoute, useValue: mockActivatedRoute }, { provide: AccountService, useValue: accountService, @@ -258,6 +263,17 @@ describe("VaultPopupAutofillService", () => { expect(setTimeout).toHaveBeenCalledTimes(1); expect(BrowserApi.closePopup).toHaveBeenCalled(); }); + + it("should show a successful toast message if login form is populated", async () => { + jest.spyOn(BrowserPopupUtils, "inSingleActionPopout").mockReturnValue(true); + (service as any).currentAutofillTab$ = of({ id: 1234 }); + await service.doAutofill(mockCipher); + expect(mockToastService.showToast).toHaveBeenCalledWith({ + variant: "success", + title: null, + message: mockI18nService.t("autoFillSuccess"), + }); + }); }); }); diff --git a/apps/browser/src/vault/popup/services/vault-popup-autofill.service.ts b/apps/browser/src/vault/popup/services/vault-popup-autofill.service.ts index 66a432efe6..a2e032a54f 100644 --- a/apps/browser/src/vault/popup/services/vault-popup-autofill.service.ts +++ b/apps/browser/src/vault/popup/services/vault-popup-autofill.service.ts @@ -1,5 +1,7 @@ import { Injectable } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; import { + combineLatest, firstValueFrom, map, Observable, @@ -27,20 +29,30 @@ import { } from "../../../autofill/services/abstractions/autofill.service"; import { BrowserApi } from "../../../platform/browser/browser-api"; import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils"; +import { closeViewVaultItemPopout, VaultPopoutType } from "../utils/vault-popout-window"; @Injectable({ providedIn: "root", }) export class VaultPopupAutofillService { private _refreshCurrentTab$ = new Subject(); - + private senderTabId$: Observable = this.route.queryParams.pipe( + map((params) => (params?.senderTabId ? parseInt(params.senderTabId, 10) : undefined)), + ); /** - * Observable that contains the current tab to be considered for autofill. If there is no current tab - * or the popup is in a popout window, this will be null. + * Observable that contains the current tab to be considered for autofill. + * This can be the tab from the current window if opened in a Popup OR + * the sending tab when opened the single action Popout (specified by the senderTabId route query parameter) */ - currentAutofillTab$: Observable = this._refreshCurrentTab$.pipe( - startWith(null), - switchMap(async () => { + currentAutofillTab$: Observable = combineLatest([ + this.senderTabId$, + this._refreshCurrentTab$.pipe(startWith(null)), + ]).pipe( + switchMap(async ([senderTabId]) => { + if (senderTabId) { + return await BrowserApi.getTab(senderTabId); + } + if (BrowserPopupUtils.inPopout(window)) { return null; } @@ -73,6 +85,7 @@ export class VaultPopupAutofillService { private passwordRepromptService: PasswordRepromptService, private cipherService: CipherService, private messagingService: MessagingService, + private route: ActivatedRoute, private accountService: AccountService, ) { this._currentPageDetails$.subscribe(); @@ -124,7 +137,21 @@ export class VaultPopupAutofillService { return true; } - private _closePopup() { + private async _closePopup(cipher: CipherView, tab: chrome.tabs.Tab | null) { + if (BrowserPopupUtils.inSingleActionPopout(window, VaultPopoutType.viewVaultItem) && tab.id) { + this.toastService.showToast({ + variant: "success", + title: null, + message: this.i18nService.t("autoFillSuccess"), + }); + setTimeout(async () => { + await BrowserApi.focusTab(tab.id); + await closeViewVaultItemPopout(`${VaultPopoutType.viewVaultItem}_${cipher.id}`); + }, 1000); + + return; + } + if (!BrowserPopupUtils.inPopup(window)) { return; } @@ -158,7 +185,7 @@ export class VaultPopupAutofillService { const didAutofill = await this._internalDoAutofill(cipher, tab, pageDetails); if (didAutofill && closePopup) { - this._closePopup(); + await this._closePopup(cipher, tab); } return didAutofill; @@ -193,7 +220,7 @@ export class VaultPopupAutofillService { } if (closePopup) { - this._closePopup(); + await this._closePopup(cipher, tab); } else { this.toastService.showToast({ variant: "success", From 887d1924a331a292c5425136aac39b14166cf814 Mon Sep 17 00:00:00 2001 From: Jason Ng Date: Thu, 22 Aug 2024 16:38:41 -0400 Subject: [PATCH 17/40] PM-10982 add passkey field in login view. add testid for qa (#10634) --- .../autofill-options-view.component.html | 11 ++++++++++- .../login-credentials-view.component.html | 13 ++++++++++++- .../login-credentials-view.component.ts | 16 ++++++++++++++-- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/libs/vault/src/cipher-view/autofill-options/autofill-options-view.component.html b/libs/vault/src/cipher-view/autofill-options/autofill-options-view.component.html index f691a931db..c3da6c0a95 100644 --- a/libs/vault/src/cipher-view/autofill-options/autofill-options-view.component.html +++ b/libs/vault/src/cipher-view/autofill-options/autofill-options-view.component.html @@ -8,12 +8,20 @@ {{ "website" | i18n }} - +
diff --git a/libs/vault/src/cipher-view/login-credentials/login-credentials-view.component.html b/libs/vault/src/cipher-view/login-credentials/login-credentials-view.component.html index 68c56c125d..10b0a1a07c 100644 --- a/libs/vault/src/cipher-view/login-credentials/login-credentials-view.component.html +++ b/libs/vault/src/cipher-view/login-credentials/login-credentials-view.component.html @@ -23,7 +23,7 @@ [valueLabel]="'username' | i18n" showToast [appA11yTitle]="'copyValue' | i18n" - data-testid="toggle-username" + data-testid="copy-username" >
@@ -74,6 +74,17 @@ [showCount]="true" > + + {{ "typePasskey" | i18n }} + + {{ "verificationCodeTotp" | i18n }} diff --git a/libs/vault/src/cipher-view/login-credentials/login-credentials-view.component.ts b/libs/vault/src/cipher-view/login-credentials/login-credentials-view.component.ts index 880fbffc7b..d8683a4407 100644 --- a/libs/vault/src/cipher-view/login-credentials/login-credentials-view.component.ts +++ b/libs/vault/src/cipher-view/login-credentials/login-credentials-view.component.ts @@ -1,10 +1,11 @@ -import { CommonModule } from "@angular/common"; -import { Component, Input } from "@angular/core"; +import { CommonModule, DatePipe } from "@angular/common"; +import { Component, inject, Input } from "@angular/core"; import { Router } from "@angular/router"; import { Observable, shareReplay } from "rxjs"; import { JslibModule } from "@bitwarden/angular/jslib.module"; import { BillingAccountProfileStateService } from "@bitwarden/common/billing/abstractions"; +import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; import { CardComponent, @@ -47,12 +48,23 @@ export class LoginCredentialsViewComponent { showPasswordCount: boolean = false; passwordRevealed: boolean = false; totpCopyCode: string; + private datePipe = inject(DatePipe); constructor( private billingAccountProfileStateService: BillingAccountProfileStateService, private router: Router, + private i18nService: I18nService, ) {} + get fido2CredentialCreationDateValue(): string { + const dateCreated = this.i18nService.t("dateCreated"); + const creationDate = this.datePipe.transform( + this.cipher.login.fido2Credentials[0]?.creationDate, + "short", + ); + return `${dateCreated} ${creationDate}`; + } + async getPremium() { await this.router.navigate(["/premium"]); } From 62666c51f5ae429ed334cacd5de76450ae78f227 Mon Sep 17 00:00:00 2001 From: Vince Grassia <593223+vgrassia@users.noreply.github.com> Date: Thu, 22 Aug 2024 21:29:39 -0400 Subject: [PATCH 18/40] BRE-272 - Fix CLI release and publish workflows (#10688) --- .github/workflows/publish-cli.yml | 19 +++++++++++-------- .github/workflows/publish-web.yml | 4 ++-- .github/workflows/release-cli.yml | 3 ++- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index a7bb9ae8df..db91f1401c 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -35,6 +35,10 @@ on: default: true type: boolean +defaults: + run: + working-directory: apps/cli + jobs: setup: name: Setup @@ -42,6 +46,9 @@ jobs: outputs: release-version: ${{ steps.version-output.outputs.version }} deployment-id: ${{ steps.deployment.outputs.deployment_id }} + defaults: + run: + working-directory: . steps: - name: Branch check if: ${{ inputs.publish_type != 'Dry Run' }} @@ -83,9 +90,6 @@ jobs: if: inputs.snap_publish env: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} - defaults: - run: - working-directory: apps/cli steps: - name: Checkout repo uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 @@ -106,7 +110,7 @@ jobs: uses: samuelmeuli/action-snapcraft@d33c176a9b784876d966f80fb1b461808edc0641 # v2.1.1 - name: Download artifacts - run: wget https://github.com/bitwarden/clients/releases/cli-v${{ env._PKG_VERSION }}/download/bw_${{ env._PKG_VERSION }}_amd64.snap + run: wget https://github.com/bitwarden/clients/releases/download/cli-v${{ env._PKG_VERSION }}/bw_${{ env._PKG_VERSION }}_amd64.snap - name: Publish Snap & logout if: ${{ inputs.publish_type != 'Dry Run' }} @@ -145,15 +149,14 @@ jobs: CHOCO_API_KEY: ${{ steps.retrieve-secrets.outputs.cli-choco-api-key }} - name: Make dist dir - shell: pwsh run: New-Item -ItemType directory -Path ./dist - name: Download artifacts - run: wget https://github.com/bitwarden/clients/releases/cli-v${{ env._PKG_VERSION }}/download/bitwarden-cli.${{ env._PKG_VERSION }}.nupkg + shell: bash + run: wget https://github.com/bitwarden/clients/releases/download/cli-v${{ env._PKG_VERSION }}/bitwarden-cli.${{ env._PKG_VERSION }}.nupkg - name: Push to Chocolatey if: ${{ inputs.publish_type != 'Dry Run' }} - shell: pwsh run: | cd dist choco push --source=https://push.chocolatey.org/ @@ -182,7 +185,7 @@ jobs: secrets: "npm-api-key" - name: Download artifacts - run: wget https://github.com/bitwarden/clients/releases/cli-v${{ env._PKG_VERSION }}/download/bitwarden-cli-${{ env._PKG_VERSION }}-npm-build.zip + run: wget https://github.com/bitwarden/clients/releases/download/cli-v${{ env._PKG_VERSION }}/bitwarden-cli-${{ env._PKG_VERSION }}-npm-build.zip - name: Setup NPM run: | diff --git a/.github/workflows/publish-web.yml b/.github/workflows/publish-web.yml index c22bcdc370..b7ea849859 100644 --- a/.github/workflows/publish-web.yml +++ b/.github/workflows/publish-web.yml @@ -8,10 +8,10 @@ on: publish_type: description: 'Publish Options' required: true - default: 'Initial Publish' + default: 'Initial Release' type: choice options: - - Initial Publish + - Initial Release - Redeploy - Dry Run diff --git a/.github/workflows/release-cli.yml b/.github/workflows/release-cli.yml index 19d0677f6d..ddcdb4e904 100644 --- a/.github/workflows/release-cli.yml +++ b/.github/workflows/release-cli.yml @@ -92,7 +92,8 @@ jobs: apps/cli/bw-linux-sha256-${{ env.PKG_VERSION }}.txt, apps/cli/bitwarden-cli.${{ env.PKG_VERSION }}.nupkg, apps/cli/bw_${{ env.PKG_VERSION }}_amd64.snap, - apps/cli/bw-snap-sha256-${{ env.PKG_VERSION }}.txt" + apps/cli/bw-snap-sha256-${{ env.PKG_VERSION }}.txt, + apps/cli/bitwarden-cli-${{ env.PKG_VERSION }}-npm-build.zip" commit: ${{ github.sha }} tag: cli-v${{ env.PKG_VERSION }} name: CLI v${{ env.PKG_VERSION }} From edf9dac553a546392b011dd372d703e51156fbd5 Mon Sep 17 00:00:00 2001 From: Bitwarden DevOps <106330231+bitwarden-devops-bot@users.noreply.github.com> Date: Thu, 22 Aug 2024 22:20:28 -0400 Subject: [PATCH 19/40] Bumped client version(s) (#10690) --- apps/desktop/package.json | 2 +- apps/desktop/src/package-lock.json | 4 ++-- apps/desktop/src/package.json | 2 +- package-lock.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 977a00b04d..0056673a5a 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@bitwarden/desktop", "description": "A secure and free password manager for all of your devices.", - "version": "2024.8.0", + "version": "2024.8.1", "keywords": [ "bitwarden", "password", diff --git a/apps/desktop/src/package-lock.json b/apps/desktop/src/package-lock.json index 59cbea3910..ba7b14a054 100644 --- a/apps/desktop/src/package-lock.json +++ b/apps/desktop/src/package-lock.json @@ -1,12 +1,12 @@ { "name": "@bitwarden/desktop", - "version": "2024.8.0", + "version": "2024.8.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@bitwarden/desktop", - "version": "2024.8.0", + "version": "2024.8.1", "license": "GPL-3.0", "dependencies": { "@bitwarden/desktop-napi": "file:../desktop_native", diff --git a/apps/desktop/src/package.json b/apps/desktop/src/package.json index bed3b631da..2987d5ec74 100644 --- a/apps/desktop/src/package.json +++ b/apps/desktop/src/package.json @@ -2,7 +2,7 @@ "name": "@bitwarden/desktop", "productName": "Bitwarden", "description": "A secure and free password manager for all of your devices.", - "version": "2024.8.0", + "version": "2024.8.1", "author": "Bitwarden Inc. (https://bitwarden.com)", "homepage": "https://bitwarden.com", "license": "GPL-3.0", diff --git a/package-lock.json b/package-lock.json index c540eb7f37..c32bf45253 100644 --- a/package-lock.json +++ b/package-lock.json @@ -232,7 +232,7 @@ }, "apps/desktop": { "name": "@bitwarden/desktop", - "version": "2024.8.0", + "version": "2024.8.1", "hasInstallScript": true, "license": "GPL-3.0" }, From 72af0b078e5a58764861a0e7d3403f36ebc63ce9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 07:58:03 +0000 Subject: [PATCH 20/40] Autosync the updated translations (#10684) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/desktop/src/locales/zh_CN/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/desktop/src/locales/zh_CN/messages.json b/apps/desktop/src/locales/zh_CN/messages.json index 282ee02731..3c5f58c26b 100644 --- a/apps/desktop/src/locales/zh_CN/messages.json +++ b/apps/desktop/src/locales/zh_CN/messages.json @@ -1184,7 +1184,7 @@ "message": "感谢您支持 Bitwarden。" }, "premiumPrice": { - "message": "只需 $PRICE$ /年!", + "message": "全部仅需 $PRICE$ /年!", "placeholders": { "price": { "content": "$1", From 430d114fb911f53eafc56c1de1eadba351877531 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 07:58:44 +0000 Subject: [PATCH 21/40] Autosync the updated translations (#10685) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/browser/src/_locales/zh_CN/messages.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/browser/src/_locales/zh_CN/messages.json b/apps/browser/src/_locales/zh_CN/messages.json index 0fbedf2634..d99bb8e959 100644 --- a/apps/browser/src/_locales/zh_CN/messages.json +++ b/apps/browser/src/_locales/zh_CN/messages.json @@ -1116,7 +1116,7 @@ "message": "升级到高级版并接收:" }, "premiumPrice": { - "message": "所有功能仅需 $PRICE$ /年!", + "message": "全部仅需 $PRICE$ /年!", "placeholders": { "price": { "content": "$1", @@ -1125,7 +1125,7 @@ } }, "premiumPriceV2": { - "message": "所有功能仅需 $PRICE$ /年!", + "message": "全部仅需 $PRICE$ /年!", "placeholders": { "price": { "content": "$1", @@ -3970,10 +3970,10 @@ "message": "页面加载时自动填充吗?" }, "cardExpiredTitle": { - "message": "Expired card" + "message": "过期的支付卡" }, "cardExpiredMessage": { - "message": "If you've renewed it, update the card's information" + "message": "如果您的支付卡已续期,请更新该卡的信息。" }, "cardDetails": { "message": "支付卡详情" From 6f8ad2414fb53e4e29f6f4ed3110540c16f55823 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 07:59:04 +0000 Subject: [PATCH 22/40] Autosync the updated translations (#10686) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/web/src/locales/zh_CN/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/locales/zh_CN/messages.json b/apps/web/src/locales/zh_CN/messages.json index 893c93a98f..2ef18935e6 100644 --- a/apps/web/src/locales/zh_CN/messages.json +++ b/apps/web/src/locales/zh_CN/messages.json @@ -2268,7 +2268,7 @@ "message": "未来的更多高级功能。敬请期待!" }, "premiumPrice": { - "message": "只需 $PRICE$ /年!", + "message": "全部仅需 $PRICE$ /年!", "placeholders": { "price": { "content": "$1", From 49810beb244284383756925c48c754813e8118aa Mon Sep 17 00:00:00 2001 From: Vince Grassia <593223+vgrassia@users.noreply.github.com> Date: Fri, 23 Aug 2024 07:54:51 -0400 Subject: [PATCH 23/40] BRE-272 - Fix Publish Workflows (#10693) --- .github/workflows/publish-cli.yml | 9 ++++---- .github/workflows/publish-desktop.yml | 33 +++++++++------------------ 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index db91f1401c..09b6b53e58 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -152,14 +152,13 @@ jobs: run: New-Item -ItemType directory -Path ./dist - name: Download artifacts - shell: bash - run: wget https://github.com/bitwarden/clients/releases/download/cli-v${{ env._PKG_VERSION }}/bitwarden-cli.${{ env._PKG_VERSION }}.nupkg + run: Invoke-WebRequest -Uri "https://github.com/bitwarden/clients/releases/download/cli-v${{ env._PKG_VERSION }}/bitwarden-cli.${{ env._PKG_VERSION }}.nupkg" -OutFile bitwarden-cli.${{ env._PKG_VERSION }}.nupkg + working-directory: apps/cli/dist - name: Push to Chocolatey if: ${{ inputs.publish_type != 'Dry Run' }} - run: | - cd dist - choco push --source=https://push.chocolatey.org/ + run: choco push --source=https://push.chocolatey.org/ + working-directory: apps/cli/dist npm: name: Publish NPM diff --git a/.github/workflows/publish-desktop.yml b/.github/workflows/publish-desktop.yml index 0554270645..c03697fc80 100644 --- a/.github/workflows/publish-desktop.yml +++ b/.github/workflows/publish-desktop.yml @@ -15,7 +15,7 @@ on: - Republish - Dry Run version: - description: 'Version to publish (default: latest cli release)' + description: 'Version to publish (default: latest desktop release)' required: true type: string default: latest @@ -35,10 +35,6 @@ on: default: true type: boolean -defaults: - run: - shell: bash - jobs: setup: name: Setup @@ -129,19 +125,15 @@ jobs: secrets: "aws-electron-access-id, aws-electron-access-key, aws-electron-bucket-name" - - - name: Download all artifacts - if: ${{ inputs.publish_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@main - with: - workflow: build-desktop.yml - workflow_conclusion: success - branch: ${{ github.ref_name }} - path: apps/desktop/artifacts + + - name: Create artifacts directory + run: mkdir -p apps/desktop/artifacts - name: Download artifacts + env: + GH_TOKEN: ${{ github.token }} working-directory: apps/desktop/artifacts - run: gh release download ${{ env._RELEASE_TAG }} -R bitwarden/desktop + run: gh release download ${{ env._RELEASE_TAG }} -R bitwarden/clients - name: Set staged rollout percentage env: @@ -186,7 +178,7 @@ jobs: name: Deploy Snap runs-on: ubuntu-22.04 needs: setup - if: ${{ inputs.snap_publish == 'true' }} + if: inputs.snap_publish env: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} _RELEASE_TAG: ${{ needs.setup.outputs.tag-name }} @@ -215,7 +207,7 @@ jobs: - name: Download artifacts working-directory: apps/desktop/dist - run: wget https://github.com/bitwarden/clients/releases/${{ env._RELEASE_TAG }}/download/bitwarden_${{ env._PKG_VERSION }}_amd64.snap + run: wget https://github.com/bitwarden/clients/releases/download/${{ env._RELEASE_TAG }}/bitwarden_${{ env._PKG_VERSION }}_amd64.snap - name: Deploy to Snap Store if: ${{ inputs.publish_type != 'Dry Run' }} @@ -230,7 +222,7 @@ jobs: name: Deploy Choco runs-on: windows-2022 needs: setup - if: ${{ inputs.choco_publish == 'true' }} + if: inputs.choco_publish env: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} _RELEASE_TAG: ${{ needs.setup.outputs.tag-name }} @@ -256,23 +248,20 @@ jobs: secrets: "cli-choco-api-key" - name: Setup Chocolatey - shell: pwsh run: choco apikey --key $env:CHOCO_API_KEY --source https://push.chocolatey.org/ env: CHOCO_API_KEY: ${{ steps.retrieve-secrets.outputs.cli-choco-api-key }} - name: Make dist dir - shell: pwsh run: New-Item -ItemType directory -Path ./dist working-directory: apps/desktop - name: Download artifacts working-directory: apps/desktop/dist - run: wget https://github.com/bitwarden/clients/releases/${{ env._RELEASE_TAG }}/download/bitwarden.${{ env._PKG_VERSION }}.nupkg + run: Invoke-WebRequest -Uri "https://github.com/bitwarden/clients/releases/download/${{ env._RELEASE_TAG }}/bitwarden.${{ env._PKG_VERSION }}.nupkg" -OutFile bitwarden.${{ env._PKG_VERSION }}.nupkg - name: Push to Chocolatey if: ${{ inputs.publish_type != 'Dry Run' }} - shell: pwsh run: choco push --source=https://push.chocolatey.org/ working-directory: apps/desktop/dist From 3d1f08c7f5bd0d5f4fb91216a69fda161e33719c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 10:01:37 -0400 Subject: [PATCH 24/40] [deps] Design System: Update chromatic to v11 (#10610) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 13 +++++++------ package.json | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index c32bf45253..ae009125b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -124,7 +124,7 @@ "babel-loader": "9.1.3", "base64-loader": "1.0.0", "browserslist": "4.23.2", - "chromatic": "10.9.6", + "chromatic": "11.7.1", "concurrently": "8.2.2", "copy-webpack-plugin": "12.0.2", "cross-env": "7.0.3", @@ -12645,18 +12645,19 @@ } }, "node_modules/chromatic": { - "version": "10.9.6", - "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-10.9.6.tgz", - "integrity": "sha512-1MoT+/U+vQwEiq2GuehPyStbqhxqHmM1B9pdpVU1dKh26userQg1FyOFYifkTgy+9reo2w2p7sAbc0JRd2kzlA==", + "version": "11.7.1", + "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-11.7.1.tgz", + "integrity": "sha512-LvgPimdQdnQB07ZDxLEC2KtxgYeqTw0X71GA7fi3zhgtKLxZcE+BSZ/5I9rrQp1V8ydmfElfw0ZwnUH4fVgUAQ==", "dev": true, + "license": "MIT", "bin": { "chroma": "dist/bin.js", "chromatic": "dist/bin.js", "chromatic-cli": "dist/bin.js" }, "peerDependencies": { - "@chromatic-com/cypress": "^0.5.2 || ^1.0.0", - "@chromatic-com/playwright": "^0.5.2 || ^1.0.0" + "@chromatic-com/cypress": "^0.*.* || ^1.0.0", + "@chromatic-com/playwright": "^0.*.* || ^1.0.0" }, "peerDependenciesMeta": { "@chromatic-com/cypress": { diff --git a/package.json b/package.json index 0fe85f018a..75b450e4d2 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "babel-loader": "9.1.3", "base64-loader": "1.0.0", "browserslist": "4.23.2", - "chromatic": "10.9.6", + "chromatic": "11.7.1", "concurrently": "8.2.2", "copy-webpack-plugin": "12.0.2", "cross-env": "7.0.3", From ea5404c306b2b7c19861da386780c362e96b43b9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 10:18:08 -0400 Subject: [PATCH 25/40] [deps] Design System: Update storybook monorepo to v8.2.9 (#10558) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 351 +++++++++++++++++++++++++--------------------- package.json | 18 +-- 2 files changed, 204 insertions(+), 165 deletions(-) diff --git a/package-lock.json b/package-lock.json index ae009125b9..eed0eda095 100644 --- a/package-lock.json +++ b/package-lock.json @@ -85,15 +85,15 @@ "@electron/notarize": "2.4.0", "@electron/rebuild": "3.6.0", "@ngtools/webpack": "16.2.14", - "@storybook/addon-a11y": "8.2.6", - "@storybook/addon-actions": "8.2.6", + "@storybook/addon-a11y": "8.2.9", + "@storybook/addon-actions": "8.2.9", "@storybook/addon-designs": "8.0.3", - "@storybook/addon-essentials": "8.2.6", - "@storybook/addon-interactions": "8.2.6", - "@storybook/addon-links": "8.2.6", - "@storybook/angular": "8.2.6", - "@storybook/manager-api": "8.2.6", - "@storybook/theming": "8.2.6", + "@storybook/addon-essentials": "8.2.9", + "@storybook/addon-interactions": "8.2.9", + "@storybook/addon-links": "8.2.9", + "@storybook/angular": "8.2.9", + "@storybook/manager-api": "8.2.9", + "@storybook/theming": "8.2.9", "@types/argon2-browser": "1.18.4", "@types/chrome": "0.0.270", "@types/firefox-webext-browser": "111.0.5", @@ -169,7 +169,7 @@ "rimraf": "6.0.1", "sass": "1.74.1", "sass-loader": "14.2.1", - "storybook": "8.2.6", + "storybook": "8.2.9", "style-loader": "3.3.4", "tailwindcss": "3.4.10", "ts-jest": "29.2.2", @@ -7027,12 +7027,13 @@ } }, "node_modules/@storybook/addon-a11y": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-8.2.6.tgz", - "integrity": "sha512-GRD50atWJz/V9E6Wyvx4HZWIBAR9m8A0Zn+yBoDVmWzXPOKI62HmWG5zpznCUR7stTt+gAkda1HG7H4KysTZWg==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-8.2.9.tgz", + "integrity": "sha512-9zm0Ecn2KUUKZbRsQM5l2KcQ8RHK6a9eqdQtOMjGagrdUvUstcf7XjBmV1W6PQE2Urj93ciz1cgx4T1AYQyKtA==", "dev": true, + "license": "MIT", "dependencies": { - "@storybook/addon-highlight": "8.2.6", + "@storybook/addon-highlight": "8.2.9", "axe-core": "^4.2.0" }, "funding": { @@ -7040,14 +7041,15 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/addon-actions": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.2.6.tgz", - "integrity": "sha512-iCsf3V28/jJ95w2zd8aSvR4denoA2UYV3fpNCTGOURqICyKOG3cyVxvqKp8Hhcwn7trNOsK+HlL6q5gpv56ViA==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.2.9.tgz", + "integrity": "sha512-eh2teOqjga7aoClDVV+/b1gHJqsPwjiU1t+Hg/l4i2CkaBUNdYMEL90nR6fgReOdvvL5YhcPwJ8w38f9TrQcoQ==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "@types/uuid": "^9.0.1", @@ -7060,14 +7062,15 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/addon-backgrounds": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.2.6.tgz", - "integrity": "sha512-61NFowA6EmCw+Eyzp0U4fat9MlPDdnT7aoDyzqSImLwWLITY9IvmWuTeo7XKJZN3fe22z1r7cZseKdYrtaHcKw==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.2.9.tgz", + "integrity": "sha512-eGmZAd742ORBbQ6JepzBCko/in62T4Xg9j9LVa+Cvz/7L1C/RQSuU6sUwbRAsXaz+PMVDksPDCUUNsXl3zUL7w==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3", @@ -7078,14 +7081,15 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/addon-controls": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.2.6.tgz", - "integrity": "sha512-EHUwHy+oZZv3pXzN7fuXWrS/meHFjqcELY3RBvOyEkGf21agl6co6R1tnf6d5N5QoYAGfIbDO7dkauSL2RfNAw==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.2.9.tgz", + "integrity": "sha512-vaSE78KOE7SO0GrW4e+mdQphSNpvCX/FGybIRxyaKX9h8smoyUwRNHVyCS3ROHTwH324QWu7GDzsOVrnyXOv0A==", "dev": true, + "license": "MIT", "dependencies": { "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -7096,7 +7100,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/addon-designs": { @@ -7133,17 +7137,18 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.2.6.tgz", - "integrity": "sha512-qe7hxntaezqjKdU9QS+Q9NFL6i/uNdBxdvOnCKgPhBAY/zY6yhk5t3sOvonynPK5nkaNAowfSNPIzNxAXlJ1sA==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.2.9.tgz", + "integrity": "sha512-flDOxFIGmXg+6lVdwTLMOKsGob1WrT7rG98mn1SNW0Nxhg3Wg+9pQuq1GLxEzKtAgSflmu+xcBRfYhsogyDXkw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.24.4", "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.2.6", - "@storybook/csf-plugin": "8.2.6", + "@storybook/blocks": "8.2.9", + "@storybook/csf-plugin": "8.2.9", "@storybook/global": "^5.0.0", - "@storybook/react-dom-shim": "8.2.6", + "@storybook/react-dom-shim": "8.2.9", "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", "fs-extra": "^11.1.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0", @@ -7157,24 +7162,25 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/addon-essentials": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.2.6.tgz", - "integrity": "sha512-diGjGZcZNov+RCAVQBTm8JKP2kUtMRuJIQFBeXdPWpu6hYBk6lw1FlAf2GywWGCvdny1pJT90hfoD33qUMNuDg==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.2.9.tgz", + "integrity": "sha512-B2d3eznGZvPIyCVtYX0UhrYcEfK+3Y2sACmEWpSwtk8KXomFEsZnD95m397BYDRw3/X6qeSLWxqgMfqDTEDeMA==", "dev": true, + "license": "MIT", "dependencies": { - "@storybook/addon-actions": "8.2.6", - "@storybook/addon-backgrounds": "8.2.6", - "@storybook/addon-controls": "8.2.6", - "@storybook/addon-docs": "8.2.6", - "@storybook/addon-highlight": "8.2.6", - "@storybook/addon-measure": "8.2.6", - "@storybook/addon-outline": "8.2.6", - "@storybook/addon-toolbars": "8.2.6", - "@storybook/addon-viewport": "8.2.6", + "@storybook/addon-actions": "8.2.9", + "@storybook/addon-backgrounds": "8.2.9", + "@storybook/addon-controls": "8.2.9", + "@storybook/addon-docs": "8.2.9", + "@storybook/addon-highlight": "8.2.9", + "@storybook/addon-measure": "8.2.9", + "@storybook/addon-outline": "8.2.9", + "@storybook/addon-toolbars": "8.2.9", + "@storybook/addon-viewport": "8.2.9", "ts-dedent": "^2.0.0" }, "funding": { @@ -7182,14 +7188,15 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/addon-highlight": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.2.6.tgz", - "integrity": "sha512-03cV9USsfP3bS4wYV06DYcIaGPfoheQe53Q0Jr1B2yJUVyIPKvmO2nGjLBsqzeL3Wl7vSfLQn0/dUdxCcbqLsw==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.2.9.tgz", + "integrity": "sha512-qdcazeNQoo9QKIq+LJJZZXvFZoLn+i4uhbt1Uf9WtW6oU/c1qxORGVD7jc3zsxbQN9nROVPbJ76sfthogxeqWA==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0" }, @@ -7198,18 +7205,19 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/addon-interactions": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.2.6.tgz", - "integrity": "sha512-YXpHf8jWPz9HJV+Fw4GaunaCWeE6uqF24aLXdAd8xuhN1UfWJeNV6AwAvFQ0hTLqvmz0yMhX/5JXDKeKESoYDA==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.2.9.tgz", + "integrity": "sha512-oSxBkqpmp1Vm9v/G8mZeFNXD8k6T1NMgzUWzAx7R5m31rfObhoi5Fo1bKQT5BAhSSsdjjd7owTAFKdhwSotSKg==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.2.6", - "@storybook/test": "8.2.6", + "@storybook/instrumenter": "8.2.9", + "@storybook/test": "8.2.9", "polished": "^4.2.2", "ts-dedent": "^2.2.0" }, @@ -7218,14 +7226,15 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/addon-links": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.2.6.tgz", - "integrity": "sha512-CUuU3nk8wyZ3bljCmOG/OCKazan+bPuNbCph8N763zyzdEx5M/CbBxV9d3pi3zjYpix7txlqrl2/YdMCejfyFw==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.2.9.tgz", + "integrity": "sha512-RhJzUNdDb7lbliwXb64HMwieIeJ+OQ2Ditue1vmSox6NsSd+pshR+okHpAyoP1+fW+dahNENwAS2Kt2QiI78FA==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/csf": "0.1.11", "@storybook/global": "^5.0.0", @@ -7237,7 +7246,7 @@ }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.2.6" + "storybook": "^8.2.9" }, "peerDependenciesMeta": { "react": { @@ -7246,10 +7255,11 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.2.6.tgz", - "integrity": "sha512-neI8YeSOAtOmzasLxo6O8ZLr2ebMaD7XVF+kYatl5+SpyuwwvUGcP9NkKe5S+mB8V2zxFUIsXS74XrhmQhRoaQ==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.2.9.tgz", + "integrity": "sha512-XUfQtYRKWB2dfbPRmHuos816wt1JrLbtRld5ZC8J8ljeqZ4hFBPTQcgI5GAzZqjQuclLC0KuhlA/0bKxdxMMGA==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "tiny-invariant": "^1.3.1" @@ -7259,14 +7269,15 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/addon-outline": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.2.6.tgz", - "integrity": "sha512-uAlPtqDWlq7MQQ4zJT80qdjbSdLF/zsvtPhidX6h9cjLKNPWAv79xJQ14AJHaMv+Hzy5xKnM4wdEhgPbzKabQg==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.2.9.tgz", + "integrity": "sha512-p22kI4W7MT0YJOCmg/FfhfH+NpZEDA5tgwstjazSg4ertyhaxziMwWZWiK2JCg0gOAfRJjoYjHz+6/u56iXwgQ==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "ts-dedent": "^2.0.0" @@ -7276,27 +7287,29 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/addon-toolbars": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.2.6.tgz", - "integrity": "sha512-0JmRirMpxHS6VZzBk0kY871xWTpkk3TN4S1sxoFf5fcnCfVTHDjEJ5Ws/QWru1RJlIZHuJKRdQIA6Vuq5X+KfQ==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.2.9.tgz", + "integrity": "sha512-9LMZZ2jRD86Jh6KXedDbAYs4eHj9HtJA9VhSEE2wiqMGwXozpySi7B1GWniNzmFfcgMQ4JHfmD/OrBVTK7Ca/w==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/addon-viewport": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.2.6.tgz", - "integrity": "sha512-IAxH9H8tVFzSmZhKf5E+EALiAdkp19RzGqP/rWluD8LH7oW5HumQE/4oN0ZhVMy1RxYsCKFYjWyAp7AuxeMRSw==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.2.9.tgz", + "integrity": "sha512-lyM24+DJEt8R0YZkJKee34NQWv0REACU6lYDalqJNdKS1sEwzLGWxg1hZXnw2JFdBID9NGVvyYU2w6LDozOB0g==", "dev": true, + "license": "MIT", "dependencies": { "memoizerific": "^1.11.3" }, @@ -7305,22 +7318,23 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/angular": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/angular/-/angular-8.2.6.tgz", - "integrity": "sha512-kzOA4H09oDMq2KAg3iVDo0cWFx4u8qYbrMaMCbd/UjuSYd1Qx965Dx0m0i5i6t7BObUe5R5RlDhBo/JXAyQ55g==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/angular/-/angular-8.2.9.tgz", + "integrity": "sha512-E2rmWJOgwHa2SASsTuJMIV/eNywTz8TloRHld2BfoZCBmox8Wf9PrcnyPQ8BmmJUygfs2Vrh3wmrqzrdB8oTHw==", "dev": true, + "license": "MIT", "dependencies": { - "@storybook/builder-webpack5": "8.2.6", - "@storybook/components": "^8.2.6", - "@storybook/core-webpack": "8.2.6", + "@storybook/builder-webpack5": "8.2.9", + "@storybook/components": "^8.2.9", + "@storybook/core-webpack": "8.2.9", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "^8.2.6", - "@storybook/preview-api": "^8.2.6", - "@storybook/theming": "^8.2.6", + "@storybook/manager-api": "^8.2.9", + "@storybook/preview-api": "^8.2.9", + "@storybook/theming": "^8.2.9", "@types/node": "^18.0.0", "@types/react": "^18.0.37", "@types/react-dom": "^18.0.11", @@ -7355,7 +7369,7 @@ "@angular/platform-browser": ">=15.0.0 < 19.0.0", "@angular/platform-browser-dynamic": ">=15.0.0 < 19.0.0", "rxjs": "^6.0.0 || ^7.4.0", - "storybook": "^8.2.6", + "storybook": "^8.2.9", "typescript": "^4.0.0 || ^5.0.0", "zone.js": ">= 0.11.1 < 1.0.0" }, @@ -7366,19 +7380,21 @@ } }, "node_modules/@storybook/angular/node_modules/@types/node": { - "version": "18.19.42", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.42.tgz", - "integrity": "sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==", + "version": "18.19.44", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.44.tgz", + "integrity": "sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@storybook/blocks": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.2.6.tgz", - "integrity": "sha512-nMlZJjVTyfOJ6xwORptsNuS1AZZlDbJUVXc2R8uukGd5GIXxxCdrPk4NvUsjfQslMT9LhYuFld3z62FATsM2rw==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.2.9.tgz", + "integrity": "sha512-5276q/s/UL8arwftuBXovUNHqYo/HPQFMGXEmjVVAMXUyFjzEAfKj3+xU897J6AuL+7XVZG32WnqA+X6LJMrcQ==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/csf": "0.1.11", "@storybook/global": "^5.0.0", @@ -7402,7 +7418,7 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.2.6" + "storybook": "^8.2.9" }, "peerDependenciesMeta": { "react": { @@ -7414,12 +7430,13 @@ } }, "node_modules/@storybook/builder-webpack5": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-8.2.6.tgz", - "integrity": "sha512-ba25XOXifbAxUYprw5WWcrYq/2DJODFoOHdv7YZqzjKeDDbg1Us8F+72zlBCdr38wY4V9084Sd8EBVXV5bxzRQ==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-8.2.9.tgz", + "integrity": "sha512-D3oYk4LkteWZ3QLcdUTu/0rUvVNUp/bWwEKAycZDr2uFCOhv8VoS2/l/TaHjn3wpyWpVVKS6GgdP72K++YVufg==", "dev": true, + "license": "MIT", "dependencies": { - "@storybook/core-webpack": "8.2.6", + "@storybook/core-webpack": "8.2.9", "@types/node": "^18.0.0", "@types/semver": "^7.3.4", "browser-assert": "^1.2.1", @@ -7452,7 +7469,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" }, "peerDependenciesMeta": { "typescript": { @@ -7479,15 +7496,16 @@ } }, "node_modules/@storybook/codemod": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.2.6.tgz", - "integrity": "sha512-+mFJ6R+JhJLpU7VPDlXU5Yn6nqIBq745GaEosnIiFOdNo3jaxJ58wq/sGhbQvoCHPUxMA+sDQvR7pS62YFoLRQ==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.2.9.tgz", + "integrity": "sha512-3yRx1lFMm1FXWVv+CKDiYM4gOQPEfpcZAQrjfcumxSDUrB091pnU1PeI92Prj3vCdi4+0oPNuN4yDGNUYTMP/A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.24.4", "@babel/preset-env": "^7.24.4", "@babel/types": "^7.24.0", - "@storybook/core": "8.2.6", + "@storybook/core": "8.2.9", "@storybook/csf": "0.1.11", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", @@ -7564,23 +7582,25 @@ } }, "node_modules/@storybook/components": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.2.6.tgz", - "integrity": "sha512-H8ckH1AnLkHtMtvJ3J8LxnmDtHxkJ7NJacGctHMRrsBIvdKTVwlT4su5nAVVJlan/PrEou+jESfw+OjjBYE5PA==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.2.9.tgz", + "integrity": "sha512-OkkcZ/f/6o3GdFEEK9ZHKIGHWUHmavZUYs5xaSgU64bOrA2aqEFtfeWWitZYTv3Euhk8MVLWfyEMDfez0AlvDg==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/core": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.2.6.tgz", - "integrity": "sha512-XY71g3AcpD6IiER9k9Lt+vlUMYfPIYgWekd7e0Ggzz2gJkPuLunKEdQccLGDSHf5OFAobHhrTJc7ZsvWhmDMag==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.2.9.tgz", + "integrity": "sha512-wSER8FpA6Il/jPyDfKm3yohxDtuhisNPTonMVzd3ulNWR4zERLddyO3HrHJJwdqYHLNk4SBFzwMGpQZVws1y0w==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/csf": "0.1.11", "@types/express": "^4.17.21", @@ -7600,10 +7620,11 @@ } }, "node_modules/@storybook/core-webpack": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-8.2.6.tgz", - "integrity": "sha512-RSqRVNrxrp2pKoQeSmaiHMz7GvAzQ7BV+qPi9gDRDDCuAPrjpY8a17KyqmCJ617asDAb+OEQNBks802xM3pEQw==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-8.2.9.tgz", + "integrity": "sha512-6yL1su+d8IOTU+UkZqM9SeBcVc/G6vUHLsMdlWNyVtRus2JTMmT0K0/ll56jrm/ym0y98cxUOA1jsImkBubP2Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "^18.0.0", "ts-dedent": "^2.0.0" @@ -7613,23 +7634,25 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/core-webpack/node_modules/@types/node": { - "version": "18.19.42", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.42.tgz", - "integrity": "sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==", + "version": "18.19.44", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.44.tgz", + "integrity": "sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@storybook/core/node_modules/@types/node": { - "version": "18.19.42", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.42.tgz", - "integrity": "sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==", + "version": "18.19.44", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.44.tgz", + "integrity": "sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } @@ -7644,10 +7667,11 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.2.6.tgz", - "integrity": "sha512-USn7E/bMQYVqvFBuW6d9rKoSuCImjk0BAmc/0wIOuMQ/yQNp2Xze0m8eVkNHUIUDokyx0TXDjRjwq10Xxk16ag==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.2.9.tgz", + "integrity": "sha512-QQCFb3g12VQQEraDV1UfCmniGhQZKyT6oEt1Im6dzzPJj9NQk+6BjWoDep33CZhBHWoLryrMQd2fjuHxnFRNEA==", "dev": true, + "license": "MIT", "dependencies": { "unplugin": "^1.3.1" }, @@ -7656,7 +7680,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/global": { @@ -7679,10 +7703,11 @@ } }, "node_modules/@storybook/instrumenter": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.2.6.tgz", - "integrity": "sha512-RxtpcMTUSq8/wPM6cR6EXVrPEiNuRbC71cIFVFZagOFYvnnOKwSPV+GOLPK0wxMbGB4c5/+Xe8ADefmZTvxOsA==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.2.9.tgz", + "integrity": "sha512-+DNjTbsMzlDggsvkhRuOy7aGvQJ4oLCPgunP5Se/3yBjG+M2bYDa0EmC5jC2nwZ3ffpuvbzaVe7fWf7R8W9F2Q==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "@vitest/utils": "^1.3.1", @@ -7693,40 +7718,43 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/manager-api": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.2.6.tgz", - "integrity": "sha512-uv36h/b5RhlajWtEg4cVPBYV8gZs6juux0nIE+6G9i7vt8Ild6gM9tW1KNabgZcaHFiyWJYCNWxJZoKjgUmXDg==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.2.9.tgz", + "integrity": "sha512-mkYvUlfqDw+0WbxIynh5TcrotmoXlumEsOA4+45zuNea8XpEgj5cNBUCnmfEO6yQ85swqkS8YYbMpg1cZyu/Vw==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/preview-api": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.2.6.tgz", - "integrity": "sha512-5vTj2ndX5ng4nDntZYe+r8UwLjCIGFymhq5/r2adAvRKL+Bo4zQDWGO7bhvGJk16do2THb2JvPz49ComW9LLZw==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.2.9.tgz", + "integrity": "sha512-D8/t+a78OJqQAcT/ABa1C4YM/OaLGQ9IvCsp3Q9ruUqDCwuZBj8bG3D4477dlY4owX2ycC0rWYu3VvuK0EmJjA==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/react-dom-shim": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.2.6.tgz", - "integrity": "sha512-B+x8UAEQPDp1yhN3tMh09NvSL38QNfJB7PAyLgKrfE7xIAzvewq+RLW2DfGkoZCy+Zr7QSHm1p7NOgud8+sQCg==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.2.9.tgz", + "integrity": "sha512-uCAjSQEsNk8somVn1j/I1G9G/uUax5byHseIIV0Eq3gVXttGd7gaWcP+TDHtqIaenWHx4l+hCSuCesxiLWmx4Q==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -7734,17 +7762,18 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/test": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.2.6.tgz", - "integrity": "sha512-nTzNxReBcMRlX1+8PNU/MuA9ArFbeQhfZXMBIwJJoHOhnNe1knYpyn1++xINxAHKOh0BBhQ0NIMoKdcGmW3V6w==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.2.9.tgz", + "integrity": "sha512-O5JZ5S8UVVR7V0ru5AiF/uRO+srAVwji0Iik7ihy8gw3V91WQNMmJh2KkdhG0R1enYeBsYZlipOm+AW7f/MmOA==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/csf": "0.1.11", - "@storybook/instrumenter": "8.2.6", + "@storybook/instrumenter": "8.2.9", "@testing-library/dom": "10.1.0", "@testing-library/jest-dom": "6.4.5", "@testing-library/user-event": "14.5.2", @@ -7757,20 +7786,21 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@storybook/theming": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.2.6.tgz", - "integrity": "sha512-ICnYuLIVsYifVCMQljdHgrp+5vAquNybHxDGWiPeOxBicotwHF8rLhTckD2CdVQbMp0jk6r6jetvjXbFJ2MbvQ==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.2.9.tgz", + "integrity": "sha512-OL0NFvowPX85N5zIYdgeKKaFm7V4Vgtci093vL3cDZT13LGH6GuEzJKkUFGuUGNPFlJc+EgTj0o6PYKrOLyQ6w==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.2.6" + "storybook": "^8.2.9" } }, "node_modules/@szmarczak/http-timer": { @@ -15611,6 +15641,7 @@ "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -32178,15 +32209,16 @@ } }, "node_modules/storybook": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.2.6.tgz", - "integrity": "sha512-8j30wDxQmkcqI0fWcSYFsUCjErsY1yTWbTW+yjbwM8DyW18Cud6CwbFRCxjFsH+2M0CjP6Pqs/m1PGI0vcQscQ==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.2.9.tgz", + "integrity": "sha512-S7Q/Yt4A+nu1O23rg39lQvBqL2Vg+PKXbserDWUR4LFJtfmoZ2xGO8oFIhJmvvhjUBvolw1q7QDeswPq2i0sGw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.24.4", "@babel/types": "^7.24.0", - "@storybook/codemod": "8.2.6", - "@storybook/core": "8.2.6", + "@storybook/codemod": "8.2.9", + "@storybook/core": "8.2.9", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -32227,6 +32259,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } @@ -32236,6 +32269,7 @@ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -32252,6 +32286,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", @@ -32272,6 +32307,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -32284,6 +32320,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -34640,10 +34677,11 @@ } }, "node_modules/unplugin": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.12.0.tgz", - "integrity": "sha512-KeczzHl2sATPQUx1gzo+EnUkmN4VmGBYRRVOZSGvGITE9rGHRDGqft6ONceP3vgXcyJ2XjX5axG5jMWUwNCYLw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.12.2.tgz", + "integrity": "sha512-bEqQxeC7rxtxPZ3M5V4Djcc4lQqKPgGe3mAWZvxcSmX5jhGxll19NliaRzQSQPrk4xJZSGniK3puLWpRuZN7VQ==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^8.12.1", "chokidar": "^3.6.0", @@ -34659,6 +34697,7 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", diff --git a/package.json b/package.json index 75b450e4d2..99fd8a4049 100644 --- a/package.json +++ b/package.json @@ -47,15 +47,15 @@ "@electron/notarize": "2.4.0", "@electron/rebuild": "3.6.0", "@ngtools/webpack": "16.2.14", - "@storybook/addon-a11y": "8.2.6", - "@storybook/addon-actions": "8.2.6", + "@storybook/addon-a11y": "8.2.9", + "@storybook/addon-actions": "8.2.9", "@storybook/addon-designs": "8.0.3", - "@storybook/addon-essentials": "8.2.6", - "@storybook/addon-interactions": "8.2.6", - "@storybook/addon-links": "8.2.6", - "@storybook/angular": "8.2.6", - "@storybook/manager-api": "8.2.6", - "@storybook/theming": "8.2.6", + "@storybook/addon-essentials": "8.2.9", + "@storybook/addon-interactions": "8.2.9", + "@storybook/addon-links": "8.2.9", + "@storybook/angular": "8.2.9", + "@storybook/manager-api": "8.2.9", + "@storybook/theming": "8.2.9", "@types/argon2-browser": "1.18.4", "@types/chrome": "0.0.270", "@types/firefox-webext-browser": "111.0.5", @@ -131,7 +131,7 @@ "rimraf": "6.0.1", "sass": "1.74.1", "sass-loader": "14.2.1", - "storybook": "8.2.6", + "storybook": "8.2.9", "style-loader": "3.3.4", "tailwindcss": "3.4.10", "ts-jest": "29.2.2", From 0d75b71ea9d593fca6d83cb67c042e819f5eb5db Mon Sep 17 00:00:00 2001 From: cyprain-okeke <108260115+cyprain-okeke@users.noreply.github.com> Date: Fri, 23 Aug 2024 16:45:03 +0100 Subject: [PATCH 26/40] [AC-2708][AC-2712][AC-2713] upgrading from a Organizations new design changes (#10662) * Changes base on the new design * changes base on the new design * Fix the family plan summary issue --- .../change-plan-dialog.component.html | 630 +++++++++++++++--- .../change-plan-dialog.component.ts | 207 ++++-- apps/web/src/locales/en/messages.json | 51 ++ 3 files changed, 745 insertions(+), 143 deletions(-) diff --git a/apps/web/src/app/billing/organizations/change-plan-dialog.component.html b/apps/web/src/app/billing/organizations/change-plan-dialog.component.html index 0ca913a3b7..96bf6c43a3 100644 --- a/apps/web/src/app/billing/organizations/change-plan-dialog.component.html +++ b/apps/web/src/app/billing/organizations/change-plan-dialog.component.html @@ -5,40 +5,40 @@

{{ "upgradePlan" | i18n }}

-
+
{{ "selectAPlan" | i18n }} - - + {{ + "upgradeDiscount" + | i18n + : (this.discountPercentageFromSub > 0 + ? discountPercentageFromSub + : this.discountPercentage) + }} - - - {{ planInterval.name }} {{ - "upgradeDiscount" - | i18n - : (this.discountPercentageFromSub > 0 - ? discountPercentageFromSub - : this.discountPercentage) - }} + - - + + {{ planInterval.name }} + + +
+
-
- {{ "selected" | i18n }} -
-

- {{ selectableProduct.nameLocalizationKey | i18n }} +

+ {{ + selectableProduct.nameLocalizationKey | i18n + }} + + {{ "current" | i18n }}

+

+ {{ "bitwardenPasswordManager" | i18n }} +

{{ "upgradeEnterpriseMessage" | i18n }}

-

{{ "includeAllTeamsFeatures" | i18n }}

-
    -
  • + +
      +
    • + {{ "includeEnterprisePolicies" | i18n }}
    • -
    • - {{ "includeSsoAuthenticationMessage" | i18n }} +
    • + + {{ "passwordLessSso" | i18n }} +
    • +
    • + + {{ "accountRecovery" | i18n }} +
    • +
    • + + {{ "customRoles" | i18n }} +
    • +
    + +

    + {{ "bitwardenSecretsManager" | i18n }} +

    +
      +
    • + + {{ "unlimitedSecretsStorage" | i18n }} +
    • +
    • + + {{ "unlimitedUsers" | i18n }} +
    • +
    • + + {{ "unlimitedProjects" | i18n }} +
    • +
    • + + {{ "UpTo50MachineAccounts" | i18n }}
    • -
    • {{ "optionalOnPremHosting" | i18n }}
    @@ -153,6 +186,12 @@
+

+ {{ "bitwardenPasswordManager" | i18n }} +

{{ "upgradeFamilyMessage" | i18n }}

-
    -
  • - {{ "limitedUsers" | i18n: selectableProduct.PasswordManager.maxSeats }} +
      +
    • + + {{ "premiumAccounts" | i18n }}
    • -
    • - {{ "teamsInviteMessage" | i18n }} +
    • + + {{ "unlimitedSharing" | i18n }}
    • -
    • - {{ - "chooseMonthlyOrAnnualBilling" - | i18n: selectableProduct.PasswordManager.maxCollections - }} +
    • + + {{ "unlimitedCollections" | i18n }}
    • -
    • - {{ "createUnlimitedCollections" | i18n }} +
    +
      +
    • + + {{ "secureDataSharing" | i18n }}
    • -
    • - {{ "accessToCreateGroups" | i18n }} +
    • + + {{ "eventLogMonitoring" | i18n }}
    • -
    • - {{ "syncGroupsAndUsersFromDirectory" | i18n }} +
    • + + {{ "directoryIntegration" | i18n }}
    • -
    • - {{ "accessToPremiumFeatures" | i18n }} +
    +

    + {{ "bitwardenSecretsManager" | i18n }} +

    +
      +
    • + + {{ "unlimitedSecretsStorage" | i18n }}
    • -
    • - {{ "priorityCustomerSupport" | i18n }} +
    • + + {{ "unlimitedProjects" | i18n }}
    • -
    • - {{ "optionalOnPremHosting" | i18n }} +
    • + + {{ "UpTo20MachineAccounts" | i18n }}
+
+ + {{ "secretsManagerSubInfo" | i18n }} + + + {{ "secretsManagerWithFreePasswordManagerInfo" | i18n }} + +
-

{{ "paymentMethod" | i18n }}

@@ -237,16 +322,327 @@ >

- -
+ +
+

+ {{ "passwordManager" | i18n }} +

+

+ + {{ passwordManagerSeats }} + {{ "members" | i18n }} × + {{ + (selectedPlan.isAnnual + ? selectedPlan.PasswordManager.basePrice / 12 + : selectedPlan.PasswordManager.basePrice + ) | currency: "$" + }} + /{{ "year" | i18n }} + + + + {{ + selectedPlan.PasswordManager.basePrice | currency: "$" + }} + {{ "freeWithSponsorship" | i18n }} + + + {{ selectedPlan.PasswordManager.basePrice | currency: "$" }} + + +

+

+ + {{ "additionalUsers" | i18n }}: + {{ passwordManagerSeats || 0 }}  + {{ "members" | i18n }} + × + {{ selectedPlan.PasswordManager.seatPrice | currency: "$" }} + /{{ "year" | i18n }} + + + + {{ passwordManagerSeatTotal(selectedPlan) | currency: "$" }} + +

+

+ + {{ 0 }} + {{ "additionalStorageGbMessage" | i18n }} + × + {{ selectedPlan.PasswordManager.additionalStoragePricePerGb | currency: "$" }} + /{{ "year" | i18n }} + + {{ 0 | currency: "$" }} +

+ +

+ {{ "secretsManager" | i18n }} +

+

+ + {{ sub?.smSeats }} + {{ "members" | i18n }} × + {{ + (selectedPlan.isAnnual + ? selectedPlan.SecretsManager.basePrice / 12 + : selectedPlan.SecretsManager.basePrice + ) | currency: "$" + }} + /{{ "year" | i18n }} + +

+

+ + {{ "additionalUsers" | i18n }}: + {{ sub?.smSeats || 0 }}  + {{ "members" | i18n }} + × + {{ selectedPlan.SecretsManager.seatPrice | currency: "$" }} + /{{ "year" | i18n }} + + + + {{ secretsManagerSeatTotal(selectedPlan, sub.smSeats) | currency: "$" }} + +

+

+ + {{ additionalServiceAccount }} + {{ "additionalStorageGbMessage" | i18n }} + × + {{ selectedPlan?.SecretsManager?.additionalPricePerServiceAccount | currency: "$" }} + /{{ "month" | i18n }} + + {{ additionalServiceAccountTotal(selectedPlan) | currency: "$" }} +

+
+ +

+ {{ "passwordManager" | i18n }} +

- {{ selectedPlan.PasswordManager.baseSeats }} + {{ "basePrice" | i18n }}: + {{ selectedPlan.PasswordManager.basePrice | currency: "$" }} + {{ "monthAbbr" | i18n }} + + + {{ selectedPlan.PasswordManager.basePrice | currency: "$" }} + +

+

+ + {{ "additionalUsers" | i18n }}: + {{ passwordManagerSeats }}  + {{ "members" | i18n }} + × + {{ selectedPlan.PasswordManager.seatPrice | currency: "$" }} + /{{ "month" | i18n }} + + + {{ passwordManagerSeatTotal(selectedPlan) | currency: "$" }} + +

+

+ + {{ 0 }} + {{ "additionalStorageGbMessage" | i18n }} + × + {{ selectedPlan.PasswordManager.additionalStoragePricePerGb | currency: "$" }} + /{{ "month" | i18n }} + + {{ 0 | currency: "$" }} +

+ +

+ {{ "secretsManager" | i18n }} +

+

+ + {{ "basePrice" | i18n }}: + {{ selectedPlan.SecretsManager.basePrice | currency: "$" }} + {{ "monthAbbr" | i18n }} + + + {{ selectedPlan.SecretsManager.basePrice | currency: "$" }} + +

+

+ + {{ "additionalUsers" | i18n }}: + {{ sub?.smSeats }}  + {{ "members" | i18n }} + × + {{ selectedPlan.SecretsManager.seatPrice | currency: "$" }} + /{{ "month" | i18n }} + + + {{ secretsManagerSeatTotal(selectedPlan, sub?.smSeats) | currency: "$" }} + +

+

+ + {{ additionalServiceAccount }} + {{ "additionalStorageGbMessage" | i18n }} + × + {{ selectedPlan.SecretsManager.additionalPricePerServiceAccount | currency: "$" }} + /{{ "month" | i18n }} + + {{ additionalServiceAccountTotal(selectedPlan) | currency: "$" }} +

+
+
+ +
+ + +

+ {{ "secretsManager" | i18n }} +

+

+ + {{ sub?.smSeats }} + {{ "members" | i18n }} × + {{ + (selectedPlan.isAnnual + ? selectedPlan.SecretsManager.basePrice / 12 + : selectedPlan.SecretsManager.basePrice + ) | currency: "$" + }} + /{{ "year" | i18n }} + +

+

+ + {{ "additionalUsers" | i18n }}: + {{ sub?.smSeats || 0 }}  + {{ "members" | i18n }} + × + {{ selectedPlan.SecretsManager.seatPrice | currency: "$" }} + /{{ "year" | i18n }} + + + + {{ secretsManagerSeatTotal(selectedPlan, sub.smSeats) | currency: "$" }} + +

+

+ + {{ additionalServiceAccount }} + {{ "additionalStorageGbMessage" | i18n }} + × + {{ selectedPlan.SecretsManager.additionalPricePerServiceAccount | currency: "$" }} + /{{ "month" | i18n }} + + {{ additionalServiceAccountTotal(selectedPlan) | currency: "$" }} +

+ +

+ {{ "passwordManager" | i18n }} +

+

+ + {{ organization.seats }} {{ "members" | i18n }} × {{ (selectedPlan.isAnnual @@ -284,26 +680,77 @@ /{{ "year" | i18n }} - + + {{ "freeForOneYear" | i18n }} + + + {{ passwordManagerSeatTotal(selectedPlan) | currency: "$" }}

+
+ + +

+ {{ "secretsManager" | i18n }} +

+

+ + {{ "basePrice" | i18n }}: + {{ selectedPlan.SecretsManager.basePrice | currency: "$" }} + {{ "monthAbbr" | i18n }} + + + {{ selectedPlan.SecretsManager.basePrice | currency: "$" }} + +

- {{ 0 }} + {{ "additionalUsers" | i18n }}: + {{ sub?.smSeats }}  + {{ "members" | i18n }} + × + {{ selectedPlan.SecretsManager.seatPrice | currency: "$" }} + /{{ "month" | i18n }} + + + {{ secretsManagerSeatTotal(selectedPlan, sub?.smSeats) | currency: "$" }} + +

+

+ + {{ additionalServiceAccount }} {{ "additionalStorageGbMessage" | i18n }} × - {{ selectedPlan.PasswordManager.additionalStoragePricePerGb | currency: "$" }} - /{{ "year" | i18n }} + {{ selectedPlan.SecretsManager.additionalPricePerServiceAccount | currency: "$" }} + /{{ "month" | i18n }} - {{ 0 | currency: "$" }} + {{ additionalServiceAccountTotal(selectedPlan) | currency: "$" }} +

+ +

+ {{ "passwordManager" | i18n }}

-
-

{{ "additionalUsers" | i18n }}: - {{ formGroup.controls["additionalSeats"].value || 0 }}  + {{ organization.seats }}  {{ "members" | i18n }} × {{ selectedPlan.PasswordManager.seatPrice | currency: "$" }} /{{ "month" | i18n }} - + + {{ "freeForOneYear" | i18n }} + + + {{ passwordManagerSeatTotal(selectedPlan) | currency: "$" }}

-

- - {{ 0 }} - {{ "additionalStorageGbMessage" | i18n }} - × - {{ selectedPlan.PasswordManager.additionalStoragePricePerGb | currency: "$" }} - /{{ "month" | i18n }} - - {{ 0 | currency: "$" }} -

-

- + Date: Sat, 24 Aug 2024 00:13:43 +0300 Subject: [PATCH 30/40] [PM-9552] add a toggle for the routing animation (#10005) * add a toggle for the routing animation * add missing period (thanks mat) * rename routingAnimation to enableRoutingAnimation for consistency * move animation-control.service.ts into abstractions * simplify config option * fixup! simplify config option remove dead aria reference --------- Co-authored-by: Shane Melton --- apps/browser/src/_locales/en/messages.json | 3 ++ apps/browser/src/popup/app.component.ts | 13 ++++++- .../src/popup/services/services.module.ts | 9 +++++ .../popup/settings/appearance.component.html | 13 +++++++ .../popup/settings/appearance.component.ts | 11 ++++++ .../abstractions/animation-control.service.ts | 39 +++++++++++++++++++ .../src/platform/state/state-definitions.ts | 1 + 7 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 libs/common/src/platform/abstractions/animation-control.service.ts diff --git a/apps/browser/src/_locales/en/messages.json b/apps/browser/src/_locales/en/messages.json index 5ed28c6ec0..1e8fd03ade 100644 --- a/apps/browser/src/_locales/en/messages.json +++ b/apps/browser/src/_locales/en/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/popup/app.component.ts b/apps/browser/src/popup/app.component.ts index 7ac3e02160..27fc868a9b 100644 --- a/apps/browser/src/popup/app.component.ts +++ b/apps/browser/src/popup/app.component.ts @@ -6,6 +6,7 @@ import { LogoutReason } from "@bitwarden/auth/common"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service"; import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status"; +import { AnimationControlService } from "@bitwarden/common/platform/abstractions/animation-control.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { StateService } from "@bitwarden/common/platform/abstractions/state.service"; @@ -39,6 +40,7 @@ export class AppComponent implements OnInit, OnDestroy { private lastActivity: Date; private activeUserId: UserId; private recordActivitySubject = new Subject(); + private routerAnimations = false; private destroy$ = new Subject(); @@ -57,6 +59,7 @@ export class AppComponent implements OnInit, OnDestroy { private messageListener: MessageListener, private toastService: ToastService, private accountService: AccountService, + private animationControlService: AnimationControlService, ) {} async ngOnInit() { @@ -173,6 +176,12 @@ export class AppComponent implements OnInit, OnDestroy { } } }); + + this.animationControlService.enableRoutingAnimation$ + .pipe(takeUntil(this.destroy$)) + .subscribe((state) => { + this.routerAnimations = state; + }); } ngOnDestroy(): void { @@ -181,7 +190,9 @@ export class AppComponent implements OnInit, OnDestroy { } getState(outlet: RouterOutlet) { - if (outlet.activatedRouteData.state === "ciphers") { + if (!this.routerAnimations) { + return; + } else if (outlet.activatedRouteData.state === "ciphers") { const routeDirection = (window as any).routeDirection != null ? (window as any).routeDirection : ""; return ( diff --git a/apps/browser/src/popup/services/services.module.ts b/apps/browser/src/popup/services/services.module.ts index f6f3bf732b..7c5e49e741 100644 --- a/apps/browser/src/popup/services/services.module.ts +++ b/apps/browser/src/popup/services/services.module.ts @@ -41,6 +41,10 @@ import { } from "@bitwarden/common/autofill/services/user-notification-settings.service"; import { BillingAccountProfileStateService } from "@bitwarden/common/billing/abstractions/account/billing-account-profile-state.service"; import { ClientType } from "@bitwarden/common/enums"; +import { + AnimationControlService, + DefaultAnimationControlService, +} from "@bitwarden/common/platform/abstractions/animation-control.service"; import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; import { CryptoFunctionService } from "@bitwarden/common/platform/abstractions/crypto-function.service"; import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service"; @@ -527,6 +531,11 @@ const safeProviders: SafeProvider[] = [ useClass: Fido2UserVerificationService, deps: [PasswordRepromptService, UserVerificationService, DialogService], }), + safeProvider({ + provide: AnimationControlService, + useClass: DefaultAnimationControlService, + deps: [GlobalStateProvider], + }), safeProvider({ provide: TaskSchedulerService, useExisting: ForegroundTaskSchedulerService, diff --git a/apps/browser/src/vault/popup/settings/appearance.component.html b/apps/browser/src/vault/popup/settings/appearance.component.html index 36b2190512..a431fc72a1 100644 --- a/apps/browser/src/vault/popup/settings/appearance.component.html +++ b/apps/browser/src/vault/popup/settings/appearance.component.html @@ -64,4 +64,17 @@ {{ accountSwitcherEnabled ? ("faviconDescAlt" | i18n) : ("faviconDesc" | i18n) }}
+
+
+
+ + +
+
+
diff --git a/apps/browser/src/vault/popup/settings/appearance.component.ts b/apps/browser/src/vault/popup/settings/appearance.component.ts index 154d4e426d..1095b56a75 100644 --- a/apps/browser/src/vault/popup/settings/appearance.component.ts +++ b/apps/browser/src/vault/popup/settings/appearance.component.ts @@ -3,6 +3,7 @@ import { firstValueFrom } from "rxjs"; import { BadgeSettingsServiceAbstraction } from "@bitwarden/common/autofill/services/badge-settings.service"; import { DomainSettingsService } from "@bitwarden/common/autofill/services/domain-settings.service"; +import { AnimationControlService } from "@bitwarden/common/platform/abstractions/animation-control.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service"; import { ThemeType } from "@bitwarden/common/platform/enums"; @@ -20,6 +21,7 @@ export class AppearanceComponent implements OnInit { theme: ThemeType; themeOptions: any[]; accountSwitcherEnabled = false; + enableRoutingAnimation: boolean; constructor( private messagingService: MessagingService, @@ -27,6 +29,7 @@ export class AppearanceComponent implements OnInit { private badgeSettingsService: BadgeSettingsServiceAbstraction, i18nService: I18nService, private themeStateService: ThemeStateService, + private animationControlService: AnimationControlService, ) { this.themeOptions = [ { name: i18nService.t("default"), value: ThemeType.System }, @@ -40,6 +43,10 @@ export class AppearanceComponent implements OnInit { } async ngOnInit() { + this.enableRoutingAnimation = await firstValueFrom( + this.animationControlService.enableRoutingAnimation$, + ); + this.enableFavicon = await firstValueFrom(this.domainSettingsService.showFavicons$); this.enableBadgeCounter = await firstValueFrom(this.badgeSettingsService.enableBadgeCounter$); @@ -47,6 +54,10 @@ export class AppearanceComponent implements OnInit { this.theme = await firstValueFrom(this.themeStateService.selectedTheme$); } + async updateRoutingAnimation() { + await this.animationControlService.setEnableRoutingAnimation(this.enableRoutingAnimation); + } + async updateFavicon() { await this.domainSettingsService.setShowFavicons(this.enableFavicon); } diff --git a/libs/common/src/platform/abstractions/animation-control.service.ts b/libs/common/src/platform/abstractions/animation-control.service.ts new file mode 100644 index 0000000000..9d16e284dc --- /dev/null +++ b/libs/common/src/platform/abstractions/animation-control.service.ts @@ -0,0 +1,39 @@ +import { Observable, map } from "rxjs"; + +import { GlobalStateProvider, KeyDefinition, ANIMATION_DISK } from "../state"; + +export abstract class AnimationControlService { + /** + * The routing animation toggle. + */ + abstract enableRoutingAnimation$: Observable; + + /** + * A method for updating the state of the animation toggle. + * @param theme The new state. + */ + abstract setEnableRoutingAnimation(state: boolean): Promise; +} + +const ROUTING_ANIMATION = new KeyDefinition(ANIMATION_DISK, "routing", { + deserializer: (s) => s, +}); + +export class DefaultAnimationControlService implements AnimationControlService { + private readonly enableRoutingAnimationState = this.globalStateProvider.get(ROUTING_ANIMATION); + + enableRoutingAnimation$ = this.enableRoutingAnimationState.state$.pipe( + map((state) => state ?? this.defaultEnableRoutingAnimation), + ); + + constructor( + private globalStateProvider: GlobalStateProvider, + private defaultEnableRoutingAnimation: boolean = true, + ) {} + + async setEnableRoutingAnimation(state: boolean): Promise { + await this.enableRoutingAnimationState.update(() => state, { + shouldUpdate: (currentState) => currentState !== state, + }); + } +} diff --git a/libs/common/src/platform/state/state-definitions.ts b/libs/common/src/platform/state/state-definitions.ts index f3880633e0..32307203b2 100644 --- a/libs/common/src/platform/state/state-definitions.ts +++ b/libs/common/src/platform/state/state-definitions.ts @@ -117,6 +117,7 @@ export const POPUP_VIEW_MEMORY = new StateDefinition("popupView", "memory", { export const SYNC_DISK = new StateDefinition("sync", "disk", { web: "memory" }); export const THEMING_DISK = new StateDefinition("theming", "disk", { web: "disk-local" }); export const TRANSLATION_DISK = new StateDefinition("translation", "disk", { web: "disk-local" }); +export const ANIMATION_DISK = new StateDefinition("animation", "disk"); export const TASK_SCHEDULER_DISK = new StateDefinition("taskScheduler", "disk"); // Secrets Manager From f468e623e17646a93110f3d54b79a2abbd7ebb92 Mon Sep 17 00:00:00 2001 From: Nicholas La Roux Date: Mon, 26 Aug 2024 17:23:42 +0900 Subject: [PATCH 31/40] Fix system auth typo 'autometic' -> 'automatic' (#10708) --- apps/desktop/src/locales/en/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/desktop/src/locales/en/messages.json b/apps/desktop/src/locales/en/messages.json index c0f98f1753..84cfab039f 100644 --- a/apps/desktop/src/locales/en/messages.json +++ b/apps/desktop/src/locales/en/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" From c9f6ace71dea6ee0fc356b49642227d17940a148 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:03:47 +0000 Subject: [PATCH 32/40] Autosync the updated translations (#10721) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/desktop/src/locales/af/messages.json | 2 +- apps/desktop/src/locales/ar/messages.json | 78 ++++++++++---------- apps/desktop/src/locales/be/messages.json | 2 +- apps/desktop/src/locales/bg/messages.json | 2 +- apps/desktop/src/locales/bn/messages.json | 2 +- apps/desktop/src/locales/bs/messages.json | 2 +- apps/desktop/src/locales/ca/messages.json | 2 +- apps/desktop/src/locales/cy/messages.json | 2 +- apps/desktop/src/locales/eo/messages.json | 2 +- apps/desktop/src/locales/es/messages.json | 2 +- apps/desktop/src/locales/et/messages.json | 2 +- apps/desktop/src/locales/eu/messages.json | 2 +- apps/desktop/src/locales/fa/messages.json | 2 +- apps/desktop/src/locales/fi/messages.json | 30 ++++---- apps/desktop/src/locales/fil/messages.json | 2 +- apps/desktop/src/locales/fr/messages.json | 2 +- apps/desktop/src/locales/gl/messages.json | 2 +- apps/desktop/src/locales/he/messages.json | 2 +- apps/desktop/src/locales/hi/messages.json | 2 +- apps/desktop/src/locales/id/messages.json | 2 +- apps/desktop/src/locales/it/messages.json | 2 +- apps/desktop/src/locales/ka/messages.json | 2 +- apps/desktop/src/locales/km/messages.json | 2 +- apps/desktop/src/locales/kn/messages.json | 2 +- apps/desktop/src/locales/ko/messages.json | 2 +- apps/desktop/src/locales/lt/messages.json | 2 +- apps/desktop/src/locales/me/messages.json | 2 +- apps/desktop/src/locales/ml/messages.json | 2 +- apps/desktop/src/locales/mr/messages.json | 2 +- apps/desktop/src/locales/my/messages.json | 2 +- apps/desktop/src/locales/nb/messages.json | 2 +- apps/desktop/src/locales/ne/messages.json | 2 +- apps/desktop/src/locales/nn/messages.json | 2 +- apps/desktop/src/locales/or/messages.json | 2 +- apps/desktop/src/locales/ro/messages.json | 2 +- apps/desktop/src/locales/si/messages.json | 2 +- apps/desktop/src/locales/sl/messages.json | 2 +- apps/desktop/src/locales/sr/messages.json | 2 +- apps/desktop/src/locales/sv/messages.json | 2 +- apps/desktop/src/locales/te/messages.json | 2 +- apps/desktop/src/locales/th/messages.json | 2 +- apps/desktop/src/locales/tr/messages.json | 2 +- apps/desktop/src/locales/vi/messages.json | 16 ++-- apps/desktop/src/locales/zh_TW/messages.json | 2 +- 44 files changed, 103 insertions(+), 103 deletions(-) diff --git a/apps/desktop/src/locales/af/messages.json b/apps/desktop/src/locales/af/messages.json index 44afdf3b64..9d65abafde 100644 --- a/apps/desktop/src/locales/af/messages.json +++ b/apps/desktop/src/locales/af/messages.json @@ -1817,7 +1817,7 @@ "message": "Vir blaaierbiometrie moet werkskermbiometrie eers in instellings geaktiveer wees." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/ar/messages.json b/apps/desktop/src/locales/ar/messages.json index 8ce9508675..390a694756 100644 --- a/apps/desktop/src/locales/ar/messages.json +++ b/apps/desktop/src/locales/ar/messages.json @@ -500,10 +500,10 @@ "message": "إنشاء حساب" }, "setAStrongPassword": { - "message": "Set a strong password" + "message": "تعيين كلمة مرور قوية" }, "finishCreatingYourAccountBySettingAPassword": { - "message": "Finish creating your account by setting a password" + "message": "إنهاء إنشاء حسابك عن طريق تعيين كلمة مرور" }, "logIn": { "message": "تسجيل الدخول" @@ -527,7 +527,7 @@ "message": "تلميح كلمة المرور الرئيسية (اختياري)" }, "masterPassHintText": { - "message": "If you forget your password, the password hint can be sent to your email. $CURRENT$/$MAXIMUM$ character maximum.", + "message": "إذا نسيت كلمة المرور الخاصة بك، يمكن إرسال تلميح كلمة المرور إلى بريدك الإلكتروني. $CURRENT$/$MAXIMUM$ الحد الأقصى للحرف.", "placeholders": { "current": { "content": "$1", @@ -540,22 +540,22 @@ } }, "masterPassword": { - "message": "Master password" + "message": "كلمة المرور الرئيسية" }, "masterPassImportant": { - "message": "Your master password cannot be recovered if you forget it!" + "message": "لا يمكن استعادة كلمة المرور الرئيسية إذا نسيتها!" }, "confirmMasterPassword": { - "message": "Confirm master password" + "message": "تأكيد كلمة المرور الرئيسية" }, "masterPassHintLabel": { - "message": "Master password hint" + "message": "تلميح كلمة المرور الرئيسية" }, "joinOrganization": { - "message": "Join organization" + "message": "الانضمام إلى المؤسسة" }, "finishJoiningThisOrganizationBySettingAMasterPassword": { - "message": "Finish joining this organization by setting a master password." + "message": "إنهاء الانضمام إلى هذه المؤسسة عن طريق تعيين كلمة مرور رئيسية." }, "settings": { "message": "الإعدادات" @@ -634,7 +634,7 @@ "message": "رمز التحقق مطلوب." }, "webauthnCancelOrTimeout": { - "message": "The authentication was cancelled or took too long. Please try again." + "message": "تم إلغاء المصادقة أو استغرقت وقتا طويلا. الرجاء المحاولة مرة أخرى." }, "invalidVerificationCode": { "message": "رمز التحقق غير صالح" @@ -688,17 +688,17 @@ "message": "تطبيق المصادقة" }, "authenticatorAppDescV2": { - "message": "Enter a code generated by an authenticator app like Bitwarden Authenticator.", + "message": "أدخل رمز تم إنشاؤه بواسطة تطبيق مصادقة مثل Bitwarden Authenticer.", "description": "'Bitwarden Authenticator' is a product name and should not be translated." }, "yubiKeyTitleV2": { - "message": "Yubico OTP security key" + "message": "مفتاح أمان YubiKey OTP" }, "yubiKeyDesc": { "message": "استخدم YubiKey للوصول إلى حسابك. يعمل مع YubiKey 4 ،4 Nano ،4C، وأجهزة NEO." }, "duoDescV2": { - "message": "Enter a code generated by Duo Security.", + "message": "أدخل الرمز الذي تم إنشاؤه بواسطة نظام حماية Duo.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { @@ -715,7 +715,7 @@ "message": "البريد الإلكتروني" }, "emailDescV2": { - "message": "Enter a code sent to your email." + "message": "أدخل رمزا أرسل إلى بريدك الإلكتروني." }, "loginUnavailable": { "message": "تسجيل الدخول غير متاح" @@ -799,16 +799,16 @@ "message": "انتهت صلاحية جلسة الدخول." }, "restartRegistration": { - "message": "Restart registration" + "message": "إعادة تشغيل التسجيل" }, "expiredLink": { - "message": "Expired link" + "message": "رابط منتهي الصلاحية" }, "pleaseRestartRegistrationOrTryLoggingIn": { - "message": "Please restart registration or try logging in." + "message": "الرجاء إعادة تشغيل التسجيل أو محاولة تسجيل الدخول." }, "youMayAlreadyHaveAnAccount": { - "message": "You may already have an account" + "message": "قد يكون لديك حساب بالفعل" }, "logOutConfirmation": { "message": "هل أنت متأكد من أنك تريد تسجيل الخروج؟" @@ -1175,7 +1175,7 @@ "message": "يمكنك شراء العضوية المتميزة على bitwarden.com على خزانة الويب. هل تريد زيارة الموقع الآن؟" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "يمكنك شراء Premium من إعدادات حسابك على تطبيق Bitwarden على شبكة الإنترنت." }, "premiumCurrentMember": { "message": "أنت عضو مميز!" @@ -1514,13 +1514,13 @@ "message": "إعدادات Windows Hello إضافية" }, "unlockWithPolkit": { - "message": "Unlock with system authentication" + "message": "فتح مع مصادقة النظام" }, "windowsHelloConsentMessage": { "message": "تحقق من Bitwarden." }, "polkitConsentMessage": { - "message": "Authenticate to unlock Bitwarden." + "message": "مصادقة لفتح Bitwarden." }, "unlockWithTouchId": { "message": "فتح بواسطة معرف اللمس" @@ -1535,7 +1535,7 @@ "message": "اسأل عن Windows Hello عند التشغيل" }, "autoPromptPolkit": { - "message": "Ask for system authentication on launch" + "message": "طلب مصادقة النظام عند التشغيل" }, "autoPromptTouchId": { "message": "اطلب معرف اللمس عند التشغيل" @@ -1724,19 +1724,19 @@ "message": "كلمة المرور الرئيسية الجديدة لا تفي بمتطلبات السياسة العامة." }, "receiveMarketingEmailsV2": { - "message": "Get advice, announcements, and research opportunities from Bitwarden in your inbox." + "message": "احصل على المشورة والإعلانات وفرص البحث من Bitwarden في صندوق الوارد الخاص بك." }, "unsubscribe": { - "message": "Unsubscribe" + "message": "إلغاء الاشتراك" }, "atAnyTime": { - "message": "at any time." + "message": "في أي وقت." }, "byContinuingYouAgreeToThe": { - "message": "By continuing, you agree to the" + "message": "من خلال المتابعة، أنت توافق على" }, "and": { - "message": "and" + "message": "و" }, "acceptPolicies": { "message": "من خلال تحديد هذا المربع فإنك توافق على ما يلي:" @@ -1817,10 +1817,10 @@ "message": "القياسات الحيوية للمتصفح تتطلب القياسات الحيوية لسطح المكتب ليتم تمكينها في الإعدادات أولاً." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "الإعداد التلقائي غير متوفر" }, "biometricsManualSetupDesc": { - "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" + "message": "بسبب طريقة التثبيت، لا يمكن تمكين دعم القياسات الحيوية تلقائياً. هل ترغب في فتح الوثائق حول كيفية القيام بذلك يدوياً؟" }, "personalOwnershipSubmitError": { "message": "بسبب سياسة المؤسسة، يمنع عليك حفظ العناصر في خزانتك الشخصية. غيّر خيار الملكية إلى مؤسسة واختر من المجموعات المتاحة." @@ -2007,7 +2007,7 @@ "message": "التحقق من البريد الإلكتروني مطلوب" }, "emailVerifiedV2": { - "message": "Email verified" + "message": "تم التحقق من البريد الإلكتروني" }, "emailVerificationRequiredDesc": { "message": "يجب عليك التحقق من بريدك الإلكتروني لاستخدام هذه الميزة." @@ -2034,7 +2034,7 @@ "message": "كلمة المرور الرئيسية الخاصة بك لا تفي بواحدة أو أكثر من سياسات مؤسستك. من أجل الوصول إلى الخزنة، يجب عليك تحديث كلمة المرور الرئيسية الآن. سيتم تسجيل خروجك من الجلسة الحالية، مما يتطلب منك تسجيل الدخول مرة أخرى. وقد تظل الجلسات النشطة على أجهزة أخرى نشطة لمدة تصل إلى ساعة واحدة." }, "tdeDisabledMasterPasswordRequired": { - "message": "Your organization has disabled trusted device encryption. Please set a master password to access your vault." + "message": "لقد قامت مؤسستك بتعطيل تشفير الجهاز الموثوق به. الرجاء تعيين كلمة مرور رئيسية للوصول إلى خزانك." }, "tryAgain": { "message": "حاول مرة أخرى" @@ -2121,7 +2121,7 @@ "message": "مهلة خزنتك تتجاوز القيود التي تضعها مؤسستك." }, "inviteAccepted": { - "message": "Invitation accepted" + "message": "تم قبول الدعوة" }, "resetPasswordPolicyAutoEnroll": { "message": "التسجيل التلقائي" @@ -2766,7 +2766,7 @@ "message": "قائمة فرعية" }, "toggleSideNavigation": { - "message": "Toggle side navigation" + "message": "تبديل التنقل الجانبي" }, "skipToContent": { "message": "تخطي إلى المحتوى" @@ -2824,7 +2824,7 @@ } }, "duoHealthCheckResultsInNullAuthUrlError": { - "message": "Error connecting with the Duo service. Use a different two-step login method or contact Duo for assistance." + "message": "خطأ في الاتصال بخدمة Duo. استخدم طريقة تسجيل الدخول بخطوتين مختلفة أو اتصل بـ Duo للمساعدة." }, "launchDuoAndFollowStepsToFinishLoggingIn": { "message": "قم بتشغيل دوو واتبع الخطوات لإنهاء تسجيل الدخول." @@ -2848,7 +2848,7 @@ "message": "كلمة مرور الملف غير صالحة، الرجاء استخدام كلمة المرور التي أدخلتها عند إنشاء ملف التصدير." }, "destination": { - "message": "Destination" + "message": "الوجهة" }, "learnAboutImportOptions": { "message": "تعرف على خيارات الاستيراد الخاصة بك" @@ -2907,7 +2907,7 @@ "message": "تأكيد كلمة مرور الملف" }, "exportSuccess": { - "message": "Vault data exported" + "message": "تم تصدير بيانات المخزن" }, "multifactorAuthenticationCancelled": { "message": "تم إلغاء المصادقة المتعددة" @@ -3045,12 +3045,12 @@ } }, "data": { - "message": "Data" + "message": "البيانات" }, "fileSends": { - "message": "File Sends" + "message": "إرسال الملف" }, "textSends": { - "message": "Text Sends" + "message": "إرسال النص" } } diff --git a/apps/desktop/src/locales/be/messages.json b/apps/desktop/src/locales/be/messages.json index 822edf8caf..f599eb90c6 100644 --- a/apps/desktop/src/locales/be/messages.json +++ b/apps/desktop/src/locales/be/messages.json @@ -1817,7 +1817,7 @@ "message": "Для актывацыі біяметрыі ў браўзеры неабходна спачатку ўключыць яе ў наладах праграмы для камп'ютара." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/bg/messages.json b/apps/desktop/src/locales/bg/messages.json index 0ca46770ba..ad8de7d1a3 100644 --- a/apps/desktop/src/locales/bg/messages.json +++ b/apps/desktop/src/locales/bg/messages.json @@ -2848,7 +2848,7 @@ "message": "Неправилна парола за файла. Използвайте паролата, която сте въвели при създаването на изнесения файл." }, "destination": { - "message": "Destination" + "message": "Дестинация" }, "learnAboutImportOptions": { "message": "Научете повече относно възможностите за внасяне" diff --git a/apps/desktop/src/locales/bn/messages.json b/apps/desktop/src/locales/bn/messages.json index c53838dd0f..fadeb3516c 100644 --- a/apps/desktop/src/locales/bn/messages.json +++ b/apps/desktop/src/locales/bn/messages.json @@ -1817,7 +1817,7 @@ "message": "ব্রাউজার বায়োমেট্রিক্সের জন্য প্রথমে সেটিংসে ডেস্কটপ বায়োমেট্রিক সক্ষম করা প্রয়োজন।" }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/bs/messages.json b/apps/desktop/src/locales/bs/messages.json index 6ce58c87fe..afb3f103d6 100644 --- a/apps/desktop/src/locales/bs/messages.json +++ b/apps/desktop/src/locales/bs/messages.json @@ -1817,7 +1817,7 @@ "message": "Biometrija preglednika zahtijeva prethodno omogućenu biometriju u Bitwarden desktop aplikaciji." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/ca/messages.json b/apps/desktop/src/locales/ca/messages.json index 2496766711..418fe59830 100644 --- a/apps/desktop/src/locales/ca/messages.json +++ b/apps/desktop/src/locales/ca/messages.json @@ -1817,7 +1817,7 @@ "message": "La biometria del navegador primer necessita habilitar la biomètrica d’escriptori a la configuració." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/cy/messages.json b/apps/desktop/src/locales/cy/messages.json index 5ba77a14bd..5ae6512ceb 100644 --- a/apps/desktop/src/locales/cy/messages.json +++ b/apps/desktop/src/locales/cy/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/eo/messages.json b/apps/desktop/src/locales/eo/messages.json index ad78a34e25..f06d7dcad7 100644 --- a/apps/desktop/src/locales/eo/messages.json +++ b/apps/desktop/src/locales/eo/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/es/messages.json b/apps/desktop/src/locales/es/messages.json index 7227932545..219cf5372f 100644 --- a/apps/desktop/src/locales/es/messages.json +++ b/apps/desktop/src/locales/es/messages.json @@ -1817,7 +1817,7 @@ "message": "La biometría del navegador requiere habilitar primero la biometría de escritorio en los ajustes." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/et/messages.json b/apps/desktop/src/locales/et/messages.json index 88993edc56..e0afea254e 100644 --- a/apps/desktop/src/locales/et/messages.json +++ b/apps/desktop/src/locales/et/messages.json @@ -1817,7 +1817,7 @@ "message": "Selleks, et kasutada biomeetriat brauseris, peab selle esmalt Bitwardeni töölaua rakenduse seadetes sisse lülitama." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/eu/messages.json b/apps/desktop/src/locales/eu/messages.json index 1b90a77192..c7513b236b 100644 --- a/apps/desktop/src/locales/eu/messages.json +++ b/apps/desktop/src/locales/eu/messages.json @@ -1817,7 +1817,7 @@ "message": "Nabigatzailearen biometriak lehenik mahaigainaren biometria gaitzeko eskatzen du." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/fa/messages.json b/apps/desktop/src/locales/fa/messages.json index 2b5c810e4d..f51f59afca 100644 --- a/apps/desktop/src/locales/fa/messages.json +++ b/apps/desktop/src/locales/fa/messages.json @@ -1817,7 +1817,7 @@ "message": "بیومتریک مرورگر ابتدا نیاز به فعالسازی بیومتریک دسکتاپ در تنظیمات دارد." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/fi/messages.json b/apps/desktop/src/locales/fi/messages.json index f9caf83129..d8b11b9896 100644 --- a/apps/desktop/src/locales/fi/messages.json +++ b/apps/desktop/src/locales/fi/messages.json @@ -643,10 +643,10 @@ "message": "Jatka" }, "enterVerificationCodeApp": { - "message": "Syötä 6-numeroinen todennuskoodi todennussovelluksestasi." + "message": "Syötä todennussovelluksesi näyttämä kuusinumeroinen todennuskoodi." }, "enterVerificationCodeEmail": { - "message": "Syötä 6-numeroinen todennuskoodi, joka lähetettiin sähköpostitse osoitteeseen $EMAIL$.", + "message": "Syötä osoitteeseen $EMAIL$ lähetetty kuusinumeroinen todennuskoodi.", "placeholders": { "email": { "content": "$1", @@ -676,7 +676,7 @@ "message": "Kytke YubiKey-todennuslaitteesi tietokoneen USB-porttiin ja paina sen painiketta." }, "insertU2f": { - "message": "Kytke todennuslaitteesi tietokoneen USB-porttiin ja jos laitteessa on painike, paina sitä." + "message": "Kytke suojausavaimesi tietokoneen USB-porttiin ja jos laitteessa on painike, paina sitä." }, "recoveryCodeDesc": { "message": "Etkö pysty käyttämään kaksivaiheisen kirjautumisen todentajiasi? Poista kaikki tilillesi määritetyt todentajat käytöstä palautuskoodillasi." @@ -692,7 +692,7 @@ "description": "'Bitwarden Authenticator' is a product name and should not be translated." }, "yubiKeyTitleV2": { - "message": "Yubico OTP -todennuslaite" + "message": "Yubico OTP -suojausavain" }, "yubiKeyDesc": { "message": "Käytä YubiKey-todennuslaitetta tilisi avaukseen. Toimii YubiKey 4, 4 Nano, 4C sekä NEO -laitteiden kanssa." @@ -702,14 +702,14 @@ "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { - "message": "Vahvista organisaatiollesi Duo Securityn avulla käyttäen Duo Mobile ‑sovellusta, tekstiviestiä, puhelua tai U2F-todennuslaitetta.", + "message": "Vahvista organisaatiollesi Duo Securityn avulla käyttäen Duo Mobile ‑sovellusta, tekstiviestiä, puhelua tai U2F-suojausavainta.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "webAuthnTitle": { "message": "FIDO2 WebAuthn" }, "webAuthnDesc": { - "message": "Avaa tilisi millä tahansa WebAuthn‑yhteensopivalla todennuslaitteella." + "message": "Avaa tilisi millä tahansa WebAuthn‑yhteensopivalla suojausavaimella." }, "emailTitle": { "message": "Sähköposti" @@ -808,7 +808,7 @@ "message": "Aloita rekisteröityminen alusta tai yritä kirjautua sisään uudelleen." }, "youMayAlreadyHaveAnAccount": { - "message": "Sinulla saattaa olla jo tili" + "message": "Sinulla saattaa jo olla tili" }, "logOutConfirmation": { "message": "Haluatko varmasti kirjautua ulos?" @@ -916,7 +916,7 @@ "message": "Virheellinen pääsalasana" }, "twoStepLoginConfirmation": { - "message": "Kaksivaiheinen kirjautuminen parantaa tilisi suojausta vaatimalla kirjautumisen vahvistuksen salasanan lisäksi todennuslaitteen, ‑sovelluksen, tekstiviestin, puhelun tai sähköpostin avulla. Voit ottaa kaksivaiheisen kirjautumisen käyttöön bitwarden.com‑verkkoholvissa. Haluatko avata sen nyt?" + "message": "Kaksivaiheinen kirjautuminen parantaa tilisi suojausta vaatimalla kirjautumisen vahvistuksen salasanan lisäksi suojausavaimen, todennussovelluksen, tekstiviestin, puhelun tai sähköpostin avulla. Voit ottaa kaksivaiheisen kirjautumisen käyttöön bitwarden.com‑verkkoholvissa. Haluatko avata sen nyt?" }, "twoStepLogin": { "message": "Kaksivaiheinen kirjautuminen" @@ -1520,7 +1520,7 @@ "message": "Vahvista Bitwarden." }, "polkitConsentMessage": { - "message": "Todenna avataksesi Bitwardenin lukitus." + "message": "Avaa Bitwardenin lukitus tunnistautumalla." }, "unlockWithTouchId": { "message": "Avaa Touch ID:llä" @@ -1820,7 +1820,7 @@ "message": "Automaattinen määritys ei ole käytettävissä" }, "biometricsManualSetupDesc": { - "message": "Biometriatukea ei voitu ottaa automaattisesti käyttöön asennustavan vuoksi. Haluatko avata ohjeet tämän tekemiseksi manuaalisesti?" + "message": "Asennustavasta johtuen Biometriatukea ei voitu ottaa käyttöön automaattisesti. Haluatko avata ohjeen tämän manuaaliseen määritykseen?" }, "personalOwnershipSubmitError": { "message": "Yrityskäytännön johdosta kohteiden tallennus henkilökohtaiseen holviin ei ole mahdollista. Muuta omistusasetus organisaatiolle ja valitse käytettävissä olevista kokoelmista." @@ -2772,13 +2772,13 @@ "message": "Siirry sisältöön" }, "typePasskey": { - "message": "Suojausavain" + "message": "Pääsyavain" }, "passkeyNotCopied": { - "message": "Suojausavainta ei kopioida" + "message": "Pääsyavainta ei kopioida" }, "passkeyNotCopiedAlert": { - "message": "Suojausavain ei kopioidu kloonattuun kohteeseen. Haluatko jatkaa kloonausta?" + "message": "Pääsyavain ei kopioidu kloonattuun kohteeseen. Haluatko jatkaa kloonausta?" }, "aliasDomain": { "message": "Aliaksen verkkotunnus" @@ -2999,10 +2999,10 @@ "message": "Ota laitteistokiihdytys käyttöön ja käynnistä sovellus uudelleen" }, "removePasskey": { - "message": "Poista suojausavain" + "message": "Poista pääsyavain" }, "passkeyRemoved": { - "message": "Suojausavain poistettiin" + "message": "Pääsyavain poistettiin" }, "errorAssigningTargetCollection": { "message": "Virhe määritettäessä kohdekokoelmaa." diff --git a/apps/desktop/src/locales/fil/messages.json b/apps/desktop/src/locales/fil/messages.json index 796c1581bb..fcba428175 100644 --- a/apps/desktop/src/locales/fil/messages.json +++ b/apps/desktop/src/locales/fil/messages.json @@ -1817,7 +1817,7 @@ "message": "Ang biometrics ng browser ay nangangailangan ng desktop biometrics na mai set up muna sa mga setting." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/fr/messages.json b/apps/desktop/src/locales/fr/messages.json index 7693bc08a9..ede5c563a1 100644 --- a/apps/desktop/src/locales/fr/messages.json +++ b/apps/desktop/src/locales/fr/messages.json @@ -1817,7 +1817,7 @@ "message": "Les options de biométrie dans le navigateur nécessitent au préalable l'activation des options de biométrie dans l'application de bureau." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/gl/messages.json b/apps/desktop/src/locales/gl/messages.json index eb228ace8c..c835e56555 100644 --- a/apps/desktop/src/locales/gl/messages.json +++ b/apps/desktop/src/locales/gl/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/he/messages.json b/apps/desktop/src/locales/he/messages.json index 1687a9587e..33586af351 100644 --- a/apps/desktop/src/locales/he/messages.json +++ b/apps/desktop/src/locales/he/messages.json @@ -1817,7 +1817,7 @@ "message": "בכדי להשתמש באמצעי אימות ביומטריים בדפדפן, אפשר תכונה זו באפליקציה בשולחן העבודה." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/hi/messages.json b/apps/desktop/src/locales/hi/messages.json index 7094badd42..16e85427b1 100644 --- a/apps/desktop/src/locales/hi/messages.json +++ b/apps/desktop/src/locales/hi/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/id/messages.json b/apps/desktop/src/locales/id/messages.json index 92252af3f8..b6f1863931 100644 --- a/apps/desktop/src/locales/id/messages.json +++ b/apps/desktop/src/locales/id/messages.json @@ -1817,7 +1817,7 @@ "message": "Biometrik browser mengharuskan biometrik desktop diaktifkan di pengaturan terlebih dahulu." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/it/messages.json b/apps/desktop/src/locales/it/messages.json index ea84505eb0..af33ae0f6e 100644 --- a/apps/desktop/src/locales/it/messages.json +++ b/apps/desktop/src/locales/it/messages.json @@ -1817,7 +1817,7 @@ "message": "L'autenticazione biometrica del browser richiede che l'autenticazione biometrica del desktop sia stata già impostata nelle impostazioni." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/ka/messages.json b/apps/desktop/src/locales/ka/messages.json index eb228ace8c..c835e56555 100644 --- a/apps/desktop/src/locales/ka/messages.json +++ b/apps/desktop/src/locales/ka/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/km/messages.json b/apps/desktop/src/locales/km/messages.json index eb228ace8c..c835e56555 100644 --- a/apps/desktop/src/locales/km/messages.json +++ b/apps/desktop/src/locales/km/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/kn/messages.json b/apps/desktop/src/locales/kn/messages.json index 1dbcf7c228..19de2066d7 100644 --- a/apps/desktop/src/locales/kn/messages.json +++ b/apps/desktop/src/locales/kn/messages.json @@ -1817,7 +1817,7 @@ "message": "ಬ್ರೌಸರ್ ಬಯೋಮೆಟ್ರಿಕ್ಸ್ ಮೊದಲು ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಡೆಸ್ಕ್ಟಾಪ್ ಬಯೋಮೆಟ್ರಿಕ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕಾಗುತ್ತದೆ." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/ko/messages.json b/apps/desktop/src/locales/ko/messages.json index e070516269..bae5706245 100644 --- a/apps/desktop/src/locales/ko/messages.json +++ b/apps/desktop/src/locales/ko/messages.json @@ -1817,7 +1817,7 @@ "message": "브라우저에서 생체 인식을 사용하기 위해서는 설정에서 데스크톱 생체 인식을 먼저 활성화해야 합니다." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/lt/messages.json b/apps/desktop/src/locales/lt/messages.json index 8c91fa3f2d..48c81e8f0a 100644 --- a/apps/desktop/src/locales/lt/messages.json +++ b/apps/desktop/src/locales/lt/messages.json @@ -1817,7 +1817,7 @@ "message": "Pirma reikia nustatymuose nustatyti darbalaukio biometrinius duomenys, prieš juos naudojant naršyklėje." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/me/messages.json b/apps/desktop/src/locales/me/messages.json index c94504d024..4ab90c7243 100644 --- a/apps/desktop/src/locales/me/messages.json +++ b/apps/desktop/src/locales/me/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/ml/messages.json b/apps/desktop/src/locales/ml/messages.json index e4d154d6f5..215f5def54 100644 --- a/apps/desktop/src/locales/ml/messages.json +++ b/apps/desktop/src/locales/ml/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/mr/messages.json b/apps/desktop/src/locales/mr/messages.json index eb228ace8c..c835e56555 100644 --- a/apps/desktop/src/locales/mr/messages.json +++ b/apps/desktop/src/locales/mr/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/my/messages.json b/apps/desktop/src/locales/my/messages.json index 4d1b52f81b..0882abff4b 100644 --- a/apps/desktop/src/locales/my/messages.json +++ b/apps/desktop/src/locales/my/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/nb/messages.json b/apps/desktop/src/locales/nb/messages.json index 8441dd2b2d..eb5336dc55 100644 --- a/apps/desktop/src/locales/nb/messages.json +++ b/apps/desktop/src/locales/nb/messages.json @@ -1817,7 +1817,7 @@ "message": "Biometri i nettleserutvidelsen krever først aktivering i innstillinger i skrivebordsprogrammet." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/ne/messages.json b/apps/desktop/src/locales/ne/messages.json index 1764f7eb54..2365cccd91 100644 --- a/apps/desktop/src/locales/ne/messages.json +++ b/apps/desktop/src/locales/ne/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/nn/messages.json b/apps/desktop/src/locales/nn/messages.json index b79c2604f5..81ec6df854 100644 --- a/apps/desktop/src/locales/nn/messages.json +++ b/apps/desktop/src/locales/nn/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/or/messages.json b/apps/desktop/src/locales/or/messages.json index b0fb23dce1..455e63ecff 100644 --- a/apps/desktop/src/locales/or/messages.json +++ b/apps/desktop/src/locales/or/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/ro/messages.json b/apps/desktop/src/locales/ro/messages.json index aba64a81aa..9e742573d1 100644 --- a/apps/desktop/src/locales/ro/messages.json +++ b/apps/desktop/src/locales/ro/messages.json @@ -1817,7 +1817,7 @@ "message": "Biometria browserului necesită ca mai întâi să fie configurată biometria desktopului în setări." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/si/messages.json b/apps/desktop/src/locales/si/messages.json index ae8e9bd25b..9ac7c0dc35 100644 --- a/apps/desktop/src/locales/si/messages.json +++ b/apps/desktop/src/locales/si/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/sl/messages.json b/apps/desktop/src/locales/sl/messages.json index 102093af2a..b54f4bc6d7 100644 --- a/apps/desktop/src/locales/sl/messages.json +++ b/apps/desktop/src/locales/sl/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/sr/messages.json b/apps/desktop/src/locales/sr/messages.json index 4f57d63f0a..9b3fd229ce 100644 --- a/apps/desktop/src/locales/sr/messages.json +++ b/apps/desktop/src/locales/sr/messages.json @@ -1175,7 +1175,7 @@ "message": "Можете купити премијум претплату на bitwarden.com. Да ли желите да посетите веб сајт сада?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "Можете да купите Премиум у подешавањима налога у веб апликацији Bitwarden." }, "premiumCurrentMember": { "message": "Ви сте премијум члан!" diff --git a/apps/desktop/src/locales/sv/messages.json b/apps/desktop/src/locales/sv/messages.json index 2399507668..c839ff9d34 100644 --- a/apps/desktop/src/locales/sv/messages.json +++ b/apps/desktop/src/locales/sv/messages.json @@ -1817,7 +1817,7 @@ "message": "Biometri i webbläsaren kräver att biometri på skrivbordet aktiveras i inställningarna först." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/te/messages.json b/apps/desktop/src/locales/te/messages.json index eb228ace8c..c835e56555 100644 --- a/apps/desktop/src/locales/te/messages.json +++ b/apps/desktop/src/locales/te/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/th/messages.json b/apps/desktop/src/locales/th/messages.json index 91ba398f82..ac02e10a80 100644 --- a/apps/desktop/src/locales/th/messages.json +++ b/apps/desktop/src/locales/th/messages.json @@ -1817,7 +1817,7 @@ "message": "Browser biometrics requires desktop biometrics to be set up in the settings first." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/tr/messages.json b/apps/desktop/src/locales/tr/messages.json index 0c6f1ed8da..067b08f1d4 100644 --- a/apps/desktop/src/locales/tr/messages.json +++ b/apps/desktop/src/locales/tr/messages.json @@ -1817,7 +1817,7 @@ "message": "Tarayıcıda biyometriyi kullanmak için önce ayarlardan masaüstü biyometrisini ayarlamanız gerekir." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" diff --git a/apps/desktop/src/locales/vi/messages.json b/apps/desktop/src/locales/vi/messages.json index 24d10043ca..d0e985a301 100644 --- a/apps/desktop/src/locales/vi/messages.json +++ b/apps/desktop/src/locales/vi/messages.json @@ -871,11 +871,11 @@ "message": "Bạn có thể thay đổi mật khẩu chính của mình trên Bitwarden bản web." }, "fingerprintPhrase": { - "message": "Cụm từ mật khẩu", + "message": "Cụm vân tay", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "yourAccountsFingerprint": { - "message": "Cụm từ mật khẩu tài khoản của bạn", + "message": "Cụm vân tay tài khoản của bạn", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "goToWebVault": { @@ -1649,7 +1649,7 @@ "message": "Xoá vĩnh viễn" }, "vaultTimeoutLogOutConfirmation": { - "message": "Tuỳ chọn đăng xuất sẽ đăng xuất khỏi kho sau khi hết thời gian mở kho và bạn sẽ cần đăng nhập lại để tiếp tục sử dụng. Bạn có chắc muốn sử dụng tuỳ chọn này không?" + "message": "Đăng xuất sẽ xóa tất cả quyền truy cập vào kho của bạn và yêu cầu xác minh 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 chờ" @@ -1778,7 +1778,7 @@ "message": "Yêu cầu xác minh để tích hợp trình duyệt" }, "enableBrowserIntegrationFingerprintDesc": { - "message": "Tăng cường bảo mật bằng cách yêu cầu xác nhận cụm từ mật khẩu khi kết nối máy tính với trình duyệt. Việc này yêu cầu bạn phải thực hiện thao tác xác minh mỗi khi tạo kết nối mới." + "message": "Tăng cường bảo mật bằng cách yêu cầu xác nhận cụm vân tay khi kết nối máy tính với trình duyệt. Việc này yêu cầu bạn phải thực hiện thao tác xác minh mỗi khi tạo kết nối." }, "enableHardwareAcceleration": { "message": "Dùng tính năng tăng tốc phần cứng" @@ -1793,7 +1793,7 @@ "message": "Xác minh kết nối trình duyệt" }, "verifyBrowserDesc": { - "message": "Vui lòng đảm bảo dấu vân tay hiển thị giống hệt với dấu vân tay được hiển thị trong tiện ích mở rộng trình duyệt." + "message": "Vui lòng đảm bảo cụm vân tay hiển thị giống hệt với cụm vân tay được hiển thị trong tiện ích mở rộng trình duyệt." }, "verifyNativeMessagingConnectionTitle": { "message": "$APPID$ muốn kết nối với Bitwarden", @@ -1817,7 +1817,7 @@ "message": "Sinh trắc học trên trình duyệt yêu cầu sinh trắc học trên máy tính phải được cài đặt trước." }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" @@ -2450,10 +2450,10 @@ "message": "Một thông báo đã được gửi đến thiết bị của bạn." }, "fingerprintMatchInfo": { - "message": "Vui lòng đảm bảo rằng bạn đã mở khoá kho và cụm từ mật khẩu khớp trên thiết bị khác." + "message": "Vui lòng đảm bảo rằng bạn đã mở khoá kho và cụm vân tay khớp trên thiết bị khác." }, "fingerprintPhraseHeader": { - "message": "Cụm từ mật khẩu" + "message": "Cụm vân tay" }, "needAnotherOption": { "message": "Đăng nhập bằng thiết bị phải được thiết lập trong cài đặt của ứng dụng Bitwarden. Dùng cách khác?" diff --git a/apps/desktop/src/locales/zh_TW/messages.json b/apps/desktop/src/locales/zh_TW/messages.json index dc11ce73b0..971bbf9466 100644 --- a/apps/desktop/src/locales/zh_TW/messages.json +++ b/apps/desktop/src/locales/zh_TW/messages.json @@ -1817,7 +1817,7 @@ "message": "需先在桌面應用程式的設定中啟用生物特徵辨識,才能使用瀏覽器的生物特徵辨識。" }, "biometricsManualSetupTitle": { - "message": "Autometic setup not available" + "message": "Automatic setup not available" }, "biometricsManualSetupDesc": { "message": "Due to the installation method, biometrics support could not be automatically enabled. Would you like to open the documentation on how to do this manually?" From b8be1f7b1b4df08fabb019a5eea30689665d6916 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:13:11 +0000 Subject: [PATCH 33/40] Autosync the updated translations (#10722) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/web/src/locales/af/messages.json | 54 +++++++ apps/web/src/locales/ar/messages.json | 54 +++++++ apps/web/src/locales/az/messages.json | 68 ++++++++- apps/web/src/locales/be/messages.json | 54 +++++++ apps/web/src/locales/bg/messages.json | 80 ++++++++-- apps/web/src/locales/bn/messages.json | 54 +++++++ apps/web/src/locales/bs/messages.json | 54 +++++++ apps/web/src/locales/ca/messages.json | 54 +++++++ apps/web/src/locales/cs/messages.json | 54 +++++++ apps/web/src/locales/cy/messages.json | 54 +++++++ apps/web/src/locales/da/messages.json | 54 +++++++ apps/web/src/locales/de/messages.json | 54 +++++++ apps/web/src/locales/el/messages.json | 54 +++++++ apps/web/src/locales/en_GB/messages.json | 54 +++++++ apps/web/src/locales/en_IN/messages.json | 54 +++++++ apps/web/src/locales/eo/messages.json | 54 +++++++ apps/web/src/locales/es/messages.json | 54 +++++++ apps/web/src/locales/et/messages.json | 54 +++++++ apps/web/src/locales/eu/messages.json | 54 +++++++ apps/web/src/locales/fa/messages.json | 54 +++++++ apps/web/src/locales/fi/messages.json | 178 +++++++++++++++-------- apps/web/src/locales/fil/messages.json | 54 +++++++ apps/web/src/locales/fr/messages.json | 54 +++++++ apps/web/src/locales/gl/messages.json | 58 +++++++- apps/web/src/locales/he/messages.json | 54 +++++++ apps/web/src/locales/hi/messages.json | 54 +++++++ apps/web/src/locales/hr/messages.json | 54 +++++++ apps/web/src/locales/hu/messages.json | 54 +++++++ apps/web/src/locales/id/messages.json | 54 +++++++ apps/web/src/locales/it/messages.json | 54 +++++++ apps/web/src/locales/ja/messages.json | 54 +++++++ apps/web/src/locales/ka/messages.json | 54 +++++++ apps/web/src/locales/km/messages.json | 54 +++++++ apps/web/src/locales/kn/messages.json | 54 +++++++ apps/web/src/locales/ko/messages.json | 54 +++++++ apps/web/src/locales/lv/messages.json | 74 ++++++++-- apps/web/src/locales/ml/messages.json | 54 +++++++ apps/web/src/locales/mr/messages.json | 54 +++++++ apps/web/src/locales/my/messages.json | 54 +++++++ apps/web/src/locales/nb/messages.json | 54 +++++++ apps/web/src/locales/ne/messages.json | 54 +++++++ apps/web/src/locales/nl/messages.json | 54 +++++++ apps/web/src/locales/nn/messages.json | 54 +++++++ apps/web/src/locales/or/messages.json | 54 +++++++ apps/web/src/locales/pl/messages.json | 54 +++++++ apps/web/src/locales/pt_BR/messages.json | 54 +++++++ apps/web/src/locales/pt_PT/messages.json | 54 +++++++ apps/web/src/locales/ro/messages.json | 54 +++++++ apps/web/src/locales/ru/messages.json | 54 +++++++ apps/web/src/locales/si/messages.json | 54 +++++++ apps/web/src/locales/sk/messages.json | 54 +++++++ apps/web/src/locales/sl/messages.json | 54 +++++++ apps/web/src/locales/sr/messages.json | 60 +++++++- apps/web/src/locales/sr_CS/messages.json | 54 +++++++ apps/web/src/locales/sv/messages.json | 54 +++++++ apps/web/src/locales/te/messages.json | 54 +++++++ apps/web/src/locales/th/messages.json | 54 +++++++ apps/web/src/locales/tr/messages.json | 54 +++++++ apps/web/src/locales/uk/messages.json | 54 +++++++ apps/web/src/locales/vi/messages.json | 54 +++++++ apps/web/src/locales/zh_CN/messages.json | 62 +++++++- apps/web/src/locales/zh_TW/messages.json | 54 +++++++ 62 files changed, 3449 insertions(+), 101 deletions(-) diff --git a/apps/web/src/locales/af/messages.json b/apps/web/src/locales/af/messages.json index 2d80f8b5d7..0d38c2e9a6 100644 --- a/apps/web/src/locales/af/messages.json +++ b/apps/web/src/locales/af/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Hoofwagwoordwenk (opsioneel)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Hoofwagwoordwenk" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/ar/messages.json b/apps/web/src/locales/ar/messages.json index cad9b5e655..7cb71b8b50 100644 --- a/apps/web/src/locales/ar/messages.json +++ b/apps/web/src/locales/ar/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "تلميح كلمة المرور الرئيسية (اختياري)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "تلميح كلمة المرور الرئيسية" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/az/messages.json b/apps/web/src/locales/az/messages.json index e6972df25d..dc07206c78 100644 --- a/apps/web/src/locales/az/messages.json +++ b/apps/web/src/locales/az/messages.json @@ -195,10 +195,10 @@ "message": "Dr" }, "cardExpiredTitle": { - "message": "Expired card" + "message": "Kartın müddəti bitib" }, "cardExpiredMessage": { - "message": "If you've renewed it, update the card's information" + "message": "Yeniləmisinizsə, kart məlumatlarınızı güncəlləyin" }, "expirationMonth": { "message": "Son istifadə ayı" @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Ana parol məsləhəti (ixtiyari)" }, + "newMasterPassHint": { + "message": "Yeni ana parol ipucusu (ixtiyari)" + }, "masterPassHintLabel": { "message": "Ana parol məsləhəti" }, @@ -5359,19 +5362,19 @@ "message": "Ana parolunuz təşkilatınızdakı siyasətlərdən birinə və ya bir neçəsinə uyğun gəlmir. Anbara 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." }, "automaticAppLogin": { - "message": "Automatically log in users for allowed applications" + "message": "İcazə verilən tətbiqlər üçün istifadəçilərin avtomatik giriş etməsi" }, "automaticAppLoginDesc": { - "message": "Login forms will automatically be filled and submitted for apps launched from your configured identity provider." + "message": "Konfiqurasiya edilmiş kimlik provayderinizdən başladılan tətbiqlər üçün giriş xanaları avtomatik doldurulub göndəriləcək." }, "automaticAppLoginIdpHostLabel": { - "message": "Identity provider host" + "message": "Provayder host-unu müəyyənləşdir" }, "automaticAppLoginIdpHostDesc": { - "message": "Enter your identity provider host URL. Enter multiple URLs by separating with a comma." + "message": "Provayder host kimliyinin URL-sini daxil edin. Çoxlu URL-ləri vergüllə ayırın." }, "tdeDisabledMasterPasswordRequired": { - "message": "Your organization has updated your decryption options. Please set a master password to access your vault." + "message": "Təşkilatınız, şifrə açma seçimlərinizi güncəllədi. Anbarınıza müraciət etmək üçün lütfən ana parol təyin edin." }, "maximumVaultTimeout": { "message": "Anbara müraciət bitəcək" @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB əlavə saxlama sahəsi" + }, + "premiumAccounts": { + "message": "6 premium hesab" + }, + "unlimitedSharing": { + "message": "Limitsiz paylaşım" + }, + "unlimitedCollections": { + "message": "Limitsiz kolleksiya" + }, + "secureDataSharing": { + "message": "Güvənli data paylaşımı" + }, + "eventLogMonitoring": { + "message": "Event log izləmə" + }, + "directoryIntegration": { + "message": "Directory inteqrasiyası" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Hesab geri qaytarma" + }, + "customRoles": { + "message": "Özəl rollar" + }, + "unlimitedSecretsStorage": { + "message": "Limitsiz sirr anbarı" + }, + "unlimitedUsers": { + "message": "Limitsiz istifadəçi" + }, + "UpTo50MachineAccounts": { + "message": "50-yə qədər maşın hesabı" + }, + "UpTo20MachineAccounts": { + "message": "20-yə qədər maşın hesabı" + }, + "current": { + "message": "Hazırkı" + }, + "secretsManagerSubInfo": { + "message": "Sirr Meneceri abunəliyiniz seçilmiş plan əsasında yüksəldiləcək" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Parol Meneceri" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Tamamlayıcı bir illik Parol Meneceri abunəliyiniz seçilmiş plana yüksəldiləcək. Ödənişsiz dövr bitənə qədər sizdən ödəniş alınmayacaq." } } diff --git a/apps/web/src/locales/be/messages.json b/apps/web/src/locales/be/messages.json index 7c4a782c98..e07d398fdc 100644 --- a/apps/web/src/locales/be/messages.json +++ b/apps/web/src/locales/be/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Падказка да асноўнага пароля (неабавязкова)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Падказка да асноўнага пароля" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/bg/messages.json b/apps/web/src/locales/bg/messages.json index c847ccbf1f..b36e6837e5 100644 --- a/apps/web/src/locales/bg/messages.json +++ b/apps/web/src/locales/bg/messages.json @@ -189,7 +189,7 @@ "message": "Г-жа" }, "mx": { - "message": "Mx" + "message": "Предпочитам да не посочвам" }, "dr": { "message": "Д-р" @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Подсказка за главната парола (по избор)" }, + "newMasterPassHint": { + "message": "Подсказка за новата главна парола (по избор)" + }, "masterPassHintLabel": { "message": "Подсказка за главната парола" }, @@ -980,7 +983,7 @@ "message": "Трезорът Ви е заключен." }, "uuid": { - "message": "UUID" + "message": "ИН на универсален потребител - UUID" }, "unlock": { "message": "Отключване" @@ -1214,7 +1217,7 @@ "message": "Копиране на кода за потвърждаване" }, "copyUuid": { - "message": "Copy UUID" + "message": "Копиране на UUID" }, "errorRefreshingAccessToken": { "message": "Грешка при опресняването на идентификатора за достъп" @@ -5653,7 +5656,7 @@ "message": "Redeemed" }, "redeemedAccount": { - "message": "Account redeemed" + "message": "Регистрацията е присвоена" }, "revokeAccount": { "message": "Revoke account $NAME$", @@ -5677,7 +5680,7 @@ "message": "Безплатен семеен план" }, "redeemNow": { - "message": "Redeem now" + "message": "Осребрете сега" }, "recipient": { "message": "Получател" @@ -6586,7 +6589,7 @@ "description": "A label for a type-to-filter input field to choose projects." }, "searchProjects": { - "message": "Search projects", + "message": "Търсене на проекти", "description": "Label for the search bar used to search projects." }, "project": { @@ -7191,7 +7194,7 @@ "message": "Няма добавени членове или групи" }, "deleted": { - "message": "Deleted" + "message": "Изтрито" }, "memberStatusFilter": { "message": "Member status filter" @@ -7452,7 +7455,7 @@ "message": "Внасяне на тайни" }, "getStarted": { - "message": "Get started" + "message": "Първи стъпки" }, "complete": { "message": "Завършено: $COMPLETED$/$TOTAL$", @@ -7513,13 +7516,13 @@ "message": "Проверяване в известните случаи на изтекли данни за тази парола" }, "exposedMasterPassword": { - "message": "Exposed Master Password" + "message": "Разобличена главна парола" }, "exposedMasterPasswordDesc": { - "message": "Password found in a data breach. Use a unique password to protect your account. Are you sure you want to use an exposed password?" + "message": "Паролата е намерена в пробив на данни. Използвайте уникална парола, за да защитите Вашия акаунт. Наистина ли искате да използвате слаба парола?" }, "weakAndExposedMasterPassword": { - "message": "Weak and Exposed Master Password" + "message": "Слаба и разобличена главна парола" }, "weakAndBreachedMasterPasswordDesc": { "message": "Разпозната е слаба парола, която присъства в известен случай на изтекли данни. Използвайте силна и уникална парола, за да защитите данните си. Наистина ли искате да използвате тази парола?" @@ -7547,7 +7550,7 @@ "description": "Notification to inform the user that a form's input can't contain only whitespace." }, "dismiss": { - "message": "Dismiss" + "message": "Отхвърляне" }, "notAvailableForFreeOrganization": { "message": "Тази функционалност не е налична за организациите използващи безплатния план. Свържете се със собственика на организацията си, за да преминете към платен абонамент." @@ -7767,7 +7770,7 @@ } }, "next": { - "message": "Next" + "message": "Следващ" }, "ssoLoginIsRequired": { "message": "Необходимо е вписване чрез еднократно удостоверяване" @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB допълнително място за съхранение" + }, + "premiumAccounts": { + "message": "6 платени регистрации" + }, + "unlimitedSharing": { + "message": "Неограничено споделяне" + }, + "unlimitedCollections": { + "message": "Неограничен брой колекции" + }, + "secureDataSharing": { + "message": "Сигурно споделяне на данни" + }, + "eventLogMonitoring": { + "message": "Следене на журнала на събитията" + }, + "directoryIntegration": { + "message": "Интеграция на активна директория" + }, + "passwordLessSso": { + "message": "Еднократно удостоверяване без парола" + }, + "accountRecovery": { + "message": "Възстановяване на регистрацията" + }, + "customRoles": { + "message": "Персонализирани роли" + }, + "unlimitedSecretsStorage": { + "message": "Неограничено място за съхранение на тайни" + }, + "unlimitedUsers": { + "message": "Неограничен брой потребители" + }, + "UpTo50MachineAccounts": { + "message": "До 50 машинни акаунти" + }, + "UpTo20MachineAccounts": { + "message": "До 20 машинни акаунти" + }, + "current": { + "message": "Текущо" + }, + "secretsManagerSubInfo": { + "message": "Вашият абонамент за Управлението на тайни ще бъде надграден според избрания план" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden — управител на пароли" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/bn/messages.json b/apps/web/src/locales/bn/messages.json index b2232f425f..4b29eb6583 100644 --- a/apps/web/src/locales/bn/messages.json +++ b/apps/web/src/locales/bn/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "মূল পাসওয়ার্ড ইঙ্গিত (ঐচ্ছিক)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "মূল পাসওয়ার্ডের ইঙ্গিত" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/bs/messages.json b/apps/web/src/locales/bs/messages.json index a4a301e0d4..cd78810aeb 100644 --- a/apps/web/src/locales/bs/messages.json +++ b/apps/web/src/locales/bs/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/ca/messages.json b/apps/web/src/locales/ca/messages.json index a252d27c98..258d59a527 100644 --- a/apps/web/src/locales/ca/messages.json +++ b/apps/web/src/locales/ca/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Pista de la contrasenya mestra (opcional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Pista de la contrasenya mestra" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/cs/messages.json b/apps/web/src/locales/cs/messages.json index e3575fd161..0e1323a1b6 100644 --- a/apps/web/src/locales/cs/messages.json +++ b/apps/web/src/locales/cs/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Nápověda k hlavnímu heslu (volitelné)" }, + "newMasterPassHint": { + "message": "Nápověda k novému hlavnímu heslu (volitelné)" + }, "masterPassHintLabel": { "message": "Nápověda k hlavnímu heslu" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB dodatečného úložiště" + }, + "premiumAccounts": { + "message": "6 účtů Premium" + }, + "unlimitedSharing": { + "message": "Neomezené sdílení" + }, + "unlimitedCollections": { + "message": "Neomezené kolekce" + }, + "secureDataSharing": { + "message": "Zabezpečené sdílení dat" + }, + "eventLogMonitoring": { + "message": "Monitorování logů událostí" + }, + "directoryIntegration": { + "message": "Integrace adresáře" + }, + "passwordLessSso": { + "message": "SSO bez hesla" + }, + "accountRecovery": { + "message": "Obnovení účtu" + }, + "customRoles": { + "message": "Vlastní role" + }, + "unlimitedSecretsStorage": { + "message": "Neomezené úložiště tajných klíčů" + }, + "unlimitedUsers": { + "message": "Neomezení uživatelé" + }, + "UpTo50MachineAccounts": { + "message": "Až 50 účtů" + }, + "UpTo20MachineAccounts": { + "message": "Až 20 účtů" + }, + "current": { + "message": "Aktuální" + }, + "secretsManagerSubInfo": { + "message": "Vaše předplatné Správce tajných klíčů bude aktualizováno na základě vybraného tarifu" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden - Správce hesel" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Vaše doplňkové roční předplatné Správce hesel bude aktualizováno na vybraný plán. Poplatek Vám bude účtován až po skončení bezplatného období." } } diff --git a/apps/web/src/locales/cy/messages.json b/apps/web/src/locales/cy/messages.json index 0cae6bcd6e..7611321b76 100644 --- a/apps/web/src/locales/cy/messages.json +++ b/apps/web/src/locales/cy/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/da/messages.json b/apps/web/src/locales/da/messages.json index b59571ae88..32f4b5fb4a 100644 --- a/apps/web/src/locales/da/messages.json +++ b/apps/web/src/locales/da/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Hovedadgangskodetip (valgfri)" }, + "newMasterPassHint": { + "message": "Nyt hovedadgangskodetip (valgfrit)" + }, "masterPassHintLabel": { "message": "Hovedadgangskodetip" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB ekstra lagerplads" + }, + "premiumAccounts": { + "message": "6 Premium-konti" + }, + "unlimitedSharing": { + "message": "Ubegrænset antal delinger" + }, + "unlimitedCollections": { + "message": "Ubegrænset antal samlinger" + }, + "secureDataSharing": { + "message": "Sikker datadeling" + }, + "eventLogMonitoring": { + "message": "Hændelseslogmonitorering" + }, + "directoryIntegration": { + "message": "Mappeintegration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Kontogenskabelse" + }, + "customRoles": { + "message": "Tilpassede roller" + }, + "unlimitedSecretsStorage": { + "message": "Ubegrænset hemmelighedslagring" + }, + "unlimitedUsers": { + "message": "Ubegrænset antal brugere" + }, + "UpTo50MachineAccounts": { + "message": "Op til 50 maskinkonti" + }, + "UpTo20MachineAccounts": { + "message": "Op til 20 maskinkonti" + }, + "current": { + "message": "Nuværende" + }, + "secretsManagerSubInfo": { + "message": "Secrets Manager-abonnementet vil opgradere baseret på den valgte plan" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Adgangskodehåndtering" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Det komplementære et års abonnement på Adgangskodehåndtering opgraderes til den valgte abonnementstype. Betaling opkræves først efter den gratis periode." } } diff --git a/apps/web/src/locales/de/messages.json b/apps/web/src/locales/de/messages.json index 1519de5aea..9141b34cae 100644 --- a/apps/web/src/locales/de/messages.json +++ b/apps/web/src/locales/de/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master-Passwort-Hinweis (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master-Passwort-Hinweis" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB zusätzlicher Speicher" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/el/messages.json b/apps/web/src/locales/el/messages.json index 06dd40ceae..b73a71030d 100644 --- a/apps/web/src/locales/el/messages.json +++ b/apps/web/src/locales/el/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Υπόδειξη Κύριου Κωδικού (προαιρετικό)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Υπόδειξη Κύριου Κωδικού" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/en_GB/messages.json b/apps/web/src/locales/en_GB/messages.json index 27698eaa11..8b5ebb247d 100644 --- a/apps/web/src/locales/en_GB/messages.json +++ b/apps/web/src/locales/en_GB/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "Passwordless SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade based on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/en_IN/messages.json b/apps/web/src/locales/en_IN/messages.json index e1087d38d6..9238ae1249 100644 --- a/apps/web/src/locales/en_IN/messages.json +++ b/apps/web/src/locales/en_IN/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "Passwordless SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade based on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/eo/messages.json b/apps/web/src/locales/eo/messages.json index 918c6070a6..6a1fda99b1 100644 --- a/apps/web/src/locales/eo/messages.json +++ b/apps/web/src/locales/eo/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Majstra Pasvorta Konsilo (nedeviga)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Majstra Pasvorta Konsilo" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/es/messages.json b/apps/web/src/locales/es/messages.json index 37184524be..38e256a52e 100644 --- a/apps/web/src/locales/es/messages.json +++ b/apps/web/src/locales/es/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Pista de contraseña maestra (opcional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Pista de contraseña maestra" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/et/messages.json b/apps/web/src/locales/et/messages.json index 552a97b7ae..6c3e9af694 100644 --- a/apps/web/src/locales/et/messages.json +++ b/apps/web/src/locales/et/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Ülemparooli vihje (ei ole kohustuslik)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Ülemparooli vihje" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/eu/messages.json b/apps/web/src/locales/eu/messages.json index b0a1ed7481..18367cb0f5 100644 --- a/apps/web/src/locales/eu/messages.json +++ b/apps/web/src/locales/eu/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Pasahitz nagusirako pista (aukerakoa)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Pasahitz nagusiaren pista" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/fa/messages.json b/apps/web/src/locales/fa/messages.json index ce90b6c9e1..3868a2f394 100644 --- a/apps/web/src/locales/fa/messages.json +++ b/apps/web/src/locales/fa/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "یادآور کلمه عبور اصلی (اختیاری)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "یادآور کلمه عبور اصلی" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/fi/messages.json b/apps/web/src/locales/fi/messages.json index ab79c65c05..38deb3871b 100644 --- a/apps/web/src/locales/fi/messages.json +++ b/apps/web/src/locales/fi/messages.json @@ -68,7 +68,7 @@ } }, "websiteAdded": { - "message": "Sivusto lisätty" + "message": "Verkkosivusto lisättiin" }, "addWebsite": { "message": "Lisää verkkosivusto" @@ -195,7 +195,7 @@ "message": "Tri" }, "cardExpiredTitle": { - "message": "Vanhentunut kortti" + "message": "Kortti on vanhentunut" }, "cardExpiredMessage": { "message": "Jos olet uusinut sen, päivitä kortin tiedot" @@ -648,7 +648,7 @@ } }, "itemsMovedToOrg": { - "message": "Kohteet siirrettiin organisaatioon $ORGNAME$", + "message": "Kohteet siirrettiin organisaatiolle $ORGNAME$", "placeholders": { "orgname": { "content": "$1", @@ -657,7 +657,7 @@ } }, "itemMovedToOrg": { - "message": "Kohde siirrettiin organisaatioon $ORGNAME$", + "message": "Kohde siirrettiin organisaatiolle $ORGNAME$", "placeholders": { "orgname": { "content": "$1", @@ -732,7 +732,7 @@ "message": "Aloita rekisteröityminen alusta tai yritä kirjautua sisään uudelleen." }, "youMayAlreadyHaveAnAccount": { - "message": "Sinulla saattaa olla jo tili" + "message": "Sinulla saattaa jo olla tili" }, "logOutConfirmation": { "message": "Haluatko varmasti kirjautua ulos?" @@ -762,7 +762,7 @@ "message": "Kirjaudu pääsalasanalla" }, "readingPasskeyLoading": { - "message": "Luetaan suojausavainta..." + "message": "Luetaan pääsyavainta..." }, "readingPasskeyLoadingInfo": { "message": "Pidä tämä ikkuna avoinna ja seuraa selaimesi opasteita." @@ -771,40 +771,40 @@ "message": "Käytä vaihtoehtoista kirjautumistapaa" }, "loginWithPasskey": { - "message": "Kirjaudu suojausavaimella" + "message": "Kirjaudu pääsyavaimella" }, "invalidPasskeyPleaseTryAgain": { - "message": "Suojausavain ei kelpaa. Yritä uudelleen." + "message": "Pääsyavain ei kelpaa. Yritä uudelleen." }, "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": { - "message": "Kaksivaiheista suojausavainkirjautumista ei tueta. Päivitä sovellus kirjautuaksesi sisään." + "message": "Kaksivaiheista pääsyavainkirjautumista ei tueta. Päivitä sovellus kirjautuaksesi sisään." }, "loginWithPasskeyInfo": { - "message": "Käytä generoitua suojausavainta, joka kirjaa sinut automaattisesti sisään ilman salasanaa. Henkilöllisyytesi vahvistetaan kasvojen tunnistuksen tai sormenjäljen kataisilla biometrisillä tiedoilla, tai jollakin muulla FIDO2-suojausratkaisulla." + "message": "Käytä generoitua pääsyavainta, joka kirjaa sinut sisään automaattisesti sisään ilman salasanaa. Henkilöllisyytesi vahvistetaan kasvojen tunnistuksen tai sormenjäljen kataisilla biometrisillä tiedoilla, tai jollakin muulla FIDO2-suojausratkaisulla." }, "newPasskey": { - "message": "Uusi suojausavain" + "message": "Uusi pääsyavain" }, "learnMoreAboutPasswordless": { "message": "Lue lisää salasanattomasta kirjautumisesta" }, "creatingPasskeyLoading": { - "message": "Suojausavainta luodaan..." + "message": "Pääsyavainta luodaan..." }, "creatingPasskeyLoadingInfo": { "message": "Pidä tämä ikkuna avoinna ja seuraa selaimesi opasteita." }, "errorCreatingPasskey": { - "message": "Virhe luotaessa suojausavainta" + "message": "Virhe luotaessa pääsyavainta" }, "errorCreatingPasskeyInfo": { - "message": "Suojausavaintasi luotaessa kohdattiin ongelma." + "message": "Pääsyavaintasi luotaessa kohdattiin ongelma." }, "passkeySuccessfullyCreated": { - "message": "Suojausavain on luotu" + "message": "Pääsyavain luotiin!" }, "customPasskeyNameInfo": { - "message": "Anna suojausavaimellesi nimi, jolla tunnistat sen." + "message": "Anna pääsyavaimellesi nimi, josta tunnistat sen." }, "useForVaultEncryption": { "message": "Käytä holvin salaukseen" @@ -813,7 +813,7 @@ "message": "Kirjaudu sisään ja avaa tuetut laitteet ilman pääsalasanaa. Viimeistele määritys seuraamalla selaimen ilmoituksia." }, "useForVaultEncryptionErrorReadingPasskey": { - "message": "Suojausavaimen lukuvirhe. Yritä uudelleen tai poista asetus käytöstä." + "message": "Pääsyavaimen lukuvirhe. Yritä uudelleen tai poista asetus käytöstä." }, "encryptionNotSupported": { "message": "Salausta ei tueta" @@ -825,7 +825,7 @@ "message": "Käytetään salaukseen" }, "loginWithPasskeyEnabled": { - "message": "Suojausavainkirjautuminen on käytössä" + "message": "Pääsyavainkirjautuminen on käytössä" }, "passkeySaved": { "message": "$NAME$ tallennettiin", @@ -837,16 +837,16 @@ } }, "passkeyRemoved": { - "message": "Suojausavain poistettiin" + "message": "Pääsyavain poistettiin" }, "removePasskey": { - "message": "Poista suojausavain" + "message": "Poista pääsyavain" }, "removePasskeyInfo": { - "message": "Jos kaikki suojausavaimet poistetaan, et voi kirjautua uusille laitteille ilman pääsalasanaasi." + "message": "Jos kaikki pääsyavaimet poistetaan, et voi kirjautua uusille laitteille ilman pääsalasanaasi." }, "passkeyLimitReachedInfo": { - "message": "Suojausavianten enimmäismäärä on saavutettu. Lisää suojausavain poistamalla nykyisiä avaimia." + "message": "Pääsyavainten enimmäismäärä on saavutettu. Lisää pääsyavain poistamalla nykyisiä avaimia." }, "tryAgain": { "message": "Yritä uudelleen" @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Pääsalasanan vihje (valinnainen)" }, + "newMasterPassHint": { + "message": "Uusi pääsalasanan vihje (valinnainen)" + }, "masterPassHintLabel": { "message": "Pääsalasanan vihje" }, @@ -1047,10 +1050,10 @@ } }, "enterVerificationCodeApp": { - "message": "Syötä 6-numeroinen todennuskoodi todennussovelluksestasi." + "message": "Syötä todennussovelluksesi näyttämä kuusinumeroinen todennuskoodi." }, "enterVerificationCodeEmail": { - "message": "Syötä 6-numeroinen todennuskoodi, joka lähetettiin sähköpostitse osoitteeseen $EMAIL$.", + "message": "Syötä osoitteeseen $EMAIL$ lähetetty kuusinumeroinen todennuskoodi.", "placeholders": { "email": { "content": "$1", @@ -1080,7 +1083,7 @@ "message": "Kytke YubiKey-todennuslaitteesi tietokoneen USB-porttiin ja paina sen painiketta." }, "insertU2f": { - "message": "Kytke todennuslaitteesi tietokoneen USB-porttiin ja jos laitteessa on painike, paina sitä." + "message": "Kytke suojausavaimesi tietokoneen USB-porttiin ja jos laitteessa on painike, paina sitä." }, "loginUnavailable": { "message": "Kirjautuminen ei ole käytettävissä" @@ -1108,7 +1111,7 @@ "description": "'Bitwarden Authenticator' is a product name and should not be translated." }, "yubiKeyTitleV2": { - "message": "Yubico OTP -todennuslaite" + "message": "Yubico OTP -suojausavain" }, "yubiKeyDesc": { "message": "Vahvista kirjatuminen YubiKey-todennuslaiteella. Toimii YubiKey 4 ja 5 -sarjojen sekä NEO -laitteiden kanssa." @@ -1118,17 +1121,17 @@ "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { - "message": "Vahvista kirjautuminen organisaatiollesi Duo Securityn avulla käyttäen Duo Mobile ‑sovellusta, tekstiviestiä, puhelua tai U2F-todennuslaitetta.", + "message": "Vahvista kirjautuminen organisaatiollesi Duo Securityn avulla käyttäen Duo Mobile ‑sovellusta, tekstiviestiä, puhelua tai U2F-suojausavainta.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "u2fDesc": { - "message": "Vahvista kirjautuminen FIDO U2F -todennuslaitteella." + "message": "Vahvista kirjautuminen FIDO U2F -suojausavaimella." }, "u2fTitle": { "message": "FIDO U2F ‑todennuslaite" }, "webAuthnTitle": { - "message": "Suojausavain" + "message": "Pääsyavain" }, "webAuthnDesc": { "message": "Vahvista kirjautuminen WebAuthn-suojausavaimella." @@ -1920,34 +1923,34 @@ "message": "Syötä sähköpostiosoite, johon haluat vastaanottaa todennuskoodit" }, "twoFactorEmailEnterCode": { - "message": "Syötä 6-numeroinen todennuskoodi sähköpostista" + "message": "Syötä sähköpostiviestin kuusinumeroinen todennuskoodi." }, "sendEmail": { "message": "Lähetä sähköposti" }, "twoFactorU2fAdd": { - "message": "Lisää tilillesi FIDO U2F -todennuslaite" + "message": "Lisää tilillesi FIDO U2F -suojausavain" }, "removeU2fConfirmation": { - "message": "Haluatko varmasti poistaa todennuslaitteen?" + "message": "Haluatko varmasti poistaa tämän suojausavaimen?" }, "twoFactorWebAuthnAdd": { - "message": "Lisää tilillesi WebAuthn-todennuslaite" + "message": "Lisää tilillesi WebAuthn-suojausavain" }, "readKey": { - "message": "Lue todennuslaite" + "message": "Lue avain" }, "keyCompromised": { "message": "Avain on vaarantunut." }, "twoFactorU2fGiveName": { - "message": "Anna todennuslaitteelle helposti tunnistettava nimi." + "message": "Anna suojausavaimelle helposti tunnistettava nimi." }, "twoFactorU2fPlugInReadKey": { - "message": "Kytke todennuslaitteesi tietokoneen USB-porttiin ja klikkaa \"Lue todennuslaite\" -painiketta." + "message": "Kytke suojausavaimesi tietokoneen USB-porttiin ja klikkaa \"Lue avain\" -painiketta" }, "twoFactorU2fTouchButton": { - "message": "Jos todennuslaitteessa on painike, paina sitä." + "message": "Jos suojausavaimessa on painike, paina sitä." }, "twoFactorU2fSaveForm": { "message": "Tallenna lomake." @@ -1959,13 +1962,13 @@ "message": "Verkkoholvi ja selainlaajennukset pöytäkoneissa/kannettavissa, joissa on U2F-tekniikkaa tukeva selain (Chrome, Opera, Vivaldi tai Firefox FIDO U2F käyttöön otettuna)." }, "twoFactorU2fWaiting": { - "message": "Odotetaan, että painat todennuslaitteesi painiketta" + "message": "Odotetaan, että painat suojausavaimesi painiketta" }, "twoFactorU2fClickSave": { - "message": "Paina alta \"Tallenna\" käyttääksesi tätä todennuslaitetta kaksivaiheiseen kirjautumiseen." + "message": "Paina alta \"Tallenna\" käyttääksesi tätä suojausavainta kaksivaiheiseen kirjautumiseen." }, "twoFactorU2fProblemReadingTryAgain": { - "message": "Todennuslaittetta luettaessa havaittiin ongelma. Yritä uudelleen." + "message": "Suojausavainta luettaessa havaittiin ongelma. Yritä uudelleen." }, "twoFactorWebAuthnWarning": { "message": "Alustakohtaisten rajoitusten vuoksi WebAuthn-todennuslaiteet eivät ole käytettävissä kaikissa Bitwarden-sovelluksissa. Sinun tulisi määrittää eri kaksivaiheisen kirjautumisen todentaja, jotta pääset tilillesi myös silloin kun WebAuthn-laitteen käyttö ei ole mahdollista. Tuetut alustat:" @@ -4938,7 +4941,7 @@ "message": "Pääsypyyntö Salaisuushallintaan lähetettiin sähköpostitse ylläpitäjille." }, "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": "Hei,\n\nPyydän tiimillemme Bitwarden Salaisuushallinnan tilausta ja arvostaisin tukeasi merkittävästi!\n\nBitwarden Salaisuushallinta on päästä päähän salattu sailaisuuksien hallintaratkaisu niiden turvalliseen säilytykseen ja jakamiseen sekä API-avainten, tietokantojen salasanojen ja todennusvarmenteiden kaltaisten laitetunnisteiden jakeluun.\n\nSalaisuushallinnan avulla:\n- parannamme tietoturvaa\n- suoraviivastamme toimintoja\n- estämme kalliita salaisuusvuotoja\n\nOle ilmaisesta kokeilusta yhteydessä Bitwardeniin.\n\nKiitos avustasi!" }, "giveMembersAccess": { "message": "Anna jäsenille pääsy:" @@ -5362,13 +5365,13 @@ "message": "Kirjaa käyttäjät automaattisesti sisään sallittuihin sovelluksiin" }, "automaticAppLoginDesc": { - "message": "Login forms will automatically be filled and submitted for apps launched from your configured identity provider." + "message": "Kirjautumislomakkeet täytetään ja lähetetään automaattisesti määritetystä identiteettitarjoastasi käynnistetyissä sovelluksissa." }, "automaticAppLoginIdpHostLabel": { - "message": "Identity provider host" + "message": "Identiteettitarjoajan osoite" }, "automaticAppLoginIdpHostDesc": { - "message": "Enter your identity provider host URL. Enter multiple URLs by separating with a comma." + "message": "Syötä identiteettitarjoajasi URL-osoite. Syötä useat URL-osoitteet pilkuin erotetuina." }, "tdeDisabledMasterPasswordRequired": { "message": "Organisaatiosi on päivittänyt salauksen purkuasetukset. Käytä holviasi asettamalla pääsalasana." @@ -7955,13 +7958,13 @@ "message": "Ainakin yhdellä jäsenellä tai ryhmällä on oltava hallintaoikeus." }, "typePasskey": { - "message": "Suojausavain" + "message": "Pääsyavain" }, "passkeyNotCopied": { - "message": "Suojausavainta ei kopioida" + "message": "Pääsyavainta ei kopioida" }, "passkeyNotCopiedAlert": { - "message": "Suojausavain ei kopioidu kloonattuun kohteeseen. Haluatko jatkaa kloonausta?" + "message": "Pääsyavain ei kopioidu kloonattuun kohteeseen. Haluatko jatkaa kloonausta?" }, "modifiedCollectionManagement": { "message": "Muokkasi kokoelman hallinta-asetusta \"$ID$\".", @@ -8541,46 +8544,46 @@ "message": "Aloita seitsemän päivän ilmainen Bitwarden-kokeilu" }, "startYour7DayFreeTrialOfBitwardenForTeams": { - "message": "Start your 7-Day free trial of Bitwarden for Teams" + "message": "Aloita seitsemän päivän ilmainen Bitwarden Teams -kokeilusi" }, "startYour7DayFreeTrialOfBitwardenForFamilies": { - "message": "Start your 7-Day free trial of Bitwarden for Families" + "message": "Aloita seitsemän päivän ilmainen Bitwarden Families -kokeilusi" }, "startYour7DayFreeTrialOfBitwardenForEnterprise": { - "message": "Start your 7-Day free trial of Bitwarden for Enterprise" + "message": "Aloita seitsemän päivän ilmainen Bitwarden Enterprise -kokeilusi" }, "startYour7DayFreeTrialOfBitwardenSecretsManager": { "message": "Aloita seitsemän päivän ilmainen Bitwarden Salaisuushallinnan kokeilu" }, "startYour7DayFreeTrialOfBitwardenSecretsManagerForTeams": { - "message": "Start your 7-Day free trial of Bitwarden Secrets Manager for Teams" + "message": "Aloita seitsemän päivän ilmainen Bitwarden Salaisuushallinta Teams -kokeilusi" }, "startYour7DayFreeTrialOfBitwardenSecretsManagerForFamilies": { - "message": "Start your 7-Day free trial of Bitwarden Secrets Manager for Families" + "message": "Aloita seitsemän päivän ilmainen Bitwarden Salaisuushallinta Families -kokeilusi" }, "startYour7DayFreeTrialOfBitwardenSecretsManagerForEnterprise": { - "message": "Start your 7-Day free trial of Bitwarden Secrets Manager for Enterprise" + "message": "Aloita seitsemän päivän ilmainen Bitwarden Salaisuushallinta Enterprise -kokeilusi" }, "startYour7DayFreeTrialOfBitwardenPasswordManager": { "message": "Aloita seitsemän päivän ilmainen Bitwarden Salasananhallinan kokeilu" }, "startYour7DayFreeTrialOfBitwardenPasswordManagerForTeams": { - "message": "Start your 7-Day free trial of Bitwarden Password Manager for Teams" + "message": "Aloita seitsemän päivän ilmainen Bitwarden Salasanahallinta Teams -kokeilusi" }, "startYour7DayFreeTrialOfBitwardenPasswordManagerForFamilies": { - "message": "Start your 7-Day free trial of Bitwarden Password Manager for Families" + "message": "Aloita seitsemän päivän ilmainen Bitwarden Salasanahallinta Families -kokeilusi" }, "startYour7DayFreeTrialOfBitwardenPasswordManagerForEnterprise": { - "message": "Start your 7-Day free trial of Bitwarden Password Manager for Enterprise" + "message": "Aloita seitsemän päivän ilmainen Bitwarden Salasanahallinta Enterprise -kokeilusi" }, "enterTeamsOrgInfo": { - "message": "Enter your Teams organization information" + "message": "Syötä Teams-organisaatiosi tiedot" }, "enterFamiliesOrgInfo": { - "message": "Enter your Families organization information" + "message": "Syötä Families-organisaatiosi tiedot" }, "enterEnterpriseOrgInfo": { - "message": "Enter your Enterprise organization information" + "message": "Syötä Enterprise-organisaatiosi tiedot" }, "viewItemsIn": { "message": "Näytä kohteen $NAME$ kohteet", @@ -8887,7 +8890,7 @@ } }, "optionalOnPremHosting": { - "message": "Optional on-premises hosting" + "message": "Valinnainen oman palvelinympäristön käyttö" }, "upgradeFreeOrganization": { "message": "Päivitä organisaatiosi $NAME$ ", @@ -8902,7 +8905,7 @@ "message": "SSO-todennus" }, "familiesPlanInvLimitReachedManageBilling": { - "message": "Families organizations may have up to $SEATCOUNT$ members. Upgrade to a paid plan to invite more members.", + "message": "Families-organisaatioissa voi olla enintään $SEATCOUNT$ jäsentä. Kutsu lisää jäseniä päivittämällä maksulliseen tilaukseen.", "placeholders": { "seatcount": { "content": "$1", @@ -8911,7 +8914,7 @@ } }, "familiesPlanInvLimitReachedNoManageBilling": { - "message": "Families organizations may have up to $SEATCOUNT$ members. Contact your organization owner to upgrade.", + "message": "Families-organisaatioissa voi olla enintään $SEATCOUNT$ jäsentä. Ole päivityksestä yhteydessä organisaatiosi omistajaan.", "placeholders": { "seatcount": { "content": "$1", @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "Gt ylimääräistä tallennustilaa" + }, + "premiumAccounts": { + "message": "Kuusi premium-tiliä" + }, + "unlimitedSharing": { + "message": "Rajatonta jakamista" + }, + "unlimitedCollections": { + "message": "Rajattomasti kokoelmia" + }, + "secureDataSharing": { + "message": "Turvallista tietojen jakoa" + }, + "eventLogMonitoring": { + "message": "Tapahtumalokien valvonta" + }, + "directoryIntegration": { + "message": "Hakemistointegrointi" + }, + "passwordLessSso": { + "message": "Salasanaton kertakirjautuminen" + }, + "accountRecovery": { + "message": "Tilien palautus" + }, + "customRoles": { + "message": "Mukautetut roolit" + }, + "unlimitedSecretsStorage": { + "message": "Rajaton salaisuustila" + }, + "unlimitedUsers": { + "message": "Rajattomasti käyttäjiä" + }, + "UpTo50MachineAccounts": { + "message": "Enintään 50 konetiliä" + }, + "UpTo20MachineAccounts": { + "message": "Enintään 20 konetiliä" + }, + "current": { + "message": "Nykyinen" + }, + "secretsManagerSubInfo": { + "message": "Salaisuushallinta-tilauksesi päivittyy valittua tilausta vastaavaksi" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Salasanahallinta" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Ilmainen yhden vuoden Salasanahallinta-tilauksesi päivittyy valittuun tilaukseen. Sinua ei veloiteta ennen ilmaisajan päättymistä." } } diff --git a/apps/web/src/locales/fil/messages.json b/apps/web/src/locales/fil/messages.json index 64fe74b527..f930c132f6 100644 --- a/apps/web/src/locales/fil/messages.json +++ b/apps/web/src/locales/fil/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Palatandaan ng master password (opsyonal)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Palatandaan ng master password" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/fr/messages.json b/apps/web/src/locales/fr/messages.json index 5b41ebbe84..ee0bb5548b 100644 --- a/apps/web/src/locales/fr/messages.json +++ b/apps/web/src/locales/fr/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Indice du mot de passe principal (facultatif)" }, + "newMasterPassHint": { + "message": "Indice du nouveau mot de passe principal (facultatif)" + }, "masterPassHintLabel": { "message": "Indice du mot de passe principal" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB de stockage additionnel" + }, + "premiumAccounts": { + "message": "6 comptes premium" + }, + "unlimitedSharing": { + "message": "Partage illimité" + }, + "unlimitedCollections": { + "message": "Collections illimitées" + }, + "secureDataSharing": { + "message": "Partage sécurisé de données" + }, + "eventLogMonitoring": { + "message": "Surveillance du journal des événements" + }, + "directoryIntegration": { + "message": "Intégration des répertoires" + }, + "passwordLessSso": { + "message": "SSO sans mot de passe" + }, + "accountRecovery": { + "message": "Récupération de compte" + }, + "customRoles": { + "message": "Rôles personnalisés" + }, + "unlimitedSecretsStorage": { + "message": "Stockage illimité des secrets" + }, + "unlimitedUsers": { + "message": "Utillisateurs illimités" + }, + "UpTo50MachineAccounts": { + "message": "Jusqu'à 50 comptes machines" + }, + "UpTo20MachineAccounts": { + "message": "Jusqu'à 20 comptes de machine" + }, + "current": { + "message": "Actuel" + }, + "secretsManagerSubInfo": { + "message": "Votre abonnement au Secrets Manager sera mis à niveau selon le plan sélectionné" + }, + "bitwardenPasswordManager": { + "message": "Gestionnaire de Mots de Passe Bitwarden" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Votre abonnement complémentaire d'un an au Gestionnaire de Mots de Passe sera mis à niveau au plan sélectionné. Vous ne serez pas chargé avant la fin de votre période gratuite." } } diff --git a/apps/web/src/locales/gl/messages.json b/apps/web/src/locales/gl/messages.json index daceeeca49..d5bbba4a1c 100644 --- a/apps/web/src/locales/gl/messages.json +++ b/apps/web/src/locales/gl/messages.json @@ -58,7 +58,7 @@ "message": "Sitio web (URI)" }, "websiteUriCount": { - "message": "Website (URI) $COUNT$", + "message": "Sitio web (URI) $COUNT$", "description": "Label for an input field that contains a website URI. The input field is part of a list of fields, and the count indicates the position of the field in the list.", "placeholders": { "count": { @@ -186,7 +186,7 @@ "message": "Dona" }, "ms": { - "message": "Ms" + "message": "Sra." }, "mx": { "message": "Mx" @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/he/messages.json b/apps/web/src/locales/he/messages.json index a706124d4e..7118b8d326 100644 --- a/apps/web/src/locales/he/messages.json +++ b/apps/web/src/locales/he/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "רמז לסיסמה ראשית (אופציונאלי)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "רמז לסיסמה ראשית" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/hi/messages.json b/apps/web/src/locales/hi/messages.json index debe7d9c16..0aec690328 100644 --- a/apps/web/src/locales/hi/messages.json +++ b/apps/web/src/locales/hi/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/hr/messages.json b/apps/web/src/locales/hr/messages.json index f7aa923fb9..9dae62cf08 100644 --- a/apps/web/src/locales/hr/messages.json +++ b/apps/web/src/locales/hr/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Podsjetnik glavne lozinke (neobavezno)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Podsjetnik glavne lozinke" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB dodatnog prostora" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/hu/messages.json b/apps/web/src/locales/hu/messages.json index 970c1f43e8..fb2304ce11 100644 --- a/apps/web/src/locales/hu/messages.json +++ b/apps/web/src/locales/hu/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Mesterjelszó emlékeztető (nem kötelező)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Mesterjelszó emlékeztető" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB kiegészítő tároló" + }, + "premiumAccounts": { + "message": "6 prémium fiók" + }, + "unlimitedSharing": { + "message": "Korlátlan megosztás" + }, + "unlimitedCollections": { + "message": "Korlátlan gyűjtemény" + }, + "secureDataSharing": { + "message": "Biztonságos adatmegosztás" + }, + "eventLogMonitoring": { + "message": "Eseménynapló monitorozás" + }, + "directoryIntegration": { + "message": "Könyvtár integráció" + }, + "passwordLessSso": { + "message": "Jelszómentes SSO" + }, + "accountRecovery": { + "message": "Fiók helyreállítás" + }, + "customRoles": { + "message": "Egyéni szerepek" + }, + "unlimitedSecretsStorage": { + "message": "Korlátlan titkos tároló" + }, + "unlimitedUsers": { + "message": "Korlátlan felhasználó" + }, + "UpTo50MachineAccounts": { + "message": "Legfeljebb 50 gépi fiók" + }, + "UpTo20MachineAccounts": { + "message": "Legfeljebb 20 gépi fiók" + }, + "current": { + "message": "Jelenlegi" + }, + "secretsManagerSubInfo": { + "message": "A Titkos kód kezelő előfizetés a kiválasztott csomag alapján frissül." + }, + "bitwardenPasswordManager": { + "message": "Bitwarden jelszókezelő" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "A kiegészítő egyéves Jelszókezelő előfizetés a kiválasztott csomagra frissül. A díjmentes időszak lejártáig nem számítunk fel díjat." } } diff --git a/apps/web/src/locales/id/messages.json b/apps/web/src/locales/id/messages.json index 0aefb63b36..52d41caa78 100644 --- a/apps/web/src/locales/id/messages.json +++ b/apps/web/src/locales/id/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Petunjuk Kata Sandi Utama (pilihan)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Petunjuk Kata Sandi Utama" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/it/messages.json b/apps/web/src/locales/it/messages.json index ab7a078f45..c085d9e6fd 100644 --- a/apps/web/src/locales/it/messages.json +++ b/apps/web/src/locales/it/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Suggerimento per la password principale (facoltativo)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Suggerimento per la password principale" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/ja/messages.json b/apps/web/src/locales/ja/messages.json index 9204fe2983..9a0e54796b 100644 --- a/apps/web/src/locales/ja/messages.json +++ b/apps/web/src/locales/ja/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "マスターパスワードのヒント (省略可能)" }, + "newMasterPassHint": { + "message": "新しいマスターパスワードのヒント (オプション)" + }, "masterPassHintLabel": { "message": "マスターパスワードのヒント" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB の追加ストレージ" + }, + "premiumAccounts": { + "message": "6個のプレミアムアカウント" + }, + "unlimitedSharing": { + "message": "無制限の共有" + }, + "unlimitedCollections": { + "message": "無制限のコレクション" + }, + "secureDataSharing": { + "message": "セキュアなデータ共有" + }, + "eventLogMonitoring": { + "message": "イベントログの監視" + }, + "directoryIntegration": { + "message": "ディレクトリの統合" + }, + "passwordLessSso": { + "message": "パスワードレス SSO" + }, + "accountRecovery": { + "message": "アカウントの復元" + }, + "customRoles": { + "message": "カスタムロール" + }, + "unlimitedSecretsStorage": { + "message": "無制限のシークレットストレージ" + }, + "unlimitedUsers": { + "message": "無制限のユーザー数" + }, + "UpTo50MachineAccounts": { + "message": "最大50個のマシンアカウント" + }, + "UpTo20MachineAccounts": { + "message": "最大20個のマシンアカウント" + }, + "current": { + "message": "現在" + }, + "secretsManagerSubInfo": { + "message": "シークレットマネージャーのサブスクリプションは、選択されたプランを基準にアップグレードされます" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden パスワードマネージャー" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "1年間のパスワードマネージャーサブスクリプションは、選択したプランにアップグレードされます。無料期間が終了するまで課金されることはありません。" } } diff --git a/apps/web/src/locales/ka/messages.json b/apps/web/src/locales/ka/messages.json index d4dc0fea15..0dc64b8182 100644 --- a/apps/web/src/locales/ka/messages.json +++ b/apps/web/src/locales/ka/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "მთავარი პაროლის მინიშნება (არჩევითი)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "მთავარი პაროლის მინიშნება" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/km/messages.json b/apps/web/src/locales/km/messages.json index b0f74968ef..b9b404bc73 100644 --- a/apps/web/src/locales/km/messages.json +++ b/apps/web/src/locales/km/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/kn/messages.json b/apps/web/src/locales/kn/messages.json index f7fb605afa..534a3f0e6a 100644 --- a/apps/web/src/locales/kn/messages.json +++ b/apps/web/src/locales/kn/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಸುಳಿವು (ಐಚ್ಛಿಕ)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಸುಳಿವು" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/ko/messages.json b/apps/web/src/locales/ko/messages.json index 8137fa3904..fb48d7b8c0 100644 --- a/apps/web/src/locales/ko/messages.json +++ b/apps/web/src/locales/ko/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "마스터 비밀번호 힌트 (선택)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "마스터 비밀번호 힌트" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/lv/messages.json b/apps/web/src/locales/lv/messages.json index ef6af19465..392483e76d 100644 --- a/apps/web/src/locales/lv/messages.json +++ b/apps/web/src/locales/lv/messages.json @@ -52,10 +52,10 @@ "message": "Authenticator key" }, "autofillOptions": { - "message": "Autofill options" + "message": "Automātiskās aizpildes iespējas" }, "websiteUri": { - "message": "Website (URI)" + "message": "Tīmekļvietne (URI)" }, "websiteUriCount": { "message": "Tīmekļvietne (URI) $COUNT$", @@ -68,16 +68,16 @@ } }, "websiteAdded": { - "message": "Website added" + "message": "Tīmekļvietne pievienota" }, "addWebsite": { - "message": "Add website" + "message": "Pievient tīmekļvietni" }, "deleteWebsite": { - "message": "Delete website" + "message": "Izdzēst tīmekļvietni" }, "defaultLabel": { - "message": "Default ($VALUE$)", + "message": "Noklusējums ($VALUE$)", "description": "A label that indicates the default value for a field with the current default value in parentheses.", "placeholders": { "value": { @@ -87,7 +87,7 @@ } }, "showMatchDetection": { - "message": "Show match detection $WEBSITE$", + "message": "Rādīt atbilstības noteikšanu $WEBSITE$", "placeholders": { "website": { "content": "$1", @@ -96,7 +96,7 @@ } }, "hideMatchDetection": { - "message": "Hide match detection $WEBSITE$", + "message": "Paslēpt atbilstības noteikšanu $WEBSITE$", "placeholders": { "website": { "content": "$1", @@ -105,7 +105,7 @@ } }, "autoFillOnPageLoad": { - "message": "Autofill on page load?" + "message": "Automātiski aizpildīt lapas ielādes brīdī?" }, "number": { "message": "Numurs" @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Galvenās paroles norāde (nav nepieciešama)" }, + "newMasterPassHint": { + "message": "Jauna galvenās paroles norāde (pēc izvēles)" + }, "masterPassHintLabel": { "message": "Galvenās paroles norāde" }, @@ -8145,7 +8148,7 @@ } }, "addField": { - "message": "Add field" + "message": "Pievienot lauku" }, "items": { "message": "Vienumi" @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB papildu krātuves" + }, + "premiumAccounts": { + "message": "6 \"Premium\" konti" + }, + "unlimitedSharing": { + "message": "Neierobežota kopīgošana" + }, + "unlimitedCollections": { + "message": "Neierobežoti krājumu skaits" + }, + "secureDataSharing": { + "message": "Droša datu kopīgošana" + }, + "eventLogMonitoring": { + "message": "Notikumu žurnāla pārraudzīšana" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "Bezparoles vienotā pieteikšanās (SSO)" + }, + "accountRecovery": { + "message": "Konta atkopšana" + }, + "customRoles": { + "message": "Pielāgotas lomas" + }, + "unlimitedSecretsStorage": { + "message": "Neierobežota noslēpumu krātuve" + }, + "unlimitedUsers": { + "message": "Neierobežots lietotāju skaits" + }, + "UpTo50MachineAccounts": { + "message": "Līdz 50 mašīnu kontu" + }, + "UpTo20MachineAccounts": { + "message": "Līdz 20 mašīnu kontu" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Noslēpumu pārvaldnieka abonements tiks uzlabots atbilstoši izvēlētajam plānam" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden paroļu pārvaldnieks" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Bezmaksas viena gada Paroļu pārvaldnieka abonements tiks uzlabots uz izvēlēto plānu. Maksa netiks ieturēta līdz bezmaksas izmantošanas laika beigām." } } diff --git a/apps/web/src/locales/ml/messages.json b/apps/web/src/locales/ml/messages.json index b37a4797aa..569d6e3cd9 100644 --- a/apps/web/src/locales/ml/messages.json +++ b/apps/web/src/locales/ml/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "പ്രാഥമിക പാസ്‌വേഡ് സൂചന (ഇഷ്ടാനുസൃതമായ)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "പ്രാഥമിക പാസ്‌വേഡ് സൂചന" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/mr/messages.json b/apps/web/src/locales/mr/messages.json index b0f74968ef..b9b404bc73 100644 --- a/apps/web/src/locales/mr/messages.json +++ b/apps/web/src/locales/mr/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/my/messages.json b/apps/web/src/locales/my/messages.json index b0f74968ef..b9b404bc73 100644 --- a/apps/web/src/locales/my/messages.json +++ b/apps/web/src/locales/my/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/nb/messages.json b/apps/web/src/locales/nb/messages.json index 8e6fc2c550..f19c15d30e 100644 --- a/apps/web/src/locales/nb/messages.json +++ b/apps/web/src/locales/nb/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Et hint for hovedpassordet (valgfritt)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Hint til hovedpassordet" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/ne/messages.json b/apps/web/src/locales/ne/messages.json index bb7ebcd4d3..532dbeb514 100644 --- a/apps/web/src/locales/ne/messages.json +++ b/apps/web/src/locales/ne/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/nl/messages.json b/apps/web/src/locales/nl/messages.json index 6e96fdd1b2..bd9b48698e 100644 --- a/apps/web/src/locales/nl/messages.json +++ b/apps/web/src/locales/nl/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Hoofdwachtwoordhint (optioneel)" }, + "newMasterPassHint": { + "message": "Nieuwe hoofdwachtwoordhint (optioneel)" + }, "masterPassHintLabel": { "message": "Hoofdwachtwoordhint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB extra opslagruimte" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Onbeperkt delen" + }, + "unlimitedCollections": { + "message": "Onbeperkte collecties" + }, + "secureDataSharing": { + "message": "Beveiligd gegevens delen" + }, + "eventLogMonitoring": { + "message": "Eventlog monitoring" + }, + "directoryIntegration": { + "message": "Directory-integratie" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Accountherstel" + }, + "customRoles": { + "message": "Aangepaste rollen" + }, + "unlimitedSecretsStorage": { + "message": "Onbeperkte opslag geheimen" + }, + "unlimitedUsers": { + "message": "Onbeperkte gebruikers" + }, + "UpTo50MachineAccounts": { + "message": "Tot 50 machine-accounts" + }, + "UpTo20MachineAccounts": { + "message": "Tot 20 machine-accounts" + }, + "current": { + "message": "Huidig" + }, + "secretsManagerSubInfo": { + "message": "Je Secrets Manager-abonnement zal upgraden naar het geselecteerde abonnement" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/nn/messages.json b/apps/web/src/locales/nn/messages.json index 12200412ac..27dca67c46 100644 --- a/apps/web/src/locales/nn/messages.json +++ b/apps/web/src/locales/nn/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Vink til hovudpassord (valfritt)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Vink til hovudpassord" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/or/messages.json b/apps/web/src/locales/or/messages.json index b0f74968ef..b9b404bc73 100644 --- a/apps/web/src/locales/or/messages.json +++ b/apps/web/src/locales/or/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/pl/messages.json b/apps/web/src/locales/pl/messages.json index c460ed3f6d..bafd1f62f5 100644 --- a/apps/web/src/locales/pl/messages.json +++ b/apps/web/src/locales/pl/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Podpowiedź do hasła głównego (opcjonalnie)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Podpowiedź do hasła głównego" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB dodatkowej przestrzeni" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/pt_BR/messages.json b/apps/web/src/locales/pt_BR/messages.json index 077e6f0f6b..65d76ca232 100644 --- a/apps/web/src/locales/pt_BR/messages.json +++ b/apps/web/src/locales/pt_BR/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Dica da senha mestra (opcional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Dica da senha mestra" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB de armazenamento adicional" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/pt_PT/messages.json b/apps/web/src/locales/pt_PT/messages.json index cde9fa3aa3..e211046bd4 100644 --- a/apps/web/src/locales/pt_PT/messages.json +++ b/apps/web/src/locales/pt_PT/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Dica da palavra-passe mestra (opcional)" }, + "newMasterPassHint": { + "message": "Nova dica da palavra-passe mestra (opcional)" + }, "masterPassHintLabel": { "message": "Dica da palavra-passe mestra" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB de armazenamento adicional" + }, + "premiumAccounts": { + "message": "6 contas Premium" + }, + "unlimitedSharing": { + "message": "Partilha ilimitada" + }, + "unlimitedCollections": { + "message": "Coleções ilimitadas" + }, + "secureDataSharing": { + "message": "Partilha segura de dados" + }, + "eventLogMonitoring": { + "message": "Monitorização do registo de eventos" + }, + "directoryIntegration": { + "message": "Integração de diretórios" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Recuperação de contas" + }, + "customRoles": { + "message": "Papéis personalizados" + }, + "unlimitedSecretsStorage": { + "message": "Armazenamento ilimitado de segredos" + }, + "unlimitedUsers": { + "message": "Utilizadores ilimitados" + }, + "UpTo50MachineAccounts": { + "message": "Até 50 contas automáticas" + }, + "UpTo20MachineAccounts": { + "message": "Até 20 contas automáticas" + }, + "current": { + "message": "Atual" + }, + "secretsManagerSubInfo": { + "message": "A sua subscrição do Gestor de Segredos será atualizada com base no plano selecionado" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden - Gestor de Palavras-passe" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "A sua subscrição complementar de um ano do Gestor de Palavras-passe será atualizada para o plano selecionado. Não será cobrado até que o período de cortesia termine." } } diff --git a/apps/web/src/locales/ro/messages.json b/apps/web/src/locales/ro/messages.json index 81a09d0325..da1fe000f2 100644 --- a/apps/web/src/locales/ro/messages.json +++ b/apps/web/src/locales/ro/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Indiciu pentru parola principală (opțional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Indiciu pentru parola principală" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/ru/messages.json b/apps/web/src/locales/ru/messages.json index 6594fab88f..4781b61037 100644 --- a/apps/web/src/locales/ru/messages.json +++ b/apps/web/src/locales/ru/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Подсказка к мастер-паролю (необяз.)" }, + "newMasterPassHint": { + "message": "Новая подсказка для мастер-пароля (необязательно)" + }, "masterPassHintLabel": { "message": "Подсказка к мастер-паролю" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "Дополнительное место в хранилище" + }, + "premiumAccounts": { + "message": "6 Премиум-аккаунтов" + }, + "unlimitedSharing": { + "message": "Делитесь без ограничений" + }, + "unlimitedCollections": { + "message": "Неограниченное количество коллекций" + }, + "secureDataSharing": { + "message": "Защищенный обмен данными" + }, + "eventLogMonitoring": { + "message": "Мониторинг журнала событий" + }, + "directoryIntegration": { + "message": "Интеграция с доменами" + }, + "passwordLessSso": { + "message": "SSO без пароля" + }, + "accountRecovery": { + "message": "Восстановление аккаунта" + }, + "customRoles": { + "message": "Пользовательские роли" + }, + "unlimitedSecretsStorage": { + "message": "Неограниченное хранилище секретов" + }, + "unlimitedUsers": { + "message": "Неограниченное количество пользователей" + }, + "UpTo50MachineAccounts": { + "message": "До 50 машинных аккаунтов" + }, + "UpTo20MachineAccounts": { + "message": "До 20 машинных аккаунтов" + }, + "current": { + "message": "Текущий" + }, + "secretsManagerSubInfo": { + "message": "Ваша подписка на Менеджер секретов будет обновляться в зависимости от выбранного тарифа" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden - Менеджер паролей" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Ваш дополнительный год подписки на Менеджер паролей обновится до выбранный тарифа. Плата не будет взиматься до окончания бесплатного периода." } } diff --git a/apps/web/src/locales/si/messages.json b/apps/web/src/locales/si/messages.json index ba50b1d297..47a001ef59 100644 --- a/apps/web/src/locales/si/messages.json +++ b/apps/web/src/locales/si/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/sk/messages.json b/apps/web/src/locales/sk/messages.json index dc547dc829..b784040313 100644 --- a/apps/web/src/locales/sk/messages.json +++ b/apps/web/src/locales/sk/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Nápoveď k hlavnému heslo (voliteľné)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Nápoveď pre hlavné heslo" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/sl/messages.json b/apps/web/src/locales/sl/messages.json index e82043705e..c9f6164601 100644 --- a/apps/web/src/locales/sl/messages.json +++ b/apps/web/src/locales/sl/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Namig za glavno geslo (neobvezno)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Namig za glavno geslo" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/sr/messages.json b/apps/web/src/locales/sr/messages.json index f59b398d76..3979fdf302 100644 --- a/apps/web/src/locales/sr/messages.json +++ b/apps/web/src/locales/sr/messages.json @@ -195,10 +195,10 @@ "message": "Др" }, "cardExpiredTitle": { - "message": "Expired card" + "message": "Картица је истекла" }, "cardExpiredMessage": { - "message": "If you've renewed it, update the card's information" + "message": "Ако сте је обновили, ажурирајте податке о картици" }, "expirationMonth": { "message": "Месец истека" @@ -482,7 +482,7 @@ "message": "Види ставку" }, "viewItemType": { - "message": "View $ITEMTYPE$", + "message": "Видети $ITEMTYPE$", "placeholders": { "itemtype": { "content": "$1", @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Савет Главне Лозинке (опционо)" }, + "newMasterPassHint": { + "message": "Савет за нову главну лозинку (опционо)" + }, "masterPassHintLabel": { "message": "Савет Главне Лозинке" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "ГБ додатног простора за складиштење" + }, + "premiumAccounts": { + "message": "6 премијум налога" + }, + "unlimitedSharing": { + "message": "Неограничено дељење" + }, + "unlimitedCollections": { + "message": "Неограничене колекције" + }, + "secureDataSharing": { + "message": "Сигурносно дељење података" + }, + "eventLogMonitoring": { + "message": "Праћење дневника догађаја" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Опоравка налога" + }, + "customRoles": { + "message": "Прилагођене улоге" + }, + "unlimitedSecretsStorage": { + "message": "Неограничено складиштење тајни" + }, + "unlimitedUsers": { + "message": "Неограничен број корисника" + }, + "UpTo50MachineAccounts": { + "message": "До 50 машинских налога" + }, + "UpTo20MachineAccounts": { + "message": "До 20 машинских налога" + }, + "current": { + "message": "Тренутно" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Менаџер Лозинке" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Ваша комплементарна једногодишња претплата на Менаџер Лозинки ће надоградити на изабрани план. Неће вам бити наплаћено док се бесплатни период не заврши." } } diff --git a/apps/web/src/locales/sr_CS/messages.json b/apps/web/src/locales/sr_CS/messages.json index 31dd8ca74b..77020b1417 100644 --- a/apps/web/src/locales/sr_CS/messages.json +++ b/apps/web/src/locales/sr_CS/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/sv/messages.json b/apps/web/src/locales/sv/messages.json index ec7e3d882c..826bd342c7 100644 --- a/apps/web/src/locales/sv/messages.json +++ b/apps/web/src/locales/sv/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Huvudlösenordsledtråd (valfritt)" }, + "newMasterPassHint": { + "message": "Ny huvudlösenordsledtråd (valfritt)" + }, "masterPassHintLabel": { "message": "Huvudlösenordsledtråd" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Obegränsad delning" + }, + "unlimitedCollections": { + "message": "Obegränsat antal samlingar" + }, + "secureDataSharing": { + "message": "Säker datadelning" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Kontoåterställning" + }, + "customRoles": { + "message": "Anpassade roller" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Obegränsat antal användare" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/te/messages.json b/apps/web/src/locales/te/messages.json index b0f74968ef..b9b404bc73 100644 --- a/apps/web/src/locales/te/messages.json +++ b/apps/web/src/locales/te/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Master password hint (optional)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Master password hint" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/th/messages.json b/apps/web/src/locales/th/messages.json index 08445f7c53..de8a30cbb1 100644 --- a/apps/web/src/locales/th/messages.json +++ b/apps/web/src/locales/th/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "คำใบ้รหัสผ่านหลัก (ไม่จำเป็น)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "รับคำใบ้เกี่ยวกับรหัสผ่านหลักของคุณ" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/tr/messages.json b/apps/web/src/locales/tr/messages.json index 7f0440c471..d50c4285bc 100644 --- a/apps/web/src/locales/tr/messages.json +++ b/apps/web/src/locales/tr/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Ana parola ipucu (isteğe bağlı)" }, + "newMasterPassHint": { + "message": "Yeni ana parola ipucu (isteğe bağlı)" + }, "masterPassHintLabel": { "message": "Ana parola ipucu" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium hesap" + }, + "unlimitedSharing": { + "message": "Sınırsız paylaşım" + }, + "unlimitedCollections": { + "message": "Sınırsız koleksiyon" + }, + "secureDataSharing": { + "message": "Güvenli veri paylaşımı" + }, + "eventLogMonitoring": { + "message": "Olay günlüğü takibi" + }, + "directoryIntegration": { + "message": "Dizin entegrasyonu" + }, + "passwordLessSso": { + "message": "Parolasız SSO" + }, + "accountRecovery": { + "message": "Hesap kurtarma" + }, + "customRoles": { + "message": "Özel roller" + }, + "unlimitedSecretsStorage": { + "message": "Sınırsız sız depolama" + }, + "unlimitedUsers": { + "message": "Sınırsız kullanıcı" + }, + "UpTo50MachineAccounts": { + "message": "50 makine hesabı" + }, + "UpTo20MachineAccounts": { + "message": "20 makine hesabı" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Parola Yöneticisi" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/uk/messages.json b/apps/web/src/locales/uk/messages.json index e3a93a405e..a4ce0ab16d 100644 --- a/apps/web/src/locales/uk/messages.json +++ b/apps/web/src/locales/uk/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Підказка для головного пароля (необов'язково)" }, + "newMasterPassHint": { + "message": "Підказка для нового головного пароля (необов'язково)" + }, "masterPassHintLabel": { "message": "Підказка для головного пароля" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "ГБ додаткового сховища" + }, + "premiumAccounts": { + "message": "6 облікових записів Преміум" + }, + "unlimitedSharing": { + "message": "Необмежений спільний доступ" + }, + "unlimitedCollections": { + "message": "Необмежена кількість збірок" + }, + "secureDataSharing": { + "message": "Безпечний обмін даними" + }, + "eventLogMonitoring": { + "message": "Моніторинг подій" + }, + "directoryIntegration": { + "message": "Інтеграція з каталогом" + }, + "passwordLessSso": { + "message": "Безпарольний вхід за допомогою SSO" + }, + "accountRecovery": { + "message": "Відновлення облікового запису" + }, + "customRoles": { + "message": "Користувацькі ролі" + }, + "unlimitedSecretsStorage": { + "message": "Необмежене сховище для секретів" + }, + "unlimitedUsers": { + "message": "Необмежена кількість користувачів" + }, + "UpTo50MachineAccounts": { + "message": "До 50 машинних облікових записів" + }, + "UpTo20MachineAccounts": { + "message": "До 20 машинних облікових записів" + }, + "current": { + "message": "Поточний" + }, + "secretsManagerSubInfo": { + "message": "Ваша передплата менеджера секретів поновиться на основі вибраного плану" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden – менеджер паролів" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Ваша додаткова річна передплата менеджера паролів поновиться до вибраного плану. З вас не стягуватиметься платіж доки не завершиться додатковий період." } } diff --git a/apps/web/src/locales/vi/messages.json b/apps/web/src/locales/vi/messages.json index bcc21316ac..22db2697a8 100644 --- a/apps/web/src/locales/vi/messages.json +++ b/apps/web/src/locales/vi/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "Gợi ý mật khẩu chính (tùy chọn)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "Gợi ý mật khẩu chính" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } diff --git a/apps/web/src/locales/zh_CN/messages.json b/apps/web/src/locales/zh_CN/messages.json index 2ef18935e6..95d83cf5c1 100644 --- a/apps/web/src/locales/zh_CN/messages.json +++ b/apps/web/src/locales/zh_CN/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "主密码提示(可选)" }, + "newMasterPassHint": { + "message": "新的主密码提示(可选)" + }, "masterPassHintLabel": { "message": "主密码提示" }, @@ -2277,7 +2280,7 @@ } }, "premiumPriceWithFamilyPlan": { - "message": "升级高级会员仅需 $PRICE$/年,或成为高级账户,其具有 $FAMILYPLANUSERCOUNT$ 个用户,以及无限制的家庭共享,家庭共享具有 ", + "message": "升级高级会员仅需 $PRICE$/年,或成为具有 $FAMILYPLANUSERCOUNT$ 位用户以及无限制的家庭共享的高级账户,通过 ", "placeholders": { "price": { "content": "$1", @@ -2701,10 +2704,10 @@ } }, "addShareUnlimitedUsers": { - "message": "添加并与无限的用户共享" + "message": "添加并与不限数量的用户共享" }, "createUnlimitedCollections": { - "message": "创建无限个集合" + "message": "创建不限数量的集合" }, "gbEncryptedFileStorage": { "message": "$SIZE$ 加密文件存储", @@ -2965,7 +2968,7 @@ "message": "添加访问权限" }, "addAccessFilter": { - "message": "Add Access Filter" + "message": "添加访问过滤器" }, "refresh": { "message": "刷新" @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB 附加存储" + }, + "premiumAccounts": { + "message": "6 个高级账户" + }, + "unlimitedSharing": { + "message": "无限制的共享" + }, + "unlimitedCollections": { + "message": "不限数量的集合" + }, + "secureDataSharing": { + "message": "安全数据共享" + }, + "eventLogMonitoring": { + "message": "事件日志监测" + }, + "directoryIntegration": { + "message": "目录集成" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "账户恢复" + }, + "customRoles": { + "message": "自定义角色" + }, + "unlimitedSecretsStorage": { + "message": "无限制的机密存储" + }, + "unlimitedUsers": { + "message": "不限数量的用户" + }, + "UpTo50MachineAccounts": { + "message": "最多 50 个机器账户" + }, + "UpTo20MachineAccounts": { + "message": "最多 20 个机器账户" + }, + "current": { + "message": "当前" + }, + "secretsManagerSubInfo": { + "message": "您的机密管理器订阅将基于所选的计划进行升级" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden 密码管理器" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "您的免费一年密码管理器订阅将升级到所选计划。免费期结束之前不会收费。" } } diff --git a/apps/web/src/locales/zh_TW/messages.json b/apps/web/src/locales/zh_TW/messages.json index 9508a4ddd2..72476a1539 100644 --- a/apps/web/src/locales/zh_TW/messages.json +++ b/apps/web/src/locales/zh_TW/messages.json @@ -905,6 +905,9 @@ "masterPassHint": { "message": "主密碼提示(選用)" }, + "newMasterPassHint": { + "message": "New master password hint (optional)" + }, "masterPassHintLabel": { "message": "主密碼提示" }, @@ -8954,5 +8957,56 @@ }, "additionalStorageGbMessage": { "message": "GB additional storage" + }, + "premiumAccounts": { + "message": "6 premium accounts" + }, + "unlimitedSharing": { + "message": "Unlimited sharing" + }, + "unlimitedCollections": { + "message": "Unlimited collections" + }, + "secureDataSharing": { + "message": "Secure data sharing" + }, + "eventLogMonitoring": { + "message": "Event log monitoring" + }, + "directoryIntegration": { + "message": "Directory integration" + }, + "passwordLessSso": { + "message": "PasswordLess SSO" + }, + "accountRecovery": { + "message": "Account recovery" + }, + "customRoles": { + "message": "Custom roles" + }, + "unlimitedSecretsStorage": { + "message": "Unlimited secrets storage" + }, + "unlimitedUsers": { + "message": "Unlimited users" + }, + "UpTo50MachineAccounts": { + "message": "Up to 50 machine accounts" + }, + "UpTo20MachineAccounts": { + "message": "Up to 20 machine accounts" + }, + "current": { + "message": "Current" + }, + "secretsManagerSubInfo": { + "message": "Your Secrets Manager subscription will upgrade base on the plan selected" + }, + "bitwardenPasswordManager": { + "message": "Bitwarden Password Manager" + }, + "secretsManagerWithFreePasswordManagerInfo": { + "message": "Your complementary one year Password Manager subscription will upgrade to the selected plan. You will not be charged until the complimentary period is over." } } From 24d4a4db193cf2f3f1886ef060a23ee6659fd5b9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:15:42 +0000 Subject: [PATCH 34/40] Autosync the updated translations (#10723) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/browser/src/_locales/ar/messages.json | 3 + apps/browser/src/_locales/az/messages.json | 11 +- apps/browser/src/_locales/be/messages.json | 3 + apps/browser/src/_locales/bg/messages.json | 3 + apps/browser/src/_locales/bn/messages.json | 3 + apps/browser/src/_locales/bs/messages.json | 3 + apps/browser/src/_locales/ca/messages.json | 19 +- apps/browser/src/_locales/cs/messages.json | 3 + apps/browser/src/_locales/cy/messages.json | 3 + apps/browser/src/_locales/da/messages.json | 3 + apps/browser/src/_locales/de/messages.json | 3 + apps/browser/src/_locales/el/messages.json | 3 + apps/browser/src/_locales/en_GB/messages.json | 3 + apps/browser/src/_locales/en_IN/messages.json | 3 + apps/browser/src/_locales/es/messages.json | 3 + apps/browser/src/_locales/et/messages.json | 3 + apps/browser/src/_locales/eu/messages.json | 3 + apps/browser/src/_locales/fa/messages.json | 3 + apps/browser/src/_locales/fi/messages.json | 71 +++-- apps/browser/src/_locales/fil/messages.json | 3 + apps/browser/src/_locales/fr/messages.json | 301 +++++++++--------- apps/browser/src/_locales/gl/messages.json | 3 + apps/browser/src/_locales/he/messages.json | 3 + apps/browser/src/_locales/hi/messages.json | 3 + apps/browser/src/_locales/hr/messages.json | 3 + apps/browser/src/_locales/hu/messages.json | 3 + apps/browser/src/_locales/id/messages.json | 3 + apps/browser/src/_locales/it/messages.json | 3 + apps/browser/src/_locales/ja/messages.json | 3 + apps/browser/src/_locales/ka/messages.json | 3 + apps/browser/src/_locales/km/messages.json | 3 + apps/browser/src/_locales/kn/messages.json | 3 + apps/browser/src/_locales/ko/messages.json | 3 + apps/browser/src/_locales/lt/messages.json | 3 + apps/browser/src/_locales/lv/messages.json | 17 +- apps/browser/src/_locales/ml/messages.json | 3 + apps/browser/src/_locales/mr/messages.json | 3 + apps/browser/src/_locales/my/messages.json | 3 + apps/browser/src/_locales/nb/messages.json | 3 + apps/browser/src/_locales/ne/messages.json | 3 + apps/browser/src/_locales/nl/messages.json | 3 + apps/browser/src/_locales/nn/messages.json | 3 + apps/browser/src/_locales/or/messages.json | 3 + apps/browser/src/_locales/pl/messages.json | 3 + apps/browser/src/_locales/pt_BR/messages.json | 3 + apps/browser/src/_locales/pt_PT/messages.json | 3 + apps/browser/src/_locales/ro/messages.json | 3 + apps/browser/src/_locales/ru/messages.json | 3 + apps/browser/src/_locales/si/messages.json | 3 + apps/browser/src/_locales/sk/messages.json | 3 + apps/browser/src/_locales/sl/messages.json | 3 + apps/browser/src/_locales/sr/messages.json | 19 +- apps/browser/src/_locales/sv/messages.json | 3 + apps/browser/src/_locales/te/messages.json | 3 + apps/browser/src/_locales/th/messages.json | 3 + apps/browser/src/_locales/tr/messages.json | 11 +- apps/browser/src/_locales/uk/messages.json | 3 + apps/browser/src/_locales/vi/messages.json | 33 +- apps/browser/src/_locales/zh_CN/messages.json | 5 +- apps/browser/src/_locales/zh_TW/messages.json | 3 + apps/browser/store/locales/fi/copy.resx | 8 +- 61 files changed, 414 insertions(+), 234 deletions(-) diff --git a/apps/browser/src/_locales/ar/messages.json b/apps/browser/src/_locales/ar/messages.json index 88d53937f3..2b523a788b 100644 --- a/apps/browser/src/_locales/ar/messages.json +++ b/apps/browser/src/_locales/ar/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/az/messages.json b/apps/browser/src/_locales/az/messages.json index 32df9140af..90327c8542 100644 --- a/apps/browser/src/_locales/az/messages.json +++ b/apps/browser/src/_locales/az/messages.json @@ -1113,7 +1113,7 @@ "message": "Bitwarden-i dəstəklədiyiniz üçün təşəkkürlər!" }, "premiumFeatures": { - "message": "Upgrade to premium and receive:" + "message": "Premium-a yüksəlt və bunları əldə et:" }, "premiumPrice": { "message": "Hamısı sadəcə ildə $PRICE$!", @@ -1125,7 +1125,7 @@ } }, "premiumPriceV2": { - "message": "All for just $PRICE$ per year!", + "message": "Hamısı sadəcə ildə $PRICE$!", "placeholders": { "price": { "content": "$1", @@ -3970,10 +3970,10 @@ "message": "Səhifə yüklənəndə avto-doldurulsun?" }, "cardExpiredTitle": { - "message": "Expired card" + "message": "Vaxtı bitmiş kart" }, "cardExpiredMessage": { - "message": "If you've renewed it, update the card's information" + "message": "Yeniləmisinizsə, kart məlumatlarınızı güncəlləyin" }, "cardDetails": { "message": "Kart detalları" @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Animasiyaları fəallaşdır" + }, "addAccount": { "message": "Hesab əlavə et" }, diff --git a/apps/browser/src/_locales/be/messages.json b/apps/browser/src/_locales/be/messages.json index a49add0958..e06960c6b7 100644 --- a/apps/browser/src/_locales/be/messages.json +++ b/apps/browser/src/_locales/be/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/bg/messages.json b/apps/browser/src/_locales/bg/messages.json index 1d6f1cda36..de9686623d 100644 --- a/apps/browser/src/_locales/bg/messages.json +++ b/apps/browser/src/_locales/bg/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Включване на анимациите" + }, "addAccount": { "message": "Добавяне на регистрация" }, diff --git a/apps/browser/src/_locales/bn/messages.json b/apps/browser/src/_locales/bn/messages.json index b570bf14b2..8bb46b60ab 100644 --- a/apps/browser/src/_locales/bn/messages.json +++ b/apps/browser/src/_locales/bn/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/bs/messages.json b/apps/browser/src/_locales/bs/messages.json index 550b49f056..9d53f1e0fd 100644 --- a/apps/browser/src/_locales/bs/messages.json +++ b/apps/browser/src/_locales/bs/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/ca/messages.json b/apps/browser/src/_locales/ca/messages.json index 0374ce8384..88f04d0b51 100644 --- a/apps/browser/src/_locales/ca/messages.json +++ b/apps/browser/src/_locales/ca/messages.json @@ -302,16 +302,16 @@ "message": "Edita la carpeta" }, "newFolder": { - "message": "New folder" + "message": "Carpeta nova" }, "folderName": { - "message": "Folder name" + "message": "Nom de la carpeta" }, "folderHintText": { - "message": "Nest a folder by adding the parent folder's name followed by a “/”. Example: Social/Forums" + "message": "Imbriqueu una carpeta afegint el nom de la carpeta principal seguit d'una \"/\". Exemple: Social/Fòrums" }, "noFoldersAdded": { - "message": "No folders added" + "message": "No s'ha afegit cap carpeta" }, "createFoldersToOrganize": { "message": "Create folders to organize your vault items" @@ -448,7 +448,7 @@ "message": "Preferit" }, "unfavorite": { - "message": "Suprimeix de Preferits" + "message": "Trau dels preferits" }, "itemAddedToFavorites": { "message": "Element afegit als preferits" @@ -847,7 +847,7 @@ "message": "Mostra les identitats a la pàgina de pestanya" }, "showIdentitiesCurrentTabDesc": { - "message": "Llista els elements d'identitat de la pàgina de pestanya per facilitar l'autoemplenat." + "message": "Llista els elements d'identitat de la pestanya de la pàgina per facilitar l'autoemplenat." }, "clearClipboard": { "message": "Buida el porta-retalls", @@ -3141,11 +3141,11 @@ "message": "Alies de domini" }, "passwordRepromptDisabledAutofillOnPageLoad": { - "message": "Els elements amb una nova sol·licitud de contrasenya mestra no es poden omplir automàticament en carregar la pàgina. L'emplenament automàtic en carregar de la pàgina està desactivat.", + "message": "Els elements amb una nova sol·licitud de contrasenya mestra no es poden omplir automàticament en carregar la pàgina. L'emplenament automàtic en carregar la pàgina està desactivat.", "description": "Toast message for describing that master password re-prompt cannot be autofilled on page load." }, "autofillOnPageLoadSetToDefault": { - "message": "S'ha configurat l'emplenament automàtic en carregar la pàgina per que utilitze la configuració predeterminada.", + "message": "S'ha configurat l'emplenament automàtic en carregar la pàgina perquè utilitze la configuració predeterminada.", "description": "Toast message for informing the user that autofill on page load has been set to the default setting." }, "turnOffMasterPasswordPromptToEditField": { @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Afig compte" }, diff --git a/apps/browser/src/_locales/cs/messages.json b/apps/browser/src/_locales/cs/messages.json index aff80372c6..b16040f327 100644 --- a/apps/browser/src/_locales/cs/messages.json +++ b/apps/browser/src/_locales/cs/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Povolit animace" + }, "addAccount": { "message": "Přidat účet" }, diff --git a/apps/browser/src/_locales/cy/messages.json b/apps/browser/src/_locales/cy/messages.json index 43eb9c4172..295f970b18 100644 --- a/apps/browser/src/_locales/cy/messages.json +++ b/apps/browser/src/_locales/cy/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Ychwanegu cyfrif" }, diff --git a/apps/browser/src/_locales/da/messages.json b/apps/browser/src/_locales/da/messages.json index 52f463a3a4..ea5d1eae3c 100644 --- a/apps/browser/src/_locales/da/messages.json +++ b/apps/browser/src/_locales/da/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Aktivér animationer" + }, "addAccount": { "message": "Tilføj konto" }, diff --git a/apps/browser/src/_locales/de/messages.json b/apps/browser/src/_locales/de/messages.json index c5905ed913..658b95e5e0 100644 --- a/apps/browser/src/_locales/de/messages.json +++ b/apps/browser/src/_locales/de/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Konto hinzufügen" }, diff --git a/apps/browser/src/_locales/el/messages.json b/apps/browser/src/_locales/el/messages.json index a29eaab755..83a77c6b38 100644 --- a/apps/browser/src/_locales/el/messages.json +++ b/apps/browser/src/_locales/el/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Προσθήκη λογαριασμού" }, diff --git a/apps/browser/src/_locales/en_GB/messages.json b/apps/browser/src/_locales/en_GB/messages.json index 533e271e6d..49a2f0d3f3 100644 --- a/apps/browser/src/_locales/en_GB/messages.json +++ b/apps/browser/src/_locales/en_GB/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/en_IN/messages.json b/apps/browser/src/_locales/en_IN/messages.json index feefa391c1..97288cb696 100644 --- a/apps/browser/src/_locales/en_IN/messages.json +++ b/apps/browser/src/_locales/en_IN/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/es/messages.json b/apps/browser/src/_locales/es/messages.json index a9a8e11595..a3eb6c468c 100644 --- a/apps/browser/src/_locales/es/messages.json +++ b/apps/browser/src/_locales/es/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Añadir cuenta" }, diff --git a/apps/browser/src/_locales/et/messages.json b/apps/browser/src/_locales/et/messages.json index c8bc75fa43..ee717416ac 100644 --- a/apps/browser/src/_locales/et/messages.json +++ b/apps/browser/src/_locales/et/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/eu/messages.json b/apps/browser/src/_locales/eu/messages.json index f102af8442..e04be28270 100644 --- a/apps/browser/src/_locales/eu/messages.json +++ b/apps/browser/src/_locales/eu/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/fa/messages.json b/apps/browser/src/_locales/fa/messages.json index 109a5228a9..159a7f49e9 100644 --- a/apps/browser/src/_locales/fa/messages.json +++ b/apps/browser/src/_locales/fa/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/fi/messages.json b/apps/browser/src/_locales/fi/messages.json index 1ca7d1ce15..b9f3df94e4 100644 --- a/apps/browser/src/_locales/fi/messages.json +++ b/apps/browser/src/_locales/fi/messages.json @@ -7,7 +7,7 @@ "description": "Extension name, MUST be less than 40 characters (Safari restriction)" }, "extDesc": { - "message": "Kotona, töissä tai reissussa, Bitwarden suojaa salasanasi, suojausavaimesi ja arkaluonteiset tietosi helposti.", + "message": "Kotona, töissä tai reissussa, Bitwarden suojaa salasanasi, pääsyavaimesi ja arkaluonteiset tietosi helposti.", "description": "Extension description, MUST be less than 112 characters (Safari restriction)" }, "loginOrCreateNewAccount": { @@ -715,7 +715,7 @@ "message": "Aloita rekisteröityminen alusta tai yritä kirjautua sisään uudelleen." }, "youMayAlreadyHaveAnAccount": { - "message": "Sinulla saattaa olla jo tili" + "message": "Sinulla saattaa jo olla tili" }, "logOutConfirmation": { "message": "Haluatko varmasti kirjautua ulos?" @@ -736,7 +736,7 @@ "message": "Kansio lisätty" }, "twoStepLoginConfirmation": { - "message": "Kaksivaiheinen kirjautuminen parantaa tilisi suojausta vaatimalla kirjautumisen vahvistuksen salasanan lisäksi todennuslaitteen, ‑sovelluksen, tekstiviestin, puhelun tai sähköpostin avulla. Voit ottaa kaksivaiheisen kirjautumisen käyttöön bitwarden.com‑verkkoholvissa. Haluatko avata sen nyt?" + "message": "Kaksivaiheinen kirjautuminen parantaa tilisi suojausta vaatimalla kirjautumisen vahvistuksen salasanan lisäksi suojausavaimen, ‑sovelluksen, tekstiviestin, puhelun tai sähköpostin avulla. Voit ottaa kaksivaiheisen kirjautumisen käyttöön bitwarden.com‑verkkoholvissa. Haluatko avata sen nyt?" }, "editedFolder": { "message": "Kansio tallennettiin" @@ -873,10 +873,10 @@ "message": "Tarjoa kirjautumistiedon salasanan päivitystä, kun verkkosivustolla havaitaan uusi salasana. Koskee kaikkia kirjautuneita tilejä." }, "enableUsePasskeys": { - "message": "Tarjoa suojausvainten tallennusta ja käyttöä" + "message": "Tarjoa pääsyavainten tallennusta ja käyttöä" }, "usePasskeysDesc": { - "message": "Tarjoa tallennusta uusille suojausavaimille tai kirjautumista holvissasi olevilla salausavaimilla. Koskee kaikkia kirjautuneita tilejä." + "message": "Tarjoa uusien pääsyavainten tallennusta sekä kirjautumista holvissasi olevilla pääsyavaimilla. Koskee kaikkia kirjautuneita tilejä." }, "notificationChangeDesc": { "message": "Haluatko päivittää salasanan Bitwardeniin?" @@ -1152,10 +1152,10 @@ "message": "Tämä ominaisuus edellyttää Premium-jäsenyyttä." }, "enterVerificationCodeApp": { - "message": "Syötä 6-numeroinen todennuskoodi todennussovelluksestasi." + "message": "Syötä todennussovelluksesi näyttämä kuusinumeroinen todennuskoodi." }, "enterVerificationCodeEmail": { - "message": "Syötä 6-numeroinen todennuskoodi, joka lähetettiin sähköpostitse osoitteeseen $EMAIL$.", + "message": "Syötä osoitteeseen $EMAIL$ lähetetty kuusinumeroinen todennuskoodi.", "placeholders": { "email": { "content": "$1", @@ -1185,7 +1185,7 @@ "message": "Kytke YubiKey-todennuslaitteesi tietokoneen USB-porttiin ja paina sen painiketta." }, "insertU2f": { - "message": "Kytke todennuslaitteesi tietokoneen USB-porttiin. Jos laitteessa on painike, paina sitä." + "message": "Kytke suojausavaimesi tietokoneen USB-porttiin. Jos laitteessa on painike, paina sitä." }, "webAuthnNewTab": { "message": "Aloittaaksesi kaksivaiheisen WebAuthn-tunnistautumisen, seuraa alla olevasta painikkeesta uuteen välilehteen avautuvia ohjeita." @@ -1222,7 +1222,7 @@ "description": "'Bitwarden Authenticator' is a product name and should not be translated." }, "yubiKeyTitleV2": { - "message": "Yubico OTP -todennuslaite" + "message": "Yubico OTP -suojausavain" }, "yubiKeyDesc": { "message": "Käytä YubiKey-todennuslaitetta tilisi avaukseen. Toimii YubiKey 4, 4 Nano, 4C sekä NEO -laitteiden kanssa." @@ -1232,14 +1232,14 @@ "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { - "message": "Vahvista organisaatiollesi Duo Securityn avulla käyttäen Duo Mobile ‑sovellusta, tekstiviestiä, puhelua tai U2F-todennuslaitetta.", + "message": "Vahvista organisaatiollesi Duo Securityn avulla käyttäen Duo Mobile ‑sovellusta, tekstiviestiä, puhelua tai U2F-suojausavainta.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "webAuthnTitle": { "message": "FIDO2 WebAuthn" }, "webAuthnDesc": { - "message": "Käytä mitä tahansa WebAuthn‑yhteensopivaa todennuslaitetta päästäksesi käsiksi tiliisi." + "message": "Käytä mitä tahansa WebAuthn‑yhteensopivaa suojausavainta päästäksesi tilillesi." }, "emailTitle": { "message": "Sähköposti" @@ -1852,7 +1852,7 @@ "message": "Käytä tätä käyttäjätunnusta" }, "securePasswordGenerated": { - "message": "Turvallinen salasana luotu! Muista myös päivittää salasana verkkosivustolla." + "message": "Turvallinen salasana luotiin! Muista päivittää salasana myös verkkosivustolla." }, "useGeneratorHelpTextPartOne": { "message": "Käytä generaattoria", @@ -3063,7 +3063,7 @@ } }, "singleFieldNeedsAttention": { - "message": "1 kenttä vaatii huomiotasi." + "message": "Yksi kenttä vaatii huomiotasi." }, "multipleFieldsNeedAttention": { "message": "$COUNT$ kenttää vaatii huomiotasi.", @@ -3409,25 +3409,25 @@ "message": "Holvin tiedot on viety" }, "typePasskey": { - "message": "Suojausavain" + "message": "Pääsyavain" }, "passkeyNotCopied": { - "message": "Suojausavainta ei kopioida" + "message": "Pääsyavainta ei kopioida" }, "passkeyNotCopiedAlert": { - "message": "Suojausavain ei kopioidu kloonattuun kohteeseen. Haluatko jatkaa kloonausta?" + "message": "Pääsyavain ei kopioidu kloonattuun kohteeseen. Haluatko jatkaa kloonausta?" }, "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { - "message": "Käynnistävä sivusto edellyttää todennusta. Ominaisuutta ei ole vielä toteutettu tileille, joilla ei ole pääsalasanaa." + "message": "Käynnistänyt sivusto edellyttää vahvistusta. Ominaisuutta ei ole vielä toteutettu tileille, joilla ei ole pääsalasanaa." }, "logInWithPasskey": { - "message": "Kirjaudutaanko suojausavaimella?" + "message": "Kirjaudutaanko pääsyavaimella?" }, "passkeyAlreadyExists": { - "message": "Tälle sovellukselle on jo tallennettu suojausavain." + "message": "Tälle sovellukselle on jo tallennettu pääsyavain." }, "noPasskeysFoundForThisApplication": { - "message": "Tälle sovellukselle ei löytynyt suojausavaimia." + "message": "Tälle sovellukselle ei löytynyt pääsyavaimia." }, "noMatchingPasskeyLogin": { "message": "Holvissasi ei ole tälle sivustolle sopivaa kirjautumistietoa." @@ -3436,28 +3436,28 @@ "message": "Vahvista" }, "savePasskey": { - "message": "Tallenna suojausavain" + "message": "Tallenna pääsyavain" }, "savePasskeyNewLogin": { - "message": "Tallenna suojausavain uuteen kirjautumistietoon" + "message": "Tallenna pääsyavain uuteen kirjautumistietoon" }, "choosePasskey": { - "message": "Valitse kirjautumistieto, johon suojausavain tallennetaan" + "message": "Valitse kirjautumistieto, johon pääsyavain tallennetaan" }, "passkeyItem": { - "message": "Suojausavainkohde" + "message": "Pääsyavainkohde" }, "overwritePasskey": { - "message": "Korvataanko suojausavain?" + "message": "Korvataanko pääsyavain?" }, "overwritePasskeyAlert": { - "message": "Kohde sisältää jo suojausavaimen. Haluatko varmasti korvata nykyisen suojausavaimen?" + "message": "Kohde sisältää jo pääsyavaimen. Haluatko varmasti korvata nykyisen avaimen?" }, "featureNotSupported": { "message": "Ominaisuutta ei vielä tueta" }, "yourPasskeyIsLocked": { - "message": "Salausavaimen käyttö edellyttää todennusta. Jatka vahvistamalla henkilöllisyytesi." + "message": "Pääsyavaimen käyttö edellyttää tunnistautumista. Jatka vahvistamalla henkilöllisyytesi." }, "multifactorAuthenticationCancelled": { "message": "Monivaiheinen todennus peruttiin" @@ -3651,10 +3651,10 @@ "message": "Onnistui" }, "removePasskey": { - "message": "Poista suojausavain" + "message": "Poista pääsyavain" }, "passkeyRemoved": { - "message": "Suojausavain poistettiin" + "message": "Pääsyavain poistettiin" }, "autofillSuggestions": { "message": "Automaattitäytä ehdotukset" @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Käytä animaatioita" + }, "addAccount": { "message": "Lisää tili" }, @@ -3997,7 +4000,7 @@ "message": "Tiedot" }, "passkeys": { - "message": "Avainkoodit", + "message": "Pääsyavaimet", "description": "A section header for a list of passkeys." }, "passwords": { @@ -4005,7 +4008,7 @@ "description": "A section header for a list of passwords." }, "logInWithPasskeyAriaLabel": { - "message": "Kirjaudu avainkoodilla", + "message": "Kirjaudu pääsyavaimella", "description": "ARIA label for the inline menu button that logs in with a passkey." }, "assign": { @@ -4165,7 +4168,7 @@ } }, "itemsMovedToOrg": { - "message": "Kohteet siirrettiin organisaatioon $ORGNAME$", + "message": "Kohteet siirrettiin organisaatiolle $ORGNAME$", "placeholders": { "orgname": { "content": "$1", @@ -4174,7 +4177,7 @@ } }, "itemMovedToOrg": { - "message": "Kohde siirrettiin organisaatioon $ORGNAME$", + "message": "Kohde siirrettiin organisaatiolle $ORGNAME$", "placeholders": { "orgname": { "content": "$1", @@ -4218,7 +4221,7 @@ "message": "Tilitoiminnot" }, "showNumberOfAutofillSuggestions": { - "message": "Näytä kirjautumisen automaattitäytön ehtotusten määrä laajennuksen kuvakkeessa" + "message": "Näytä automaattitäytön kirjautumistietoehdotusten määrä laajennuksen kuvakkeessa" }, "systemDefault": { "message": "Järjestelmän oletus" diff --git a/apps/browser/src/_locales/fil/messages.json b/apps/browser/src/_locales/fil/messages.json index 9f09fb6964..bfe541fc36 100644 --- a/apps/browser/src/_locales/fil/messages.json +++ b/apps/browser/src/_locales/fil/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/fr/messages.json b/apps/browser/src/_locales/fr/messages.json index 153c5710b0..dd25eddfcc 100644 --- a/apps/browser/src/_locales/fr/messages.json +++ b/apps/browser/src/_locales/fr/messages.json @@ -14,7 +14,7 @@ "message": "Identifiez-vous ou créez un nouveau compte pour accéder à votre coffre sécurisé." }, "inviteAccepted": { - "message": "Invitation accepted" + "message": "Invitation acceptée" }, "createAccount": { "message": "Créer un compte" @@ -69,10 +69,10 @@ "message": "Indice du mot de passe principal (facultatif)" }, "joinOrganization": { - "message": "Join organization" + "message": "Rejoindre l'organisation" }, "finishJoiningThisOrganizationBySettingAMasterPassword": { - "message": "Finish joining this organization by setting a master password." + "message": "Terminer de rejoindre cette organisation en configurant un mot de passe principal." }, "tab": { "message": "Onglet" @@ -114,19 +114,19 @@ "message": "Copier le code de sécurité" }, "copyName": { - "message": "Copy name" + "message": "Copier le nom" }, "copyCompany": { - "message": "Copy company" + "message": "Copier l'entreprise" }, "copySSN": { - "message": "Copy Social Security number" + "message": "Copier le numéro de sécurité sociale" }, "copyPassportNumber": { - "message": "Copy passport number" + "message": "Copier le numéro de passeport" }, "copyLicenseNumber": { - "message": "Copy license number" + "message": "Copier la plaque d'immatriculation" }, "autoFill": { "message": "Saisie automatique" @@ -302,22 +302,22 @@ "message": "Modifier le dossier" }, "newFolder": { - "message": "New folder" + "message": "Nouveau dossier" }, "folderName": { - "message": "Folder name" + "message": "Nom de dossier" }, "folderHintText": { - "message": "Nest a folder by adding the parent folder's name followed by a “/”. Example: Social/Forums" + "message": "Imbriquer un dossier en ajoutant le nom du dossier parent suivi d'un \"/\". Par exemple : Social/Forums" }, "noFoldersAdded": { - "message": "No folders added" + "message": "Pas de dossier ajouté" }, "createFoldersToOrganize": { - "message": "Create folders to organize your vault items" + "message": "Créer des dossiers pour organiser les éléments de votre coffre" }, "deleteFolderPermanently": { - "message": "Are you sure you want to permanently delete this folder?" + "message": "Êtes-vous sûr de vouloir supprimer définitivement ce dossier ?" }, "deleteFolder": { "message": "Supprimer le dossier" @@ -688,7 +688,7 @@ "message": "Bitwarden peut stocker et remplir des codes de vérification en 2 étapes. Sélectionnez l'icône caméra pour prendre une capture d'écran du code QR de l'authentificateur de ce site Web, ou copiez et collez la clé dans ce champ." }, "learnMoreAboutAuthenticators": { - "message": "Learn more about authenticators" + "message": "En savoir plus sur les authentificateurs" }, "copyTOTP": { "message": "Copier la clé Authenticator (TOTP)" @@ -823,7 +823,7 @@ "message": "Demander d'ajouter un identifiant" }, "vaultSaveOptionsTitle": { - "message": "Save to vault options" + "message": "Enregistrer dans les options de coffre" }, "addLoginNotificationDesc": { "message": "Demander d'ajouter un élément si aucun n'est trouvé dans votre coffre." @@ -832,7 +832,7 @@ "message": "Demande l'ajout d'un élément si celui-ci n'est pas trouvé dans votre coffre. S'applique à tous les comptes connectés." }, "showCardsInVaultView": { - "message": "Show cards as Autofill suggestions on Vault view" + "message": "Afficher les cartes de paiement en tant que suggestions de saisie automatique dans la vue du coffre" }, "showCardsCurrentTab": { "message": "Afficher les cartes de paiement sur la Page d'onglet" @@ -841,7 +841,7 @@ "message": "Liste les éléments des cartes de paiement sur la Page d'onglet pour faciliter la saisie automatique." }, "showIdentitiesInVaultView": { - "message": "Show identifies as Autofill suggestions on Vault view" + "message": "Afficher les identités en tant que suggestions de saisie automatique dans la vue du coffre" }, "showIdentitiesCurrentTab": { "message": "Afficher les identités sur la Page d'onglet" @@ -1080,7 +1080,7 @@ "message": "1 Go de stockage chiffré pour les fichiers joints." }, "premiumSignUpEmergency": { - "message": "Emergency access." + "message": "Accès d'urgence." }, "premiumSignUpTwoStepOptions": { "message": "Options de connexion propriétaires à deux facteurs telles que YubiKey et Duo." @@ -1104,7 +1104,7 @@ "message": "Vous pouvez acheter une adhésion Premium sur le coffre web de bitwarden.com. Voulez-vous visiter le site web maintenant ?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "Vous pouvez acheter la version Premium depuis les paramètres de votre compte dans l'application web Bitwarden." }, "premiumCurrentMember": { "message": "Vous êtes un membre Premium !" @@ -1113,7 +1113,7 @@ "message": "Merci de soutenir Bitwarden." }, "premiumFeatures": { - "message": "Upgrade to premium and receive:" + "message": "Mettre à niveau à la version Premium et recevez :" }, "premiumPrice": { "message": "Tout pour seulement $PRICE$/an !", @@ -1125,7 +1125,7 @@ } }, "premiumPriceV2": { - "message": "All for just $PRICE$ per year!", + "message": "Tout pour seulement $PRICE$ /an !", "placeholders": { "price": { "content": "$1", @@ -1218,17 +1218,17 @@ "message": "Application d'authentification" }, "authenticatorAppDescV2": { - "message": "Enter a code generated by an authenticator app like Bitwarden Authenticator.", + "message": "Entrez un code généré par une application d'authentification comme Bitwarden Authenticator.", "description": "'Bitwarden Authenticator' is a product name and should not be translated." }, "yubiKeyTitleV2": { - "message": "Yubico OTP Security Key" + "message": "Clé de sécurité OTP de Yubico" }, "yubiKeyDesc": { "message": "Utiliser une YubiKey pour accéder à votre compte. Fonctionne avec les appareils YubiKey 4, 4 Nano, 4C et NEO." }, "duoDescV2": { - "message": "Enter a code generated by Duo Security.", + "message": "Entrez un code généré par Duo Security.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { @@ -1245,7 +1245,7 @@ "message": "Courriel" }, "emailDescV2": { - "message": "Enter a code sent to your email." + "message": "Entrez le code envoyé à votre adresse courriel." }, "selfHostedEnvironment": { "message": "Environnement auto-hébergé" @@ -1297,13 +1297,13 @@ "message": "Suggestions de saisie automatique" }, "showInlineMenuLabel": { - "message": "Show autofill suggestions on form fields" + "message": "Afficher les suggestions de saisie automatique dans les champs d'un formulaire" }, "showInlineMenuOnIconSelectionLabel": { - "message": "Display suggestions when icon is selected" + "message": "Afficher les suggestions lorsque l'icône est sélectionnée" }, "showInlineMenuOnFormFieldsDescAlt": { - "message": "Applies to all logged in accounts." + "message": "S'applique à tous les comptes connectés." }, "turnOffBrowserBuiltInPasswordManagerSettings": { "message": "Désactivez les paramètres du gestionnaire de mots de passe intégré à votre navigateur pour éviter les conflits." @@ -1324,7 +1324,7 @@ "description": "Overlay appearance select option for showing the field on click of the overlay icon" }, "enableAutoFillOnPageLoadSectionTitle": { - "message": "Autofill on page load" + "message": "Saisie automatique lors du chargement de la page" }, "enableAutoFillOnPageLoad": { "message": "Saisir automatiquement au chargement de la page" @@ -1333,7 +1333,7 @@ "message": "Si un formulaire de connexion est détecté, il sera saisi automatiquement lors du chargement de la page web." }, "autofillOnPageLoadWarning": { - "message": "$OPENTAG$Warning:$CLOSETAG$ Compromised or untrusted websites can exploit autofill on page load.", + "message": "$OPENTAG$Attention :$CLOSETAG$ Les sites web compromis ou non fiables peuvent exploiter la saisie automatique lors du chargement de la page.", "placeholders": { "openTag": { "content": "$1", @@ -1349,7 +1349,7 @@ "message": "les sites web compromis ou non fiables peuvent exploiter la saisie automatique au chargement de la page." }, "learnMoreAboutAutofillOnPageLoadLinkText": { - "message": "Learn more about risks" + "message": "En savoir plus sur les risques" }, "learnMoreAboutAutofill": { "message": "En savoir plus sur la saisie automatique" @@ -1379,13 +1379,13 @@ "message": "Ouvrir le coffre dans la barre latérale" }, "commandAutofillLoginDesc": { - "message": "Autofill the last used login for the current website" + "message": "Saisir automatiquement le dernier identifiant utilisé pour le site web actuel" }, "commandAutofillCardDesc": { - "message": "Autofill the last used card for the current website" + "message": "Saisir automatiquement la dernière carte utilisée pour le site web actuel" }, "commandAutofillIdentityDesc": { - "message": "Autofill the last used identity for the current website" + "message": "Saisir automatiquement la dernière identité utilisée pour le site web actuel" }, "commandGeneratePasswordDesc": { "message": "Générer et copier un nouveau mot de passe aléatoire dans le presse-papiers." @@ -1418,7 +1418,7 @@ "message": "Booléen" }, "cfTypeCheckbox": { - "message": "Checkbox" + "message": "Case à cocher" }, "cfTypeLinked": { "message": "Lié", @@ -1621,7 +1621,7 @@ } }, "viewItemHeader": { - "message": "View $TYPE$", + "message": "Voir les $TYPE$", "placeholders": { "type": { "content": "$1", @@ -1692,7 +1692,7 @@ "description": "Domain name. Ex. website.com" }, "baseDomainOptionRecommended": { - "message": "Base domain (recommended)", + "message": "Domaine de base (recommandé)", "description": "Domain name. Ex. website.com" }, "domainName": { @@ -1840,26 +1840,26 @@ "message": "Une ou plusieurs politiques de sécurité de l'organisation affectent les paramètres de votre générateur." }, "passwordGenerator": { - "message": "Password generator" + "message": "Générateur de mot de passe" }, "usernameGenerator": { - "message": "Username generator" + "message": "Générateur de nom d'utilisateur" }, "useThisPassword": { - "message": "Use this password" + "message": "Utiliser ce mot de passe" }, "useThisUsername": { - "message": "Use this username" + "message": "Utiliser ce nom d'utilisateur" }, "securePasswordGenerated": { - "message": "Secure password generated! Don't forget to also update your password on the website." + "message": "Mot de passe sécurisé généré ! N'oubliez pas aussi de mettre à jour votre mot de passe sur le site Web." }, "useGeneratorHelpTextPartOne": { - "message": "Use the generator", + "message": "Utiliser le générateur", "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": "pour créer un mot de passe fort unique", "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'" }, "vaultTimeoutAction": { @@ -1985,7 +1985,7 @@ "message": "Votre nouveau mot de passe principal ne répond pas aux exigences de politique de sécurité." }, "receiveMarketingEmailsV2": { - "message": "Get advice, announcements, and research opportunities from Bitwarden in your inbox." + "message": "Obtenez des conseils, des annonces et des opportunités de recherche de la part de Bitwarden dans votre boîte de réception." }, "unsubscribe": { "message": "Se désabonner" @@ -2060,7 +2060,7 @@ "message": "Erreur de correspondance entre les comptes" }, "nativeMessagingWrongUserKeyDesc": { - "message": "Biometric unlock failed. The biometric secret key failed to unlock the vault. Please try to set up biometrics again." + "message": "Le déverrouillage biométrique a échoué. La clé secrète biométrique n'a pas réussi à déverrouiller le coffre. Veuillez essayer de configurer à nouveau la biométrie." }, "nativeMessagingWrongUserKeyTitle": { "message": "Biometric key missmatch" @@ -2111,7 +2111,7 @@ "message": "Une politique d'organisation a bloqué l'import d'éléments dans votre coffre personel." }, "domainsTitle": { - "message": "Domains", + "message": "Domaines", "description": "A category title describing the concept of web domains" }, "excludedDomains": { @@ -2124,7 +2124,7 @@ "message": "Bitwarden ne demandera pas d'enregistrer les détails de connexion pour ces domaines pour tous les comptes connectés. Vous devez actualiser la page pour que les modifications prennent effet." }, "websiteItemLabel": { - "message": "Website $number$ (URI)", + "message": "Site web $number$ (URI)", "placeholders": { "number": { "content": "$1", @@ -2142,7 +2142,7 @@ } }, "excludedDomainsSavedSuccess": { - "message": "Excluded domain changes saved" + "message": "Changements de domaines exclus enregistrés" }, "send": { "message": "Send", @@ -2180,7 +2180,7 @@ "message": "Protégé par un mot de passe" }, "copyLink": { - "message": "Copy link" + "message": "Copier le lien" }, "copySendLink": { "message": "Copier le lien du Send", @@ -2314,11 +2314,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSendSuccessfully": { - "message": "Send created successfully!", + "message": "Send créé avec succès !", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { - "message": "The Send will be available to anyone with the link for the next $DAYS$ days.", + "message": "Le Send est disponible à toute personne ayant le lien durant les $DAYS$ prochains jours.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.", "placeholders": { "days": { @@ -2328,7 +2328,7 @@ } }, "sendLinkCopied": { - "message": "Send link copied", + "message": "Lien Send copié", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -2393,7 +2393,7 @@ "message": "Vérification de courriel requise" }, "emailVerifiedV2": { - "message": "Email verified" + "message": "Courriel vérifié" }, "emailVerificationRequiredDesc": { "message": "Vous devez vérifier votre courriel pour utiliser cette fonctionnalité. Vous pouvez vérifier votre courriel dans le coffre web." @@ -2411,7 +2411,7 @@ "message": "Votre mot de passe principal ne répond pas aux exigences de politique de sécurité de cette organisation. Pour accéder au coffre, vous devez mettre à jour votre mot de passe principal dès maintenant. En poursuivant, vous serez déconnecté de votre session actuelle et vous devrez vous reconnecter. Les sessions actives sur d'autres appareils peuver rester actives pendant encore une heure." }, "tdeDisabledMasterPasswordRequired": { - "message": "Your organization has disabled trusted device encryption. Please set a master password to access your vault." + "message": "Votre organisation a désactivé le déchiffrement de votre appareil de confiance. Veuillez configurer un mot de passe principal pour accéder à votre coffre." }, "resetPasswordPolicyAutoEnroll": { "message": "Inscription automatique" @@ -2864,22 +2864,22 @@ "message": "Paramètres de saisie automatique" }, "autofillKeyboardShortcutSectionTitle": { - "message": "Autofill shortcut" + "message": "Raccourci de saisie automatique" }, "autofillKeyboardShortcutUpdateLabel": { - "message": "Change shortcut" + "message": "Modifier le raccourci" }, "autofillKeyboardManagerShortcutsLabel": { - "message": "Manage shortcuts" + "message": "Gérer les raccourcis" }, "autofillShortcut": { "message": "Raccourci clavier de saisie automatique" }, "autofillLoginShortcutNotSet": { - "message": "The autofill login shortcut is not set. Change this in the browser's settings." + "message": "Le raccourci de saisie automatique de l'identifiant n'est pas configuré. Changez-le dans les paramètres du navigateur." }, "autofillLoginShortcutText": { - "message": "The autofill login shortcut is $COMMAND$. Manage all shortcuts in the browser's settings.", + "message": "Le raccourci de saisie automatique de l'identifiant est $COMMAND$. Gérez tous les raccourcis dans les paramètres du navigateur.", "placeholders": { "command": { "content": "$1", @@ -2982,11 +2982,11 @@ "message": "Appareil de confiance" }, "sendsNoItemsTitle": { - "message": "No active Sends", + "message": "Pas de Send actif", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendsNoItemsMessage": { - "message": "Use Send to securely share encrypted information with anyone.", + "message": "Utilisez Send pour partager en toute sécurité des informations chiffrées avec tout le monde.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "inputRequired": { @@ -3063,10 +3063,10 @@ } }, "singleFieldNeedsAttention": { - "message": "1 field needs your attention." + "message": "1 champ nécessite votre attention." }, "multipleFieldsNeedAttention": { - "message": "$COUNT$ fields need your attention.", + "message": "$COUNT$ champs nécessitent votre attention.", "placeholders": { "count": { "content": "$1", @@ -3153,7 +3153,7 @@ "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." }, "toggleSideNavigation": { - "message": "Toggle side navigation" + "message": "Basculer la navigation latérale" }, "skipToContent": { "message": "Accéder directement au contenu" @@ -3175,7 +3175,7 @@ "description": "Text to display in overlay when the account is locked." }, "unlockYourAccountToViewAutofillSuggestions": { - "message": "Unlock your account to view autofill suggestions", + "message": "Déverrouillez votre compte pour afficher les suggestions de saisie automatique", "description": "Text to display in overlay when the account is locked." }, "unlockAccount": { @@ -3183,7 +3183,7 @@ "description": "Button text to display in overlay when the account is locked." }, "unlockAccountAria": { - "message": "Unlock your account, opens in a new window", + "message": "Déverrouiller votre compte, s'ouvre dans une nouvelle fenêtre", "description": "Screen reader text (aria-label) for unlock account button in overlay" }, "fillCredentialsFor": { @@ -3207,7 +3207,7 @@ "description": "Screen reader text (aria-label) for new item button in overlay" }, "newLogin": { - "message": "New login", + "message": "Nouvel identifiant", "description": "Button text to display within inline menu when there are no matching items on a login field" }, "addNewLoginItemAria": { @@ -3215,7 +3215,7 @@ "description": "Screen reader text (aria-label) for new login button within inline menu" }, "newCard": { - "message": "New card", + "message": "Nouvelle carte de paiement", "description": "Button text to display within inline menu when there are no matching items on a credit card field" }, "addNewCardItemAria": { @@ -3223,7 +3223,7 @@ "description": "Screen reader text (aria-label) for new card button within inline menu" }, "newIdentity": { - "message": "New identity", + "message": "Nouvelle identité", "description": "Button text to display within inline menu when there are no matching items on an identity field" }, "addNewIdentityItemAria": { @@ -3406,7 +3406,7 @@ "message": "Confirmez le mot de passe du fichier" }, "exportSuccess": { - "message": "Vault data exported" + "message": "Données du coffre exportées" }, "typePasskey": { "message": "Clé d'identification (passkey)" @@ -3588,27 +3588,27 @@ "description": "Label indicating the most common import formats" }, "confirmContinueToBrowserSettingsTitle": { - "message": "Continue to browser settings?", + "message": "Continuer vers les paramètres du navigateur ?", "description": "Title for dialog which asks if the user wants to proceed to a relevant browser settings page" }, "confirmContinueToHelpCenter": { - "message": "Continue to Help Center?", + "message": "Continuer vers le centre d'aide ?", "description": "Title for dialog which asks if the user wants to proceed to a relevant Help Center page" }, "confirmContinueToHelpCenterPasswordManagementContent": { - "message": "Change your browser's autofill and password management settings.", + "message": "Modifiez les paramètres de saisie automatique et de gestion des mots de passe de votre navigateur.", "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": "You can view and set extension shortcuts in your browser's settings.", + "message": "Vous pouvez afficher et définir les raccourcis d'extension dans les paramètres de votre navigateur.", "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": "Change your browser's autofill and password management settings.", + "message": "Modifiez les paramètres de saisie automatique et de gestion des mots de passe de votre navigateur.", "description": "Body content for dialog which asks if the user wants to proceed to the browser's password management settings page" }, "confirmContinueToBrowserKeyboardShortcutSettingsContent": { - "message": "You can view and set extension shortcuts in your browser's settings.", + "message": "Vous pouvez afficher et définir les raccourcis d'extension dans les paramètres de votre navigateur.", "description": "Body content for dialog which asks if the user wants to proceed to the browser's keyboard shortcut settings page" }, "overrideDefaultBrowserAutofillTitle": { @@ -3722,7 +3722,7 @@ } }, "autofillTitle": { - "message": "Autofill - $ITEMNAME$", + "message": "Saisie automatique - $ITEMNAME$", "description": "Title for a button that autofills a login item.", "placeholders": { "itemname": { @@ -3735,7 +3735,7 @@ "message": "Aucune valeur à copier" }, "assignToCollections": { - "message": "Assign to collections" + "message": "Assigner aux collections" }, "copyEmail": { "message": "Copier l'email" @@ -3801,13 +3801,13 @@ "message": "Eléments sans dossier" }, "itemDetails": { - "message": "Item details" + "message": "Détails de l'élément" }, "itemName": { - "message": "Item name" + "message": "Nom de l’élément" }, "cannotRemoveViewOnlyCollections": { - "message": "You cannot remove collections with View only permissions: $COLLECTIONS$", + "message": "Vous ne pouvez pas supprimer des collections avec les autorisations d'affichage uniquement : $COLLECTIONS$", "placeholders": { "collections": { "content": "$1", @@ -3819,44 +3819,44 @@ "message": "L'organisation est désactivée" }, "owner": { - "message": "Owner" + "message": "Propriétaire" }, "selfOwnershipLabel": { - "message": "You", + "message": "Vous", "description": "Used as a label to indicate that the user is the owner of an item." }, "contactYourOrgAdmin": { "message": "Les éléments des Organisations désactivées ne sont pas accessibles. Contactez le propriétaire de votre Organisation pour obtenir de l'aide." }, "additionalInformation": { - "message": "Additional information" + "message": "Informations supplémentaires" }, "itemHistory": { - "message": "Item history" + "message": "Historique de l'élément" }, "lastEdited": { - "message": "Last edited" + "message": "Dernière modification" }, "ownerYou": { - "message": "Owner: You" + "message": "Propriétaire : Vous" }, "linked": { - "message": "Linked" + "message": "Lié" }, "copySuccessful": { - "message": "Copy Successful" + "message": "Copié avec succès" }, "upload": { - "message": "Upload" + "message": "Téléverser" }, "addAttachment": { - "message": "Add attachment" + "message": "Ajouter une pièce jointe" }, "maxFileSizeSansPunctuation": { - "message": "Maximum file size is 500 MB" + "message": "La taille maximale du fichier est de 500 Mo" }, "deleteAttachmentName": { - "message": "Delete attachment $NAME$", + "message": "Supprimer la pièce jointe $NAME$", "placeholders": { "name": { "content": "$1", @@ -3865,7 +3865,7 @@ } }, "downloadAttachmentName": { - "message": "Download $NAME$", + "message": "Télécharger $NAME$", "placeholders": { "name": { "content": "$1", @@ -3880,22 +3880,22 @@ "message": "Premium" }, "freeOrgsCannotUseAttachments": { - "message": "Free organizations cannot use attachments" + "message": "Les organisations gratuites ne peuvent pas utiliser de pièces jointes" }, "filters": { "message": "Filtres" }, "personalDetails": { - "message": "Personal details" + "message": "Données personnelles" }, "identification": { "message": "Identification" }, "contactInfo": { - "message": "Contact info" + "message": "Informations de contact" }, "downloadAttachment": { - "message": "Download - $ITEMNAME$", + "message": "Télécharger - $ITEMNAME$", "placeholders": { "itemname": { "content": "$1", @@ -3904,23 +3904,23 @@ } }, "cardNumberEndsWith": { - "message": "card number ends with", + "message": "numéro de la carte se termine par", "description": "Used within the inline menu to provide an aria description when users are attempting to fill a card cipher." }, "loginCredentials": { - "message": "Login credentials" + "message": "Identifiants de connexion" }, "authenticatorKey": { - "message": "Authenticator key" + "message": "Clé d'authentification" }, "autofillOptions": { - "message": "Autofill options" + "message": "Options de saisie automatique" }, "websiteUri": { - "message": "Website (URI)" + "message": "Site web (URI)" }, "websiteUriCount": { - "message": "Website (URI) $COUNT$", + "message": "Site web (URI) $COUNT$", "description": "Label for an input field that contains a website URI. The input field is part of a list of fields, and the count indicates the position of the field in the list.", "placeholders": { "count": { @@ -3930,16 +3930,16 @@ } }, "websiteAdded": { - "message": "Website added" + "message": "Site web ajouté" }, "addWebsite": { - "message": "Add website" + "message": "Ajouter le site web" }, "deleteWebsite": { - "message": "Delete website" + "message": "Supprimer le site web" }, "defaultLabel": { - "message": "Default ($VALUE$)", + "message": "Par défaut ($VALUE$)", "description": "A label that indicates the default value for a field with the current default value in parentheses.", "placeholders": { "value": { @@ -3967,16 +3967,16 @@ } }, "autoFillOnPageLoad": { - "message": "Autofill on page load?" + "message": "Saisir automatiquement lors du chargement de la page ?" }, "cardExpiredTitle": { - "message": "Expired card" + "message": "Carte de paiement expirée" }, "cardExpiredMessage": { - "message": "If you've renewed it, update the card's information" + "message": "Si vous l'avez renouvelée, mettez à jour les informations de la carte de paiement" }, "cardDetails": { - "message": "Card details" + "message": "Détails de la carte de paiement" }, "cardBrandDetails": { "message": "$BRAND$ details", @@ -3987,38 +3987,41 @@ } } }, + "enableAnimations": { + "message": "Activer les animations" + }, "addAccount": { "message": "Ajouter un compte" }, "loading": { - "message": "Loading" + "message": "Chargement" }, "data": { - "message": "Data" + "message": "Données" }, "passkeys": { - "message": "Passkeys", + "message": "Clés d'accès", "description": "A section header for a list of passkeys." }, "passwords": { - "message": "Passwords", + "message": "Mots de passe", "description": "A section header for a list of passwords." }, "logInWithPasskeyAriaLabel": { - "message": "Log in with passkey", + "message": "Se connecter avec une clé d'accès", "description": "ARIA label for the inline menu button that logs in with a passkey." }, "assign": { - "message": "Assign" + "message": "Assigner" }, "bulkCollectionAssignmentDialogDescriptionSingular": { - "message": "Only organization members with access to these collections will be able to see the item." + "message": "Seuls les membres de l'organisation ayant accès à ces collections pourront voir l'élément." }, "bulkCollectionAssignmentDialogDescriptionPlural": { - "message": "Only organization members with access to these collections will be able to see the items." + "message": "Seuls les membres de l'organisation ayant accès à ces collections pourront voir les éléments." }, "bulkCollectionAssignmentWarning": { - "message": "You have selected $TOTAL_COUNT$ items. You cannot update $READONLY_COUNT$ of the items because you do not have edit permissions.", + "message": "Vous avez sélectionné $TOTAL_COUNT$ éléments. Vous ne pouvez pas mettre à jour $READONLY_COUNT$ de ces éléments parce que vous n'avez pas les autorisations pour les éditer.", "placeholders": { "total_count": { "content": "$1", @@ -4030,37 +4033,37 @@ } }, "addField": { - "message": "Add field" + "message": "Ajouter un champ" }, "add": { - "message": "Add" + "message": "Ajouter" }, "fieldType": { - "message": "Field type" + "message": "Type du champ" }, "fieldLabel": { - "message": "Field label" + "message": "Intitulé du champ" }, "textHelpText": { - "message": "Use text fields for data like security questions" + "message": "Utiliser des champs de texte pour les données telles que les questions de sécurité" }, "hiddenHelpText": { - "message": "Use hidden fields for sensitive data like a password" + "message": "Utiliser des champs cachés pour des données sensibles telles qu'un mot de passe" }, "checkBoxHelpText": { - "message": "Use checkboxes if you'd like to autofill a form's checkbox, like a remember email" + "message": "Utilisez les cases à cocher si vous souhaitez saisir automatiquement la case à cocher d'un formulaire, tel qu'un courriel de rappel" }, "linkedHelpText": { - "message": "Use a linked field when you are experiencing autofill issues for a specific website." + "message": "Utilisez un champ lié lorsque vous rencontrez des problèmes de saisie automatique pour un site Web spécifique." }, "linkedLabelHelpText": { "message": "Enter the the field's html id, name, aria-label, or placeholder." }, "editField": { - "message": "Edit field" + "message": "Éditer le champ" }, "editFieldLabel": { - "message": "Edit $LABEL$", + "message": "Éditer $LABEL$", "placeholders": { "label": { "content": "$1", @@ -4069,7 +4072,7 @@ } }, "deleteCustomField": { - "message": "Delete $LABEL$", + "message": "Supprimer $LABEL$", "placeholders": { "label": { "content": "$1", @@ -4078,7 +4081,7 @@ } }, "fieldAdded": { - "message": "$LABEL$ added", + "message": "$LABEL$ ajouté", "placeholders": { "label": { "content": "$1", @@ -4087,7 +4090,7 @@ } }, "reorderToggleButton": { - "message": "Reorder $LABEL$. Use arrow key to move item up or down.", + "message": "Réorganiser $LABEL$. Utilisez les flèches de votre clavier pour déplacer l'élément vers le haut ou vers le bas.", "placeholders": { "label": { "content": "$1", @@ -4113,13 +4116,13 @@ } }, "selectCollectionsToAssign": { - "message": "Select collections to assign" + "message": "Sélectionnez les collections à assigner" }, "personalItemTransferWarningSingular": { - "message": "1 item will be permanently transferred to the selected organization. You will no longer own this item." + "message": "1 élément sera transféré définitivement à l'organisation sélectionnée. Vous ne serez plus le propriétaire de cet élément." }, "personalItemsTransferWarningPlural": { - "message": "$PERSONAL_ITEMS_COUNT$ items will be permanently transferred to the selected organization. You will no longer own these items.", + "message": "Les éléments $PERSONAL_ITEMS_COUNT$ seront transférés de façon permanente à l'organisation sélectionnée. Vous ne serez plus le propriétaire de ces éléments.", "placeholders": { "personal_items_count": { "content": "$1", @@ -4128,7 +4131,7 @@ } }, "personalItemWithOrgTransferWarningSingular": { - "message": "1 item will be permanently transferred to $ORG$. You will no longer own this item.", + "message": "1 élément sera transféré définitivement à $ORG$. Vous ne serez plus le propriétaire de cet élément.", "placeholders": { "org": { "content": "$1", @@ -4137,7 +4140,7 @@ } }, "personalItemsWithOrgTransferWarningPlural": { - "message": "$PERSONAL_ITEMS_COUNT$ items will be permanently transferred to $ORG$. You will no longer own these items.", + "message": "Les éléments $PERSONAL_ITEMS_COUNT$ seront transférés à $ORG$ de façon permanente. Vous ne serez plus propriétaire de ces éléments.", "placeholders": { "personal_items_count": { "content": "$1", @@ -4150,13 +4153,13 @@ } }, "successfullyAssignedCollections": { - "message": "Successfully assigned collections" + "message": "Collections assignées avec succès" }, "nothingSelected": { - "message": "You have not selected anything." + "message": "Vous n'avez rien sélectionné." }, "movedItemsToOrg": { - "message": "Selected items moved to $ORGNAME$", + "message": "Les éléments sélectionnés ont été déplacés vers $ORGNAME$", "placeholders": { "orgname": { "content": "$1", @@ -4165,7 +4168,7 @@ } }, "itemsMovedToOrg": { - "message": "Items moved to $ORGNAME$", + "message": "Éléments déplacés vers $ORGNAME$", "placeholders": { "orgname": { "content": "$1", @@ -4174,7 +4177,7 @@ } }, "itemMovedToOrg": { - "message": "Item moved to $ORGNAME$", + "message": "Élément déplacé vers $ORGNAME$", "placeholders": { "orgname": { "content": "$1", @@ -4200,7 +4203,7 @@ } }, "itemLocation": { - "message": "Item Location" + "message": "Emplacement de l'élément" }, "fileSends": { "message": "File Sends" @@ -4209,7 +4212,7 @@ "message": "Text Sends" }, "bitwardenNewLook": { - "message": "Bitwarden has a new look!" + "message": "Bitwarden a un nouveau look !" }, "bitwardenNewLookDesc": { "message": "It's easier and more intuitive than ever to autofill and search from the Vault tab. Take a look around!" @@ -4218,7 +4221,7 @@ "message": "Account actions" }, "showNumberOfAutofillSuggestions": { - "message": "Show number of login autofill suggestions on extension icon" + "message": "Afficher le nombre de suggestions de saisie automatique d'identifiant sur l'icône d'extension" }, "systemDefault": { "message": "System default" diff --git a/apps/browser/src/_locales/gl/messages.json b/apps/browser/src/_locales/gl/messages.json index b57ca6c701..91cd72fbc9 100644 --- a/apps/browser/src/_locales/gl/messages.json +++ b/apps/browser/src/_locales/gl/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/he/messages.json b/apps/browser/src/_locales/he/messages.json index df0a0b46d5..3df3937a1d 100644 --- a/apps/browser/src/_locales/he/messages.json +++ b/apps/browser/src/_locales/he/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/hi/messages.json b/apps/browser/src/_locales/hi/messages.json index 9d65d502e2..109b3c8b06 100644 --- a/apps/browser/src/_locales/hi/messages.json +++ b/apps/browser/src/_locales/hi/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/hr/messages.json b/apps/browser/src/_locales/hr/messages.json index e60676782a..0d931cb510 100644 --- a/apps/browser/src/_locales/hr/messages.json +++ b/apps/browser/src/_locales/hr/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Dodaj račun" }, diff --git a/apps/browser/src/_locales/hu/messages.json b/apps/browser/src/_locales/hu/messages.json index 72d0b8a188..dfcfe51ab2 100644 --- a/apps/browser/src/_locales/hu/messages.json +++ b/apps/browser/src/_locales/hu/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Animációk engedélyezése" + }, "addAccount": { "message": "Fiók hozzáadása" }, diff --git a/apps/browser/src/_locales/id/messages.json b/apps/browser/src/_locales/id/messages.json index b70e8d6788..75dcf04a58 100644 --- a/apps/browser/src/_locales/id/messages.json +++ b/apps/browser/src/_locales/id/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/it/messages.json b/apps/browser/src/_locales/it/messages.json index 60ce1373d0..59c4091c1a 100644 --- a/apps/browser/src/_locales/it/messages.json +++ b/apps/browser/src/_locales/it/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/ja/messages.json b/apps/browser/src/_locales/ja/messages.json index 0072b24fa5..8c729136d9 100644 --- a/apps/browser/src/_locales/ja/messages.json +++ b/apps/browser/src/_locales/ja/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "アニメーションを有効化" + }, "addAccount": { "message": "アカウントを追加" }, diff --git a/apps/browser/src/_locales/ka/messages.json b/apps/browser/src/_locales/ka/messages.json index d8e02622fd..109ceb35ea 100644 --- a/apps/browser/src/_locales/ka/messages.json +++ b/apps/browser/src/_locales/ka/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/km/messages.json b/apps/browser/src/_locales/km/messages.json index 0700341d23..a580b3372a 100644 --- a/apps/browser/src/_locales/km/messages.json +++ b/apps/browser/src/_locales/km/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/kn/messages.json b/apps/browser/src/_locales/kn/messages.json index afcb7a17d0..99de615387 100644 --- a/apps/browser/src/_locales/kn/messages.json +++ b/apps/browser/src/_locales/kn/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/ko/messages.json b/apps/browser/src/_locales/ko/messages.json index 4325971967..6d01dc6ea9 100644 --- a/apps/browser/src/_locales/ko/messages.json +++ b/apps/browser/src/_locales/ko/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/lt/messages.json b/apps/browser/src/_locales/lt/messages.json index d41ce8ec21..a894feb5eb 100644 --- a/apps/browser/src/_locales/lt/messages.json +++ b/apps/browser/src/_locales/lt/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Pridėti paskyrą" }, diff --git a/apps/browser/src/_locales/lv/messages.json b/apps/browser/src/_locales/lv/messages.json index 75725ebb3a..dc7100f3fd 100644 --- a/apps/browser/src/_locales/lv/messages.json +++ b/apps/browser/src/_locales/lv/messages.json @@ -1379,13 +1379,13 @@ "message": "Atvērt glabātavu sānu joslā" }, "commandAutofillLoginDesc": { - "message": "Autofill the last used login for the current website" + "message": "Automātiski aizpildīt ar iepriekš izmantoto pieteikšanās vienumu pašreizējā tīmekļvietnē" }, "commandAutofillCardDesc": { - "message": "Autofill the last used card for the current website" + "message": "Automātiski aizpildīt ar iepriekš izmantoto karti pašreizējā tīmekļvietnē" }, "commandAutofillIdentityDesc": { - "message": "Autofill the last used identity for the current website" + "message": "Automātiski aizpildīt ar iepriekš izmantoto identitāti pašreizējā tīmekļvietnē" }, "commandGeneratePasswordDesc": { "message": "Izveidot jaunu nejaušu paroli un ievietot to starpliktuvē" @@ -1692,7 +1692,7 @@ "description": "Domain name. Ex. website.com" }, "baseDomainOptionRecommended": { - "message": "Base domain (recommended)", + "message": "Pamata domēns (ieteicams)", "description": "Domain name. Ex. website.com" }, "domainName": { @@ -2870,16 +2870,16 @@ "message": "Mainīt īsinājumtaustiņus" }, "autofillKeyboardManagerShortcutsLabel": { - "message": "Manage shortcuts" + "message": "Pārvaldīt saīsnes" }, "autofillShortcut": { "message": "Automātiskās aizpildes īsinājumtaustiņi" }, "autofillLoginShortcutNotSet": { - "message": "The autofill login shortcut is not set. Change this in the browser's settings." + "message": "Automātiskās aizpildes īsceļš pieteikšanās vienumiem nav uzstādīts. To var izdarīt pārlūka iestatījumos." }, "autofillLoginShortcutText": { - "message": "The autofill login shortcut is $COMMAND$. Manage all shortcuts in the browser's settings.", + "message": "Automātiskās aizpildes īsceļš pieteikšanās vienumiem ir: $COMMAND$. Visus īsinājumtaustiņus var pārvaldīt pārlūka iestatījumos.", "placeholders": { "command": { "content": "$1", @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Iespējot animācijas" + }, "addAccount": { "message": "Pievienot kontu" }, diff --git a/apps/browser/src/_locales/ml/messages.json b/apps/browser/src/_locales/ml/messages.json index 2dcf65d111..80f13845ad 100644 --- a/apps/browser/src/_locales/ml/messages.json +++ b/apps/browser/src/_locales/ml/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/mr/messages.json b/apps/browser/src/_locales/mr/messages.json index 39941ed1a1..7d1a3b668c 100644 --- a/apps/browser/src/_locales/mr/messages.json +++ b/apps/browser/src/_locales/mr/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/my/messages.json b/apps/browser/src/_locales/my/messages.json index 0700341d23..a580b3372a 100644 --- a/apps/browser/src/_locales/my/messages.json +++ b/apps/browser/src/_locales/my/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/nb/messages.json b/apps/browser/src/_locales/nb/messages.json index b9fd5fd32a..b76b824d2b 100644 --- a/apps/browser/src/_locales/nb/messages.json +++ b/apps/browser/src/_locales/nb/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/ne/messages.json b/apps/browser/src/_locales/ne/messages.json index 0700341d23..a580b3372a 100644 --- a/apps/browser/src/_locales/ne/messages.json +++ b/apps/browser/src/_locales/ne/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/nl/messages.json b/apps/browser/src/_locales/nl/messages.json index 1b29416c1f..39683ed769 100644 --- a/apps/browser/src/_locales/nl/messages.json +++ b/apps/browser/src/_locales/nl/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Animaties inschakelen" + }, "addAccount": { "message": "Account toevoegen" }, diff --git a/apps/browser/src/_locales/nn/messages.json b/apps/browser/src/_locales/nn/messages.json index 0700341d23..a580b3372a 100644 --- a/apps/browser/src/_locales/nn/messages.json +++ b/apps/browser/src/_locales/nn/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/or/messages.json b/apps/browser/src/_locales/or/messages.json index 0700341d23..a580b3372a 100644 --- a/apps/browser/src/_locales/or/messages.json +++ b/apps/browser/src/_locales/or/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/pl/messages.json b/apps/browser/src/_locales/pl/messages.json index bded75e089..d1d77df71a 100644 --- a/apps/browser/src/_locales/pl/messages.json +++ b/apps/browser/src/_locales/pl/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Dodaj konto" }, diff --git a/apps/browser/src/_locales/pt_BR/messages.json b/apps/browser/src/_locales/pt_BR/messages.json index 7829d7a59a..f15f3eb922 100644 --- a/apps/browser/src/_locales/pt_BR/messages.json +++ b/apps/browser/src/_locales/pt_BR/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Adicionar conta" }, diff --git a/apps/browser/src/_locales/pt_PT/messages.json b/apps/browser/src/_locales/pt_PT/messages.json index a40029dc1a..75c0d12f9e 100644 --- a/apps/browser/src/_locales/pt_PT/messages.json +++ b/apps/browser/src/_locales/pt_PT/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Ativar animações" + }, "addAccount": { "message": "Adicionar conta" }, diff --git a/apps/browser/src/_locales/ro/messages.json b/apps/browser/src/_locales/ro/messages.json index 2c0a570161..90dbfd33d2 100644 --- a/apps/browser/src/_locales/ro/messages.json +++ b/apps/browser/src/_locales/ro/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/ru/messages.json b/apps/browser/src/_locales/ru/messages.json index f115aa8032..5002161e96 100644 --- a/apps/browser/src/_locales/ru/messages.json +++ b/apps/browser/src/_locales/ru/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Включить анимацию" + }, "addAccount": { "message": "Добавить аккаунт" }, diff --git a/apps/browser/src/_locales/si/messages.json b/apps/browser/src/_locales/si/messages.json index 02ff1f43a3..edffa75671 100644 --- a/apps/browser/src/_locales/si/messages.json +++ b/apps/browser/src/_locales/si/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/sk/messages.json b/apps/browser/src/_locales/sk/messages.json index ef4f60b0c5..03d1eaf38a 100644 --- a/apps/browser/src/_locales/sk/messages.json +++ b/apps/browser/src/_locales/sk/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Povoliť animácie" + }, "addAccount": { "message": "Pridať účet" }, diff --git a/apps/browser/src/_locales/sl/messages.json b/apps/browser/src/_locales/sl/messages.json index f32fbca0a1..4a4bb31d9b 100644 --- a/apps/browser/src/_locales/sl/messages.json +++ b/apps/browser/src/_locales/sl/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/sr/messages.json b/apps/browser/src/_locales/sr/messages.json index 5cd284196f..eaf7a732e8 100644 --- a/apps/browser/src/_locales/sr/messages.json +++ b/apps/browser/src/_locales/sr/messages.json @@ -1080,7 +1080,7 @@ "message": "1ГБ шифровано складиште за прилоге." }, "premiumSignUpEmergency": { - "message": "Emergency access." + "message": "Хитан приступ." }, "premiumSignUpTwoStepOptions": { "message": "Приоритарне опције пријаве у два корака као што су YubiKey и Duo." @@ -1104,7 +1104,7 @@ "message": "Можете купити премијум претплату на bitwarden.com. Да ли желите да посетите веб сајт сада?" }, "premiumPurchaseAlertV2": { - "message": "You can purchase Premium from your account settings on the Bitwarden web app." + "message": "Можете да купите Премиум у подешавањима налога у веб апликацији Bitwarden." }, "premiumCurrentMember": { "message": "Ви сте премијум члан!" @@ -1113,7 +1113,7 @@ "message": "Хвала Вам за подршку Bitwarden-а." }, "premiumFeatures": { - "message": "Upgrade to premium and receive:" + "message": "Надоградите на премиум и добијте:" }, "premiumPrice": { "message": "Све за само $PRICE$ годишње!", @@ -1125,7 +1125,7 @@ } }, "premiumPriceV2": { - "message": "All for just $PRICE$ per year!", + "message": "Све то за само $PRICE$ годишње!", "placeholders": { "price": { "content": "$1", @@ -2314,7 +2314,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSendSuccessfully": { - "message": "Send created successfully!", + "message": "Send је успешно направљен!", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAvailability": { @@ -2328,7 +2328,7 @@ } }, "sendLinkCopied": { - "message": "Send link copied", + "message": "Send линк је копиран", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3970,10 +3970,10 @@ "message": "Ауто-попуњавање при учитавању странице?" }, "cardExpiredTitle": { - "message": "Expired card" + "message": "Картица је истекла" }, "cardExpiredMessage": { - "message": "If you've renewed it, update the card's information" + "message": "Ако сте је обновили, ажурирајте податке о картици" }, "cardDetails": { "message": "Детаљи картице" @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Омогући анимације" + }, "addAccount": { "message": "Додај налог" }, diff --git a/apps/browser/src/_locales/sv/messages.json b/apps/browser/src/_locales/sv/messages.json index b4b4a0adf2..f885a489b0 100644 --- a/apps/browser/src/_locales/sv/messages.json +++ b/apps/browser/src/_locales/sv/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Aktivera animationer" + }, "addAccount": { "message": "Lägg till konto" }, diff --git a/apps/browser/src/_locales/te/messages.json b/apps/browser/src/_locales/te/messages.json index 0700341d23..a580b3372a 100644 --- a/apps/browser/src/_locales/te/messages.json +++ b/apps/browser/src/_locales/te/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/th/messages.json b/apps/browser/src/_locales/th/messages.json index f630cc928e..490aa27d73 100644 --- a/apps/browser/src/_locales/th/messages.json +++ b/apps/browser/src/_locales/th/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/src/_locales/tr/messages.json b/apps/browser/src/_locales/tr/messages.json index 776d098664..9ecaf18c28 100644 --- a/apps/browser/src/_locales/tr/messages.json +++ b/apps/browser/src/_locales/tr/messages.json @@ -1125,7 +1125,7 @@ } }, "premiumPriceV2": { - "message": "All for just $PRICE$ per year!", + "message": "Bunların hepsi yılda sadece $PRICE$!", "placeholders": { "price": { "content": "$1", @@ -1852,14 +1852,14 @@ "message": "Bu kullanıcı adını kullan" }, "securePasswordGenerated": { - "message": "Secure password generated! Don't forget to also update your password on the website." + "message": "Güvenli parola üretildi. Web sitesindeki parolanızı da güncellemeyi unutmayın." }, "useGeneratorHelpTextPartOne": { - "message": "Use the generator", + "message": "Güçlü ve benzersiz bir parola üretmek için", "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": "üreteci kullanabilirsiniz", "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'" }, "vaultTimeoutAction": { @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Animasyonları etkinleştir" + }, "addAccount": { "message": "Hesap ekle" }, diff --git a/apps/browser/src/_locales/uk/messages.json b/apps/browser/src/_locales/uk/messages.json index 97158d37e4..de2f5d1853 100644 --- a/apps/browser/src/_locales/uk/messages.json +++ b/apps/browser/src/_locales/uk/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Увімкнути анімацію" + }, "addAccount": { "message": "Додати обліковий запис" }, diff --git a/apps/browser/src/_locales/vi/messages.json b/apps/browser/src/_locales/vi/messages.json index 77d8a9de14..eb1ac1037d 100644 --- a/apps/browser/src/_locales/vi/messages.json +++ b/apps/browser/src/_locales/vi/messages.json @@ -231,11 +231,11 @@ "message": "Bạn có thể thay đổi mật khẩu chính của mình trên Bitwarden bản web." }, "fingerprintPhrase": { - "message": "Fingerprint Phrase", + "message": "Cụm vân tay", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "yourAccountsFingerprint": { - "message": "Cụm từ mật khẩu của tài khoản của bạn", + "message": "Cụm vân tay của tài khoản của bạn", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "twoStepLogin": { @@ -542,7 +542,7 @@ "message": "Mật khẩu chính không hợp lệ" }, "vaultTimeout": { - "message": "Thời gian chờ của kho lưu trữ" + "message": "Thời gian chờ của kho" }, "lockNow": { "message": "Khóa ngay" @@ -934,7 +934,7 @@ "message": "Xuất từ" }, "exportVault": { - "message": "Xuất kho lưu trữ" + "message": "Xuất kho" }, "fileFormat": { "message": "Định dạng tập tin" @@ -968,7 +968,7 @@ "description": "WARNING (should stay in capitalized letters if the language permits)" }, "confirmVaultExport": { - "message": "Xác nhận xuất kho lưu trữ" + "message": "Xác nhận xuất kho" }, "exportWarningDesc": { "message": "Bản xuất này chứa dữ liệu kho bạn và không được mã hóa. Bạn không nên lưu trữ hay gửi tập tin đã xuất thông qua phương thức rủi ro (như email). Vui lòng xóa nó ngay lập tức khi bạn đã sử dụng xong." @@ -980,7 +980,7 @@ "message": "Khóa mã hóa tài khoản là duy nhất cho mỗi tài khoản Bitwarden, vì vậy bạn không thể nhập tệp xuất được mã hóa vào một tài khoản khác." }, "exportMasterPassword": { - "message": "Nhập mật khẩu chính để xuất kho lưu trữ của bạn." + "message": "Nhập mật khẩu chính để xuất kho của bạn." }, "shared": { "message": "Đã chia sẻ" @@ -1391,7 +1391,7 @@ "message": "Tạo và sao chép một mật khẩu ngẫu nhiên mới vào khay nhớ tạm" }, "commandLockVaultDesc": { - "message": "Khoá kho lưu trữ" + "message": "Khoá kho" }, "customFields": { "message": "Trường tùy chỉnh" @@ -1447,7 +1447,7 @@ "message": "Hiển thị biểu tượng bộ đếm" }, "badgeCounterDesc": { - "message": "Cho biết bạn có bao nhiêu lần đăng nhập cho trang web hiện tại." + "message": "Cho biết bạn có bao nhiêu thông tin đăng nhập cho trang web hiện tại." }, "cardholderName": { "message": "Tên chủ thẻ" @@ -1895,7 +1895,7 @@ "message": "Bạn đã có tài khoản?" }, "vaultTimeoutLogOutConfirmation": { - "message": "Việc đăng xuất sẽ loại bỏ tất cả truy cập vào kho lưu trữ của bạn và yêu cầu xác minh trực tuyến sau khi hết giai đoạn thời gian chờ. Bạn có chắc chắn muốn dùng cài đặt này không?" + "message": "Đăng xuất sẽ xóa tất cả quyền truy cập vào kho của bạn và yêu cầu xác minh 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 chờ" @@ -2027,7 +2027,7 @@ "message": "Xác minh đồng bộ máy tính" }, "desktopIntegrationVerificationText": { - "message": "Vui lòng xác minh rằng ứng dụng trên máy tính thấy vân tay này:" + "message": "Vui lòng xác minh ứng dụng trên máy tính hiển thị cụm vân tay này: " }, "desktopIntegrationDisabledTitle": { "message": "Tích hợp trình duyệt chưa được kích hoạt" @@ -2487,7 +2487,7 @@ "message": "Thời gian mở kho vượt quá giới hạn do tổ chức của bạn đặt ra." }, "vaultExportDisabled": { - "message": "Xuất kho lưu trữ không có sẵn" + "message": "Xuất kho không có sẵn" }, "personalVaultExportPolicyInEffect": { "message": "Các chính sách của tổ chức ngăn cản bạn xuất kho lưu trữ cá nhân của mình." @@ -2777,7 +2777,7 @@ "message": "Đang đăng nhập với tên" }, "notYou": { - "message": "Không phải bạn sao?" + "message": "Không phải bạn?" }, "newAroundHere": { "message": "Bạn mới tới đây sao?" @@ -2792,10 +2792,10 @@ "message": "Đăng nhập bằng thiết bị phải được thiết lập trong cài đặt của ứng dụng Bitwarden. Dùng cách khác?" }, "fingerprintPhraseHeader": { - "message": "Cụm từ dấu vân tay" + "message": "Cụm vân tay" }, "fingerprintMatchInfo": { - "message": "Vui lòng đảm bảo rằng bạn đã mở khoá kho và cụm từ mật khẩu khớp trên thiết bị khác." + "message": "Vui lòng đảm bảo rằng bạn đã mở khoá kho và cụm vân tay khớp trên thiết bị khác." }, "resendNotification": { "message": "Gửi lại thông báo" @@ -3620,7 +3620,7 @@ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior" }, "overrideDefaultBrowserAutoFillSettings": { - "message": "Đặt Bitwarden làm trình quản lý mật khẩu mặc định của bạn", + "message": "Bitwarden làm trình quản lý mật khẩu mặc định", "description": "Label for the setting that allows overriding the default browser autofill settings" }, "privacyPermissionAdditionNotGrantedTitle": { @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Thêm tài khoản" }, diff --git a/apps/browser/src/_locales/zh_CN/messages.json b/apps/browser/src/_locales/zh_CN/messages.json index d99bb8e959..c2ed27b25a 100644 --- a/apps/browser/src/_locales/zh_CN/messages.json +++ b/apps/browser/src/_locales/zh_CN/messages.json @@ -1125,7 +1125,7 @@ } }, "premiumPriceV2": { - "message": "全部仅需 $PRICE$ /年!", + "message": "全部仅需 $PRICE$ 每年!", "placeholders": { "price": { "content": "$1", @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "启用动画" + }, "addAccount": { "message": "添加账户" }, diff --git a/apps/browser/src/_locales/zh_TW/messages.json b/apps/browser/src/_locales/zh_TW/messages.json index a7a264ad47..470fd45d2d 100644 --- a/apps/browser/src/_locales/zh_TW/messages.json +++ b/apps/browser/src/_locales/zh_TW/messages.json @@ -3987,6 +3987,9 @@ } } }, + "enableAnimations": { + "message": "Enable animations" + }, "addAccount": { "message": "Add account" }, diff --git a/apps/browser/store/locales/fi/copy.resx b/apps/browser/store/locales/fi/copy.resx index 076a724bdf..3056b71f87 100644 --- a/apps/browser/store/locales/fi/copy.resx +++ b/apps/browser/store/locales/fi/copy.resx @@ -121,7 +121,7 @@ Bitwarden Salasanahallinta - Kotona, töissä tai reissussa, Bitwarden suojaa helposti salasanasi, suojausavaimesi ja arkaluonteiset tietosi. + Kotona, töissä tai reissussa, Bitwarden suojaa salasanasi, pääsyavaimesi ja arkaluonteiset tietosi helposti. Muun muassa PCMag, WIRED, The Verge, CNET sekä G2 ovat nimenneet Bitwardenin parhaaksi salasanahallinnaksi! @@ -147,10 +147,10 @@ Maailmanluoka salaus: Salasanat on suojattu edistyneellä päästä päähän salauksella (AES-256 bit, suolattu hajautus sekä PBKDF2 SHA-256), joten tietosi pysyvät turvassa ja yksityisinä. Riippumattomat auditoinnit -Bitwarden teetättää säännöllisesti tunnettujen tietoturvayritysten suorittamia kattavia riippumattomia tietoturva-arviointeja. Näissä vuotuisissa auditoinneissa arvioidaan lähdekoodia ja suoritetaan murtotestausta Bitwardenin IP-osoittelle, palvelimille ja verkkosovelluksille. +Bitwarden teetättää säännöllisesti kattavia riippumattomia tietoturva-arviointeja tunnettuilla tietoturvayrityksillä. Näissä vuotuisissa auditoinneissa arvioidaan lähdekoodia ja suoritetaan murtotestausta Bitwardenin IP-osoitteille, palvelimille ja verkkosovelluksille. Edistynyt kaksivaiheinen tunnistautuminen -Suojaa kirjautumistietosi riippumattomalla todennussovelluksella, sähköpostikoodeilla tai FIDO2 WEBAuthn -standardin mukaisilla fyysisillä tai ohjelmallisilla suojausavaimilla. +Suojaa kirjautumistietosi riippumattomalla todennussovelluksella, sähköpostikoodeilla, tai FIDO2 WEBAuthn -standardin mukaisilla tunnistustavoilla kuten fyysisillä suojausavaimilla tai pääsyavaimilla. Bitwarden Send Välitä tietoja muille suoraan, päästä päähän salausta menettämättä ja rajoitaen niiden näkyvyyttä. @@ -169,7 +169,7 @@ Bitwardenin päästä päähän salatut käyttäjätietojen hallintaratkaisut ta - Kotona, töissä tai reissussa, Bitwarden suojaa helposti salasanasi, suojausavaimesi ja arkaluonteiset tietosi. + Kotona, töissä tai reissussa, Bitwarden suojaa salasanasi, pääsyavaimesi ja arkaluonteiset tietosi helposti. Synkronoi ja hallitse holviasi useilla laitteilla From 722c4737fc874ad8282cd9fc944526d7c04e0e8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ch=C4=99ci=C5=84ski?= Date: Mon, 26 Aug 2024 15:00:31 +0200 Subject: [PATCH 35/40] Send Slack notifications for DEV env (#10632) --- .github/workflows/deploy-web.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-web.yml b/.github/workflows/deploy-web.yml index 27475709b6..7551538b3a 100644 --- a/.github/workflows/deploy-web.yml +++ b/.github/workflows/deploy-web.yml @@ -256,7 +256,7 @@ jobs: - setup - artifact-check runs-on: ubuntu-22.04 - if: ${{ always() && contains( inputs.environment , 'QA' ) }} + if: ${{ always() && ( contains( inputs.environment , 'QA' ) || contains( inputs.environment , 'DEV' ) ) }} outputs: channel_id: ${{ steps.slack-message.outputs.channel_id }} ts: ${{ steps.slack-message.outputs.ts }} @@ -407,7 +407,7 @@ jobs: notify: name: Notify Slack with result runs-on: ubuntu-22.04 - if: ${{ always() && contains( inputs.environment , 'QA' ) }} + if: ${{ always() && ( contains( inputs.environment , 'QA' ) || contains( inputs.environment , 'DEV' ) ) }} needs: - setup - notify-start From 86f3a679aefdbd54eacab3b7b498fc0e1f5925bb Mon Sep 17 00:00:00 2001 From: Bernd Schoolmann Date: Mon, 26 Aug 2024 15:13:45 +0200 Subject: [PATCH 36/40] [PM-4530] Fix sso in snap desktop (#10548) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add localhost callback service for sso * Fix redirect behaviour * Update apps/desktop/src/app/app.component.ts Co-authored-by: Daniel García * Fix incorrect http response for sso callback * Add sso error * Update error message --------- Co-authored-by: Daniel García --- apps/desktop/desktop_native/napi/index.d.ts | 1 - apps/desktop/electron-builder.json | 2 +- apps/desktop/src/app/app.component.ts | 13 +- .../desktop/src/auth/login/login.component.ts | 37 +++++ apps/desktop/src/locales/en/messages.json | 13 +- apps/desktop/src/main.ts | 2 + apps/desktop/src/platform/preload.ts | 10 +- .../sso-localhost-callback.service.ts | 129 ++++++++++++++++++ .../src/auth/components/sso.component.ts | 5 + 9 files changed, 202 insertions(+), 10 deletions(-) create mode 100644 apps/desktop/src/platform/services/sso-localhost-callback.service.ts diff --git a/apps/desktop/desktop_native/napi/index.d.ts b/apps/desktop/desktop_native/napi/index.d.ts index dc3cc7ec0b..deaf6b8e57 100644 --- a/apps/desktop/desktop_native/napi/index.d.ts +++ b/apps/desktop/desktop_native/napi/index.d.ts @@ -47,7 +47,6 @@ export namespace processisolations { export function isCoreDumpingDisabled(): Promise export function disableMemoryAccess(): Promise } - export namespace powermonitors { export function onLock(callback: (err: Error | null, ) => any): Promise export function isLockMonitorAvailable(): Promise diff --git a/apps/desktop/electron-builder.json b/apps/desktop/electron-builder.json index 15139a9929..aded8cc391 100644 --- a/apps/desktop/electron-builder.json +++ b/apps/desktop/electron-builder.json @@ -234,7 +234,7 @@ "autoStart": true, "base": "core22", "confinement": "strict", - "plugs": ["default", "password-manager-service"], + "plugs": ["default", "network", "network-bind", "password-manager-service"], "stagePackages": ["default"] }, "protocols": [ diff --git a/apps/desktop/src/app/app.component.ts b/apps/desktop/src/app/app.component.ts index a311ed2b86..089eb1c027 100644 --- a/apps/desktop/src/app/app.component.ts +++ b/apps/desktop/src/app/app.component.ts @@ -300,13 +300,19 @@ export class AppComponent implements OnInit, OnDestroy { this.systemService.clearClipboard(message.clipboardValue, message.clearMs); } break; - case "ssoCallback": + case "ssoCallback": { + const queryParams = { + code: message.code, + state: message.state, + redirectUri: message.redirectUri ?? "bitwarden://sso-callback", + }; // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling. // eslint-disable-next-line @typescript-eslint/no-floating-promises this.router.navigate(["sso"], { - queryParams: { code: message.code, state: message.state }, + queryParams: queryParams, }); break; + } case "premiumRequired": { const premiumConfirmed = await this.dialogService.openSimpleDialog({ title: { key: "premiumRequired" }, @@ -455,6 +461,9 @@ export class AppComponent implements OnInit, OnDestroy { case "deepLink": this.processDeepLink(message.urlString); break; + case "launchUri": + this.platformUtilsService.launchUri(message.url); + break; } }); }); diff --git a/apps/desktop/src/auth/login/login.component.ts b/apps/desktop/src/auth/login/login.component.ts index c5ee9a0760..68b25b8b7e 100644 --- a/apps/desktop/src/auth/login/login.component.ts +++ b/apps/desktop/src/auth/login/login.component.ts @@ -23,6 +23,7 @@ import { LogService } from "@bitwarden/common/platform/abstractions/log.service" import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { StateService } from "@bitwarden/common/platform/abstractions/state.service"; +import { Utils } from "@bitwarden/common/platform/misc/utils"; import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction"; import { PasswordGenerationServiceAbstraction } from "@bitwarden/generator-legacy"; @@ -187,4 +188,40 @@ export class LoginComponent extends BaseLoginComponent implements OnInit, OnDest const email = this.loggedEmail; document.getElementById(email == null || email === "" ? "email" : "masterPassword")?.focus(); } + + async launchSsoBrowser(clientId: string, ssoRedirectUri: string) { + if (!ipc.platform.isAppImage && !ipc.platform.isSnapStore && !ipc.platform.isDev) { + return super.launchSsoBrowser(clientId, ssoRedirectUri); + } + + // Save off email for SSO + await this.ssoLoginService.setSsoEmail(this.formGroup.value.email); + + // Generate necessary sso params + const passwordOptions: any = { + type: "password", + length: 64, + uppercase: true, + lowercase: true, + numbers: true, + special: false, + }; + const state = await this.passwordGenerationService.generatePassword(passwordOptions); + const ssoCodeVerifier = await this.passwordGenerationService.generatePassword(passwordOptions); + const codeVerifierHash = await this.cryptoFunctionService.hash(ssoCodeVerifier, "sha256"); + const codeChallenge = Utils.fromBufferToUrlB64(codeVerifierHash); + + // Save sso params + await this.ssoLoginService.setSsoState(state); + await this.ssoLoginService.setCodeVerifier(ssoCodeVerifier); + try { + await ipc.platform.localhostCallbackService.openSsoPrompt(codeChallenge, state); + } catch (err) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccured"), + this.i18nService.t("ssoError"), + ); + } + } } diff --git a/apps/desktop/src/locales/en/messages.json b/apps/desktop/src/locales/en/messages.json index 84cfab039f..1bd3718550 100644 --- a/apps/desktop/src/locales/en/messages.json +++ b/apps/desktop/src/locales/en/messages.json @@ -738,10 +738,10 @@ "selfHostedBaseUrlHint": { "message": "Specify the base URL of your on-premises hosted Bitwarden installation. Example: https://bitwarden.company.com" }, - "selfHostedCustomEnvHeader" :{ + "selfHostedCustomEnvHeader": { "message": "For advanced configuration, you can specify the base URL of each service independently." }, - "selfHostedEnvFormInvalid" :{ + "selfHostedEnvFormInvalid": { "message": "You must add either the base Server URL or at least one custom environment." }, "customEnvironment": { @@ -1279,10 +1279,10 @@ } } }, - "errorRefreshingAccessToken":{ + "errorRefreshingAccessToken": { "message": "Access Token Refresh Error" }, - "errorRefreshingAccessTokenDesc":{ + "errorRefreshingAccessTokenDesc": { "message": "No refresh token or API keys found. Please try logging out and logging back in." }, "help": { @@ -1668,7 +1668,7 @@ "message": "Your organization requires you to set a master password.", "description": "Used as a card title description on the set password page to explain why the user is there" }, - "verificationRequired" : { + "verificationRequired": { "message": "Verification required", "description": "Default title for the user verification dialog." }, @@ -3052,5 +3052,8 @@ }, "textSends": { "message": "Text Sends" + }, + "ssoError": { + "message": "No free ports could be found for the sso login." } } diff --git a/apps/desktop/src/main.ts b/apps/desktop/src/main.ts index 816d317f41..b77cc72269 100644 --- a/apps/desktop/src/main.ts +++ b/apps/desktop/src/main.ts @@ -41,6 +41,7 @@ import { ElectronLogMainService } from "./platform/services/electron-log.main.se import { ElectronStorageService } from "./platform/services/electron-storage.service"; import { EphemeralValueStorageService } from "./platform/services/ephemeral-value-storage.main.service"; import { I18nMainService } from "./platform/services/i18n.main.service"; +import { SSOLocalhostCallbackService } from "./platform/services/sso-localhost-callback.service"; import { ElectronMainMessagingService } from "./services/electron-main-messaging.service"; import { isMacAppStore } from "./utils"; @@ -227,6 +228,7 @@ export class Main { this.clipboardMain.init(); new EphemeralValueStorageService(); + new SSOLocalhostCallbackService(this.environmentService, this.messagingService); } bootstrap() { diff --git a/apps/desktop/src/platform/preload.ts b/apps/desktop/src/platform/preload.ts index 163ef9ae22..c1c56c5522 100644 --- a/apps/desktop/src/platform/preload.ts +++ b/apps/desktop/src/platform/preload.ts @@ -11,7 +11,7 @@ import { UnencryptedMessageResponse, } from "../models/native-messaging"; import { BiometricMessage, BiometricAction } from "../types/biometric-message"; -import { isDev, isFlatpak, isMacAppStore, isSnapStore, isWindowsStore } from "../utils"; +import { isAppImage, isDev, isFlatpak, isMacAppStore, isSnapStore, isWindowsStore } from "../utils"; import { ClipboardWriteMessage } from "./types/clipboard"; @@ -119,6 +119,12 @@ const ephemeralStore = { ipcRenderer.invoke("deleteEphemeralValue", key), }; +const localhostCallbackService = { + openSsoPrompt: (codeChallenge: string, state: string): Promise => { + return ipcRenderer.invoke("openSsoPrompt", { codeChallenge, state }); + }, +}; + export default { versions: { app: (): Promise => ipcRenderer.invoke("appVersion"), @@ -129,6 +135,7 @@ export default { isWindowsStore: isWindowsStore(), isFlatpak: isFlatpak(), isSnapStore: isSnapStore(), + isAppImage: isAppImage(), reloadProcess: () => ipcRenderer.send("reload-process"), log: (level: LogLevelType, message?: any, ...optionalParams: any[]) => ipcRenderer.invoke("ipc.log", { level, message, optionalParams }), @@ -179,6 +186,7 @@ export default { nativeMessaging, crypto, ephemeralStore, + localhostCallbackService, }; function deviceType(): DeviceType { diff --git a/apps/desktop/src/platform/services/sso-localhost-callback.service.ts b/apps/desktop/src/platform/services/sso-localhost-callback.service.ts new file mode 100644 index 0000000000..5efe73e2ad --- /dev/null +++ b/apps/desktop/src/platform/services/sso-localhost-callback.service.ts @@ -0,0 +1,129 @@ +import * as http from "http"; + +import { ipcMain } from "electron"; +import { firstValueFrom } from "rxjs"; + +import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service"; +import { MessageSender } from "@bitwarden/common/platform/messaging"; + +/** + * The SSO Localhost login service uses a local host listener as fallback in case scheme handling deeplinks does not work. + * This way it is possible to log in with SSO on appimage, snap, and electron dev using the same methods that the cli uses. + */ +export class SSOLocalhostCallbackService { + private ssoRedirectUri = ""; + + constructor( + private environmentService: EnvironmentService, + private messagingService: MessageSender, + ) { + ipcMain.handle("openSsoPrompt", async (event, { codeChallenge, state }) => { + const { ssoCode } = await this.openSsoPrompt(codeChallenge, state); + this.messagingService.send("ssoCallback", { + code: ssoCode, + state: state, + redirectUri: this.ssoRedirectUri, + }); + }); + } + + private async openSsoPrompt( + codeChallenge: string, + state: string, + ): Promise<{ ssoCode: string; orgIdentifier: string }> { + const env = await firstValueFrom(this.environmentService.environment$); + + return new Promise((resolve, reject) => { + const callbackServer = http.createServer((req, res) => { + // after 5 minutes, close the server + setTimeout( + () => { + callbackServer.close(() => reject()); + }, + 5 * 60 * 1000, + ); + + const urlString = "http://localhost" + req.url; + const url = new URL(urlString); + const code = url.searchParams.get("code"); + const receivedState = url.searchParams.get("state"); + const orgIdentifier = this.getOrgIdentifierFromState(receivedState); + res.setHeader("Content-Type", "text/html"); + if (code != null && receivedState != null && this.checkState(receivedState, state)) { + res.writeHead(200); + res.end( + "Success | Bitwarden Desktop" + + "

Successfully authenticated with the Bitwarden desktop app

" + + "

You may now close this tab and return to the app.

" + + "", + ); + callbackServer.close(() => + resolve({ + ssoCode: code, + orgIdentifier: orgIdentifier, + }), + ); + } else { + res.writeHead(400); + res.end( + "Failed | Bitwarden Desktop" + + "

Something went wrong logging into the Bitwarden desktop app

" + + "

You may now close this tab and return to the app.

" + + "", + ); + callbackServer.close(() => reject()); + } + }); + let foundPort = false; + const webUrl = env.getWebVaultUrl(); + for (let port = 8065; port <= 8070; port++) { + try { + this.ssoRedirectUri = "http://localhost:" + port; + callbackServer.listen(port, () => { + this.messagingService.send("launchUri", { + url: + webUrl + + "/#/sso?clientId=" + + "desktop" + + "&redirectUri=" + + encodeURIComponent(this.ssoRedirectUri) + + "&state=" + + state + + "&codeChallenge=" + + codeChallenge, + }); + }); + foundPort = true; + break; + } catch { + // Ignore error since we run the same command up to 5 times. + } + } + if (!foundPort) { + reject(); + } + }); + } + + private getOrgIdentifierFromState(state: string): string { + if (state === null || state === undefined) { + return null; + } + + const stateSplit = state.split("_identifier="); + return stateSplit.length > 1 ? stateSplit[1] : null; + } + + private checkState(state: string, checkState: string): boolean { + if (state === null || state === undefined) { + return false; + } + if (checkState === null || checkState === undefined) { + return false; + } + + const stateSplit = state.split("_identifier="); + const checkStateSplit = checkState.split("_identifier="); + return stateSplit[0] === checkStateSplit[0]; + } +} diff --git a/libs/angular/src/auth/components/sso.component.ts b/libs/angular/src/auth/components/sso.component.ts index aa2532afc8..cc105222c2 100644 --- a/libs/angular/src/auth/components/sso.component.ts +++ b/libs/angular/src/auth/components/sso.component.ts @@ -81,6 +81,11 @@ export class SsoComponent implements OnInit { const state = await this.ssoLoginService.getSsoState(); await this.ssoLoginService.setCodeVerifier(null); await this.ssoLoginService.setSsoState(null); + + if (qParams.redirectUri != null) { + this.redirectUri = qParams.redirectUri; + } + if ( qParams.code != null && codeVerifier != null && From 53e69e6dc6a05435730d59770ef28167f26a3f93 Mon Sep 17 00:00:00 2001 From: Jonathan Prusik Date: Mon, 26 Aug 2024 10:03:32 -0400 Subject: [PATCH 37/40] [PM-9673] Autofocus newly added input in the excluded domains view (#10641) * autofocus newly added input in the excluded domains view * update subscription --- .../popup/settings/autofill.component.ts | 22 +++++++++---------- .../settings/excluded-domains.component.html | 1 + .../settings/excluded-domains.component.ts | 20 +++++++++++++++-- 3 files changed, 30 insertions(+), 13 deletions(-) diff --git a/apps/browser/src/autofill/popup/settings/autofill.component.ts b/apps/browser/src/autofill/popup/settings/autofill.component.ts index dc6a4a0880..a03a37a5d0 100644 --- a/apps/browser/src/autofill/popup/settings/autofill.component.ts +++ b/apps/browser/src/autofill/popup/settings/autofill.component.ts @@ -78,8 +78,8 @@ export class AutofillComponent implements OnInit { * Default values set here are used in component state operations * until corresponding stored settings have loaded on init. */ - protected canOverrideBrowserAutofillSetting = false; - protected defaultBrowserAutofillDisabled = false; + protected canOverrideBrowserAutofillSetting: boolean = false; + protected defaultBrowserAutofillDisabled: boolean = false; protected inlineMenuVisibility: InlineMenuVisibilitySetting = AutofillOverlayVisibility.OnFieldFocus; protected browserClientVendor: BrowserClientVendor = BrowserClientVendors.Unknown; @@ -90,21 +90,21 @@ export class AutofillComponent implements OnInit { protected autofillOnPageLoadFromPolicy$ = this.autofillSettingsService.activateAutofillOnPageLoadFromPolicy$; - enableAutofillOnPageLoad = false; - enableInlineMenu = false; - enableInlineMenuOnIconSelect = false; - autofillOnPageLoadDefault = false; + enableAutofillOnPageLoad: boolean = false; + enableInlineMenu: boolean = false; + enableInlineMenuOnIconSelect: boolean = false; + autofillOnPageLoadDefault: boolean = false; autofillOnPageLoadOptions: { name: string; value: boolean }[]; - enableContextMenuItem = false; - enableAutoTotpCopy = false; + enableContextMenuItem: boolean = false; + enableAutoTotpCopy: boolean = false; clearClipboard: ClearClipboardDelaySetting; clearClipboardOptions: { name: string; value: ClearClipboardDelaySetting }[]; defaultUriMatch: UriMatchStrategySetting = UriMatchStrategy.Domain; uriMatchOptions: { name: string; value: UriMatchStrategySetting }[]; - showCardsCurrentTab = true; - showIdentitiesCurrentTab = true; + showCardsCurrentTab: boolean = true; + showIdentitiesCurrentTab: boolean = true; autofillKeyboardHelperText: string; - accountSwitcherEnabled = false; + accountSwitcherEnabled: boolean = false; constructor( private i18nService: I18nService, diff --git a/apps/browser/src/autofill/popup/settings/excluded-domains.component.html b/apps/browser/src/autofill/popup/settings/excluded-domains.component.html index d3c76a653e..62d8bc5997 100644 --- a/apps/browser/src/autofill/popup/settings/excluded-domains.component.html +++ b/apps/browser/src/autofill/popup/settings/excluded-domains.component.html @@ -27,6 +27,7 @@ }}
>; + accountSwitcherEnabled = false; dataIsPristine = true; excludedDomainsState: string[] = []; @@ -63,6 +65,8 @@ export class ExcludedDomainsComponent implements OnInit, OnDestroy { // How many fields should be non-editable before editable fields fieldsEditThreshold: number = 0; + private destroy$ = new Subject(); + constructor( private domainSettingsService: DomainSettingsService, private i18nService: I18nService, @@ -84,10 +88,22 @@ export class ExcludedDomainsComponent implements OnInit, OnDestroy { // Do not allow the first x (pre-existing) fields to be edited this.fieldsEditThreshold = this.storedExcludedDomains.length; + + this.uriInputElements.changes.pipe(takeUntil(this.destroy$)).subscribe(({ last }) => { + this.focusNewUriInput(last); + }); } ngOnDestroy() { this.broadcasterService.unsubscribe(BroadcasterSubscriptionId); + this.destroy$.next(); + this.destroy$.complete(); + } + + focusNewUriInput(elementRef: ElementRef) { + if (elementRef?.nativeElement) { + elementRef.nativeElement.focus(); + } } async addNewDomain() { From f7c4a82773b60975f2facd763b9ec62ae93f8a4d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:37:33 -0400 Subject: [PATCH 38/40] [deps] DevOps: Update docker/build-push-action action to v6 (#10597) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build-web.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-web.yml b/.github/workflows/build-web.yml index 8576fb6760..c93a61e8a2 100644 --- a/.github/workflows/build-web.yml +++ b/.github/workflows/build-web.yml @@ -234,7 +234,7 @@ jobs: run: echo "name=$_AZ_REGISTRY/${PROJECT_NAME}:${IMAGE_TAG}" >> $GITHUB_OUTPUT - name: Build Docker image - uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5.1.0 + uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85 # v6.7.0 with: context: apps/web file: apps/web/Dockerfile From b0636bb39d9c231e4047f6b458017def3128f2e0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:38:10 -0400 Subject: [PATCH 39/40] [deps] DevOps: Update crowdin/github-action action to v2 (#10596) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build-browser.yml | 2 +- .github/workflows/build-desktop.yml | 2 +- .github/workflows/build-web.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-browser.yml b/.github/workflows/build-browser.yml index 3c99f610ce..a8660bad18 100644 --- a/.github/workflows/build-browser.yml +++ b/.github/workflows/build-browser.yml @@ -382,7 +382,7 @@ jobs: secrets: "crowdin-api-token" - name: Upload Sources - uses: crowdin/github-action@c953b17499daa6be3e5afbf7a63616fb02d8b18d # v1.19.0 + uses: crowdin/github-action@6ed209d411599a981ccb978df3be9dc9b8a81699 # v2.1.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml index a8ee1091a2..c933ea304c 100644 --- a/.github/workflows/build-desktop.yml +++ b/.github/workflows/build-desktop.yml @@ -1248,7 +1248,7 @@ jobs: secrets: "crowdin-api-token" - name: Upload Sources - uses: crowdin/github-action@c953b17499daa6be3e5afbf7a63616fb02d8b18d # v1.19.0 + uses: crowdin/github-action@6ed209d411599a981ccb978df3be9dc9b8a81699 # v2.1.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} diff --git a/.github/workflows/build-web.yml b/.github/workflows/build-web.yml index c93a61e8a2..46e65e8924 100644 --- a/.github/workflows/build-web.yml +++ b/.github/workflows/build-web.yml @@ -270,7 +270,7 @@ jobs: secrets: "crowdin-api-token" - name: Upload Sources - uses: crowdin/github-action@c953b17499daa6be3e5afbf7a63616fb02d8b18d # v1.19.0 + uses: crowdin/github-action@6ed209d411599a981ccb978df3be9dc9b8a81699 # v2.1.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} From 991155d3a5b91f1ca56eb8dfc1b1443ee5dae095 Mon Sep 17 00:00:00 2001 From: Victoria League Date: Mon, 26 Aug 2024 11:43:03 -0400 Subject: [PATCH 40/40] [CL-318] Ensure item content truncates when the 'start' slot is populated (#10727) --- libs/components/src/item/item-content.component.html | 2 +- libs/components/src/item/item.stories.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/components/src/item/item-content.component.html b/libs/components/src/item/item-content.component.html index da69c79c1e..da45c8b3b6 100644 --- a/libs/components/src/item/item-content.component.html +++ b/libs/components/src/item/item-content.component.html @@ -1,7 +1,7 @@
-
+
diff --git a/libs/components/src/item/item.stories.ts b/libs/components/src/item/item.stories.ts index 5198d7efa6..e8accfd693 100644 --- a/libs/components/src/item/item.stories.ts +++ b/libs/components/src/item/item.stories.ts @@ -115,6 +115,7 @@ export const TextOverflow: Story = { template: /*html*/ ` + Helloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! Worlddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd!