diff --git a/.github/workflows/build-browser.yml b/.github/workflows/build-browser.yml index 05b89d66c33..b1242ee23ed 100644 --- a/.github/workflows/build-browser.yml +++ b/.github/workflows/build-browser.yml @@ -114,9 +114,6 @@ jobs: - locales-test env: _BUILD_NUMBER: ${{ needs.setup.outputs.adj_build_number }} - defaults: - run: - working-directory: apps/browser steps: - name: Checkout repo uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 @@ -139,19 +136,6 @@ jobs: npm --version node-gyp --version - - name: NPM setup - run: npm ci - working-directory: ./ - - - name: Build - run: npm run dist - - # - name: Build Manifest v3 - # run: npm run dist:mv3 - - - name: Gulp - run: gulp ci - - name: Build sources for reviewers run: | # Include hidden files in glob copy @@ -174,55 +158,70 @@ jobs: cp -r libs/* browser-source/libs zip -r browser-source.zip browser-source - working-directory: ./ + + - name: NPM setup + run: npm ci + working-directory: browser-source/ + + - name: Build + run: npm run dist + working-directory: browser-source/apps/browser + + # - name: Build Manifest v3 + # run: npm run dist:mv3 + # working-directory: browser-source/apps/browser + + - name: Gulp + run: gulp ci + working-directory: browser-source/apps/browser - name: Upload Opera artifact uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: name: dist-opera-${{ env._BUILD_NUMBER }}.zip - path: apps/browser/dist/dist-opera.zip + path: browser-source/apps/browser/dist/dist-opera.zip if-no-files-found: error # - name: Upload Opera MV3 artifact # uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 # with: # name: dist-opera-MV3-${{ env._BUILD_NUMBER }}.zip - # path: apps/browser/dist/dist-opera-mv3.zip + # path: browser-source/apps/browser/dist/dist-opera-mv3.zip # if-no-files-found: error - name: Upload Chrome artifact uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: name: dist-chrome-${{ env._BUILD_NUMBER }}.zip - path: apps/browser/dist/dist-chrome.zip + path: browser-source/apps/browser/dist/dist-chrome.zip if-no-files-found: error # - name: Upload Chrome MV3 artifact # uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 # with: # name: dist-chrome-MV3-${{ env._BUILD_NUMBER }}.zip - # path: apps/browser/dist/dist-chrome-mv3.zip + # path: browser-source/apps/browser/dist/dist-chrome-mv3.zip # if-no-files-found: error - name: Upload Firefox artifact uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: name: dist-firefox-${{ env._BUILD_NUMBER }}.zip - path: apps/browser/dist/dist-firefox.zip + path: browser-source/apps/browser/dist/dist-firefox.zip if-no-files-found: error - name: Upload Edge artifact uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: name: dist-edge-${{ env._BUILD_NUMBER }}.zip - path: apps/browser/dist/dist-edge.zip + path: browser-source/apps/browser/dist/dist-edge.zip if-no-files-found: error # - name: Upload Edge MV3 artifact # uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 # with: # name: dist-edge-MV3-${{ env._BUILD_NUMBER }}.zip - # path: apps/browser/dist/dist-edge-mv3.zip + # path: browser-source/apps/browser/dist/dist-edge-mv3.zip # if-no-files-found: error - name: Upload browser source @@ -237,7 +236,7 @@ jobs: uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: name: coverage-${{ env._BUILD_NUMBER }}.zip - path: apps/browser/coverage/coverage-${{ env._BUILD_NUMBER }}.zip + path: browser-source/apps/browser/coverage/coverage-${{ env._BUILD_NUMBER }}.zip if-no-files-found: error build-safari: diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index eda9f8d0f7d..e47a2f40f53 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -44,4 +44,4 @@ jobs: storybookBuildDir: ./storybook-static exitOnceUploaded: true onlyChanged: true - externals: "[\"libs/components/**/*.scss\", \"libs/components/tailwind.config*.js\"]" + externals: "[\"libs/components/**/*.scss\", \"libs/components/**/*.css\", \"libs/components/tailwind.config*.js\"]" diff --git a/apps/browser/src/_locales/ar/messages.json b/apps/browser/src/_locales/ar/messages.json index 6bb0efb8fd3..d48c573d5b4 100644 --- a/apps/browser/src/_locales/ar/messages.json +++ b/apps/browser/src/_locales/ar/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "جاري تصدير الخزنة الشخصية" }, - "exportingPersonalVaultDescription": { - "message": "سيتم تصدير فقط عناصر الخزنة الشخصية المرتبطة بـ $EMAIL$. لن يتم إدراج عناصر خزنة المؤسسة.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/az/messages.json b/apps/browser/src/_locales/az/messages.json index 4ee8ab8edaf..774ca11ecf0 100644 --- a/apps/browser/src/_locales/az/messages.json +++ b/apps/browser/src/_locales/az/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Şəxsi anbarın ixracı" }, - "exportingPersonalVaultDescription": { - "message": "Yalnız $EMAIL$ ilə əlaqəli şəxsi anbar elementləri ixrac ediləcək. Təşkilat anbar elementləri daxil edilmir.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Server Versiyası" }, "selfHostedServer": { - "message": "self-hosted" + "message": "öz-özünə sahiblik edən" }, "thirdParty": { "message": "Üçüncü tərəf" diff --git a/apps/browser/src/_locales/be/messages.json b/apps/browser/src/_locales/be/messages.json index e57ea2eff54..ba72d949b90 100644 --- a/apps/browser/src/_locales/be/messages.json +++ b/apps/browser/src/_locales/be/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Экспартаванне асабістага сховішча" }, - "exportingPersonalVaultDescription": { - "message": "Будуць экспартаваны толькі асабістыя элементы сховішча, якія звязаны з $EMAIL$. Элементы сховішча арганізацыі не будуць уключаны.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/bg/messages.json b/apps/browser/src/_locales/bg/messages.json index 9e4d696193e..ceab700e46a 100644 --- a/apps/browser/src/_locales/bg/messages.json +++ b/apps/browser/src/_locales/bg/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Изнасяне на личния трезор" }, - "exportingPersonalVaultDescription": { - "message": "Ще бъдат изнесени само записите от личния трезор свързан с $EMAIL$. Записите в трезора на организацията няма да бъдат включени.", + "exportingIndividualVaultDescription": { + "message": "Ще бъдат изнесени само отделните записи в трезора, които са свързани с $EMAIL$. Записите от трезора на организацията няма да бъдат включени. Ще бъде изнесена само информацията за записите от трезора, а свързаните прикачени елементи няма да бъдат включени.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Версия на сървъра" }, "selfHostedServer": { - "message": "self-hosted" + "message": "собствен хостинг" }, "thirdParty": { "message": "Third-party" diff --git a/apps/browser/src/_locales/bn/messages.json b/apps/browser/src/_locales/bn/messages.json index 261ceea180d..db189fbcf0b 100644 --- a/apps/browser/src/_locales/bn/messages.json +++ b/apps/browser/src/_locales/bn/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/bs/messages.json b/apps/browser/src/_locales/bs/messages.json index 5b27e7186d4..e10d4d29a8c 100644 --- a/apps/browser/src/_locales/bs/messages.json +++ b/apps/browser/src/_locales/bs/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/ca/messages.json b/apps/browser/src/_locales/ca/messages.json index 7a7edc3d896..08bef1a50c4 100644 --- a/apps/browser/src/_locales/ca/messages.json +++ b/apps/browser/src/_locales/ca/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "S'està exportant la caixa forta personal" }, - "exportingPersonalVaultDescription": { - "message": "Només s'exportaran els elements personals de la caixa forta associats a $EMAIL$. Els elements de la caixa forta de l'organització no s'inclouran.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Versió del servidor" }, "selfHostedServer": { - "message": "self-hosted" + "message": "autoallotjat" }, "thirdParty": { "message": "Tercers" diff --git a/apps/browser/src/_locales/cs/messages.json b/apps/browser/src/_locales/cs/messages.json index 253aab484b7..10f97ce9311 100644 --- a/apps/browser/src/_locales/cs/messages.json +++ b/apps/browser/src/_locales/cs/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exportování osobního trezoru" }, - "exportingPersonalVaultDescription": { - "message": "Budou exportovány jen osobní položky trezoru spojené s účtem $EMAIL$. Nebudou zahrnuty položky trezoru v organizaci.", + "exportingIndividualVaultDescription": { + "message": "Budou exportovány jen osobní položky trezoru spojené s $EMAIL$. Položky trezoru organizace nebudou zahrnuty. Budou exportovány jen informace o položkách trezoru a nebudou zahrnuty související přílohy.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Verze serveru" }, "selfHostedServer": { - "message": "self-hosted" + "message": "vlastní hosting" }, "thirdParty": { "message": "Tretí strana" diff --git a/apps/browser/src/_locales/cy/messages.json b/apps/browser/src/_locales/cy/messages.json index 7861a5e758b..2ce58e170a2 100644 --- a/apps/browser/src/_locales/cy/messages.json +++ b/apps/browser/src/_locales/cy/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/da/messages.json b/apps/browser/src/_locales/da/messages.json index df94e9aab71..ab815e6f029 100644 --- a/apps/browser/src/_locales/da/messages.json +++ b/apps/browser/src/_locales/da/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Eksporterer personlig boks" }, - "exportingPersonalVaultDescription": { - "message": "Kun de personlige bokselementer tilknyttet $EMAIL$ vil blive eksporteret. Organisationsbokseelementer vil ikke være inkluderet.", + "exportingIndividualVaultDescription": { + "message": "Kun individuelle Boksemner tilknyttet $EMAIL$ eksporteres. Organisationsboksemner medtages ikke. Kun Boksemneinformation uden tilhørende vedhæftninger eksporteres.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/de/messages.json b/apps/browser/src/_locales/de/messages.json index 7dcdbc3c51f..62db8c33582 100644 --- a/apps/browser/src/_locales/de/messages.json +++ b/apps/browser/src/_locales/de/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Persönlicher Tresor wird exportiert" }, - "exportingPersonalVaultDescription": { - "message": "Nur die einzelnen Tresor-Einträge, die mit $EMAIL$ verbunden sind, werden exportiert. Tresor-Einträge der Organisation werden nicht berücksichtigt.", + "exportingIndividualVaultDescription": { + "message": "Es werden nur persönliche Tresoreinträge exportiert, die mit $EMAIL$ verbunden sind. Tresoreinträge der Organisation werden nicht berücksichtigt. Es werden nur Informationen der Tresoreinträge exportiert. Diese enthalten nicht die zugehörigen Anhänge.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/el/messages.json b/apps/browser/src/_locales/el/messages.json index 1e377c35d0d..fc1c858e7db 100644 --- a/apps/browser/src/_locales/el/messages.json +++ b/apps/browser/src/_locales/el/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Εξαγωγή Προσωπικού Vault" }, - "exportingPersonalVaultDescription": { - "message": "Θα εξαχθούν μόνο τα προσωπικά αντικείμενα Vault που σχετίζονται με το $EMAIL$ . Τα αντικείμενα Vault οργανισμού δεν θα συμπεριληφθούν.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/en/messages.json b/apps/browser/src/_locales/en/messages.json index c71a2af99c5..e074e034412 100644 --- a/apps/browser/src/_locales/en/messages.json +++ b/apps/browser/src/_locales/en/messages.json @@ -1994,8 +1994,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/en_GB/messages.json b/apps/browser/src/_locales/en_GB/messages.json index 84fee7b77c3..73bbaedf9ae 100644 --- a/apps/browser/src/_locales/en_GB/messages.json +++ b/apps/browser/src/_locales/en_GB/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organisation vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organisation vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/en_IN/messages.json b/apps/browser/src/_locales/en_IN/messages.json index 4bf280ce707..2da8f08deb2 100644 --- a/apps/browser/src/_locales/en_IN/messages.json +++ b/apps/browser/src/_locales/en_IN/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting Personal Vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/es/messages.json b/apps/browser/src/_locales/es/messages.json index 50b721348c8..b428e097edd 100644 --- a/apps/browser/src/_locales/es/messages.json +++ b/apps/browser/src/_locales/es/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exportando caja fuerte personal" }, - "exportingPersonalVaultDescription": { - "message": "Solo se exportarán los elementos de la caja fuerte personal asociados a $EMAIL$. Los elementos de la caja fuerte de tu organización no se incluirán.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/et/messages.json b/apps/browser/src/_locales/et/messages.json index f9a11297795..a2f90818aba 100644 --- a/apps/browser/src/_locales/et/messages.json +++ b/apps/browser/src/_locales/et/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Personaalse hoidla eksportimine" }, - "exportingPersonalVaultDescription": { - "message": "Ainult personaalsed $EMAIL$ alla kuuluvad kirjed eksportidakse. Organisatsiooni kirjeid ei ekspordita.", + "exportingIndividualVaultDescription": { + "message": "Ainult e-postiga $EMAIL$ seonduvad kirjed eksporditakse. Organisatsiooni kirjeid ei kaasata. Samuti ei kaasata organisatsiooniga seonduvaid manuseid.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Serveri versioon" }, "selfHostedServer": { - "message": "self-hosted" + "message": "enda majutatud" }, "thirdParty": { "message": "Kolmanda osapoole" diff --git a/apps/browser/src/_locales/eu/messages.json b/apps/browser/src/_locales/eu/messages.json index 987565d609d..ed4caa5d495 100644 --- a/apps/browser/src/_locales/eu/messages.json +++ b/apps/browser/src/_locales/eu/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Kutxa gotor pertsonala esportatzen" }, - "exportingPersonalVaultDescription": { - "message": "$EMAIL$-ekin lotutako kutxa gotor pertsonaleko elementuak bakarrik esportatuko dira. Erakundeko kutxa gotorraren elementuak ez dira sartuko.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/fa/messages.json b/apps/browser/src/_locales/fa/messages.json index ebb75c9f893..8570b9c1c33 100644 --- a/apps/browser/src/_locales/fa/messages.json +++ b/apps/browser/src/_locales/fa/messages.json @@ -339,7 +339,7 @@ "message": "ساير" }, "unlockMethodNeededToChangeTimeoutActionDesc": { - "message": "Set up an unlock method to change your vault timeout action." + "message": "یک روش بازگشایی برای پایان زمان مجاز تنظیم کنید." }, "rateExtension": { "message": "به این افزونه امتیاز دهید" @@ -634,10 +634,10 @@ "message": "به‌روزرسانی" }, "notificationUnlockDesc": { - "message": "Unlock your Bitwarden vault to complete the auto-fill request." + "message": "برای پر کردن خودکار گاوصندوق Bitwarden خود را باز کنید." }, "notificationUnlock": { - "message": "Unlock" + "message": "بازگشایی" }, "enableContextMenuItem": { "message": "نمایش گزینه‌های منوی زمینه" @@ -796,7 +796,7 @@ "message": "۱ گیگابایت فضای ذخیره سازی رمزگذاری شده برای پیوست های پرونده." }, "premiumSignUpTwoStepOptions": { - "message": "Proprietary two-step login options such as YubiKey and Duo." + "message": "گزینه های ورود اضافی دو مرحله ای مانند YubiKey و Duo." }, "ppremiumSignUpReports": { "message": "گزارش‌های بهداشت رمز عبور، سلامت حساب و نقض داده‌ها برای ایمن نگهداشتن گاوصندوق شما." @@ -1606,10 +1606,10 @@ "message": "بیومتریک مرورگر در این دستگاه پشتیبانی نمی‌شود." }, "biometricsFailedTitle": { - "message": "Biometrics failed" + "message": "زیست‌سنجی ناتمام ماند" }, "biometricsFailedDesc": { - "message": "Biometrics cannot be completed, consider using a master password or logging out. If this persists, please contact Bitwarden support." + "message": "زیست‌سنجی نمی تواند انجام شود، استفاده از کلمه عبور اصلی یا خروج را در نظر بگیرید. اگر این مشکل ادامه یافت لطفا با پشتیبانی Bitwarden تماس بگیرید." }, "nativeMessaginPermissionErrorTitle": { "message": "مجوز ارائه نشده است" @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "برون ریزی گاو‌صندوق شخصی" }, - "exportingPersonalVaultDescription": { - "message": "فقط موارد گاو‌صندوق شخصی مرتبط با $EMAIL$ برون ریزی خواهد شد. موارد گاو‌صندوق سازمان شامل نخواهد شد.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "نسخه سرور" }, "selfHostedServer": { - "message": "self-hosted" + "message": "خود میزبان" }, "thirdParty": { "message": "شخص ثالث" @@ -2153,7 +2153,7 @@ "message": "یک اعلان به دستگاه شما ارسال شده است." }, "loginInitiated": { - "message": "Login initiated" + "message": "ورود به سیستم آغاز شد" }, "exposedMasterPassword": { "message": "کلمه عبور اصلی افشا شده" @@ -2234,34 +2234,34 @@ } }, "loggingInOn": { - "message": "Logging in on" + "message": "ورود به عنوان" }, "opensInANewWindow": { "message": "در پنجره جدید باز می‌شود" }, "deviceApprovalRequired": { - "message": "Device approval required. Select an approval option below:" + "message": "تایید دستگاه لازم است. یک روش تایید برگزینید:" }, "rememberThisDevice": { - "message": "Remember this device" + "message": "این دستگاه را به خاطر بسپار" }, "uncheckIfPublicDevice": { - "message": "Uncheck if using a public device" + "message": "بردارید اگر از دستگاه عمومی استفاده میکنید" }, "approveFromYourOtherDevice": { - "message": "Approve from your other device" + "message": "تایید با دستگاه دیگرتان" }, "requestAdminApproval": { - "message": "Request admin approval" + "message": "درخواست تایید مدیر" }, "approveWithMasterPassword": { - "message": "Approve with master password" + "message": "تایید با کلمه عبور اصلی" }, "ssoIdentifierRequired": { - "message": "Organization SSO identifier is required." + "message": "شناسه سازمان SSO مورد نیاز است." }, "eu": { - "message": "EU", + "message": "اروپا", "description": "European Union" }, "usDomain": { @@ -2280,40 +2280,40 @@ "message": "نمایش" }, "accountSuccessfullyCreated": { - "message": "Account successfully created!" + "message": "حساب کاربری با موفقیت ایجاد شد!" }, "adminApprovalRequested": { - "message": "Admin approval requested" + "message": "تایید مدیر در خواست شد" }, "adminApprovalRequestSentToAdmins": { - "message": "Your request has been sent to your admin." + "message": "درخواست شما به مدیرتان فرستاده شد." }, "youWillBeNotifiedOnceApproved": { - "message": "You will be notified once approved." + "message": "به محض تایید مطلع خواهید شد." }, "troubleLoggingIn": { - "message": "Trouble logging in?" + "message": "در ورود مشکلی دارید؟" }, "loginApproved": { - "message": "Login approved" + "message": "ورود تایید شد" }, "userEmailMissing": { - "message": "User email missing" + "message": "رایانامه کاربر کم است" }, "deviceTrusted": { - "message": "Device trusted" + "message": "دستگاه مورد اعتماد است" }, "inputRequired": { - "message": "Input is required." + "message": "ورودی مورد نیاز است." }, "required": { - "message": "required" + "message": "الزامی" }, "search": { - "message": "Search" + "message": "جستجو" }, "inputMinLength": { - "message": "Input must be at least $COUNT$ characters long.", + "message": "ورودی باید حداقل $COUNT$ نشانه داشته باشد.", "placeholders": { "count": { "content": "$1", @@ -2322,7 +2322,7 @@ } }, "inputMaxLength": { - "message": "Input must not exceed $COUNT$ characters in length.", + "message": "اندازه ورودی نباید بیش از $COUNT$ نشانه باشد.", "placeholders": { "count": { "content": "$1", @@ -2331,7 +2331,7 @@ } }, "inputForbiddenCharacters": { - "message": "The following characters are not allowed: $CHARACTERS$", + "message": "نشانه های زیر مجاز نیستند: $CHARACTERS$", "placeholders": { "characters": { "content": "$1", @@ -2340,7 +2340,7 @@ } }, "inputMinValue": { - "message": "Input value must be at least $MIN$.", + "message": "مقدار ورودی باید دست کم $MIN$ باشد.", "placeholders": { "min": { "content": "$1", @@ -2349,7 +2349,7 @@ } }, "inputMaxValue": { - "message": "Input value must not exceed $MAX$.", + "message": "مقدار ورودی نباید بیش از $MAX$ باشد.", "placeholders": { "max": { "content": "$1", @@ -2358,17 +2358,17 @@ } }, "multipleInputEmails": { - "message": "1 or more emails are invalid" + "message": "یک یا چند رایانامه نامعتبر است" }, "inputTrimValidator": { - "message": "Input must not contain only whitespace.", + "message": "ورودی نباید فقط فاصله باشد.", "description": "Notification to inform the user that a form's input can't contain only whitespace." }, "inputEmail": { - "message": "Input is not an email address." + "message": "ورودی یک نشانی رایانامه نیست." }, "fieldsNeedAttention": { - "message": "$COUNT$ field(s) above need your attention.", + "message": "بخش (های) $COUNT$ در بالا نیازمند توجه شما است.", "placeholders": { "count": { "content": "$1", @@ -2377,22 +2377,22 @@ } }, "selectPlaceholder": { - "message": "-- Select --" + "message": "-- انتخاب --" }, "multiSelectPlaceholder": { - "message": "-- Type to filter --" + "message": "-- برای گزینش چیزی بنویسید --" }, "multiSelectLoading": { - "message": "Retrieving options..." + "message": "در حال بازیابی گزینه‌ها..." }, "multiSelectNotFound": { - "message": "No items found" + "message": "موردی پیدا نشد" }, "multiSelectClearAll": { - "message": "Clear all" + "message": "پاک کردن همه" }, "plusNMore": { - "message": "+ $QUANTITY$ more", + "message": "+ $QUANTITY$ بیشتر", "placeholders": { "quantity": { "content": "$1", @@ -2401,10 +2401,10 @@ } }, "submenu": { - "message": "Submenu" + "message": "زیرفهرست" }, "toggleCollapse": { - "message": "Toggle collapse", + "message": "باز و بسته کردن", "description": "Toggling an expand/collapse state." } } diff --git a/apps/browser/src/_locales/fi/messages.json b/apps/browser/src/_locales/fi/messages.json index 2abd01eefa6..8ab4261cc03 100644 --- a/apps/browser/src/_locales/fi/messages.json +++ b/apps/browser/src/_locales/fi/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Henkilökohtaisen holvin vienti" }, - "exportingPersonalVaultDescription": { - "message": "Vain tunnukseen $EMAIL$ liitetyt henkilökohtaisen holvin kohteet viedään. Organisaation kohteet eivät sisälly tähän.", + "exportingIndividualVaultDescription": { + "message": "Vain tunnukseen $EMAIL$ liitetyt yksityisen holvin kohteet viedään. Organisaation holvin kohteita ei sisällytetä. Vain holvin kohteiden tiedot viedään ilman niiden sisältämiä liitteitä.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Palvelimen versio" }, "selfHostedServer": { - "message": "self-hosted" + "message": "itse ylläpidetty" }, "thirdParty": { "message": "Ulkopuolinen taho" diff --git a/apps/browser/src/_locales/fil/messages.json b/apps/browser/src/_locales/fil/messages.json index 3f046898751..cbdd895d03b 100644 --- a/apps/browser/src/_locales/fil/messages.json +++ b/apps/browser/src/_locales/fil/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Nag-export ng indibidwal na vault" }, - "exportingPersonalVaultDescription": { - "message": "Lamang ang mga item ng indibidwal na vault na nauugnay sa $EMAIL$ ang maie-export. Hindi kasama ang mga item ng vault ng organisasyon.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/fr/messages.json b/apps/browser/src/_locales/fr/messages.json index d9dcd906c10..19a9adc5de4 100644 --- a/apps/browser/src/_locales/fr/messages.json +++ b/apps/browser/src/_locales/fr/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Export du coffre personnel" }, - "exportingPersonalVaultDescription": { - "message": "Seuls les éléments individuels du coffre associés à $EMAIL$ seront exportés. Les éléments du coffre de l'organisation ne seront pas inclus.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Version du serveur" }, "selfHostedServer": { - "message": "self-hosted" + "message": "auto-hébergé" }, "thirdParty": { "message": "Tierce partie" diff --git a/apps/browser/src/_locales/gl/messages.json b/apps/browser/src/_locales/gl/messages.json index 43c3cc0b68e..6e95df17b01 100644 --- a/apps/browser/src/_locales/gl/messages.json +++ b/apps/browser/src/_locales/gl/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/he/messages.json b/apps/browser/src/_locales/he/messages.json index d199a2e8db9..c3cd77bc639 100644 --- a/apps/browser/src/_locales/he/messages.json +++ b/apps/browser/src/_locales/he/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "הכספת האישית מיוצאת" }, - "exportingPersonalVaultDescription": { - "message": "רק פריטי הכספת האישית שמשויכת אל $EMAIL$ ייוצאו. פריטי הכספת הארגוניים לא יהיו חלק מהייצוא.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/hi/messages.json b/apps/browser/src/_locales/hi/messages.json index e1d89271f21..697f04154ce 100644 --- a/apps/browser/src/_locales/hi/messages.json +++ b/apps/browser/src/_locales/hi/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/hr/messages.json b/apps/browser/src/_locales/hr/messages.json index ee296293572..1e81fd2d757 100644 --- a/apps/browser/src/_locales/hr/messages.json +++ b/apps/browser/src/_locales/hr/messages.json @@ -339,7 +339,7 @@ "message": "Ostalo" }, "unlockMethodNeededToChangeTimeoutActionDesc": { - "message": "Set up an unlock method to change your vault timeout action." + "message": "Za promjenu vremena isteka trezora, odredi način otključavanja." }, "rateExtension": { "message": "Ocijeni proširenje" @@ -634,10 +634,10 @@ "message": "Ažuriraj" }, "notificationUnlockDesc": { - "message": "Unlock your Bitwarden vault to complete the auto-fill request." + "message": "Za dovršetak auto-ispune, otključaj svoj trezor." }, "notificationUnlock": { - "message": "Unlock" + "message": "Otključaj" }, "enableContextMenuItem": { "message": "Prikaži opcije kotekstualnog izbornika" @@ -796,7 +796,7 @@ "message": "1 GB šifriranog prostora za pohranu podataka." }, "premiumSignUpTwoStepOptions": { - "message": "Proprietary two-step login options such as YubiKey and Duo." + "message": "Mogućnosti za prijavu u dva koraka kao što su YubiKey i Duo." }, "ppremiumSignUpReports": { "message": "Higijenu lozinki, zdravlje računa i izvještaje o krađi podatak radi zaštite svojeg trezora." @@ -1456,7 +1456,7 @@ "message": "Odjava će ukloniti pristup tvom trezoru i zahtijevati mrežnu potvrdu identiteta nakon isteka vremenske neaktivnosti. Sigurno želiš koristiti ovu postavku?" }, "vaultTimeoutLogOutConfirmationTitle": { - "message": "Potvrda akcije vremenske neaktivnosti" + "message": "Potvrda radnje nakon vremenske neaktivnosti" }, "autoFillAndSave": { "message": "Auto-ispuni i spremi" @@ -1468,16 +1468,16 @@ "message": "Auto-ispunjena stavka" }, "insecurePageWarning": { - "message": "Warning: This is an unsecured HTTP page, and any information you submit can potentially be seen and changed by others. This Login was originally saved on a secure (HTTPS) page." + "message": "Upozorenje: Ovo je nezaštićena HTTP stranica i svi podaci koje preko nje pošalješ drugi mogu vidjeti i izmijeniti. Ova prijava je prvotno bila spremljena za sigurnu (HTTPS) stranicu." }, "insecurePageWarningFillPrompt": { - "message": "Do you still wish to fill this login?" + "message": "Želiš li i dalje ispuniti ove podatke za prijavu?" }, "autofillIframeWarning": { - "message": "The form is hosted by a different domain than the URI of your saved login. Choose OK to auto-fill anyway, or Cancel to stop." + "message": "Obrazac je na poslužitelju koji se nalazi na drugačijoj domeni od URI-a za koji su spremljeni tvoji podaci za pristup. Odobri za auto-ispunu ili odustani za prekid." }, "autofillIframeWarningTip": { - "message": "To prevent this warning in the future, save this URI, $HOSTNAME$, to your Bitwarden login item for this site.", + "message": "Kako se ovo upozorenje ubuduće ne bi prikazivalo, spremi ovaj URI ( $HOSTNAME$) u svoju stavku za prijavu.", "placeholders": { "hostname": { "content": "$1", @@ -1489,13 +1489,13 @@ "message": "Postavi glavnu lozinku" }, "currentMasterPass": { - "message": "Current master password" + "message": "Trenutna glavna lozinka" }, "newMasterPass": { - "message": "New master password" + "message": "Nova glavna lozinka" }, "confirmNewMasterPass": { - "message": "Confirm new master password" + "message": "Potvrdi novu glavnu lozinku" }, "masterPasswordPolicyInEffect": { "message": "Jedno ili više pravila organizacije zahtijeva da tvoja glavna lozinka ispunjava sljedeće uvjete:" @@ -1606,10 +1606,10 @@ "message": "Biometrija preglednika nije podržana na ovom uređaju." }, "biometricsFailedTitle": { - "message": "Biometrics failed" + "message": "Biometrija neuspješna" }, "biometricsFailedDesc": { - "message": "Biometrics cannot be completed, consider using a master password or logging out. If this persists, please contact Bitwarden support." + "message": "Biometrija se ne može dovršiti. Pokušaj glavnom lozinkom ili se odjavi i ponovno prijavi. Ako se ovo nastavi, obrati se Bitwarden podršci." }, "nativeMessaginPermissionErrorTitle": { "message": "Dopuštenje nije dano" @@ -1884,7 +1884,7 @@ "message": "Tvoju glavnu lozinku je nedavno promijenio administrator tvoje organizacije. Za pristup trezoru, potrebno je ažurirati glavnu lozinku, što će te odjaviti iz trenutne sesije, te ćeš se morati ponovno prijaviti. Aktivne sesije na drugim uređajima mogu ostati aktivne još sat vremena." }, "updateWeakMasterPasswordWarning": { - "message": "Your master password does not meet one or more of your organization policies. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + "message": "Tvoja glavna lozinka ne zadovoljava pravila ove organizacije. Za pristup trezoru moraš odmah ažurirati svoju glavnu lozinku. Ako nastaviš, odjaviti ćeš se iz trenutne sesije te ćeš se morati ponovno prijaviti. Aktivne sesije na drugim uređajima mogu ostati aktivne do jedan sat." }, "resetPasswordPolicyAutoEnroll": { "message": "Automatsko učlanjenje" @@ -1905,7 +1905,7 @@ "message": "minuta" }, "vaultTimeoutPolicyInEffect": { - "message": "Pravilo tvoje organizacije utječe na istek trezora. Najveće dozvoljeno vrijeme isteka je $HOURS$:$MINUTES$ h.", + "message": "Pravilo tvoje organizacije podesilo je najveće dozvoljeno vrijeme isteka trezora na $HOURS$:$MINUTES$ h.", "placeholders": { "hours": { "content": "$1", @@ -1918,7 +1918,7 @@ } }, "vaultTimeoutPolicyWithActionInEffect": { - "message": "Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is $HOURS$ hour(s) and $MINUTES$ minute(s). Your vault timeout action is set to $ACTION$.", + "message": "Pravilo tvoje organizacije utječe na istek trezora. Najveće dozvoljeno vrijeme isteka je $HOURS$:$MINUTES$ h. Tvoja radnja nakon isteka trezora je: $ACTION$.", "placeholders": { "hours": { "content": "$1", @@ -1935,7 +1935,7 @@ } }, "vaultTimeoutActionPolicyInEffect": { - "message": "Your organization policies have set your vault timeout action to $ACTION$.", + "message": "Pravilo tvoje organizacije podesilo je radnju nakon isteka trezora na: $ACTION$.", "placeholders": { "action": { "content": "$1", @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Izvoz osobnog trezora" }, - "exportingPersonalVaultDescription": { - "message": "Izvest će se samo stavke osobnog trezora povezanog s $EMAIL$. Stavke organizacijskog trezora neće biti uključene.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Verzija poslužitelja" }, "selfHostedServer": { - "message": "self-hosted" + "message": "vlastiti poslužitelj" }, "thirdParty": { "message": "Third-party" @@ -2153,7 +2153,7 @@ "message": "Obavijest je poslana na tvoj uređaj." }, "loginInitiated": { - "message": "Login initiated" + "message": "Prijava pokrenuta" }, "exposedMasterPassword": { "message": "Ukradena glavna lozinka" @@ -2234,31 +2234,31 @@ } }, "loggingInOn": { - "message": "Logging in on" + "message": "Prijava na" }, "opensInANewWindow": { - "message": "Opens in a new window" + "message": "Otvara u novom prozoru" }, "deviceApprovalRequired": { - "message": "Device approval required. Select an approval option below:" + "message": "Potrebno je odobriti uređaj. Odaberi metodu odobravanja:" }, "rememberThisDevice": { - "message": "Remember this device" + "message": "Zapamti ovaj uređaj" }, "uncheckIfPublicDevice": { - "message": "Uncheck if using a public device" + "message": "Odznači ako koristiš javni uređaj" }, "approveFromYourOtherDevice": { - "message": "Approve from your other device" + "message": "Odobri drugim uređajem" }, "requestAdminApproval": { - "message": "Request admin approval" + "message": "Zatraži odobrenje administratora" }, "approveWithMasterPassword": { - "message": "Approve with master password" + "message": "Odobri glavnom lozinkom" }, "ssoIdentifierRequired": { - "message": "Organization SSO identifier is required." + "message": "Potreban je identifikator organizacije." }, "eu": { "message": "EU", @@ -2271,49 +2271,49 @@ "message": "bitwarden.eu" }, "accessDenied": { - "message": "Access denied. You do not have permission to view this page." + "message": "Pristup odbijen. Nemaš prava vidjeti ovu stranicu." }, "general": { - "message": "General" + "message": "Opće" }, "display": { - "message": "Display" + "message": "Prikaz" }, "accountSuccessfullyCreated": { - "message": "Account successfully created!" + "message": "Račun je uspješno stvoren!" }, "adminApprovalRequested": { - "message": "Admin approval requested" + "message": "Zatraženo odobrenje administratora" }, "adminApprovalRequestSentToAdmins": { - "message": "Your request has been sent to your admin." + "message": "Tvoj zahtjev je poslan administratoru." }, "youWillBeNotifiedOnceApproved": { - "message": "You will be notified once approved." + "message": "Dobiti ćeš obavijest kada bude odobreno." }, "troubleLoggingIn": { - "message": "Trouble logging in?" + "message": "Problem s prijavom?" }, "loginApproved": { - "message": "Login approved" + "message": "Prijava odobrena" }, "userEmailMissing": { - "message": "User email missing" + "message": "Nedostaje e-pošta korisnika" }, "deviceTrusted": { - "message": "Device trusted" + "message": "Uređaj pouzdan" }, "inputRequired": { - "message": "Input is required." + "message": "Potreban je unos." }, "required": { - "message": "required" + "message": "obavezno" }, "search": { - "message": "Search" + "message": "Traži" }, "inputMinLength": { - "message": "Input must be at least $COUNT$ characters long.", + "message": "Unos mora sadržavati najmanje $COUNT$ znakova.", "placeholders": { "count": { "content": "$1", @@ -2322,7 +2322,7 @@ } }, "inputMaxLength": { - "message": "Input must not exceed $COUNT$ characters in length.", + "message": "Unos ne smije imati više od $COUNT$ znakova.", "placeholders": { "count": { "content": "$1", @@ -2331,7 +2331,7 @@ } }, "inputForbiddenCharacters": { - "message": "The following characters are not allowed: $CHARACTERS$", + "message": "Ovi znakovi nisu dozvoljeni: $CHARACTERS$", "placeholders": { "characters": { "content": "$1", @@ -2340,7 +2340,7 @@ } }, "inputMinValue": { - "message": "Input value must be at least $MIN$.", + "message": "Unos mora biti najmanje $MIN$.", "placeholders": { "min": { "content": "$1", @@ -2349,7 +2349,7 @@ } }, "inputMaxValue": { - "message": "Input value must not exceed $MAX$.", + "message": "Unos ne smije biti više od $MAX$.", "placeholders": { "max": { "content": "$1", @@ -2358,17 +2358,17 @@ } }, "multipleInputEmails": { - "message": "1 or more emails are invalid" + "message": "Jedna ili više adresa e-pošte nije valjana" }, "inputTrimValidator": { - "message": "Input must not contain only whitespace.", + "message": "Unos ne smije biti prazan.", "description": "Notification to inform the user that a form's input can't contain only whitespace." }, "inputEmail": { - "message": "Input is not an email address." + "message": "Nije unesena adresa e-pošte." }, "fieldsNeedAttention": { - "message": "$COUNT$ field(s) above need your attention.", + "message": "$COUNT$ polje/a treba tvoju pažnju.", "placeholders": { "count": { "content": "$1", @@ -2377,22 +2377,22 @@ } }, "selectPlaceholder": { - "message": "-- Select --" + "message": "-- Odaberi --" }, "multiSelectPlaceholder": { - "message": "-- Type to filter --" + "message": "-- Upiši za filtriranje --" }, "multiSelectLoading": { - "message": "Retrieving options..." + "message": "Dohvaćanje opcija..." }, "multiSelectNotFound": { - "message": "No items found" + "message": "Nije pronađena niti jedna stavka" }, "multiSelectClearAll": { - "message": "Clear all" + "message": "Očisti sve" }, "plusNMore": { - "message": "+ $QUANTITY$ more", + "message": "+ još $QUANTITY$", "placeholders": { "quantity": { "content": "$1", @@ -2401,10 +2401,10 @@ } }, "submenu": { - "message": "Submenu" + "message": "Podizbornik" }, "toggleCollapse": { - "message": "Toggle collapse", + "message": "Sažmi/Proširi", "description": "Toggling an expand/collapse state." } } diff --git a/apps/browser/src/_locales/hu/messages.json b/apps/browser/src/_locales/hu/messages.json index 62a14307f6e..b18a03ee769 100644 --- a/apps/browser/src/_locales/hu/messages.json +++ b/apps/browser/src/_locales/hu/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Személyes széf exportálása" }, - "exportingPersonalVaultDescription": { - "message": "Csak $EMAIL$ email címmel társított személyes széf elemek kerülnek exportálásra. Ebbe nem kerülnek be a szervezeti széf elemek.", + "exportingIndividualVaultDescription": { + "message": "$EMAIL$ email címhez társított egyedi széfek kerülnek csak exportálásra. A szervezeti széf elemei nem lesznek benne. Csak a széf információk kerülnek exportálásra és nem tartalmazzák a kapcsolódó mellékleteket.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Szerver verzió" }, "selfHostedServer": { - "message": "self-hosted" + "message": "saját üzemeltetésű" }, "thirdParty": { "message": "Harmadik fél" diff --git a/apps/browser/src/_locales/id/messages.json b/apps/browser/src/_locales/id/messages.json index 5b1d144591d..e51078ece28 100644 --- a/apps/browser/src/_locales/id/messages.json +++ b/apps/browser/src/_locales/id/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/it/messages.json b/apps/browser/src/_locales/it/messages.json index ad335ccd56c..c68e7aea3d3 100644 --- a/apps/browser/src/_locales/it/messages.json +++ b/apps/browser/src/_locales/it/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Esportazione cassaforte personale" }, - "exportingPersonalVaultDescription": { - "message": "Solo gli elementi della cassaforte personale associati a $EMAIL$ saranno esportati. Gli elementi della cassaforte dell'organizzazione non saranno inclusi.", + "exportingIndividualVaultDescription": { + "message": "Solo gli elementi della cassaforte personale associati a $EMAIL$ saranno esportati. Gli elementi della cassaforte dell'organizzazione non saranno inclusi. Solo le informazioni sugli elementi della cassaforte saranno esportate e non includeranno gli allegati.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/ja/messages.json b/apps/browser/src/_locales/ja/messages.json index 629a1644510..746401d241c 100644 --- a/apps/browser/src/_locales/ja/messages.json +++ b/apps/browser/src/_locales/ja/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "個人保管庫のエクスポート" }, - "exportingPersonalVaultDescription": { - "message": "$EMAIL$ に関連付けられた個人用保管庫アイテムのみがエクスポートされます。組織用保管庫アイテムは含まれません。", + "exportingIndividualVaultDescription": { + "message": "$EMAIL$ に関連付けられた個人の保管庫アイテムのみがエクスポートされます。組織の保管庫アイテムは含まれません。 保管庫アイテム情報のみがエクスポートされ、関連する添付ファイルはエクスポートされません。", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "サーバーのバージョン" }, "selfHostedServer": { - "message": "self-hosted" + "message": "自己ホスト型" }, "thirdParty": { "message": "サードパーティー" diff --git a/apps/browser/src/_locales/ka/messages.json b/apps/browser/src/_locales/ka/messages.json index f950febf1f3..ea38b1f9a47 100644 --- a/apps/browser/src/_locales/ka/messages.json +++ b/apps/browser/src/_locales/ka/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/km/messages.json b/apps/browser/src/_locales/km/messages.json index 43c3cc0b68e..6e95df17b01 100644 --- a/apps/browser/src/_locales/km/messages.json +++ b/apps/browser/src/_locales/km/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/kn/messages.json b/apps/browser/src/_locales/kn/messages.json index 3635ce719ba..7762aa74db5 100644 --- a/apps/browser/src/_locales/kn/messages.json +++ b/apps/browser/src/_locales/kn/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/ko/messages.json b/apps/browser/src/_locales/ko/messages.json index c8ad9cff366..995c5a932dd 100644 --- a/apps/browser/src/_locales/ko/messages.json +++ b/apps/browser/src/_locales/ko/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "개인 보관함을 내보내는 중" }, - "exportingPersonalVaultDescription": { - "message": "오직 $EMAIL$와 연관된 개인 보관함의 항목만 내보내집니다. 조직 보관함의 항목은 포함되지 않습니다.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/lt/messages.json b/apps/browser/src/_locales/lt/messages.json index b8f9c6cf12a..f66d8f3f642 100644 --- a/apps/browser/src/_locales/lt/messages.json +++ b/apps/browser/src/_locales/lt/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/lv/messages.json b/apps/browser/src/_locales/lv/messages.json index dfe5405e037..b49cea5167e 100644 --- a/apps/browser/src/_locales/lv/messages.json +++ b/apps/browser/src/_locales/lv/messages.json @@ -92,7 +92,7 @@ "message": "Automātiskā aizpildīšana" }, "generatePasswordCopied": { - "message": "Veidot paroli (ievietota starpliktuvē)" + "message": "Izveidot paroli (tiks ievietota starpliktuvē)" }, "copyElementIdentifier": { "message": "Pavairot pielāgotā lauka nosaukumu" @@ -467,7 +467,7 @@ "message": "Nederīgs apstiprinājuma kods" }, "valueCopied": { - "message": "$VALUE$ ievietota starpliktuvē", + "message": "$VALUE$ ir starpliktuvē", "description": "Value has been copied to the clipboard.", "placeholders": { "value": { @@ -901,7 +901,7 @@ "message": "Šim kontam ir iespējota divpakāpju pieteikšanās, bet šajā pārlūkā netiek atbalstīts neviens no uzstādītajiem divpakāpju pārbaudes nodrošinātājiem." }, "noTwoStepProviders2": { - "message": "Lūgums izmantot atbalstītu tīmekļa pārlūku (piemēram Chrome) un/vai pievienot papildus nodrošinātājus, kas tiek labāk atbalstīti dažādos pārlūkos (piemēram autentificētāja lietotni)." + "message": "Lūgums izmantot atbalstītu tīmekļa pārlūku (piemēram Chrome) un/vai pievienot papildu nodrošinātājus, kas tiek labāk atbalstīti dažādos pārlūkos (piemēram autentificētāja lietotni)." }, "twoStepOptions": { "message": "Divpakāpju pieteikšanās iespējas" @@ -923,21 +923,21 @@ "message": "YubiKey OTP drošības atslēga" }, "yubiKeyDesc": { - "message": "Izmanto YubiKey, lai piekļūtu savam kontam! Darbojas ar YubiKey 4, 4 Nano, 4C un NEO ierīcēm." + "message": "Ir izmantojams YubiKey, lai piekļūtu savam kontam. Darbojas ar YubiKey 4, 4 Nano, 4C un NEO ierīcēm." }, "duoDesc": { - "message": "Apstiprini ar Duo Security, izmantojot Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu!", + "message": "Ar Duo Security apliecināšanu var veikt ar Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { - "message": "Apstiprini ar Duo Security savā apvienībā, izmantojot Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu!", + "message": "Apliecināšana ar savas apvienības Duo Security, izmantojot Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "webAuthnTitle": { "message": "FIDO2 WebAuthn" }, "webAuthnDesc": { - "message": "Izmantot jebkuru WebAuthn atbalstošu drošības atslēgu, lai piekļūtu kontam." + "message": "Ir izmantojama jebkura WebAuthn atbalstošu drošības atslēgu, lai piekļūtu kontam." }, "emailTitle": { "message": "E-pasts" @@ -1540,7 +1540,7 @@ "message": "Jaunā galvenā parole neatbilst nosacījumu prasībām." }, "acceptPolicies": { - "message": "Atzīmējot šo rūtiņu, Tu piekrīti sekojošajam:" + "message": "Ar šīs rūtiņas atzīmēšanu tiek piekrists sekojošajam:" }, "acceptPoliciesRequired": { "message": "Nav apstiprināti izmantošanas noteikumi un privātuma nosacījumi." @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Izdod personīgo glabātavu" }, - "exportingPersonalVaultDescription": { - "message": "Tiks izdoti tikai personīgie glabātavas vienumi, kas ir saistīti ar $EMAIL$. Apvienības glabātavas vienumi netiks iekļauti.", + "exportingIndividualVaultDescription": { + "message": "Tiks izgūti tikai atsevišķi glabātavas vienumi, kas ir saistīti ar $EMAIL$. Apvienības glabātavas vienumi netiks iekļauti. Tiks izgūta tikai glabātavas vienumu informācija, un saistītie pielikumi netiks iekļauti.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Servera versija" }, "selfHostedServer": { - "message": "self-hosted" + "message": "pašizvietots" }, "thirdParty": { "message": "Trešās puses" diff --git a/apps/browser/src/_locales/ml/messages.json b/apps/browser/src/_locales/ml/messages.json index dab1da00605..8a377bb32a6 100644 --- a/apps/browser/src/_locales/ml/messages.json +++ b/apps/browser/src/_locales/ml/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/mr/messages.json b/apps/browser/src/_locales/mr/messages.json index 4401946ca5d..9c83fe4e03c 100644 --- a/apps/browser/src/_locales/mr/messages.json +++ b/apps/browser/src/_locales/mr/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/my/messages.json b/apps/browser/src/_locales/my/messages.json index 43c3cc0b68e..6e95df17b01 100644 --- a/apps/browser/src/_locales/my/messages.json +++ b/apps/browser/src/_locales/my/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/nb/messages.json b/apps/browser/src/_locales/nb/messages.json index 5a3cb1a6675..98715f38327 100644 --- a/apps/browser/src/_locales/nb/messages.json +++ b/apps/browser/src/_locales/nb/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Eksporterer personlig hvelv" }, - "exportingPersonalVaultDescription": { - "message": "Bare de personlige hvelv-elementene som er knyttet til $EMAIL$ vil bli eksportert. Organisasjonshvelvets elementer vil ikke bli inkludert.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/ne/messages.json b/apps/browser/src/_locales/ne/messages.json index 43c3cc0b68e..6e95df17b01 100644 --- a/apps/browser/src/_locales/ne/messages.json +++ b/apps/browser/src/_locales/ne/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/nl/messages.json b/apps/browser/src/_locales/nl/messages.json index 7149b18ff68..623b16daf7f 100644 --- a/apps/browser/src/_locales/nl/messages.json +++ b/apps/browser/src/_locales/nl/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Persoonlijke kluis exporteren" }, - "exportingPersonalVaultDescription": { - "message": "Exporteert alleen de persoonlijke kluis-items gerelateerd aan $EMAIL$. Geen kluis-items van de organisatie.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/nn/messages.json b/apps/browser/src/_locales/nn/messages.json index 43c3cc0b68e..6e95df17b01 100644 --- a/apps/browser/src/_locales/nn/messages.json +++ b/apps/browser/src/_locales/nn/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/or/messages.json b/apps/browser/src/_locales/or/messages.json index 43c3cc0b68e..6e95df17b01 100644 --- a/apps/browser/src/_locales/or/messages.json +++ b/apps/browser/src/_locales/or/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/pl/messages.json b/apps/browser/src/_locales/pl/messages.json index c2ec8abe5d0..dcc01d2284d 100644 --- a/apps/browser/src/_locales/pl/messages.json +++ b/apps/browser/src/_locales/pl/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Eksportowanie osobistego sejfu" }, - "exportingPersonalVaultDescription": { - "message": "Tylko osobiste elementy sejfu powiązane z adresem $EMAIL$ zostaną wyeksportowane. Elementy sejfu należące do organizacji nie będą uwzględnione.", + "exportingIndividualVaultDescription": { + "message": "Z sejfu zostaną wyeksportowane tylko elementy powiązane z $EMAIL$. Elementy z sejfu organizacji nie będą uwzględnione. Tylko informacje o elemencie zostaną wyeksportowane i nie będą zawierać powiązanych załączników.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Wersja serwera" }, "selfHostedServer": { - "message": "self-hosted" + "message": "samodzielnie hostowany" }, "thirdParty": { "message": "Inny dostawca" diff --git a/apps/browser/src/_locales/pt_BR/messages.json b/apps/browser/src/_locales/pt_BR/messages.json index 474174a36e9..f3a760a426f 100644 --- a/apps/browser/src/_locales/pt_BR/messages.json +++ b/apps/browser/src/_locales/pt_BR/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exportando o Cofre Pessoal" }, - "exportingPersonalVaultDescription": { - "message": "Apenas os itens pessoais do cofre associados com $EMAIL$ serão exportados. Os itens do cofre da organização não serão incluídos.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/pt_PT/messages.json b/apps/browser/src/_locales/pt_PT/messages.json index 28362dc31ad..5c80b8dfa12 100644 --- a/apps/browser/src/_locales/pt_PT/messages.json +++ b/apps/browser/src/_locales/pt_PT/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "A exportar o cofre pessoal" }, - "exportingPersonalVaultDescription": { - "message": "Apenas os itens do cofre pessoal associado a $EMAIL$ serão exportados. Os itens do cofre da organização não serão incluídos.", + "exportingIndividualVaultDescription": { + "message": "Apenas os itens de cofre individuais associados a $EMAIL$ serão exportados. Os itens do cofre da organização não serão incluídos. Apenas serão exportadas as informações do item do cofre e não serão incluídos os anexos associados.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Versão do servidor" }, "selfHostedServer": { - "message": "self-hosted" + "message": "auto-hospedado" }, "thirdParty": { "message": "De terceiros" diff --git a/apps/browser/src/_locales/ro/messages.json b/apps/browser/src/_locales/ro/messages.json index 40c86ecf37d..1ee069177ee 100644 --- a/apps/browser/src/_locales/ro/messages.json +++ b/apps/browser/src/_locales/ro/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exportul seifului individual" }, - "exportingPersonalVaultDescription": { - "message": "Numai articolele de seif individuale asociate cu $EMAIL$ vor fi exportate. Articolele de seif ale organizației nu vor fi incluse.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/ru/messages.json b/apps/browser/src/_locales/ru/messages.json index df0906a0ec1..1b49f85e7a2 100644 --- a/apps/browser/src/_locales/ru/messages.json +++ b/apps/browser/src/_locales/ru/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Экспорт личного хранилища" }, - "exportingPersonalVaultDescription": { - "message": "Будут экспортированы только личные элементы хранилища, связанные с $EMAIL$. Элементы хранилища организации включены не будут.", + "exportingIndividualVaultDescription": { + "message": "Будут экспортированы только отдельные элементы хранилища, связанные с $EMAIL$. Элементы хранилища организации включены не будут. Экспортируется только информация об элементах хранилища, не включая связанные вложения.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Версия сервера" }, "selfHostedServer": { - "message": "self-hosted" + "message": "собственный хостинг" }, "thirdParty": { "message": "Сторонний" diff --git a/apps/browser/src/_locales/si/messages.json b/apps/browser/src/_locales/si/messages.json index 1236f44e6eb..d42711812c8 100644 --- a/apps/browser/src/_locales/si/messages.json +++ b/apps/browser/src/_locales/si/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/sk/messages.json b/apps/browser/src/_locales/sk/messages.json index 5778db28f79..267ec80df9e 100644 --- a/apps/browser/src/_locales/sk/messages.json +++ b/apps/browser/src/_locales/sk/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exportovanie osobného trezora" }, - "exportingPersonalVaultDescription": { - "message": "Exportované budú iba položy osobného trezora spojené s $EMAIL$. Položky trezora organizácie nebudú zahrnuté.", + "exportingIndividualVaultDescription": { + "message": "Exportované budú iba položky súvisiace s $EMAIL$. Položky z trezora organizácie nebudú zahrnuté v exporte. Export bude obsahovať iba informácie z položiek v trezore, súvisiace prílohy nebudú súčasťou exportu.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Verzia servera" }, "selfHostedServer": { - "message": "self-hosted" + "message": "vlastný hosting" }, "thirdParty": { "message": "Tretia strana" diff --git a/apps/browser/src/_locales/sl/messages.json b/apps/browser/src/_locales/sl/messages.json index 06967ee2166..0e05815294d 100644 --- a/apps/browser/src/_locales/sl/messages.json +++ b/apps/browser/src/_locales/sl/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Izvoženi bodo samo posamezni elementi trezorja, ki so povezani z $EMAIL$. Elementi trezorjev organizacij ne bodo izvoženi.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/sr/messages.json b/apps/browser/src/_locales/sr/messages.json index f823208d1dd..72d99fcecce 100644 --- a/apps/browser/src/_locales/sr/messages.json +++ b/apps/browser/src/_locales/sr/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Извоз личног сефа" }, - "exportingPersonalVaultDescription": { - "message": "Само предмети личног сефа повезани са $EMAIL$ биће извезени. Ставке организационог сефа неће бити укључене.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Верзија сервера" }, "selfHostedServer": { - "message": "self-hosted" + "message": "личан хостинг" }, "thirdParty": { "message": "Трећа страна" diff --git a/apps/browser/src/_locales/sv/messages.json b/apps/browser/src/_locales/sv/messages.json index 2c90c1c8f86..fb44f17c835 100644 --- a/apps/browser/src/_locales/sv/messages.json +++ b/apps/browser/src/_locales/sv/messages.json @@ -634,10 +634,10 @@ "message": "Uppdatera" }, "notificationUnlockDesc": { - "message": "Unlock your Bitwarden vault to complete the auto-fill request." + "message": "Lås upp ditt Bitwarden-valv för att slutföra begäran om automatisk ifyllnad." }, "notificationUnlock": { - "message": "Unlock" + "message": "Lås upp" }, "enableContextMenuItem": { "message": "Visa alternativ för snabbmenyn" @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporterar individuellt valv" }, - "exportingPersonalVaultDescription": { - "message": "Endast de personliga valvobjekt som är associerade med $EMAIL$ kommer att exporteras. Organisationens valvobjekt kommer inte att inkluderas.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/te/messages.json b/apps/browser/src/_locales/te/messages.json index 43c3cc0b68e..6e95df17b01 100644 --- a/apps/browser/src/_locales/te/messages.json +++ b/apps/browser/src/_locales/te/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/th/messages.json b/apps/browser/src/_locales/th/messages.json index 97ce8ca58cc..d09c59940d1 100644 --- a/apps/browser/src/_locales/th/messages.json +++ b/apps/browser/src/_locales/th/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/tr/messages.json b/apps/browser/src/_locales/tr/messages.json index e32dcb4ac81..71080dd999c 100644 --- a/apps/browser/src/_locales/tr/messages.json +++ b/apps/browser/src/_locales/tr/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Kişisel kasa dışa aktarılıyor" }, - "exportingPersonalVaultDescription": { - "message": "Yalnızca $EMAIL$ ile ilişkili kişisel kasadaki kayıtlar dışa aktarılacaktır. Kuruluş kasasındaki kayıtlar dahil edilmeyecektir.", + "exportingIndividualVaultDescription": { + "message": "Yalnızca $EMAIL$ ile ilişkili kasa kayıtları dışa aktarılacaktır. Kuruluş kasasındaki kayıtlar dahil edilmeyecektir. Yalnızca kasa kayıt bilgileri dışa aktarılacak, kayıtlara eklenen dosyalar aktarılmayacaktır.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Sunucu sürümü" }, "selfHostedServer": { - "message": "self-hosted" + "message": "şirket içinde barındırılan" }, "thirdParty": { "message": "Üçüncü taraf" diff --git a/apps/browser/src/_locales/uk/messages.json b/apps/browser/src/_locales/uk/messages.json index c695aaadf2e..2934e17e328 100644 --- a/apps/browser/src/_locales/uk/messages.json +++ b/apps/browser/src/_locales/uk/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Експортування особистого сховища" }, - "exportingPersonalVaultDescription": { - "message": "Будуть експортовані лише записи особистого сховища, пов'язані з $EMAIL$. Записи сховища організації не буде включено.", + "exportingIndividualVaultDescription": { + "message": "Будуть експортовані лише записи особистого сховища, пов'язані з $EMAIL$. Записи сховища організації не буде включено. Експортуються лише дані записів сховища без пов'язаних вкладень.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "Версія сервера" }, "selfHostedServer": { - "message": "self-hosted" + "message": "власне розміщення" }, "thirdParty": { "message": "Сторонній" diff --git a/apps/browser/src/_locales/vi/messages.json b/apps/browser/src/_locales/vi/messages.json index 95716b3fc36..62f63995c7b 100644 --- a/apps/browser/src/_locales/vi/messages.json +++ b/apps/browser/src/_locales/vi/messages.json @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/browser/src/_locales/zh_CN/messages.json b/apps/browser/src/_locales/zh_CN/messages.json index eded4b220c7..5325ef6a4f1 100644 --- a/apps/browser/src/_locales/zh_CN/messages.json +++ b/apps/browser/src/_locales/zh_CN/messages.json @@ -41,7 +41,7 @@ "message": "主密码是您访问密码库的唯一密码。它非常重要,请您不要忘记。一旦忘记,无任何办法恢复此密码。" }, "masterPassHintDesc": { - "message": "主密码提示可以在你忘记密码时帮你回忆起来。" + "message": "主密码提示可以在您忘记密码时帮您回忆起来。" }, "reTypeMasterPass": { "message": "再次输入主密码" @@ -480,13 +480,13 @@ "message": "无法在此页面上自动填充所选项目。请改为手工复制并粘贴。" }, "loggedOut": { - "message": "已退出账户" + "message": "已注销" }, "loginExpired": { "message": "您的登录会话已过期。" }, "logOutConfirmation": { - "message": "您确定要退出账户吗?" + "message": "您确定要注销吗?" }, "yes": { "message": "是" @@ -1391,7 +1391,7 @@ "message": "使用 PIN 码解锁" }, "setYourPinCode": { - "message": "设置您用来解锁 Bitwarden 的 PIN 码。您的 PIN 设置将在您退出账户时被重置。" + "message": "设定您用来解锁 Bitwarden 的 PIN 码。您的 PIN 设置将在您完全注销此应用程序时被重置。" }, "pinRequired": { "message": "需要 PIN 码。" @@ -1453,7 +1453,7 @@ "message": "项目已恢复" }, "vaultTimeoutLogOutConfirmation": { - "message": "超时后退出账户将解除对密码库的所有访问权限,并需要进行在线身份验证。确定使用此设置吗?" + "message": "超时后注销账户将解除对密码库的所有访问权限,并需要进行在线身份验证。确定使用此设置吗?" }, "vaultTimeoutLogOutConfirmationTitle": { "message": "超时动作确认" @@ -1624,7 +1624,7 @@ "message": "此操作不能在侧边栏中完成,请在弹出窗口或弹出对话框中重试。" }, "personalOwnershipSubmitError": { - "message": "由于某个企业策略,您被限制为保存项目到您的个人密码库。将所有权选项更改为组织,然后从可用的集合中选择。" + "message": "由于某个企业策略,您不能将项目保存到您的个人密码库。将所有权选项更改为组织,并从可用的集合中选择。" }, "personalOwnershipPolicyInEffect": { "message": "一个组织策略正影响您的所有权选项。" @@ -1796,14 +1796,14 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "newPassword": { - "message": "新建密码" + "message": "新密码" }, "sendDisabled": { "message": "Send 已禁用", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "由于企业策略,您只能删除现有的 Send。", + "message": "由于某个企业策略,您只能删除现有的 Send。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { @@ -1860,7 +1860,7 @@ "message": "一个或多个组织策略正在影响您的 Send 选项。" }, "passwordPrompt": { - "message": "重新询问主密码" + "message": "主密码重新提示" }, "passwordConfirmation": { "message": "确认主密码" @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "导出个人密码库" }, - "exportingPersonalVaultDescription": { - "message": "仅会导出与 $EMAIL$ 关联的个人密码库项目。组织密码库的项目不会导出。", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2093,7 +2093,7 @@ "message": "服务器版本" }, "selfHostedServer": { - "message": "self-hosted" + "message": "自托管" }, "thirdParty": { "message": "第三方" diff --git a/apps/browser/src/_locales/zh_TW/messages.json b/apps/browser/src/_locales/zh_TW/messages.json index 96bdfaaa4df..c436fd63a29 100644 --- a/apps/browser/src/_locales/zh_TW/messages.json +++ b/apps/browser/src/_locales/zh_TW/messages.json @@ -637,7 +637,7 @@ "message": "Unlock your Bitwarden vault to complete the auto-fill request." }, "notificationUnlock": { - "message": "Unlock" + "message": "解鎖" }, "enableContextMenuItem": { "message": "顯示內容選單選項" @@ -985,7 +985,7 @@ "message": "網頁載入時如果偵測到登入表單,則執行自動填入。" }, "experimentalFeature": { - "message": "被入侵或不可信任的網站可以利用自動填入功能在網頁載入時竊取資訊。" + "message": "被入侵或不可信任的網站可以利用網頁載入時的自動填入功能。" }, "learnMoreAboutAutofill": { "message": "進一步瞭解「自動填入」功能" @@ -1264,10 +1264,10 @@ "description": "To clear something out. example: To clear browser history." }, "checkPassword": { - "message": "檢查密碼是否已外洩。" + "message": "檢查密碼是否已暴露。" }, "passwordExposed": { - "message": "此密碼已外洩了 $VALUE$ 次,應立即變更密碼。", + "message": "此密碼在資料外洩事件中被暴露了 $VALUE$ 次,應立即變更它。", "placeholders": { "value": { "content": "$1", @@ -1495,7 +1495,7 @@ "message": "新的主密碼" }, "confirmNewMasterPass": { - "message": "確認新主密碼" + "message": "確認新的主密碼" }, "masterPasswordPolicyInEffect": { "message": "一個或多個組織原則要求您的主密碼須符合下列條件:" @@ -1991,8 +1991,8 @@ "exportingPersonalVaultTitle": { "message": "正匯出個人密碼庫" }, - "exportingPersonalVaultDescription": { - "message": "只會匯出與 $EMAIL$ 關聯的個人密碼庫項目。組織密碼庫的項目不包含在內。", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2153,13 +2153,13 @@ "message": "已傳送通知至您的裝置。" }, "loginInitiated": { - "message": "Login initiated" + "message": "登入已發起" }, "exposedMasterPassword": { "message": "已暴露的主密碼" }, "exposedMasterPasswordDesc": { - "message": "在其他資料庫中找到您的密碼。我們建議您使用一個獨特的密碼來保護您的帳號,您確定要用這個密碼嗎?" + "message": "在資料外洩事件中找到了密碼。我們建議您使用一個獨特的密碼來保護您的帳戶,您確定要使用已暴露的密碼嗎?" }, "weakAndExposedMasterPassword": { "message": "強度不足且已暴露的主密碼" @@ -2171,7 +2171,7 @@ "message": "檢查外洩密碼資料庫中是否有此密碼" }, "important": { - "message": "重要事項:" + "message": "重要:" }, "masterPasswordHint": { "message": "如果您忘記主密碼,沒有復原的方法!" @@ -2234,7 +2234,7 @@ } }, "loggingInOn": { - "message": "Logging in on" + "message": "正登入到" }, "opensInANewWindow": { "message": "在新視窗開啟" @@ -2280,7 +2280,7 @@ "message": "顯示" }, "accountSuccessfullyCreated": { - "message": "Account successfully created!" + "message": "已成功建立帳戶!" }, "adminApprovalRequested": { "message": "Admin approval requested" @@ -2310,10 +2310,10 @@ "message": "required" }, "search": { - "message": "Search" + "message": "搜尋" }, "inputMinLength": { - "message": "Input must be at least $COUNT$ characters long.", + "message": "必須輸入至少 $COUNT$ 個字元。", "placeholders": { "count": { "content": "$1", @@ -2322,7 +2322,7 @@ } }, "inputMaxLength": { - "message": "Input must not exceed $COUNT$ characters in length.", + "message": "輸入的內容長度不得超過 $COUNT$ 字元。", "placeholders": { "count": { "content": "$1", diff --git a/apps/browser/src/background/main.background.ts b/apps/browser/src/background/main.background.ts index 870267f4444..88b445b2bf6 100644 --- a/apps/browser/src/background/main.background.ts +++ b/apps/browser/src/background/main.background.ts @@ -551,6 +551,7 @@ export default class MainBackground { this.configApiService, this.authService, this.environmentService, + this.logService, true ); this.browserPopoutWindowService = new BrowserPopoutWindowService(); diff --git a/apps/browser/src/background/nativeMessaging.background.ts b/apps/browser/src/background/nativeMessaging.background.ts index 8f8705b41c7..f4eed16823a 100644 --- a/apps/browser/src/background/nativeMessaging.background.ts +++ b/apps/browser/src/background/nativeMessaging.background.ts @@ -422,9 +422,10 @@ export class NativeMessagingBackground { } private async showFingerprintDialog() { - const fingerprint = ( - await this.cryptoService.getFingerprint(await this.stateService.getUserId(), this.publicKey) - ).join(" "); + const fingerprint = await this.cryptoService.getFingerprint( + await this.stateService.getUserId(), + this.publicKey + ); this.messagingService.send("showNativeMessagingFinterprintDialog", { fingerprint: fingerprint, diff --git a/apps/browser/src/platform/polyfills/zone-patch-chrome-runtime.ts b/apps/browser/src/platform/polyfills/zone-patch-chrome-runtime.ts new file mode 100644 index 00000000000..fa731840f8b --- /dev/null +++ b/apps/browser/src/platform/polyfills/zone-patch-chrome-runtime.ts @@ -0,0 +1,36 @@ +/** + * Monkey patch `chrome.runtime.onMessage` event listeners to run in the Angular zone. + */ +Zone.__load_patch("ChromeRuntimeOnMessage", (global: any, Zone: ZoneType, api: _ZonePrivate) => { + const onMessage = global.chrome.runtime.onMessage; + if (typeof global?.chrome?.runtime?.onMessage === "undefined") { + return; + } + + // eslint-disable-next-line @typescript-eslint/ban-types + api.patchMethod(onMessage, "addListener", (delegate: Function) => (self: any, args: any[]) => { + const callback = args.length > 0 ? args[0] : null; + if (typeof callback === "function") { + const wrapperedCallback = Zone.current.wrap(callback, "ChromeRuntimeOnMessage"); + callback[api.symbol("chromeRuntimeOnMessageCallback")] = wrapperedCallback; + return delegate.call(self, wrapperedCallback); + } else { + return delegate.apply(self, args); + } + }); + + // eslint-disable-next-line @typescript-eslint/ban-types + api.patchMethod(onMessage, "removeListener", (delegate: Function) => (self: any, args: any[]) => { + const callback = args.length > 0 ? args[0] : null; + if (typeof callback === "function") { + const wrapperedCallback = callback[api.symbol("chromeRuntimeOnMessageCallback")]; + if (wrapperedCallback) { + return delegate.call(self, wrapperedCallback); + } else { + return delegate.apply(self, args); + } + } else { + return delegate.apply(self, args); + } + }); +}); diff --git a/apps/browser/src/platform/services/browser-config.service.ts b/apps/browser/src/platform/services/browser-config.service.ts index f928fdd0726..39d1fc565eb 100644 --- a/apps/browser/src/platform/services/browser-config.service.ts +++ b/apps/browser/src/platform/services/browser-config.service.ts @@ -4,6 +4,7 @@ import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service"; import { ConfigApiServiceAbstraction } from "@bitwarden/common/platform/abstractions/config/config-api.service.abstraction"; import { ServerConfig } from "@bitwarden/common/platform/abstractions/config/server-config"; import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service"; +import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; import { StateService } from "@bitwarden/common/platform/abstractions/state.service"; import { ConfigService } from "@bitwarden/common/platform/services/config/config.service"; @@ -19,8 +20,9 @@ export class BrowserConfigService extends ConfigService { configApiService: ConfigApiServiceAbstraction, authService: AuthService, environmentService: EnvironmentService, + logService: LogService, subscribe = false ) { - super(stateService, configApiService, authService, environmentService, subscribe); + super(stateService, configApiService, authService, environmentService, logService, subscribe); } } diff --git a/apps/browser/src/popup/app.component.ts b/apps/browser/src/popup/app.component.ts index 815109c5499..93f824a7dd1 100644 --- a/apps/browser/src/popup/app.component.ts +++ b/apps/browser/src/popup/app.component.ts @@ -9,8 +9,7 @@ import { import { DomSanitizer } from "@angular/platform-browser"; import { NavigationEnd, Router, RouterOutlet } from "@angular/router"; import { IndividualConfig, ToastrService } from "ngx-toastr"; -import { filter, concatMap, Subject, takeUntil } from "rxjs"; -import Swal from "sweetalert2"; +import { filter, concatMap, Subject, takeUntil, firstValueFrom } from "rxjs"; import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service"; import { BroadcasterService } from "@bitwarden/common/platform/abstractions/broadcaster.service"; @@ -23,6 +22,7 @@ import { BrowserApi } from "../platform/browser/browser-api"; import { BrowserStateService } from "../platform/services/abstractions/browser-state.service"; import { routerTransition } from "./app-routing.animations"; +import { DesktopSyncVerificationDialogComponent } from "./components/desktop-sync-verification-dialog.component"; @Component({ selector: "app-root", @@ -86,41 +86,33 @@ export class AppComponent implements OnInit, OnDestroy { sendResponse: any ) => { if (msg.command === "doneLoggingOut") { - this.ngZone.run(async () => { - this.authService.logOut(async () => { - if (msg.expired) { - this.showToast({ - type: "warning", - title: this.i18nService.t("loggedOut"), - text: this.i18nService.t("loginExpired"), - }); - } + this.authService.logOut(async () => { + if (msg.expired) { + this.showToast({ + type: "warning", + title: this.i18nService.t("loggedOut"), + text: this.i18nService.t("loginExpired"), + }); + } - if (this.activeUserId === null) { - this.router.navigate(["home"]); - } - }); - this.changeDetectorRef.detectChanges(); + if (this.activeUserId === null) { + this.router.navigate(["home"]); + } }); + this.changeDetectorRef.detectChanges(); } else if (msg.command === "authBlocked") { - this.ngZone.run(() => { - this.router.navigate(["home"]); - }); + this.router.navigate(["home"]); } else if (msg.command === "locked") { if (msg.userId == null || msg.userId === (await this.stateService.getUserId())) { - this.ngZone.run(() => { - this.router.navigate(["lock"]); - }); + this.router.navigate(["lock"]); } } else if (msg.command === "showDialog") { - await this.showDialog(msg); + await this.ngZone.run(() => this.showDialog(msg)); } else if (msg.command === "showNativeMessagingFinterprintDialog") { // TODO: Should be refactored to live in another service. - await this.showNativeMessagingFingerprintDialog(msg); + await this.ngZone.run(() => this.showNativeMessagingFingerprintDialog(msg)); } else if (msg.command === "showToast") { - this.ngZone.run(() => { - this.showToast(msg); - }); + this.showToast(msg); } else if (msg.command === "reloadProcess") { const forceWindowReload = this.platformUtilsService.isSafari() || @@ -132,13 +124,9 @@ export class AppComponent implements OnInit, OnDestroy { 2000 ); } else if (msg.command === "reloadPopup") { - this.ngZone.run(() => { - this.router.navigate(["/"]); - }); + this.router.navigate(["/"]); } else if (msg.command === "convertAccountToKeyConnector") { - this.ngZone.run(async () => { - this.router.navigate(["/remove-password"]); - }); + this.router.navigate(["/remove-password"]); } else { msg.webExtSender = sender; this.broadcasterService.send(msg); @@ -242,19 +230,11 @@ export class AppComponent implements OnInit, OnDestroy { } private async showNativeMessagingFingerprintDialog(msg: any) { - await Swal.fire({ - heightAuto: false, - buttonsStyling: false, - icon: "warning", - iconHtml: '', - html: `${this.i18nService.t("desktopIntegrationVerificationText")}

${ - msg.fingerprint - }`, - titleText: this.i18nService.t("desktopSyncVerificationTitle"), - showConfirmButton: true, - confirmButtonText: this.i18nService.t("ok"), - timer: 300000, + const dialogRef = DesktopSyncVerificationDialogComponent.open(this.dialogService, { + fingerprint: msg.fingerprint, }); + + return firstValueFrom(dialogRef.closed); } private async clearComponentStates() { diff --git a/apps/browser/src/popup/components/desktop-sync-verification-dialog.component.html b/apps/browser/src/popup/components/desktop-sync-verification-dialog.component.html new file mode 100644 index 00000000000..a2a2cd97805 --- /dev/null +++ b/apps/browser/src/popup/components/desktop-sync-verification-dialog.component.html @@ -0,0 +1,18 @@ + + + {{ "desktopSyncVerificationTitle" | i18n }} + + +

+ {{ "desktopIntegrationVerificationText" | i18n }} +

+

+ {{ params.fingerprint.join("-") }} +

+
+ + + +
diff --git a/apps/browser/src/popup/components/desktop-sync-verification-dialog.component.ts b/apps/browser/src/popup/components/desktop-sync-verification-dialog.component.ts new file mode 100644 index 00000000000..c860ef1e342 --- /dev/null +++ b/apps/browser/src/popup/components/desktop-sync-verification-dialog.component.ts @@ -0,0 +1,24 @@ +import { DIALOG_DATA } from "@angular/cdk/dialog"; +import { Component, Inject } from "@angular/core"; + +import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { ButtonModule, DialogModule, DialogService } from "@bitwarden/components"; + +export type DesktopSyncVerificationDialogParams = { + fingerprint: string[]; +}; + +@Component({ + templateUrl: "desktop-sync-verification-dialog.component.html", + standalone: true, + imports: [JslibModule, ButtonModule, DialogModule], +}) +export class DesktopSyncVerificationDialogComponent { + constructor(@Inject(DIALOG_DATA) protected params: DesktopSyncVerificationDialogParams) {} + + static open(dialogService: DialogService, data: DesktopSyncVerificationDialogParams) { + return dialogService.open(DesktopSyncVerificationDialogComponent, { + data, + }); + } +} diff --git a/apps/browser/src/popup/polyfills.ts b/apps/browser/src/popup/polyfills.ts index 8edc909639d..e41e960a8d4 100644 --- a/apps/browser/src/popup/polyfills.ts +++ b/apps/browser/src/popup/polyfills.ts @@ -1,3 +1,5 @@ import "core-js/stable"; import "date-input-polyfill"; import "zone.js"; + +import "../platform/polyfills/zone-patch-chrome-runtime"; diff --git a/apps/browser/src/popup/scss/base.scss b/apps/browser/src/popup/scss/base.scss index bef8307e57a..652e7917ea4 100644 --- a/apps/browser/src/popup/scss/base.scss +++ b/apps/browser/src/popup/scss/base.scss @@ -6,6 +6,12 @@ margin: 0; } +html { + &.cdk-global-scrollblock { + position: unset; + } +} + html, body { font-family: $font-family-sans-serif; diff --git a/apps/browser/src/popup/scss/misc.scss b/apps/browser/src/popup/scss/misc.scss index 07f7b6d5091..c106931c1fc 100644 --- a/apps/browser/src/popup/scss/misc.scss +++ b/apps/browser/src/popup/scss/misc.scss @@ -422,8 +422,7 @@ img, .callout, .row-label, .modal-title, -.overlay-container, -.swal2-container { +.overlay-container { user-select: none; } diff --git a/apps/browser/src/popup/scss/plugins.scss b/apps/browser/src/popup/scss/plugins.scss index 44a181c0dcc..104927d73bb 100644 --- a/apps/browser/src/popup/scss/plugins.scss +++ b/apps/browser/src/popup/scss/plugins.scss @@ -1,5 +1,4 @@ @import "~ngx-toastr/toastr"; -@import "~#sweetalert2"; @import "variables.scss"; @import "buttons.scss"; @@ -98,119 +97,6 @@ } } -// SweetAlert - -.swal2-popup { - padding: 15px; - border-radius: $border-radius; - width: 34em; - - @include themify($themes) { - background-color: themed("backgroundColorAlt"); - color: themed("textColor"); - } - - .swal2-icon { - margin: 0 auto; - width: auto; - height: auto; - border: none; - } - - .swal2-content { - margin: 0; - font-size: $font-size-base; - @include themify($themes) { - color: themed("textColor"); - } - - label.checkbox { - margin-top: 10px; - display: flex; - text-align: left; - align-items: top; - - input { - margin: 3px 5px 0 1px; - } - } - - .swal2-input, - .swal2-textarea { - border: 1px solid #000000; - border-radius: $border-radius; - margin-bottom: 0; - box-shadow: none; - // Inherit theme font-size - font-size: inherit; - - // Sweetalert 1 did not have box-shadow - &:focus { - box-shadow: none; - } - @include themify($themes) { - border-color: themed("inputBorderColor"); - color: themed("textColor"); - background-color: themed("inputBackgroundColor"); - } - &::-webkit-input-placeholder { - @include themify($themes) { - color: themed("inputPlaceholderColor"); - } - } - } - } - - i.swal-custom-icon { - display: block; - margin: 0 auto; - font-size: 35px; - } - - .swal2-title { - padding: 10px 0 15px; - margin: 0; - font-size: $font-size-large; - - @include themify($themes) { - color: themed("textColor"); - } - } - - .swal2-text { - text-align: left; // sweetalert1 behaviour - font-size: $font-size-base; - - @include themify($themes) { - color: themed("textColor"); - } - } - - > .swal2-text:first-child { - margin-top: 20px; - } - - .swal2-actions { - margin: 20px auto 0; - justify-content: flex-start; - flex-direction: row-reverse; - - button { - margin-left: 10px; - @extend .btn; - - &.swal2-confirm { - @extend .btn, .primary; - font-weight: bold; - } - } - } - - .swal2-validation-message { - margin-top: 20px; - } -} - date-input-polyfill { &[data-open="true"] { z-index: 10000 !important; diff --git a/apps/browser/src/popup/services/services.module.ts b/apps/browser/src/popup/services/services.module.ts index 4e4f914f230..0ba396af92f 100644 --- a/apps/browser/src/popup/services/services.module.ts +++ b/apps/browser/src/popup/services/services.module.ts @@ -43,7 +43,10 @@ import { EnvironmentService } from "@bitwarden/common/platform/abstractions/envi import { FileDownloadService } from "@bitwarden/common/platform/abstractions/file-download/file-download.service"; import { FileUploadService } from "@bitwarden/common/platform/abstractions/file-upload/file-upload.service"; import { I18nService as I18nServiceAbstraction } from "@bitwarden/common/platform/abstractions/i18n.service"; -import { LogService as LogServiceAbstraction } from "@bitwarden/common/platform/abstractions/log.service"; +import { + LogService, + LogService as LogServiceAbstraction, +} 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 { @@ -502,6 +505,7 @@ function getBgService(service: keyof MainBackground) { ConfigApiServiceAbstraction, AuthServiceAbstraction, EnvironmentService, + LogService, ], }, ], diff --git a/apps/browser/src/popup/settings/await-desktop-dialog.component.html b/apps/browser/src/popup/settings/await-desktop-dialog.component.html new file mode 100644 index 00000000000..688071a15d6 --- /dev/null +++ b/apps/browser/src/popup/settings/await-desktop-dialog.component.html @@ -0,0 +1,11 @@ + + {{ "awaitDesktop" | i18n }} + + {{ "awaitDesktopDesc" | i18n }} + + + + + diff --git a/apps/browser/src/popup/settings/await-desktop-dialog.component.ts b/apps/browser/src/popup/settings/await-desktop-dialog.component.ts new file mode 100644 index 00000000000..9ed6efe036f --- /dev/null +++ b/apps/browser/src/popup/settings/await-desktop-dialog.component.ts @@ -0,0 +1,17 @@ +import { Component } from "@angular/core"; + +import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { ButtonModule, DialogModule, DialogService } from "@bitwarden/components"; + +@Component({ + templateUrl: "await-desktop-dialog.component.html", + standalone: true, + imports: [JslibModule, ButtonModule, DialogModule], +}) +export class AwaitDesktopDialogComponent { + static open(dialogService: DialogService) { + return dialogService.open(AwaitDesktopDialogComponent, { + disableClose: true, + }); + } +} diff --git a/apps/browser/src/popup/settings/settings.component.ts b/apps/browser/src/popup/settings/settings.component.ts index 30a1f03eacf..efeb6aba6d2 100644 --- a/apps/browser/src/popup/settings/settings.component.ts +++ b/apps/browser/src/popup/settings/settings.component.ts @@ -15,9 +15,9 @@ import { switchMap, takeUntil, } from "rxjs"; -import Swal from "sweetalert2"; import { ModalService } from "@bitwarden/angular/services/modal.service"; +import { FingerprintDialogComponent } from "@bitwarden/auth"; import { VaultTimeoutSettingsService } from "@bitwarden/common/abstractions/vault-timeout/vault-timeout-settings.service"; import { VaultTimeoutService } from "@bitwarden/common/abstractions/vault-timeout/vault-timeout.service"; import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction"; @@ -39,6 +39,7 @@ import { SetPinComponent } from "../components/set-pin.component"; import { PopupUtilsService } from "../services/popup-utils.service"; import { AboutComponent } from "./about.component"; +import { AwaitDesktopDialogComponent } from "./await-desktop-dialog.component"; const RateUrls = { [DeviceType.ChromeExtension]: @@ -361,25 +362,15 @@ export class SettingsComponent implements OnInit { return; } - const submitted = Swal.fire({ - heightAuto: false, - buttonsStyling: false, - titleText: this.i18nService.t("awaitDesktop"), - text: this.i18nService.t("awaitDesktopDesc"), - icon: "info", - iconHtml: '', - showCancelButton: true, - cancelButtonText: this.i18nService.t("cancel"), - showConfirmButton: false, - allowOutsideClick: false, - }); + const awaitDesktopDialogRef = AwaitDesktopDialogComponent.open(this.dialogService); + const awaitDesktopDialogClosed = firstValueFrom(awaitDesktopDialogRef.closed); await this.stateService.setBiometricAwaitingAcceptance(true); await this.cryptoService.refreshAdditionalKeys(); await Promise.race([ - submitted.then(async (result) => { - if (result.dismiss === Swal.DismissReason.cancel) { + awaitDesktopDialogClosed.then(async (result) => { + if (result) { this.form.controls.biometric.setValue(false); await this.stateService.setBiometricAwaitingAcceptance(null); } @@ -388,8 +379,6 @@ export class SettingsComponent implements OnInit { .authenticateBiometric() .then((result) => { this.form.controls.biometric.setValue(result); - - Swal.close(); if (!result) { this.platformUtilsService.showToast( "error", @@ -411,6 +400,9 @@ export class SettingsComponent implements OnInit { cancelButtonText: null, type: "danger", }); + }) + .finally(() => { + awaitDesktopDialogRef.close(false); }), ]); } else { @@ -497,27 +489,12 @@ export class SettingsComponent implements OnInit { const fingerprint = await this.cryptoService.getFingerprint( await this.stateService.getUserId() ); - const p = document.createElement("p"); - p.innerText = this.i18nService.t("yourAccountsFingerprint") + ":"; - const p2 = document.createElement("p"); - p2.innerText = fingerprint.join("-"); - const div = document.createElement("div"); - div.appendChild(p); - div.appendChild(p2); - const result = await Swal.fire({ - heightAuto: false, - buttonsStyling: false, - html: div, - showCancelButton: true, - cancelButtonText: this.i18nService.t("close"), - showConfirmButton: true, - confirmButtonText: this.i18nService.t("learnMore"), + const dialogRef = FingerprintDialogComponent.open(this.dialogService, { + fingerprint, }); - if (result.value) { - this.platformUtilsService.launchUri("https://bitwarden.com/help/fingerprint-phrase/"); - } + return firstValueFrom(dialogRef.closed); } rate() { diff --git a/apps/browser/src/tools/popup/send/send-add-edit.component.html b/apps/browser/src/tools/popup/send/send-add-edit.component.html index 707adaa7a55..11dca222fca 100644 --- a/apps/browser/src/tools/popup/send/send-add-edit.component.html +++ b/apps/browser/src/tools/popup/send/send-add-edit.component.html @@ -27,7 +27,7 @@ icon="bwi-external-link bwi-rotate-270 bwi-fw" [clickable]="true" title="{{ 'sendFileCalloutHeader' | i18n }}" - *ngIf="showFilePopoutMessage && send.type === sendType.File && !disableSend" + *ngIf="showFilePopoutMessage && type === sendType.File && !disableSend" (click)="popOutWindow()" >
{{ "sendLinuxChromiumFileWarning" | i18n }}
diff --git a/apps/browser/webpack.config.js b/apps/browser/webpack.config.js index 63174af21e9..10f9b5b2b61 100644 --- a/apps/browser/webpack.config.js +++ b/apps/browser/webpack.config.js @@ -215,10 +215,6 @@ const mainConfig = { extensions: [".ts", ".js"], symlinks: false, modules: [path.resolve("../../node_modules")], - alias: { - sweetalert2: require.resolve("sweetalert2/dist/sweetalert2.js"), - "#sweetalert2": require.resolve("sweetalert2/src/sweetalert2.scss"), - }, fallback: { assert: false, buffer: require.resolve("buffer/"), diff --git a/apps/desktop/electron-builder.json b/apps/desktop/electron-builder.json index 8e6d300218a..f1768f9b03b 100644 --- a/apps/desktop/electron-builder.json +++ b/apps/desktop/electron-builder.json @@ -19,7 +19,7 @@ "**/node_modules/@bitwarden/desktop-native/index.js", "**/node_modules/@bitwarden/desktop-native/desktop_native.${platform}-${arch}*.node" ], - "electronVersion": "24.1.1", + "electronVersion": "24.8.3", "generateUpdatesFilesForAllChannels": true, "publish": { "provider": "generic", diff --git a/apps/desktop/src/app/app.component.ts b/apps/desktop/src/app/app.component.ts index 39e2d2f8b11..34262c3a309 100644 --- a/apps/desktop/src/app/app.component.ts +++ b/apps/desktop/src/app/app.component.ts @@ -16,6 +16,7 @@ import { firstValueFrom, Subject, takeUntil } from "rxjs"; import { ModalRef } from "@bitwarden/angular/components/modal/modal.ref"; import { ModalService } from "@bitwarden/angular/services/modal.service"; +import { FingerprintDialogComponent } from "@bitwarden/auth"; import { EventUploadService } from "@bitwarden/common/abstractions/event/event-upload.service"; import { NotificationsService } from "@bitwarden/common/abstractions/notifications.service"; import { SearchService } from "@bitwarden/common/abstractions/search.service"; @@ -244,18 +245,8 @@ export class AppComponent implements OnInit, OnDestroy { const fingerprint = await this.cryptoService.getFingerprint( await this.stateService.getUserId() ); - const result = await this.dialogService.openSimpleDialog({ - title: { key: "fingerprintPhrase" }, - content: - this.i18nService.t("yourAccountsFingerprint") + ":\n" + fingerprint.join("-"), - acceptButtonText: { key: "learnMore" }, - cancelButtonText: { key: "close" }, - type: "info", - }); - - if (result) { - this.platformUtilsService.launchUri("https://bitwarden.com/help/fingerprint-phrase/"); - } + const dialogRef = FingerprintDialogComponent.open(this.dialogService, { fingerprint }); + await firstValueFrom(dialogRef.closed); break; } case "deleteAccount": diff --git a/apps/desktop/src/app/components/browser-sync-verification-dialog.component.html b/apps/desktop/src/app/components/browser-sync-verification-dialog.component.html new file mode 100644 index 00000000000..63bffe9c4e0 --- /dev/null +++ b/apps/desktop/src/app/components/browser-sync-verification-dialog.component.html @@ -0,0 +1,19 @@ + + + {{ "verifyBrowserTitle" | i18n }} + + +

{{ "verifyBrowserDesc" | i18n }}

+

+ {{ params.fingerprint.join("-") }} +

+
+ + + + +
diff --git a/apps/desktop/src/app/components/browser-sync-verification-dialog.component.ts b/apps/desktop/src/app/components/browser-sync-verification-dialog.component.ts new file mode 100644 index 00000000000..aefa5672a94 --- /dev/null +++ b/apps/desktop/src/app/components/browser-sync-verification-dialog.component.ts @@ -0,0 +1,25 @@ +import { DIALOG_DATA } from "@angular/cdk/dialog"; +import { Component, Inject } from "@angular/core"; + +import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { ButtonModule, DialogModule, DialogService } from "@bitwarden/components"; + +export type BrowserSyncVerificationDialogParams = { + fingerprint: string[]; +}; + +@Component({ + templateUrl: "browser-sync-verification-dialog.component.html", + standalone: true, + imports: [JslibModule, ButtonModule, DialogModule], +}) +export class BrowserSyncVerificationDialogComponent { + constructor(@Inject(DIALOG_DATA) protected params: BrowserSyncVerificationDialogParams) {} + + static open(dialogService: DialogService, data: BrowserSyncVerificationDialogParams) { + return dialogService.open(BrowserSyncVerificationDialogComponent, { + data, + disableClose: true, + }); + } +} diff --git a/apps/desktop/src/app/components/verify-native-messaging-dialog.component.html b/apps/desktop/src/app/components/verify-native-messaging-dialog.component.html new file mode 100644 index 00000000000..0334857962b --- /dev/null +++ b/apps/desktop/src/app/components/verify-native-messaging-dialog.component.html @@ -0,0 +1,18 @@ + + + {{ "verifyNativeMessagingConnectionTitle" | i18n : data.applicationName }}: + + + {{ "verifyNativeMessagingConnectionDesc" | i18n }} +
+ {{ "verifyNativeMessagingConnectionWarning" | i18n }} +
+ + + + +
diff --git a/apps/desktop/src/app/components/verify-native-messaging-dialog.component.ts b/apps/desktop/src/app/components/verify-native-messaging-dialog.component.ts new file mode 100644 index 00000000000..507d566336b --- /dev/null +++ b/apps/desktop/src/app/components/verify-native-messaging-dialog.component.ts @@ -0,0 +1,24 @@ +import { DIALOG_DATA } from "@angular/cdk/dialog"; +import { Component, Inject } from "@angular/core"; + +import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { ButtonModule, DialogModule, DialogService } from "@bitwarden/components"; + +export type VerifyNativeMessagingDialogData = { + applicationName: string; +}; + +@Component({ + templateUrl: "verify-native-messaging-dialog.component.html", + standalone: true, + imports: [JslibModule, ButtonModule, DialogModule], +}) +export class VerifyNativeMessagingDialogComponent { + constructor(@Inject(DIALOG_DATA) protected data: VerifyNativeMessagingDialogData) {} + + static open(dialogService: DialogService, data: VerifyNativeMessagingDialogData) { + return dialogService.open(VerifyNativeMessagingDialogComponent, { + data, + }); + } +} diff --git a/apps/desktop/src/app/services/services.module.ts b/apps/desktop/src/app/services/services.module.ts index 42208077c33..c6fd0049901 100644 --- a/apps/desktop/src/app/services/services.module.ts +++ b/apps/desktop/src/app/services/services.module.ts @@ -4,7 +4,6 @@ import { SECURE_STORAGE, STATE_FACTORY, STATE_SERVICE_USE_CACHE, - CLIENT_TYPE, LOCALES_DIRECTORY, SYSTEM_LANGUAGE, MEMORY_STORAGE, @@ -15,7 +14,6 @@ import { PolicyService as PolicyServiceAbstraction } from "@bitwarden/common/adm import { AuthService as AuthServiceAbstraction } from "@bitwarden/common/auth/abstractions/auth.service"; import { LoginService as LoginServiceAbstraction } from "@bitwarden/common/auth/abstractions/login.service"; import { LoginService } from "@bitwarden/common/auth/services/login.service"; -import { ClientType } from "@bitwarden/common/enums"; import { BroadcasterService as BroadcasterServiceAbstraction } from "@bitwarden/common/platform/abstractions/broadcaster.service"; import { CryptoFunctionService as CryptoFunctionServiceAbstraction } from "@bitwarden/common/platform/abstractions/crypto-function.service"; import { CryptoService as CryptoServiceAbstraction } from "@bitwarden/common/platform/abstractions/crypto.service"; @@ -82,10 +80,6 @@ const RELOAD_CALLBACK = new InjectionToken<() => any>("RELOAD_CALLBACK"); provide: STATE_FACTORY, useValue: new StateFactory(GlobalState, Account), }, - { - provide: CLIENT_TYPE, - useValue: ClientType.Desktop, - }, { provide: RELOAD_CALLBACK, useValue: null, @@ -94,12 +88,7 @@ const RELOAD_CALLBACK = new InjectionToken<() => any>("RELOAD_CALLBACK"); { provide: PlatformUtilsServiceAbstraction, useClass: ElectronPlatformUtilsService, - deps: [ - I18nServiceAbstraction, - MessagingServiceAbstraction, - CLIENT_TYPE, - StateServiceAbstraction, - ], + deps: [I18nServiceAbstraction, MessagingServiceAbstraction], }, { provide: I18nServiceAbstraction, @@ -169,6 +158,7 @@ const RELOAD_CALLBACK = new InjectionToken<() => any>("RELOAD_CALLBACK"); MessagingServiceAbstraction, I18nServiceAbstraction, EncryptedMessageHandlerService, + DialogService, ], }, { diff --git a/apps/desktop/src/app/tools/send/add-edit.component.ts b/apps/desktop/src/app/tools/send/add-edit.component.ts index 98764866a54..aeb8f951175 100644 --- a/apps/desktop/src/app/tools/send/add-edit.component.ts +++ b/apps/desktop/src/app/tools/send/add-edit.component.ts @@ -50,7 +50,6 @@ export class AddEditComponent extends BaseAddEditComponent { } async refresh() { - this.password = null; const send = await this.loadSend(); this.send = await send.decrypt(); this.updateFormValues(); diff --git a/apps/desktop/src/locales/af/messages.json b/apps/desktop/src/locales/af/messages.json index 7ef63a8aab2..dd0843dc188 100644 --- a/apps/desktop/src/locales/af/messages.json +++ b/apps/desktop/src/locales/af/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Stuur tans persoonlike kluis uit" }, - "exportingPersonalVaultDescription": { - "message": "Slegs die persoonlike kluisitems wat met $EMAIL$ verbind word, word uitgestuur. Organisasiekluisitems word nie ingesluit nie.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/ar/messages.json b/apps/desktop/src/locales/ar/messages.json index ceefd1ecc26..738634afb93 100644 --- a/apps/desktop/src/locales/ar/messages.json +++ b/apps/desktop/src/locales/ar/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "تصدير الخزنة الشخصية" }, - "exportingPersonalVaultDescription": { - "message": "سيتم تصدير فقط عناصر الخزنة الشخصية المرتبطة بـ $EMAIL$. لن يتم إدراج عناصر خزنة المؤسسة.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/az/messages.json b/apps/desktop/src/locales/az/messages.json index 8d0f0211a4c..3d842ff3843 100644 --- a/apps/desktop/src/locales/az/messages.json +++ b/apps/desktop/src/locales/az/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Şəxsi anbarın ixracı" }, - "exportingPersonalVaultDescription": { - "message": "Yalnız $EMAIL$ ilə əlaqəli şəxsi anbar elementləri ixrac ediləcək. Təşkilat anbar elementləri daxil edilmir.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "öz-özünə sahiblik edən" }, "accessDenied": { "message": "Müraciət rədd edildi. Bu səhifəyə baxmaq üçün icazəniz yoxdur." diff --git a/apps/desktop/src/locales/be/messages.json b/apps/desktop/src/locales/be/messages.json index 666dac70c24..3148dcb2b42 100644 --- a/apps/desktop/src/locales/be/messages.json +++ b/apps/desktop/src/locales/be/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Экспартаванне асабістага сховішча" }, - "exportingPersonalVaultDescription": { - "message": "Будуць экспартаваны толькі асабістыя элементы сховішча, якія звязаны з $EMAIL$. Элементы сховішча арганізацыі не будуць уключаны.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/bg/messages.json b/apps/desktop/src/locales/bg/messages.json index bd6552824a5..6266883d29b 100644 --- a/apps/desktop/src/locales/bg/messages.json +++ b/apps/desktop/src/locales/bg/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Изнасяне на личния трезор" }, - "exportingPersonalVaultDescription": { - "message": "Ще бъдат изнесени само записите от личния трезор свързан с $EMAIL$. Записите в трезора на организацията няма да бъдат включени.", + "exportingIndividualVaultDescription": { + "message": "Ще бъдат изнесени само отделните записи в трезора, които са свързани с $EMAIL$. Записите от трезора на организацията няма да бъдат включени. Ще бъде изнесена само информацията за записите от трезора, а свързаните прикачени елементи няма да бъдат включени.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "собствен хостинг" }, "accessDenied": { "message": "Достъпът е отказан. Нямате право за преглед на тази страница." diff --git a/apps/desktop/src/locales/bn/messages.json b/apps/desktop/src/locales/bn/messages.json index 0297dfc157c..d94904b486e 100644 --- a/apps/desktop/src/locales/bn/messages.json +++ b/apps/desktop/src/locales/bn/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/bs/messages.json b/apps/desktop/src/locales/bs/messages.json index 0d5ed75caf9..dbe4af97e66 100644 --- a/apps/desktop/src/locales/bs/messages.json +++ b/apps/desktop/src/locales/bs/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/ca/messages.json b/apps/desktop/src/locales/ca/messages.json index ab40caa8431..365ca0dda4d 100644 --- a/apps/desktop/src/locales/ca/messages.json +++ b/apps/desktop/src/locales/ca/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "S'està exportant la caixa forta personal" }, - "exportingPersonalVaultDescription": { - "message": "Només s'exportaran els elements personals de la caixa forta associats a $EMAIL$. Els elements de la caixa forta de l'organització no s'inclouran.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "autoallotjat" }, "accessDenied": { "message": "Accés denegat. No teniu permís per veure aquesta pàgina." diff --git a/apps/desktop/src/locales/cs/messages.json b/apps/desktop/src/locales/cs/messages.json index 3d90680ae0e..875b1f85831 100644 --- a/apps/desktop/src/locales/cs/messages.json +++ b/apps/desktop/src/locales/cs/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exportování osobního trezoru" }, - "exportingPersonalVaultDescription": { - "message": "Budou exportovány jen osobní položky trezoru spojené s účtem $EMAIL$. Nebudou zahrnuty položky trezoru v organizaci.", + "exportingIndividualVaultDescription": { + "message": "Budou exportovány jen osobní položky trezoru spojené s $EMAIL$. Položky trezoru organizace nebudou zahrnuty. Budou exportovány jen informace o položkách trezoru a nebudou zahrnuty související přílohy.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "vlastní hosting" }, "accessDenied": { "message": "Přístup byl odepřen. Nemáte oprávnění k zobrazení této stránky." diff --git a/apps/desktop/src/locales/cy/messages.json b/apps/desktop/src/locales/cy/messages.json index 6d569a89554..1eaa44b7109 100644 --- a/apps/desktop/src/locales/cy/messages.json +++ b/apps/desktop/src/locales/cy/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/da/messages.json b/apps/desktop/src/locales/da/messages.json index 0f3a5603b7e..16c619b8caf 100644 --- a/apps/desktop/src/locales/da/messages.json +++ b/apps/desktop/src/locales/da/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Eksporterer individuel boks" }, - "exportingPersonalVaultDescription": { - "message": "Kun de individuelle boksemner tilknyttet $EMAIL$ eksporteres. Organisationsboksemner medtages ikke.", + "exportingIndividualVaultDescription": { + "message": "Kun individuelle Boksemner tilknyttet $EMAIL$ eksporteres. Organisationsboksemner medtages ikke. Kun Boksemneinformation uden tilhørende vedhæftninger eksporteres.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/de/messages.json b/apps/desktop/src/locales/de/messages.json index 889446eff62..b946a3f5f37 100644 --- a/apps/desktop/src/locales/de/messages.json +++ b/apps/desktop/src/locales/de/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Persönlichen Tresor exportieren" }, - "exportingPersonalVaultDescription": { - "message": "Nur die persönlichen Tresor-Einträge, die mit $EMAIL$ verbunden sind, werden exportiert. Tresor-Einträge der Organisation werden nicht berücksichtigt.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/el/messages.json b/apps/desktop/src/locales/el/messages.json index 9e2c135b873..8bab72d6219 100644 --- a/apps/desktop/src/locales/el/messages.json +++ b/apps/desktop/src/locales/el/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Εξαγωγή Προσωπικού Vault" }, - "exportingPersonalVaultDescription": { - "message": "Θα εξαχθούν μόνο τα προσωπικά αντικείμενα Vault που σχετίζονται με το $EMAIL$. Τα αντικείμενα Vault οργανισμού δεν θα συμπεριληφθούν.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/en/messages.json b/apps/desktop/src/locales/en/messages.json index aeb95659268..3822b66aafa 100644 --- a/apps/desktop/src/locales/en/messages.json +++ b/apps/desktop/src/locales/en/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/en_GB/messages.json b/apps/desktop/src/locales/en_GB/messages.json index 923a8e143b9..d2b0cc4dae2 100644 --- a/apps/desktop/src/locales/en_GB/messages.json +++ b/apps/desktop/src/locales/en_GB/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organisation vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/en_IN/messages.json b/apps/desktop/src/locales/en_IN/messages.json index 19c80a97d3b..a641a0a8b60 100644 --- a/apps/desktop/src/locales/en_IN/messages.json +++ b/apps/desktop/src/locales/en_IN/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/eo/messages.json b/apps/desktop/src/locales/eo/messages.json index 0da8a023615..77199adbb81 100644 --- a/apps/desktop/src/locales/eo/messages.json +++ b/apps/desktop/src/locales/eo/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/es/messages.json b/apps/desktop/src/locales/es/messages.json index aaaa54a35a4..ca03ed49e98 100644 --- a/apps/desktop/src/locales/es/messages.json +++ b/apps/desktop/src/locales/es/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exportando caja fuerte personal" }, - "exportingPersonalVaultDescription": { - "message": "Solo se exportarán los elementos de la caja fuerte personal asociados con $EMAIL$. Los elementos de la bóveda de la organización no se incluirán.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/et/messages.json b/apps/desktop/src/locales/et/messages.json index 603f695d5b3..0811a107390 100644 --- a/apps/desktop/src/locales/et/messages.json +++ b/apps/desktop/src/locales/et/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Personaalse hoidla eksportimine" }, - "exportingPersonalVaultDescription": { - "message": "Ainult personaalsed $EMAIL$ alla kuuluvad kirjed eksportidakse. Organisatsiooni kirjeid ei ekspordita.", + "exportingIndividualVaultDescription": { + "message": "Ainult e-postiga $EMAIL$ seonduvad kirjed eksporditakse. Organisatsiooni kirjeid ei kaasata. Samuti ei kaasata organisatsiooniga seonduvaid manuseid.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/eu/messages.json b/apps/desktop/src/locales/eu/messages.json index 517b56a07f8..7cea45c7e4e 100644 --- a/apps/desktop/src/locales/eu/messages.json +++ b/apps/desktop/src/locales/eu/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Kutxa gotor pertsonala esportatzen" }, - "exportingPersonalVaultDescription": { - "message": "$EMAIL$-ekin lotutako kutxa gotor pertsonaleko elementuak bakarrik esportatuko dira. Erakundeko kutxa gotorraren elementuak ez dira sartuko.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/fa/messages.json b/apps/desktop/src/locales/fa/messages.json index bf7f8b25329..bb429f07742 100644 --- a/apps/desktop/src/locales/fa/messages.json +++ b/apps/desktop/src/locales/fa/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "برون ریزی گاو‌صندوق شخصی" }, - "exportingPersonalVaultDescription": { - "message": "فقط موارد گاو‌صندوق شخصی مرتبط با $EMAIL$ برون ریزی خواهد شد. موارد گاو‌صندوق سازمان شامل نخواهد شد.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/fi/messages.json b/apps/desktop/src/locales/fi/messages.json index 76bd8d322d4..64161295558 100644 --- a/apps/desktop/src/locales/fi/messages.json +++ b/apps/desktop/src/locales/fi/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Henkilökohtaisen holvin vienti" }, - "exportingPersonalVaultDescription": { - "message": "Vain tunnukseen $EMAIL$ liitetyt henkilökohtaisen holvin kohteet viedään. Organisaation kohteet eivät sisälly tähän.", + "exportingIndividualVaultDescription": { + "message": "Vain tunnukseen $EMAIL$ liitetyt yksityisen holvin kohteet viedään. Organisaation holvin kohteita ei sisällytetä. Vain holvin kohteiden tiedot viedään ilman niiden sisältämiä liitteitä.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "itse ylläpidetty" }, "accessDenied": { "message": "Pääsy estetty. Sinulla ei ole oikeutta avata sivua." diff --git a/apps/desktop/src/locales/fil/messages.json b/apps/desktop/src/locales/fil/messages.json index c89830c0d8f..69a63c46c1a 100644 --- a/apps/desktop/src/locales/fil/messages.json +++ b/apps/desktop/src/locales/fil/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Pag-export ng indibidwal na vault" }, - "exportingPersonalVaultDescription": { - "message": "Tanging ang mga indibidwal na vault item na nauugnay sa $EMAIL$ ang i-export. Hindi isasama ang mga vault item ng organisasyon.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/fr/messages.json b/apps/desktop/src/locales/fr/messages.json index 776e518fea8..0e817f63285 100644 --- a/apps/desktop/src/locales/fr/messages.json +++ b/apps/desktop/src/locales/fr/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Export du coffre personnel" }, - "exportingPersonalVaultDescription": { - "message": "Seuls les éléments individuels du coffre associés à $EMAIL$ seront exportés. Les éléments du coffre de l'organisation ne seront pas inclus.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "auto-hébergé" }, "accessDenied": { "message": "Accès refusé. Vous n'avez pas l'autorisation de voir cette page." diff --git a/apps/desktop/src/locales/gl/messages.json b/apps/desktop/src/locales/gl/messages.json index 6d569a89554..1eaa44b7109 100644 --- a/apps/desktop/src/locales/gl/messages.json +++ b/apps/desktop/src/locales/gl/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/he/messages.json b/apps/desktop/src/locales/he/messages.json index 6fd77738b06..37d13549d77 100644 --- a/apps/desktop/src/locales/he/messages.json +++ b/apps/desktop/src/locales/he/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "הכספת האישית מיוצאת" }, - "exportingPersonalVaultDescription": { - "message": "רק פריטי הכספת האישית שמשויכת עם $EMAIL$ ייוצאו. פריטי הכספת הארגוניים לא יהיו חלק מהייצוא.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/hi/messages.json b/apps/desktop/src/locales/hi/messages.json index b19b9abd72e..d3c58ec6e8f 100644 --- a/apps/desktop/src/locales/hi/messages.json +++ b/apps/desktop/src/locales/hi/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/hr/messages.json b/apps/desktop/src/locales/hr/messages.json index ab08f7d5de9..e30758aaa13 100644 --- a/apps/desktop/src/locales/hr/messages.json +++ b/apps/desktop/src/locales/hr/messages.json @@ -771,7 +771,7 @@ "message": "Kontaktiraj nas" }, "helpAndFeedback": { - "message": "Help and feedback" + "message": "Pomoć i podrška" }, "getHelp": { "message": "Potraži pomoć" @@ -1078,7 +1078,7 @@ "message": "1 GB šifriranog prostora za pohranu podataka." }, "premiumSignUpTwoStepOptions": { - "message": "Proprietary two-step login options such as YubiKey and Duo." + "message": "Mogućnosti za prijavu u dva koraka kao što su YubiKey i Duo." }, "premiumSignUpReports": { "message": "Higijenu lozinki, zdravlje računa i izvještaje o krađi podatak radi zaštite svojeg trezora." @@ -1393,7 +1393,7 @@ "message": "Otključaj koristeći Windows Hello" }, "additionalWindowsHelloSettings": { - "message": "Additional Windows Hello settings" + "message": "Dodatne Windows Hello postavke" }, "windowsHelloConsentMessage": { "message": "Otključaj trezor." @@ -1402,7 +1402,7 @@ "message": "Otključaj koristeći Touch ID" }, "additionalTouchIdSettings": { - "message": "Additional Touch ID settings" + "message": "Dodatne Touch ID postavke" }, "touchIdConsentMessage": { "message": "Otključaj trezor" @@ -1414,10 +1414,10 @@ "message": "Zahtijevaj Touch ID pri pokretanju" }, "requirePasswordOnStart": { - "message": "Require password or PIN on app start" + "message": "Zahtijevaj lozinku ili PIN pri pokretanju" }, "recommendedForSecurity": { - "message": "Recommended for security." + "message": "Preporučeno za sigurnost." }, "lockWithMasterPassOnRestart": { "message": "Zaključaj glavnom lozinkom kod svakog pokretanja" @@ -1487,13 +1487,13 @@ "message": "Nakon isteka trezora" }, "vaultTimeoutActionLockDesc": { - "message": "Potrebno je ponovno unijeti glavnu lozinku ili na drugi način otključati za pristup tvom trezoru." + "message": "Za pristup tvom trezoru, potrebno je ponovno unijeti glavnu lozinku ili ga na drugi način otključati." }, "vaultTimeoutActionLogOutDesc": { - "message": "Potrebno je ponovno unijeti korisničko ime i glavnu lozinku za pristup tvom trezoru." + "message": "Za pristup tvom trezoru, potrebno je ponovno unijeti korisničko ime i glavnu lozinku." }, "unlockMethodNeededToChangeTimeoutActionDesc": { - "message": "Set up an unlock method to change your vault timeout action." + "message": "Za promjenu vremena isteka trezora, odredi način otključavanja." }, "lock": { "message": "Zaključaj", @@ -1525,7 +1525,7 @@ "message": "Odjava će ukloniti pristup tvojem trezoru i zahtijeva mrežnu potvrdu identiteta nakon isteka vremenske neaktivnosti. Sigurno želiš koristiti ovu postavku?" }, "vaultTimeoutLogOutConfirmationTitle": { - "message": "Potvrda akcije vremenske neaktivnosti" + "message": "Potvrda radnje nakon vremenske neaktivnosti" }, "enterpriseSingleSignOn": { "message": "Jedinstvena prijava na razini tvrtke (SSO)" @@ -1537,7 +1537,7 @@ "message": "Za dovršetak jedinstvene prijave na razini tvrtke (SSO), postavi glavnu lozinku za pristup i zaštitu tvog trezora." }, "currentMasterPass": { - "message": "Current master password" + "message": "Trenutna glavna lozinka" }, "newMasterPass": { "message": "Nova glavna lozinka" @@ -1856,7 +1856,7 @@ "message": "Tvoju glavnu lozinku je nedavno promijenio administrator tvoje organizacije. Za pristup trezoru, potrebno je ažurirati glavnu lozinku, što će te odjaviti iz trenutne sesije, te ćeš se morati ponovno prijaviti. Aktivne sesije na drugim uređajima mogu ostati aktivne još sat vremena." }, "updateWeakMasterPasswordWarning": { - "message": "Your master password does not meet one or more of your organization policies. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + "message": "Tvoja glavna lozinka ne zadovoljava pravila ove organizacije. Za pristup trezoru moraš odmah ažurirati svoju glavnu lozinku. Ako nastaviš, odjaviti ćeš se iz trenutne sesije te ćeš se morati ponovno prijaviti. Aktivne sesije na drugim uređajima mogu ostati aktivne do jedan sat." }, "hours": { "message": "sat(i)" @@ -1878,7 +1878,7 @@ } }, "vaultTimeoutPolicyWithActionInEffect": { - "message": "Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is $HOURS$ hour(s) and $MINUTES$ minute(s). Your vault timeout action is set to $ACTION$.", + "message": "Pravilo tvoje organizacije utječe na istek trezora. Najveće dozvoljeno vrijeme isteka je $HOURS$:$MINUTES$ h. Tvoja radnja nakon isteka trezora je: $ACTION$.", "placeholders": { "hours": { "content": "$1", @@ -1895,7 +1895,7 @@ } }, "vaultTimeoutActionPolicyInEffect": { - "message": "Your organization policies have set your vault timeout action to $ACTION$.", + "message": "Pravilo tvoje organizacije podesilo je radnju nakon isteka trezora na: $ACTION$.", "placeholders": { "action": { "content": "$1", @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Izvoz osobnog trezora u tijeku" }, - "exportingPersonalVaultDescription": { - "message": "Izvest će se samo stavke osobnog trezora povezanog s $EMAIL$. Stavke organizacijskog trezora neće biti uključene.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2110,7 +2110,7 @@ "message": "Prijava drugim uređajem" }, "loginInitiated": { - "message": "Login initiated" + "message": "Prijava pokrenuta" }, "notificationSentDevice": { "message": "Obavijest je poslana na tvoj uređaj." @@ -2244,41 +2244,41 @@ } }, "windowsBiometricUpdateWarning": { - "message": "Bitwarden recommends updating your biometric settings to require your master password (or PIN) on the first unlock. Would you like to update your settings now?" + "message": "Bitwarden preporučuje ažuriranje tvojih biometrijskih postavki kako bi se pri prvom otključavanju zahtijevala glavna lozinka (ili PIN). Želiš li sada ažurirati svoje postavke?" }, "windowsBiometricUpdateWarningTitle": { - "message": "Recommended Settings Update" + "message": "Preporučeno ažuriranje postavki" }, "deviceApprovalRequired": { - "message": "Device approval required. Select an approval option below:" + "message": "Potrebno je odobriti uređaj. Odaberi metodu odobravanja:" }, "rememberThisDevice": { - "message": "Remember this device" + "message": "Zapamti ovaj uređaj" }, "uncheckIfPublicDevice": { - "message": "Uncheck if using a public device" + "message": "Odznači ako koristiš javni uređaj" }, "approveFromYourOtherDevice": { - "message": "Approve from your other device" + "message": "Odobri drugim uređajem" }, "requestAdminApproval": { - "message": "Request admin approval" + "message": "Zatraži odobrenje administratora" }, "approveWithMasterPassword": { - "message": "Approve with master password" + "message": "Odobri glavnom lozinkom" }, "region": { - "message": "Region" + "message": "Regija" }, "ssoIdentifierRequired": { - "message": "Organization SSO identifier is required." + "message": "Potreban je identifikator organizacije." }, "eu": { "message": "EU", "description": "European Union" }, "loggingInOn": { - "message": "Logging in on" + "message": "Prijava na" }, "usDomain": { "message": "bitwarden.com" @@ -2287,46 +2287,46 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "vlastiti poslužitelj" }, "accessDenied": { - "message": "Access denied. You do not have permission to view this page." + "message": "Pristup odbijen. Nemaš prava vidjeti ovu stranicu." }, "accountSuccessfullyCreated": { - "message": "Account successfully created!" + "message": "Račun je uspješno stvoren!" }, "adminApprovalRequested": { - "message": "Admin approval requested" + "message": "Zatraženo odobrenje administratora" }, "adminApprovalRequestSentToAdmins": { - "message": "Your request has been sent to your admin." + "message": "Tvoj zahtjev je poslan administratoru." }, "youWillBeNotifiedOnceApproved": { - "message": "You will be notified once approved." + "message": "Dobiti ćeš obavijest kada bude odobreno." }, "troubleLoggingIn": { - "message": "Trouble logging in?" + "message": "Problem s prijavom?" }, "loginApproved": { - "message": "Login approved" + "message": "Prijava odobrena" }, "userEmailMissing": { - "message": "User email missing" + "message": "Nedostaje e-pošta korisnika" }, "deviceTrusted": { - "message": "Device trusted" + "message": "Uređaj pouzdan" }, "inputRequired": { - "message": "Input is required." + "message": "Potreban je unos." }, "required": { - "message": "required" + "message": "obavezno" }, "search": { - "message": "Search" + "message": "Traži" }, "inputMinLength": { - "message": "Input must be at least $COUNT$ characters long.", + "message": "Unos mora sadržavati najmanje $COUNT$ znakova.", "placeholders": { "count": { "content": "$1", @@ -2335,7 +2335,7 @@ } }, "inputMaxLength": { - "message": "Input must not exceed $COUNT$ characters in length.", + "message": "Unos ne smije imati više od $COUNT$ znakova.", "placeholders": { "count": { "content": "$1", @@ -2344,7 +2344,7 @@ } }, "inputForbiddenCharacters": { - "message": "The following characters are not allowed: $CHARACTERS$", + "message": "Ovi znakovi nisu dozvoljeni: $CHARACTERS$", "placeholders": { "characters": { "content": "$1", @@ -2353,7 +2353,7 @@ } }, "inputMinValue": { - "message": "Input value must be at least $MIN$.", + "message": "Unos mora biti najmanje $MIN$.", "placeholders": { "min": { "content": "$1", @@ -2362,7 +2362,7 @@ } }, "inputMaxValue": { - "message": "Input value must not exceed $MAX$.", + "message": "Unos ne smije biti više od $MAX$.", "placeholders": { "max": { "content": "$1", @@ -2371,17 +2371,17 @@ } }, "multipleInputEmails": { - "message": "1 or more emails are invalid" + "message": "Jedna ili više adresa e-pošte nije valjana" }, "inputTrimValidator": { - "message": "Input must not contain only whitespace.", + "message": "Unos ne smije biti prazan.", "description": "Notification to inform the user that a form's input can't contain only whitespace." }, "inputEmail": { - "message": "Input is not an email address." + "message": "Nije unesena adresa e-pošte." }, "fieldsNeedAttention": { - "message": "$COUNT$ field(s) above need your attention.", + "message": "$COUNT$ polje/a treba tvoju pažnju.", "placeholders": { "count": { "content": "$1", @@ -2390,22 +2390,22 @@ } }, "selectPlaceholder": { - "message": "-- Select --" + "message": "-- Odaberi --" }, "multiSelectPlaceholder": { - "message": "-- Type to filter --" + "message": "-- Upiši za filtriranje --" }, "multiSelectLoading": { - "message": "Retrieving options..." + "message": "Dohvaćanje opcija..." }, "multiSelectNotFound": { - "message": "No items found" + "message": "Nije pronađena niti jedna stavka" }, "multiSelectClearAll": { - "message": "Clear all" + "message": "Očisti sve" }, "plusNMore": { - "message": "+ $QUANTITY$ more", + "message": "+ još $QUANTITY$", "placeholders": { "quantity": { "content": "$1", @@ -2414,6 +2414,6 @@ } }, "submenu": { - "message": "Submenu" + "message": "Podizbornik" } } diff --git a/apps/desktop/src/locales/hu/messages.json b/apps/desktop/src/locales/hu/messages.json index 7df69e64b83..8987df7e283 100644 --- a/apps/desktop/src/locales/hu/messages.json +++ b/apps/desktop/src/locales/hu/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Személyes széf exportálása" }, - "exportingPersonalVaultDescription": { - "message": "Csak $EMAIL$ email címmel társított személyes széf elemek kerülnek exportálásra. Ebbe nem kerülnek be a szervezeti széf elemek.", + "exportingIndividualVaultDescription": { + "message": "$EMAIL$ email címhez társított egyedi széfek kerülnek csak exportálásra. A szervezeti széf elemei nem lesznek benne. Csak a széf információk kerülnek exportálásra és nem tartalmazzák a kapcsolódó mellékleteket.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "saját üzemeltetésű" }, "accessDenied": { "message": "A hozzáférés megtagadásra került. Nincs jogosultság az oldal megtekintésére." diff --git a/apps/desktop/src/locales/id/messages.json b/apps/desktop/src/locales/id/messages.json index 5dca15ddee2..728e5581722 100644 --- a/apps/desktop/src/locales/id/messages.json +++ b/apps/desktop/src/locales/id/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/it/messages.json b/apps/desktop/src/locales/it/messages.json index 3b4c20e0f00..7bff6e03ab7 100644 --- a/apps/desktop/src/locales/it/messages.json +++ b/apps/desktop/src/locales/it/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Esportando cassaforte individuale" }, - "exportingPersonalVaultDescription": { - "message": "Solo gli elementi della cassaforte personale associati a $EMAIL$ saranno esportati. Gli elementi della cassaforte dell'organizzazione non saranno inclusi.", + "exportingIndividualVaultDescription": { + "message": "Solo gli elementi della cassaforte personale associati a $EMAIL$ saranno esportati. Gli elementi della cassaforte dell'organizzazione non saranno inclusi. Solo le informazioni sugli elementi della cassaforte saranno esportate e non includeranno gli allegati.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/ja/messages.json b/apps/desktop/src/locales/ja/messages.json index a4f830256fa..4972332cd7a 100644 --- a/apps/desktop/src/locales/ja/messages.json +++ b/apps/desktop/src/locales/ja/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "個人保管庫のエクスポート" }, - "exportingPersonalVaultDescription": { - "message": "$EMAIL$ に関連付けられた個人用保管庫アイテムのみがエクスポートされます。組織用保管庫アイテムは含まれません。", + "exportingIndividualVaultDescription": { + "message": "$EMAIL$ に関連付けられた個人の保管庫アイテムのみがエクスポートされます。組織の保管庫アイテムは含まれません。 保管庫アイテム情報のみがエクスポートされ、関連する添付ファイルはエクスポートされません。", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "自己ホスト型" }, "accessDenied": { "message": "アクセスが拒否されました。このページを表示する権限がありません。" diff --git a/apps/desktop/src/locales/ka/messages.json b/apps/desktop/src/locales/ka/messages.json index 6d569a89554..1eaa44b7109 100644 --- a/apps/desktop/src/locales/ka/messages.json +++ b/apps/desktop/src/locales/ka/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/km/messages.json b/apps/desktop/src/locales/km/messages.json index 6d569a89554..1eaa44b7109 100644 --- a/apps/desktop/src/locales/km/messages.json +++ b/apps/desktop/src/locales/km/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/kn/messages.json b/apps/desktop/src/locales/kn/messages.json index 5ba16861ece..cc595c6efeb 100644 --- a/apps/desktop/src/locales/kn/messages.json +++ b/apps/desktop/src/locales/kn/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/ko/messages.json b/apps/desktop/src/locales/ko/messages.json index afe34afb3f3..6433157727d 100644 --- a/apps/desktop/src/locales/ko/messages.json +++ b/apps/desktop/src/locales/ko/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "개인 보관함을 내보내는 중" }, - "exportingPersonalVaultDescription": { - "message": "$EMAIL$ 이메일과 관련이 있는 개인 보관함 항목만 내보내집니다. 조직의 보관함 항목은 포함되지 않습니다.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/lt/messages.json b/apps/desktop/src/locales/lt/messages.json index c15d273916d..033ba1910fe 100644 --- a/apps/desktop/src/locales/lt/messages.json +++ b/apps/desktop/src/locales/lt/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/lv/messages.json b/apps/desktop/src/locales/lv/messages.json index b82788f8d30..63179371b82 100644 --- a/apps/desktop/src/locales/lv/messages.json +++ b/apps/desktop/src/locales/lv/messages.json @@ -646,21 +646,21 @@ "message": "YubiKey OTP drošības atslēga" }, "yubiKeyDesc": { - "message": "Izmanto YubiKey, lai piekļūtu savam kontam! Darbojas ar YubiKey 4, 4 Nano, 4C un NEO ierīcēm." + "message": "Ir izmantojams YubiKey, lai piekļūtu savam kontam. Darbojas ar YubiKey 4, 4 Nano, 4C un NEO ierīcēm." }, "duoDesc": { - "message": "Apstiprini ar Duo Security, izmantojot Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu!", + "message": "Ar Duo Security apliecināšanu var veikt ar Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { - "message": "Apstiprini ar Duo Security savā apvienībā, izmantojot Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu!", + "message": "Apliecināšana ar savas apvienības Duo Security, izmantojot Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "webAuthnTitle": { "message": "FIDO2 WebAuthn" }, "webAuthnDesc": { - "message": "Izmantot jebkuru WebAuthn atbalstošu drošības atslēgu, lai piekļūtu kontam." + "message": "Ir izmantojama jebkura WebAuthn atbalstošu drošības atslēgu, lai piekļūtu kontam." }, "emailTitle": { "message": "E-pasts" @@ -675,7 +675,7 @@ "message": "Šim kontam ir iespējota divpakāpju pieteikšanās, bet šajā ierīcē netiek atbalstīts neviens no uzstādītajiem divpakāpju pārbaudes nodrošinātājiem." }, "noTwoStepProviders2": { - "message": "Lūgums pievienot papildus nodrošinātājus, kas tiek labāk atbalstīti dažādās ierīcēs (piemēram, autentificētāja lietotne)." + "message": "Lūgums pievienot papildu nodrošinātājus, kas tiek labāk atbalstīti dažādās ierīcēs (piemēram, autentificētāja lietotne)." }, "twoStepOptions": { "message": "Divpakāpju pieteikšanās iespējas" @@ -1191,7 +1191,7 @@ "message": "Izslēgt Bitwarden" }, "valueCopied": { - "message": "$VALUE$ ievietota starpliktuvē", + "message": "$VALUE$ ir starpliktuvē", "description": "Value has been copied to the clipboard.", "placeholders": { "value": { @@ -1423,13 +1423,13 @@ "message": "Aizslēgt ar galveno paroli pēc pārsāknēšanas" }, "deleteAccount": { - "message": "Dzēst kontu" + "message": "Izdzēst kontu" }, "deleteAccountDesc": { "message": "Turpināt zemāk, lai izdzēstu kontu un visu glabātavas sasturu." }, "deleteAccountWarning": { - "message": "Konta dzēšana ir paliekoša. To nevar atsaukt." + "message": "Konta izdzēšana ir neatgriezeniska. To nevar atsaukt." }, "accountDeleted": { "message": "Konts tika izdzēsts" @@ -1453,7 +1453,7 @@ "message": "Ir jāizvēlas vismaz viens krājums." }, "premiumUpdated": { - "message": "Tu esi pārgājis uz Premium." + "message": "Konts tika uzlabots uz Premium." }, "restore": { "message": "Atjaunot" @@ -1588,7 +1588,7 @@ "message": "Jaunā galvenā parole neatbilst nosacījumu prasībām." }, "acceptPolicies": { - "message": "Atzīmējot šo rūtiņu, Tu piekrīti sekojošajam:" + "message": "Ar šīs rūtiņas atzīmēšanu tiek piekrists sekojošajam:" }, "acceptPoliciesRequired": { "message": "Nav apstiprināti izmantošanas noteikumi un privātuma nosacījumi." @@ -1621,7 +1621,7 @@ "message": "Pieprasīt apstiprinājumu sasaistīšanai ar pārlūku" }, "enableBrowserIntegrationFingerprintDesc": { - "message": "Iespējo papildus drošības slāni, pieprasot atpazīšanas vārdkopas pārbaudi, kad tiek izveidota saikne starp darbvirsmu un pārlūku. Kad iespējots, ir nepieciešama lietotāja mijiedarbīga un apstiprināšana katru reizi, kad tiek izveidots savienojums." + "message": "Iespējo papildu drošības slāni, pieprasot atpazīšanas vārdkopas pārbaudi, kad tiek izveidota saikne starp darbvirsmu un pārlūku. Ir nepieciešama lietotāja darbība un apstiprināšana katru reizi, kad tiek izveidots savienojums." }, "approve": { "message": "Apstiprināt" @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Izdod personīgo glabātavu" }, - "exportingPersonalVaultDescription": { - "message": "Tiks izdoti tikai personīgie glabātavas vienumi, kas ir saistīti ar $EMAIL$. Apvienības glabātavas vienumi netiks iekļauti.", + "exportingIndividualVaultDescription": { + "message": "Tiks izgūti tikai atsevišķi glabātavas vienumi, kas ir saistīti ar $EMAIL$. Apvienības glabātavas vienumi netiks iekļauti. Tiks izgūta tikai glabātavas vienumu informācija, un saistītie pielikumi netiks iekļauti.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "pašizvietots" }, "accessDenied": { "message": "Piekļuve liegta. Nav nepieciešamo atļauju, lai skatītu šo lapu." diff --git a/apps/desktop/src/locales/me/messages.json b/apps/desktop/src/locales/me/messages.json index 9a72e54c6bf..375a8b2e9aa 100644 --- a/apps/desktop/src/locales/me/messages.json +++ b/apps/desktop/src/locales/me/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/ml/messages.json b/apps/desktop/src/locales/ml/messages.json index b133b150885..eb7ca9d8d29 100644 --- a/apps/desktop/src/locales/ml/messages.json +++ b/apps/desktop/src/locales/ml/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/mr/messages.json b/apps/desktop/src/locales/mr/messages.json index 6d569a89554..1eaa44b7109 100644 --- a/apps/desktop/src/locales/mr/messages.json +++ b/apps/desktop/src/locales/mr/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/my/messages.json b/apps/desktop/src/locales/my/messages.json index 294124b241b..d047602948c 100644 --- a/apps/desktop/src/locales/my/messages.json +++ b/apps/desktop/src/locales/my/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/nb/messages.json b/apps/desktop/src/locales/nb/messages.json index a84f7539b88..cb92f718040 100644 --- a/apps/desktop/src/locales/nb/messages.json +++ b/apps/desktop/src/locales/nb/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Eksporter personlig hvelv" }, - "exportingPersonalVaultDescription": { - "message": "Bare de personlige hvelv-elementene som er knyttet til $EMAIL$ vil bli eksportert. Organisasjonshvelvets elementer vil ikke bli inkludert.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/ne/messages.json b/apps/desktop/src/locales/ne/messages.json index 369bdaef7b9..2c81328ec6e 100644 --- a/apps/desktop/src/locales/ne/messages.json +++ b/apps/desktop/src/locales/ne/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/nl/messages.json b/apps/desktop/src/locales/nl/messages.json index 13f6df5faf6..8c7058c2cca 100644 --- a/apps/desktop/src/locales/nl/messages.json +++ b/apps/desktop/src/locales/nl/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Persoonlijke kluis exporteren" }, - "exportingPersonalVaultDescription": { - "message": "Exporteert alleen de persoonlijke kluis-items gerelateerd aan $EMAIL$. Geen kluis-items van de organisatie.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/nn/messages.json b/apps/desktop/src/locales/nn/messages.json index cd30ef54fdd..4a5dc712873 100644 --- a/apps/desktop/src/locales/nn/messages.json +++ b/apps/desktop/src/locales/nn/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/or/messages.json b/apps/desktop/src/locales/or/messages.json index 355595090e0..bdaf9990917 100644 --- a/apps/desktop/src/locales/or/messages.json +++ b/apps/desktop/src/locales/or/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/pl/messages.json b/apps/desktop/src/locales/pl/messages.json index 6ddad947f21..d730a0e9902 100644 --- a/apps/desktop/src/locales/pl/messages.json +++ b/apps/desktop/src/locales/pl/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Eksportowanie osobistego sejfu" }, - "exportingPersonalVaultDescription": { - "message": "Tylko osobiste elementy sejfu powiązane z adresem $EMAIL$ zostaną wyeksportowane. Elementy sejfu należące do organizacji nie będą uwzględnione.", + "exportingIndividualVaultDescription": { + "message": "Z sejfu zostaną wyeksportowane tylko elementy powiązane z $EMAIL$. Elementy z sejfu organizacji nie będą uwzględnione. Tylko informacje o elemencie zostaną wyeksportowane i nie będą zawierać powiązanych załączników.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "samodzielnie hostowany" }, "accessDenied": { "message": "Odmowa dostępu. Nie masz uprawnień do przeglądania tej strony." diff --git a/apps/desktop/src/locales/pt_BR/messages.json b/apps/desktop/src/locales/pt_BR/messages.json index 8b4eb7dcc35..eaf3663b8f0 100644 --- a/apps/desktop/src/locales/pt_BR/messages.json +++ b/apps/desktop/src/locales/pt_BR/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exportação do Cofre Pessoal" }, - "exportingPersonalVaultDescription": { - "message": "Apenas os itens pessoais do cofre associados com $EMAIL$ serão exportados. Os itens do cofre da organização não serão incluídos.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/pt_PT/messages.json b/apps/desktop/src/locales/pt_PT/messages.json index 49257f09d83..78298e1c536 100644 --- a/apps/desktop/src/locales/pt_PT/messages.json +++ b/apps/desktop/src/locales/pt_PT/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "A exportar o cofre pessoal" }, - "exportingPersonalVaultDescription": { - "message": "Apenas os itens do cofre pessoal associado a $EMAIL$ serão exportados. Os itens do cofre da organização não serão incluídos.", + "exportingIndividualVaultDescription": { + "message": "Apenas os itens de cofre individuais associados a $EMAIL$ serão exportados. Os itens do cofre da organização não serão incluídos. Apenas serão exportadas as informações do item do cofre e não serão incluídos os anexos associados.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "auto-hospedado" }, "accessDenied": { "message": "Acesso negado. Não tem permissão para visualizar esta página." diff --git a/apps/desktop/src/locales/ro/messages.json b/apps/desktop/src/locales/ro/messages.json index 139e0813cc8..28cc9783f70 100644 --- a/apps/desktop/src/locales/ro/messages.json +++ b/apps/desktop/src/locales/ro/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exportul seifului individual" }, - "exportingPersonalVaultDescription": { - "message": "Numai articolele de seif individuale asociate cu $EMAIL$ vor fi exportate. Articolele de seif ale organizației nu vor fi incluse.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/ru/messages.json b/apps/desktop/src/locales/ru/messages.json index b16eb66ac89..e51a39bfc81 100644 --- a/apps/desktop/src/locales/ru/messages.json +++ b/apps/desktop/src/locales/ru/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Экспорт личного хранилища" }, - "exportingPersonalVaultDescription": { - "message": "Будут экспортированы только личные элементы хранилища, связанные с $EMAIL$. Элементы хранилища организации включены не будут.", + "exportingIndividualVaultDescription": { + "message": "Будут экспортированы только отдельные элементы хранилища, связанные с $EMAIL$. Элементы хранилища организации включены не будут. Экспортируется только информация об элементах хранилища, не включая связанные вложения.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "собственный хостинг" }, "accessDenied": { "message": "Доступ запрещен. У вас нет разрешения на просмотр этой страницы." diff --git a/apps/desktop/src/locales/si/messages.json b/apps/desktop/src/locales/si/messages.json index 9d8a1428da0..8f50283ba62 100644 --- a/apps/desktop/src/locales/si/messages.json +++ b/apps/desktop/src/locales/si/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/sk/messages.json b/apps/desktop/src/locales/sk/messages.json index 7277dfca0b8..87fdb105639 100644 --- a/apps/desktop/src/locales/sk/messages.json +++ b/apps/desktop/src/locales/sk/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exportovanie osobného trezora" }, - "exportingPersonalVaultDescription": { - "message": "Exportované budú iba položy osobného trezora spojené s $EMAIL$. Položky trezora organizácie nebudú zahrnuté.", + "exportingIndividualVaultDescription": { + "message": "Exportované budú iba položky súvisiace s $EMAIL$. Položky z trezora organizácie nebudú zahrnuté v exporte. Export bude obsahovať iba informácie z položiek v trezore, súvisiace prílohy nebudú súčasťou exportu.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "vlastný hosting" }, "accessDenied": { "message": "Prístup zamietnutý. Nemáte oprávnenie na zobrazenie tejto stránky." diff --git a/apps/desktop/src/locales/sl/messages.json b/apps/desktop/src/locales/sl/messages.json index f12e6f5e855..3926e5a7aca 100644 --- a/apps/desktop/src/locales/sl/messages.json +++ b/apps/desktop/src/locales/sl/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/sr/messages.json b/apps/desktop/src/locales/sr/messages.json index 428cabcb9ee..0e0a7c397e1 100644 --- a/apps/desktop/src/locales/sr/messages.json +++ b/apps/desktop/src/locales/sr/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Извоз личног сефа" }, - "exportingPersonalVaultDescription": { - "message": "Само предмети личног сефа повезани са $EMAIL$ биће извезени. Ставке организационог сефа неће бити укључене.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "личан хостинг" }, "accessDenied": { "message": "Одбијен приступ. Немате дозволу да видите ову страницу." diff --git a/apps/desktop/src/locales/sv/messages.json b/apps/desktop/src/locales/sv/messages.json index 012566d49fc..70146e2f149 100644 --- a/apps/desktop/src/locales/sv/messages.json +++ b/apps/desktop/src/locales/sv/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporterar individuellt valv" }, - "exportingPersonalVaultDescription": { - "message": "Endast de personliga valvobjekt som är associerade med $EMAIL$ kommer att exporteras. Organisationens valvobjekt kommer inte att inkluderas.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/te/messages.json b/apps/desktop/src/locales/te/messages.json index 6d569a89554..1eaa44b7109 100644 --- a/apps/desktop/src/locales/te/messages.json +++ b/apps/desktop/src/locales/te/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/th/messages.json b/apps/desktop/src/locales/th/messages.json index f35de19ff34..e9a98e21258 100644 --- a/apps/desktop/src/locales/th/messages.json +++ b/apps/desktop/src/locales/th/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/tr/messages.json b/apps/desktop/src/locales/tr/messages.json index ae8cc13e1bd..3eaf0630e49 100644 --- a/apps/desktop/src/locales/tr/messages.json +++ b/apps/desktop/src/locales/tr/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Kişisel kasa dışa aktarılıyor" }, - "exportingPersonalVaultDescription": { - "message": "Yalnızca $EMAIL$ ile ilişkili kişisel kasadaki kayıtlar dışa aktarılacaktır. Kuruluş kasasındaki kayıtlar dahil edilmeyecektir.", + "exportingIndividualVaultDescription": { + "message": "Yalnızca $EMAIL$ ile ilişkili kasa kayıtları dışa aktarılacaktır. Kuruluş kasasındaki kayıtlar dahil edilmeyecektir. Yalnızca kasa kayıt bilgileri dışa aktarılacak, kayıtlara eklenen dosyalar aktarılmayacaktır.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "şirket içinde barındırılan" }, "accessDenied": { "message": "Erişim engellendi. Bu sayfayı görüntüleme iznine sahip değilsiniz." diff --git a/apps/desktop/src/locales/uk/messages.json b/apps/desktop/src/locales/uk/messages.json index cf119fc5b07..bba71ea6f5a 100644 --- a/apps/desktop/src/locales/uk/messages.json +++ b/apps/desktop/src/locales/uk/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Експортування особистого сховища" }, - "exportingPersonalVaultDescription": { - "message": "Будуть експортовані лише записи особистого сховища, пов'язані з $EMAIL$. Записи сховища організації не буде включено.", + "exportingIndividualVaultDescription": { + "message": "Будуть експортовані лише записи особистого сховища, пов'язані з $EMAIL$. Записи сховища організації не буде включено. Експортуються лише дані записів сховища без пов'язаних вкладень.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "власне розміщення" }, "accessDenied": { "message": "Доступ заборонено. У вас немає дозволу на перегляд цієї сторінки." diff --git a/apps/desktop/src/locales/vi/messages.json b/apps/desktop/src/locales/vi/messages.json index 51577198cf9..96498d741ae 100644 --- a/apps/desktop/src/locales/vi/messages.json +++ b/apps/desktop/src/locales/vi/messages.json @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "Exporting individual vault" }, - "exportingPersonalVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", diff --git a/apps/desktop/src/locales/zh_CN/messages.json b/apps/desktop/src/locales/zh_CN/messages.json index a8da710ca61..a0c1e85b730 100644 --- a/apps/desktop/src/locales/zh_CN/messages.json +++ b/apps/desktop/src/locales/zh_CN/messages.json @@ -509,7 +509,7 @@ "message": "主密码是访问密码库的唯一密码。它非常重要,请您不要忘记。忘记主密码后,我们无法为您恢复或重置它。" }, "masterPassHintDesc": { - "message": "主密码提示可以在你忘记密码时帮你回忆。" + "message": "主密码提示可以在您忘记密码时帮您回忆起来。" }, "reTypeMasterPass": { "message": "再次输入主密码" @@ -1429,7 +1429,7 @@ "message": "接下来的操作会删除您的账户和所有密码库数据。" }, "deleteAccountWarning": { - "message": "删除账户是永久性的。不能被撤消。" + "message": "删除账户是永久性操作,无法撤销!" }, "accountDeleted": { "message": "账户已删除" @@ -1654,7 +1654,7 @@ "message": "需要先在桌面应用程序的设置中设置生物识别,才能使用浏览器中的生物识别。" }, "personalOwnershipSubmitError": { - "message": "由于企业策略,您被限制为保存项目到您的个人密码库。将所有权选项更改为组织,然后从可用的集合中选择。" + "message": "由于某个企业策略,您不能将项目保存到您的个人密码库。将所有权选项更改为组织,并从可用的集合中选择。" }, "hintEqualsPassword": { "message": "您的密码提示不能与您的密码相同。" @@ -1795,7 +1795,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "由于企业策略,您只能删除现有的 Send。", + "message": "由于某个企业策略,您只能删除现有的 Send。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "copyLink": { @@ -1838,7 +1838,7 @@ "message": "您必须验证您的电子邮件才能使用此功能。" }, "passwordPrompt": { - "message": "重新询问主密码" + "message": "主密码重新提示" }, "passwordConfirmation": { "message": "确认主密码" @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "正在导出个人密码库" }, - "exportingPersonalVaultDescription": { - "message": "仅会导出与 $EMAIL$ 关联的个人密码库项目。组织密码库的项目不会导出。", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2287,7 +2287,7 @@ "message": "bitwarden.eu" }, "selfHostedServer": { - "message": "self-hosted" + "message": "自托管" }, "accessDenied": { "message": "访问被拒绝。您没有权限查看此页面。" diff --git a/apps/desktop/src/locales/zh_TW/messages.json b/apps/desktop/src/locales/zh_TW/messages.json index 27d9993f543..32a511beab1 100644 --- a/apps/desktop/src/locales/zh_TW/messages.json +++ b/apps/desktop/src/locales/zh_TW/messages.json @@ -1207,10 +1207,10 @@ "message": "視窗" }, "checkPassword": { - "message": "檢查密碼是否已外洩。" + "message": "檢查密碼是否已暴露。" }, "passwordExposed": { - "message": "此密碼已外洩了 $VALUE$ 次,應立即變更密碼。", + "message": "此密碼在資料外洩事件中被暴露了 $VALUE$ 次,應立即變更它。", "placeholders": { "value": { "content": "$1", @@ -1984,8 +1984,8 @@ "exportingPersonalVaultTitle": { "message": "正匯出個人密碼庫" }, - "exportingPersonalVaultDescription": { - "message": "只會匯出與 $EMAIL$ 關聯的個人密碼庫。組織密碼庫的項目不包含在內。", + "exportingIndividualVaultDescription": { + "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", "placeholders": { "email": { "content": "$1", @@ -2217,7 +2217,7 @@ "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": "強度不足且已暴露的主密碼" @@ -2293,7 +2293,7 @@ "message": "拒絕存取。您沒有檢視此頁面的權限。" }, "accountSuccessfullyCreated": { - "message": "成功建立帳號!" + "message": "已成功建立帳戶!" }, "adminApprovalRequested": { "message": "需要管理員批准" diff --git a/apps/desktop/src/platform/services/electron-platform-utils.service.ts b/apps/desktop/src/platform/services/electron-platform-utils.service.ts index 485490c0a87..6f4f55b4f4b 100644 --- a/apps/desktop/src/platform/services/electron-platform-utils.service.ts +++ b/apps/desktop/src/platform/services/electron-platform-utils.service.ts @@ -4,7 +4,6 @@ import { ClientType, DeviceType } from "@bitwarden/common/enums"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.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 { BiometricMessage, BiometricStorageAction } from "../../types/biometric-message"; import { isDev, isMacAppStore } from "../../utils"; @@ -12,12 +11,7 @@ import { isDev, isMacAppStore } from "../../utils"; export class ElectronPlatformUtilsService implements PlatformUtilsService { private deviceCache: DeviceType = null; - constructor( - protected i18nService: I18nService, - private messagingService: MessagingService, - private clientType: ClientType.Desktop | ClientType.DirectoryConnector, - private stateService: StateService - ) {} + constructor(protected i18nService: I18nService, private messagingService: MessagingService) {} getDevice(): DeviceType { if (!this.deviceCache) { @@ -44,7 +38,7 @@ export class ElectronPlatformUtilsService implements PlatformUtilsService { } getClientType() { - return this.clientType; + return ClientType.Desktop; } isFirefox(): boolean { diff --git a/apps/desktop/src/scss/plugins.scss b/apps/desktop/src/scss/plugins.scss index aed093d53be..c156456809c 100644 --- a/apps/desktop/src/scss/plugins.scss +++ b/apps/desktop/src/scss/plugins.scss @@ -1,5 +1,4 @@ @import "~ngx-toastr/toastr"; -@import "~sweetalert2/src/sweetalert2.scss"; @import "variables.scss"; @@ -94,116 +93,3 @@ } } } - -// SweetAlert2 - -.swal2-popup { - padding: 15px; - border-radius: $border-radius; - width: 34em; - - @include themify($themes) { - background-color: themed("backgroundColorAlt"); - color: themed("textColor"); - } - - .swal2-icon { - margin: 0 auto; - width: auto; - height: auto; - border: none; - } - - .swal2-content { - margin: 0; - font-size: $font-size-base; - @include themify($themes) { - color: themed("textColor"); - } - - label.checkbox { - margin-top: 10px; - display: flex; - text-align: left; - align-items: top; - - input { - margin: 3px 5px 0 1px; - } - } - - .swal2-input, - .swal2-textarea { - border: 1px solid #000000; - border-radius: $border-radius; - margin-bottom: 0; - box-shadow: none; - // Inherit theme font-size - font-size: inherit; - - // Sweetalert 1 did not have box-shadow - &:focus { - box-shadow: none; - } - @include themify($themes) { - border-color: themed("inputBorderColor"); - color: themed("textColor"); - background-color: themed("inputBackgroundColor"); - } - &::-webkit-input-placeholder { - @include themify($themes) { - color: themed("inputPlaceholderColor"); - } - } - } - } - - i.swal-custom-icon { - display: block; - margin: 0 auto; - font-size: 35px; - } - - .swal2-title { - padding: 10px 0 15px; - margin: 0; - font-size: $font-size-large; - - @include themify($themes) { - color: themed("textColor"); - } - } - - .swal2-text { - text-align: left; // sweetalert1 behaviour - font-size: $font-size-base; - - @include themify($themes) { - color: themed("textColor"); - } - } - - > .swal2-text:first-child { - margin-top: 20px; - } - - .swal2-actions { - margin: 20px auto 0; - justify-content: flex-start; - flex-direction: row-reverse; - - button { - margin-left: 10px; - @extend .btn; - - &.swal2-confirm { - @extend .btn, .primary; - font-weight: bold; - } - } - } - - .swal2-validation-message { - margin-top: 20px; - } -} diff --git a/apps/desktop/src/services/native-message-handler.service.ts b/apps/desktop/src/services/native-message-handler.service.ts index 9f5f1d460df..6779195c3f1 100644 --- a/apps/desktop/src/services/native-message-handler.service.ts +++ b/apps/desktop/src/services/native-message-handler.service.ts @@ -1,6 +1,6 @@ import { Injectable } from "@angular/core"; import { ipcRenderer } from "electron"; -import Swal from "sweetalert2"; +import { firstValueFrom } from "rxjs"; import { NativeMessagingVersion } from "@bitwarden/common/enums"; import { CryptoFunctionService } from "@bitwarden/common/platform/abstractions/crypto-function.service"; @@ -11,7 +11,9 @@ import { Utils } from "@bitwarden/common/platform/misc/utils"; import { EncryptedString, EncString } from "@bitwarden/common/platform/models/domain/enc-string"; import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key"; import { StateService } from "@bitwarden/common/platform/services/state.service"; +import { DialogService } from "@bitwarden/components"; +import { VerifyNativeMessagingDialogComponent } from "../app/components/verify-native-messaging-dialog.component"; import { DecryptedCommandData } from "../models/native-messaging/decrypted-command-data"; import { EncryptedMessage } from "../models/native-messaging/encrypted-message"; import { EncryptedMessageResponse } from "../models/native-messaging/encrypted-message-response"; @@ -33,7 +35,8 @@ export class NativeMessageHandlerService { private cryptoFunctionService: CryptoFunctionService, private messagingService: MessagingService, private i18nService: I18nService, - private encryptedMessageHandlerService: EncryptedMessageHandlerService + private encryptedMessageHandlerService: EncryptedMessageHandlerService, + private dialogService: DialogService ) {} async handleMessage(message: Message) { @@ -87,21 +90,12 @@ export class NativeMessageHandlerService { // Ask for confirmation from user this.messagingService.send("setFocus"); - const submitted = await Swal.fire({ - heightAuto: false, - titleText: this.i18nService.t("verifyNativeMessagingConnectionTitle", applicationName), - html: `${this.i18nService.t("verifyNativeMessagingConnectionDesc")}
${this.i18nService.t( - "verifyNativeMessagingConnectionWarning" - )}`, - showCancelButton: true, - cancelButtonText: this.i18nService.t("no"), - showConfirmButton: true, - confirmButtonText: this.i18nService.t("yes"), - allowOutsideClick: false, - focusCancel: true, - }); - if (submitted.value !== true) { + const nativeMessagingVerified = await firstValueFrom( + VerifyNativeMessagingDialogComponent.open(this.dialogService, { applicationName }).closed + ); + + if (nativeMessagingVerified !== true) { this.sendResponse({ messageId: messageId, version: NativeMessagingVersion.Latest, diff --git a/apps/desktop/src/services/native-messaging.service.ts b/apps/desktop/src/services/native-messaging.service.ts index 3928778f313..c18a67e6b43 100644 --- a/apps/desktop/src/services/native-messaging.service.ts +++ b/apps/desktop/src/services/native-messaging.service.ts @@ -1,7 +1,6 @@ -import { Injectable } from "@angular/core"; +import { Injectable, NgZone } from "@angular/core"; import { ipcRenderer } from "electron"; import { firstValueFrom } from "rxjs"; -import Swal from "sweetalert2"; import { KeySuffixOptions } from "@bitwarden/common/enums"; import { CryptoFunctionService } from "@bitwarden/common/platform/abstractions/crypto-function.service"; @@ -14,7 +13,9 @@ import { StateService } from "@bitwarden/common/platform/abstractions/state.serv import { Utils } from "@bitwarden/common/platform/misc/utils"; import { EncString } from "@bitwarden/common/platform/models/domain/enc-string"; import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key"; +import { DialogService } from "@bitwarden/components"; +import { BrowserSyncVerificationDialogComponent } from "../app/components/browser-sync-verification-dialog.component"; import { LegacyMessage } from "../models/native-messaging/legacy-message"; import { LegacyMessageWrapper } from "../models/native-messaging/legacy-message-wrapper"; import { Message } from "../models/native-messaging/message"; @@ -36,7 +37,9 @@ export class NativeMessagingService { private i18nService: I18nService, private messagingService: MessagingService, private stateService: StateService, - private nativeMessageHandler: NativeMessageHandlerService + private nativeMessageHandler: NativeMessageHandlerService, + private dialogService: DialogService, + private ngZone: NgZone ) {} init() { @@ -69,27 +72,20 @@ export class NativeMessagingService { if (await this.stateService.getEnableBrowserIntegrationFingerprint()) { ipcRenderer.send("nativeMessagingReply", { command: "verifyFingerprint", appId: appId }); - const fingerprint = ( - await this.cryptoService.getFingerprint( - await this.stateService.getUserId(), - remotePublicKey - ) - ).join(" "); + const fingerprint = await this.cryptoService.getFingerprint( + await this.stateService.getUserId(), + remotePublicKey + ); this.messagingService.send("setFocus"); - // Await confirmation that fingerprint is correct - const submitted = await Swal.fire({ - titleText: this.i18nService.t("verifyBrowserTitle"), - html: `${this.i18nService.t("verifyBrowserDesc")}

${fingerprint}`, - showCancelButton: true, - cancelButtonText: this.i18nService.t("cancel"), - showConfirmButton: true, - confirmButtonText: this.i18nService.t("approve"), - allowOutsideClick: false, - }); + const dialogRef = this.ngZone.run(() => + BrowserSyncVerificationDialogComponent.open(this.dialogService, { fingerprint }) + ); - if (submitted.value !== true) { + const browserSyncVerified = await firstValueFrom(dialogRef.closed); + + if (browserSyncVerified !== true) { return; } } @@ -127,13 +123,15 @@ export class NativeMessagingService { if (!(await this.stateService.getBiometricUnlock({ userId: message.userId }))) { this.send({ command: "biometricUnlock", response: "not enabled" }, appId); - return await Swal.fire({ - title: this.i18nService.t("biometricsNotEnabledTitle"), - text: this.i18nService.t("biometricsNotEnabledDesc"), - showCancelButton: true, - cancelButtonText: this.i18nService.t("cancel"), - showConfirmButton: false, - }); + return this.ngZone.run(() => + this.dialogService.openSimpleDialog({ + type: "warning", + title: { key: "biometricsNotEnabledTitle" }, + content: { key: "biometricsNotEnabledDesc" }, + cancelButtonText: null, + acceptButtonText: { key: "cancel" }, + }) + ); } const userKey = await this.cryptoService.getUserKeyFromStorage( diff --git a/apps/web/config/cloud.json b/apps/web/config/cloud.json index 5459ce4057b..45269d18c63 100644 --- a/apps/web/config/cloud.json +++ b/apps/web/config/cloud.json @@ -13,7 +13,8 @@ "dev": { "proxyApi": "https://api.bitwarden.com", "proxyIdentity": "https://identity.bitwarden.com", - "proxyEvents": "https://events.bitwarden.com" + "proxyEvents": "https://events.bitwarden.com", + "proxyNotifications": "https://notifications.bitwarden.com" }, "flags": { "secretsManager": true, diff --git a/apps/web/config/qa.json b/apps/web/config/qa.json index 3632c696856..6f514079010 100644 --- a/apps/web/config/qa.json +++ b/apps/web/config/qa.json @@ -7,7 +7,8 @@ "dev": { "proxyApi": "https://api.qa.bitwarden.pw", "proxyIdentity": "https://identity.qa.bitwarden.pw", - "proxyEvents": "https://events.qa.bitwarden.pw" + "proxyEvents": "https://events.qa.bitwarden.pw", + "proxyNotifications": "https://notifications.qa.bitwarden.pw" }, "flags": { "secretsManager": true, diff --git a/apps/web/src/app/admin-console/organizations/manage/group-add-edit.component.html b/apps/web/src/app/admin-console/organizations/manage/group-add-edit.component.html index 4978842fb4d..b6175d80297 100644 --- a/apps/web/src/app/admin-console/organizations/manage/group-add-edit.component.html +++ b/apps/web/src/app/admin-console/organizations/manage/group-add-edit.component.html @@ -69,13 +69,7 @@ - + + diff --git a/apps/web/src/app/tools/import-export/dialog/import-error-dialog.component.ts b/apps/web/src/app/tools/import-export/dialog/import-error-dialog.component.ts new file mode 100644 index 00000000000..abb68cf53b1 --- /dev/null +++ b/apps/web/src/app/tools/import-export/dialog/import-error-dialog.component.ts @@ -0,0 +1,33 @@ +import { DialogRef, DIALOG_DATA } from "@angular/cdk/dialog"; +import { Component, Inject, OnInit } from "@angular/core"; + +import { TableDataSource } from "@bitwarden/components"; + +export interface ErrorListItem { + type: string; + message: string; +} + +@Component({ + selector: "app-import-error-dialog", + templateUrl: "./import-error-dialog.component.html", +}) +export class ImportErrorDialogComponent implements OnInit { + protected dataSource = new TableDataSource(); + + constructor(public dialogRef: DialogRef, @Inject(DIALOG_DATA) public data: Error) {} + + ngOnInit(): void { + const split = this.data.message.split("\n\n"); + if (split.length == 1) { + this.dataSource.data = [{ type: "", message: this.data.message }]; + return; + } + + const data: ErrorListItem[] = []; + split.forEach((line) => { + data.push({ type: "", message: line }); + }); + this.dataSource.data = data; + } +} diff --git a/apps/web/src/app/tools/import-export/dialog/index.ts b/apps/web/src/app/tools/import-export/dialog/index.ts index 7ad42fe1db9..641cd6600a1 100644 --- a/apps/web/src/app/tools/import-export/dialog/index.ts +++ b/apps/web/src/app/tools/import-export/dialog/index.ts @@ -1,2 +1,3 @@ +export * from "./import-error-dialog.component"; export * from "./import-success-dialog.component"; export * from "./file-password-prompt.component"; diff --git a/apps/web/src/app/tools/import-export/import-export.module.ts b/apps/web/src/app/tools/import-export/import-export.module.ts index 4d59f412367..d180417cdcc 100644 --- a/apps/web/src/app/tools/import-export/import-export.module.ts +++ b/apps/web/src/app/tools/import-export/import-export.module.ts @@ -15,7 +15,11 @@ import { import { LooseComponentsModule, SharedModule } from "../../shared"; -import { ImportSuccessDialogComponent, FilePasswordPromptComponent } from "./dialog"; +import { + ImportErrorDialogComponent, + ImportSuccessDialogComponent, + FilePasswordPromptComponent, +} from "./dialog"; import { ExportComponent } from "./export.component"; import { ImportExportRoutingModule } from "./import-export-routing.module"; import { ImportComponent } from "./import.component"; @@ -26,6 +30,7 @@ import { ImportComponent } from "./import.component"; ImportComponent, ExportComponent, FilePasswordPromptComponent, + ImportErrorDialogComponent, ImportSuccessDialogComponent, ], providers: [ diff --git a/apps/web/src/app/tools/import-export/import.component.ts b/apps/web/src/app/tools/import-export/import.component.ts index eb9201f021d..fb7d1d5501d 100644 --- a/apps/web/src/app/tools/import-export/import.component.ts +++ b/apps/web/src/app/tools/import-export/import.component.ts @@ -4,7 +4,6 @@ import { Router } from "@angular/router"; import * as JSZip from "jszip"; import { concat, Observable, Subject, lastValueFrom, combineLatest } from "rxjs"; import { map, takeUntil } from "rxjs/operators"; -import Swal, { SweetAlertIcon } from "sweetalert2"; import { ModalService } from "@bitwarden/angular/services/modal.service"; import { @@ -31,7 +30,11 @@ import { ImportType, } from "@bitwarden/importer"; -import { FilePasswordPromptComponent, ImportSuccessDialogComponent } from "./dialog"; +import { + FilePasswordPromptComponent, + ImportErrorDialogComponent, + ImportSuccessDialogComponent, +} from "./dialog"; @Component({ selector: "app-import", @@ -247,7 +250,9 @@ export class ImportComponent implements OnInit, OnDestroy { this.syncService.fullSync(true); await this.onSuccessfulImport(); } catch (e) { - this.error(e); + this.dialogService.open(ImportErrorDialogComponent, { + data: e, + }); this.logService.error(e); } } @@ -303,27 +308,6 @@ export class ImportComponent implements OnInit, OnDestroy { this.fileSelected = fileInputEl.files.length > 0 ? fileInputEl.files[0] : null; } - private async error(error: Error) { - await Swal.fire({ - heightAuto: false, - buttonsStyling: false, - icon: "error" as SweetAlertIcon, - iconHtml: ``, - input: "textarea", - inputValue: error.message, - inputAttributes: { - readonly: "true", - }, - titleText: this.i18nService.t("importError"), - text: this.i18nService.t("importErrorDesc"), - showConfirmButton: true, - confirmButtonText: this.i18nService.t("ok"), - onOpen: (popupEl) => { - popupEl.querySelector(".swal2-textarea").scrollTo(0, 0); - }, - }); - } - private getFileContents(file: File): Promise { if (this.format === "1password1pux") { return this.extractZipContent(file, "export.data"); diff --git a/apps/web/src/locales/az/messages.json b/apps/web/src/locales/az/messages.json index 18eea5284fe..5e601873e7d 100644 --- a/apps/web/src/locales/az/messages.json +++ b/apps/web/src/locales/az/messages.json @@ -1426,10 +1426,10 @@ "message": "Giriş edərkən əlavə bir addım tələb edərək hesabınızı qoruyun." }, "twoStepLoginTeamsDesc": { - "message": "Enable two-step login for your organization." + "message": "Təşkilatınız üçün iki addımlı girişi fəallaşdır." }, "twoStepLoginEnterpriseDescStart": { - "message": "Enforce Bitwarden Two-step Login options for members by using the ", + "message": "Bitwarden iki addımlı Giriş seçimlərini aşağıdakını istifadə edərək üzvlər üçün tətbiq et ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enforce Bitwarden Two-step Login options for members by using the Two-step Login Policy.'" }, "twoStepLoginPolicy": { diff --git a/apps/web/src/locales/bg/messages.json b/apps/web/src/locales/bg/messages.json index 4cf667a626c..1813900cd1b 100644 --- a/apps/web/src/locales/bg/messages.json +++ b/apps/web/src/locales/bg/messages.json @@ -1426,14 +1426,14 @@ "message": "Допълнителна защита на абонамента чрез изискването на допълнително действие при вписване." }, "twoStepLoginTeamsDesc": { - "message": "Enable two-step login for your organization." + "message": "Включете двустепенното удостоверяване за организацията си." }, "twoStepLoginEnterpriseDescStart": { - "message": "Enforce Bitwarden Two-step Login options for members by using the ", + "message": "Задължете членовете да използват вариантите за двустепенно удостоверяване в Битуорден, като използвате ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enforce Bitwarden Two-step Login options for members by using the Two-step Login Policy.'" }, "twoStepLoginPolicy": { - "message": "Two-step Login Policy" + "message": "Политика за двустепенно удостоверяване" }, "twoStepLoginOrganizationDuoDesc": { "message": "За да направите двустепенното удостоверяване чрез Duo задължително, използвайте настройките по-долу." @@ -1723,7 +1723,7 @@ "message": "Открити са записи без двустепенна идентификация" }, "inactive2faFoundDesc": { - "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-step login (according to 2fa.directory). To further protect these accounts, you should set up two-step login.", + "message": "В трезора ви има $COUNT$ уебсайт(а), които е възможно да не са настроени за вписване чрез двустепенно удостоверяване (според сайта 2fa.directory). За да защитите тези регистрации, трябва да настроите двустепенното удостоверяване.", "placeholders": { "count": { "content": "$1", @@ -6639,7 +6639,7 @@ "message": "Променете настройките си за шифроване, така че да отговарят на новите препоръки за сигурността и да подобрите защитата на регистрацията си." }, "changeKdfLoggedOutWarning": { - "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." + "message": "Ако продължите, ще излезете от всички активни сесии. Ще трябва да се впишете отново и да завършите настройката на двустепенното удостоверяване. Препоръчително е да изнесете трезора си преди да променяте настройките за шифроване, за да избегнете загуба на данни." }, "secretsManager": { "message": "Управление на тайни" diff --git a/apps/web/src/locales/ca/messages.json b/apps/web/src/locales/ca/messages.json index d3283662601..db32f7ca8d8 100644 --- a/apps/web/src/locales/ca/messages.json +++ b/apps/web/src/locales/ca/messages.json @@ -1426,10 +1426,10 @@ "message": "Protegiu el vostre compte exigint un pas addicional en iniciar sessió." }, "twoStepLoginTeamsDesc": { - "message": "Enable two-step login for your organization." + "message": "Activeu l'inici de sessió de doble factor per a la vostra organització." }, "twoStepLoginEnterpriseDescStart": { - "message": "Enforce Bitwarden Two-step Login options for members by using the ", + "message": "Apliqueu les opcions d'inici de sessió de dobble factor de Bitwarden per als membres mitjançant la ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enforce Bitwarden Two-step Login options for members by using the Two-step Login Policy.'" }, "twoStepLoginPolicy": { diff --git a/apps/web/src/locales/fi/messages.json b/apps/web/src/locales/fi/messages.json index 296d49f7133..d1699f72505 100644 --- a/apps/web/src/locales/fi/messages.json +++ b/apps/web/src/locales/fi/messages.json @@ -1426,10 +1426,10 @@ "message": "Suojaa tilisi vaatimalla sisäänkirjautumiseen toinen todennusvaihe." }, "twoStepLoginTeamsDesc": { - "message": "Enable two-step login for your organization." + "message": "Ota kaksivaiheinen kirjautuminen käyttöön organisaatiollesi." }, "twoStepLoginEnterpriseDescStart": { - "message": "Enforce Bitwarden Two-step Login options for members by using the ", + "message": "Pakota jäsenille Bitwardenin kaksivaiheisen kirjautumisen valinnat käytännöllä: ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enforce Bitwarden Two-step Login options for members by using the Two-step Login Policy.'" }, "twoStepLoginPolicy": { @@ -5446,7 +5446,7 @@ "message": "Organisaation holvin vienti" }, "exportingIndividualVaultDescription": { - "message": "Vain tunnukseen $EMAIL$ liitetyt yksityisen holvin kohteet viedään. Organisaation holvin kohteita ei sisällytetä. Vain holvin kohteiden tiedot viedään ilman niihin liittyviä liitteitä.", + "message": "Vain tunnukseen $EMAIL$ liitetyt yksityisen holvin kohteet viedään. Organisaation holvin kohteita ei sisällytetä. Vain holvin kohteiden tiedot viedään ilman niiden sisältämiä liitteitä.", "placeholders": { "email": { "content": "$1", @@ -7157,7 +7157,7 @@ "message": "Palvelutilin mahdollinen enimmäiskustannus" }, "loggedInExclamation": { - "message": "Kirjautuminen onnistui!" + "message": "Kirjautuminen onnistui." }, "smBetaEndedDesc": { "message": "Salaisuushallinnan beta päättyi $BETA_ENDING_DATE$. Sinulla on $DAYS$ päivää aikaa lisätä Salaisuushallinta maksulliseen tilaukseesi säilyttääksesi Salaisuushallinnassa olevien tietojesi käyttöoikeuden. Lisää Salaisuushallinta tilaukseesi olemalla yhteydessä asiakaspalveluun.", diff --git a/apps/web/src/locales/hr/messages.json b/apps/web/src/locales/hr/messages.json index 83621989bf8..27f841761d7 100644 --- a/apps/web/src/locales/hr/messages.json +++ b/apps/web/src/locales/hr/messages.json @@ -609,7 +609,7 @@ "message": "Prijava uređajem" }, "loginWithDeviceEnabledNote": { - "message": "Log in with device must be set up in the settings of the Bitwarden app. Need another option?" + "message": "Prijava uređajem mora biti namještena u postavka Bitwarden mobilne aplikacije. Trebaš drugu opciju?" }, "loginWithMasterPassword": { "message": "Prijava glavnom lozinkom" @@ -712,7 +712,7 @@ "message": "Došlo je do neočekivane pogreške." }, "expirationDateError": { - "message": "Please select an expiration date that is in the future." + "message": "Odaberi datum isteka u budućnosti." }, "emailAddress": { "message": "Adresa e-pošte" @@ -955,7 +955,7 @@ "message": "Kopiraj kôd za provjeru" }, "copyUuid": { - "message": "Copy UUID" + "message": "Kopiraj UUID" }, "warning": { "message": "Upozorenje" @@ -1300,10 +1300,10 @@ "message": "Learn about your import options" }, "selectImportFolder": { - "message": "Select a folder" + "message": "Odaberi mapu" }, "selectImportCollection": { - "message": "Select a collection" + "message": "Odaberi zbirku" }, "importTargetHint": { "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", @@ -2068,7 +2068,7 @@ "message": "Otkaži pretplatu" }, "subscriptionExpiration": { - "message": "Subscription expiration" + "message": "Istek pretplate" }, "subscriptionCanceled": { "message": "Pretplata otkazana." @@ -2676,7 +2676,7 @@ "message": "Web trezor" }, "bitWebVault": { - "message": "Bitwarden Web vault" + "message": "Bitwarden Web trezor" }, "bitSecretsManager": { "message": "Bitwarden Secrets Manager" @@ -2703,7 +2703,7 @@ "message": "Prijava neuspješna zbog pogrešne dvostruke autentifikacije." }, "incorrectPassword": { - "message": "Incorrect password" + "message": "Netočna lozinka" }, "incorrectCode": { "message": "Incorrect code" @@ -2802,7 +2802,7 @@ } }, "viewCollectionWithName": { - "message": "View collection - $NAME$", + "message": "Prikaži zbirku - $NAME$", "placeholders": { "name": { "content": "$1", @@ -2811,7 +2811,7 @@ } }, "editItemWithName": { - "message": "Edit item - $NAME$", + "message": "Uredi stavku - $NAME$", "placeholders": { "name": { "content": "$1", @@ -3793,10 +3793,10 @@ "message": "Nakon isteka trezora" }, "vaultTimeoutActionLockDesc": { - "message": "Potrebno je ponovno unijeti glavnu lozinku ili na drugi način otključati za pristup tvom trezoru." + "message": "Za pristup tvom trezoru, potrebno je ponovno unijeti glavnu lozinku ili ga na drugi način otključati." }, "vaultTimeoutActionLogOutDesc": { - "message": "Potrebno je ponovno unijeti korisničko ime i glavnu lozinku za pristup tvom trezoru." + "message": "Za pristup tvom trezoru, potrebno je ponovno unijeti korisničko ime i glavnu lozinku." }, "lock": { "message": "Zaključaj", @@ -3870,7 +3870,7 @@ "message": "Odjava će ukloniti pristup tvojem trezoru i zahtijeva mrežnu potvrdu identiteta nakon isteka vremenske neaktivnosti. Sigurno želiš koristiti ovu postavku?" }, "vaultTimeoutLogOutConfirmationTitle": { - "message": "Potvrda akcije vremenske neaktivnosti" + "message": "Potvrda radnje nakon vremenske neaktivnosti" }, "hidePasswords": { "message": "Sakrij lozinke" @@ -4901,7 +4901,7 @@ } }, "vaultTimeoutPolicyWithActionInEffect": { - "message": "Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is $HOURS$ hour(s) and $MINUTES$ minute(s). Your vault timeout action is set to $ACTION$.", + "message": "Pravilo tvoje organizacije utječe na istek trezora. Najveće dozvoljeno vrijeme isteka je $HOURS$:$MINUTES$ h. Tvoja radnja nakon isteka trezora je: $ACTION$.", "placeholders": { "hours": { "content": "$1", @@ -4918,7 +4918,7 @@ } }, "vaultTimeoutActionPolicyInEffect": { - "message": "Your organization policies have set your vault timeout action to $ACTION$.", + "message": "Pravilo tvoje organizacije podesilo je radnju nakon isteka trezora na: $ACTION$.", "placeholders": { "action": { "content": "$1", diff --git a/apps/web/src/locales/it/messages.json b/apps/web/src/locales/it/messages.json index 35f6b4d6a3c..acdfd13370e 100644 --- a/apps/web/src/locales/it/messages.json +++ b/apps/web/src/locales/it/messages.json @@ -1426,10 +1426,10 @@ "message": "Proteggi il tuo account richiedendo un passaggio aggiuntivo all'accesso." }, "twoStepLoginTeamsDesc": { - "message": "Enable two-step login for your organization." + "message": "Abilita la verifica in due passaggi per la tua organizzazione." }, "twoStepLoginEnterpriseDescStart": { - "message": "Enforce Bitwarden Two-step Login options for members by using the ", + "message": "Forza le opzioni di verifica in due passaggi di Bitwarden per i membri usando la ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enforce Bitwarden Two-step Login options for members by using the Two-step Login Policy.'" }, "twoStepLoginPolicy": { diff --git a/apps/web/src/locales/ja/messages.json b/apps/web/src/locales/ja/messages.json index 45a9b4db63b..9d2a222220d 100644 --- a/apps/web/src/locales/ja/messages.json +++ b/apps/web/src/locales/ja/messages.json @@ -1426,7 +1426,7 @@ "message": "ログイン時に追加の手順を必要としアカウントを保護します。" }, "twoStepLoginTeamsDesc": { - "message": "組織の2段階認証を有効にする。" + "message": "組織の2段階認証を有効化します。" }, "twoStepLoginEnterpriseDescStart": { "message": "Bitwardenの2段階認証をメンバーに強制するには、次のようにします。 ", diff --git a/apps/web/src/locales/lv/messages.json b/apps/web/src/locales/lv/messages.json index 3dce02f1ec4..7acc4e3c2c4 100644 --- a/apps/web/src/locales/lv/messages.json +++ b/apps/web/src/locales/lv/messages.json @@ -3,7 +3,7 @@ "message": "Kāda veida vienums tas ir?" }, "name": { - "message": "Nosaukums" + "message": "Vārds" }, "uri": { "message": "URI" @@ -415,7 +415,7 @@ "message": "Pārvietot uz apvienību" }, "valueCopied": { - "message": "$VALUE$ ievietota starpliktuvē", + "message": "$VALUE$ ir starpliktuvē", "description": "Value has been copied to the clipboard.", "placeholders": { "value": { @@ -830,7 +830,7 @@ "message": "Šim kontam ir iespējota divpakāpju pieteikšanās, bet šajā pārlūkā netiek atbalstīts neviens no uzstādītajiem divpakāpju pārbaudes nodrošinātājiem." }, "noTwoStepProviders2": { - "message": "Lūgums izmantot atbalstītu tīmekļa pārlūku (piemēram Chrome) un/vai pievienot papildus nodrošinātājus, kas tiek labāk atbalstīti dažādos pārlūkos (piemēram autentificētāja lietotni)." + "message": "Lūgums izmantot atbalstītu tīmekļa pārlūku (piemēram Chrome) un/vai pievienot papildu nodrošinātājus, kas tiek labāk atbalstīti dažādos pārlūkos (piemēram autentificētāja lietotni)." }, "twoStepOptions": { "message": "Divpakāpju pieteikšanās iespējas" @@ -852,10 +852,10 @@ "message": "YubiKey OTP drošības atslēga" }, "yubiKeyDesc": { - "message": "Izmantojiet YubiKey, lai piekļūtu savam kontam. Darbojas ar YubiKey 4. sēriju, 5. sēriju un NEO ierīcēm." + "message": "YubiKey ir izmantojams, lai piekļūtu savam kontam. Darbojas ar YubiKey 4. un 5. sēriju un NEO ierīcēm." }, "duoDesc": { - "message": "Apstiprini ar Duo Security, izmantojot Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu!", + "message": "Ar Duo Security apliecināšanu var veikt ar Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { @@ -863,7 +863,7 @@ "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "u2fDesc": { - "message": "Lai piekļūtu savam kontam, izmantojiet jebkuru ar FIDO U2F saderīgu drošības atslēgu." + "message": "Ir izmantojama jebkura ar FIDO U2F saderīga drošības atslēga, lai piekļūtu savam kontam." }, "u2fTitle": { "message": "FIDO U2F drošības atslēga" @@ -872,7 +872,7 @@ "message": "FIDO2 WebAuthn" }, "webAuthnDesc": { - "message": "Izmantot jebkuru WebAuthn atbalstošu drošības atslēgu, lai piekļūtu kontam." + "message": "Ir izmantojama jebkura WebAuthn atbalstošu drošības atslēgu, lai piekļūtu kontam." }, "webAuthnMigrated": { "message": "(Pārgājis no FIDO)" @@ -1231,19 +1231,19 @@ "message": "Glabātava tika iztīrīta." }, "deleteAccount": { - "message": "Dzēst kontu" + "message": "Izdzēst kontu" }, "deleteAccountDesc": { "message": "Turpināt zemāk, lai izdzēstu kontu un visus saistītos datus." }, "deleteAccountWarning": { - "message": "Konta dzēšana ir paliekoša. To nevar atsaukt." + "message": "Konta izdzēšana ir neatgriezeniska. To nevar atsaukt." }, "accountDeleted": { "message": "Konts izdzēsts" }, "accountDeletedDesc": { - "message": "Konts ir slēgts, un visi saistītie dati ir izdzēsti." + "message": "Konts tika slēgts, un visi saistītie dati tika izdzēsti." }, "myAccount": { "message": "Mans konts" @@ -1516,7 +1516,7 @@ "message": "Šīs ir ieteicamās lietotnes, bet darbosies arī citas autentificētāja lietotnes." }, "twoStepAuthenticatorScanCode": { - "message": "Nolasīt šo kvadrātkodu ar autentificētāja lietotni" + "message": "Šis kvadrātkods ir jānolasa ar autentificētāja lietotni" }, "key": { "message": "Atslēga" @@ -1919,10 +1919,10 @@ "description": "Another way of saying \"Get a Premium membership\"" }, "premiumUpdated": { - "message": "Tu esi pārgājis uz Premium." + "message": "Konts tika uzlabots uz Premium." }, "premiumUpgradeUnlockFeatures": { - "message": "Jauniniet savu kontu uz Premium abonementu un atbloķējiet dažas lieliskas papildu funkcijas." + "message": "Uzlabo savu kontu ar Premium dalību un atslēdz dažas lieliskas papildu iespējas!" }, "premiumSignUpStorage": { "message": "1 GB šifrētas krātuves datņu pielikumiem." @@ -1990,13 +1990,13 @@ } }, "additionalStorageGb": { - "message": "Papildus krātuve (GB)" + "message": "Papildu krātuve (GB)" }, "additionalStorageGbDesc": { - "message": "# papildus GB" + "message": "# papildu GB" }, "additionalStorageIntervalDesc": { - "message": "Pašreizējais plāns iever $SIZE$ šifrētas datņu krātuves. Ir iespējams pievienot papildus krātuvi par $PRICE$ GB / $INTERVAL$.", + "message": "Pašreizējais plāns iever $SIZE$ šifrētas datņu krātuves. Ir iespējams pievienot papildu krātuvi par $PRICE$ GB / $INTERVAL$.", "placeholders": { "size": { "content": "$1", @@ -2269,13 +2269,13 @@ "message": "Lietotāju vietas" }, "additionalUserSeats": { - "message": "Papildus lietotāju vietas" + "message": "Papildu lietotāju vietas" }, "userSeatsDesc": { "message": "# lietotāju vietas" }, "userSeatsAdditionalDesc": { - "message": "Pašreizējā plānā ir iekļauta(s) $BASE_SEATS$ lietotāju vieta(s). Papildus lietotājus var pievienot par $SEAT_PRICE$ mēnesī par katru.", + "message": "Pašreizējā plānā ir iekļauta(s) $BASE_SEATS$ lietotāju vieta(s). Papildu lietotājus var pievienot par $SEAT_PRICE$ mēnesī par katru.", "placeholders": { "base_seats": { "content": "$1", @@ -2288,7 +2288,7 @@ } }, "userSeatsHowManyDesc": { - "message": "Cik daudz lietotāju vietas ir nepieciešamas? Vēlāk ir iespējams pievienot papildus vietas, ja nepieciešams." + "message": "Cik daudz lietotāju vietas ir nepieciešamas? Vēlāk ir iespējams pievienot papildu vietas, ja nepieciešams." }, "planNameFree": { "message": "Bezmaksas", @@ -2334,7 +2334,7 @@ } }, "additionalUsers": { - "message": "Papildus lietotāji" + "message": "Papildu lietotāji" }, "costPerUser": { "message": "$COST$ par lietotāju", @@ -3225,13 +3225,13 @@ "message": "Uzzināt vairāk" }, "deleteRecoverDesc": { - "message": "Ievadīt e-pasta adresi zemāk esošajā laukā, lai atkoptu un izdzēstu kontu." + "message": "Jāievada e-pasta adrese zemāk esošajā laukā, lai atkoptu un izdzēstu savu kontu." }, "deleteRecoverEmailSent": { "message": "Ja konts pastāv, tika nosūtīts e-pasta ziņojums ar turpmākām norādēm." }, "deleteRecoverConfirmDesc": { - "message": "Tika pieprasīts dzēst Bitwarden kontu. Nospiest zemāk esošo pogu, lai apstiprinātu." + "message": "Tika pieprasīts izdzēst Bitwarden kontu. Jānospiež zemāk esošā poga, lai apstiprinātu." }, "myOrganization": { "message": "Mana apvienība" @@ -3522,7 +3522,7 @@ "message": "Nekas nav atlasīts." }, "acceptPolicies": { - "message": "Atzīmējot šo rūtiņu, Tu piekrīti sekojošajam:" + "message": "Ar šīs rūtiņas atzīmēšanu tiek piekrists sekojošajam:" }, "acceptPoliciesRequired": { "message": "Nav apstiprināti izmantošanas noteikumi un privātuma nosacījumi." @@ -3681,7 +3681,7 @@ "message": "API atslēga var tikt izmantota, lai autentificētos Bitwarden CLI." }, "userApiKeyWarning": { - "message": "API atslēga ir papildus autentificēšanās risinājums. To vajadzētu glabāt noslēpumā." + "message": "API atslēga ir papildu autentificēšanās risinājums. To vajadzētu glabāt noslēpumā." }, "oauth2ClientCredentials": { "message": "OAuth 2.0 klienta akreditācijas dati", @@ -5446,7 +5446,7 @@ "message": "Izdod apvienības glabātavu" }, "exportingIndividualVaultDescription": { - "message": "Tiks izgūti tikai atsevišķi glabātavas vienumi, kas ir saistīti ar $EMAIL$. Apvienīgas glabātavas vienumi netiks iekļauti. Tiks izgūta tikai glabātavas vienuma informācija, un saistītie pielikumi netiks iekļauti.", + "message": "Tiks izgūti tikai atsevišķi glabātavas vienumi, kas ir saistīti ar $EMAIL$. Apvienības glabātavas vienumi netiks iekļauti. Tiks izgūta tikai glabātavas vienumu informācija, un saistītie pielikumi netiks iekļauti.", "placeholders": { "email": { "content": "$1", diff --git a/apps/web/src/locales/pt_BR/messages.json b/apps/web/src/locales/pt_BR/messages.json index 107b604585b..f69f75eb980 100644 --- a/apps/web/src/locales/pt_BR/messages.json +++ b/apps/web/src/locales/pt_BR/messages.json @@ -1426,10 +1426,10 @@ "message": "Proteja a sua conta exigindo uma etapa adicional ao iniciar sessão." }, "twoStepLoginTeamsDesc": { - "message": "Enable two-step login for your organization." + "message": "Ative o login em duas etapas para sua organização." }, "twoStepLoginEnterpriseDescStart": { - "message": "Enforce Bitwarden Two-step Login options for members by using the ", + "message": "Forçar as opções de login em duas etapas do Bitwarden para membros usando o ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enforce Bitwarden Two-step Login options for members by using the Two-step Login Policy.'" }, "twoStepLoginPolicy": { diff --git a/apps/web/src/locales/pt_PT/messages.json b/apps/web/src/locales/pt_PT/messages.json index 133373fc64e..602ce5a524c 100644 --- a/apps/web/src/locales/pt_PT/messages.json +++ b/apps/web/src/locales/pt_PT/messages.json @@ -2403,7 +2403,7 @@ "message": "Acompanhe as ações dos utilizadores com registos de auditoria" }, "enforce2faDuo": { - "message": "Impor 2FA com a Duo" + "message": "Aplicar 2FA com a Duo" }, "priorityCustomerSupport": { "message": "Prioridade no apoio ao cliente" diff --git a/apps/web/src/locales/tr/messages.json b/apps/web/src/locales/tr/messages.json index d6b97c70418..6c4da856faa 100644 --- a/apps/web/src/locales/tr/messages.json +++ b/apps/web/src/locales/tr/messages.json @@ -1426,14 +1426,14 @@ "message": "Oturum açarken ek bir adım talep ederek hesabınızı güvenceye alabilirsiniz." }, "twoStepLoginTeamsDesc": { - "message": "Kuruluşunuz için iki adımlı oturum açmayı etkinleştirin." + "message": "Kuruluşunuz için iki aşamalı girişi etkinleştirin." }, "twoStepLoginEnterpriseDescStart": { - "message": "Bitwarden'ı kullanarak üyeler için İki Adımlı Giriş seçeneklerini zorunlu kılın ", + "message": "Üyeler için Bitwarden iki aşamalı giriş seçeneklerini zorunlu kılmak üzere ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enforce Bitwarden Two-step Login options for members by using the Two-step Login Policy.'" }, "twoStepLoginPolicy": { - "message": "iki aşamalı giriş ilkesi ile zorunlu tut" + "message": "iki aşamalı giriş ilkesini kullan" }, "twoStepLoginOrganizationDuoDesc": { "message": "Duo ile iki aşamalı girişi zorunlu tutmak için aşağıdaki seçenekleri kullanın." diff --git a/apps/web/src/locales/uk/messages.json b/apps/web/src/locales/uk/messages.json index f341ba6b6a8..32a8c3782bb 100644 --- a/apps/web/src/locales/uk/messages.json +++ b/apps/web/src/locales/uk/messages.json @@ -1426,10 +1426,10 @@ "message": "Захистіть обліковий запис, вимагаючи додатковий крок перевірки під час входу." }, "twoStepLoginTeamsDesc": { - "message": "Enable two-step login for your organization." + "message": "Увімкніть двоетапну перевірку для вашої організації." }, "twoStepLoginEnterpriseDescStart": { - "message": "Enforce Bitwarden Two-step Login options for members by using the ", + "message": "Зобов'язувати учасників використовувати двоетапну перевірку Bitwarden за допомогою ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enforce Bitwarden Two-step Login options for members by using the Two-step Login Policy.'" }, "twoStepLoginPolicy": { diff --git a/apps/web/src/locales/zh_CN/messages.json b/apps/web/src/locales/zh_CN/messages.json index 7a4ecc7db08..2136611a2be 100644 --- a/apps/web/src/locales/zh_CN/messages.json +++ b/apps/web/src/locales/zh_CN/messages.json @@ -582,7 +582,7 @@ "message": "访问权限" }, "loggedOut": { - "message": "已登出" + "message": "已注销" }, "loginExpired": { "message": "您的登录会话已过期。" @@ -872,7 +872,7 @@ "message": "FIDO2 WebAuthn" }, "webAuthnDesc": { - "message": "使用任何 WebAuthn 兼容的安全钥匙访问您的帐户。" + "message": "使用任何 WebAuthn 兼容的安全钥匙访问您的账户。" }, "webAuthnMigrated": { "message": "(迁移自 FIDO)" @@ -1225,7 +1225,7 @@ "message": "接下来的操作会删除组织密码库中的所有项目。" }, "purgeVaultWarning": { - "message": "清空密码库是永久性的。不能被撤消。" + "message": "清空密码库是永久性操作,无法撤销!" }, "vaultPurged": { "message": "密码库已清空。" @@ -1237,7 +1237,7 @@ "message": "接下来的操作会删除您的账户和所有密码库数据。" }, "deleteAccountWarning": { - "message": "删除账户是永久性的。不能被撤消。" + "message": "删除账户是永久性操作,无法撤销!" }, "accountDeleted": { "message": "账户已删除" @@ -1429,7 +1429,7 @@ "message": "为您的组织启用两步登录。" }, "twoStepLoginEnterpriseDescStart": { - "message": "Enforce Bitwarden Two-step Login options for members by using the ", + "message": "要为成员实施 Bitwarden 两步登录选项,请使用 ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enforce Bitwarden Two-step Login options for members by using the Two-step Login Policy.'" }, "twoStepLoginPolicy": { @@ -1534,7 +1534,7 @@ "message": "此两步登录提供程序已停用。" }, "twoFactorYubikeyAdd": { - "message": "添加一个新的 YubiKey 到您的帐户" + "message": "添加一个新的 YubiKey 到您的账户" }, "twoFactorYubikeyPlugIn": { "message": "将 YubiKey 插入您电脑的 USB 端口。" @@ -1912,7 +1912,7 @@ "message": "请确保您的账户有足够的信用额度来用于此购买。如果您的账户信用额度不足,您的默认付款方式将用于补足差额。您可以从计费页面向您的账户添加信用额度。" }, "creditAppliedDesc": { - "message": "您帐户的信用额度可用于进行消费。任何可用的信用额度将用于自动支付此帐户的账单。" + "message": "您账户的信用额度可用于进行消费。任何可用的信用额度将用于自动支付此账户的账单。" }, "goPremium": { "message": "升级高级会员", @@ -3255,7 +3255,7 @@ "message": "删除后用户账户仍可用,但不再与此组织关联。" }, "deletingOrganizationIsPermanentWarning": { - "message": "删除 $ORGANIZATION$ 是永久操作,不可撤销!", + "message": "删除 $ORGANIZATION$ 是永久性操作,无法撤销!", "placeholders": { "organization": { "content": "$1", @@ -3357,10 +3357,10 @@ "message": "输入您的安装 ID" }, "limitSubscriptionDesc": { - "message": "为您的订阅设置席位限制。达到此限制后,您将无法邀请新的成员。" + "message": "为您的订阅设置一个席位限制。达到此限制后,您将无法邀请新的成员。" }, "limitSmSubscriptionDesc": { - "message": "为您的机密管理器订阅设置席位限制。达到此限制后,您将无法邀请新的成员。" + "message": "为您的机密管理器订阅设置一个席位限制。达到此限制后,您将无法邀请新的成员。" }, "maxSeatLimit": { "message": "席位限制(可选)", @@ -3669,7 +3669,7 @@ "message": "API 密钥" }, "apiKeyDesc": { - "message": "您的 API 密钥可用于认证 Bitwarden 公共 API。" + "message": "您的 API 密钥可用于验证 Bitwarden 公共 API。" }, "apiKeyRotateDesc": { "message": "轮换 API 密钥将使前一个密钥无效。如果你认为当前密钥不再安全,你可以轮换您的 API 密钥。" @@ -4264,7 +4264,7 @@ "message": "组织的所有者和管理员豁免此策略。" }, "personalOwnershipSubmitError": { - "message": "由于企业策略,您被限制为保存项目到您的个人密码库。将所有权选项更改为组织,并从可用的集合中选择。" + "message": "由于某个企业策略,您不能将项目保存到您的个人密码库。将所有权选项更改为组织,并从可用的集合中选择。" }, "disableSend": { "message": "禁用 Send" @@ -4281,7 +4281,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "由于企业策略,您只能删除现有的 Send。", + "message": "由于某个企业策略,您只能删除现有的 Send。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendOptions": { @@ -4535,7 +4535,7 @@ "message": "注册账户恢复" }, "enrolledAccountRecovery": { - "message": "注册了账户恢复" + "message": "已注册账户恢复" }, "withdrawAccountRecovery": { "message": "撤销账户恢复" @@ -4622,7 +4622,7 @@ "message": "基于加密方式,当主密码或受信任设备被遗忘或丢失时恢复账户。" }, "accountRecoveryPolicyWarning": { - "message": "对于具有主密码的现有账户,需要他们自行注册后,管理员才可以恢复他们的账户。对于新的成员,将自动注册以打开账户恢复功能。" + "message": "对于具有主密码的现有账户,需要成员自行注册后,管理员才可以恢复他们的账户。对于新的成员,自动注册后将打开账户恢复功能。" }, "accountRecoverySingleOrgRequirementDesc": { "message": "激活此策略前,需先开启「单一组织」企业策略。" @@ -4643,13 +4643,13 @@ "message": "重置密码详细信息响应为空" }, "trashCleanupWarning": { - "message": "回收站中超过 30 天的项目将会被自动删除。" + "message": "回收站中超过 30 天的条目将会被自动删除。" }, "trashCleanupWarningSelfHosted": { "message": "回收站中超过一定时间的项目将会被自动删除。" }, "passwordPrompt": { - "message": "重新询问主密码" + "message": "主密码重新提示" }, "passwordConfirmation": { "message": "确认主密码" @@ -4987,7 +4987,7 @@ "message": "权威机构" }, "clientId": { - "message": "客户 ID" + "message": "客户端 ID" }, "clientSecret": { "message": "客户端机密" @@ -5056,7 +5056,7 @@ "message": "单点登录服务 URL" }, "idpSingleLogoutServiceUrl": { - "message": "单点登出服务 URL" + "message": "单点注销服务 URL" }, "idpX509PublicCert": { "message": "X509 公共证书" @@ -5278,10 +5278,10 @@ "message": "「SSO 登录和 Key Connector 解密」已启用。此策略仅适用于所有者和管理员。" }, "enabledSso": { - "message": "SSO 已启用" + "message": "启用了 SSO" }, "disabledSso": { - "message": "SSO 已停用" + "message": "停用了 SSO" }, "enabledKeyConnector": { "message": "Key Connector 已启用" @@ -5428,7 +5428,7 @@ "message": "如果实体 ID 不是一个 URL,则必填。" }, "openIdOptionalCustomizations": { - "message": "自定义(可选)" + "message": "个性化(可选)" }, "openIdAuthorityRequired": { "message": "如果授权无效,则必填。" @@ -5985,7 +5985,7 @@ "description": "Action to view the details of a service account." }, "deleteServiceAccountDialogMessage": { - "message": "删除服务账户 $SERVICE_ACCOUNT$ 是永久性的,无法撤销!", + "message": "删除服务账户 $SERVICE_ACCOUNT$ 是永久性操作,无法撤销!", "placeholders": { "service_account": { "content": "$1", @@ -5994,7 +5994,7 @@ } }, "deleteServiceAccountsDialogMessage": { - "message": "删除服务账户是永久性的,无法撤销!" + "message": "删除服务账户是永久性操作,无法撤销!" }, "deleteServiceAccountsConfirmMessage": { "message": "删除 $COUNT$ 个服务账户", @@ -6097,7 +6097,7 @@ "description": "Notifies that a project has been deleted" }, "deleteProjectDialogMessage": { - "message": "删除工程 $PROJECT$ 是永久性的,无法撤销!", + "message": "删除工程 $PROJECT$ 是永久性操作,无法撤销!", "description": "Informs users that projects are hard deleted and not sent to trash", "placeholders": { "project": { @@ -6137,7 +6137,7 @@ } }, "deleteProjectsDialogMessage": { - "message": "删除工程是永久性的,无法撤销!", + "message": "删除工程是永久性操作,无法撤销!", "description": "This message is displayed in a dialog box as a warning before proceeding with project deletion." }, "projectsNoItemsTitle": { @@ -6223,7 +6223,7 @@ "message": "吊销访问令牌" }, "revokeAccessTokenDesc": { - "message": "吊销访问令牌是永久性的,无法撤销!" + "message": "吊销访问令牌是永久性操作,无法撤销!" }, "accessTokenRevoked": { "message": "访问令牌已吊销", @@ -6354,7 +6354,7 @@ "message": "自动域验证" }, "automaticDomainVerificationProcess": { - "message": "Bitwarden 将尝试在 72 小时内验证此域 3 次。如果无法验证此域,请检查您的主机中的 DNS 记录并手动验证。如果此域无法验证,7 天内将从您的组织中移除。" + "message": "Bitwarden 将尝试在 72 小时内验证此域 3 次。如果此域无法验证,请检查您的主机中的 DNS 记录并手动验证。如果此域未通过验证,7 天内将从您的组织中移除。" }, "invalidDomainNameMessage": { "message": "输入格式不正确。格式:mydomain.com。子域需要单独的条目进行验证。" @@ -6387,7 +6387,7 @@ } }, "domainNotVerified": { - "message": "$DOMAIN$ 无法验证。请检查您的 DNS 记录。", + "message": "$DOMAIN$ 未通过验证。请检查您的 DNS 记录。", "placeholders": { "DOMAIN": { "content": "$1", @@ -6399,7 +6399,7 @@ "message": "已验证" }, "domainStatusUnverified": { - "message": "无法验证" + "message": "未验证" }, "domainNameTh": { "message": "域名" @@ -6417,7 +6417,7 @@ "message": "表单错误需要您注意" }, "addedDomain": { - "message": "已添加域 $DOMAIN$", + "message": "添加了域 $DOMAIN$", "placeholders": { "DOMAIN": { "content": "$1", @@ -6444,7 +6444,7 @@ } }, "domainNotVerifiedEvent": { - "message": "$DOMAIN$ 无法验证", + "message": "$DOMAIN$ 未通过验证", "placeholders": { "DOMAIN": { "content": "$1", @@ -6866,10 +6866,10 @@ "message": "使用主密码批准" }, "trustedDeviceEncryption": { - "message": "受信任的设备加密" + "message": "受信任设备加密" }, "trustedDevices": { - "message": "受信任的设备" + "message": "受信任设备" }, "memberDecryptionOptionTdeDescriptionPartOne": { "message": "验证后,成员将使用存储在他们设备上的密钥解密密码库数据。使用此选项后,", @@ -7124,7 +7124,7 @@ } }, "addAdditionalServiceAccounts": { - "message": "您可以以 $COST$ 每月购买附加服务账户。", + "message": "您也可以以 $COST$ 每月购买附加服务账户。", "placeholders": { "cost": { "content": "$1", diff --git a/apps/web/src/locales/zh_TW/messages.json b/apps/web/src/locales/zh_TW/messages.json index f7692a0a3e4..dde9ea4e746 100644 --- a/apps/web/src/locales/zh_TW/messages.json +++ b/apps/web/src/locales/zh_TW/messages.json @@ -226,7 +226,7 @@ "message": "檢查密碼是否已暴露。" }, "passwordExposed": { - "message": "此密碼在資料外洩事件中被暴露了 $VALUE$ 次,應立即變更。", + "message": "此密碼在資料外洩事件中被暴露了 $VALUE$ 次,應立即變更它。", "placeholders": { "value": { "content": "$1", @@ -383,7 +383,7 @@ "message": "選擇" }, "newItem": { - "message": "新項目" + "message": "新增項目" }, "addItem": { "message": "新增項目" @@ -473,10 +473,10 @@ "message": "移動選取的項目至組織" }, "deleteSelected": { - "message": "刪除選取的項目" + "message": "刪除所選" }, "moveSelected": { - "message": "移動選取的項目" + "message": "移動所選" }, "selectAll": { "message": "全選" @@ -687,7 +687,7 @@ "message": "必須再次輸入主密碼。" }, "masterPasswordMinlength": { - "message": "主密碼至少需 $VALUE$ 個字元。", + "message": "主密碼必須至少 $VALUE$ 個字元。", "description": "The Master Password must be at least a specific number of characters long.", "placeholders": { "value": { @@ -712,7 +712,7 @@ "message": "發生了未預期的錯誤。" }, "expirationDateError": { - "message": "Please select an expiration date that is in the future." + "message": "請選擇一個未來的逾期日期。" }, "emailAddress": { "message": "電子郵件地址" @@ -902,7 +902,7 @@ "message": "編輯與此項目共享的集合。只有具有這些集合存取權限的組織使用者才能夠看到此項目。" }, "deleteSelectedItemsDesc": { - "message": "您已經選取了 $COUNT$ 個項目。確定要刪除這些項目嗎 ?", + "message": "$COUNT$ 個項目將被移至垃圾桶。", "placeholders": { "count": { "content": "$1", @@ -955,7 +955,7 @@ "message": "複製驗證碼" }, "copyUuid": { - "message": "Copy UUID" + "message": "複製 UUID" }, "warning": { "message": "警告" @@ -964,7 +964,7 @@ "message": "確認匯出密碼庫" }, "confirmSecretsExport": { - "message": "Confirm secrets export" + "message": "確認匯出機密" }, "exportWarningDesc": { "message": "此次匯出的密碼庫檔案為未加密格式。您不應將它存放或經由不安全的方式(例如電子郵件)傳送。用完後請立即將它刪除。" @@ -985,7 +985,7 @@ "message": "匯出密碼庫" }, "exportSecrets": { - "message": "Export secrets" + "message": "匯出機密" }, "fileFormat": { "message": "檔案格式" @@ -1009,16 +1009,16 @@ "message": "確認檔案密碼" }, "accountRestrictedOptionDescription": { - "message": "使用衍生自您帳號的使用者名稱與主密碼的加密密鑰,加密此匯出檔案,並限制只能匯入到目前的 Bitwarden 帳號。" + "message": "使用衍生自您帳戶的使用者名稱與主密碼的加密金鑰,加密此匯出檔案,並限制只能匯入到目前的 Bitwarden 帳戶。" }, "passwordProtectedOptionDescription": { - "message": "設定一組密碼來加密匯出的資料,並使用此密碼解密以匯入至任意 Bitwarden 帳戶。" + "message": "設定一組檔案密碼來加密匯出的資料,並使用此密碼解密以匯入至任意 Bitwarden 帳戶。" }, "exportTypeHeading": { "message": "匯出類型" }, "accountRestricted": { - "message": "帳號已限制" + "message": "帳戶已限制" }, "passwordProtected": { "message": "密碼保護" @@ -1294,16 +1294,16 @@ "message": "解密匯出的檔案時發生錯誤,您的加密金鑰與匯出資料時使用的金鑰不同。" }, "importDestination": { - "message": "Import destination" + "message": "匯入目的地" }, "learnAboutImportOptions": { - "message": "Learn about your import options" + "message": "瞭解更多匯入選項" }, "selectImportFolder": { - "message": "Select a folder" + "message": "選擇一個資料夾" }, "selectImportCollection": { - "message": "Select a collection" + "message": "選擇一個集合" }, "importTargetHint": { "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", @@ -1316,7 +1316,7 @@ } }, "importUnassignedItemsError": { - "message": "File contains unassigned items." + "message": "檔案包含未指派的項目。" }, "selectFormat": { "message": "選擇匯入檔案的格式" @@ -1426,7 +1426,7 @@ "message": "在登入時執行額外的步驟來保護您的帳戶。" }, "twoStepLoginTeamsDesc": { - "message": "Enable two-step login for your organization." + "message": "爲您的組織啟用兩步驟登入。" }, "twoStepLoginEnterpriseDescStart": { "message": "Enforce Bitwarden Two-step Login options for members by using the ", @@ -1890,7 +1890,7 @@ "message": "付款類型" }, "accountCredit": { - "message": "帳戶信用額度", + "message": "帳戶餘額", "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." }, "accountBalance": { @@ -2269,7 +2269,7 @@ "message": "使用者席位" }, "additionalUserSeats": { - "message": "附加使用者席位" + "message": "額外使用者席位" }, "userSeatsDesc": { "message": "# 使用者席位" @@ -2499,7 +2499,7 @@ "message": "群組" }, "newGroup": { - "message": "新群組" + "message": "新增群組" }, "addGroup": { "message": "新增群組" @@ -2634,13 +2634,13 @@ "message": "使用者" }, "userDesc": { - "message": "存取受指派的集合,並新增項目到集合中" + "message": "存取和新增項目到已指派的集合中" }, "manager": { "message": "管理員" }, "managerDesc": { - "message": "管理員可以存取和管理組織内已指派的集合。" + "message": "在已指派的集合中創建、刪除以及管理存取權限" }, "all": { "message": "全部" @@ -2676,7 +2676,7 @@ "message": "網頁版密碼庫" }, "bitWebVault": { - "message": "Bitwarden Web vault" + "message": "Bitwarden 網頁密碼庫" }, "bitSecretsManager": { "message": "Bitwarden Secrets Manager" @@ -2703,10 +2703,10 @@ "message": "嘗試登入失敗,兩步驟登入錯誤。" }, "incorrectPassword": { - "message": "Incorrect password" + "message": "密碼不正確" }, "incorrectCode": { - "message": "Incorrect code" + "message": "驗證碼不正確" }, "exportedVault": { "message": "已匯出密碼庫" @@ -2802,7 +2802,7 @@ } }, "viewCollectionWithName": { - "message": "View collection - $NAME$", + "message": "檢視集合 - $NAME$", "placeholders": { "name": { "content": "$1", @@ -2811,7 +2811,7 @@ } }, "editItemWithName": { - "message": "Edit item - $NAME$", + "message": "編輯項目 - $NAME$", "placeholders": { "name": { "content": "$1", @@ -3096,7 +3096,7 @@ "message": "發生錯誤。" }, "userAccess": { - "message": "使用者存取" + "message": "使用者存取權限" }, "userType": { "message": "使用者類型" @@ -3105,7 +3105,7 @@ "message": "群組存取" }, "groupAccessUserDesc": { - "message": "編輯此使用者所屬的群組。" + "message": "透過將成員添加到 1 個或多個群組來授予他們對集合的存取權限。" }, "invitedUsers": { "message": "已邀請使用者。" @@ -3543,7 +3543,7 @@ "message": "選擇密碼庫何時執行密碼庫逾時動作。" }, "vaultTimeoutLogoutDesc": { - "message": "Choose when your vault will be logged out." + "message": "選擇您的密碼庫何時登出。" }, "oneMinute": { "message": "1 分鐘" @@ -3634,7 +3634,7 @@ "message": "此項目包含需要修正的舊檔案附件。" }, "attachmentFixDescription": { - "message": "This attachment uses outdated encryption. Select 'Fix' to download, re-encrypt, and re-upload the attachment." + "message": "此附件使用了過時的加密方式。 選擇「修正」以下載、重新加密,然後重新上傳此附件。" }, "fix": { "message": "修正", @@ -4122,7 +4122,7 @@ "message": "您是一個或多個組織的擁有者。如果您授予緊急聯絡人接管存取權限,那麼他們在接管後將能夠以組織擁有者的身分使用您的所有權限。" }, "trustedEmergencyContacts": { - "message": "信任的緊急聯絡人" + "message": "可信任的緊急聯絡人" }, "noTrustedContacts": { "message": "您尚未新增任何緊急聯絡人,請邀請一位可信任的聯絡人以開始。" @@ -4203,7 +4203,7 @@ "message": "要求存取權限" }, "requestAccessConfirmation": { - "message": "您確定要申請緊急存取嗎?在 $WAITTIME$ 天之後或使用者手動批准要求時您將取得存取權限。", + "message": "您確定要申請緊急存取嗎?在 $WAITTIME$ 天之後或使用者手動核准要求時您將取得存取權限。", "placeholders": { "waittime": { "content": "$1", @@ -4325,7 +4325,7 @@ "message": "自訂" }, "customDesc": { - "message": "進階設定允許更精細地控制使用者權限。" + "message": "為成員授予自訂權限" }, "customDescNonEnterpriseStart": { "message": "自訂角色為 ", @@ -4400,7 +4400,7 @@ "message": "管理使用者" }, "manageAccountRecovery": { - "message": "Manage account recovery" + "message": "管理帳戶復原" }, "disableRequiredError": { "message": "您必須先手動停用 $POLICYNAME$ 原則,然後才能停用此原則。", @@ -4532,13 +4532,13 @@ "message": "密碼提示不能與您的密碼相同。" }, "enrollAccountRecovery": { - "message": "Enroll in account recovery" + "message": "注冊帳戶復原" }, "enrolledAccountRecovery": { - "message": "Enrolled in account recovery" + "message": "已注冊帳戶復原" }, "withdrawAccountRecovery": { - "message": "Withdraw from account recovery" + "message": "撤銷帳戶復原" }, "enrollPasswordResetSuccess": { "message": "註冊成功!" @@ -4547,7 +4547,7 @@ "message": "撤銷成功!" }, "eventEnrollAccountRecovery": { - "message": "User $ID$ enrolled in account recovery.", + "message": "使用者 $ID$ 注冊了帳戶復原。", "placeholders": { "id": { "content": "$1", @@ -4556,7 +4556,7 @@ } }, "eventWithdrawAccountRecovery": { - "message": "User $ID$ withdrew from account recovery.", + "message": "使用者 $ID$ 撤銷了帳戶復原", "placeholders": { "id": { "content": "$1", @@ -4616,13 +4616,13 @@ "message": "註冊後將允許組織管理者變更您的主密碼" }, "accountRecoveryPolicy": { - "message": "Account recovery administration" + "message": "帳戶復原管理" }, "accountRecoveryPolicyDesc": { - "message": "依照加密方式,當忘記主密碼或遺失受信任的裝置時,可救回帳號。" + "message": "依照加密方式,當忘記主密碼或遺失受信任的裝置時,可救回帳戶。" }, "accountRecoveryPolicyWarning": { - "message": "現有主密碼的帳號,需要使用者自行加入後,管理員才可發起帳號救援。將為新使用者開啟自動加入。" + "message": "對於具有主密碼的現有帳戶,需要成員自行註冊後,管理員才可復原其帳戶。將為新成員開啟自動注冊以啟用帳戶復原功能。" }, "accountRecoverySingleOrgRequirementDesc": { "message": "必須先開啟「單一組織」企業原則,才能開啟此原則。" @@ -4643,10 +4643,10 @@ "message": "重設密碼詳細資訊回應為 null" }, "trashCleanupWarning": { - "message": "垃圾桶中超過 30 天的密碼將會被自動刪除。" + "message": "垃圾桶中超過 30 天的項目將會被自動刪除。" }, "trashCleanupWarningSelfHosted": { - "message": "垃圾桶中超過一定時間的密碼將會被自動刪除。" + "message": "垃圾桶中超過一定時間的項目將會被自動刪除。" }, "passwordPrompt": { "message": "重新詢問主密碼" @@ -4691,7 +4691,7 @@ "message": "淺色" }, "confirmSelected": { - "message": "確認選取" + "message": "確認所選" }, "bulkConfirmStatus": { "message": "批次作業狀態" @@ -4730,7 +4730,7 @@ "message": "錯誤" }, "accountRecoveryManageUsers": { - "message": "Manage users must also be granted with the manage account recovery permission" + "message": "管理使用者也必須被授予管理帳戶復原的權限" }, "setupProvider": { "message": "提供者設定" @@ -4951,16 +4951,16 @@ "message": "一個或多個組織原則禁止您匯出個人密碼庫。" }, "activateAutofill": { - "message": "Activate auto-fill" + "message": "啓用自動填入" }, "activateAutofillPolicyDesc": { - "message": "Activate the auto-fill on page load setting on the browser extension for all existing and new members." + "message": "為所有現有的和新的成員啓用瀏覽器擴充套件上的頁面載入時自動填入設定。" }, "experimentalFeature": { - "message": "Compromised or untrusted websites can exploit auto-fill on page load." + "message": "被入侵或不可信任的網站可以利用網頁載入時的自動填入功能。" }, "learnMoreAboutAutofill": { - "message": "Learn more about auto-fill" + "message": "進一步瞭解「自動填入」功能" }, "selectType": { "message": "選擇 SSO 類型" @@ -5092,7 +5092,7 @@ "message": "最多 6 位使用者的付費方案存取權限" }, "sponsoredFamiliesSharedCollections": { - "message": "用於家庭共用帳號密碼的集合" + "message": "用於家庭機密的共用集合" }, "badToken": { "message": "連結已失效。請讓贊助者重新傳送邀請。" @@ -5365,7 +5365,7 @@ "message": "權杖已輪換" }, "billingSyncDesc": { - "message": "「帳單同步」藉由將您的自我裝載 Bitwarden 服務與 Bitwarden 雲端伺服器連結,向成員提供「免費家庭」方案及進階帳單功能。" + "message": "「帳單同步」解鎖家庭贊助並在您的伺服器上自動同步授權。在 Bitwarden 雲端伺服器上更新后,請選擇「同步授權」以應用變更。" }, "billingSyncKeyDesc": { "message": "想要完成這個表單,需要您雲端組織訂閱設定中的「帳單同步權杖」。" @@ -5428,7 +5428,7 @@ "message": "若 Entity ID 非 URL,則必須填入。" }, "openIdOptionalCustomizations": { - "message": "選用自訂項目" + "message": "自訂(選填)" }, "openIdAuthorityRequired": { "message": "若授權無效,則必須填入。" @@ -5489,7 +5489,7 @@ "description": "This is used by screen readers to indicate the organization that is currently being shown to the user." }, "accountLoggedInAsName": { - "message": "Account: Logged in as $NAME$", + "message": "帳戶:已登入為 $NAME$", "placeholders": { "name": { "content": "$1", @@ -5636,7 +5636,7 @@ "description": "The text, 'SCIM', is an acronymn and should not be translated." }, "scimDescription": { - "message": "透過 SCIM 佈建,使用您首選的身分提供程式自動佈建用戶和群組", + "message": "透過 SCIM 佈建,使用您首選的身分提供程式自動佈建使用者和群組", "description": "the text, 'SCIM', is an acronymn and should not be translated." }, "scimEnabledCheckboxDesc": { @@ -5710,7 +5710,7 @@ } }, "inputForbiddenCharacters": { - "message": "The following characters are not allowed: $CHARACTERS$", + "message": "以下字元不被允許:$CHARACTERS$", "placeholders": { "characters": { "content": "$1", @@ -5719,7 +5719,7 @@ } }, "inputMinValue": { - "message": "Input value must be at least $MIN$.", + "message": "輸入的值不能低於 $MIN$。", "placeholders": { "min": { "content": "$1", @@ -5737,10 +5737,10 @@ } }, "multipleInputEmails": { - "message": "1 or more emails are invalid" + "message": "一個或多個電子郵件無效" }, "tooManyEmails": { - "message": "You can only submit up to $COUNT$ emails at a time", + "message": "您一次最多只能送出 $COUNT$ 個電子郵件", "placeholders": { "count": { "content": "$1", @@ -5876,13 +5876,13 @@ "description": "The action to delete multiple secrets from the system." }, "hardDeleteSecret": { - "message": "Permanently delete secret" + "message": "永久刪除機密" }, "hardDeleteSecrets": { - "message": "Permanently delete secrets" + "message": "永久刪除機密" }, "secretProjectAssociationDescription": { - "message": "選擇與機密相關聯的項目。僅有權存取該項目的組織使用者能檢視該機密。", + "message": "選擇與機密相關聯的專案。僅有權存取該專案的組織使用者能檢視該機密。", "description": "A prompt explaining how secrets can be associated with projects." }, "selectProjects": { @@ -5894,7 +5894,7 @@ "description": "Label for the search bar used to search projects." }, "project": { - "message": "項目", + "message": "專案", "description": "Similar to collections, projects can be used to group secrets." }, "editProject": { @@ -5918,11 +5918,11 @@ "description": "Label for a secret (key/value pair)" }, "serviceAccount": { - "message": "服務帳號", + "message": "服務帳戶", "description": "A machine user which can be used to automate processes and access secrets in the system." }, "serviceAccounts": { - "message": "服務帳號", + "message": "服務帳戶", "description": "The title for the section that deals with service accounts." }, "secrets": { @@ -5946,7 +5946,7 @@ "description": "Title for creating a new secret." }, "newServiceAccount": { - "message": "新增服務帳號", + "message": "新增服務帳戶", "description": "Title for creating a new service account." }, "secretsNoItemsTitle": { @@ -5958,7 +5958,7 @@ "description": "Message to encourage the user to start adding secrets." }, "secretsTrashNoItemsMessage": { - "message": "There are no secrets in the trash." + "message": "垃圾桶中沒有機密。" }, "serviceAccountsNoItemsMessage": { "message": "Create a new service account to get started automating secret access.", @@ -5973,19 +5973,19 @@ "description": "Placeholder text for searching secrets." }, "deleteServiceAccounts": { - "message": "刪除服務帳號", + "message": "刪除服務帳戶", "description": "Title for the action to delete one or multiple service accounts." }, "deleteServiceAccount": { - "message": "刪除服務帳號", + "message": "刪除服務帳戶", "description": "Title for the action to delete a single service account." }, "viewServiceAccount": { - "message": "檢視服務帳號", + "message": "檢視服務帳戶", "description": "Action to view the details of a service account." }, "deleteServiceAccountDialogMessage": { - "message": "Deleting service account $SERVICE_ACCOUNT$ is permanent and irreversible.", + "message": "刪除服務帳戶 $SERVICE_ACCOUNT$ 為永久性動作,並且無法恢復。", "placeholders": { "service_account": { "content": "$1", @@ -5994,10 +5994,10 @@ } }, "deleteServiceAccountsDialogMessage": { - "message": "Deleting service accounts is permanent and irreversible." + "message": "刪除服務帳戶為永久性動作,並且無法恢復。" }, "deleteServiceAccountsConfirmMessage": { - "message": "Delete $COUNT$ service accounts", + "message": "刪除 $COUNT$ 組服務帳戶", "placeholders": { "count": { "content": "$1", @@ -6006,17 +6006,17 @@ } }, "deleteServiceAccountToast": { - "message": "Service account deleted" + "message": "服務帳戶已刪除" }, "deleteServiceAccountsToast": { - "message": "Service accounts deleted" + "message": "服務帳戶已刪除" }, "searchServiceAccounts": { - "message": "搜尋服務帳號", + "message": "搜尋服務帳戶", "description": "Placeholder text for searching service accounts." }, "editServiceAccount": { - "message": "Edit service account", + "message": "編輯服務帳戶", "description": "Title for editing a service account." }, "addProject": { @@ -6032,7 +6032,7 @@ "description": "Notification for the successful saving of a project." }, "projectCreated": { - "message": "項目已建立", + "message": "專案已建立", "description": "Notification for the successful creation of a project." }, "projectName": { @@ -6052,36 +6052,36 @@ "description": "Notifies that the selected secrets have been moved to the trash" }, "hardDeleteSecretConfirmation": { - "message": "Are you sure you want to permanently delete this secret?" + "message": "您確定要永久刪除此機密嗎?" }, "hardDeleteSecretsConfirmation": { - "message": "Are you sure you want to permanently delete these secrets?" + "message": "您確定要永久刪除這些機密嗎?" }, "hardDeletesSuccessToast": { - "message": "Secrets permanently deleted" + "message": "機密已永久刪除" }, "smAccess": { "message": "存取", "description": "Title indicating what permissions a service account has" }, "projectCommaSecret": { - "message": "項目,機密", + "message": "專案,機密", "description": "" }, "serviceAccountName": { - "message": "服務帳號名稱", + "message": "服務帳戶名稱", "description": "Label for the name of a service account" }, "serviceAccountCreated": { - "message": "服務帳號已建立", + "message": "服務帳戶已建立", "description": "Notifies that a new service account has been created" }, "serviceAccountUpdated": { - "message": "Service account updated", + "message": "服務帳戶已更新", "description": "Notifies that a service account has been updated" }, "newSaSelectAccess": { - "message": "輸入或選擇項目或機密", + "message": "輸入或選擇專案或機密", "description": "Instructions for selecting projects or secrets for a new service account" }, "newSaTypeToFilter": { @@ -6137,7 +6137,7 @@ } }, "deleteProjectsDialogMessage": { - "message": "刪除項目為永久性動作,並且無法恢復。", + "message": "刪除專案為永久性動作,並且無法恢復。", "description": "This message is displayed in a dialog box as a warning before proceeding with project deletion." }, "projectsNoItemsTitle": { @@ -6161,7 +6161,7 @@ "description": "Notification to be displayed when a secret is successfully sent to the trash." }, "hardDeleteSuccessToast": { - "message": "Secret permanently deleted" + "message": "機密已永久刪除" }, "accessTokens": { "message": "存取權杖", @@ -6192,7 +6192,7 @@ "description": "Message to be displayed before closing an access token, reminding the user to download or copy it." }, "expiresOnAccessToken": { - "message": "到期日:", + "message": "逾期日:", "description": "Label for the expiration date of an access token." }, "accessTokenCallOutTitle": { @@ -6208,7 +6208,7 @@ "description": "A unique string that gives a client application (eg. CLI) access to a secret or set of secrets." }, "accessTokenExpirationRequired": { - "message": "到期日期是必需的。", + "message": "必須指定逾期日期。", "description": "Error message indicating that an expiration date for the access token must be set." }, "accessTokenCreatedAndCopied": { @@ -6220,17 +6220,17 @@ "description": "Invalidates / cancels an access token and as such removes access to secrets for the client application." }, "revokeAccessTokens": { - "message": "Revoke access tokens" + "message": "撤銷存取權杖" }, "revokeAccessTokenDesc": { - "message": "Revoking access tokens is permanent and irreversible." + "message": "撤銷存取權杖為永久性動作,並且無法恢復。" }, "accessTokenRevoked": { - "message": "Access tokens revoked", + "message": "存取權杖已撤銷", "description": "Toast message after deleting one or multiple access tokens." }, "noAccessTokenSelected": { - "message": "No access token selected to revoke", + "message": "沒有選擇要撤銷的存取權杖", "description": "Toast error message after trying to delete access tokens but not selecting any access tokens." }, "submenu": { @@ -6261,13 +6261,13 @@ "message": "群組資訊" }, "editGroupMembersDesc": { - "message": "Grant members access to the group's assigned collections." + "message": "授予成員對該群組已指派的集合的存取權限。" }, "editGroupCollectionsDesc": { - "message": "Grant access to collections by adding them to this group." + "message": "透過將他們添加到此群組,授予對集合的存取權限。" }, "accessAllCollectionsDesc": { - "message": "Grant access to all current and future collections." + "message": "授予對所有目前和未來的集合的存取權限。" }, "accessAllCollectionsHelp": { "message": "If checked, this will replace all other collection permissions." @@ -6288,7 +6288,7 @@ "message": "集合" }, "noCollection": { - "message": "No collection" + "message": "沒有集合" }, "canView": { "message": "可以檢視" @@ -6303,13 +6303,13 @@ "message": "可以編輯(除了密碼)" }, "noCollectionsAdded": { - "message": "No collections added" + "message": "未新增任何集合" }, "noMembersAdded": { - "message": "No members added" + "message": "未新增任何成員" }, "noGroupsAdded": { - "message": "No groups added" + "message": "未新增任何群組" }, "group": { "message": "群組" @@ -6324,7 +6324,7 @@ "message": "網域驗證" }, "newDomain": { - "message": "New domain" + "message": "新增網域" }, "noDomains": { "message": "沒有網域" @@ -6363,7 +6363,7 @@ "message": "刪除網域" }, "removeDomainWarning": { - "message": "Removing a domain cannot be undone. Are you sure you want to continue?" + "message": "移除網域后不能復原。您確定要繼續嗎?" }, "domainRemoved": { "message": "網域已移除" @@ -6375,10 +6375,10 @@ "message": "已驗證網域" }, "duplicateDomainError": { - "message": "You can't claim the same domain twice." + "message": "您不能再次聲明同一個網域。" }, "domainNotAvailable": { - "message": "其他人正在使用 $DOMAIN$。請使用一個不同的網域名稱以繼續。", + "message": "其他人正在使用 $DOMAIN$。請使用一個不同的網域以繼續。", "placeholders": { "DOMAIN": { "content": "$1", @@ -6468,7 +6468,7 @@ "message": "Permissions set for a member will replace permissions set by that member's group" }, "noMembersOrGroupsAdded": { - "message": "No members or groups added" + "message": "未新增任何成員或群組" }, "deleted": { "message": "已刪除" @@ -6534,7 +6534,7 @@ "message": "匯出資料" }, "exportingOrganizationSecretDataTitle": { - "message": "Exporting Organization Secret Data" + "message": "匯出組織機密資料" }, "exportingOrganizationSecretDataDescription": { "message": "Only the Secrets Manager data associated with $ORGANIZATION$ will be exported. Items in other products or from other organizations will not be included.", @@ -6549,7 +6549,7 @@ "message": "檔案上傳" }, "acceptedFormats": { - "message": "Accepted Formats:" + "message": "接受的格式:" }, "copyPasteImportContents": { "message": "Copy & paste import contents:" @@ -6558,7 +6558,7 @@ "message": "或" }, "licenseAndBillingManagement": { - "message": "License and billing management" + "message": "授權和帳單管理" }, "automaticSync": { "message": "自動同步" @@ -6567,25 +6567,25 @@ "message": "手動上傳" }, "manualUploadDesc": { - "message": "If you do not want to opt into billing sync, manually upload your license here." + "message": "如果您不想選擇帳單同步,請在這裏手動上傳您的授權証。" }, "syncLicense": { - "message": "Sync license" + "message": "同步授權" }, "licenseSyncSuccess": { - "message": "Successfully synced license" + "message": "授權成功同步" }, "licenseUploadSuccess": { - "message": "Successfully uploaded license" + "message": "授權証上傳成功" }, "lastLicenseSync": { - "message": "Last license sync" + "message": "最近授权同步" }, "billingSyncHelp": { - "message": "Billing Sync help" + "message": "帳單同步幫助" }, "licensePaidFeaturesHelp": { - "message": "License paid features help" + "message": "授權付費功能幫助" }, "selfHostGracePeriodHelp": { "message": "After your subscription expires, you have 60 days to apply an updated license file to your organization. Grace period ends $GRACE_PERIOD_END_DATE$.", @@ -6600,37 +6600,37 @@ "message": "上傳授權證" }, "projectPeopleDescription": { - "message": "Grant groups or people access to this project." + "message": "授予群組或人員對此專案的存取權限。" }, "projectPeopleSelectHint": { - "message": "Type or select people or groups" + "message": "輸入或選擇人員或群組" }, "projectServiceAccountsDescription": { - "message": "Grant service accounts access to this project." + "message": "授予服務帳戶對此專案的存取權限。" }, "projectServiceAccountsSelectHint": { - "message": "Type or select service accounts" + "message": "輸入或選擇服務帳戶" }, "projectEmptyPeopleAccessPolicies": { - "message": "Add people or groups to start collaborating" + "message": "新增人員或群組以開始協作" }, "projectEmptyServiceAccountAccessPolicies": { - "message": "Add service accounts to grant access" + "message": "新增服務帳戶以授予存取權限" }, "serviceAccountPeopleDescription": { - "message": "Grant groups or people access to this service account." + "message": "授予群組或人員對此服務帳戶的存取權限。" }, "serviceAccountProjectsDescription": { "message": "Assign projects to this service account. " }, "serviceAccountEmptyProjectAccesspolicies": { - "message": "Add projects to grant access" + "message": "新增專案以授予存取權限" }, "canReadWrite": { - "message": "Can read, write" + "message": "可以讀取,寫入" }, "groupSlashUser": { - "message": "Group/User" + "message": "群組/使用者" }, "lowKdfIterations": { "message": "Low KDF Iterations" @@ -6645,16 +6645,16 @@ "message": "Secrets Manager" }, "secretsManagerBeta": { - "message": "Secrets Manager Beta" + "message": "Secrets Manager Beta 版" }, "secretsManagerAccessDescription": { - "message": "Activate user access to Secrets Manager." + "message": "已激活對 Secrets Manager 的使用者存取權限。" }, "userAccessSecretsManagerGA": { - "message": "This user can access Secrets Manager" + "message": "此使用者可以存取 Secrets Manager" }, "important": { - "message": "Important:" + "message": "重要:" }, "viewAll": { "message": "檢視全部" @@ -6673,16 +6673,16 @@ } }, "resolveTheErrorsBelowAndTryAgain": { - "message": "Resolve the errors below and try again." + "message": "請解決下面的錯誤然後再試一次。" }, "description": { "message": "Description" }, "errorReadingImportFile": { - "message": "An error occurred when trying to read the import file" + "message": "嘗試讀取匯入檔案時發生錯誤" }, "accessedSecret": { - "message": "Accessed secret $SECRET_ID$.", + "message": "存取了機密 $SECRET_ID$。", "placeholders": { "secret_id": { "content": "$1", @@ -6695,23 +6695,23 @@ "description": "Software Development Kit" }, "createSecret": { - "message": "Create a secret" + "message": "建立機密" }, "createProject": { - "message": "Create a project" + "message": "建立專案" }, "createServiceAccount": { - "message": "Create a service account" + "message": "建立服務帳戶" }, "downloadThe": { - "message": "Download the", + "message": "下載", "description": "Link to a downloadable resource. This will be used as part of a larger phrase. Example: Download the Secrets Manager CLI" }, "smCLI": { "message": "Secrets Manager CLI" }, "importSecrets": { - "message": "Import secrets" + "message": "匯入機密" }, "getStarted": { "message": "開始使用" @@ -6736,10 +6736,10 @@ "message": "還原機密" }, "restoreSecretPrompt": { - "message": "Are you sure you want to restore this secret?" + "message": "您確定要還原此機密嗎?" }, "restoreSecretsPrompt": { - "message": "Are you sure you want to restore these secrets?" + "message": "您確定要還原這些機密嗎?" }, "secretRestoredSuccessToast": { "message": "機密已還原" @@ -6754,7 +6754,7 @@ "message": "Turn on organization access to the Secrets Manager at no charge during the Beta program. Users can be granted access to the Beta in Members." }, "secretsManagerEnable": { - "message": "Enable Secrets Manager Beta" + "message": "啟用 Secrets Manager Beta 版" }, "saPeopleWarningTitle": { "message": "Access tokens still available" @@ -6763,31 +6763,31 @@ "message": "Removing people from a service account does not remove the access tokens they created. For security best practice, it is recommended to revoke access tokens created by people removed from a service account." }, "smAccessRemovalWarningProjectTitle": { - "message": "Remove access to this project" + "message": "移除對此專案的存取權限" }, "smAccessRemovalWarningProjectMessage": { - "message": "This action will remove your access to the project." + "message": "此動作將移除您對此專案的訪問權限。" }, "smAccessRemovalWarningSaTitle": { - "message": "Remove access to this service account" + "message": "移除對此服務帳戶的訪問權限" }, "smAccessRemovalWarningSaMessage": { - "message": "This action will remove your access to the service account." + "message": "此動作將移除您對此服務帳戶的訪問權限。" }, "removeAccess": { - "message": "Remove access" + "message": "移除存取權限" }, "checkForBreaches": { "message": "Check known data breaches for this password" }, "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": "Weak password identified and found in a data breach. Use a strong and unique password to protect your account. Are you sure you want to use this password?" @@ -6802,7 +6802,7 @@ } }, "masterPasswordMinimumlength": { - "message": "Master password must be at least $LENGTH$ characters long.", + "message": "主密碼必須至少 $LENGTH$ 個字元。", "placeholders": { "length": { "content": "$1", @@ -6834,42 +6834,42 @@ "message": "bitwarden.eu" }, "smProjectDeleteAccessRestricted": { - "message": "You don't have permissions to delete this project", + "message": "您沒有刪除這此專案的權限", "description": "The individual description shown to the user when the user doesn't have access to delete a project." }, "smProjectsDeleteBulkConfirmation": { - "message": "The following projects can not be deleted. Would you like to continue?", + "message": "以下專案無法刪除。要繼續嗎?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." }, "updateKdfSettings": { "message": "更新 KDF 設定" }, "loginInitiated": { - "message": "Login initiated" + "message": "登入已發起" }, "deviceApprovalRequired": { - "message": "Device approval required. Select an approval option below:" + "message": "裝置核准已要求。請選擇一個以下的核准選項:" }, "rememberThisDevice": { - "message": "Remember this device" + "message": "記住這個裝置" }, "uncheckIfPublicDevice": { "message": "Uncheck if using a public device" }, "approveFromYourOtherDevice": { - "message": "Approve from your other device" + "message": "從其他裝置批准" }, "requestAdminApproval": { - "message": "Request admin approval" + "message": "要求管理員核准" }, "approveWithMasterPassword": { - "message": "Approve with master password" + "message": "使用主密碼批准" }, "trustedDeviceEncryption": { - "message": "Trusted device encryption" + "message": "可信任的裝置加密" }, "trustedDevices": { - "message": "Trusted devices" + "message": "可信任的裝置" }, "memberDecryptionOptionTdeDescriptionPartOne": { "message": "Once authenticated, members will decrypt vault data using a key stored on their device. The", @@ -6900,7 +6900,7 @@ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy, SSO required policy, and account recovery administration policy with automatic enrollment will turn on when this option is used.'" }, "notFound": { - "message": "$RESOURCE$ not found", + "message": "找不到 $RESOURCE$", "placeholders": { "resource": { "content": "$1", @@ -6909,67 +6909,67 @@ } }, "recoverAccount": { - "message": "Recover account" + "message": "復原帳戶" }, "updatedTempPassword": { - "message": "User updated a password issued through account recovery." + "message": "使用者更新了透過帳戶復原頒發的密碼。" }, "activatedAccessToSecretsManager": { - "message": "Activated access to Secrets Manager", + "message": "已激活對 Secrets Manager 的存取", "description": "Confirmation message that one or more users gained access to Secrets Manager" }, "activateAccess": { "message": "Activate access" }, "bulkEnableSecretsManagerDescription": { - "message": "Grant the following members access to Secrets Manager. The role granted in the Password Manager will apply to Secrets Manager.", + "message": "授予以下成員對 Secrets Manager 的存取權限。在 Password Manager 授予的角色也適用於 Secrets Manager。", "description": "This description is shown to an admin when they are attempting to add more users to Secrets Manager." }, "activateSecretsManager": { - "message": "Activate Secrets Manager" + "message": "激活 Secrets Manager" }, "yourOrganizationsFingerprint": { - "message": "Your organization's fingerprint phrase", + "message": "您組織的指紋短語", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their organization's public key with another user, for the purposes of sharing." }, "deviceApprovals": { - "message": "Device approvals" + "message": "裝置核准" }, "deviceApprovalsDesc": { - "message": "Approve login requests below to allow the requesting member to finish logging in. Unapproved requests expire after 1 week. Verify the member’s information before approving." + "message": "核准以下的登入要求以允許成員完成登入。未核准的要求將在 1 周後逾期。 在核准之前请驗證成員資訊。" }, "deviceInfo": { - "message": "Device info" + "message": "裝置資訊" }, "time": { - "message": "Time" + "message": "時間" }, "denyAllRequests": { - "message": "Deny all requests" + "message": "拒絕所有要求" }, "denyRequest": { - "message": "Deny request" + "message": "拒絕要求" }, "approveRequest": { - "message": "Approve request" + "message": "批准要求" }, "noDeviceRequests": { - "message": "No device requests" + "message": "沒有裝置要求" }, "noDeviceRequestsDesc": { - "message": "Member device approval requests will appear here" + "message": "成員的裝置核准要求將顯示在這裏" }, "loginRequestDenied": { - "message": "Login request denied" + "message": "登入要求被拒絕" }, "allLoginRequestsDenied": { - "message": "All login requests denied" + "message": "所有登入要求被拒絕" }, "loginRequestApproved": { - "message": "Login request approved" + "message": "登入要求已批准" }, "removeOrgUserNoMasterPasswordTitle": { - "message": "Account does not have master password" + "message": "帳戶沒有主密碼" }, "removeOrgUserNoMasterPasswordDesc": { "message": "Removing $USER$ without setting a master password for them may restrict access to their full account. Are you sure you want to continue?", @@ -6981,13 +6981,13 @@ } }, "noMasterPassword": { - "message": "No master password" + "message": "沒有主密碼" }, "removeMembersWithoutMasterPasswordWarning": { "message": "Removing members who do not have master passwords without setting one for them may restrict access to their full account." }, "approvedAuthRequest": { - "message": "Approved device for $ID$.", + "message": "核准了 $ID$ 的裝置。", "placeholders": { "id": { "content": "$1", @@ -6996,7 +6996,7 @@ } }, "rejectedAuthRequest": { - "message": "Denied device for $ID$.", + "message": "拒絕了 $ID$ 的裝置。", "placeholders": { "id": { "content": "$1", @@ -7005,7 +7005,7 @@ } }, "requestedDeviceApproval": { - "message": "Requested device approval." + "message": "要求了裝置核准。" }, "startYour7DayFreeTrialOfBitwardenFor": { "message": "Start your 7-Day free trial of Bitwarden for $ORG$", @@ -7023,39 +7023,39 @@ "message": "Selected region flag" }, "accountSuccessfullyCreated": { - "message": "Account successfully created!" + "message": "已成功建立帳戶!" }, "adminApprovalRequested": { - "message": "Admin approval requested" + "message": "已要求管理員核准" }, "adminApprovalRequestSentToAdmins": { - "message": "Your request has been sent to your admin." + "message": "您的要求已傳送給您的管理員" }, "youWillBeNotifiedOnceApproved": { - "message": "You will be notified once approved." + "message": "批准後將通知您。" }, "troubleLoggingIn": { - "message": "Trouble logging in?" + "message": "登入時遇到困難?" }, "loginApproved": { - "message": "Login approved" + "message": "登入已批准" }, "userEmailMissing": { "message": "User email missing" }, "deviceTrusted": { - "message": "Device trusted" + "message": "裝置已信任" }, "sendsNoItemsTitle": { - "message": "No active Sends", + "message": "沒有可用的 Send", "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": "使用 Send 可以與任何人安全地共用加密資訊。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "inviteUsers": { - "message": "Invite Users" + "message": "邀請使用者" }, "secretsManagerForPlan": { "message": "Secrets Manager for $PLAN$", @@ -7070,7 +7070,7 @@ "message": "提供工程與 DevOps 團隊一套在軟體開發生命週期中,管理秘密資訊的功能。" }, "free2PersonOrganization": { - "message": "2 人組織免費版" + "message": "免費的 2 人組織" }, "unlimitedSecrets": { "message": "無限秘密資訊" @@ -7088,7 +7088,7 @@ } }, "serviceAccountsIncluded": { - "message": "包含 $COUNT$ 組服務帳號", + "message": "包含 $COUNT$ 組服務帳戶", "placeholders": { "count": { "content": "$1", @@ -7112,7 +7112,7 @@ "message": "將 Secrets Manager 加入您的升級方案,來記錄維持存取於先前方案中保存的秘密資訊。" }, "additionalServiceAccounts": { - "message": "新增服務帳號" + "message": "額外服務帳戶" }, "includedServiceAccounts": { "message": "Your plan comes with $COUNT$ service accounts.", @@ -7145,19 +7145,19 @@ "message": "免費組織" }, "limitServiceAccounts": { - "message": "限制服務帳號數量(選填)" + "message": "限制服務帳戶數量(選填)" }, "limitServiceAccountsDesc": { - "message": "為您的服務帳號數量設定限制。達到此限制後,就無法再新增服務帳號資訊。" + "message": "為您的服務帳戶數量設定限制。達到此限制後,就無法再新增服務帳戶。" }, "serviceAccountLimit": { - "message": "服務帳號數量限制(選填)" + "message": "服務帳戶數量限制(選填)" }, "maxServiceAccountCost": { - "message": "可能的最大服務帳號成本" + "message": "可能的最大服務帳戶成本" }, "loggedInExclamation": { - "message": "Logged in!" + "message": "已登入!" }, "smBetaEndedDesc": { "message": "The Secrets Manager Beta ended $BETA_ENDING_DATE$. You have $DAYS$ days left to add Secrets Manager to your paid subscription and maintain access to Secrets Manager data. Contact Customer Success to add Secrets Manager to your subscription.", @@ -7173,12 +7173,12 @@ } }, "betaEnding": { - "message": "Beta Ending" + "message": "Beta 版即將結束" }, "beta": { - "message": "Beta" + "message": "Beta 版" }, "alreadyHaveAccount": { - "message": "Already have an account?" + "message": "已經有帳戶?" } } diff --git a/apps/web/src/scss/base.scss b/apps/web/src/scss/base.scss index ad02a7ce87d..4600620be87 100644 --- a/apps/web/src/scss/base.scss +++ b/apps/web/src/scss/base.scss @@ -173,9 +173,7 @@ code { } .btn:focus, -.swal2-popup .swal2-actions button:focus, .btn.focus, -.swal2-popup .swal2-actions button.focus, .form-control:focus { @include themify($themes) { box-shadow: 0 0 0 0.2rem themed("focus"); diff --git a/apps/web/src/scss/buttons.scss b/apps/web/src/scss/buttons.scss index 34a8ec66fa4..c803439fe4d 100644 --- a/apps/web/src/scss/buttons.scss +++ b/apps/web/src/scss/buttons.scss @@ -1,5 +1,4 @@ -.btn-primary, -.swal2-confirm { +.btn-primary { @include themify($themes) { background-color: themed("btnPrimary"); border-color: themed("btnPrimary"); @@ -37,8 +36,7 @@ } } -.btn-secondary, -.swal2-cancel { +.btn-secondary { @include themify($themes) { background-color: themed("btnSecondary"); border-color: themed("btnSecondaryBorder"); @@ -103,8 +101,7 @@ } } -.btn-danger, -.swal2-deny { +.btn-danger { @include themify($themes) { background-color: themed("btnDanger"); border-color: themed("btnDanger"); diff --git a/apps/web/src/scss/forms.scss b/apps/web/src/scss/forms.scss index acba154f30f..9404bc94031 100644 --- a/apps/web/src/scss/forms.scss +++ b/apps/web/src/scss/forms.scss @@ -224,10 +224,6 @@ input[type="checkbox"] { } } -.error-summary { - margin-top: 1rem; -} - .error-inline { @include themify($themes) { color: themed("danger"); diff --git a/apps/web/src/scss/modals.scss b/apps/web/src/scss/modals.scss index 29e7191cd72..92e6ef3a18e 100644 --- a/apps/web/src/scss/modals.scss +++ b/apps/web/src/scss/modals.scss @@ -6,21 +6,6 @@ } } -.modal-footer-content { - border: none; - border-radius: none; - @include themify($themes) { - background-color: themed("footerBackgroundColor"); - } - position: relative; - display: flex; - flex-direction: column; - width: 100%; - pointer-events: auto; - background-clip: padding-box; - outline: 0; -} - .modal-dialog { border: 1px solid rgba(0, 0, 0, 0.2); border-radius: 0.3rem; @@ -100,12 +85,6 @@ } } -#totpImage { - @include themify($themes) { - filter: themed("imgFilter"); - } -} - .totp { .totp-code { @extend .text-monospace; diff --git a/apps/web/src/scss/pages.scss b/apps/web/src/scss/pages.scss index 7b56a1f9b5b..4dbee2ac507 100644 --- a/apps/web/src/scss/pages.scss +++ b/apps/web/src/scss/pages.scss @@ -149,54 +149,3 @@ app-sponsored-families { } } } - -.collapsable-row { - display: flex; - padding-top: 15px; - i { - margin-top: 3px; - } - .filter-title { - padding-left: 5px; - } - &.active { - @include themify($themes) { - color: themed("primary"); - } - } -} - -.vault-filter-option { - padding-bottom: 3px; - &.active { - @include themify($themes) { - color: themed("primary"); - font-weight: bold; - } - } - button.filter-options-icon { - background: none; - border: none; - padding: 0; - - &:hover, - &:focus { - @include themify($themes) { - color: themed("iconHover") !important; - box-shadow: none; - } - } - } -} - -.org-filter-heading { - @include themify($themes) { - color: themed("textColor"); - } - &.active { - @include themify($themes) { - color: themed("primary"); - font-weight: bold; - } - } -} diff --git a/apps/web/src/scss/plugins.scss b/apps/web/src/scss/plugins.scss index 0610535eb55..8d3b685b031 100644 --- a/apps/web/src/scss/plugins.scss +++ b/apps/web/src/scss/plugins.scss @@ -130,96 +130,6 @@ } } -// SweetAlert2 - -[class*="swal2-"] { - &:not(.swal2-container, .swal2-confirm, .swal2-cancel, .swal2-deny) { - @include themify($themes) { - background-color: themed("backgroundColor"); - color: themed("textColor"); - } - } -} - -.swal2-container { - background-color: rgba(0, 0, 0, 0.3); -} - -.swal2-popup { - @include themify($themes) { - background-color: themed("backgroundColor"); - color: themed("textColor"); - } - border: $modal-content-border-width solid #9a9a9a; - @include border-radius($modal-content-border-radius); - padding: 15px 0 0; - width: 34em; // slightly bigger than the hardcoded 478px in v1. - - .swal2-header { - padding: 0 15px; - } - - .swal2-icon { - border: none; - height: auto; - margin: 0 auto; - width: auto; - } - - .swal2-content { - font-size: $font-size-base; - padding-bottom: 15px; - @include themify($themes) { - border-bottom: $modal-footer-border-width solid themed("separator"); - } - } - - i.swal-custom-icon { - display: block; - font-size: 35px; - margin: 0 auto; - } - - .swal2-title { - font-size: $font-size-lg; - margin: 0; - padding: 10px 0 15px; - @include themify($themes) { - color: themed("textHeadingColor"); - } - } - - .swal2-content { - font-size: $font-size-base; - padding: 0 15px 15px; - @include themify($themes) { - color: themed("textColor"); - } - } - - .swal2-actions { - @include border-radius($modal-content-border-radius); - display: flex; - flex-direction: row; - font-size: $font-size-base; - justify-content: flex-start; - margin: 0; - padding: 15px; - @include themify($themes) { - background-color: themed("backgroundColor"); - } - - button { - margin-right: 10px; - @extend .btn; - } - } - - .swal2-validation-message { - margin: 0 -15px; - } -} - date-input-polyfill { &[data-open="true"] { z-index: 10000 !important; diff --git a/apps/web/src/scss/styles.scss b/apps/web/src/scss/styles.scss index 0003f521c7b..2c0f9c21fd6 100644 --- a/apps/web/src/scss/styles.scss +++ b/apps/web/src/scss/styles.scss @@ -44,7 +44,6 @@ @import "~bootstrap/scss/_print"; @import "~ngx-toastr/toastr"; -@import "~#sweetalert2"; @import "./base"; @import "./buttons"; diff --git a/apps/web/webpack.config.js b/apps/web/webpack.config.js index bfdc8ae90ae..c7d2bcb5e01 100644 --- a/apps/web/webpack.config.js +++ b/apps/web/webpack.config.js @@ -349,10 +349,6 @@ const webpackConfig = { extensions: [".ts", ".js"], symlinks: false, modules: [path.resolve("../../node_modules")], - alias: { - sweetalert2: require.resolve("sweetalert2/dist/sweetalert2.js"), - "#sweetalert2": require.resolve("sweetalert2/src/sweetalert2.scss"), - }, fallback: { buffer: false, util: require.resolve("util/"), diff --git a/bitwarden_license/bit-web/src/app/app.module.ts b/bitwarden_license/bit-web/src/app/app.module.ts index c5de6f6d5fa..77075a20a44 100644 --- a/bitwarden_license/bit-web/src/app/app.module.ts +++ b/bitwarden_license/bit-web/src/app/app.module.ts @@ -19,6 +19,12 @@ import { MaximumVaultTimeoutPolicyComponent } from "./admin-console/policies/max import { AppRoutingModule } from "./app-routing.module"; import { AppComponent } from "./app.component"; +/** + * This is the AppModule for the commercial version of Bitwarden. + * `apps/web/app.module.ts` contains the OSS version. + * + * You probably do not want to modify this file. Consider editing `oss.module.ts` instead. + */ @NgModule({ imports: [ OverlayModule, diff --git a/libs/angular/src/services/injection-tokens.ts b/libs/angular/src/services/injection-tokens.ts index b87b239e162..af3350193ec 100644 --- a/libs/angular/src/services/injection-tokens.ts +++ b/libs/angular/src/services/injection-tokens.ts @@ -17,7 +17,6 @@ export const LOGOUT_CALLBACK = new InjectionToken< export const LOCKED_CALLBACK = new InjectionToken<(userId?: string) => Promise>( "LOCKED_CALLBACK" ); -export const CLIENT_TYPE = new InjectionToken("CLIENT_TYPE"); export const LOCALES_DIRECTORY = new InjectionToken("LOCALES_DIRECTORY"); export const SYSTEM_LANGUAGE = new InjectionToken("SYSTEM_LANGUAGE"); export const LOG_MAC_FAILURES = new InjectionToken("LOG_MAC_FAILURES"); diff --git a/libs/angular/src/services/jslib-services.module.ts b/libs/angular/src/services/jslib-services.module.ts index 5d279657101..02f6278fec7 100644 --- a/libs/angular/src/services/jslib-services.module.ts +++ b/libs/angular/src/services/jslib-services.module.ts @@ -647,6 +647,7 @@ import { AbstractThemingService } from "./theming/theming.service.abstraction"; ConfigApiServiceAbstraction, AuthServiceAbstraction, EnvironmentServiceAbstraction, + LogService, ], }, { diff --git a/libs/angular/src/tools/send/add-edit.component.ts b/libs/angular/src/tools/send/add-edit.component.ts index d77da9c42c8..ffe0b6a4f9d 100644 --- a/libs/angular/src/tools/send/add-edit.component.ts +++ b/libs/angular/src/tools/send/add-edit.component.ts @@ -11,6 +11,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 { EncArrayBuffer } from "@bitwarden/common/platform/models/domain/enc-array-buffer"; import { SendType } from "@bitwarden/common/tools/send/enums/send-type"; import { Send } from "@bitwarden/common/tools/send/models/domain/send"; @@ -67,7 +68,6 @@ export class AddEditComponent implements OnInit, OnDestroy { disableHideEmail = false; send: SendView; hasPassword: boolean; - password: string; showPassword = false; formPromise: Promise; deletePromise: Promise; @@ -207,9 +207,6 @@ export class AddEditComponent implements OnInit, OnDestroy { this.send = await send.decrypt(); this.type = this.send.type; this.updateFormValues(); - if (this.send.hideEmail) { - this.formGroup.controls.hideEmail.enable(); - } } else { this.send = new SendView(); this.send.type = this.type; @@ -252,7 +249,7 @@ export class AddEditComponent implements OnInit, OnDestroy { this.send.disabled = this.formGroup.controls.disabled.value; this.send.type = this.type; - if (this.send.name == null || this.send.name === "") { + if (Utils.isNullOrWhitespace(this.send.name)) { this.platformUtilsService.showToast( "error", this.i18nService.t("errorOccurred"), @@ -286,11 +283,8 @@ export class AddEditComponent implements OnInit, OnDestroy { } } - if ( - this.formGroup.controls.password.value != null && - this.formGroup.controls.password.value.trim() === "" - ) { - this.password = null; + if (Utils.isNullOrWhitespace(this.send.password)) { + this.send.password = null; } this.formPromise = this.encryptSend(file).then(async (encSend) => { @@ -379,12 +373,7 @@ export class AddEditComponent implements OnInit, OnDestroy { } protected async encryptSend(file: File): Promise<[Send, EncArrayBuffer]> { - const sendData = await this.sendService.encrypt( - this.send, - file, - this.formGroup.controls.password.value, - null - ); + const sendData = await this.sendService.encrypt(this.send, file, this.send.password, null); // Parse dates try { @@ -420,7 +409,7 @@ export class AddEditComponent implements OnInit, OnDestroy { hideEmail: this.send?.hideEmail ?? false, disabled: this.send?.disabled ?? false, type: this.send.type ?? this.type, - password: "", + password: null, selectedDeletionDatePreset: this.editMode ? DatePreset.Custom : DatePreset.SevenDays, selectedExpirationDatePreset: this.editMode ? DatePreset.Custom : DatePreset.Never, @@ -433,6 +422,10 @@ export class AddEditComponent implements OnInit, OnDestroy { "yyyy-MM-ddTHH:mm" ), }); + + if (this.send.hideEmail) { + this.formGroup.controls.hideEmail.enable(); + } } private async handleCopyLinkToClipboard() { diff --git a/libs/angular/src/vault/components/password-reprompt.component.ts b/libs/angular/src/vault/components/password-reprompt.component.ts index 0f0fd685b20..1094b379316 100644 --- a/libs/angular/src/vault/components/password-reprompt.component.ts +++ b/libs/angular/src/vault/components/password-reprompt.component.ts @@ -27,7 +27,8 @@ export class PasswordRepromptComponent { } async submit() { - if (!(await this.cryptoService.compareAndUpdateKeyHash(this.masterPassword, null))) { + const storedMasterKey = await this.cryptoService.getOrDeriveMasterKey(this.masterPassword); + if (!(await this.cryptoService.compareAndUpdateKeyHash(this.masterPassword, storedMasterKey))) { this.platformUtilsService.showToast( "error", this.i18nService.t("errorOccurred"), diff --git a/libs/auth/src/components/fingerprint-dialog.component.html b/libs/auth/src/components/fingerprint-dialog.component.html new file mode 100644 index 00000000000..709cc4747d2 --- /dev/null +++ b/libs/auth/src/components/fingerprint-dialog.component.html @@ -0,0 +1,23 @@ + + + {{ "yourAccountsFingerprint" | i18n }}: + + {{ data.fingerprint.join("-") }} + + + + {{ "learnMore" | i18n }} + + + + + diff --git a/libs/auth/src/components/fingerprint-dialog.component.ts b/libs/auth/src/components/fingerprint-dialog.component.ts new file mode 100644 index 00000000000..2a7b3e10997 --- /dev/null +++ b/libs/auth/src/components/fingerprint-dialog.component.ts @@ -0,0 +1,22 @@ +import { DIALOG_DATA } from "@angular/cdk/dialog"; +import { Component, Inject } from "@angular/core"; + +import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { ButtonModule, DialogModule, DialogService } from "@bitwarden/components"; + +export type FingerprintDialogData = { + fingerprint: string[]; +}; + +@Component({ + templateUrl: "fingerprint-dialog.component.html", + standalone: true, + imports: [JslibModule, ButtonModule, DialogModule], +}) +export class FingerprintDialogComponent { + constructor(@Inject(DIALOG_DATA) protected data: FingerprintDialogData) {} + + static open(dialogService: DialogService, data: FingerprintDialogData) { + return dialogService.open(FingerprintDialogComponent, { data }); + } +} diff --git a/libs/auth/src/index.ts b/libs/auth/src/index.ts index e69de29bb2d..0b4f07fc29d 100644 --- a/libs/auth/src/index.ts +++ b/libs/auth/src/index.ts @@ -0,0 +1 @@ +export * from "./components/fingerprint-dialog.component"; diff --git a/libs/common/src/enums/client-type.enum.ts b/libs/common/src/enums/client-type.enum.ts index 246769ebf21..54653f74462 100644 --- a/libs/common/src/enums/client-type.enum.ts +++ b/libs/common/src/enums/client-type.enum.ts @@ -2,7 +2,7 @@ export enum ClientType { Web = "web", Browser = "browser", Desktop = "desktop", - Mobile = "mobile", + // Mobile = "mobile", Cli = "cli", - DirectoryConnector = "connector", + // DirectoryConnector = "connector", } diff --git a/libs/common/src/platform/services/config/config.service.spec.ts b/libs/common/src/platform/services/config/config.service.spec.ts index 511ecfd5c86..2f3a90f70fd 100644 --- a/libs/common/src/platform/services/config/config.service.spec.ts +++ b/libs/common/src/platform/services/config/config.service.spec.ts @@ -6,6 +6,7 @@ import { AuthenticationStatus } from "../../../auth/enums/authentication-status" import { ConfigApiServiceAbstraction } from "../../abstractions/config/config-api.service.abstraction"; import { ServerConfig } from "../../abstractions/config/server-config"; import { EnvironmentService } from "../../abstractions/environment.service"; +import { LogService } from "../../abstractions/log.service"; import { StateService } from "../../abstractions/state.service"; import { ServerConfigData } from "../../models/data/server-config.data"; import { @@ -21,6 +22,7 @@ describe("ConfigService", () => { let configApiService: MockProxy; let authService: MockProxy; let environmentService: MockProxy; + let logService: MockProxy; let serverResponseCount: number; // increments to track distinct responses received from server @@ -31,7 +33,8 @@ describe("ConfigService", () => { stateService, configApiService, authService, - environmentService + environmentService, + logService ); configService.init(); return configService; @@ -42,6 +45,8 @@ describe("ConfigService", () => { configApiService = mock(); authService = mock(); environmentService = mock(); + logService = mock(); + environmentService.urls = new ReplaySubject(1); serverResponseCount = 1; @@ -56,10 +61,12 @@ describe("ConfigService", () => { jest.useRealTimers(); }); - it("Loads config from storage", (done) => { + it("Uses storage as fallback", (done) => { const storedConfigData = serverConfigDataFactory("storedConfig"); stateService.getServerConfig.mockResolvedValueOnce(storedConfigData); + configApiService.get.mockRejectedValueOnce(new Error("Unable to fetch")); + const configService = configServiceFactory(); configService.serverConfig$.pipe(take(1)).subscribe((config) => { @@ -68,6 +75,30 @@ describe("ConfigService", () => { expect(stateService.setServerConfig).not.toHaveBeenCalled(); done(); }); + + configService.triggerServerConfigFetch(); + }); + + it("Stream does not error out if fetch fails", (done) => { + const storedConfigData = serverConfigDataFactory("storedConfig"); + stateService.getServerConfig.mockResolvedValueOnce(storedConfigData); + + const configService = configServiceFactory(); + + configService.serverConfig$.pipe(skip(1), take(1)).subscribe((config) => { + try { + expect(config.gitHash).toEqual("server1"); + done(); + } catch (e) { + done(e); + } + }); + + configApiService.get.mockRejectedValueOnce(new Error("Unable to fetch")); + configService.triggerServerConfigFetch(); + + configApiService.get.mockResolvedValueOnce(serverConfigResponseFactory("server1")); + configService.triggerServerConfigFetch(); }); describe("Fetches config from server", () => { @@ -80,8 +111,8 @@ describe("ConfigService", () => { (hours: number, done: jest.DoneCallback) => { const configService = configServiceFactory(); - // skip initial load from storage, plus previous hours (if any) - configService.serverConfig$.pipe(skip(hours), take(1)).subscribe((config) => { + // skip previous hours (if any) + configService.serverConfig$.pipe(skip(hours - 1), take(1)).subscribe((config) => { try { expect(config.gitHash).toEqual("server" + hours); expect(configApiService.get).toHaveBeenCalledTimes(hours); @@ -99,8 +130,7 @@ describe("ConfigService", () => { it("when environment URLs change", (done) => { const configService = configServiceFactory(); - // skip initial load from storage - configService.serverConfig$.pipe(skip(1), take(1)).subscribe((config) => { + configService.serverConfig$.pipe(take(1)).subscribe((config) => { try { expect(config.gitHash).toEqual("server1"); done(); @@ -115,8 +145,7 @@ describe("ConfigService", () => { it("when triggerServerConfigFetch() is called", (done) => { const configService = configServiceFactory(); - // skip initial load from storage - configService.serverConfig$.pipe(skip(1), take(1)).subscribe((config) => { + configService.serverConfig$.pipe(take(1)).subscribe((config) => { try { expect(config.gitHash).toEqual("server1"); done(); @@ -134,8 +163,7 @@ describe("ConfigService", () => { authService.getAuthStatus.mockResolvedValue(AuthenticationStatus.Locked); const configService = configServiceFactory(); - // skip initial load from storage - configService.serverConfig$.pipe(skip(1), take(1)).subscribe(() => { + configService.serverConfig$.pipe(take(1)).subscribe(() => { try { expect(stateService.setServerConfig).toHaveBeenCalledWith( expect.objectContaining({ gitHash: "server1" }) diff --git a/libs/common/src/platform/services/config/config.service.ts b/libs/common/src/platform/services/config/config.service.ts index c3a5fab4d70..008f5a764d3 100644 --- a/libs/common/src/platform/services/config/config.service.ts +++ b/libs/common/src/platform/services/config/config.service.ts @@ -1,11 +1,11 @@ import { ReplaySubject, Subject, + catchError, concatMap, + defer, delayWhen, - filter, firstValueFrom, - from, map, merge, timer, @@ -18,6 +18,7 @@ import { ConfigApiServiceAbstraction } from "../../abstractions/config/config-ap import { ConfigServiceAbstraction } from "../../abstractions/config/config.service.abstraction"; import { ServerConfig } from "../../abstractions/config/server-config"; import { EnvironmentService, Region } from "../../abstractions/environment.service"; +import { LogService } from "../../abstractions/log.service"; import { StateService } from "../../abstractions/state.service"; import { ServerConfigData } from "../../models/data/server-config.data"; @@ -38,6 +39,7 @@ export class ConfigService implements ConfigServiceAbstraction { private configApiService: ConfigApiServiceAbstraction, private authService: AuthService, private environmentService: EnvironmentService, + private logService: LogService, // Used to avoid duplicate subscriptions, e.g. in browser between the background and popup private subscribe = true @@ -48,14 +50,16 @@ export class ConfigService implements ConfigServiceAbstraction { return; } - // Get config from storage on initial load - const fromStorage = from(this.stateService.getServerConfig()).pipe( - map((data) => (data == null ? null : new ServerConfig(data))) + const latestServerConfig$ = defer(() => this.configApiService.get()).pipe( + map((response) => new ServerConfigData(response)), + delayWhen((data) => this.saveConfig(data)), + catchError((e: unknown) => { + // fall back to stored ServerConfig (if any) + this.logService.error("Unable to fetch ServerConfig: " + (e as Error)?.message); + return this.stateService.getServerConfig(); + }) ); - fromStorage.subscribe((config) => this._serverConfig.next(config)); - - // Fetch config from server // If you need to fetch a new config when an event occurs, add an observable that emits on that event here merge( timer(ONE_HOUR_IN_MILLISECONDS, ONE_HOUR_IN_MILLISECONDS), // after 1 hour, then every hour @@ -63,12 +67,8 @@ export class ConfigService implements ConfigServiceAbstraction { this._forceFetchConfig // manual ) .pipe( - delayWhen(() => fromStorage), // wait until storage has emitted first to avoid a race condition - concatMap(() => this.configApiService.get()), - filter((response) => response != null), - map((response) => new ServerConfigData(response)), - delayWhen((data) => this.saveConfig(data)), - map((data) => new ServerConfig(data)) + concatMap(() => latestServerConfig$), + map((data) => (data == null ? null : new ServerConfig(data))) ) .subscribe((config) => this._serverConfig.next(config)); diff --git a/libs/components/src/dialog/directives/dialog-close.directive.ts b/libs/components/src/dialog/directives/dialog-close.directive.ts index a45991bb5e6..543c37715dd 100644 --- a/libs/components/src/dialog/directives/dialog-close.directive.ts +++ b/libs/components/src/dialog/directives/dialog-close.directive.ts @@ -5,9 +5,9 @@ import { Directive, HostListener, Input, Optional } from "@angular/core"; selector: "[bitDialogClose]", }) export class DialogCloseDirective { - @Input("bit-dialog-close") dialogResult: any; + @Input("bitDialogClose") dialogResult: any; - constructor(@Optional() public dialogRef: DialogRef) {} + constructor(@Optional() public dialogRef: DialogRef) {} @HostListener("click") close(): void { this.dialogRef.close(this.dialogResult); diff --git a/libs/components/src/form-field/error-summary.stories.ts b/libs/components/src/form-field/error-summary.stories.ts index 95061df81b6..4e1031abaf6 100644 --- a/libs/components/src/form-field/error-summary.stories.ts +++ b/libs/components/src/form-field/error-summary.stories.ts @@ -24,7 +24,7 @@ export default { required: "required", inputRequired: "Input is required.", inputEmail: "Input is not an email-address.", - fieldsNeedAttention: "$COUNT$ field(s) above need your attention.", + fieldsNeedAttention: "__$1__ field(s) above need your attention.", }); }, }, @@ -63,12 +63,12 @@ export const Default: StoryObj = { Name - + Email - + diff --git a/libs/components/src/styles.css b/libs/components/src/styles.css index 6714e5ddde6..ba200ff3f32 100644 --- a/libs/components/src/styles.css +++ b/libs/components/src/styles.css @@ -6,6 +6,6 @@ @tailwind components; @tailwind utilities; -body { +html { font-size: 14px; } diff --git a/libs/components/src/utils/i18n-mock.service.ts b/libs/components/src/utils/i18n-mock.service.ts index 25e9a6db678..1dcc84b4a99 100644 --- a/libs/components/src/utils/i18n-mock.service.ts +++ b/libs/components/src/utils/i18n-mock.service.ts @@ -12,8 +12,20 @@ export class I18nMockService implements I18nService { constructor(private lookupTable: Record string)>) {} t(id: string, p1?: string, p2?: string, p3?: string) { - const value = this.lookupTable[id]; + let value = this.lookupTable[id]; if (typeof value == "string") { + if (value !== "") { + if (p1 != null) { + value = value.split("__$1__").join(p1.toString()); + } + if (p2 != null) { + value = value.split("__$2__").join(p2.toString()); + } + if (p3 != null) { + value = value.split("__$3__").join(p3.toString()); + } + } + return value; } return value(p1, p2, p3); diff --git a/package-lock.json b/package-lock.json index 305afefcc94..d4174b7111f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,7 +65,6 @@ "proper-lockfile": "4.1.2", "qrious": "4.0.2", "rxjs": "7.8.1", - "sweetalert2": "10.16.11", "tldts": "6.0.14", "utf-8-validate": "5.0.10", "zone.js": "0.12.0", @@ -126,7 +125,7 @@ "cross-env": "7.0.3", "css-loader": "6.8.1", "del": "6.1.1", - "electron": "24.1.1", + "electron": "24.8.3", "electron-builder": "^23.6.0", "electron-log": "4.4.8", "electron-reload": "2.0.0-alpha.1", @@ -20216,9 +20215,9 @@ } }, "node_modules/electron": { - "version": "24.1.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-24.1.1.tgz", - "integrity": "sha512-ymjUMe6Pvh9ytpM4lOvr+Qxd6NG5AELRtR6tw54bK3FXfKtTTKKAtZw/NbwHwkRAlWu8FNAGOuvCoap6/bm9LQ==", + "version": "24.8.3", + "resolved": "https://registry.npmjs.org/electron/-/electron-24.8.3.tgz", + "integrity": "sha512-6YTsEOIMIQNnOz0Fj5gAWtwCuDd66iYKkuRJGyc80jKKYI49jBeH+R7ZZry9uiVu4T4bZgBN2FAN24XfCioQZA==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -37307,14 +37306,6 @@ "webpack": ">=2" } }, - "node_modules/sweetalert2": { - "version": "10.16.11", - "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-10.16.11.tgz", - "integrity": "sha512-Rdfabv2G89Tr8vmUTb1auWCYYesKBEWnkYPSi7XaiCIW0ZXXGK8Nw1wYKPEMLU6O8gMSMJe5m6MRKqMQsAQy9A==", - "funding": { - "url": "https://sweetalert2.github.io/#donations" - } - }, "node_modules/symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", diff --git a/package.json b/package.json index d0673441246..c7c0a64360b 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "cross-env": "7.0.3", "css-loader": "6.8.1", "del": "6.1.1", - "electron": "24.1.1", + "electron": "24.8.3", "electron-builder": "^23.6.0", "electron-log": "4.4.8", "electron-reload": "2.0.0-alpha.1", @@ -197,7 +197,6 @@ "proper-lockfile": "4.1.2", "qrious": "4.0.2", "rxjs": "7.8.1", - "sweetalert2": "10.16.11", "tldts": "6.0.14", "utf-8-validate": "5.0.10", "zone.js": "0.12.0",