diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000000..44684cbb82 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,93 @@ +name: Bug Report +description: File a bug report +labels: [bug] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + + Please do not submit feature requests. The [Community Forums](https://community.bitwarden.com) has a section for submitting, voting for, and discussing product feature requests. + - type: textarea + id: reproduce + attributes: + label: Steps To Reproduce + description: How can we reproduce the behavior. + value: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. Click on '...' + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected Result + description: A clear and concise description of what you expected to happen. + validations: + required: true + - type: textarea + id: actual + attributes: + label: Actual Result + description: A clear and concise description of what is happening. + validations: + required: true + - type: textarea + id: screenshots + attributes: + label: Screenshots or Videos + description: If applicable, add screenshots and/or a short video to help explain your problem. + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Add any other context about the problem here. + - type: dropdown + id: os + attributes: + label: Operating System + description: What operating system are you seeing the problem on? + multiple: true + options: + - Windows + - macOS + - Linux + - Android + - iOS + validations: + required: true + - type: input + id: os-version + attributes: + label: Operating System Version + description: What version of the operating system(s) are you seeing the problem on? + - type: dropdown + id: browsers + attributes: + label: Web Browser + description: What browser(s) are you seeing the problem on? + multiple: true + options: + - Chrome + - Safari + - Microsoft Edge + - Firefox + - Opera + - Brave + - Vivaldi + validations: + required: true + - type: input + id: browser-version + attributes: + label: Browser Version + description: What version of the browser(s) are you seeing the problem on? + - type: input + id: version + attributes: + label: Build Version + description: What version of our software are you running? (go to "Settings" → "About" in the extension) + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..3e5ef29447 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,20 @@ +blank_issues_enabled: false +contact_links: + - name: Report failure of prompt to save credentials + url: https://docs.google.com/forms/d/e/1FAIpQLSeG-Dtpn2xnr9N7oF04NyY6ETUM-JF8pagFfAv8mW7bgcMVxA/viewform + about: We are aware of many sites' login forms where the Bitwarden browser extension either on a single platform/browser or multiple will not prompt the user to save a new password or update an existing password. This is something the Bitwarden team is actively working on but need your help as a community and active Bitwarden users! + - name: Report autofill failure + url: https://docs.google.com/forms/d/e/1FAIpQLSfkxh1w6vK8fLYwAbAAEVhvhMAJwfFNDtYtPUVk1y5WTHvJmQ/viewform + about: We are aware of many sites' login forms, payment gateways, identity forms, etc. where the Bitwarden browser extension either on a single platform/browser or multiple will not autofill information. This is something the Bitwarden team is actively working on but need your help as a community and active Bitwarden users! + - name: Feature Requests + url: https://community.bitwarden.com/c/feature-requests/ + about: Request new features using the Community Forums. Please search existing feature requests before making a new one. + - name: Bitwarden Community Forums + url: https://community.bitwarden.com + about: Please visit the community forums for general community discussion, support and the development roadmap. + - name: Customer Support + url: https://bitwarden.com/contact/ + about: Please contact our customer support for account issues and general customer support. + - name: Security Issues + url: https://hackerone.com/bitwarden + about: We use HackerOne to manage security disclosures. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 79ef6460b5..faf854c524 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,3 +1,4 @@ +--- name: Build on: @@ -10,6 +11,7 @@ on: jobs: cloc: + name: CLOC runs-on: ubuntu-latest steps: - name: Checkout repo @@ -24,6 +26,7 @@ jobs: setup: + name: Setup runs-on: ubuntu-latest outputs: repo_url: ${{ steps.gen_vars.outputs.repo_url }} @@ -38,10 +41,11 @@ jobs: repo_url=https://github.com/$GITHUB_REPOSITORY.git adj_build_num=${GITHUB_SHA:0:7} - echo "::set-output name=repo_url::$repo_url" - echo "::set-output name=adj_build_number::$adj_build_num" + echo "::set-output name=repo_url::$repo_url" + echo "::set-output name=adj_build_number::$adj_build_num" locales-test: + name: Locales Test runs-on: ubuntu-latest needs: setup steps: @@ -63,21 +67,21 @@ jobs: found_error=true fi done - + if $found_error; then echo echo "Please fix 'extName' for the locales listed above." exit 1 else echo "Test passed!" - fi + fi build: + name: Build runs-on: windows-latest - needs: [ setup, locales-test ] + needs: [setup, locales-test] env: - REPO_URL: ${{ needs.setup.outputs.repo_url }} - BUILD_NUMBER: ${{ needs.setup.outputs.adj_build_number }} + _BUILD_NUMBER: ${{ needs.setup.outputs.adj_build_number }} steps: - name: Checkout repo uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f @@ -96,41 +100,47 @@ jobs: node --version npm --version - - name: npm setup & test + - name: NPM setup & test run: | npm install npm run dist npm run test - - name: gulp + - name: Gulp run: gulp ci - - name: Upload opera artifact + - name: Upload Opera artifact uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 with: - name: dist-opera-${{ env.BUILD_NUMBER }}.zip - path: dist/dist-opera-${{ env.BUILD_NUMBER }}.zip + name: dist-opera-${{ env._BUILD_NUMBER }}.zip + path: dist/dist-opera.zip + if-no-files-found: error - - name: Upload chrome artifact + - name: Upload Chrome artifact uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 with: - name: dist-chrome-${{ env.BUILD_NUMBER }}.zip - path: dist/dist-chrome-${{ env.BUILD_NUMBER }}.zip + name: dist-chrome-${{ env._BUILD_NUMBER }}.zip + path: dist/dist-chrome.zip + if-no-files-found: error - - name: Upload firefox artifact + - name: Upload Firefox artifact uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 with: - name: dist-firefox-${{ env.BUILD_NUMBER }}.zip - path: dist/dist-firefox-${{ env.BUILD_NUMBER }}.zip + name: dist-firefox-${{ env._BUILD_NUMBER }}.zip + path: dist/dist-firefox.zip + if-no-files-found: error - - name: Upload edge artifact + - name: Upload Edge artifact uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 with: - name: dist-edge-${{ env.BUILD_NUMBER }}.zip - path: dist/dist-edge-${{ env.BUILD_NUMBER }}.zip + name: dist-edge-${{ env._BUILD_NUMBER }}.zip + path: dist/dist-edge.zip + if-no-files-found: error - name: Upload coverage artifact + if: false uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 with: - name: coverage-${{ env.BUILD_NUMBER }}.zip - path: coverage/coverage-${{ env.BUILD_NUMBER }}.zip + name: coverage-${{ env._BUILD_NUMBER }}.zip + path: coverage/coverage-${{ env._BUILD_NUMBER }}.zip + if-no-files-found: error diff --git a/.github/workflows/crowdin-sync.yml b/.github/workflows/crowdin-sync.yml new file mode 100644 index 0000000000..1f99c27e73 --- /dev/null +++ b/.github/workflows/crowdin-sync.yml @@ -0,0 +1,49 @@ +--- +name: Crowdin Sync + +on: + workflow_dispatch: + inputs: {} +# schedule: +# - cron: '0 0 * * *' + +jobs: + crowdin-sync: + name: Autosync + runs-on: ubuntu-20.04 + env: + _CROWDIN_PROJECT_ID: "268134" + steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + + - name: Login to Azure + uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + with: + creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} + + - name: Retrieve secrets + id: retrieve-secrets + uses: Azure/get-keyvault-secrets@80ccd3fafe5662407cc2e55f202ee34bfff8c403 + with: + keyvault: "bitwarden-prod-kv" + secrets: "crowdin-api-token" + + - name: Download translations + uses: crowdin/github-action@e39093fd75daae7859c68eded4b43d42ec78d8ea + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} + with: + config: crowdin.yml + crowdin_branch_name: master + upload_sources: false + upload_translations: false + download_translations: true + github_user_name: "github-actions" + github_user_email: "<>" + commit_message: "Autosync the updated translations" + localization_branch_name: crowdin-auto-sync + create_pull_request: true + pull_request_title: "Autosync Crowdin Translations" + pull_request_body: "Autosync the updated translations" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f2e036ed44..615a9d37a5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,3 +1,4 @@ +--- name: Release on: @@ -10,6 +11,7 @@ on: jobs: setup: + name: Setup runs-on: ubuntu-latest outputs: tag_version: ${{ steps.create_tags.outputs.tag_version }} @@ -25,7 +27,7 @@ jobs: echo "===================================" exit 1 fi - + - name: Checkout repo uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f @@ -37,8 +39,8 @@ jobs: $build_num = [int]$env:GITHUB_RUN_NUMBER $adj_build_num = $build_num + 3000 - echo "::set-output name=repo_url::$repo_url" - echo "::set-output name=adj_build_number::$adj_build_num" + echo "::set-output name=repo_url::$repo_url" + echo "::set-output name=adj_build_number::$adj_build_num" - name: Create Release Vars id: create_tags @@ -68,12 +70,13 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ env.RELEASE_TAG_NAME }} - release_name: ${{ env.RELEASE_NAME }} + release_name: Version ${{ env.RELEASE_NAME }} draft: true prerelease: false locales-test: + name: Locales Test runs-on: ubuntu-latest needs: setup steps: @@ -105,11 +108,12 @@ jobs: fi build: + name: Build runs-on: windows-latest - needs: [ setup, locales-test ] + needs: [setup, locales-test] env: - REPO_URL: ${{ needs.setup.outputs.repo_url }} - BUILD_NUMBER: ${{ needs.setup.outputs.adj_build_number }} + _REPO_URL: ${{ needs.setup.outputs.repo_url }} + _BUILD_NUMBER: ${{ needs.setup.outputs.adj_build_number }} steps: - name: Checkout repo uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f @@ -128,84 +132,84 @@ jobs: node --version npm --version - - name: npm setup & test + - name: NPM setup & test run: | npm install npm run dist npm run test - - name: gulp + - name: Gulp run: gulp ci - name: Build sources for reviewers shell: cmd run: | mkdir dist\Source - call git clone %REPO_URL% dist\Source + call git clone %_REPO_URL% dist\Source cd dist\Source call git checkout %GITHUB_SHA% call git submodule update --init --recursive cd ../ del /S/Q "Source\.git\objects\pack\*" - call 7z a browser-source-%BUILD_NUMBER%.zip "Source\*" + call 7z a browser-source-%_BUILD_NUMBER%.zip "Source\*" - - name: upload opera release asset + - name: Upload Opera release asset uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.setup.outputs.release_upload_url }} - asset_name: dist-opera-${{ env.BUILD_NUMBER }}.zip - asset_path: dist/dist-opera-${{ env.BUILD_NUMBER }}.zip + asset_name: dist-opera-${{ env._BUILD_NUMBER }}.zip + asset_path: dist/dist-opera.zip asset_content_type: application - - name: upload chrome release asset + - name: Upload Chrome release asset uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.setup.outputs.release_upload_url }} - asset_name: dist-chrome-${{ env.BUILD_NUMBER }}.zip - asset_path: dist/dist-chrome-${{ env.BUILD_NUMBER }}.zip + asset_name: dist-chrome-${{ env._BUILD_NUMBER }}.zip + asset_path: dist/dist-chrome.zip asset_content_type: application/zip - - name: upload firefox release asset + - name: Upload Firefox release asset uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.setup.outputs.release_upload_url }} - asset_name: dist-firefox-${{ env.BUILD_NUMBER }}.zip - asset_path: dist/dist-firefox-${{ env.BUILD_NUMBER }}.zip + asset_name: dist-firefox-${{ env._BUILD_NUMBER }}.zip + asset_path: dist/dist-firefox.zip asset_content_type: application/zip - - name: upload edge release asset + - name: Upload Edge release asset uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.setup.outputs.release_upload_url }} - asset_name: dist-edge-${{ env.BUILD_NUMBER }}.zip - asset_path: dist/dist-edge-${{ env.BUILD_NUMBER }}.zip + asset_name: dist-edge-${{ env._BUILD_NUMBER }}.zip + asset_path: dist/dist-edge.zip asset_content_type: application/zip - - name: upload browser source zip release asset + - name: Upload browser source zip release asset uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.setup.outputs.release_upload_url }} - asset_name: browser-source-${{ env.BUILD_NUMBER }}.zip - asset_path: dist/browser-source-${{ env.BUILD_NUMBER }}.zip + asset_name: browser-source-${{ env._BUILD_NUMBER }}.zip + asset_path: dist/browser-source-${{ env._BUILD_NUMBER }}.zip asset_content_type: application/zip - - name: upload coverage release asset + - name: Upload coverage release asset if: false uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.setup.outputs.release_upload_url }} - asset_name: coverage-${{ env.BUILD_NUMBER }}.zip - asset_path: coverage/coverage-${{ env.BUILD_NUMBER }}.zip + asset_name: coverage-${{ env._BUILD_NUMBER }}.zip + asset_path: coverage/coverage-${{ env._BUILD_NUMBER }}.zip asset_content_type: application/zip diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md deleted file mode 100644 index 5ab4c4c4b9..0000000000 --- a/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,52 +0,0 @@ - - -## Describe the Bug - - - -## Steps To Reproduce - - - -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. Click on '...' - -## Expected Result - - - -## Actual Result - - - -## Screenshots or Videos - - - -## Environment - -- Operating system: [e.g. Windows 10, Mac OS Catalina] -- Browser: [e.g. Firefox 73.0.1] -- Build Version (go to "Settings" → "About" in the app): [e.g. 1.42.2] - -## Additional Context - - diff --git a/crowdin.yml b/crowdin.yml index b4ec8e7dd2..4aa8bb7bad 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,3 +1,5 @@ +project_id_env: _CROWDIN_PROJECT_ID +api_token_env: CROWDIN_API_TOKEN files: - source: /src/_locales/en/messages.json translation: /src/_locales/%two_letters_code%/%original_file_name% diff --git a/jslib b/jslib index 23309d33e2..83548a6753 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 23309d33e2a335574ed898d6543040372d41526a +Subproject commit 83548a6753a974c57cb373b529a4da3ea5c3b5c0 diff --git a/src/_locales/az/messages.json b/src/_locales/az/messages.json index e42b3f0817..2247bd6ece 100644 --- a/src/_locales/az/messages.json +++ b/src/_locales/az/messages.json @@ -3,319 +3,319 @@ "message": "Bitwarden" }, "extName": { - "message": "Bitwarden - Free Password Manager", + "message": "Bitwarden - Ödənişsiz Şifrə Meneceri", "description": "Extension name, MUST be less than 40 characters (Safari restriction)" }, "extDesc": { - "message": "A secure and free password manager for all of your devices.", + "message": "Bütün cihazlarınız üçün təhlükəsiz və ödənişsiz bir şifrə meneceri.", "description": "Extension description" }, "loginOrCreateNewAccount": { - "message": "Log in or create a new account to access your secure vault." + "message": "Təhlükəsiz anbarınıza müraciət etmək üçün giriş edin və ya yeni bir hesab yaradın." }, "createAccount": { - "message": "Create Account" + "message": "Hesab yarat" }, "login": { - "message": "Log In" + "message": "Giriş et" }, "enterpriseSingleSignOn": { - "message": "Enterprise Single Sign-On" + "message": "Müəssisə üçün tək daxil olma" }, "cancel": { - "message": "Cancel" + "message": "İmtina" }, "close": { - "message": "Close" + "message": "Bağla" }, "submit": { - "message": "Submit" + "message": "Göndər" }, "emailAddress": { - "message": "Email Address" + "message": "E-poçt ünvanı" }, "masterPass": { - "message": "Master Password" + "message": "Ana şifrə" }, "masterPassDesc": { - "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + "message": "Ana şifrə, anbarınıza müraciət etmək üçün istifadə edəcəyiniz şifrədir. Ana şifrəni yadda saxlamaq çox vacibdir. Unutsanız, şifrəni bərpa etməyin heç bir yolu yoxdur." }, "masterPassHintDesc": { - "message": "A master password hint can help you remember your password if you forget it." + "message": "Ana şifrə məsləhəti, unutduğunuz şifrənizi xatırlamağınıza kömək edir." }, "reTypeMasterPass": { - "message": "Re-type Master Password" + "message": "Ana şifrəni yenidən yaz" }, "masterPassHint": { - "message": "Master Password Hint (optional)" + "message": "Ana şifrə məsləhəti (ixtiyari)" }, "tab": { - "message": "Tab" + "message": "Vərəq" }, "myVault": { - "message": "My Vault" + "message": "Anbarım" }, "tools": { - "message": "Tools" + "message": "Alətlər" }, "settings": { - "message": "Settings" + "message": "Tənzimləmələr" }, "currentTab": { - "message": "Current Tab" + "message": "Hazırkı vərəq" }, "copyPassword": { - "message": "Copy Password" + "message": "Şifrəni kopyala" }, "copyNote": { - "message": "Copy Note" + "message": "Qeydi kopyala" }, "copyUri": { - "message": "Copy URI" + "message": "URI-ni kopyala" }, "copyUsername": { - "message": "Copy Username" + "message": "İstifadəçi adını kopyala" }, "copyNumber": { - "message": "Copy Number" + "message": "Nömrəni kopyala" }, "copySecurityCode": { - "message": "Copy Security Code" + "message": "Təhlükəsizlik kodunu kopyala" }, "autoFill": { - "message": "Auto-fill" + "message": "Avto-doldurma" }, "generatePasswordCopied": { - "message": "Generate Password (copied)" + "message": "Şifrə yarat (kopyalandı)" }, "noMatchingLogins": { - "message": "No matching logins." + "message": "Uyğun gələn hesab yoxdur." }, "vaultLocked": { - "message": "Vault is locked." + "message": "Anbar kilidlənib." }, "vaultLoggedOut": { - "message": "Vault is logged out." + "message": "Anbardan çıxış edildi." }, "autoFillInfo": { - "message": "There are no logins available to auto-fill for the current browser tab." + "message": "Hazırkı səyyah vərəqi üçün avto-doldurulacaq giriş məlumatları yoxdur." }, "addLogin": { - "message": "Add a Login" + "message": "Hesab əlavə et" }, "addItem": { - "message": "Add Item" + "message": "Element əlavə et" }, "passwordHint": { - "message": "Password Hint" + "message": "Şifrə məsləhəti" }, "enterEmailToGetHint": { - "message": "Enter your account email address to receive your master password hint." + "message": "Ana şifrə məsləhətini alacağınız hesabınızın e-poçt ünvanını daxil edin." }, "getMasterPasswordHint": { - "message": "Get master password hint" + "message": "Ana şifrə üçün məsləhət alın" }, "continue": { - "message": "Continue" + "message": "Davam" }, "verificationCode": { - "message": "Verification Code" + "message": "Təsdiqləmə kodu" }, "account": { - "message": "Account" + "message": "Hesab" }, "changeMasterPassword": { - "message": "Change Master Password" + "message": "Ana şifrəni dəyişdir" }, "fingerprintPhrase": { - "message": "Fingerprint Phrase", + "message": "Barmaq izi ifadəsi", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "yourAccountsFingerprint": { - "message": "Your account's fingerprint phrase", + "message": "Hesabınızın barmaq izi ifadəsi", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "twoStepLogin": { - "message": "Two-step Login" + "message": "İki mərhələli giriş" }, "logOut": { - "message": "Log Out" + "message": "Çıxış" }, "about": { - "message": "About" + "message": "Haqqında" }, "version": { - "message": "Version" + "message": "Versiya" }, "save": { - "message": "Save" + "message": "Saxla" }, "move": { - "message": "Move" + "message": "Köçür" }, "addFolder": { - "message": "Add Folder" + "message": "Qovluq əlavə et" }, "name": { - "message": "Name" + "message": "Ad" }, "editFolder": { - "message": "Edit Folder" + "message": "Qovluğa düzəliş et" }, "deleteFolder": { - "message": "Delete Folder" + "message": "Qovluğu sil" }, "folders": { - "message": "Folders" + "message": "Qovluqlar" }, "noFolders": { - "message": "There are no folders to list." + "message": "Siyahılanacaq heç bir qovluq yoxdur." }, "helpFeedback": { - "message": "Help & Feedback" + "message": "Kömək və əks əlaqə" }, "sync": { - "message": "Sync" + "message": "Eyniləşdirmə" }, "syncVaultNow": { - "message": "Sync Vault Now" + "message": "Anbarı indi eyniləşdir" }, "lastSync": { - "message": "Last Sync:" + "message": "Son eyniləşdirmə:" }, "passGen": { - "message": "Password Generator" + "message": "Şifrə yaradıcı" }, "generator": { - "message": "Generator", + "message": "Yaradıcı", "description": "Short for 'Password Generator'." }, "passGenInfo": { - "message": "Automatically generate strong, unique passwords for your logins." + "message": "Hesablarınız üçün avtomatik olaraq güclü, unikal şifrələr yaradın." }, "bitWebVault": { - "message": "Bitwarden Web Vault" + "message": "Bitwarden veb anbarı" }, "importItems": { - "message": "Import Items" + "message": "Elementləri idxal et" }, "select": { - "message": "Select" + "message": "Seçin" }, "generatePassword": { - "message": "Generate Password" + "message": "Şifrə yarat" }, "regeneratePassword": { - "message": "Regenerate Password" + "message": "Şifrəni yenidən yarat" }, "options": { - "message": "Options" + "message": "Seçimlər" }, "length": { - "message": "Length" + "message": "Uzunluq" }, "numWords": { - "message": "Number of Words" + "message": "Söz sayı" }, "wordSeparator": { - "message": "Word Separator" + "message": "Söz ayırıcı" }, "capitalize": { - "message": "Capitalize", + "message": "İlk hərfi böyük yaz", "description": "Make the first letter of a work uppercase." }, "includeNumber": { - "message": "Include Number" + "message": "Rəqəm əlavə et" }, "minNumbers": { - "message": "Minimum Numbers" + "message": "Minimum rəqəm" }, "minSpecial": { - "message": "Minimum Special" + "message": "Minimum simvol" }, "avoidAmbChar": { - "message": "Avoid Ambiguous Characters" + "message": "Anlaşılmaz simvollardan çəkinin" }, "searchVault": { - "message": "Search vault" + "message": "Anbarda axtar" }, "edit": { - "message": "Edit" + "message": "Düzəliş et" }, "view": { - "message": "View" + "message": "Bax" }, "noItemsInList": { - "message": "There are no items to list." + "message": "Siyahılanacaq heç bir element yoxdur." }, "itemInformation": { - "message": "Item Information" + "message": "Element məlumatları" }, "username": { - "message": "Username" + "message": "İstifadəçi adı" }, "password": { - "message": "Password" + "message": "Şifrə" }, "passphrase": { - "message": "Passphrase" + "message": "Uzun ifadə" }, "favorite": { - "message": "Favorite" + "message": "Sevimli" }, "notes": { - "message": "Notes" + "message": "Qeydlər" }, "note": { - "message": "Note" + "message": "Qeyd" }, "editItem": { - "message": "Edit Item" + "message": "Elementə düzəliş et" }, "folder": { - "message": "Folder" + "message": "Qovluq" }, "deleteItem": { - "message": "Delete Item" + "message": "Elementi sil" }, "viewItem": { - "message": "View Item" + "message": "Elementə bax" }, "launch": { - "message": "Launch" + "message": "Başlat" }, "website": { - "message": "Website" + "message": "Veb sayt" }, "toggleVisibility": { - "message": "Toggle Visibility" + "message": "Görünməni aç/bağla" }, "manage": { - "message": "Manage" + "message": "İdarə et" }, "other": { - "message": "Other" + "message": "Digər" }, "rateExtension": { - "message": "Rate the Extension" + "message": "Genişləndirməni qiymətləndir" }, "rateExtensionDesc": { - "message": "Please consider helping us out with a good review!" + "message": "Gözəl bir rəy ilə bizə dəstək ola bilərsiniz!" }, "browserNotSupportClipboard": { - "message": "Your web browser does not support easy clipboard copying. Copy it manually instead." + "message": "Veb səyyahınız lövhəyə kopyalamağı dəstəkləmir. Əvəzində əllə kopyalayın." }, "verifyMasterPassword": { - "message": "Verify Master Password" + "message": "Ana şifrəni təsdiqlə" }, "yourVaultIsLocked": { - "message": "Your vault is locked. Verify your master password to continue." + "message": "Anbarınız kilidlənib. Davam etmək üçün ana şifrənizi təsdiqləyin." }, "unlock": { - "message": "Unlock" + "message": "Kilidi aç" }, "loggedInAsOn": { - "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "message": "$HOSTNAME$ üzərində $EMAIL$ kimi giriş edildi.", "placeholders": { "email": { "content": "$1", @@ -328,88 +328,88 @@ } }, "invalidMasterPassword": { - "message": "Invalid master password" + "message": "Etibarsız ana şifrə" }, "vaultTimeout": { - "message": "Vault Timeout" + "message": "Anbara müraciət vaxtı bitdi" }, "lockNow": { - "message": "Lock Now" + "message": "İndi kilidlə" }, "immediately": { - "message": "Immediately" + "message": "Dərhal" }, "tenSeconds": { - "message": "10 seconds" + "message": "10 saniyə" }, "twentySeconds": { - "message": "20 seconds" + "message": "20 saniyə" }, "thirtySeconds": { - "message": "30 seconds" + "message": "30 saniyə" }, "oneMinute": { - "message": "1 minute" + "message": "1 dəqiqə" }, "twoMinutes": { - "message": "2 minutes" + "message": "2 dəqiqə" }, "fiveMinutes": { - "message": "5 minutes" + "message": "5 dəqiqə" }, "fifteenMinutes": { - "message": "15 minutes" + "message": "15 dəqiqə" }, "thirtyMinutes": { - "message": "30 minutes" + "message": "30 dəqiqə" }, "oneHour": { - "message": "1 hour" + "message": "1 saat" }, "fourHours": { - "message": "4 hours" + "message": "4 saat" }, "onLocked": { - "message": "On System Lock" + "message": "Sistem kilidlənəndə" }, "onRestart": { - "message": "On Browser Restart" + "message": "Səyyah yenidən başladılanda" }, "never": { - "message": "Never" + "message": "Heç vaxt" }, "security": { - "message": "Security" + "message": "Təhlükəsizlik" }, "errorOccurred": { - "message": "An error has occurred" + "message": "Bir xəta baş verdi" }, "emailRequired": { - "message": "Email address is required." + "message": "E-poçt ünvanı lazımdır." }, "invalidEmail": { - "message": "Invalid email address." + "message": "Etibarsız e-poçt ünvanı." }, "masterPassRequired": { - "message": "Master password is required." + "message": "Ana şifrə lazımdır." }, "masterPassLength": { - "message": "Master password must be at least 8 characters long." + "message": "Ana şifrə ən azı 8 simvol uzunluğunda olmalıdır." }, "masterPassDoesntMatch": { - "message": "Master password confirmation does not match." + "message": "Ana şifrə təsdiqləməsi uyğun gəlmir." }, "newAccountCreated": { - "message": "Your new account has been created! You may now log in." + "message": "Yeni hesabınız yaradıldı! İndi giriş edə bilərsiniz." }, "masterPassSent": { - "message": "We've sent you an email with your master password hint." + "message": "Ana şifrə məsləhətini ehtiva edən bir e-poçt göndərdik." }, "verificationCodeRequired": { - "message": "Verification code is required." + "message": "Təsdiq kodu lazımdır." }, "valueCopied": { - "message": "$VALUE$ copied", + "message": "$VALUE$ kopyalandı", "description": "Value has been copied to the clipboard.", "placeholders": { "value": { @@ -419,64 +419,64 @@ } }, "autofillError": { - "message": "Unable to auto-fill the selected item on this page. Copy and paste the information instead." + "message": "Bu səhifədə seçilən element avto-doldurulmur. Əvəzində məlumatları kopyalayıb yapışdırın." }, "loggedOut": { - "message": "Logged out" + "message": "Çıxış edildi" }, "loginExpired": { - "message": "Your login session has expired." + "message": "Seansın müddəti bitdi." }, "logOutConfirmation": { - "message": "Are you sure you want to log out?" + "message": "Çıxış etmək istədiyinizə əminsiniz?" }, "yes": { - "message": "Yes" + "message": "Bəli" }, "no": { - "message": "No" + "message": "Xeyr" }, "unexpectedError": { - "message": "An unexpected error has occurred." + "message": "Gözlənilməz bir səhv baş verdi" }, "nameRequired": { - "message": "Name is required." + "message": "Ad lazımdır." }, "addedFolder": { - "message": "Added folder" + "message": "Qovluq əlavə edildi" }, "changeMasterPass": { - "message": "Change Master Password" + "message": "Ana şifrəni dəyişdir" }, "changeMasterPasswordConfirmation": { - "message": "You can change your master password on the bitwarden.com web vault. Do you want to visit the website now?" + "message": "Ana şifrənizi bitwarden.com veb anbarında dəyişdirə bilərsiniz. İndi saytı ziyarət etmək istəyirsiniz?" }, "twoStepLoginConfirmation": { - "message": "Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?" + "message": "İki mərhələli giriş, təhlükəsizlik açarı, kimlik təsdiqləyici tətbiq, SMS, telefon zəngi və ya e-poçt kimi digər cihazlarla girişinizi təsdiqləməyinizi tələb edərək hesabınızı daha da təhlükəsiz edir. İki mərhələli giriş, bitwarden.com veb anbarında fəallaşdırıla bilər. Veb saytı indi ziyarət etmək istəyirsiniz?" }, "editedFolder": { - "message": "Edited folder" + "message": "Qovluğa düzəliş edildi" }, "deleteFolderConfirmation": { - "message": "Are you sure you want to delete this folder?" + "message": "Bu qovluğu silmək istədiyinizə əminsiniz?" }, "deletedFolder": { - "message": "Deleted folder" + "message": "Qovluq silindi" }, "gettingStartedTutorial": { - "message": "Getting Started Tutorial" + "message": "Başlanğıc təlimatı" }, "gettingStartedTutorialVideo": { - "message": "Watch our getting started tutorial to learn how to get the most out of the browser extension." + "message": "Səyyah genişləndirməsindən necə daha yaxşı faydalanmağı öyrənmək üçün başlanğıc təlimatına baxa bilərsiniz." }, "syncingComplete": { - "message": "Syncing complete" + "message": "Eyniləşdirmə tamamlandı" }, "syncingFailed": { - "message": "Syncing failed" + "message": "Uğursuz eyniləşdirmə" }, "passwordCopied": { - "message": "Password copied" + "message": "Şifrə kopyalandı" }, "uri": { "message": "URI" @@ -492,159 +492,159 @@ } }, "newUri": { - "message": "New URI" + "message": "Yeni URI" }, "addedItem": { - "message": "Added item" + "message": "Element əlavə edildi" }, "editedItem": { - "message": "Edited item" + "message": "Elementə düzəliş edildi" }, "deleteItemConfirmation": { - "message": "Do you really want to send to the trash?" + "message": "Həqiqətən tullantı qutusuna göndərmək istəyirsiniz?" }, "deletedItem": { - "message": "Sent item to trash" + "message": "Element tullantı qutusuna göndərildi" }, "overwritePassword": { - "message": "Overwrite Password" + "message": "Şifrənin üzərinə yaz" }, "overwritePasswordConfirmation": { - "message": "Are you sure you want to overwrite the current password?" + "message": "Hazırkı şifrənin üzərinə yazmaq istədiyinizə əminsiniz?" }, "searchFolder": { - "message": "Search folder" + "message": "Qovluq axtar" }, "searchCollection": { - "message": "Search collection" + "message": "Kolleksiya axtar" }, "searchType": { - "message": "Search type" + "message": "Axtarış növü" }, "noneFolder": { - "message": "No Folder", + "message": "Qovluq yoxdur", "description": "This is the folder for uncategorized items" }, "disableAddLoginNotification": { - "message": "Disable Add Login Notification" + "message": "\"Hesab əlavə et\" bildirişini sıradan çıxart" }, "addLoginNotificationDesc": { - "message": "The \"Add Login Notification\" automatically prompts you to save new logins to your vault whenever you log into them for the first time." + "message": "\"Hesab əlavə et bildirişi\", ilk dəfə giriş edəndə yeni giriş məlumatlarını anbarda saxlamaq istəyib-istəmədiyinizi avtomatik olaraq soruşur." }, "dontShowCardsCurrentTab": { - "message": "Don't Show Cards on Tab Page" + "message": "Vərəq səhifəsində kartları göstərmə" }, "dontShowCardsCurrentTabDesc": { - "message": "Card items from your vault are listed on the 'Current Tab' page for easy auto-fill access." + "message": "Anbarınızdakı kart elementləri, avto-doldurma müraciətini asanlaşdırmaq üçün \"Hazırkı vərəq\" səhifəsində siyahılanır." }, "dontShowIdentitiesCurrentTab": { - "message": "Don't Show Identities on Tab Page" + "message": "Vərəq səhifəsində kimlikləri göstərmə" }, "dontShowIdentitiesCurrentTabDesc": { - "message": "Identity items from your vault are listed on the 'Current Tab' page for easy auto-fill access." + "message": "Anbarınızdakı kimlik elementləri, avto-doldurma müraciətini asanlaşdırmaq üçün \"Hazırkı vərəq\" səhifəsində siyahılanır." }, "clearClipboard": { - "message": "Clear Clipboard", + "message": "Lövhəni təmizlə", "description": "Clipboard is the operating system thing where you copy/paste data to on your device." }, "clearClipboardDesc": { - "message": "Automatically clear copied values from your clipboard.", + "message": "Kopyalanmış dəyərləri lövhədən avtomatik təmizlə.", "description": "Clipboard is the operating system thing where you copy/paste data to on your device." }, "notificationAddDesc": { - "message": "Should Bitwarden remember this password for you?" + "message": "Bitwarden sizin üçün bu şifrəni xatırlasın?" }, "notificationAddSave": { - "message": "Yes, Save Now" + "message": "Bəli, indi saxla" }, "notificationNeverSave": { - "message": "Never for this website" + "message": "Bu veb sayt üçüm heç vaxt" }, "disableChangedPasswordNotification": { - "message": "Disable Changed Password Notification" + "message": "\"Şifrə dəyişdirildi\" bildirişini sıradan çıxart" }, "disableChangedPasswordNotificationDesc": { - "message": "The \"Changed Password Notification\" automatically prompts you to update a login's password in your vault whenever it detects that you have changed it on a website." + "message": "\"Şifrə dəyşdirildi bildirişi\", bir veb saytında dəyişdirdiyinizi aşkarlayanda, anbarınızdakı giriş şifrəsini yeniləməyinizi avtomatik olaraq soruşar." }, "notificationChangeDesc": { - "message": "Do you want to update this password in Bitwarden?" + "message": "Bu şifrəni \"Bitwarden\"də yeniləmək istəyirsiniz?" }, "notificationChangeSave": { - "message": "Yes, Update Now" + "message": "Bəli, indi yenilə" }, "disableContextMenuItem": { - "message": "Disable Context Menu Options" + "message": "Kontekst menyu seçimlərini sıradan çıxart" }, "disableContextMenuItemDesc": { - "message": "Context menu options provide quick access to password generation and logins for the website in your current tab." + "message": "Kontekst menyu seçimləri, hazırkı vərəqinizdə veb sayt üçün şifrə yaratma və giriş etmə əməliyyatlarına cəld müraciəti təmin edir." }, "defaultUriMatchDetection": { - "message": "Default URI Match Detection", + "message": "İlkin URI uyğunluq aşkarlaması", "description": "Default URI match detection for auto-fill." }, "defaultUriMatchDetectionDesc": { - "message": "Choose the default way that URI match detection is handled for logins when performing actions such as auto-fill." + "message": "Avto-doldurma kimim əməliyyatları icra edərkən giriş etmə prosesi üçün URI uyğunluq aşkarlamasının ilkin yolunu seçin." }, "theme": { - "message": "Theme" + "message": "Tema" }, "themeDesc": { - "message": "Change the application's color theme." + "message": "Tətbiqin rəng temasını dəyişdirin." }, "dark": { - "message": "Dark", + "message": "Tünd", "description": "Dark color" }, "light": { - "message": "Light", + "message": "Açıq", "description": "Light color" }, "solarizedDark": { - "message": "Solarized Dark", + "message": "Günəşli tünd", "description": "'Solarized' is a noun and the name of a color scheme. It should not be translated." }, "exportVault": { - "message": "Export Vault" + "message": "Anbarı ixrac et" }, "fileFormat": { - "message": "File Format" + "message": "Fayl formatı" }, "warning": { - "message": "WARNING", + "message": "XƏBƏRDARLIQ", "description": "WARNING (should stay in capitalized letters if the language permits)" }, "confirmVaultExport": { - "message": "Confirm Vault Export" + "message": "Anbarın ixracını təsdiqləyin" }, "exportWarningDesc": { - "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + "message": "Bu ixrac faylındakı anbar verilənləriniz şifrələnməmiş formatdadır. İxrac edilən faylı saxlamamalı və etibarsız yollarla (e-poçt kimi) göndərməməlisiniz. Bu faylı işiniz bitdikdən sonra dərhal silin." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Bu ixrac faylı, hesabınızın şifrələmə açarını istifadə edərək verilənlərinizi şifrələyir. Hesabınızın şifrələmə açarını döndərsəniz, bu ixrac faylının şifrəsini aça bilməyəcəyiniz üçün yenidən ixrac etməli olacaqsınız." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Hesab şifrələmə açarları, hər Bitwarden istifadəçi hesabı üçün unikaldır, buna görə də şifrəli bir ixracı, fərqli bir hesaba idxal edə bilməzsiniz." }, "exportMasterPassword": { - "message": "Enter your master password to export your vault data." + "message": "Anbar verilənlərinizi ixrac etmək üçün ana şifrənizi daxil edin." }, "shared": { - "message": "Shared" + "message": "Paylaşılan" }, "learnOrg": { - "message": "Learn about Organizations" + "message": "Təşkilatlar barədə daha ətraflı" }, "learnOrgConfirmation": { - "message": "Bitwarden allows you to share your vault items with others by using an organization. Would you like to visit the bitwarden.com website to learn more?" + "message": "Bitwarden, bir təşkilat hesabı istifadə edərək anbar elementlərinizi başqaları ilə paylaşmağınıza icazə verər. Daha ətraflı məlumat üçün bitwarden.com saytını ziyarət etmək istəyirsiniz?" }, "moveToOrganization": { - "message": "Move to Organization" + "message": "Təşkilata köçür" }, "share": { - "message": "Share" + "message": "Paylaş" }, "movedItemToOrg": { - "message": "$ITEMNAME$ moved to $ORGNAME$", + "message": "$ITEMNAME$ $ORGNAME$ şirkətinə köçürüldü", "placeholders": { "itemname": { "content": "$1", @@ -657,106 +657,106 @@ } }, "moveToOrgDesc": { - "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + "message": "Bu elementi köçürmək istədiyiniz təşkilatı seçin. Bir təşkilata köçürmək, elementin sahibliyini də həmin təşkilata köçürəcək. Köçürdükdən sonra bu elementə birbaşa sahibliyiniz olmayacaq." }, "learnMore": { - "message": "Learn more" + "message": "Daha ətraflı" }, "authenticatorKeyTotp": { - "message": "Authenticator Key (TOTP)" + "message": "Kimlik təsdiqləyici açarı (TOTP)" }, "verificationCodeTotp": { - "message": "Verification Code (TOTP)" + "message": "Təsdiqləmə kodu (TOTP)" }, "copyVerificationCode": { - "message": "Copy Verification Code" + "message": "Təsdiqləmə kodunu kopyala" }, "attachments": { - "message": "Attachments" + "message": "Qoşmalar" }, "deleteAttachment": { - "message": "Delete attachment" + "message": "Qoşmanı sil" }, "deleteAttachmentConfirmation": { - "message": "Are you sure you want to delete this attachment?" + "message": "Bu qoşmanı silmək istədiyinizə əminsiniz?" }, "deletedAttachment": { - "message": "Deleted attachment" + "message": "Qoşma silindi" }, "newAttachment": { - "message": "Add New Attachment" + "message": "Yeni qoşma əlavə et" }, "noAttachments": { - "message": "No attachments." + "message": "Qoşma yoxdur." }, "attachmentSaved": { - "message": "The attachment has been saved." + "message": "Qoşma saxlanıldı." }, "file": { - "message": "File" + "message": "Fayl" }, "selectFile": { - "message": "Select a file." + "message": "Fayl seçin." }, "maxFileSize": { - "message": "Maximum file size is 500 MB." + "message": "Maksimal fayl həcmi 500 MB-dır" }, "featureUnavailable": { - "message": "Feature Unavailable" + "message": "Özəllik əlçatmazdır" }, "updateKey": { - "message": "You cannot use this feature until you update your encryption key." + "message": "Şifrələmə açarınızı yeniləyənə qədər bu özəlliyi istifadə edə bilməzsiniz." }, "premiumMembership": { - "message": "Premium Membership" + "message": "Premium üzvlük" }, "premiumManage": { - "message": "Manage Membership" + "message": "Üzvlüyü idarə edin" }, "premiumManageAlert": { - "message": "You can manage your membership on the bitwarden.com web vault. Do you want to visit the website now?" + "message": "Üzvlüyünüzü bitwarden.com veb anbarında idarə edə bilərsiniz. İndi saytı ziyarət etmək istəyirsiniz?" }, "premiumRefresh": { - "message": "Refresh Membership" + "message": "Üzvlüyü təzələ" }, "premiumNotCurrentMember": { - "message": "You are not currently a premium member." + "message": "Hazırda premium bir üzvlüyünüz yoxdur" }, "premiumSignUpAndGet": { - "message": "Sign up for a premium membership and get:" + "message": "Premium üzvlük üçün qeydiyyatdan keçin və bunları əldə edin:" }, "ppremiumSignUpStorage": { - "message": "1 GB encrypted storage for file attachments." + "message": "Fayl qoşmaları üçün 1 GB şifrələnmiş saxlama sahəsi" }, "ppremiumSignUpTwoStep": { - "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + "message": "YubiKey, FIDO U2F və Duo kimi iki mərhələli giriş seçimləri" }, "ppremiumSignUpReports": { - "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + "message": "Anbarınızın təhlükəsiyini təmin etmək üçün şifrə gigiyenası, hesab sağlamlığı və verilənlərin pozulması hesabatları." }, "ppremiumSignUpTotp": { - "message": "TOTP verification code (2FA) generator for logins in your vault." + "message": "Anbarınızdakı hesablar üçün TOTP təsdiqləmə kodu (2FA) yaradıcısı." }, "ppremiumSignUpSupport": { - "message": "Priority customer support." + "message": "Prioritet müştəri dəstəyi." }, "ppremiumSignUpFuture": { - "message": "All future premium features. More coming soon!" + "message": "Bütün gələcək premium özəlliklər. Daha çoxu tezliklə!" }, "premiumPurchase": { - "message": "Purchase Premium" + "message": "Premium satın al" }, "premiumPurchaseAlert": { - "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" + "message": "Premium üzvlüyü bitwarden.com veb anbarında satın ala bilərsiniz. İndi saytı ziyarət etmək istəyirsiniz?" }, "premiumCurrentMember": { - "message": "You are a premium member!" + "message": "Premium üzvsünüz!" }, "premiumCurrentMemberThanks": { - "message": "Thank you for supporting Bitwarden." + "message": "Bitwarden-i dəstəklədiyiniz üçün təşəkkürlər!" }, "premiumPrice": { - "message": "All for just $PRICE$ /year!", + "message": "Hamısı sadəcə ildə $PRICE$!", "placeholders": { "price": { "content": "$1", @@ -765,25 +765,25 @@ } }, "refreshComplete": { - "message": "Refresh complete" + "message": "Təzələmə tamamlandı" }, "disableAutoTotpCopy": { - "message": "Disable Automatic TOTP Copy" + "message": "Avtomatik TOTP kopyalamasını sıradan çıxart" }, "disableAutoTotpCopyDesc": { - "message": "If your login has an authenticator key attached to it, the TOTP verification code is automatically copied to your clipboard whenever you auto-fill the login." + "message": "Hesabınıza əlavə edilən kimlik təsdiqləyici açarı varsa, giriş məlumatları avto-doldurulanda TOTP təsdiqləmə kodu da avtomatik olaraq lövhəyə kopyalanacaq." }, "premiumRequired": { - "message": "Premium Required" + "message": "Premium üzvlük lazımdır" }, "premiumRequiredDesc": { - "message": "A premium membership is required to use this feature." + "message": "Bu özəlliyi istifadə etmək üçün premium üzvlük lazımdır." }, "enterVerificationCodeApp": { - "message": "Enter the 6 digit verification code from your authenticator app." + "message": "Kimlik təsdiqləyici tətbiqindən 6 rəqəmli təsdiqləmə kodunu daxil edin." }, "enterVerificationCodeEmail": { - "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "message": "$EMAIL$ ünvanına göndərilən e-poçtdakı 6 rəqəmli təsdiqləmə kodunu daxil edin.", "placeholders": { "email": { "content": "$1", @@ -792,7 +792,7 @@ } }, "verificationCodeEmailSent": { - "message": "Verification email sent to $EMAIL$.", + "message": "Təsdiqləmə poçtu $EMAIL$ ünvanına göndərildi.", "placeholders": { "email": { "content": "$1", @@ -801,386 +801,386 @@ } }, "rememberMe": { - "message": "Remember me" + "message": "Məni xatırla" }, "sendVerificationCodeEmailAgain": { - "message": "Send verification code email again" + "message": "Təsdiqləmə kodu olan e-poçtu yenidən göndər" }, "useAnotherTwoStepMethod": { - "message": "Use another two-step login method" + "message": "Başqa bir iki mərhələli giriş metodu istifadə edin" }, "insertYubiKey": { - "message": "Insert your YubiKey into your computer's USB port, then touch its button." + "message": "\"YubiKey\"i kompüterinizin USB portuna taxın, daha sonra düyməsinə toxunun." }, "insertU2f": { - "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + "message": "Təhlükəsizlik açarını kompüterinizin USB portun taxın. Düyməsi varsa toxunun." }, "webAuthnNewTab": { - "message": "To start the WebAuthn 2FA verification. Click the button below to open a new tab and follow the instructions provided in the new tab." + "message": "WebAuthn 2FA təsdiqləməsini başladın. Yeni bir vərəq açmaq üçün aşağıdakı düyməyə klikləyin və yeni vərəqdəki təlimatları izləyin." }, "webAuthnNewTabOpen": { - "message": "Open new tab" + "message": "Yeni vərəq aç" }, "webAuthnAuthenticate": { - "message": "Authenticate WebAuthn" + "message": "WebAuthn təsdiqləmə" }, "loginUnavailable": { - "message": "Login Unavailable" + "message": "Giriş edilə bilmir" }, "noTwoStepProviders": { - "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." + "message": "Bu hesabın iki mərhələli giriş özəlliyi fəaldır, ancaq, konfiqurasiya edilmiş iki mərhələli təchizatçıların heç biri bu səyyah tərəfindən dəstəklənmir." }, "noTwoStepProviders2": { - "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + "message": "Zəhmət olmasa (Chrome kimi) dəstəklənən bir veb səyyah istifadə edin və/və ya veb səyyahlara (kimlik təsdiqləyici tətbiq kimi) daha yaxşı dəstəklənən təchizatçılar əlavə edin." }, "twoStepOptions": { - "message": "Two-step Login Options" + "message": "İki mərhələli giriş seçimləri" }, "recoveryCodeDesc": { - "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + "message": "İki mərhələli təsdiqləmə təchizatçılarına müraciəti itirmisiniz? Bərpa kodunuzu istifadə edərək hesabınızdakı bütün iki mərhələli təchizatçıları sıradan çıxara bilərsiniz." }, "recoveryCodeTitle": { - "message": "Recovery Code" + "message": "Bərpa kodu" }, "authenticatorAppTitle": { - "message": "Authenticator App" + "message": "Kimlik təsdiqləyici tətbiqi" }, "authenticatorAppDesc": { - "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "message": "Vaxt əsaslı təsdiqləmə kodları yaratmaq üçün (Authy və ya Google Authenticator kimi) kimlik təsdiqləyici tətbiq istifadə edin.", "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." }, "yubiKeyTitle": { - "message": "YubiKey OTP Security Key" + "message": "YubiKey OTP təhlükəsizlik açarı" }, "yubiKeyDesc": { - "message": "Use a YubiKey to access your account. Works with YubiKey 4, 4 Nano, 4C, and NEO devices." + "message": "Hesabınıza müraciət etmək üçün bir YubiKey istifadə edin. YubiKey 4, 4 Nano, 4C və NEO cihazları ilə işləyir." }, "duoDesc": { - "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "message": "Duo Security ilə təsdiqləmək üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F təhlükəsizlik açarını istifadə edin.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { - "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "message": "Təşkilatınızını Duo Security ilə təsdiqləmək üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F təhlükəsizlik açarını istifadə edin.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "webAuthnTitle": { "message": "FIDO2 WebAuthn" }, "webAuthnDesc": { - "message": "Use any WebAuthn enabled security key to access your account." + "message": "Hesabınıza müraciət etmək üçün hər hansısa bir WebAuthn fəallaşdırılan təhlükəsizlik açarı istifadə edin." }, "emailTitle": { - "message": "Email" + "message": "E-poçt" }, "emailDesc": { - "message": "Verification codes will be emailed to you." + "message": "Təsdiqləmə kodları e-poçt ünvanınıza göndəriləcək." }, "selfHostedEnvironment": { - "message": "Self-hosted Environment" + "message": "Öz-özünə sahiblik edən mühit" }, "selfHostedEnvironmentFooter": { - "message": "Specify the base URL of your on-premises hosted Bitwarden installation." + "message": "Öz-özünə sahiblik edən Bitwarden quraşdırmasının baza URL-sini müəyyənləşdirin." }, "customEnvironment": { - "message": "Custom Environment" + "message": "Özəl mühit" }, "customEnvironmentFooter": { - "message": "For advanced users. You can specify the base URL of each service independently." + "message": "Qabaqcıl istifadəçilər üçündür. Hər xidmətin baza URL-sini müstəqil olaraq müəyyənləşdirə bilərsiniz." }, "baseUrl": { - "message": "Server URL" + "message": "Server URL-si" }, "apiUrl": { - "message": "API Server URL" + "message": "API server URL-si" }, "webVaultUrl": { - "message": "Web Vault Server URL" + "message": "Veb anbar server URL-si" }, "identityUrl": { - "message": "Identity Server URL" + "message": "Kimlik server URL-si" }, "notificationsUrl": { - "message": "Notifications Server URL" + "message": "Bildiriş server URL-si" }, "iconsUrl": { - "message": "Icons Server URL" + "message": "Nişan server URL-si" }, "environmentSaved": { - "message": "The environment URLs have been saved." + "message": "Mühit URL-ləri saxlanıldı." }, "enableAutoFillOnPageLoad": { - "message": "Enable Auto-fill on Page Load" + "message": "Səhifə yüklənəndə avto-doldurmanı fəallaşdır" }, "enableAutoFillOnPageLoadDesc": { - "message": "If a login form is detected, automatically perform an auto-fill when the web page loads." + "message": "Giriş formu aşkarlananda, səhifə yüklənən zaman formu avto-doldurma icra edilsin." }, "experimentalFeature": { - "message": "This is currently an experimental feature. Use at your own risk." + "message": "Bu, hazırda təcrübi bir özəllikdir. İstifadə zamanı riski sizə aiddir." }, "defaultAutoFillOnPageLoad": { - "message": "Default autofill setting for login items" + "message": "Giriş məlumatları üçün ilkin avto-doldurma tənzimləməsi" }, "defaultAutoFillOnPageLoadDesc": { - "message": "After enabling Auto-fill on Page Load, you can enable or disable the feature for individual login items. This is the default setting for login items that are not separately configured." + "message": "\"Səhifə yüklənəndə avto-doldur\"u fəal etdikdən sonra, fərdi giriş elementləri üçün özəlliyi fəallaşdıra və ya sıradan çıxarda bilərsiniz. Bu ayrı-ayrı konfiqurasiya edilməmiş giriş elementləri üçün ilkin tənzimləmədir." }, "itemAutoFillOnPageLoad": { - "message": "Auto-fill on Page Load (if enabled in Options)" + "message": "Səhifə yüklənəndə avto-doldur (Seçimlərdə fəallaşdırılıbsa)" }, "autoFillOnPageLoadUseDefault": { - "message": "Use default setting" + "message": "İlkin tənzimləməni istifadə et" }, "autoFillOnPageLoadYes": { - "message": "Auto-fill on page load" + "message": "Səhifə yüklənəndə avto-doldur" }, "autoFillOnPageLoadNo": { - "message": "Do not auto-fill on page load" + "message": "Səhifə yüklənəndə avto-doldurma" }, "commandOpenPopup": { - "message": "Open vault popup" + "message": "Anbar açılan pəncərədə aç" }, "commandOpenSidebar": { - "message": "Open vault in sidebar" + "message": "Anbar yan sətirdə aç" }, "commandAutofillDesc": { - "message": "Auto-fill the last used login for the current website" + "message": "Hazırkı veb sayt üçün son istifadə edilən giriş məlumatlarını avto-doldur" }, "commandGeneratePasswordDesc": { - "message": "Generate and copy a new random password to the clipboard" + "message": "Təsadüfi yeni bir şifrə yarat və lövhəyə kopyala" }, "commandLockVaultDesc": { - "message": "Lock the vault" + "message": "Anbarı kilidlə" }, "privateModeMessage": { - "message": "Unfortunately this window is not available in private mode for this browser." + "message": "Təəssüf ki, bu pəncərə səyyahın gizli rejimində əlçatan deyil." }, "customFields": { - "message": "Custom Fields" + "message": "Özəl sahələr" }, "copyValue": { - "message": "Copy Value" + "message": "Dəyəri kopyala" }, "value": { - "message": "Value" + "message": "Dəyər" }, "newCustomField": { - "message": "New Custom Field" + "message": "Yeni özəl sahə" }, "dragToSort": { - "message": "Drag to sort" + "message": "Sıralamaq üçün sürüşdürün" }, "cfTypeText": { - "message": "Text" + "message": "Mətn" }, "cfTypeHidden": { - "message": "Hidden" + "message": "Gizli" }, "cfTypeBoolean": { "message": "Boolean" }, "popup2faCloseMessage": { - "message": "Clicking outside the popup window to check your email for your verification code will cause this popup to close. Do you want to open this popup in a new window so that it does not close?" + "message": "Təsdiqləmə kodunu alacağınız e-poçtu yoxlamaq üçün bu pəncərə xaricində bir yerə klikləsəniz bu pəncərə bağlanacaq. Bu pəncərənin bağlanmaması üçün yeni bir pəncərədə açmaq istəyirsiniz?" }, "popupU2fCloseMessage": { - "message": "This browser cannot process U2F requests in this popup window. Do you want to open this popup in a new window so that you can log in using U2F?" + "message": "Bu səyyah bu açılan pəncərədə U2F tələblərini emal edə bilmir. U2F istifadə edərək giriş etmək üçün bu açılan pəncərəni yeni bir pəncərədə açmaq istəyirsiniz?" }, "disableFavicon": { - "message": "Disable Website Icons" + "message": "Veb sayt nişanlarını sıradan çıxart" }, "disableFaviconDesc": { - "message": "Website Icons provide a recognizable image next to each login item in your vault." + "message": "Veb sayt nişanları, anbarınızda hər bir giriş elementinin yanında tanımağınıza kömək edən bir təsvir təqdim edir." }, "disableBadgeCounter": { - "message": "Disable Badge Counter" + "message": "Nişan sayğacını sıradan çıxart" }, "disableBadgeCounterDesc": { - "message": "Badge counter indicates how many logins you have for the current page in your vault." + "message": "Nişan sayğacı, anbarınızdakı hazırkı səhifə üçün neçə dəfə giriş etdiyinizi göstərir." }, "cardholderName": { - "message": "Cardholder Name" + "message": "Kart sahibinin adı" }, "number": { - "message": "Number" + "message": "Nömrə" }, "brand": { - "message": "Brand" + "message": "Brend" }, "expirationMonth": { - "message": "Expiration Month" + "message": "Son istifadə ayı" }, "expirationYear": { - "message": "Expiration Year" + "message": "Son istifadə ili" }, "expiration": { - "message": "Expiration" + "message": "Bitmə vaxtı" }, "january": { - "message": "January" + "message": "Yanvar" }, "february": { - "message": "February" + "message": "Fevral" }, "march": { - "message": "March" + "message": "Mart" }, "april": { - "message": "April" + "message": "Aprel" }, "may": { "message": "May" }, "june": { - "message": "June" + "message": "İyun" }, "july": { - "message": "July" + "message": "İyul" }, "august": { - "message": "August" + "message": "Avqust" }, "september": { - "message": "September" + "message": "Sentyabr" }, "october": { - "message": "October" + "message": "Oktyabr" }, "november": { - "message": "November" + "message": "Noyabr" }, "december": { - "message": "December" + "message": "Dekabr" }, "securityCode": { - "message": "Security Code" + "message": "Təhlükəsizlik kodu" }, "ex": { - "message": "ex." + "message": "məs." }, "title": { - "message": "Title" + "message": "Başlıq" }, "mr": { - "message": "Mr" + "message": "Cənab" }, "mrs": { - "message": "Mrs" + "message": "Xanım" }, "ms": { - "message": "Ms" + "message": "Hörmətli" }, "dr": { "message": "Dr" }, "firstName": { - "message": "First Name" + "message": "Ad" }, "middleName": { - "message": "Middle Name" + "message": "Orta ad" }, "lastName": { - "message": "Last Name" + "message": "Soyad" }, "identityName": { - "message": "Identity Name" + "message": "Kimlik adı" }, "company": { - "message": "Company" + "message": "Şirkət" }, "ssn": { - "message": "Social Security Number" + "message": "Sosial təhlükəsizlik nömrəsi" }, "passportNumber": { - "message": "Passport Number" + "message": "Pasport nömrəsi" }, "licenseNumber": { - "message": "License Number" + "message": "Lisenziya nömrəsi" }, "email": { - "message": "Email" + "message": "E-poçt" }, "phone": { - "message": "Phone" + "message": "Telefon" }, "address": { - "message": "Address" + "message": "Ünvan" }, "address1": { - "message": "Address 1" + "message": "Ünvan 1" }, "address2": { - "message": "Address 2" + "message": "Ünvan 2" }, "address3": { - "message": "Address 3" + "message": "Ünvan 3" }, "cityTown": { - "message": "City / Town" + "message": "Şəhər/Rayon" }, "stateProvince": { - "message": "State / Province" + "message": "Ölkə/Əyalət" }, "zipPostalCode": { - "message": "Zip / Postal Code" + "message": "Zip/ Poçt kodu" }, "country": { - "message": "Country" + "message": "Ölkə" }, "type": { - "message": "Type" + "message": "Növ" }, "typeLogin": { - "message": "Login" + "message": "Giriş" }, "typeLogins": { - "message": "Logins" + "message": "Girişlər" }, "typeSecureNote": { - "message": "Secure Note" + "message": "Təhlükəsizlik qeydi" }, "typeCard": { - "message": "Card" + "message": "Kart" }, "typeIdentity": { - "message": "Identity" + "message": "Kimlik" }, "passwordHistory": { - "message": "Password History" + "message": "Şifrə tarixçəsi" }, "back": { - "message": "Back" + "message": "Geri" }, "collections": { - "message": "Collections" + "message": "Kolleksiyalar" }, "favorites": { - "message": "Favorites" + "message": "Sevimlilər" }, "popOutNewWindow": { - "message": "Pop out to a new window" + "message": "Yeni bir pəncərədə aç" }, "refresh": { - "message": "Refresh" + "message": "Təzələ" }, "cards": { - "message": "Cards" + "message": "Kartlar" }, "identities": { - "message": "Identities" + "message": "Kimliklər" }, "logins": { - "message": "Logins" + "message": "Girişlər" }, "secureNotes": { - "message": "Secure Notes" + "message": "Təhlükəsizlik qeydləri" }, "clear": { - "message": "Clear", + "message": "Təmizlə", "description": "To clear something out. example: To clear browser history." }, "checkPassword": { - "message": "Check if password has been exposed." + "message": "Şifrənizin oğurlanıb oğurlanmadığını yoxlayın." }, "passwordExposed": { - "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "message": "Bu şifrə, məlumat pozuntularında $VALUE$ dəfə üzə çıxıb. Dəyişdirməyi məsləhət görürük.", "placeholders": { "value": { "content": "$1", @@ -1189,205 +1189,205 @@ } }, "passwordSafe": { - "message": "This password was not found in any known data breaches. It should be safe to use." + "message": "Bu şifrə, məlumat pozuntularında qeydə alınmayıb. Rahatlıqla istifadə edə bilərsiniz." }, "baseDomain": { - "message": "Base domain" + "message": "Baza domeni" }, "host": { "message": "Host", "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." }, "exact": { - "message": "Exact" + "message": "Tam" }, "startsWith": { - "message": "Starts with" + "message": "Başlayır" }, "regEx": { - "message": "Regular expression", + "message": "Müntəzəm ifadə", "description": "A programming term, also known as 'RegEx'." }, "matchDetection": { - "message": "Match Detection", + "message": "Uyğunluq aşkarlaması", "description": "URI match detection for auto-fill." }, "defaultMatchDetection": { - "message": "Default match detection", + "message": "İlkin uyğunluq aşkarlaması", "description": "Default URI match detection for auto-fill." }, "toggleOptions": { - "message": "Toggle Options" + "message": "Seçimləri aç/bağla" }, "toggleCurrentUris": { - "message": "Toggle Current URIs", + "message": "Hazırkı URI-ləri aç/bağla", "description": "Toggle the display of the URIs of the currently open tabs in the browser." }, "currentUri": { - "message": "Current URI", + "message": "Hazırkı URI", "description": "The URI of one of the current open tabs in the browser." }, "organization": { - "message": "Organization", + "message": "Təşkilat", "description": "An entity of multiple related people (ex. a team or business organization)." }, "types": { - "message": "Types" + "message": "Növlər" }, "allItems": { - "message": "All Items" + "message": "Bütün elementlər" }, "noPasswordsInList": { - "message": "There are no passwords to list." + "message": "Siyahılanacaq heç bir şifrə yoxdur." }, "remove": { - "message": "Remove" + "message": "Çıxart" }, "default": { - "message": "Default" + "message": "İlkin" }, "dateUpdated": { - "message": "Updated", + "message": "Yeniləndi", "description": "ex. Date this item was updated" }, "datePasswordUpdated": { - "message": "Password Updated", + "message": "Şifrə yeniləndi", "description": "ex. Date this password was updated" }, "neverLockWarning": { - "message": "Are you sure you want to use the \"Never\" option? Setting your lock options to \"Never\" stores your vault's encryption key on your device. If you use this option you should ensure that you keep your device properly protected." + "message": "\"Heç vaxt\" seçimini istifadə etmək istədiyinizə əminsiniz? Kilid seçimini \"Heç vaxt\" olaraq tənzimləsəniz, anbarınızın şifrələmə açarı cihazınızda saxlanılacaq. Bu seçimi istifadə etsəniz, cihazınızı daha yaxşı mühafizə etməlisiniz." }, "noOrganizationsList": { - "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." + "message": "Heç bir təşkilata aid deyilsiniz. Təşkilatlar, elementlərinizi digər istifadəçilərlə təhlükəsiz şəkildə paylaşmağınızı təmin edir." }, "noCollectionsInList": { - "message": "There are no collections to list." + "message": "Siyahılanacaq heç bir kolleksiya yoxdur." }, "ownership": { - "message": "Ownership" + "message": "Sahiblik" }, "whoOwnsThisItem": { - "message": "Who owns this item?" + "message": "Bu elementin sahibi kimdir?" }, "strong": { - "message": "Strong", + "message": "Güclü", "description": "ex. A strong password. Scale: Weak -> Good -> Strong" }, "good": { - "message": "Good", + "message": "Yaxşı", "description": "ex. A good password. Scale: Weak -> Good -> Strong" }, "weak": { - "message": "Weak", + "message": "Zəif", "description": "ex. A weak password. Scale: Weak -> Good -> Strong" }, "weakMasterPassword": { - "message": "Weak Master Password" + "message": "Zəif ana şifrə" }, "weakMasterPasswordDesc": { - "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + "message": "Seçdiyiniz ana şifrə zəifdir. Bitwarden hesabınızı daha yaxşı qorumaq üçün güclü bir ana şifrə (və ya uzun ifadə) istifadə etməlisiniz. Bu ana şifrəni istifadə etmək istədiyinizə əminsiniz?" }, "pin": { "message": "PIN", "description": "PIN code. Ex. The short code (often numeric) that you use to unlock a device." }, "unlockWithPin": { - "message": "Unlock with PIN" + "message": "PIN ilə kilidi açın" }, "setYourPinCode": { - "message": "Set your PIN code for unlocking Bitwarden. Your PIN settings will be reset if you ever fully log out of the application." + "message": "Bitwarden-in kilidini açmaq üçün PIN kod tənzimləyin. Hər tətbiqdən tam çıxış edəndə PIN tənzimləmələriniz sıfırlanacaq." }, "pinRequired": { - "message": "PIN code is required." + "message": "PIN kod lazımdır." }, "invalidPin": { - "message": "Invalid PIN code." + "message": "Etibarsız PIN kod." }, "verifyPin": { - "message": "Verify PIN" + "message": "PIN-i təsdiqlə" }, "yourVaultIsLockedPinCode": { - "message": "Your vault is locked. Verify your PIN code to continue." + "message": "Anbarınız kilidlənib. Davam etmək üçün PIN kodunuzu təsdiqləyin." }, "unlockWithBiometrics": { - "message": "Unlock with biometrics" + "message": "Biometriklərlə kilidi açın" }, "awaitDesktop": { - "message": "Awaiting confirmation from desktop" + "message": "Masaüstündən təsdiq gözlənilir" }, "awaitDesktopDesc": { - "message": "Please confirm using biometrics in the Bitwarden Desktop application to enable biometrics for browser." + "message": "Səyyah üçün biometrikləri fəallaşdırmaq üçün zəhmət olmasa Bitwarden masaüstü tətbiqində biometrik istifadəsini təsdiqləyin." }, "lockWithMasterPassOnRestart": { - "message": "Lock with master password on browser restart" + "message": "Səyyah yenidən başladılanda ana şifrə ilə kilidlə" }, "selectOneCollection": { - "message": "You must select at least one collection." + "message": "Ən azı bir kolleksiya seçməlisiniz." }, "cloneItem": { - "message": "Clone Item" + "message": "Elementi klonla" }, "clone": { - "message": "Clone" + "message": "Klonla" }, "passwordGeneratorPolicyInEffect": { - "message": "One or more organization policies are affecting your generator settings." + "message": "Bir və ya daha çox təşkilat siyasətləri yaradıcı seçimlərinizə təsir edir." }, "vaultTimeoutAction": { - "message": "Vault Timeout Action" + "message": "Anbara müraciət vaxtının bitmə əməliyyatı" }, "lock": { - "message": "Lock", + "message": "Kilidlə", "description": "Verb form: to make secure or inaccesible by" }, "trash": { - "message": "Trash", + "message": "Tullantı qutusu", "description": "Noun: a special folder to hold deleted items" }, "searchTrash": { - "message": "Search trash" + "message": "Tullantı qutusunda axtar" }, "permanentlyDeleteItem": { - "message": "Permanently Delete Item" + "message": "Elementi birdəfəlik sil" }, "permanentlyDeleteItemConfirmation": { - "message": "Are you sure you want to permanently delete this item?" + "message": "Bu elementi birdəfəlik silmək istədiyinizə əminsiniz?" }, "permanentlyDeletedItem": { - "message": "Permanently Deleted item" + "message": "Element birdəfəlik silindi" }, "restoreItem": { - "message": "Restore Item" + "message": "Elementi bərpa et" }, "restoreItemConfirmation": { - "message": "Are you sure you want to restore this item?" + "message": "Elementi bərpa etmək istədiyinizə əminsiniz?" }, "restoredItem": { - "message": "Restored Item" + "message": "Element bərpa edildi" }, "vaultTimeoutLogOutConfirmation": { - "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + "message": "Çıxış edəndə, anbarınıza bütün müraciətiniz dayanacaq və vaxt bitməsindən sonra onlayn kimlik təsdiqləməsi tələb olunacaq. Bu tənzimləməni istifadə etmək istədiyinizə əminsiniz?" }, "vaultTimeoutLogOutConfirmationTitle": { - "message": "Timeout Action Confirmation" + "message": "Vaxt bitmə əməliyyat təsdiqi" }, "autoFillAndSave": { - "message": "Auto-fill and Save" + "message": "Avto-doldur və saxla" }, "autoFillSuccessAndSavedUri": { - "message": "Auto-filled Item and Saved URI" + "message": "Element avto-dolduruldu və URI saxlanıldı" }, "autoFillSuccess": { - "message": "Auto-filled Item" + "message": "Element avto-dolduruldu" }, "setMasterPassword": { - "message": "Set Master Password" + "message": "Ana şifrəni tənzimlə" }, "masterPasswordPolicyInEffect": { - "message": "One or more organization policies require your master password to meet the following requirements:" + "message": "Bir və ya daha çox təşkilat siyasəti, aşağıdakı tələbləri qarşılamaq üçün ana şifrənizi tələb edir:" }, "policyInEffectMinComplexity": { - "message": "Minimum complexity score of $SCORE$", + "message": "Minimum mürəkkəblik xalı: $SCORE$", "placeholders": { "score": { "content": "$1", @@ -1396,7 +1396,7 @@ } }, "policyInEffectMinLength": { - "message": "Minimum length of $LENGTH$", + "message": "Minimum uzunluq: $LENGTH$", "placeholders": { "length": { "content": "$1", @@ -1405,16 +1405,16 @@ } }, "policyInEffectUppercase": { - "message": "Contain one or more uppercase characters" + "message": "Bir və ya daha çox böyük hərf ehtiva etməlidir" }, "policyInEffectLowercase": { - "message": "Contain one or more lowercase characters" + "message": "Bir və ya daha çox kiçik hərf ehtiva etməlidir" }, "policyInEffectNumbers": { - "message": "Contain one or more numbers" + "message": "Bir və ya daha çox rəqəm ehtiva etməlidir" }, "policyInEffectSpecial": { - "message": "Contain one or more of the following special characters $CHARS$", + "message": "Bu özəl simvollardan biri və ya daha çoxunu ehtiva etməlidir: $CHARS$", "placeholders": { "chars": { "content": "$1", @@ -1423,100 +1423,100 @@ } }, "masterPasswordPolicyRequirementsNotMet": { - "message": "Your new master password does not meet the policy requirements." + "message": "Yeni ana şifrəniz siyasət tələblərini qarşılamır." }, "acceptPolicies": { - "message": "By checking this box you agree to the following:" + "message": "Bu qutunu işarələyərək aşağıdakılarla razılaşırsınız:" }, "acceptPoliciesError": { - "message": "Terms of Service and Privacy Policy have not been acknowledged." + "message": "Xidmət Şərtləri və Gizlilik Siyasəti qəbul edilməyib." }, "termsOfService": { - "message": "Terms of Service" + "message": "Xidmət Şərtləri" }, "privacyPolicy": { - "message": "Privacy Policy" + "message": "Gizlilik Siyasəti" }, "hintEqualsPassword": { - "message": "Your password hint cannot be the same as your password." + "message": "Şifrə məsləhəti, şifrənizlə eyni ola bilməz." }, "ok": { - "message": "Ok" + "message": "Oldu" }, "desktopSyncVerificationTitle": { - "message": "Desktop sync verification" + "message": "Masaüstü eyniləşdirmə təsdiqləməsi" }, "desktopIntegrationVerificationText": { - "message": "Please verify that the desktop application shows this fingerprint: " + "message": "Zəhmət olmasa masaüstü tətbiqin bu barmaq izini gördüyünü təsdiqləyin:" }, "desktopIntegrationDisabledTitle": { - "message": "Browser integration is not enabled" + "message": "Səyyah inteqrasiyası fəal deyil" }, "desktopIntegrationDisabledDesc": { - "message": "Browser integration is not enabled in the Bitwarden Desktop application. Please enable it in the settings within the desktop application." + "message": "Səyyah inteqrasiyası Bitwarden masaüstü tətbiqində fəal deyil. Zəhmət olmasa masaüstü tətbiqinin tənzimləmələrində fəallaşdırın." }, "startDesktopTitle": { - "message": "Start the Bitwarden Desktop application" + "message": "Bitwarden masaüstü tətbiqini başlat" }, "startDesktopDesc": { - "message": "The Bitwarden Desktop application needs to be started before this function can be used." + "message": "Bu funksiyanın istifadə edilə bilməsi üçün Bitwarden masaüstü tətbiqi başladılmalıdır." }, "errorEnableBiometricTitle": { - "message": "Unable to enable biometrics" + "message": "Biometriklər fəallaşdırıla bilmədi" }, "errorEnableBiometricDesc": { - "message": "Action was canceled by the desktop application" + "message": "Əməliyyat, masaüstü tətbiqi tərəfindən ləğv edildi" }, "nativeMessagingInvalidEncryptionDesc": { - "message": "Desktop application invalidated the secure communication channel. Please retry this operation" + "message": "Masaüstü tətbiqi, təhlükəsiz rabitə kanalını qüvvədən saldı. Bu əməliyyatı yenidən icra edin" }, "nativeMessagingInvalidEncryptionTitle": { - "message": "Desktop communication interrupted" + "message": "Masaüstü rabitə əlaqəsi kəsildi" }, "nativeMessagingWrongUserDesc": { - "message": "The desktop application is logged into a different account. Please ensure both applications are logged into the same account." + "message": "Masaüstü tətbiqdə fərqli bir hesabla giriş edilib. Hər iki tətbiqin eyni hesabla giriş etdiyinə əmin olun." }, "nativeMessagingWrongUserTitle": { - "message": "Account missmatch" + "message": "Hesablar uyğunlaşmır" }, "biometricsNotEnabledTitle": { - "message": "Biometrics not enabled" + "message": "Biometriklə fəal deyil" }, "biometricsNotEnabledDesc": { - "message": "Browser biometrics requires desktop biometric to be enabled in the settings first." + "message": "Səyyah biometrikləri, əvvəlcə tənzimləmələrdə masaüstü biometriklərinin fəallaşdırılmasını tələb edir." }, "biometricsNotSupportedTitle": { - "message": "Biometrics not supported" + "message": "Biometriklər dəstəklənmir" }, "biometricsNotSupportedDesc": { - "message": "Browser biometrics is not supported on this device." + "message": "Səyyah biometrikləri bu cihazda dəstəklənmir" }, "nativeMessaginPermissionErrorTitle": { - "message": "Permission not provided" + "message": "İcazə verilmədi" }, "nativeMessaginPermissionErrorDesc": { - "message": "Without permission to communicate with the Bitwarden Desktop Application we cannot provide biometrics in the browser extension. Please try again." + "message": "Bitwarden masaüstü tətbiqi ilə əlaqə qurma icazəsi olmadan, səyyah genişləndirməsində biometrikləri təmin edə bilmərik. Zəhmət olmasa yenidən sınayın." }, "nativeMessaginPermissionSidebarTitle": { - "message": "Permission request error" + "message": "İcazə tələb xətası" }, "nativeMessaginPermissionSidebarDesc": { - "message": "This action cannot be done in the sidebar, please retry the action in the popup or popout." + "message": "Bu əməliyyatı yan sətirdən edə bilməzsiniz. Zəhmət olmasa açılan pəncərədə yenidən cəhd edin." }, "personalOwnershipSubmitError": { - "message": "Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + "message": "Müəssisə Siyasətinə görə, elementləri şəxsi anbarınızda saxlamağınız məhdudlaşdırılıb. Sahiblik seçimini təşkilat olaraq dəyişdirin və mövcud kolleksiyalar arasından seçim edin." }, "personalOwnershipPolicyInEffect": { - "message": "An organization policy is affecting your ownership options." + "message": "Bir təşkilat siyasəti, sahiblik seçimlərinizə təsir edir." }, "excludedDomains": { - "message": "Excluded Domains" + "message": "İstisna edilən domenlər" }, "excludedDomainsDesc": { - "message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect." + "message": "Bitwarden bu domenlər üçün giriş təfsilatlarını saxlamağı soruşmayacaq. Dəyişikliklərin təsirli olması üçün səhifəni təzələməlisiniz." }, "excludedDomainsInvalidDomain": { - "message": "$DOMAIN$ is not a valid domain", + "message": "$DOMAIN$ etibarlı bir domen deyil", "placeholders": { "domain": { "content": "$1", @@ -1529,104 +1529,104 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "searchSends": { - "message": "Search Sends", + "message": "\"Send\"ləri axtar", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "addSend": { - "message": "Add Send", + "message": "\"Send\" əlavə et", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTypeText": { - "message": "Text" + "message": "Mətn" }, "sendTypeFile": { - "message": "File" + "message": "Fayl" }, "allSends": { - "message": "All Sends", + "message": "Bütün \"Send\"lər", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCountReached": { - "message": "Max access count reached" + "message": "Maksimal müraciət sayına çatıldı" }, "expired": { - "message": "Expired" + "message": "Müddəti bitib" }, "pendingDeletion": { - "message": "Pending deletion" + "message": "Silinməsi gözlənilir" }, "passwordProtected": { - "message": "Password protected" + "message": "Şifrə qorumalı" }, "copySendLink": { - "message": "Copy Send link", + "message": "\"Send\" bağlantısını kopyala", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "removePassword": { - "message": "Remove Password" + "message": "Şifrəni çıxart" }, "delete": { - "message": "Delete" + "message": "Sil" }, "removedPassword": { - "message": "Removed Password" + "message": "Şifrə çıxarıldı" }, "deletedSend": { - "message": "Deleted Send", + "message": "Send silindi", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendLink": { - "message": "Send link", + "message": "\"Send\" bağlantısı", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disabled": { - "message": "Disabled" + "message": "Sıradan çıxarıldı" }, "removePasswordConfirmation": { - "message": "Are you sure you want to remove the password?" + "message": "Şifrəni çıxartmaq istədiyinizə əminsiniz?" }, "deleteSend": { - "message": "Delete Send", + "message": "\"Send\"i sil", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSendConfirmation": { - "message": "Are you sure you want to delete this Send?", + "message": "Bu \"Send\"i silmək istədiyinizə əminsiniz?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editSend": { - "message": "Edit Send", + "message": "\"Send\"ə düzəliş et", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTypeHeader": { - "message": "What type of Send is this?", + "message": "\"Send\"in növü nədir?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Bu \"Send\"i açıqlayan bir ad.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Göndərmək istədiyiniz fayl." }, "deletionDate": { - "message": "Deletion Date" + "message": "Silinmə tarixi" }, "deletionDateDesc": { - "message": "The Send will be permanently deleted on the specified date and time.", + "message": "\"Send\" göstərilən tarix və saatda birdəfəlik silinəcək.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "Expiration Date" + "message": "Bitmə tarixi" }, "expirationDateDesc": { - "message": "If set, access to this Send will expire on the specified date and time.", + "message": "Əgər tənzimlənsə, göstərilən tarix və vaxtda \"Send\"ə müraciət başa çatacaq.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "oneDay": { - "message": "1 day" + "message": "1 gün" }, "days": { - "message": "$DAYS$ days", + "message": "$DAYS$ gün", "placeholders": { "days": { "content": "$1", @@ -1635,122 +1635,122 @@ } }, "custom": { - "message": "Custom" + "message": "Özəl" }, "maximumAccessCount": { - "message": "Maximum Access Count" + "message": "Maksimal müraciət sayı" }, "maximumAccessCountDesc": { - "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "message": "Əgər tənzimlənsə, istifadəçilər maksimal müraciət sayına çatdıqdan sonra bu \"Send\"ə müraciət edə bilməyəcək.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendPasswordDesc": { - "message": "Optionally require a password for users to access this Send.", + "message": "İstəyinizə görə istifadəçilərdən bu \"Send\"ə müraciət edərkən şifrə tələb edə bilərsiniz.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { - "message": "Private notes about this Send.", + "message": "Bu \"Send\" ilə bağlı gizli qeydlər.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisableDesc": { - "message": "Disable this Send so that no one can access it.", + "message": "Heç kimin müraciət edə bilməməsi üçün bu \"Send\"i sıradan çıxart.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendShareDesc": { - "message": "Copy this Send's link to clipboard upon save.", + "message": "Saxladıqdan sonra \"Send\"in bağlantısını lövhəyə kopyala.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Göndərmək istədiyiniz mətn" }, "sendHideText": { - "message": "Hide this Send's text by default.", + "message": "Bu \"Send\"in mətnini ilkin olaraq gizlət", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Current Access Count" + "message": "Hazırkı müraciət sayı" }, "createSend": { - "message": "Create New Send", + "message": "Yeni \"Send\" yarat", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "newPassword": { - "message": "New Password" + "message": "Yeni şifrə" }, "sendDisabled": { - "message": "Send Disabled", + "message": "Send sıradan çıxarıldı", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Müəssisə siyasətinə görə, yalnız mövcud \"Send\"i silə bilərsiniz.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { - "message": "Created Send", + "message": "Send yaradıldı", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { - "message": "Edited Send", + "message": "\"Send\"ə düzəliş edildi", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendLinuxChromiumFileWarning": { - "message": "In order to choose a file, open the extension in the sidebar (if possible) or pop out to a new window by clicking this banner." + "message": "Fayl seçmək üçün (mümkünsə) genişləndirməni yan sətirdə açın və ya bu bannerə klikləyərək yeni bir pəncərədə açın." }, "sendFirefoxFileWarning": { - "message": "In order to choose a file using Firefox, open the extension in the sidebar or pop out to a new window by clicking this banner." + "message": "Firefox istifadə edərək fayl seçmək üçün genişləndirməni yan sətirdə açın və ya bu bannerə klikləyərək yeni bir pəncərədə açın." }, "sendSafariFileWarning": { - "message": "In order to choose a file using Safari, pop out to a new window by clicking this banner." + "message": "Safari istifadə edərək fayl seçmək üçün bu bannerə klikləyərək yeni bir pəncərədə açın." }, "sendFileCalloutHeader": { - "message": "Before you start" + "message": "Başlamazdan əvvəl" }, "sendFirefoxCustomDatePopoutMessage1": { - "message": "To use a calendar style date picker", + "message": "Təqvim stilində tarix seçici istifadə etmək üçün", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**To use a calendar style date picker ** click here to pop out your window.'" }, "sendFirefoxCustomDatePopoutMessage2": { - "message": "click here", + "message": "bura klikləyin", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker **click here** to pop out your window.'" }, "sendFirefoxCustomDatePopoutMessage3": { - "message": "to pop out your window.", + "message": "yeni bir pəncərə açın.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker click here **to pop out your window.**'" }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Göstərilən son istifadə tarixi etibarsızdır." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Göstərilən silinmə tarixi etibarsızdır." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Son istifadə tarixi və vaxtı lazımdır." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Silinmə tarixi və vaxtı lazımdır." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Silinmə və son istifadə tarixlərini saxlayarkən xəta baş verdi." }, "hideEmail": { - "message": "Hide my email address from recipients." + "message": "E-poçt ünvanımı alıcılardan gizlət." }, "sendOptionsPolicyInEffect": { - "message": "One or more organization policies are affecting your Send options." + "message": "Bir və ya daha çox təşkilat siyasətləri \"Send\" seçimlərinizə təsir edir." }, "passwordPrompt": { - "message": "Master password re-prompt" + "message": "Ana şifrəni yenidə istə" }, "passwordConfirmation": { - "message": "Master password confirmation" + "message": "Ana şifrə təsdiqi" }, "passwordConfirmationDesc": { - "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + "message": "Bu əməliyyat qorumalıdır, davam etmək üçün zəhmət olmasa kimliyinizi təsdiqləmək üçün ana şifrənizi təkrar daxil edin." }, "emailVerificationRequired": { - "message": "Email Verification Required" + "message": "E-poçt təsdiqləməsi tələb olunur" }, "emailVerificationRequiredDesc": { - "message": "You must verify your email to use this feature. You can verify your email in the web vault." + "message": "Bu özəlliyi istifadə etmək üçün e-poçtunuzu təsdiqləməlisiniz. E-poçtunuzu veb anbarında təsdiqləyə bilərsiniz." } } diff --git a/src/_locales/be/messages.json b/src/_locales/be/messages.json index 1a68ab55df..ce4270038c 100644 --- a/src/_locales/be/messages.json +++ b/src/_locales/be/messages.json @@ -151,7 +151,7 @@ "message": "Захаваць" }, "move": { - "message": "Move" + "message": "Перамясціць" }, "addFolder": { "message": "Дадаць папку" @@ -600,7 +600,7 @@ "description": "Light color" }, "solarizedDark": { - "message": "Solarized Dark", + "message": "Цёмная Solarized", "description": "'Solarized' is a noun and the name of a color scheme. It should not be translated." }, "exportVault": { @@ -614,7 +614,7 @@ "description": "WARNING (should stay in capitalized letters if the language permits)" }, "confirmVaultExport": { - "message": "Confirm Vault Export" + "message": "Пацвердзіць экспарт сховішча" }, "exportWarningDesc": { "message": "Экспартуемы файл утрымлівае даныя вашага сховішча ў незашыфраваным фармаце. Яго не варта захоўваць ці адпраўляць па небяспечным каналам (напрыклад, па электроннай пошце). Выдаліце яго адразу пасля выкарыстання." diff --git a/src/_locales/cs/messages.json b/src/_locales/cs/messages.json index 30935237c9..e76bb6311d 100644 --- a/src/_locales/cs/messages.json +++ b/src/_locales/cs/messages.json @@ -623,7 +623,7 @@ "message": "Tento export zašifruje vaše data pomocí šifrovacího klíče vašeho účtu. Pokud někdy změníte šifrovací klíč vašeho účtu, měli by jste vyexportovat data znovu, protože tento exportovaný soubor nebudete moci dešifrovat." }, "encExportAccountWarningDesc": { - "message": "Šifrovací klíče účtu jsou pro každý uživatelský účet Bitwarden jedinečné, tudíž nelze importovat šifrovaný export do jiného účtu." + "message": "Šifrovací klíče účtu jsou pro každý uživatelský účet Bitwarden jedinečné, takže nelze importovat šifrovaný export do jiného účtu." }, "exportMasterPassword": { "message": "Zadejte své hlavní heslo pro export dat." @@ -1492,7 +1492,7 @@ "message": "Biometrie v prohlížeči není na tomto zařízení podporována." }, "nativeMessaginPermissionErrorTitle": { - "message": "Povolení nebylo poskytnuto" + "message": "Oprávnění nebylo uděleno" }, "nativeMessaginPermissionErrorDesc": { "message": "Bez oprávnění ke komunikaci s počítačovou aplikací Bitwarden nelze v rozšíření prohlížeče používat biometrické údaje. Zkuste to prosím znovu." @@ -1543,7 +1543,7 @@ "message": "Soubor" }, "allSends": { - "message": "Všechny Sendy", + "message": "Všechny Sends", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCountReached": { @@ -1583,7 +1583,7 @@ "message": "Zakázáno" }, "removePasswordConfirmation": { - "message": "Jste si jisti, že chcete heslo odstranit?" + "message": "Jste si jisti, že chcete odstranit heslo?" }, "deleteSend": { "message": "Smazat Send", @@ -1616,7 +1616,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "Datum expirace" + "message": "Datum vypršení platnosti" }, "expirationDateDesc": { "message": "Je-li nastaveno, přístup k tomuto Send vyprší v daný datum a čas.", @@ -1664,7 +1664,7 @@ "message": "Text, který chcete odeslat." }, "sendHideText": { - "message": "Skrýt ve výchozím stavu obsah tohoto Sendu.", + "message": "Skrýt ve výchozím stavu text tohoto Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { @@ -1724,10 +1724,10 @@ "message": "Uvedené datum odstranění není platné." }, "expirationDateAndTimeRequired": { - "message": "Je vyžadováno datum a čas vypršení platnosti." + "message": "Je vyžadován datum a čas vypršení platnosti." }, "deletionDateAndTimeRequired": { - "message": "Je vyžadováno datum a čas odstranění." + "message": "Je vyžadován datum a čas odstranění." }, "dateParsingError": { "message": "Došlo k chybě při ukládání data odstranění a vypršení platnosti." diff --git a/src/_locales/de/messages.json b/src/_locales/de/messages.json index fd5641a2d3..1f7268b90e 100644 --- a/src/_locales/de/messages.json +++ b/src/_locales/de/messages.json @@ -816,7 +816,7 @@ "message": "Stecke deinen Sicherheitsschlüssel in den USB-Port deines Computers. Falls ein Knopf vorhanden ist, berühre diesen." }, "webAuthnNewTab": { - "message": "Fahre mit der WebAuthn 2FA Verifizierung im neuen Tab fort." + "message": "Um die WebAuthn 2FA Verifizierung zu starten, klicke auf die Schaltfläche unten, um einen neuen Tab zu öffnen und folge den Anweisungen, die im neuen Tab angezeigt werden." }, "webAuthnNewTabOpen": { "message": "Neuen Tab öffnen" @@ -909,7 +909,7 @@ "message": "Die URLs der Umgebung wurden gespeichert." }, "enableAutoFillOnPageLoad": { - "message": "Aktiviere automatisches Ausfüllen beim Laden der Seite" + "message": "Auto-Ausfüllen beim Seitenladen aktivieren" }, "enableAutoFillOnPageLoadDesc": { "message": "Wenn eine Zugangsmaske erkannt wird, füge automatisch die Zugangsdaten ein während die Webseite lädt." diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index e42b3f0817..79ca58563e 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -88,6 +88,9 @@ "generatePasswordCopied": { "message": "Generate Password (copied)" }, + "copyElementIdentifier": { + "message": "Copy Custom Field Name" + }, "noMatchingLogins": { "message": "No matching logins." }, @@ -773,6 +776,9 @@ "disableAutoTotpCopyDesc": { "message": "If your login has an authenticator key attached to it, the TOTP verification code is automatically copied to your clipboard whenever you auto-fill the login." }, + "disableAutoBiometricsPrompt": { + "message": "Do not prompt for biometrics on launch" + }, "premiumRequired": { "message": "Premium Required" }, @@ -1752,5 +1758,54 @@ }, "emailVerificationRequiredDesc": { "message": "You must verify your email to use this feature. You can verify your email in the web vault." + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update it 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." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "selectFolder": { + "message": "Select folder..." + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restrictions set by your organization." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." } } diff --git a/src/_locales/es/messages.json b/src/_locales/es/messages.json index d904a3d651..cee5e1a2be 100644 --- a/src/_locales/es/messages.json +++ b/src/_locales/es/messages.json @@ -151,7 +151,7 @@ "message": "Guardar" }, "move": { - "message": "Move" + "message": "Mover" }, "addFolder": { "message": "Añadir carpeta" @@ -632,19 +632,19 @@ "message": "Compartido" }, "learnOrg": { - "message": "Learn about Organizations" + "message": "Aprende sobre Organizaciones" }, "learnOrgConfirmation": { - "message": "Bitwarden allows you to share your vault items with others by using an organization. Would you like to visit the bitwarden.com website to learn more?" + "message": "Bitwarden te permite compartir tus objetos de bóveda con otros usando una organización. ¿Quieres visitar el sitio web de bitwarden.com para saber más?" }, "moveToOrganization": { - "message": "Move to Organization" + "message": "Mover a la Organización" }, "share": { "message": "Compartir" }, "movedItemToOrg": { - "message": "$ITEMNAME$ moved to $ORGNAME$", + "message": "$ITEMNAME$ se desplazó a $ORGNAME$", "placeholders": { "itemname": { "content": "$1", @@ -657,7 +657,7 @@ } }, "moveToOrgDesc": { - "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + "message": "Elige una organización a la que deseas mover este objeto. Moviendo a una organización transfiere la propiedad del objeto a esa organización. Ya no serás el dueño directo de este objeto una vez que haya sido movido." }, "learnMore": { "message": "Más información" @@ -816,13 +816,13 @@ "message": "Inserta tu llave de seguridad en el puerto USB de tu equipo. Si tiene un botón, púlsalo." }, "webAuthnNewTab": { - "message": "To start the WebAuthn 2FA verification. Click the button below to open a new tab and follow the instructions provided in the new tab." + "message": "Para iniciar la verificación de WebAuthn 2FA. Haga clic en el botón de abajo para abrir una nueva pestaña y siga las instrucciones proporcionadas en la nueva pestaña." }, "webAuthnNewTabOpen": { - "message": "Open new tab" + "message": "Abrir nueva pestaña" }, "webAuthnAuthenticate": { - "message": "Authenticate WebAuthn" + "message": "Autenticar WebAuthn" }, "loginUnavailable": { "message": "Entrada no disponible" @@ -867,7 +867,7 @@ "message": "FIDO2 WebAuthn" }, "webAuthnDesc": { - "message": "Use any WebAuthn enabled security key to access your account." + "message": "Utilice cualquier clave de seguridad WebAuthn habilitada para acceder a su cuenta." }, "emailTitle": { "message": "Correo electrónico" @@ -918,22 +918,22 @@ "message": "Esta es una característica experimental. Úsala bajo tu propio riesgo." }, "defaultAutoFillOnPageLoad": { - "message": "Default autofill setting for login items" + "message": "Configuración de autorrelleno por defecto para elementos de inicio de sesión" }, "defaultAutoFillOnPageLoadDesc": { - "message": "After enabling Auto-fill on Page Load, you can enable or disable the feature for individual login items. This is the default setting for login items that are not separately configured." + "message": "Después de activar el autorelleno en Carga de página, puede activar o desactivar la función para entradas individuales. Esta es la configuración predeterminada para elementos de inicio de sesión que no están configurados por separado." }, "itemAutoFillOnPageLoad": { - "message": "Auto-fill on Page Load (if enabled in Options)" + "message": "Auto-relleno en carga de página (si está habilitado en opciones)" }, "autoFillOnPageLoadUseDefault": { - "message": "Use default setting" + "message": "Usar configuración predeterminada" }, "autoFillOnPageLoadYes": { - "message": "Auto-fill on page load" + "message": "Autocompletar al cargar la página" }, "autoFillOnPageLoadNo": { - "message": "Do not auto-fill on page load" + "message": "No rellenar automáticamente al cargar la página" }, "commandOpenPopup": { "message": "Abrir ventana emergente de la caja fuerte" @@ -990,10 +990,10 @@ "message": "Los iconos del sitio web añaden una imagen reconocible al lado de cada entrada de tu caja fuerte." }, "disableBadgeCounter": { - "message": "Disable Badge Counter" + "message": "Desactivar contador de insignias" }, "disableBadgeCounterDesc": { - "message": "Badge counter indicates how many logins you have for the current page in your vault." + "message": "El contador de insinuaciones indica cuántos registros tienes para la página actual en tu bóveda." }, "cardholderName": { "message": "Nombre en la tarjeta" @@ -1657,7 +1657,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendShareDesc": { - "message": "Copy this Send's link to clipboard upon save.", + "message": "Copiar el enlace del Send en el portapapeles al guardar.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { @@ -1668,7 +1668,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Current Access Count" + "message": "Número de acceso actual" }, "createSend": { "message": "Crear Envío nuevo", @@ -1682,7 +1682,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Debido a una política empresarial, sólo puede eliminar el existente Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { @@ -1694,19 +1694,19 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendLinuxChromiumFileWarning": { - "message": "In order to choose a file, open the extension in the sidebar (if possible) or pop out to a new window by clicking this banner." + "message": "Para elegir un archivo, abra la extensión en la barra lateral (si es posible) o salga a una nueva ventana haciendo clic en este anouncio." }, "sendFirefoxFileWarning": { - "message": "In order to choose a file using Firefox, open the extension in the sidebar or pop out to a new window by clicking this banner." + "message": "Para elegir un archivo usando Firefox, abra la extensión en la barra lateral o salga a una nueva ventana haciendo clic en este anouncio." }, "sendSafariFileWarning": { - "message": "In order to choose a file using Safari, pop out to a new window by clicking this banner." + "message": "Para elegir un archivo usando Safari, salga a una nueva ventana haciendo clic en este anouncio." }, "sendFileCalloutHeader": { - "message": "Before you start" + "message": "Antes de empezar" }, "sendFirefoxCustomDatePopoutMessage1": { - "message": "To use a calendar style date picker", + "message": "Para usar un selector de fechas de estilo calendario", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**To use a calendar style date picker ** click here to pop out your window.'" }, "sendFirefoxCustomDatePopoutMessage2": { @@ -1714,43 +1714,43 @@ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker **click here** to pop out your window.'" }, "sendFirefoxCustomDatePopoutMessage3": { - "message": "to pop out your window.", + "message": "para abrir la ventana.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker click here **to pop out your window.**'" }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "La fecha de caducidad proporcionada no es válida." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "La fecha de eliminación proporcionada no es válida." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Se requiere una fecha y hora de caducidad." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Se requiere una fecha y hora de eliminación." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Hubo un error al guardar las fechas de eliminación y caducidad." }, "hideEmail": { - "message": "Hide my email address from recipients." + "message": "Ocultar mi dirección de correo electrónico a los destinatarios." }, "sendOptionsPolicyInEffect": { - "message": "One or more organization policies are affecting your Send options." + "message": "Una o más políticas de organización están afectando sus opciones del Send." }, "passwordPrompt": { - "message": "Master password re-prompt" + "message": "Volver a preguntar contraseña maestra" }, "passwordConfirmation": { - "message": "Master password confirmation" + "message": "Confirmación de contraseña maestra" }, "passwordConfirmationDesc": { - "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + "message": "Esta acción está protegida. Para continuar, vuelva a introducir su contraseña maestra para verificar su identidad." }, "emailVerificationRequired": { - "message": "Email Verification Required" + "message": "Verificación de correo electrónico requerida" }, "emailVerificationRequiredDesc": { - "message": "You must verify your email to use this feature. You can verify your email in the web vault." + "message": "Debes verificar tu correo electrónico para usar esta función. Puedes verificar tu correo electrónico en la bóveda web." } } diff --git a/src/_locales/et/messages.json b/src/_locales/et/messages.json index 36f7e22210..ce445d6410 100644 --- a/src/_locales/et/messages.json +++ b/src/_locales/et/messages.json @@ -526,10 +526,10 @@ "description": "This is the folder for uncategorized items" }, "disableAddLoginNotification": { - "message": "Keela \"Lisa konto andmed\" märguanne" + "message": "Keela \"Lisa konto andmed\" teavitus" }, "addLoginNotificationDesc": { - "message": "\"Lisa konto andmed\" märguanne ilmub pärast esimest sisselogimist ning võimaldab Sul kontoandmeid automaatselt Bitwardenisse lisada." + "message": "\"Lisa konto andmed\" teavitus ilmub pärast esimest sisselogimist ning võimaldab kontoandmeid automaatselt Bitwardenisse lisada." }, "dontShowCardsCurrentTab": { "message": "Ära kuva \"Kaart\" vaates krediitkaardi andmeid" @@ -564,7 +564,7 @@ "message": "Keela Muudetud parooli teavitus" }, "disableChangedPasswordNotificationDesc": { - "message": "Kui mistahes veebilehel on toimunud parooli vahetamine, annab \"Muudetud parooli teavitus\" sulle märku, et vahetaksid selle ära ka Bitwardeni paroolihoidlas." + "message": "Kui mistahes veebilehel on toimunud parooli vahetamine, annab \"Muudetud parooli teavitus\" märku, et värskendaksid seda ka Bitwardeni paroolihoidlas." }, "notificationChangeDesc": { "message": "Soovid seda parooli ka Bitwardenis uuendada?" @@ -837,7 +837,7 @@ "message": "Kaheastmelise sisselogimise valikud" }, "recoveryCodeDesc": { - "message": "Sul ei ole ligipääsu ühelegi kaheastmelise kinnitamise teenusele? Kasuta Taastamise koodi, et kaheastmeline kinnitamine oma kontol välja lülitada." + "message": "Puudub ligipääs kaheastmelise kinnitamise teenusele? Kasuta Taastamise koodi, et kaheastmeline kinnitamine oma kontol välja lülitada." }, "recoveryCodeTitle": { "message": "Taastamise kood" @@ -933,7 +933,7 @@ "message": "Täida kontoandmed lehe laadimisel" }, "autoFillOnPageLoadNo": { - "message": "Ära täida kontoandmed lehe laadimisel" + "message": "Ära täida kontoandmeid lehe laadimisel" }, "commandOpenPopup": { "message": "Ava hoidla uues aknas" diff --git a/src/_locales/fi/messages.json b/src/_locales/fi/messages.json index 2e7e79d220..be496528da 100644 --- a/src/_locales/fi/messages.json +++ b/src/_locales/fi/messages.json @@ -1609,14 +1609,14 @@ "message": "Tiedosto, jonka haluat lähettää." }, "deletionDate": { - "message": "Poistopäivä" + "message": "Poistoajankohta" }, "deletionDateDesc": { - "message": "Send poistetaan pysyvästi määritettynä ajankohtana.", + "message": "Send poistuu pysyvästi määritettynä ajankohtana.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "Erääntymispäivä" + "message": "Erääntymisajankohta" }, "expirationDateDesc": { "message": "Jos määritetty, Send erääntyy määritettynä ajankohtana.", @@ -1718,19 +1718,19 @@ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker click here **to pop out your window.**'" }, "expirationDateIsInvalid": { - "message": "Asetettu erääntymismispäivä on virheellinen." + "message": "Määritetty erääntymismisajankohta on virheellinen." }, "deletionDateIsInvalid": { - "message": "Asetettu poistopäivä on virheellinen." + "message": "Määritetty poistoajankohta on virheellinen." }, "expirationDateAndTimeRequired": { - "message": "Viimeinen voimassaolopäivä ja aika vaaditaan." + "message": "Erääntymispäivä ja -aika vaaditaan." }, "deletionDateAndTimeRequired": { "message": "Poistopäivä ja -aika vaaditaan." }, "dateParsingError": { - "message": "Tapahtui virhe tallennettaessa poisto- ja erääntymispäiviä." + "message": "Tapahtui virhe tallennettaessa poisto- ja erääntymisajankohtia." }, "hideEmail": { "message": "Piilota sähköpostiosoitteeni vastaanottajilta." diff --git a/src/_locales/fil/messages.json b/src/_locales/fil/messages.json new file mode 100644 index 0000000000..e42b3f0817 --- /dev/null +++ b/src/_locales/fil/messages.json @@ -0,0 +1,1756 @@ +{ + "appName": { + "message": "Bitwarden" + }, + "extName": { + "message": "Bitwarden - Free Password Manager", + "description": "Extension name, MUST be less than 40 characters (Safari restriction)" + }, + "extDesc": { + "message": "A secure and free password manager for all of your devices.", + "description": "Extension description" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "Create Account" + }, + "login": { + "message": "Log In" + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "cancel": { + "message": "Cancel" + }, + "close": { + "message": "Close" + }, + "submit": { + "message": "Submit" + }, + "emailAddress": { + "message": "Email Address" + }, + "masterPass": { + "message": "Master Password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type Master Password" + }, + "masterPassHint": { + "message": "Master Password Hint (optional)" + }, + "tab": { + "message": "Tab" + }, + "myVault": { + "message": "My Vault" + }, + "tools": { + "message": "Tools" + }, + "settings": { + "message": "Settings" + }, + "currentTab": { + "message": "Current Tab" + }, + "copyPassword": { + "message": "Copy Password" + }, + "copyNote": { + "message": "Copy Note" + }, + "copyUri": { + "message": "Copy URI" + }, + "copyUsername": { + "message": "Copy Username" + }, + "copyNumber": { + "message": "Copy Number" + }, + "copySecurityCode": { + "message": "Copy Security Code" + }, + "autoFill": { + "message": "Auto-fill" + }, + "generatePasswordCopied": { + "message": "Generate Password (copied)" + }, + "noMatchingLogins": { + "message": "No matching logins." + }, + "vaultLocked": { + "message": "Vault is locked." + }, + "vaultLoggedOut": { + "message": "Vault is logged out." + }, + "autoFillInfo": { + "message": "There are no logins available to auto-fill for the current browser tab." + }, + "addLogin": { + "message": "Add a Login" + }, + "addItem": { + "message": "Add Item" + }, + "passwordHint": { + "message": "Password Hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "continue": { + "message": "Continue" + }, + "verificationCode": { + "message": "Verification Code" + }, + "account": { + "message": "Account" + }, + "changeMasterPassword": { + "message": "Change Master Password" + }, + "fingerprintPhrase": { + "message": "Fingerprint Phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "twoStepLogin": { + "message": "Two-step Login" + }, + "logOut": { + "message": "Log Out" + }, + "about": { + "message": "About" + }, + "version": { + "message": "Version" + }, + "save": { + "message": "Save" + }, + "move": { + "message": "Move" + }, + "addFolder": { + "message": "Add Folder" + }, + "name": { + "message": "Name" + }, + "editFolder": { + "message": "Edit Folder" + }, + "deleteFolder": { + "message": "Delete Folder" + }, + "folders": { + "message": "Folders" + }, + "noFolders": { + "message": "There are no folders to list." + }, + "helpFeedback": { + "message": "Help & Feedback" + }, + "sync": { + "message": "Sync" + }, + "syncVaultNow": { + "message": "Sync Vault Now" + }, + "lastSync": { + "message": "Last Sync:" + }, + "passGen": { + "message": "Password Generator" + }, + "generator": { + "message": "Generator", + "description": "Short for 'Password Generator'." + }, + "passGenInfo": { + "message": "Automatically generate strong, unique passwords for your logins." + }, + "bitWebVault": { + "message": "Bitwarden Web Vault" + }, + "importItems": { + "message": "Import Items" + }, + "select": { + "message": "Select" + }, + "generatePassword": { + "message": "Generate Password" + }, + "regeneratePassword": { + "message": "Regenerate Password" + }, + "options": { + "message": "Options" + }, + "length": { + "message": "Length" + }, + "numWords": { + "message": "Number of Words" + }, + "wordSeparator": { + "message": "Word Separator" + }, + "capitalize": { + "message": "Capitalize", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include Number" + }, + "minNumbers": { + "message": "Minimum Numbers" + }, + "minSpecial": { + "message": "Minimum Special" + }, + "avoidAmbChar": { + "message": "Avoid Ambiguous Characters" + }, + "searchVault": { + "message": "Search vault" + }, + "edit": { + "message": "Edit" + }, + "view": { + "message": "View" + }, + "noItemsInList": { + "message": "There are no items to list." + }, + "itemInformation": { + "message": "Item Information" + }, + "username": { + "message": "Username" + }, + "password": { + "message": "Password" + }, + "passphrase": { + "message": "Passphrase" + }, + "favorite": { + "message": "Favorite" + }, + "notes": { + "message": "Notes" + }, + "note": { + "message": "Note" + }, + "editItem": { + "message": "Edit Item" + }, + "folder": { + "message": "Folder" + }, + "deleteItem": { + "message": "Delete Item" + }, + "viewItem": { + "message": "View Item" + }, + "launch": { + "message": "Launch" + }, + "website": { + "message": "Website" + }, + "toggleVisibility": { + "message": "Toggle Visibility" + }, + "manage": { + "message": "Manage" + }, + "other": { + "message": "Other" + }, + "rateExtension": { + "message": "Rate the Extension" + }, + "rateExtensionDesc": { + "message": "Please consider helping us out with a good review!" + }, + "browserNotSupportClipboard": { + "message": "Your web browser does not support easy clipboard copying. Copy it manually instead." + }, + "verifyMasterPassword": { + "message": "Verify Master Password" + }, + "yourVaultIsLocked": { + "message": "Your vault is locked. Verify your master password to continue." + }, + "unlock": { + "message": "Unlock" + }, + "loggedInAsOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "lockNow": { + "message": "Lock Now" + }, + "immediately": { + "message": "Immediately" + }, + "tenSeconds": { + "message": "10 seconds" + }, + "twentySeconds": { + "message": "20 seconds" + }, + "thirtySeconds": { + "message": "30 seconds" + }, + "oneMinute": { + "message": "1 minute" + }, + "twoMinutes": { + "message": "2 minutes" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onLocked": { + "message": "On System Lock" + }, + "onRestart": { + "message": "On Browser Restart" + }, + "never": { + "message": "Never" + }, + "security": { + "message": "Security" + }, + "errorOccurred": { + "message": "An error has occurred" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "valueCopied": { + "message": "$VALUE$ copied", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "autofillError": { + "message": "Unable to auto-fill the selected item on this page. Copy and paste the information instead." + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "yes": { + "message": "Yes" + }, + "no": { + "message": "No" + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "nameRequired": { + "message": "Name is required." + }, + "addedFolder": { + "message": "Added folder" + }, + "changeMasterPass": { + "message": "Change Master Password" + }, + "changeMasterPasswordConfirmation": { + "message": "You can change your master password on the bitwarden.com web vault. Do you want to visit the website now?" + }, + "twoStepLoginConfirmation": { + "message": "Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "gettingStartedTutorial": { + "message": "Getting Started Tutorial" + }, + "gettingStartedTutorialVideo": { + "message": "Watch our getting started tutorial to learn how to get the most out of the browser extension." + }, + "syncingComplete": { + "message": "Syncing complete" + }, + "syncingFailed": { + "message": "Syncing failed" + }, + "passwordCopied": { + "message": "Password copied" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "New URI" + }, + "addedItem": { + "message": "Added item" + }, + "editedItem": { + "message": "Edited item" + }, + "deleteItemConfirmation": { + "message": "Do you really want to send to the trash?" + }, + "deletedItem": { + "message": "Sent item to trash" + }, + "overwritePassword": { + "message": "Overwrite Password" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "searchFolder": { + "message": "Search folder" + }, + "searchCollection": { + "message": "Search collection" + }, + "searchType": { + "message": "Search type" + }, + "noneFolder": { + "message": "No Folder", + "description": "This is the folder for uncategorized items" + }, + "disableAddLoginNotification": { + "message": "Disable Add Login Notification" + }, + "addLoginNotificationDesc": { + "message": "The \"Add Login Notification\" automatically prompts you to save new logins to your vault whenever you log into them for the first time." + }, + "dontShowCardsCurrentTab": { + "message": "Don't Show Cards on Tab Page" + }, + "dontShowCardsCurrentTabDesc": { + "message": "Card items from your vault are listed on the 'Current Tab' page for easy auto-fill access." + }, + "dontShowIdentitiesCurrentTab": { + "message": "Don't Show Identities on Tab Page" + }, + "dontShowIdentitiesCurrentTabDesc": { + "message": "Identity items from your vault are listed on the 'Current Tab' page for easy auto-fill access." + }, + "clearClipboard": { + "message": "Clear Clipboard", + "description": "Clipboard is the operating system thing where you copy/paste data to on your device." + }, + "clearClipboardDesc": { + "message": "Automatically clear copied values from your clipboard.", + "description": "Clipboard is the operating system thing where you copy/paste data to on your device." + }, + "notificationAddDesc": { + "message": "Should Bitwarden remember this password for you?" + }, + "notificationAddSave": { + "message": "Yes, Save Now" + }, + "notificationNeverSave": { + "message": "Never for this website" + }, + "disableChangedPasswordNotification": { + "message": "Disable Changed Password Notification" + }, + "disableChangedPasswordNotificationDesc": { + "message": "The \"Changed Password Notification\" automatically prompts you to update a login's password in your vault whenever it detects that you have changed it on a website." + }, + "notificationChangeDesc": { + "message": "Do you want to update this password in Bitwarden?" + }, + "notificationChangeSave": { + "message": "Yes, Update Now" + }, + "disableContextMenuItem": { + "message": "Disable Context Menu Options" + }, + "disableContextMenuItemDesc": { + "message": "Context menu options provide quick access to password generation and logins for the website in your current tab." + }, + "defaultUriMatchDetection": { + "message": "Default URI Match Detection", + "description": "Default URI match detection for auto-fill." + }, + "defaultUriMatchDetectionDesc": { + "message": "Choose the default way that URI match detection is handled for logins when performing actions such as auto-fill." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Change the application's color theme." + }, + "dark": { + "message": "Dark", + "description": "Dark color" + }, + "light": { + "message": "Light", + "description": "Light color" + }, + "solarizedDark": { + "message": "Solarized Dark", + "description": "'Solarized' is a noun and the name of a color scheme. It should not be translated." + }, + "exportVault": { + "message": "Export Vault" + }, + "fileFormat": { + "message": "File Format" + }, + "warning": { + "message": "WARNING", + "description": "WARNING (should stay in capitalized letters if the language permits)" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "exportMasterPassword": { + "message": "Enter your master password to export your vault data." + }, + "shared": { + "message": "Shared" + }, + "learnOrg": { + "message": "Learn about Organizations" + }, + "learnOrgConfirmation": { + "message": "Bitwarden allows you to share your vault items with others by using an organization. Would you like to visit the bitwarden.com website to learn more?" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "share": { + "message": "Share" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "learnMore": { + "message": "Learn more" + }, + "authenticatorKeyTotp": { + "message": "Authenticator Key (TOTP)" + }, + "verificationCodeTotp": { + "message": "Verification Code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy Verification Code" + }, + "attachments": { + "message": "Attachments" + }, + "deleteAttachment": { + "message": "Delete attachment" + }, + "deleteAttachmentConfirmation": { + "message": "Are you sure you want to delete this attachment?" + }, + "deletedAttachment": { + "message": "Deleted attachment" + }, + "newAttachment": { + "message": "Add New Attachment" + }, + "noAttachments": { + "message": "No attachments." + }, + "attachmentSaved": { + "message": "The attachment has been saved." + }, + "file": { + "message": "File" + }, + "selectFile": { + "message": "Select a file." + }, + "maxFileSize": { + "message": "Maximum file size is 500 MB." + }, + "featureUnavailable": { + "message": "Feature Unavailable" + }, + "updateKey": { + "message": "You cannot use this feature until you update your encryption key." + }, + "premiumMembership": { + "message": "Premium Membership" + }, + "premiumManage": { + "message": "Manage Membership" + }, + "premiumManageAlert": { + "message": "You can manage your membership on the bitwarden.com web vault. Do you want to visit the website now?" + }, + "premiumRefresh": { + "message": "Refresh Membership" + }, + "premiumNotCurrentMember": { + "message": "You are not currently a premium member." + }, + "premiumSignUpAndGet": { + "message": "Sign up for a premium membership and get:" + }, + "ppremiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "ppremiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "ppremiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "ppremiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "ppremiumSignUpSupport": { + "message": "Priority customer support." + }, + "ppremiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPurchase": { + "message": "Purchase Premium" + }, + "premiumPurchaseAlert": { + "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" + }, + "premiumCurrentMember": { + "message": "You are a premium member!" + }, + "premiumCurrentMemberThanks": { + "message": "Thank you for supporting Bitwarden." + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "refreshComplete": { + "message": "Refresh complete" + }, + "disableAutoTotpCopy": { + "message": "Disable Automatic TOTP Copy" + }, + "disableAutoTotpCopyDesc": { + "message": "If your login has an authenticator key attached to it, the TOTP verification code is automatically copied to your clipboard whenever you auto-fill the login." + }, + "premiumRequired": { + "message": "Premium Required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Remember me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Use another two-step login method" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "webAuthnNewTab": { + "message": "To start the WebAuthn 2FA verification. Click the button below to open a new tab and follow the instructions provided in the new tab." + }, + "webAuthnNewTabOpen": { + "message": "Open new tab" + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "loginUnavailable": { + "message": "Login Unavailable" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." + }, + "noTwoStepProviders2": { + "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + }, + "twoStepOptions": { + "message": "Two-step Login Options" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Recovery Code" + }, + "authenticatorAppTitle": { + "message": "Authenticator App" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4, 4 Nano, 4C, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "selfHostedEnvironment": { + "message": "Self-hosted Environment" + }, + "selfHostedEnvironmentFooter": { + "message": "Specify the base URL of your on-premises hosted Bitwarden installation." + }, + "customEnvironment": { + "message": "Custom Environment" + }, + "customEnvironmentFooter": { + "message": "For advanced users. You can specify the base URL of each service independently." + }, + "baseUrl": { + "message": "Server URL" + }, + "apiUrl": { + "message": "API Server URL" + }, + "webVaultUrl": { + "message": "Web Vault Server URL" + }, + "identityUrl": { + "message": "Identity Server URL" + }, + "notificationsUrl": { + "message": "Notifications Server URL" + }, + "iconsUrl": { + "message": "Icons Server URL" + }, + "environmentSaved": { + "message": "The environment URLs have been saved." + }, + "enableAutoFillOnPageLoad": { + "message": "Enable Auto-fill on Page Load" + }, + "enableAutoFillOnPageLoadDesc": { + "message": "If a login form is detected, automatically perform an auto-fill when the web page loads." + }, + "experimentalFeature": { + "message": "This is currently an experimental feature. Use at your own risk." + }, + "defaultAutoFillOnPageLoad": { + "message": "Default autofill setting for login items" + }, + "defaultAutoFillOnPageLoadDesc": { + "message": "After enabling Auto-fill on Page Load, you can enable or disable the feature for individual login items. This is the default setting for login items that are not separately configured." + }, + "itemAutoFillOnPageLoad": { + "message": "Auto-fill on Page Load (if enabled in Options)" + }, + "autoFillOnPageLoadUseDefault": { + "message": "Use default setting" + }, + "autoFillOnPageLoadYes": { + "message": "Auto-fill on page load" + }, + "autoFillOnPageLoadNo": { + "message": "Do not auto-fill on page load" + }, + "commandOpenPopup": { + "message": "Open vault popup" + }, + "commandOpenSidebar": { + "message": "Open vault in sidebar" + }, + "commandAutofillDesc": { + "message": "Auto-fill the last used login for the current website" + }, + "commandGeneratePasswordDesc": { + "message": "Generate and copy a new random password to the clipboard" + }, + "commandLockVaultDesc": { + "message": "Lock the vault" + }, + "privateModeMessage": { + "message": "Unfortunately this window is not available in private mode for this browser." + }, + "customFields": { + "message": "Custom Fields" + }, + "copyValue": { + "message": "Copy Value" + }, + "value": { + "message": "Value" + }, + "newCustomField": { + "message": "New Custom Field" + }, + "dragToSort": { + "message": "Drag to sort" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Hidden" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "popup2faCloseMessage": { + "message": "Clicking outside the popup window to check your email for your verification code will cause this popup to close. Do you want to open this popup in a new window so that it does not close?" + }, + "popupU2fCloseMessage": { + "message": "This browser cannot process U2F requests in this popup window. Do you want to open this popup in a new window so that you can log in using U2F?" + }, + "disableFavicon": { + "message": "Disable Website Icons" + }, + "disableFaviconDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "disableBadgeCounter": { + "message": "Disable Badge Counter" + }, + "disableBadgeCounterDesc": { + "message": "Badge counter indicates how many logins you have for the current page in your vault." + }, + "cardholderName": { + "message": "Cardholder Name" + }, + "number": { + "message": "Number" + }, + "brand": { + "message": "Brand" + }, + "expirationMonth": { + "message": "Expiration Month" + }, + "expirationYear": { + "message": "Expiration Year" + }, + "expiration": { + "message": "Expiration" + }, + "january": { + "message": "January" + }, + "february": { + "message": "February" + }, + "march": { + "message": "March" + }, + "april": { + "message": "April" + }, + "may": { + "message": "May" + }, + "june": { + "message": "June" + }, + "july": { + "message": "July" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "October" + }, + "november": { + "message": "November" + }, + "december": { + "message": "December" + }, + "securityCode": { + "message": "Security Code" + }, + "ex": { + "message": "ex." + }, + "title": { + "message": "Title" + }, + "mr": { + "message": "Mr" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "firstName": { + "message": "First Name" + }, + "middleName": { + "message": "Middle Name" + }, + "lastName": { + "message": "Last Name" + }, + "identityName": { + "message": "Identity Name" + }, + "company": { + "message": "Company" + }, + "ssn": { + "message": "Social Security Number" + }, + "passportNumber": { + "message": "Passport Number" + }, + "licenseNumber": { + "message": "License Number" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Phone" + }, + "address": { + "message": "Address" + }, + "address1": { + "message": "Address 1" + }, + "address2": { + "message": "Address 2" + }, + "address3": { + "message": "Address 3" + }, + "cityTown": { + "message": "City / Town" + }, + "stateProvince": { + "message": "State / Province" + }, + "zipPostalCode": { + "message": "Zip / Postal Code" + }, + "country": { + "message": "Country" + }, + "type": { + "message": "Type" + }, + "typeLogin": { + "message": "Login" + }, + "typeLogins": { + "message": "Logins" + }, + "typeSecureNote": { + "message": "Secure Note" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "Identity" + }, + "passwordHistory": { + "message": "Password History" + }, + "back": { + "message": "Back" + }, + "collections": { + "message": "Collections" + }, + "favorites": { + "message": "Favorites" + }, + "popOutNewWindow": { + "message": "Pop out to a new window" + }, + "refresh": { + "message": "Refresh" + }, + "cards": { + "message": "Cards" + }, + "identities": { + "message": "Identities" + }, + "logins": { + "message": "Logins" + }, + "secureNotes": { + "message": "Secure Notes" + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "baseDomain": { + "message": "Base domain" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Starts with" + }, + "regEx": { + "message": "Regular expression", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match Detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "toggleOptions": { + "message": "Toggle Options" + }, + "toggleCurrentUris": { + "message": "Toggle Current URIs", + "description": "Toggle the display of the URIs of the currently open tabs in the browser." + }, + "currentUri": { + "message": "Current URI", + "description": "The URI of one of the current open tabs in the browser." + }, + "organization": { + "message": "Organization", + "description": "An entity of multiple related people (ex. a team or business organization)." + }, + "types": { + "message": "Types" + }, + "allItems": { + "message": "All Items" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "remove": { + "message": "Remove" + }, + "default": { + "message": "Default" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "neverLockWarning": { + "message": "Are you sure you want to use the \"Never\" option? Setting your lock options to \"Never\" stores your vault's encryption key on your device. If you use this option you should ensure that you keep your device properly protected." + }, + "noOrganizationsList": { + "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "pin": { + "message": "PIN", + "description": "PIN code. Ex. The short code (often numeric) that you use to unlock a device." + }, + "unlockWithPin": { + "message": "Unlock with PIN" + }, + "setYourPinCode": { + "message": "Set your PIN code for unlocking Bitwarden. Your PIN settings will be reset if you ever fully log out of the application." + }, + "pinRequired": { + "message": "PIN code is required." + }, + "invalidPin": { + "message": "Invalid PIN code." + }, + "verifyPin": { + "message": "Verify PIN" + }, + "yourVaultIsLockedPinCode": { + "message": "Your vault is locked. Verify your PIN code to continue." + }, + "unlockWithBiometrics": { + "message": "Unlock with biometrics" + }, + "awaitDesktop": { + "message": "Awaiting confirmation from desktop" + }, + "awaitDesktopDesc": { + "message": "Please confirm using biometrics in the Bitwarden Desktop application to enable biometrics for browser." + }, + "lockWithMasterPassOnRestart": { + "message": "Lock with master password on browser restart" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "cloneItem": { + "message": "Clone Item" + }, + "clone": { + "message": "Clone" + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Trash", + "description": "Noun: a special folder to hold deleted items" + }, + "searchTrash": { + "message": "Search trash" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoredItem": { + "message": "Restored Item" + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "autoFillAndSave": { + "message": "Auto-fill and Save" + }, + "autoFillSuccessAndSavedUri": { + "message": "Auto-filled Item and Saved URI" + }, + "autoFillSuccess": { + "message": "Auto-filled Item" + }, + "setMasterPassword": { + "message": "Set Master Password" + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "ok": { + "message": "Ok" + }, + "desktopSyncVerificationTitle": { + "message": "Desktop sync verification" + }, + "desktopIntegrationVerificationText": { + "message": "Please verify that the desktop application shows this fingerprint: " + }, + "desktopIntegrationDisabledTitle": { + "message": "Browser integration is not enabled" + }, + "desktopIntegrationDisabledDesc": { + "message": "Browser integration is not enabled in the Bitwarden Desktop application. Please enable it in the settings within the desktop application." + }, + "startDesktopTitle": { + "message": "Start the Bitwarden Desktop application" + }, + "startDesktopDesc": { + "message": "The Bitwarden Desktop application needs to be started before this function can be used." + }, + "errorEnableBiometricTitle": { + "message": "Unable to enable biometrics" + }, + "errorEnableBiometricDesc": { + "message": "Action was canceled by the desktop application" + }, + "nativeMessagingInvalidEncryptionDesc": { + "message": "Desktop application invalidated the secure communication channel. Please retry this operation" + }, + "nativeMessagingInvalidEncryptionTitle": { + "message": "Desktop communication interrupted" + }, + "nativeMessagingWrongUserDesc": { + "message": "The desktop application is logged into a different account. Please ensure both applications are logged into the same account." + }, + "nativeMessagingWrongUserTitle": { + "message": "Account missmatch" + }, + "biometricsNotEnabledTitle": { + "message": "Biometrics not enabled" + }, + "biometricsNotEnabledDesc": { + "message": "Browser biometrics requires desktop biometric to be enabled in the settings first." + }, + "biometricsNotSupportedTitle": { + "message": "Biometrics not supported" + }, + "biometricsNotSupportedDesc": { + "message": "Browser biometrics is not supported on this device." + }, + "nativeMessaginPermissionErrorTitle": { + "message": "Permission not provided" + }, + "nativeMessaginPermissionErrorDesc": { + "message": "Without permission to communicate with the Bitwarden Desktop Application we cannot provide biometrics in the browser extension. Please try again." + }, + "nativeMessaginPermissionSidebarTitle": { + "message": "Permission request error" + }, + "nativeMessaginPermissionSidebarDesc": { + "message": "This action cannot be done in the sidebar, please retry the action in the popup or popout." + }, + "personalOwnershipSubmitError": { + "message": "Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "excludedDomains": { + "message": "Excluded Domains" + }, + "excludedDomainsDesc": { + "message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect." + }, + "excludedDomainsInvalidDomain": { + "message": "$DOMAIN$ is not a valid domain", + "placeholders": { + "domain": { + "content": "$1", + "example": "googlecom" + } + } + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "addSend": { + "message": "Add Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTypeText": { + "message": "Text" + }, + "sendTypeFile": { + "message": "File" + }, + "allSends": { + "message": "All Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCountReached": { + "message": "Max access count reached" + }, + "expired": { + "message": "Expired" + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "passwordProtected": { + "message": "Password protected" + }, + "copySendLink": { + "message": "Copy Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "delete": { + "message": "Delete" + }, + "removedPassword": { + "message": "Removed Password" + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTypeHeader": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "2" + } + } + }, + "custom": { + "message": "Custom" + }, + "maximumAccessCount": { + "message": "Maximum Access Count" + }, + "maximumAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisableDesc": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendShareDesc": { + "message": "Copy this Send's link to clipboard upon save.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendHideText": { + "message": "Hide this Send's text by default.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "newPassword": { + "message": "New Password" + }, + "sendDisabled": { + "message": "Send Disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendLinuxChromiumFileWarning": { + "message": "In order to choose a file, open the extension in the sidebar (if possible) or pop out to a new window by clicking this banner." + }, + "sendFirefoxFileWarning": { + "message": "In order to choose a file using Firefox, open the extension in the sidebar or pop out to a new window by clicking this banner." + }, + "sendSafariFileWarning": { + "message": "In order to choose a file using Safari, pop out to a new window by clicking this banner." + }, + "sendFileCalloutHeader": { + "message": "Before you start" + }, + "sendFirefoxCustomDatePopoutMessage1": { + "message": "To use a calendar style date picker", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**To use a calendar style date picker ** click here to pop out your window.'" + }, + "sendFirefoxCustomDatePopoutMessage2": { + "message": "click here", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker **click here** to pop out your window.'" + }, + "sendFirefoxCustomDatePopoutMessage3": { + "message": "to pop out your window.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker click here **to pop out your window.**'" + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "sendOptionsPolicyInEffect": { + "message": "One or more organization policies are affecting your Send options." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature. You can verify your email in the web vault." + } +} diff --git a/src/_locales/fr/messages.json b/src/_locales/fr/messages.json index 50d0c678c3..4ee5ce6a95 100644 --- a/src/_locales/fr/messages.json +++ b/src/_locales/fr/messages.json @@ -151,7 +151,7 @@ "message": "Enregistrer" }, "move": { - "message": "Move" + "message": "Se déplacer" }, "addFolder": { "message": "Ajouter un dossier" @@ -632,19 +632,19 @@ "message": "Partagé" }, "learnOrg": { - "message": "Learn about Organizations" + "message": "En savoir plus sur les organisations" }, "learnOrgConfirmation": { - "message": "Bitwarden allows you to share your vault items with others by using an organization. Would you like to visit the bitwarden.com website to learn more?" + "message": "Bitwarden vous permet de partager des éléments de votre coffre avec d'autres personnes en utilisant un compte d'organisation. Souhaitez-vous visiter le site web bitwarden.com pour en savoir plus ?" }, "moveToOrganization": { - "message": "Move to Organization" + "message": "Déplacer vers l'organisation" }, "share": { "message": "Partager" }, "movedItemToOrg": { - "message": "$ITEMNAME$ moved to $ORGNAME$", + "message": "$ITEMNAME$ a été déplacé vers $ORGNAME$", "placeholders": { "itemname": { "content": "$1", @@ -657,7 +657,7 @@ } }, "moveToOrgDesc": { - "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + "message": "Choisissez une organisation vers laquelle vous souhaitez déplacer cet élément. Déplacer un élément vers une organisation transfère la propriété de l'élément à cette organisation. Vous ne serez plus le propriétaire direct de cet élément une fois qu'il aura été déplacé." }, "learnMore": { "message": "En savoir plus" @@ -816,10 +816,10 @@ "message": "Insérez votre clé de sécurité dans le port USB de votre ordinateur. S'il dispose d'un bouton, appuyez dessus." }, "webAuthnNewTab": { - "message": "Poursuivez la vérification 2FA WebAuthn dans le nouvel onglet." + "message": "Pour démarrer la vérification 2FA WebAuthn, cliquez sur le bouton ci-dessous et suivez les instructions dans le nouvel onglet." }, "webAuthnNewTabOpen": { - "message": "Open new tab" + "message": "Ouvrir un nouvel onglet" }, "webAuthnAuthenticate": { "message": "Authentifier WebAuthn" @@ -909,7 +909,7 @@ "message": "Les URLs d'environnement ont été enregistrées." }, "enableAutoFillOnPageLoad": { - "message": "Activer l’auto-complétion au chargement de la page" + "message": "Activer le remplissage automatique au chargement de la page" }, "enableAutoFillOnPageLoadDesc": { "message": "Si un formulaire de connexion est détecté, remplir automatiquement les champs au chargement de la page web." @@ -918,22 +918,22 @@ "message": "Ceci est actuellement une fonctionnalité expérimentale. À utiliser avec prudence." }, "defaultAutoFillOnPageLoad": { - "message": "Default autofill setting for login items" + "message": "Paramètre de saisie automatique par défaut pour les identifiants" }, "defaultAutoFillOnPageLoadDesc": { - "message": "After enabling Auto-fill on Page Load, you can enable or disable the feature for individual login items. This is the default setting for login items that are not separately configured." + "message": "Après avoir activé le remplissage automatique au chargement de la page, vous pourrez activer ou désactiver la fonctionnalité pour chaque identifiant. Ceci est le paramètre par défaut pour les identifiants qui ne sont pas configurés individuellement." }, "itemAutoFillOnPageLoad": { - "message": "Auto-fill on Page Load (if enabled in Options)" + "message": "Remplissage automatique au chargement de la page (si activé dans les options)" }, "autoFillOnPageLoadUseDefault": { - "message": "Use default setting" + "message": "Utiliser le paramètre par défaut" }, "autoFillOnPageLoadYes": { - "message": "Auto-fill on page load" + "message": "Remplissage automatique au chargement de la page" }, "autoFillOnPageLoadNo": { - "message": "Do not auto-fill on page load" + "message": "Ne pas remplir automatiquement au chargement de la page" }, "commandOpenPopup": { "message": "Ouvrir la popup du coffre" @@ -1748,9 +1748,9 @@ "message": "Cette action est protégée. Pour continuer, veuillez ressaisir votre mot de passe maître pour vérifier votre identité." }, "emailVerificationRequired": { - "message": "Email Verification Required" + "message": "Vérification de l'adresse e-mail nécessaire" }, "emailVerificationRequiredDesc": { - "message": "You must verify your email to use this feature. You can verify your email in the web vault." + "message": "Vous devez vérifier votre adresse e-mail pour utiliser cette fonctionnalité. Vous pouvez vérifier votre adresse e-mail dans le coffre web." } } diff --git a/src/_locales/he/messages.json b/src/_locales/he/messages.json index dc06d216e0..8299597d27 100644 --- a/src/_locales/he/messages.json +++ b/src/_locales/he/messages.json @@ -644,7 +644,7 @@ "message": "שתף" }, "movedItemToOrg": { - "message": "$ITEMNAME$ moved to $ORGNAME$", + "message": "$ITEMNAME$ הועבר ל- $ORGNAME$", "placeholders": { "itemname": { "content": "$1", @@ -918,19 +918,19 @@ "message": "זוהי אופציה נסיונית. השימוש באופציה זו על אחריותך." }, "defaultAutoFillOnPageLoad": { - "message": "Default autofill setting for login items" + "message": "הגדרת ברירת מחדל למילוי אוטומטי של פרטי התחברות" }, "defaultAutoFillOnPageLoadDesc": { - "message": "After enabling Auto-fill on Page Load, you can enable or disable the feature for individual login items. This is the default setting for login items that are not separately configured." + "message": "לאחר הפעלת מילוי אוטומטי של פרטים בעת טעינת דפים, אפשר להפעיל או לכבות את האפשרות לפרטי התחברות ספציפיים. זו הגדרת ברירת המחדל לפרטי התחברות שלא הוגדרו בנפרד." }, "itemAutoFillOnPageLoad": { - "message": "Auto-fill on Page Load (if enabled in Options)" + "message": "מילוי אוטומטי בעת טעינת דפים (אם מופעל בהגדרות)" }, "autoFillOnPageLoadUseDefault": { - "message": "Use default setting" + "message": "שימוש בהגדרות ברירת המחדל" }, "autoFillOnPageLoadYes": { - "message": "Auto-fill on page load" + "message": "מילוי אוטומטי אחרי טעינת דפים" }, "autoFillOnPageLoadNo": { "message": "Do not auto-fill on page load" diff --git a/src/_locales/hi/messages.json b/src/_locales/hi/messages.json index 65f8ae7915..bf7b72e828 100644 --- a/src/_locales/hi/messages.json +++ b/src/_locales/hi/messages.json @@ -492,34 +492,34 @@ } }, "newUri": { - "message": "New URI" + "message": "नया URI" }, "addedItem": { - "message": "Added item" + "message": "जोड़ा गया आइटम" }, "editedItem": { "message": "संपादित आइटम " }, "deleteItemConfirmation": { - "message": "Do you really want to send to the trash?" + "message": "क्या आप वास्तव में कचरे में भेजना चाहते हैं?" }, "deletedItem": { - "message": "Sent item to trash" + "message": "कचरा में भेजे" }, "overwritePassword": { "message": "Overwrite Password" }, "overwritePasswordConfirmation": { - "message": "Are you sure you want to overwrite the current password?" + "message": "क्या आप सुनिश्चित हैं कि आप वर्तमान पासवर्ड को ओवरराइट करना चाहते हैं?" }, "searchFolder": { - "message": "Search folder" + "message": "फोल्डर में खोजें" }, "searchCollection": { - "message": "Search collection" + "message": "श्रेणी खोजें" }, "searchType": { - "message": "Search type" + "message": "तलाश की विधि" }, "noneFolder": { "message": "No Folder", @@ -544,11 +544,11 @@ "message": "Identity items from your vault are listed on the 'Current Tab' page for easy auto-fill access." }, "clearClipboard": { - "message": "Clear Clipboard", + "message": "क्लिपबोर्ड खाली करें", "description": "Clipboard is the operating system thing where you copy/paste data to on your device." }, "clearClipboardDesc": { - "message": "Automatically clear copied values from your clipboard.", + "message": "स्वचालित रूप से अपने क्लिपबोर्ड से कॉपी की गई मानों को साफ़ करें।", "description": "Clipboard is the operating system thing where you copy/paste data to on your device." }, "notificationAddDesc": { @@ -558,7 +558,7 @@ "message": "Yes, Save Now" }, "notificationNeverSave": { - "message": "Never for this website" + "message": "इस वेबसाइट के लिए कभी नहीं" }, "disableChangedPasswordNotification": { "message": "Disable Changed Password Notification" @@ -567,7 +567,7 @@ "message": "The \"Changed Password Notification\" automatically prompts you to update a login's password in your vault whenever it detects that you have changed it on a website." }, "notificationChangeDesc": { - "message": "Do you want to update this password in Bitwarden?" + "message": "क्या आप बिटवर्डन में इस पासवर्ड को अपडेट करना चाहते हैं?" }, "notificationChangeSave": { "message": "Yes, Update Now" @@ -576,31 +576,31 @@ "message": "Disable Context Menu Options" }, "disableContextMenuItemDesc": { - "message": "Context menu options provide quick access to password generation and logins for the website in your current tab." + "message": "संदर्भ मेनू विकल्प आपके वर्तमान टैब में वेबसाइट के लिए पासवर्ड जनरेशन और लॉगिन तक त्वरित पहुंच प्रदान करते हैं।" }, "defaultUriMatchDetection": { - "message": "Default URI Match Detection", + "message": "डिफॉल्ट URI मैच डिटेक्शन", "description": "Default URI match detection for auto-fill." }, "defaultUriMatchDetectionDesc": { - "message": "Choose the default way that URI match detection is handled for logins when performing actions such as auto-fill." + "message": "ऑटो-फिल जैसे कार्यों को करते समय लॉगिन के लिए URI मैच डिटेक्शन को संभाले जाने का डिफ़ॉल्ट तरीका चुनें। " }, "theme": { - "message": "Theme" + "message": "थीम" }, "themeDesc": { "message": "Change the application's color theme." }, "dark": { - "message": "Dark", + "message": "अंधेरा", "description": "Dark color" }, "light": { - "message": "Light", + "message": "प्रकाश", "description": "Light color" }, "solarizedDark": { - "message": "Solarized Dark", + "message": "सौरीकृत अंधेरा", "description": "'Solarized' is a noun and the name of a color scheme. It should not be translated." }, "exportVault": { @@ -610,41 +610,41 @@ "message": "File Format" }, "warning": { - "message": "WARNING", + "message": "चेतावनी", "description": "WARNING (should stay in capitalized letters if the language permits)" }, "confirmVaultExport": { - "message": "Confirm Vault Export" + "message": "वॉल्ट निर्यात की पुष्टि करें" }, "exportWarningDesc": { "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "यह आपके खाते की एन्क्रिप्शन कुंजी का उपयोग करके आपके डेटा को एन्क्रिप्ट करता है।यदि आप कभी भी अपने खाते की एन्क्रिप्शन कुंजी को खोते हैं तो आपको फिर से निर्यात करना चाहिए क्योंकि आप इस निर्यात फ़ाइल को डिक्रिप्ट करने में सक्षम नहीं होंगे।" }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "खाता एन्क्रिप्शन कुंजी प्रत्येक बिटवर्डन उपयोगकर्ता खाते के लिए अद्वितीय हैं, इसलिए आप एन्क्रिप्टेड निर्यात को किसी अन्य खाते में आयात नहीं कर सकते हैं।" }, "exportMasterPassword": { - "message": "Enter your master password to export your vault data." + "message": "अपने वॉल्ट डेटा को निर्यात करने के लिए अपना मास्टर पासवर्ड दर्ज करें।" }, "shared": { - "message": "Shared" + "message": "साझा किया गया" }, "learnOrg": { - "message": "Learn about Organizations" + "message": "संगठनों के बारे में जानें" }, "learnOrgConfirmation": { - "message": "Bitwarden allows you to share your vault items with others by using an organization. Would you like to visit the bitwarden.com website to learn more?" + "message": "बिटवर्डन आपको एक संगठन का उपयोग करके अपनी तिजोरी वस्तुओं को दूसरों के साथ साझा करने की अनुमति देता है।क्या आप अधिक जानने के लिए bitwarden.com वेबसाइट पर जाना चाहेंगे?" }, "moveToOrganization": { - "message": "Move to Organization" + "message": "संगठन में ले जाएँ" }, "share": { - "message": "Share" + "message": "शेयर करें" }, "movedItemToOrg": { - "message": "$ITEMNAME$ moved to $ORGNAME$", + "message": "$ITEMNAME$ $ORGNAME$ गया ", "placeholders": { "itemname": { "content": "$1", @@ -657,10 +657,10 @@ } }, "moveToOrgDesc": { - "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + "message": "एक संगठन चुनें जिसे आप इस आइटम को स्थानांतरित करना चाहते हैं।किसी संगठन में जाने से उस संगठन को आइटम का स्वामित्व हस्तांतरित होता है।एक बार इसे स्थानांतरित करने के बाद आप अब इस आइटम के प्रत्यक्ष स्वामी नहीं होंगे।" }, "learnMore": { - "message": "Learn more" + "message": "अधिक जानें" }, "authenticatorKeyTotp": { "message": "Authenticator Key (TOTP)" @@ -672,40 +672,40 @@ "message": "Copy Verification Code" }, "attachments": { - "message": "Attachments" + "message": "अटॅचमेंट्स" }, "deleteAttachment": { - "message": "Delete attachment" + "message": "अटैचमेंट हटाएं" }, "deleteAttachmentConfirmation": { - "message": "Are you sure you want to delete this attachment?" + "message": "क्या आप वाकई इस अटैचमेंट को हटाना चाहते हैं?" }, "deletedAttachment": { - "message": "Deleted attachment" + "message": "हटाए गए अटैचमेंट" }, "newAttachment": { "message": "Add New Attachment" }, "noAttachments": { - "message": "No attachments." + "message": "कोई अटैचमेंट नहीं" }, "attachmentSaved": { - "message": "The attachment has been saved." + "message": "अटैचमेंट बच गया है।" }, "file": { - "message": "File" + "message": "फ़ाइल" }, "selectFile": { - "message": "Select a file." + "message": "फ़ाइल का चयन करें|" }, "maxFileSize": { - "message": "Maximum file size is 500 MB." + "message": "अधिकतम फाइल आकार 500 MB है" }, "featureUnavailable": { "message": "Feature Unavailable" }, "updateKey": { - "message": "You cannot use this feature until you update your encryption key." + "message": "जब तक आप अपनी एन्क्रिप्शन कुंजी को अपडेट नहीं करते, तब तक आप इस सुविधा का उपयोग नहीं कर सकते हैं।" }, "premiumMembership": { "message": "Premium Membership" @@ -714,43 +714,43 @@ "message": "Manage Membership" }, "premiumManageAlert": { - "message": "You can manage your membership on the bitwarden.com web vault. Do you want to visit the website now?" + "message": "आप वेब वॉल्ट bitwarden.com पर अपनी सदस्यता का प्रबंधन कर सकते हैं।क्या आप अब वेबसाइट पर जाना चाहते हैं?" }, "premiumRefresh": { "message": "Refresh Membership" }, "premiumNotCurrentMember": { - "message": "You are not currently a premium member." + "message": "आप वर्तमान में प्रीमियम सदस्य नहीं हैं।" }, "premiumSignUpAndGet": { - "message": "Sign up for a premium membership and get:" + "message": "प्रीमियम सदस्यता के लिए साइन अप करें और प्राप्त करें:" }, "ppremiumSignUpStorage": { "message": "1 GB of encrypted file storage." }, "ppremiumSignUpTwoStep": { - "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + "message": "अतिरिक्त दो-चरण लॉगिन विकल्प जैसे YubiKey, FIDO U2F, और डुओ।" }, "ppremiumSignUpReports": { - "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + "message": "अपनी वॉल्ट को सुरक्षित रखने के लिए पासवर्ड स्वच्छता, खाता स्वास्थ्य और डेटा उल्लंघन रिपोर्ट।" }, "ppremiumSignUpTotp": { - "message": "TOTP verification code (2FA) generator for logins in your vault." + "message": "अपनी तिजोरी में लॉगिन के लिए TOTP सत्यापन कोड (2FA) जनरेटर।" }, "ppremiumSignUpSupport": { - "message": "Priority customer support." + "message": "प्राथमिकता ग्राहक सहायता" }, "ppremiumSignUpFuture": { - "message": "All future premium features. More coming soon!" + "message": "भविष्य के सभी प्रीमियम फीचर्स। और जल्द ही आ रहा है!" }, "premiumPurchase": { "message": "Purchase Premium" }, "premiumPurchaseAlert": { - "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" + "message": "आप bitwarden.com वेब वॉल्ट पर प्रीमियम सदस्यता खरीद सकते हैं।क्या आप अब वेबसाइट पर जाना चाहते हैं?" }, "premiumCurrentMember": { - "message": "You are a premium member!" + "message": "आप एक प्रीमियम सदस्य हैं!" }, "premiumCurrentMemberThanks": { "message": "Thank you for supporting bitwarden." @@ -765,22 +765,22 @@ } }, "refreshComplete": { - "message": "Refresh complete" + "message": "ताज़ा पूरा" }, "disableAutoTotpCopy": { "message": "Disable Automatic TOTP Copy" }, "disableAutoTotpCopyDesc": { - "message": "If your login has an authenticator key attached to it, the TOTP verification code is automatically copied to your clipboard whenever you auto-fill the login." + "message": "यदि आपके लॉगिन में एक प्रमाणक कुंजी जुड़ी हुई है, तो जब भी आप लॉगिन को ऑटो-फिल करते हैं तो TOTP सत्यापन कोड स्वचालित रूप से आपके क्लिपबोर्ड पर कॉपी किया जाता है।" }, "premiumRequired": { "message": "Premium Required" }, "premiumRequiredDesc": { - "message": "A premium membership is required to use this feature." + "message": "इस सुविधा का उपयोग करने के लिए प्रीमियम सदस्यता की आवश्यकता होती है।" }, "enterVerificationCodeApp": { - "message": "Enter the 6 digit verification code from your authenticator app." + "message": "अपने ऑथेंटिकेटर ऐप से 6 डिजिट वेरिफिकेशन कोड डालें।" }, "enterVerificationCodeEmail": { "message": "Enter the 6 digit verification code that was emailed to", @@ -792,7 +792,7 @@ } }, "verificationCodeEmailSent": { - "message": "Verification email sent to $EMAIL$.", + "message": "ईमेल $EMAIL$ को भेजा गया|", "placeholders": { "email": { "content": "$1", @@ -801,28 +801,28 @@ } }, "rememberMe": { - "message": "Remember me" + "message": "मुझे याद रखें" }, "sendVerificationCodeEmailAgain": { - "message": "Send verification code email again" + "message": "फिर से सत्यापन कोड ईमेल भेजें" }, "useAnotherTwoStepMethod": { - "message": "Use another two-step login method" + "message": "एक और दो-चरण लॉगिन विधि का उपयोग करें" }, "insertYubiKey": { - "message": "Insert your YubiKey into your computer's USB port, then touch its button." + "message": "अपने कंप्यूटर के यूएसबी पोर्ट में अपने YubiKey डालें, फिर इसके बटन को स्पर्श करें।" }, "insertU2f": { - "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + "message": "अपने कंप्यूटर के यूएसबी पोर्ट में अपनी सुरक्षा कुंजी डालें। अगर इसमें कोई बटन है तो उसे टच करें।\n" }, "webAuthnNewTab": { - "message": "To start the WebAuthn 2FA verification. Click the button below to open a new tab and follow the instructions provided in the new tab." + "message": "वेबऑथन 2FA सत्यापन शुरू करने के लिए। एक नया टैब खोलने के लिए नीचे दिए गए बटन पर क्लिक करें और नए टैब में दिए गए निर्देशों का पालन करें।" }, "webAuthnNewTabOpen": { - "message": "Open new tab" + "message": "नया टैब खोलें" }, "webAuthnAuthenticate": { - "message": "Authenticate WebAuthn" + "message": "वेबऑथन प्रमाणित करें" }, "loginUnavailable": { "message": "Login Unavailable" @@ -831,13 +831,13 @@ "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." }, "noTwoStepProviders2": { - "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + "message": "कृपया एक समर्थित वेब ब्राउज़र (जैसे क्रोम) और/या अतिरिक्त प्रदाताओं का उपयोग करें जो वेब ब्राउज़र (जैसे एक प्रमाणक ऐप) में बेहतर समर्थित हैं।" }, "twoStepOptions": { "message": "Two-step Login Options" }, "recoveryCodeDesc": { - "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + "message": "अपने दो कारक प्रदाताओं के सभी के लिए उपयोग खो दिया है? अपने खाते से सभी दो-कारक प्रदाताओं को अक्षम करने के लिए अपने रिकवरी कोड का उपयोग करें।" }, "recoveryCodeTitle": { "message": "Recovery Code" @@ -846,17 +846,17 @@ "message": "Authenticator App" }, "authenticatorAppDesc": { - "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "message": "समय-आधारित सत्यापन कोड उत्पन्न करने के लिए एक प्रमाणक ऐप (जैसे Authy या Google Authenticator) का उपयोग करें।", "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." }, "yubiKeyTitle": { "message": "YubiKey OTP Security Key" }, "yubiKeyDesc": { - "message": "Use a YubiKey to access your account. Works with YubiKey 4, 4 Nano, 4C, and NEO devices." + "message": "अपने खाते तक पहुंचने के लिए YubiKey का उपयोग करें। YubiKey 4, 4 नैनो, 4C, और NEO उपकरणों के साथ काम करता है।" }, "duoDesc": { - "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "message": "डुओ मोबाइल ऐप, एसएमएस, फोन कॉल या U2F सुरक्षा कुंजी का उपयोग करके डुओ सिक्योरिटी के साथ सत्यापित करें।", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { @@ -864,16 +864,16 @@ "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "webAuthnTitle": { - "message": "FIDO2 WebAuthn" + "message": "FIDO2 वेबऑथन" }, "webAuthnDesc": { - "message": "Use any WebAuthn enabled security key to access your account." + "message": "अपने खाते तक पहुंचने के लिए किसी भी WebAuthn सक्षम सुरक्षा कुंजी का उपयोग करें।" }, "emailTitle": { - "message": "Email" + "message": "ईमेल" }, "emailDesc": { - "message": "Verification codes will be emailed to you." + "message": "सत्यापन कोड आपको ईमेल किए जाएंगे।" }, "selfHostedEnvironment": { "message": "Self-hosted Environment" @@ -885,10 +885,10 @@ "message": "Custom Environment" }, "customEnvironmentFooter": { - "message": "For advanced users. You can specify the base URL of each service independently." + "message": "उन्नत उपयोगकर्ताओं के लिए। आप स्वतंत्र रूप से प्रत्येक सेवा का आधार URL निर्दिष्ट कर सकते हैं।" }, "baseUrl": { - "message": "Server URL" + "message": "सर्वर URL" }, "apiUrl": { "message": "API Server URL" @@ -906,40 +906,40 @@ "message": "Icons Server URL" }, "environmentSaved": { - "message": "The environment URLs have been saved." + "message": "पर्यावरण URL को बचाया गया है।" }, "enableAutoFillOnPageLoad": { "message": "Enable Auto-fill On Page Load." }, "enableAutoFillOnPageLoadDesc": { - "message": "If a login form is detected, automatically perform an auto-fill when the web page loads." + "message": "यदि लॉगिन फॉर्म का पता चलता है, तो वेब पेज लोड होने पर स्वचालित रूप से ऑटो-फिल करें।" }, "experimentalFeature": { - "message": "This is currently an experimental feature. Use at your own risk." + "message": "यह वर्तमान में एक प्रयोगात्मक विशेषता है। अपने जोखिम पर उपयोग करें।" }, "defaultAutoFillOnPageLoad": { - "message": "Default autofill setting for login items" + "message": "लॉगिन आइटम के लिए डिफ़ॉल्ट ऑटोफिल सेटिंग" }, "defaultAutoFillOnPageLoadDesc": { - "message": "After enabling Auto-fill on Page Load, you can enable or disable the feature for individual login items. This is the default setting for login items that are not separately configured." + "message": "पेज लोड पर ऑटो-फिल को सक्षम करने के बाद, आप व्यक्तिगत लॉगिन आइटम के लिए सुविधा को सक्षम या अक्षम कर सकते हैं।यह लॉगिन आइटम के लिए डिफ़ॉल्ट सेटिंग है जो अलग से कॉन्फ़िगर नहीं हैं।" }, "itemAutoFillOnPageLoad": { - "message": "Auto-fill on Page Load (if enabled in Options)" + "message": "पेज लोड पर ऑटो-भरें (यदि विकल्पों में सक्षम हैं)" }, "autoFillOnPageLoadUseDefault": { - "message": "Use default setting" + "message": "डिफ़ॉल्ट सेटिंग का उपयोग करें" }, "autoFillOnPageLoadYes": { - "message": "Auto-fill on page load" + "message": "पेज लोड पर ऑटो भरें" }, "autoFillOnPageLoadNo": { - "message": "Do not auto-fill on page load" + "message": "पेज लोड पर ऑटो-फिल न करें" }, "commandOpenPopup": { - "message": "Open vault popup" + "message": "ओपन वॉल्ट पॉपअप" }, "commandOpenSidebar": { - "message": "Open vault in sidebar" + "message": "साइडबार में वॉल्ट खोले" }, "commandAutofillDesc": { "message": "Auto-fill the last used login for the current website." @@ -948,10 +948,10 @@ "message": "Generate and copy a new random password to the clipboard." }, "commandLockVaultDesc": { - "message": "Lock the vault" + "message": "वॉल्ट लॉक करें" }, "privateModeMessage": { - "message": "Unfortunately this window is not available in private mode for this browser." + "message": "दुर्भाग्य से यह विंडो इस ब्राउज़र के लिए निजी मोड में उपलब्ध नहीं है।" }, "customFields": { "message": "Custom Fields" @@ -960,28 +960,28 @@ "message": "Copy Value" }, "value": { - "message": "Value" + "message": "मूल्य" }, "newCustomField": { "message": "New Custom Field" }, "dragToSort": { - "message": "Drag to sort" + "message": "सॉर्ट करने के लिए खींचें" }, "cfTypeText": { - "message": "Text" + "message": "शब्द" }, "cfTypeHidden": { - "message": "Hidden" + "message": "छुपा हुआ" }, "cfTypeBoolean": { - "message": "Boolean" + "message": "बूलियन" }, "popup2faCloseMessage": { - "message": "Clicking outside the popup window to check your email for your verification code will cause this popup to close. Do you want to open this popup in a new window so that it does not close?" + "message": "अपने सत्यापन कोड के लिए अपने ईमेल की जांच करने के लिए पॉपअप विंडो के बाहर क्लिक करने से यह पॉपअप बंद हो जाएगा।क्या आप इस पॉपअप को एक नई विंडो में खोलना चाहते हैं ताकि यह बंद न हो?" }, "popupU2fCloseMessage": { - "message": "This browser cannot process U2F requests in this popup window. Do you want to open this popup in a new window so that you can log in using U2F?" + "message": "यह ब्राउज़र इस पॉपअप विंडो में U2F अनुरोधों को संसाधित नहीं कर सकता है।क्या आप इस पॉपअप को एक नई विंडो में खोलना चाहते हैं ताकि आप U2F का उपयोग करके लॉग इन कर सकें?" }, "disableFavicon": { "message": "Disable Website Icons" @@ -990,19 +990,19 @@ "message": "Website Icons provides a recognizable icon next to each login item in your vault." }, "disableBadgeCounter": { - "message": "Disable Badge Counter" + "message": "बैज काउंटर को अक्षम कर दो" }, "disableBadgeCounterDesc": { - "message": "Badge counter indicates how many logins you have for the current page in your vault." + "message": "बैज काउंटर निर्देश करता है कि आपके वॉल्ट में वर्तमान पृष्ठ के लिए आपके पास कितने लॉगिन हैं।" }, "cardholderName": { "message": "Cardholder Name" }, "number": { - "message": "Number" + "message": "संख्या" }, "brand": { - "message": "Brand" + "message": "ब्रांड" }, "expirationMonth": { "message": "Expiration Month" @@ -1011,43 +1011,43 @@ "message": "Expiration Year" }, "expiration": { - "message": "Expiration" + "message": "समय सीमा समाप्ति" }, "january": { - "message": "January" + "message": "जनवरी" }, "february": { - "message": "February" + "message": "फरवरी" }, "march": { - "message": "March" + "message": "मार्च" }, "april": { - "message": "April" + "message": "अप्रैल" }, "may": { - "message": "May" + "message": "मई" }, "june": { - "message": "June" + "message": "जून" }, "july": { - "message": "July" + "message": "जुलाई" }, "august": { - "message": "August" + "message": "अगस्त" }, "september": { - "message": "September" + "message": "सितम्बर" }, "october": { - "message": "October" + "message": "अक्टूबर" }, "november": { - "message": "November" + "message": "नवंबर" }, "december": { - "message": "December" + "message": "दिसंबर" }, "securityCode": { "message": "Security Code" @@ -1056,19 +1056,19 @@ "message": "ex." }, "title": { - "message": "Title" + "message": "शीर्षक" }, "mr": { - "message": "Mr" + "message": "श्री" }, "mrs": { - "message": "Mrs" + "message": "श्रीमती" }, "ms": { - "message": "Ms" + "message": "श्रीमती" }, "dr": { - "message": "Dr" + "message": "डॉ" }, "firstName": { "message": "First Name" @@ -1083,7 +1083,7 @@ "message": "Identity Name" }, "company": { - "message": "Company" + "message": "कंपनी" }, "ssn": { "message": "Social Security Number" @@ -1095,22 +1095,22 @@ "message": "License Number" }, "email": { - "message": "Email" + "message": "ईमेल" }, "phone": { - "message": "Phone" + "message": "फोन" }, "address": { - "message": "Address" + "message": "पता" }, "address1": { - "message": "Address 1" + "message": "पता 1" }, "address2": { - "message": "Address 2" + "message": "पता 2" }, "address3": { - "message": "Address 3" + "message": "पता 3" }, "cityTown": { "message": "City / Town" @@ -1122,62 +1122,62 @@ "message": "Zip / Postal Code" }, "country": { - "message": "Country" + "message": "देश" }, "type": { - "message": "Type" + "message": "प्रकार" }, "typeLogin": { - "message": "Login" + "message": "लॉग इन" }, "typeLogins": { - "message": "Logins" + "message": "लॉग इन" }, "typeSecureNote": { "message": "Secure Note" }, "typeCard": { - "message": "Card" + "message": "कार्ड" }, "typeIdentity": { - "message": "Identity" + "message": "पहचान" }, "passwordHistory": { "message": "पासवर्ड इतिहास" }, "back": { - "message": "Back" + "message": "वापस जाएं" }, "collections": { - "message": "Collections" + "message": "संग्रह" }, "favorites": { "message": "Favorites" }, "popOutNewWindow": { - "message": "Pop out to a new window" + "message": "एक नई विंडो के लिए पॉप आउट करें" }, "refresh": { - "message": "Refresh" + "message": "रीफ्रेश करें" }, "cards": { - "message": "Cards" + "message": "कार्ड्स" }, "identities": { - "message": "Identities" + "message": "पहचान" }, "logins": { - "message": "Logins" + "message": "लॉग इन" }, "secureNotes": { "message": "Secure Notes" }, "clear": { - "message": "Clear", + "message": "खाली करें", "description": "To clear something out. example: To clear browser history." }, "checkPassword": { - "message": "Check if password has been exposed." + "message": "चेक करें कि पासवर्ड सामने आ गया है या नहीं।" }, "passwordExposed": { "message": "This password has been exposed in data breaches. You should change it.", @@ -1189,23 +1189,23 @@ } }, "passwordSafe": { - "message": "This password was not found in any known data breaches. It should be safe to use." + "message": "यह पासवर्ड किसी भी ज्ञात डेटा उल्लंघनों में नहीं पाया गया था।इसका उपयोग करना सुरक्षित होना चाहिए।" }, "baseDomain": { - "message": "Base domain" + "message": "बेस डोमेन" }, "host": { - "message": "Host", + "message": "मेजबान", "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." }, "exact": { - "message": "Exact" + "message": "सटीक" }, "startsWith": { - "message": "Starts with" + "message": "इससे शुरू होता है" }, "regEx": { - "message": "Regular expression", + "message": "नियमित अभिव्यक्ति", "description": "A programming term, also known as 'RegEx'." }, "matchDetection": { @@ -1213,18 +1213,18 @@ "description": "URI match detection for auto-fill." }, "defaultMatchDetection": { - "message": "Default match detection", + "message": "डिफॉल्ट मैच डिटेक्शन", "description": "Default URI match detection for auto-fill." }, "toggleOptions": { "message": "Toggle Options" }, "toggleCurrentUris": { - "message": "Toggle Current URIs", + "message": "वर्तमान URI's को टॉगल करें", "description": "Toggle the display of the URIs of the currently open tabs in the browser." }, "currentUri": { - "message": "Current URI", + "message": "वर्तमान URI", "description": "The URI of one of the current open tabs in the browser." }, "organization": { @@ -1232,22 +1232,22 @@ "description": "An entity of multiple related people (ex. a team or business organization)." }, "types": { - "message": "Types" + "message": "प्रकार" }, "allItems": { "message": "All Items" }, "noPasswordsInList": { - "message": "There are no passwords to list." + "message": "सूची के लिए कोई पासवर्ड नहीं हैं।" }, "remove": { - "message": "Remove" + "message": "हटाएं" }, "default": { - "message": "Default" + "message": "डिफॉल्ट" }, "dateUpdated": { - "message": "Updated", + "message": "अपडेट किया गया", "description": "ex. Date this item was updated" }, "datePasswordUpdated": { @@ -1255,139 +1255,139 @@ "description": "ex. Date this password was updated" }, "neverLockWarning": { - "message": "Are you sure you want to use the \"Never\" option? Setting your lock options to \"Never\" stores your vault's encryption key on your device. If you use this option you should ensure that you keep your device properly protected." + "message": "क्या आप सुनिश्चित हैं कि आप \"कभी नहीं\" विकल्प का उपयोग करना चाहते हैं?\"कभी नहीं\" के लिए अपने लॉक विकल्प को सेट करना आपके डिवाइस पर आपकी वॉल्ट की एन्क्रिप्शन कुंजी को स्टोर करता है।यदि आप इस विकल्प का उपयोग करते हैं तो आपको यह सुनिश्चित करना चाहिए कि आप अपने डिवाइस को ठीक से सुरक्षित रखें।" }, "noOrganizationsList": { "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." }, "noCollectionsInList": { - "message": "There are no collections to list." + "message": "सूची में कोई संग्रह नहीं है।" }, "ownership": { - "message": "Ownership" + "message": "\nमालिकी" }, "whoOwnsThisItem": { - "message": "Who owns this item?" + "message": "इस आइटम का मालिक कौन है?" }, "strong": { - "message": "Strong", + "message": "मजबूत", "description": "ex. A strong password. Scale: Weak -> Good -> Strong" }, "good": { - "message": "Good", + "message": "अच्छा", "description": "ex. A good password. Scale: Weak -> Good -> Strong" }, "weak": { - "message": "Weak", + "message": "कमजोर", "description": "ex. A weak password. Scale: Weak -> Good -> Strong" }, "weakMasterPassword": { "message": "Weak Master Password" }, "weakMasterPasswordDesc": { - "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + "message": "आपके द्वारा चुना गया मास्टर पासवर्ड कमजोर है। आपको अपने बिटवर्डन खाते की ठीक से सुरक्षा के लिए एक मजबूत मास्टर पासवर्ड (या पासवाफ्रेज़) का उपयोग करना चाहिए।क्या आप सुनिश्चित हैं कि आप इस मास्टर पासवर्ड का उपयोग करना चाहते हैं?" }, "pin": { - "message": "PIN", + "message": "पिन", "description": "PIN code. Ex. The short code (often numeric) that you use to unlock a device." }, "unlockWithPin": { - "message": "Unlock with PIN" + "message": "पिन से अनलॉक करें " }, "setYourPinCode": { - "message": "Set your PIN code for unlocking Bitwarden. Your PIN settings will be reset if you ever fully log out of the application." + "message": "बिटवर्डन को अनलॉक करने के लिए अपना पिन कोड सेट करें यदि आप कभी भी आवेदन से पूरी तरह लॉग आउट करते हैं तो आपकी पिन सेटिंग्स रीसेट हो जाएंगी।" }, "pinRequired": { - "message": "PIN code is required." + "message": "पिन-कोड आवश्यक है |" }, "invalidPin": { - "message": "Invalid PIN code." + "message": "अमान्य पिन कोड।" }, "verifyPin": { - "message": "Verify PIN" + "message": "पिन की पुष्टि करें" }, "yourVaultIsLockedPinCode": { - "message": "Your vault is locked. Verify your PIN code to continue." + "message": "आपकी वॉल्ट लॉक हो गई है। जारी रखने के लिए अपने पिन कोड को सत्यापित करें।" }, "unlockWithBiometrics": { - "message": "Unlock with biometrics" + "message": "बायोमेट्रिक्स का उपयोग कर अनलॉक करें" }, "awaitDesktop": { - "message": "Awaiting confirmation from desktop" + "message": "डेस्कटॉप से पुष्टि का इंतजार" }, "awaitDesktopDesc": { - "message": "Please confirm using biometrics in the Bitwarden Desktop application to enable biometrics for browser." + "message": "ब्राउज़र के लिए बॉयोमीट्रिक्स सक्षम करने के लिए Bitwarden डेस्कटॉप आवेदन में बॉयोमीट्रिक्स का उपयोग कर पुष्टि करें।" }, "lockWithMasterPassOnRestart": { - "message": "Lock with master password on browser restart" + "message": "ब्राउज़र पुनः आरंभ करने पर मास्टर पासवर्ड के साथ लॉक करें" }, "selectOneCollection": { - "message": "You must select at least one collection." + "message": "आपको कम से कम एक संग्रह का चयन करना होगा।" }, "cloneItem": { - "message": "Clone Item" + "message": "क्लोन आइटम" }, "clone": { - "message": "Clone" + "message": "क्लोन" }, "passwordGeneratorPolicyInEffect": { - "message": "One or more organization policies are affecting your generator settings." + "message": "एक या एक से अधिक संगठन नीतियां आपकी जनरेटर सेटिंग को प्रभावित कर रही हैं।" }, "vaultTimeoutAction": { - "message": "Vault Timeout Action" + "message": "वॉल्ट मध्यांतर कार्रवाई" }, "lock": { - "message": "Lock", + "message": "लॉक", "description": "Verb form: to make secure or inaccesible by" }, "trash": { - "message": "Trash", + "message": "थ्रैश", "description": "Noun: a special folder to hold deleted items" }, "searchTrash": { - "message": "Search trash" + "message": "थ्रैश में खोजें" }, "permanentlyDeleteItem": { - "message": "Permanently Delete Item" + "message": "स्थायी रूप से आइटम हटाएं" }, "permanentlyDeleteItemConfirmation": { - "message": "Are you sure you want to permanently delete this item?" + "message": "क्या आप सुनिश्चित हैं कि आप इस आइटम को स्थायी रूप से हटाना चाहते हैं?" }, "permanentlyDeletedItem": { - "message": "Permanently Deleted item" + "message": "स्थायी रूप से आइटम हटाएं" }, "restoreItem": { - "message": "Restore Item" + "message": "आइटम बहाल करें" }, "restoreItemConfirmation": { - "message": "Are you sure you want to restore this item?" + "message": "क्या आप सुनिश्चित हैं कि आप इस आइटम को बहाल करना चाहते हैं?" }, "restoredItem": { - "message": "Restored Item" + "message": "बहाल आइटम" }, "vaultTimeoutLogOutConfirmation": { - "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + "message": "लॉग आउट करने से वॉल्टमें प्रवेश संभव नहीं होगा और समय समाप्त होने के बाद ऑनलाइन प्रमाणीकरण की आश्यकता होगी। आप इस सेटिंग्स को प्रयोग करने के लिए विश्वस्त हैं?" }, "vaultTimeoutLogOutConfirmationTitle": { - "message": "Timeout Action Confirmation" + "message": "मध्यांतर कार्रवाई की पुष्टि" }, "autoFillAndSave": { - "message": "Auto-fill and Save" + "message": "ऑटो फिल और सेव" }, "autoFillSuccessAndSavedUri": { - "message": "Auto-filled Item and Saved URI" + "message": "ऑटो फिल आइटम और सेव URI" }, "autoFillSuccess": { - "message": "Auto-filled Item" + "message": "ऑटो फिल आइटम" }, "setMasterPassword": { - "message": "Set Master Password" + "message": "मास्टर पासवर्ड सेट करें" }, "masterPasswordPolicyInEffect": { - "message": "One or more organization policies require your master password to meet the following requirements:" + "message": "एक या एक से अधिक संगठन नीतियों को निम्नलिखित आवश्यकताओं को पूरा करने के लिए आपके मास्टर पासवर्ड की आवश्यकता होती है:" }, "policyInEffectMinComplexity": { - "message": "Minimum complexity score of $SCORE$", + "message": "$SCORE$ का न्यूनतम जटिलता स्कोर", "placeholders": { "score": { "content": "$1", @@ -1396,7 +1396,7 @@ } }, "policyInEffectMinLength": { - "message": "Minimum length of $LENGTH$", + "message": "$LENGTH$ की न्यूनतम लंबाई", "placeholders": { "length": { "content": "$1", @@ -1405,16 +1405,16 @@ } }, "policyInEffectUppercase": { - "message": "Contain one or more uppercase characters" + "message": "एक या एक से अधिक ऊपरी अक्षर रखे" }, "policyInEffectLowercase": { - "message": "Contain one or more lowercase characters" + "message": "एक या एक से अधिक लोअरकेस अक्षर रखे" }, "policyInEffectNumbers": { - "message": "Contain one or more numbers" + "message": "एक या अधिक संख्या रखे" }, "policyInEffectSpecial": { - "message": "Contain one or more of the following special characters $CHARS$", + "message": "निम्नलिखित विशेष पात्रों में से एक या अधिक शामिल रखे $CHARS$", "placeholders": { "chars": { "content": "$1", @@ -1423,100 +1423,100 @@ } }, "masterPasswordPolicyRequirementsNotMet": { - "message": "Your new master password does not meet the policy requirements." + "message": "आपका नया मास्टर पासवर्ड पॉलिसी आवश्यकताओं को पूरा नहीं करता है।" }, "acceptPolicies": { - "message": "By checking this box you agree to the following:" + "message": "इस बॉक्स की जांच करके आप निम्नलिखित से सहमत हैं:" }, "acceptPoliciesError": { - "message": "Terms of Service and Privacy Policy have not been acknowledged." + "message": "सेवा और गोपनीयता नीति की शर्तों को स्वीकार नहीं किया गया है ।" }, "termsOfService": { - "message": "Terms of Service" + "message": "सेवा की शर्तें" }, "privacyPolicy": { - "message": "Privacy Policy" + "message": "प्राइवेसी पोलिसी" }, "hintEqualsPassword": { - "message": "Your password hint cannot be the same as your password." + "message": "आपका पासवर्ड संकेत आपके पासवर्ड के समान नहीं हो सकता है।" }, "ok": { - "message": "Ok" + "message": "ठीक है" }, "desktopSyncVerificationTitle": { - "message": "Desktop sync verification" + "message": "डेस्कटॉप सिंक सत्यापन" }, "desktopIntegrationVerificationText": { - "message": "Please verify that the desktop application shows this fingerprint: " + "message": "कृपया सत्यापित करें कि डेस्कटॉप एप्लिकेशन इस फिंगरप्रिंट को दिखाता है:" }, "desktopIntegrationDisabledTitle": { - "message": "Browser integration is not enabled" + "message": "ब्राउज़र एकीकरण सक्षम नहीं है" }, "desktopIntegrationDisabledDesc": { - "message": "Browser integration is not enabled in the Bitwarden Desktop application. Please enable it in the settings within the desktop application." + "message": "ब्राउज़र एकीकरण बिटवर्डन डेस्कटॉप एप्लिकेशन में सक्षम नहीं है।कृपया इसे डेस्कटॉप एप्लिकेशन के भीतर सेटिंग्स में सक्षम करें।" }, "startDesktopTitle": { - "message": "Start the Bitwarden Desktop application" + "message": "बिटवर्डन डेस्कटॉप एप्लिकेशन शुरू करें" }, "startDesktopDesc": { - "message": "The Bitwarden Desktop application needs to be started before this function can be used." + "message": "इस फ़ंक्शन का उपयोग करने से पहले बिटवर्डन डेस्कटॉप एप्लिकेशन को शुरू करने की आवश्यकता है।" }, "errorEnableBiometricTitle": { - "message": "Unable to enable biometrics" + "message": "बॉयोमीट्रिक्स सक्षम करने में असमर्थ" }, "errorEnableBiometricDesc": { - "message": "Action was canceled by the desktop application" + "message": "डेस्कटॉप एप्लिकेशन द्वारा कार्रवाई रद्द कर दी गई थी" }, "nativeMessagingInvalidEncryptionDesc": { - "message": "Desktop application invalidated the secure communication channel. Please retry this operation" + "message": "डेस्कटॉप एप्लिकेशन ने सुरक्षित संचार चैनल को अमान्य कर दिया। कृपया इस ऑपरेशन को फिर से प्रयास करें" }, "nativeMessagingInvalidEncryptionTitle": { - "message": "Desktop communication interrupted" + "message": "डेस्कटॉप संचार बाधित" }, "nativeMessagingWrongUserDesc": { - "message": "The desktop application is logged into a different account. Please ensure both applications are logged into the same account." + "message": "डेस्कटॉप एप्लिकेशन को एक अलग खाते में लॉग इन किया जाता है। कृपया सुनिश्चित करें कि दोनों आवेदन एक ही खाते में लॉग इन किए गए हैं।" }, "nativeMessagingWrongUserTitle": { - "message": "Account missmatch" + "message": "खाता गलत मैच" }, "biometricsNotEnabledTitle": { - "message": "Biometrics not enabled" + "message": "बॉयोमीट्रिक्स सक्षम नहीं है" }, "biometricsNotEnabledDesc": { - "message": "Browser biometrics requires desktop biometric to be enabled in the settings first." + "message": "ब्राउज़र बॉयोमीट्रिक्स पहले सेटिंग्स में सक्षम होने के लिए डेस्कटॉप बॉयोमीट्रिक की आवश्यकता है ।" }, "biometricsNotSupportedTitle": { - "message": "Biometrics not supported" + "message": "बॉयोमीट्रिक्स सक्षम नहीं है" }, "biometricsNotSupportedDesc": { - "message": "Browser biometrics is not supported on this device." + "message": "ब्राउज़र बॉयोमीट्रिक्स इस डिवाइस पर समर्थित नहीं है।" }, "nativeMessaginPermissionErrorTitle": { - "message": "Permission not provided" + "message": "अनुमति नहीं दी गयी है" }, "nativeMessaginPermissionErrorDesc": { - "message": "Without permission to communicate with the Bitwarden Desktop Application we cannot provide biometrics in the browser extension. Please try again." + "message": "बिटवर्डन डेस्कटॉप एप्लिकेशन के साथ संवाद करने की अनुमति के बिना हम ब्राउज़र एक्सटेंशन में बॉयोमीट्रिक्स प्रदान नहीं कर सकते हैं।कृपया फिर से प्रयास करें।" }, "nativeMessaginPermissionSidebarTitle": { - "message": "Permission request error" + "message": "अनुमति अनुरोध त्रुटि" }, "nativeMessaginPermissionSidebarDesc": { - "message": "This action cannot be done in the sidebar, please retry the action in the popup or popout." + "message": "यह क्रिया साइडबार में नहीं की जा सकती है, कृपया पॉपअप या पॉपआउट में कार्रवाई का फिर से प्रयास करें।" }, "personalOwnershipSubmitError": { - "message": "Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + "message": "एंटरप्राइज पॉलिसी के कारण, आप अपनी व्यक्तिगत वॉल्ट में वस्तुओं को सहेजने से प्रतिबंधित हैं।किसी संगठन के स्वामित्व विकल्प को बदलें और उपलब्ध संग्रहों में से चुनें।" }, "personalOwnershipPolicyInEffect": { - "message": "An organization policy is affecting your ownership options." + "message": "एक संगठन नीति आपके स्वामित्व विकल्पों को प्रभावित कर रही है।" }, "excludedDomains": { - "message": "Excluded Domains" + "message": "बहिष्कृत डोमेन" }, "excludedDomainsDesc": { - "message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect." + "message": "बिटवर्डन इन डोमेन के लिए लॉगिन विवरण सहेजने के लिए नहीं कहेगा।परिवर्तनों को प्रभावी बनाने के लिए आपको पृष्ठ को ताज़ा करना होगा |" }, "excludedDomainsInvalidDomain": { - "message": "$DOMAIN$ is not a valid domain", + "message": "$DOMAIN $ एक वैध डोमेन नहीं है", "placeholders": { "domain": { "content": "$1", @@ -1525,108 +1525,108 @@ } }, "send": { - "message": "Send", + "message": "भेजें", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "searchSends": { - "message": "Search Sends", + "message": "Sends मे खोजे", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "addSend": { - "message": "Add Send", + "message": "Send जोड़ें", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTypeText": { - "message": "Text" + "message": "शब्द" }, "sendTypeFile": { - "message": "File" + "message": "फ़ाइल" }, "allSends": { - "message": "All Sends", + "message": "सभी Sends", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCountReached": { - "message": "Max access count reached" + "message": "मैक्स एक्सेस काउंट पहुंच गया है" }, "expired": { - "message": "Expired" + "message": " गतावधिक" }, "pendingDeletion": { - "message": "Pending deletion" + "message": "हटाना लंबित" }, "passwordProtected": { - "message": "Password protected" + "message": "पासवर्ड सुरक्षित है" }, "copySendLink": { - "message": "Copy Send link", + "message": "कॉपी Send लिंक", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "removePassword": { - "message": "Remove Password" + "message": "पासवर्ड हटाएं" }, "delete": { - "message": "Delete" + "message": "हटाएं" }, "removedPassword": { - "message": "Removed Password" + "message": "पासवर्ड हटाएं" }, "deletedSend": { - "message": "Deleted Send", + "message": " Send हटाए गए", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendLink": { - "message": "Send link", + "message": "Send लिंक", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disabled": { - "message": "Disabled" + "message": "अक्षम" }, "removePasswordConfirmation": { - "message": "Are you sure you want to remove the password?" + "message": "क्या आप सयमुच पासवर्ड हटाना चाहते हैं?" }, "deleteSend": { - "message": "Delete Send", + "message": " Send हटाए", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSendConfirmation": { - "message": "Are you sure you want to delete this Send?", + "message": "क्या आप वाकई इस Send को मिटाना चाहते हैं?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editSend": { - "message": "Edit Send", + "message": "एडिट Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTypeHeader": { - "message": "What type of Send is this?", + "message": "यह किस प्रकार का सेंड है?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "इस सेंड का वर्णन करने के लिए एक दोस्ताना नाम।", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "वह फाइल जो आप सेंड करना चाहते हैं।" }, "deletionDate": { - "message": "Deletion Date" + "message": "हटाने की तारीख" }, "deletionDateDesc": { - "message": "The Send will be permanently deleted on the specified date and time.", + "message": " यह सेंड निर्धारित तिथि और समय पर स्थायी रूप से हटा दिया जाएगा।", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "Expiration Date" + "message": "समाप्ति तिथि" }, "expirationDateDesc": { - "message": "If set, access to this Send will expire on the specified date and time.", + "message": "यदि सेट किया जाता है, तो यह सेंड निर्दिष्ट तिथि और समय पर समाप्त हो जाएगा।", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "oneDay": { - "message": "1 day" + "message": "1 दिन" }, "days": { - "message": "$DAYS$ days", + "message": "#DAYS# दिन", "placeholders": { "days": { "content": "$1", @@ -1635,122 +1635,122 @@ } }, "custom": { - "message": "Custom" + "message": "कस्टम" }, "maximumAccessCount": { - "message": "Maximum Access Count" + "message": "अधिकतम एक्सेस काउंट" }, "maximumAccessCountDesc": { - "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "message": "यदि सेट किया जाता है, तो अधिकतम एक्सेस काउंट तक पहुंचने के बाद उपयोगकर्ता अब इस सेंड को एक्सेस नहीं कर पाएंगे।", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendPasswordDesc": { - "message": "Optionally require a password for users to access this Send.", + "message": "वैकल्पिक रूप से उपयोगकर्ताओं को इस सेंड तक पहुंचने के लिए पासवर्ड की आवश्यकता होगी।", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { - "message": "Private notes about this Send.", + "message": "इस सेंड के बारे में निजी नोट्स।", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisableDesc": { - "message": "Disable this Send so that no one can access it.", + "message": "इस सेंड को अक्षम करें ताकि कोई भी इसे एक्सेस न कर सके।", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendShareDesc": { - "message": "Copy this Send's link to clipboard upon save.", + "message": "सेव पर क्लिपबोर्ड पर इस सेंड के लिंक को कॉपी करें।", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "वह टेक्स्ट जो आप सेंड करना चाहते हैं।" }, "sendHideText": { - "message": "Hide this Send's text by default.", + "message": "इस सेंड के टेक्स्ट को डिफ़ॉल्ट रूप से छिपाएं।", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Current Access Count" + "message": "वर्तमान एक्सेस काउंट" }, "createSend": { - "message": "Create New Send", + "message": "नया सेंड बनाएं", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "newPassword": { - "message": "New Password" + "message": "नया पासवर्ड" }, "sendDisabled": { - "message": "Send Disabled", + "message": "सेंड अक्षम", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "एक उद्यम नीति के कारण, आप केवल मौजूदा सेंड को हटाने में सक्षम हैं।", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { - "message": "Created Send", + "message": "नया सेंड बनाया गया", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { - "message": "Edited Send", + "message": "सेंड एडिट किया गया", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendLinuxChromiumFileWarning": { - "message": "In order to choose a file, open the extension in the sidebar (if possible) or pop out to a new window by clicking this banner." + "message": "फ़ाइल चुनने के लिए, साइडबार (यदि संभव हो) में एक्सटेंशन खोलें या इस बैनर पर क्लिक करके एक नई विंडो को पॉप आउट करें।" }, "sendFirefoxFileWarning": { - "message": "In order to choose a file using Firefox, open the extension in the sidebar or pop out to a new window by clicking this banner." + "message": "फ़ायरफ़ॉक्स का उपयोग करके फ़ाइल चुनने के लिए, साइडबार में एक्सटेंशन खोलें या इस बैनर पर क्लिक करके एक नई विंडो को पॉप आउट करें।" }, "sendSafariFileWarning": { - "message": "In order to choose a file using Safari, pop out to a new window by clicking this banner." + "message": "सफारी का उपयोग करके फ़ाइल चुनने के लिए, इस बैनर पर क्लिक करके एक नई विंडो को पॉप आउट करें।" }, "sendFileCalloutHeader": { - "message": "Before you start" + "message": "शुरू करने से पहले" }, "sendFirefoxCustomDatePopoutMessage1": { - "message": "To use a calendar style date picker", + "message": "कैलेंडर शैली तिथि बीनने वाले का उपयोग करने के लिए", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**To use a calendar style date picker ** click here to pop out your window.'" }, "sendFirefoxCustomDatePopoutMessage2": { - "message": "click here", + "message": "यहां क्लिक करें", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker **click here** to pop out your window.'" }, "sendFirefoxCustomDatePopoutMessage3": { - "message": "to pop out your window.", + "message": "अपनी विंडो पॉप आउट करने के लिए यहां क्लिक करें।", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker click here **to pop out your window.**'" }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "प्रदान की गई समाप्ति तिथि मान्य नहीं है।" }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "प्रदान की गई विलोपन तिथि मान्य नहीं है।" }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "एक समाप्ति तिथि और समय की आवश्यकता है।" }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "एक विलोपन तिथि और समय की आवश्यकता है।" }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "आपके विलोपन और समाप्ति तिथियों को सहेजने में एक त्रुटि थी।" }, "hideEmail": { - "message": "Hide my email address from recipients." + "message": "प्राप्तकर्ताओं से मेरा ईमेल पता छिपाएं।" }, "sendOptionsPolicyInEffect": { - "message": "One or more organization policies are affecting your Send options." + "message": "एक या एक से अधिक संगठन नीतियां आपके सेंड विकल्पों को प्रभावित कर रही हैं।" }, "passwordPrompt": { - "message": "Master password re-prompt" + "message": "मास्टर पासवर्ड रि-प्रॉम्प्ट" }, "passwordConfirmation": { - "message": "Master password confirmation" + "message": "मास्टर पासवर्ड पुष्टि" }, "passwordConfirmationDesc": { - "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + "message": "यह क्रिया सुरक्षित है। जारी रखने के लिए, कृपया अपनी पहचान सत्यापित करने के लिए अपना मास्टर पासवर्ड फिर से दर्ज करें।" }, "emailVerificationRequired": { - "message": "Email Verification Required" + "message": "ईमेल सत्यापन आवश्यक है" }, "emailVerificationRequiredDesc": { - "message": "You must verify your email to use this feature. You can verify your email in the web vault." + "message": "इस सुविधा का उपयोग करने के लिए आपको अपने ईमेल को सत्यापित करना होगा। आप वेब वॉल्ट में अपने ईमेल को सत्यापित कर सकते हैं।" } } diff --git a/src/_locales/hr/messages.json b/src/_locales/hr/messages.json index 9702b9e9c3..27594b62f6 100644 --- a/src/_locales/hr/messages.json +++ b/src/_locales/hr/messages.json @@ -151,7 +151,7 @@ "message": "Spremi" }, "move": { - "message": "Move" + "message": "Premjesti" }, "addFolder": { "message": "Dodaj mapu" @@ -632,19 +632,19 @@ "message": "Dijeljeno" }, "learnOrg": { - "message": "Learn about Organizations" + "message": "Više o organizacijama" }, "learnOrgConfirmation": { - "message": "Bitwarden allows you to share your vault items with others by using an organization. Would you like to visit the bitwarden.com website to learn more?" + "message": "Bitwarden omogućuje dijeljenje trezora s drugima pomoću organizacijskog računa. Želiš li sada posjetiti bitwarden.com za više informacija?" }, "moveToOrganization": { - "message": "Move to Organization" + "message": "Premjesti u organizaciju" }, "share": { "message": "Podijeli" }, "movedItemToOrg": { - "message": "$ITEMNAME$ moved to $ORGNAME$", + "message": "$ITEMNAME$ premješteno u $ORGNAME$", "placeholders": { "itemname": { "content": "$1", @@ -657,7 +657,7 @@ } }, "moveToOrgDesc": { - "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + "message": "Odaberi organizaciju u koju želiš premjestiti ovu stavku. Premještanje prenosi vlasništvo stavke na organizaciju. Nakon premještanja više nećeš biti izravni vlasnik ove stavke." }, "learnMore": { "message": "Saznaj više" @@ -819,7 +819,7 @@ "message": "Nastavi na WebAuthn 2FA verifikaciju u novoj kartici." }, "webAuthnNewTabOpen": { - "message": "Open new tab" + "message": "Otvori novu karticu" }, "webAuthnAuthenticate": { "message": "Ovjeri WebAuthn" @@ -918,22 +918,22 @@ "message": "Ovo je trenutno eksperimentalna značajka. Koristi na vlastitu odgovornost." }, "defaultAutoFillOnPageLoad": { - "message": "Default autofill setting for login items" + "message": "Zadana postvaka Auto-ispune za prijave" }, "defaultAutoFillOnPageLoadDesc": { - "message": "After enabling Auto-fill on Page Load, you can enable or disable the feature for individual login items. This is the default setting for login items that are not separately configured." + "message": "Nakon omogućavanja Auto-ispune kod učitavanja stranice, moguće je uključiti/isključiti ovu značajku za svaku pojedinu prijavu. Ovo je zadana postavka za prijave koje nisu pojedinčano određene." }, "itemAutoFillOnPageLoad": { - "message": "Auto-fill on Page Load (if enabled in Options)" + "message": "Auto-ispuna kod učitavanja stranice (ako je uključeno u Postavkama)" }, "autoFillOnPageLoadUseDefault": { - "message": "Use default setting" + "message": "Koristi zadane postavke" }, "autoFillOnPageLoadYes": { - "message": "Auto-fill on page load" + "message": "Auto-ispuna kod učitavanja" }, "autoFillOnPageLoadNo": { - "message": "Do not auto-fill on page load" + "message": "Ne koristi Auto-ispunu kod učitavanja" }, "commandOpenPopup": { "message": "Otvori iskočni prozor trezora" @@ -1748,9 +1748,9 @@ "message": "Ova radnja je zaštićena. Za nastavak i potvrdu identiteta, unesi svoju glavnu lozinku." }, "emailVerificationRequired": { - "message": "Email Verification Required" + "message": "Potrebna je potvrda e-pošte" }, "emailVerificationRequiredDesc": { - "message": "You must verify your email to use this feature. You can verify your email in the web vault." + "message": "Moraš ovjeriti svoju e-poštu u mrežnom trezoru za koritšenje ove značajke." } } diff --git a/src/_locales/it/messages.json b/src/_locales/it/messages.json index 0b80bd4e0e..5ebf65072d 100644 --- a/src/_locales/it/messages.json +++ b/src/_locales/it/messages.json @@ -139,7 +139,7 @@ "message": "Verifica in due passaggi" }, "logOut": { - "message": "Disconnessione" + "message": "Esci" }, "about": { "message": "Informazioni" @@ -732,7 +732,7 @@ "message": "Opzioni addizionali di login in due passaggi come YubiKey, FIDO U2F, e Duo." }, "ppremiumSignUpReports": { - "message": "Sicurezza delle password, integrità dell'account e rapporti sulla violazione di dati per mantenere sicura la tua cassaforte." + "message": "Sicurezza delle password, integrità dell'account e resoconti sulla violazione di dati per mantenere sicura la tua cassaforte." }, "ppremiumSignUpTotp": { "message": "Generatore di codice di verifica TOTP (2FA) per i login nella tua cassaforte." @@ -783,7 +783,7 @@ "message": "Inserisci il codice di verifica a 6 cifre dalla tua applicazione di autenticazione." }, "enterVerificationCodeEmail": { - "message": "Inserisci il codice di verifica a 6 cifre ricevuto per email", + "message": "Inserisci il codice di verifica a 6 cifrato inviato a $EMAIL$.", "placeholders": { "email": { "content": "$1", @@ -918,22 +918,22 @@ "message": "Al momento questa funzionalità è sperimentale. Usala a tuo rischio e pericolo." }, "defaultAutoFillOnPageLoad": { - "message": "Impostazioni di riempimento automatico predefinito per gli elementi di accesso" + "message": "Impostazioni di completamento automatico predefinito per i login" }, "defaultAutoFillOnPageLoadDesc": { - "message": "Dopo aver abilitato il completamento automatico al caricamento della pagina, è possibile abilitare o disabilitare la funzione per singoli elementi di accesso. Questa è l'impostazione predefinita per gli elementi di accesso che non sono configurati separatamente." + "message": "Dopo aver abilitato il completamento automatico al caricamento della pagina, è possibile abilitare o disabilitare la funzione per singoli login. Questa è l'impostazione predefinita per i login che non sono configurati separatamente." }, "itemAutoFillOnPageLoad": { - "message": "Riempimento automatico al caricamento della pagina (se abilitato nelle opzioni)" + "message": "Autocompletamento al caricamento della pagina (se abilitato nelle opzioni)" }, "autoFillOnPageLoadUseDefault": { "message": "Usa impostazione predefinita" }, "autoFillOnPageLoadYes": { - "message": "Riempimento automatico al caricamento della pagina" + "message": "Autocompletamento al caricamento della pagina" }, "autoFillOnPageLoadNo": { - "message": "Non riempire automaticamente al caricamento della pagina" + "message": "Non completare automaticamente al caricamento della pagina" }, "commandOpenPopup": { "message": "Apri popup cassaforte" @@ -942,10 +942,10 @@ "message": "Apri la cassaforte nella barra laterale" }, "commandAutofillDesc": { - "message": "Auto-completa con l'ultimo login utilizzato sul sito corrente." + "message": "Auto-completa con l'ultimo accesso utilizzato sul sito corrente" }, "commandGeneratePasswordDesc": { - "message": "Genera e copia una nuova password casuale negli appunti." + "message": "Genera e copia una nuova password casuale negli appunti" }, "commandLockVaultDesc": { "message": "Blocca la cassaforte" @@ -1668,7 +1668,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Numero di accessi correnti" + "message": "Numero di accessi attuale" }, "createSend": { "message": "Crea nuovo Send", @@ -1748,7 +1748,7 @@ "message": "Questa azione è protetta. Per continuare, inserisci nuovamente la tua password principale per verificare la tua identità." }, "emailVerificationRequired": { - "message": "Verifica email necessaria" + "message": "Verifica email richiesta" }, "emailVerificationRequiredDesc": { "message": "Devi verificare la tua email per utilizzare questa funzionalità. Puoi verificare la tua email nella cassaforte web." diff --git a/src/_locales/ko/messages.json b/src/_locales/ko/messages.json index 71dfdff96c..1f1eb1002c 100644 --- a/src/_locales/ko/messages.json +++ b/src/_locales/ko/messages.json @@ -151,7 +151,7 @@ "message": "저장" }, "move": { - "message": "Move" + "message": "이동" }, "addFolder": { "message": "폴더 추가" @@ -632,19 +632,19 @@ "message": "공유됨" }, "learnOrg": { - "message": "Learn about Organizations" + "message": "조직에 대해 알아보기" }, "learnOrgConfirmation": { - "message": "Bitwarden allows you to share your vault items with others by using an organization. Would you like to visit the bitwarden.com website to learn more?" + "message": "Bitwarden은 조직용 계정을 사용하면 사용자의 보관함을 타인에게 공유할 수 있습니다. bitwarden.com 웹 사이트를 방문하여 더 자세히 알아보시겠습니까?" }, "moveToOrganization": { - "message": "Move to Organization" + "message": "조직으로 이동하기" }, "share": { "message": "공유" }, "movedItemToOrg": { - "message": "$ITEMNAME$ moved to $ORGNAME$", + "message": "$ITEMNAME$이(가) $ORGNAME$(으)로 이동됨", "placeholders": { "itemname": { "content": "$1", @@ -657,7 +657,7 @@ } }, "moveToOrgDesc": { - "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + "message": "이 항목을 이동할 조직을 선택하십시오. 항목이 조직으로 이동되면 소유권이 조직으로 이전됩니다. 일단 이동되면, 더는 이동된 항목의 직접적인 소유자가 아니게 됩니다." }, "learnMore": { "message": "더 알아보기" @@ -819,7 +819,7 @@ "message": "새 탭에서 WebAuthn 2단계 인증을 계속하세요." }, "webAuthnNewTabOpen": { - "message": "Open new tab" + "message": "새 탭 열기" }, "webAuthnAuthenticate": { "message": "WebAuthn 인증" @@ -918,22 +918,22 @@ "message": "현재 실험 중인 기능입니다. 위험을 감수하여 사용하세요." }, "defaultAutoFillOnPageLoad": { - "message": "Default autofill setting for login items" + "message": "로그인 항목에 대한 기본 자동 완성 설정" }, "defaultAutoFillOnPageLoadDesc": { - "message": "After enabling Auto-fill on Page Load, you can enable or disable the feature for individual login items. This is the default setting for login items that are not separately configured." + "message": "페이지 로드 시 자동 완성을 켠 뒤에는 각 로그인 항목별로 이 기능을 켜거나 끌 수 있습니다. 이 옵션은 해당 기능을 개별적으로 구성하지 않은 항목에 사용되는 기본 설정값입니다." }, "itemAutoFillOnPageLoad": { - "message": "Auto-fill on Page Load (if enabled in Options)" + "message": "페이지 로드 시 자동 완성 (옵션에서 켜져 있을 경우)" }, "autoFillOnPageLoadUseDefault": { - "message": "Use default setting" + "message": "기본 설정 사용" }, "autoFillOnPageLoadYes": { - "message": "Auto-fill on page load" + "message": "페이지 로드 시 자동 완성" }, "autoFillOnPageLoadNo": { - "message": "Do not auto-fill on page load" + "message": "페이지 로드 시 자동 완성 안 함" }, "commandOpenPopup": { "message": "보관함 팝업 열기" @@ -1748,9 +1748,9 @@ "message": "이 작업은 보호되어 있습니다. 계속하려면 마스터 비밀번호를 입력하여 신원을 인증하세요." }, "emailVerificationRequired": { - "message": "Email Verification Required" + "message": "이메일 인증 필요함" }, "emailVerificationRequiredDesc": { - "message": "You must verify your email to use this feature. You can verify your email in the web vault." + "message": "이 기능을 사용하려면 이메일 인증이 필요합니다. 웹 보관함에서 이메일을 인증할 수 있습니다." } } diff --git a/src/_locales/lv/messages.json b/src/_locales/lv/messages.json index 6b54813a87..21c39de4ad 100644 --- a/src/_locales/lv/messages.json +++ b/src/_locales/lv/messages.json @@ -151,7 +151,7 @@ "message": "Saglabāt" }, "move": { - "message": "Move" + "message": "Pārvietot" }, "addFolder": { "message": "Pievienot mapi" @@ -632,19 +632,19 @@ "message": "Kopīgots" }, "learnOrg": { - "message": "Learn about Organizations" + "message": "Uzzināt par apvienībām" }, "learnOrgConfirmation": { - "message": "Bitwarden allows you to share your vault items with others by using an organization. Would you like to visit the bitwarden.com website to learn more?" + "message": "Bitwarden nodrošina iespēju kopīgot glabātavas vienumus ar citiem, kad tiek izmantota apvienība. Vai apmeklēt bitwarden.com tīmekļa vietni, lai uzzinātu vairāk?" }, "moveToOrganization": { - "message": "Move to Organization" + "message": "Pārvietot uz apvienību" }, "share": { "message": "Kopīgot" }, "movedItemToOrg": { - "message": "$ITEMNAME$ moved to $ORGNAME$", + "message": "$ITEMNAME$ pārvietots uz $ORGNAME$", "placeholders": { "itemname": { "content": "$1", @@ -657,7 +657,7 @@ } }, "moveToOrgDesc": { - "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + "message": "Izvēlies apvienību, uz kuru pārvietot šo vienumu. Pārvietošana nodod šī vienuma piederību apvienībai. Tu vairs nebūsi šī vienuma tiešais īpašnieks pēc tā pārvietošanas." }, "learnMore": { "message": "Uzzināt vairāk" @@ -819,7 +819,7 @@ "message": "Turpināt WebAuthn 2FA apstiprināšanu jaunā cilnē." }, "webAuthnNewTabOpen": { - "message": "Open new tab" + "message": "Atvērt jaunu cilni" }, "webAuthnAuthenticate": { "message": "Autentificēt WebAuthn" @@ -918,22 +918,22 @@ "message": "Šī iespēja pašlaik ir izmēģināšanā. Izmantošanas atbildība ir katra paša pārziņā. " }, "defaultAutoFillOnPageLoad": { - "message": "Default autofill setting for login items" + "message": "Noklusējuma automātiskās aizpildes iestatījums pierakstīšanās vienumiem" }, "defaultAutoFillOnPageLoadDesc": { - "message": "After enabling Auto-fill on Page Load, you can enable or disable the feature for individual login items. This is the default setting for login items that are not separately configured." + "message": "Pēc automātiskās aizpildes lapas ielādes brīdī iespējošanas šo iespēju var ieslēgt vai izslēgt atsevišķiem pierakstīšanās vienumiem. Šis ir noklusējuma iestatījums visiem ierakstiem, kuriem nav norādīts šis uzstādījums." }, "itemAutoFillOnPageLoad": { - "message": "Auto-fill on Page Load (if enabled in Options)" + "message": "Automātiski aizpildīt lapas ielādes brīdī (ja iespējots iestatījumos)" }, "autoFillOnPageLoadUseDefault": { - "message": "Use default setting" + "message": "Izmantot noklusējuma iestatījumu" }, "autoFillOnPageLoadYes": { - "message": "Auto-fill on page load" + "message": "Automātiski aizpildīt lapas ielādes brīdī" }, "autoFillOnPageLoadNo": { - "message": "Do not auto-fill on page load" + "message": "Neaizpildīt lapas ielādes brīdī" }, "commandOpenPopup": { "message": "Atvērt glabātavas uznirstošo logu" @@ -1748,9 +1748,9 @@ "message": "Šī darbība ir aizsargāta. Lai turpinātu, ir jāievada galvenā parole, lai apstiprinātu identitāti." }, "emailVerificationRequired": { - "message": "Email Verification Required" + "message": "Nepieciešama e-pasta adreses apstiprināšana" }, "emailVerificationRequiredDesc": { - "message": "You must verify your email to use this feature. You can verify your email in the web vault." + "message": "Ir nepieciešams apstiprināt e-pasta adresi, lai būtu iespējams izmantot šo iespēju. To var izdarīt tīmekļa glabātavā." } } diff --git a/src/_locales/nb/messages.json b/src/_locales/nb/messages.json index 4095013820..958848fbe8 100644 --- a/src/_locales/nb/messages.json +++ b/src/_locales/nb/messages.json @@ -151,7 +151,7 @@ "message": "Lagre" }, "move": { - "message": "Move" + "message": "Flytt" }, "addFolder": { "message": "Legg til en mappe" @@ -600,7 +600,7 @@ "description": "Light color" }, "solarizedDark": { - "message": "Solarized Dark", + "message": "Solarisert mørk", "description": "'Solarized' is a noun and the name of a color scheme. It should not be translated." }, "exportVault": { @@ -620,10 +620,10 @@ "message": "Eksporten inneholder dine hvelvdataer i et ukryptert format. Du burde ikke lagre eller sende den eksporterte filen over usikre tjenester (f.eks. E-post). Slett det umiddelbart etter at du er ferdig med å bruke dem." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Denne eksporten krypterer dataene dine ved hjelp av kontoen din sin krypteringsnøkkel. Hvis du noen gang endrer krypteringsnøkkelen til kontoen din, bør du eksportere dataene igjen, ettersom du da ikke vil kunne dekryptere denne eksportfilen." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Kontokrypteringsnøkler er unike for hver Bitwarden sin brukerkonto, og du kan ikke importere en kryptert eksport til en annen konto." }, "exportMasterPassword": { "message": "Skriv inn ditt superpassord for å eksportere dine hvelvdataer." @@ -632,19 +632,19 @@ "message": "Delt" }, "learnOrg": { - "message": "Learn about Organizations" + "message": "Lær om organisasjoner" }, "learnOrgConfirmation": { - "message": "Bitwarden allows you to share your vault items with others by using an organization. Would you like to visit the bitwarden.com website to learn more?" + "message": "Bitwarden lar deg dele dine hvelvgjenstander med andre ved å bruke en organisasjon. Vil du besøke bitwarden.com-nettstedet for å lære mer?" }, "moveToOrganization": { - "message": "Move to Organization" + "message": "Flytt til organisasjon" }, "share": { "message": "Del" }, "movedItemToOrg": { - "message": "$ITEMNAME$ moved to $ORGNAME$", + "message": "$ITEMNAME$ flyttet til $ORGNAME$", "placeholders": { "itemname": { "content": "$1", @@ -657,7 +657,7 @@ } }, "moveToOrgDesc": { - "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + "message": "Velg en organisasjon som du ønsker å flytte denne gjenstanden til. Flytting til en organisasjon overfører eierskap til den aktuelle organisasjonen. Du vil ikke lenger være den direkte eieren av denne varen når den er flyttet." }, "learnMore": { "message": "Lær mer" @@ -816,13 +816,13 @@ "message": "Sett din sikkerhetsnøkkel inn i din datamaskins USB-uttak. Dersom den har en knapp, trykk på den." }, "webAuthnNewTab": { - "message": "To start the WebAuthn 2FA verification. Click the button below to open a new tab and follow the instructions provided in the new tab." + "message": "For å starte WebAuthn 2FA bekreftelsen. Klikk på knappen nedenfor for å åpne en ny fane og følge instruksene som er gitt i den nye fanen." }, "webAuthnNewTabOpen": { - "message": "Open new tab" + "message": "Åpne ny fane" }, "webAuthnAuthenticate": { - "message": "Authenticate WebAuthn" + "message": "Autentiser WebAuthn" }, "loginUnavailable": { "message": "Innloggingen er utilgjengelig" @@ -867,7 +867,7 @@ "message": "FIDO2 WebAuthn" }, "webAuthnDesc": { - "message": "Use any WebAuthn enabled security key to access your account." + "message": "Bruk en hvilken som helst WebAuthn aktivert sikkerhetsnøkkel til å få tilgang til kontoen din." }, "emailTitle": { "message": "E-post" @@ -918,10 +918,10 @@ "message": "Dette er for øyeblikket en eksperimentell egenskap. Bruk det på din egen risiko." }, "defaultAutoFillOnPageLoad": { - "message": "Default autofill setting for login items" + "message": "Standard autofyll innstilling for innloggingselementer" }, "defaultAutoFillOnPageLoadDesc": { - "message": "After enabling Auto-fill on Page Load, you can enable or disable the feature for individual login items. This is the default setting for login items that are not separately configured." + "message": "Etter aktivering av auto-utfylling på sidelasser, kan du aktivere eller deaktivere funksjonen for individuelle innloggingselementer. Dette er standardinnstillingen for innloggingselementer som ikke er satt opp separat." }, "itemAutoFillOnPageLoad": { "message": "Auto-fill on Page Load (if enabled in Options)" @@ -1616,10 +1616,10 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "Expiration Date" + "message": "Utløpsdato" }, "expirationDateDesc": { - "message": "If set, access to this Send will expire on the specified date and time.", + "message": "Hvis satt, vil tilgang til denne Send gå ut på angitt dato og klokkeslett.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "oneDay": { @@ -1635,25 +1635,25 @@ } }, "custom": { - "message": "Custom" + "message": "Egendefinert" }, "maximumAccessCount": { - "message": "Maximum Access Count" + "message": "Maksimal antall tilganger" }, "maximumAccessCountDesc": { - "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "message": "Hvis satt, vil ikke brukere lenger ha tilgang til dette Send når maksimal antall tilgang er nådd.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendPasswordDesc": { - "message": "Optionally require a password for users to access this Send.", + "message": "Eventuelt krever et passord for brukere å få tilgang til denne Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { - "message": "Private notes about this Send.", + "message": "Private notater om denne Send-en.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisableDesc": { - "message": "Disable this Send so that no one can access it.", + "message": "Deaktiver denne Send-en, slik at ingen får tilgang til den.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendShareDesc": { @@ -1703,54 +1703,54 @@ "message": "In order to choose a file using Safari, pop out to a new window by clicking this banner." }, "sendFileCalloutHeader": { - "message": "Before you start" + "message": "Før du starter" }, "sendFirefoxCustomDatePopoutMessage1": { - "message": "To use a calendar style date picker", + "message": "Hvis du vil bruke en kalenderstil-datovelger", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**To use a calendar style date picker ** click here to pop out your window.'" }, "sendFirefoxCustomDatePopoutMessage2": { - "message": "click here", + "message": "kilkk her", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker **click here** to pop out your window.'" }, "sendFirefoxCustomDatePopoutMessage3": { - "message": "to pop out your window.", + "message": "å pope ut vinduet.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker click here **to pop out your window.**'" }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Utløpsdatoen angitt er ikke gyldig." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Slettingsdatoen som er gitt er ikke gyldig." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Utløps dato og tid er påkrevd." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Det kreves en slettingsdato og -tid." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Det oppstod en feil ved lagring av slettingen og utløpsdatoene." }, "hideEmail": { - "message": "Hide my email address from recipients." + "message": "Skjul min e-postadresse fra mottakere." }, "sendOptionsPolicyInEffect": { - "message": "One or more organization policies are affecting your Send options." + "message": "En eller flere av organisasjons retningslinjer påvirker generatorinnstillingene dine." }, "passwordPrompt": { "message": "Master password re-prompt" }, "passwordConfirmation": { - "message": "Master password confirmation" + "message": "Superpassord bekreftelse" }, "passwordConfirmationDesc": { - "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + "message": "Denne handlingen er beskyttet. For å fortsette, skriv inn superpassordet på nytt for å bekrefte identiteten din." }, "emailVerificationRequired": { - "message": "Email Verification Required" + "message": "E-postbekreftelse kreves" }, "emailVerificationRequiredDesc": { - "message": "You must verify your email to use this feature. You can verify your email in the web vault." + "message": "Du må bekrefte e-posten din for å bruke denne funksjonen. Du kan bekrefte e-postadressen din i netthvelvet." } } diff --git a/src/_locales/pl/messages.json b/src/_locales/pl/messages.json index 8d3a767afc..813839fdea 100644 --- a/src/_locales/pl/messages.json +++ b/src/_locales/pl/messages.json @@ -635,7 +635,7 @@ "message": "Dowiedz się więcej o organizacjach" }, "learnOrgConfirmation": { - "message": "Bitwarden pozwala na udostępnianie zawartości sejfu innym osobom za pośrednictwem organizacji. Czy chcesz odwiedzić witrynę bitwarden.com, aby dowiedzieć się więcej?" + "message": "Bitwarden pozwala na udostępnianie zawartości sejfu innym osobom za pośrednictwem organizacji. Czy chcesz odwiedzić stronę bitwarden.com, aby dowiedzieć się więcej?" }, "moveToOrganization": { "message": "Przenieś do organizacji" @@ -644,7 +644,7 @@ "message": "Udostępnij" }, "movedItemToOrg": { - "message": "Element $ITEMNAME$ przeniesiono do organizacji $ORGNAME$", + "message": "Element $ITEMNAME$ został przeniesiony do organizacji $ORGNAME$", "placeholders": { "itemname": { "content": "$1", @@ -657,7 +657,7 @@ } }, "moveToOrgDesc": { - "message": "Wybierz organizację, do której chcesz przenieść ten element. Przeniesienie do organizacji przenosi uprawnienia właścicielskie względem elementu na tę organizację. Po przeniesieniu elementu utracisz bezpośrednie uprawnienia właścicielskie." + "message": "Wybierz organizację, do której chcesz przenieść ten element. Ta czynność spowoduje utratę własności elementu i przenosi te uprawnienia do organizacji." }, "learnMore": { "message": "Dowiedz się więcej" @@ -918,22 +918,22 @@ "message": "Obecnie jest to funkcja eksperymentalna. Używaj na własne ryzyko." }, "defaultAutoFillOnPageLoad": { - "message": "Domyślne ustawienia autouzupełniania dla danych logowania" + "message": "Domyślne ustawienie autouzupełniania" }, "defaultAutoFillOnPageLoadDesc": { - "message": "Gdy włączysz opcję autouzupełniania po wczytaniu strony, możesz włączyć lub wyłączyć tę funkcję dla poszczególnych danych logowania. Jest to domyślne ustawienie dla danych logowania, które nie zostały skonfigurowane oddzielnie." + "message": "Po włączeniu autouzupełnianiu po załadowaniu strony, możesz włączyć lub wyłączyć tę funkcję dla poszczególnych wpisów." }, "itemAutoFillOnPageLoad": { - "message": "Autouzupełnianie po wczytaniu strony (jeśli włączone w Opcjach)" + "message": "Automatycznie uzupełniaj po załadowaniu strony (jeśli włączono w opcjach)" }, "autoFillOnPageLoadUseDefault": { - "message": "Użyj ustawienia domyślnego" + "message": "Użyj domyślnego ustawienia" }, "autoFillOnPageLoadYes": { - "message": "Automatycznie uzupełniaj po wczytaniu strony" + "message": "Automatycznie uzupełniaj po załadowaniu strony" }, "autoFillOnPageLoadNo": { - "message": "Nie uzupełniaj automatycznie po wczytaniu strony" + "message": "Nie uzupełniaj automatycznie po załadowaniu strony" }, "commandOpenPopup": { "message": "Otwórz sejf w oknie" @@ -990,10 +990,10 @@ "message": "Wyświetlaj rozpoznawalną ikonę serwisu obok danych logowania w sejfie." }, "disableBadgeCounter": { - "message": "Wyłącz licznik danych logowania" + "message": "Wyłącz licznik logowań" }, "disableBadgeCounterDesc": { - "message": "Licznik informuje, ile danych logowania zawiera sejf dla obecnej strony." + "message": "Licznik informuje, ile razy zalogowałeś się na obecnej stronie w sejfie." }, "cardholderName": { "message": "Właściciel karty" @@ -1694,7 +1694,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendLinuxChromiumFileWarning": { - "message": "Aby wybrać plik, otwórz rozszerzenie w pasku bocznym (jeśli to możliwe) albo w nowym oknie po kliknięciu tego banera." + "message": "Aby wybrać plik, otwórz rozszerzenie na pasku bocznym (jeśli to możliwe) lub w nowym oknie." }, "sendFirefoxFileWarning": { "message": "Aby wybrać plik za pomocą przeglądarki Firefox, otwórz rozszerzenie w nowym oknie." @@ -1748,9 +1748,9 @@ "message": "Ta operacja jest chroniona. Aby kontynuować, wpisz ponownie hasło główne." }, "emailVerificationRequired": { - "message": "Wymagana weryfikacja adresu e-mail" + "message": "Weryfikacja adresu e-mail jest wymagana" }, "emailVerificationRequiredDesc": { - "message": "Musisz zweryfikować swój adres e-mail, aby korzystać z tej funkcji. Swój adres e-mail możesz zweryfikować w sejfie internetowym." + "message": "Musisz zweryfikować adres e-mail, aby korzystać z tej funkcji. Adres możesz zweryfikować w sejfie internetowym." } } diff --git a/src/_locales/si/messages.json b/src/_locales/si/messages.json index 4c18f3769a..4f769d4769 100644 --- a/src/_locales/si/messages.json +++ b/src/_locales/si/messages.json @@ -32,7 +32,7 @@ "message": "Submit" }, "emailAddress": { - "message": "Email Address" + "message": "වි-තැපැල් ලිපිනය" }, "masterPass": { "message": "Master Password" @@ -56,7 +56,7 @@ "message": "My Vault" }, "tools": { - "message": "Tools" + "message": "මෙවලම්" }, "settings": { "message": "සැකසුම්" @@ -65,25 +65,25 @@ "message": "Current Tab" }, "copyPassword": { - "message": "Copy Password" + "message": "මුරපදය පිටපත් කරන්න" }, "copyNote": { - "message": "Copy Note" + "message": "සටහන පිටපත් කරන්න" }, "copyUri": { "message": "Copy URI" }, "copyUsername": { - "message": "Copy Username" + "message": "පරිශීලකනාමය පිටපත් කරන්න" }, "copyNumber": { - "message": "Copy Number" + "message": "අංකය පිටපත් කරන්න" }, "copySecurityCode": { - "message": "Copy Security Code" + "message": "ආරක්ෂක කේතය පිටපත් කරන්න" }, "autoFill": { - "message": "Auto-fill" + "message": "ස්වයං-පිරවීම" }, "generatePasswordCopied": { "message": "Generate Password (copied)" @@ -101,7 +101,7 @@ "message": "There are no logins available to auto-fill for the current browser tab." }, "addLogin": { - "message": "Add a Login" + "message": "පිවිසුමක් එකතු කරන්න" }, "addItem": { "message": "Add Item" @@ -116,13 +116,13 @@ "message": "Get master password hint" }, "continue": { - "message": "Continue" + "message": "ඉදිරියට" }, "verificationCode": { "message": "Verification Code" }, "account": { - "message": "Account" + "message": "ගිණුම" }, "changeMasterPassword": { "message": "Change Master Password" @@ -139,25 +139,25 @@ "message": "Two-step Login" }, "logOut": { - "message": "Log Out" + "message": "නික්මෙන්න" }, "about": { - "message": "About" + "message": "පිලිබඳව" }, "version": { - "message": "Version" + "message": "අනුවාදය" }, "save": { - "message": "Save" + "message": "සුරකින්න" }, "move": { "message": "Move" }, "addFolder": { - "message": "Add Folder" + "message": "බහාලුම එකතු කරන්න" }, "name": { - "message": "Name" + "message": "නම" }, "editFolder": { "message": "Edit Folder" @@ -166,7 +166,7 @@ "message": "Delete Folder" }, "folders": { - "message": "Folders" + "message": "බහාලුම්" }, "noFolders": { "message": "There are no folders to list." @@ -240,7 +240,7 @@ "message": "Search vault" }, "edit": { - "message": "Edit" + "message": "සංස්කරණය" }, "view": { "message": "View" @@ -252,28 +252,28 @@ "message": "Item Information" }, "username": { - "message": "Username" + "message": "පරිශීලක නාමය" }, "password": { - "message": "Password" + "message": "මුරපදය" }, "passphrase": { "message": "Passphrase" }, "favorite": { - "message": "Favorite" + "message": "ප්‍රියතමය" }, "notes": { - "message": "Notes" + "message": "සටහන්" }, "note": { - "message": "Note" + "message": "සටහන" }, "editItem": { "message": "Edit Item" }, "folder": { - "message": "Folder" + "message": "බහාලුම" }, "deleteItem": { "message": "Delete Item" @@ -282,10 +282,10 @@ "message": "View Item" }, "launch": { - "message": "Launch" + "message": "දියත්කරන්න" }, "website": { - "message": "Website" + "message": "වියමන අඩවිය" }, "toggleVisibility": { "message": "Toggle Visibility" @@ -294,7 +294,7 @@ "message": "Manage" }, "other": { - "message": "Other" + "message": "වෙනත්" }, "rateExtension": { "message": "Rate the Extension" @@ -312,7 +312,7 @@ "message": "Your vault is locked. Verify your master password to continue." }, "unlock": { - "message": "Unlock" + "message": "අගුලුහරින්න" }, "loggedInAsOn": { "message": "Logged in as $EMAIL$ on $HOSTNAME$.", @@ -334,40 +334,40 @@ "message": "Vault Timeout" }, "lockNow": { - "message": "Lock Now" + "message": "දැන් අගුලුදමන්න" }, "immediately": { "message": "Immediately" }, "tenSeconds": { - "message": "10 seconds" + "message": "තත්පර 10" }, "twentySeconds": { - "message": "20 seconds" + "message": "තත්පර 20" }, "thirtySeconds": { - "message": "30 seconds" + "message": "තත්පර 30" }, "oneMinute": { - "message": "1 minute" + "message": "විනාඩි 1" }, "twoMinutes": { - "message": "2 minutes" + "message": "විනාඩි 2" }, "fiveMinutes": { - "message": "5 minutes" + "message": "විනාඩි 5" }, "fifteenMinutes": { - "message": "15 minutes" + "message": "විනාඩි 15" }, "thirtyMinutes": { - "message": "30 minutes" + "message": "විනාඩි 30" }, "oneHour": { - "message": "1 hour" + "message": "පැය 1" }, "fourHours": { - "message": "4 hours" + "message": "පැය 4" }, "onLocked": { "message": "On System Lock" @@ -379,7 +379,7 @@ "message": "Never" }, "security": { - "message": "Security" + "message": "ආරක්ෂාව" }, "errorOccurred": { "message": "An error has occurred" @@ -513,7 +513,7 @@ "message": "Are you sure you want to overwrite the current password?" }, "searchFolder": { - "message": "Search folder" + "message": "බහාලුම සොයන්න" }, "searchCollection": { "message": "Search collection" @@ -555,7 +555,7 @@ "message": "Should Bitwarden remember this password for you?" }, "notificationAddSave": { - "message": "Yes, Save Now" + "message": "ඔව්, දැන් සුරකින්න" }, "notificationNeverSave": { "message": "Never for this website" @@ -570,7 +570,7 @@ "message": "Do you want to update this password in Bitwarden?" }, "notificationChangeSave": { - "message": "Yes, Update Now" + "message": "ඔව්, දැන් යාවත්කාල කරන්න" }, "disableContextMenuItem": { "message": "Disable Context Menu Options" @@ -586,7 +586,7 @@ "message": "Choose the default way that URI match detection is handled for logins when performing actions such as auto-fill." }, "theme": { - "message": "Theme" + "message": "තේමාව" }, "themeDesc": { "message": "Change the application's color theme." @@ -610,7 +610,7 @@ "message": "File Format" }, "warning": { - "message": "WARNING", + "message": "අවවාදයයි", "description": "WARNING (should stay in capitalized letters if the language permits)" }, "confirmVaultExport": { @@ -693,7 +693,7 @@ "message": "The attachment has been saved." }, "file": { - "message": "File" + "message": "ගොනුව" }, "selectFile": { "message": "Select a file." @@ -1014,40 +1014,40 @@ "message": "Expiration" }, "january": { - "message": "January" + "message": "දුරුතු" }, "february": { - "message": "February" + "message": "නවම්" }, "march": { - "message": "March" + "message": "මැදින්" }, "april": { - "message": "April" + "message": "බක්" }, "may": { - "message": "May" + "message": "වෙසක්" }, "june": { - "message": "June" + "message": "පොසොන්" }, "july": { - "message": "July" + "message": "ඇසළ" }, "august": { - "message": "August" + "message": "නිකිණි" }, "september": { - "message": "September" + "message": "බිනර" }, "october": { - "message": "October" + "message": "වප්" }, "november": { - "message": "November" + "message": "ඉල්" }, "december": { - "message": "December" + "message": "උඳුවප්" }, "securityCode": { "message": "Security Code" diff --git a/src/_locales/sl/messages.json b/src/_locales/sl/messages.json index 97df758c30..2faf0b1b59 100644 --- a/src/_locales/sl/messages.json +++ b/src/_locales/sl/messages.json @@ -151,7 +151,7 @@ "message": "Shrani" }, "move": { - "message": "Move" + "message": "Premakni" }, "addFolder": { "message": "Dodaj mapo" @@ -513,10 +513,10 @@ "message": "Ali ste prepričani, da želite prepisati vaše trenutno geslo?" }, "searchFolder": { - "message": "Search folder" + "message": "Preišči mapo" }, "searchCollection": { - "message": "Search collection" + "message": "Preišči zbirko" }, "searchType": { "message": "Search type" @@ -870,10 +870,10 @@ "message": "Use any WebAuthn enabled security key to access your account." }, "emailTitle": { - "message": "Email" + "message": "E-pošta" }, "emailDesc": { - "message": "Verification codes will be emailed to you." + "message": "Potrditvene kode vam bodo posredovane po e-pošti." }, "selfHostedEnvironment": { "message": "Self-hosted Environment" @@ -888,10 +888,10 @@ "message": "For advanced users. You can specify the base URL of each service independently." }, "baseUrl": { - "message": "Server URL" + "message": "URL naslov strežnika" }, "apiUrl": { - "message": "API Server URL" + "message": "URL naslov API strežnika" }, "webVaultUrl": { "message": "Web Vault Server URL" @@ -927,7 +927,7 @@ "message": "Auto-fill on Page Load (if enabled in Options)" }, "autoFillOnPageLoadUseDefault": { - "message": "Use default setting" + "message": "Uporabi privzete nastavitve" }, "autoFillOnPageLoadYes": { "message": "Auto-fill on page load" @@ -969,10 +969,10 @@ "message": "Drag to sort" }, "cfTypeText": { - "message": "Text" + "message": "Besedilo" }, "cfTypeHidden": { - "message": "Hidden" + "message": "Skrito" }, "cfTypeBoolean": { "message": "Boolean" @@ -1152,28 +1152,28 @@ "message": "Collections" }, "favorites": { - "message": "Favorites" + "message": "Priljubljeno" }, "popOutNewWindow": { "message": "Pop out to a new window" }, "refresh": { - "message": "Refresh" + "message": "Osveži" }, "cards": { - "message": "Cards" + "message": "Plačilne kartice" }, "identities": { - "message": "Identities" + "message": "Identitete" }, "logins": { - "message": "Logins" + "message": "Prijave" }, "secureNotes": { "message": "Secure Notes" }, "clear": { - "message": "Clear", + "message": "Počisti", "description": "To clear something out. example: To clear browser history." }, "checkPassword": { diff --git a/src/background/contextMenus.background.ts b/src/background/contextMenus.background.ts index 19ee4421c2..f690d28320 100644 --- a/src/background/contextMenus.background.ts +++ b/src/background/contextMenus.background.ts @@ -29,6 +29,8 @@ export default class ContextMenusBackground { this.contextMenus.onClicked.addListener(async (info: any, tab: any) => { if (info.menuItemId === 'generate-password') { await this.generatePasswordToClipboard(); + } else if (info.menuItemId === 'copy-identifier') { + await this.getClickedElement(); } else if (info.parentMenuItemId === 'autofill' || info.parentMenuItemId === 'copy-username' || info.parentMenuItemId === 'copy-password' || @@ -45,6 +47,15 @@ export default class ContextMenusBackground { this.passwordGenerationService.addHistory(password); } + private async getClickedElement() { + const tab = await BrowserApi.getTabFromCurrentWindow(); + if (tab == null) { + return; + } + + BrowserApi.tabSendMessageData(tab, 'getClickedElement'); + } + private async cipherAction(info: any) { const id = info.menuItemId.split('_')[1]; if (id === 'noop') { diff --git a/src/background/idle.background.ts b/src/background/idle.background.ts index c9dfb7b481..8b66fb5473 100644 --- a/src/background/idle.background.ts +++ b/src/background/idle.background.ts @@ -1,10 +1,8 @@ -import { ConstantsService } from 'jslib-common/services/constants.service'; - -import { - StorageService, - VaultTimeoutService, -} from 'jslib-common/abstractions'; import { NotificationsService } from 'jslib-common/abstractions/notifications.service'; +import { StorageService } from 'jslib-common/abstractions/storage.service'; +import { VaultTimeoutService } from 'jslib-common/abstractions/vaultTimeout.service'; + +import { ConstantsService } from 'jslib-common/services/constants.service'; const IdleInterval = 60 * 5; // 5 minutes diff --git a/src/background/main.background.ts b/src/background/main.background.ts index 2e7fa19fac..161ca0ced9 100644 --- a/src/background/main.background.ts +++ b/src/background/main.background.ts @@ -1,69 +1,65 @@ -import { CipherType } from 'jslib-common/enums'; import { CipherRepromptType } from 'jslib-common/enums/cipherRepromptType'; +import { CipherType } from 'jslib-common/enums/cipherType'; -import { - ApiService, - AppIdService, - AuditService, - AuthService, - CipherService, - CollectionService, - ConstantsService, - ContainerService, - EnvironmentService, - FolderService, - PasswordGenerationService, - SettingsService, - StateService, - SyncService, - TokenService, - TotpService, - UserService, -} from 'jslib-common/services'; +import { ApiService } from 'jslib-common/services/api.service'; +import { AppIdService } from 'jslib-common/services/appId.service'; +import { AuditService } from 'jslib-common/services/audit.service'; +import { AuthService } from 'jslib-common/services/auth.service'; +import { CipherService } from 'jslib-common/services/cipher.service'; +import { CollectionService } from 'jslib-common/services/collection.service'; import { ConsoleLogService } from 'jslib-common/services/consoleLog.service'; +import { ConstantsService } from 'jslib-common/services/constants.service'; +import { ContainerService } from 'jslib-common/services/container.service'; +import { EnvironmentService } from 'jslib-common/services/environment.service'; import { EventService } from 'jslib-common/services/event.service'; import { ExportService } from 'jslib-common/services/export.service'; import { FileUploadService } from 'jslib-common/services/fileUpload.service'; +import { FolderService } from 'jslib-common/services/folder.service'; import { NotificationsService } from 'jslib-common/services/notifications.service'; +import { PasswordGenerationService } from 'jslib-common/services/passwordGeneration.service'; import { PolicyService } from 'jslib-common/services/policy.service'; import { SearchService } from 'jslib-common/services/search.service'; import { SendService } from 'jslib-common/services/send.service'; +import { SettingsService } from 'jslib-common/services/settings.service'; +import { StateService } from 'jslib-common/services/state.service'; +import { SyncService } from 'jslib-common/services/sync.service'; import { SystemService } from 'jslib-common/services/system.service'; +import { TokenService } from 'jslib-common/services/token.service'; +import { TotpService } from 'jslib-common/services/totp.service'; +import { UserService } from 'jslib-common/services/user.service'; import { WebCryptoFunctionService } from 'jslib-common/services/webCryptoFunction.service'; -import { - ApiService as ApiServiceAbstraction, - AppIdService as AppIdServiceAbstraction, - AuditService as AuditServiceAbstraction, - AuthService as AuthServiceAbstraction, - CipherService as CipherServiceAbstraction, - CollectionService as CollectionServiceAbstraction, - CryptoService as CryptoServiceAbstraction, - EnvironmentService as EnvironmentServiceAbstraction, - FolderService as FolderServiceAbstraction, - I18nService as I18nServiceAbstraction, - LogService as LogServiceAbstraction, - MessagingService as MessagingServiceAbstraction, - PasswordGenerationService as PasswordGenerationServiceAbstraction, - PlatformUtilsService as PlatformUtilsServiceAbstraction, - SettingsService as SettingsServiceAbstraction, - StateService as StateServiceAbstraction, - StorageService as StorageServiceAbstraction, - SyncService as SyncServiceAbstraction, - TokenService as TokenServiceAbstraction, - TotpService as TotpServiceAbstraction, - UserService as UserServiceAbstraction, - VaultTimeoutService as VaultTimeoutServiceAbstraction, -} from 'jslib-common/abstractions'; +import { ApiService as ApiServiceAbstraction } from 'jslib-common/abstractions/api.service'; +import { AppIdService as AppIdServiceAbstraction } from 'jslib-common/abstractions/appId.service'; +import { AuditService as AuditServiceAbstraction } from 'jslib-common/abstractions/audit.service'; +import { AuthService as AuthServiceAbstraction } from 'jslib-common/abstractions/auth.service'; +import { CipherService as CipherServiceAbstraction } from 'jslib-common/abstractions/cipher.service'; +import { CollectionService as CollectionServiceAbstraction } from 'jslib-common/abstractions/collection.service'; +import { CryptoService as CryptoServiceAbstraction } from 'jslib-common/abstractions/crypto.service'; import { CryptoFunctionService as CryptoFunctionServiceAbstraction } from 'jslib-common/abstractions/cryptoFunction.service'; +import { EnvironmentService as EnvironmentServiceAbstraction } from 'jslib-common/abstractions/environment.service'; import { EventService as EventServiceAbstraction } from 'jslib-common/abstractions/event.service'; import { ExportService as ExportServiceAbstraction } from 'jslib-common/abstractions/export.service'; import { FileUploadService as FileUploadServiceAbstraction } from 'jslib-common/abstractions/fileUpload.service'; +import { FolderService as FolderServiceAbstraction } from 'jslib-common/abstractions/folder.service'; +import { I18nService as I18nServiceAbstraction } from 'jslib-common/abstractions/i18n.service'; +import { LogService as LogServiceAbstraction } from 'jslib-common/abstractions/log.service'; +import { MessagingService as MessagingServiceAbstraction } from 'jslib-common/abstractions/messaging.service'; import { NotificationsService as NotificationsServiceAbstraction } from 'jslib-common/abstractions/notifications.service'; +import { PasswordGenerationService as PasswordGenerationServiceAbstraction } from 'jslib-common/abstractions/passwordGeneration.service'; +import { PlatformUtilsService as PlatformUtilsServiceAbstraction } from 'jslib-common/abstractions/platformUtils.service'; import { PolicyService as PolicyServiceAbstraction } from 'jslib-common/abstractions/policy.service'; import { SearchService as SearchServiceAbstraction } from 'jslib-common/abstractions/search.service'; import { SendService as SendServiceAbstraction } from 'jslib-common/abstractions/send.service'; +import { SettingsService as SettingsServiceAbstraction } from 'jslib-common/abstractions/settings.service'; +import { StateService as StateServiceAbstraction } from 'jslib-common/abstractions/state.service'; +import { StorageService as StorageServiceAbstraction } from 'jslib-common/abstractions/storage.service'; +import { SyncService as SyncServiceAbstraction } from 'jslib-common/abstractions/sync.service'; import { SystemService as SystemServiceAbstraction } from 'jslib-common/abstractions/system.service'; +import { TokenService as TokenServiceAbstraction } from 'jslib-common/abstractions/token.service'; +import { TotpService as TotpServiceAbstraction } from 'jslib-common/abstractions/totp.service'; +import { UserService as UserServiceAbstraction } from 'jslib-common/abstractions/user.service'; +import { VaultTimeoutService as VaultTimeoutServiceAbstraction } from 'jslib-common/abstractions/vaultTimeout.service'; import { AutofillService as AutofillServiceAbstraction } from '../services/abstractions/autofill.service'; import { Utils } from 'jslib-common/misc/utils'; @@ -197,7 +193,7 @@ export default class MainBackground { this.policyService = new PolicyService(this.userService, this.storageService); this.vaultTimeoutService = new VaultTimeoutService(this.cipherService, this.folderService, this.collectionService, this.cryptoService, this.platformUtilsService, this.storageService, - this.messagingService, this.searchService, this.userService, this.tokenService, + this.messagingService, this.searchService, this.userService, this.tokenService, this.policyService, async () => { if (this.notificationsService != null) { this.notificationsService.updateConnection(false); @@ -244,7 +240,7 @@ export default class MainBackground { this.runtimeBackground = new RuntimeBackground(this, this.autofillService, this.cipherService, this.platformUtilsService as BrowserPlatformUtilsService, this.storageService, this.i18nService, this.notificationsService, this.systemService, this.vaultTimeoutService, - this.environmentService, this.policyService, this.userService, this.messagingService); + this.environmentService, this.policyService, this.userService, this.messagingService, this.folderService); this.nativeMessagingBackground = new NativeMessagingBackground(this.storageService, this.cryptoService, this.cryptoFunctionService, this.vaultTimeoutService, this.runtimeBackground, this.i18nService, this.userService, this.messagingService, this.appIdService, this.platformUtilsService); @@ -512,6 +508,14 @@ export default class MainBackground { title: this.i18nService.t('generatePasswordCopied'), }); + await this.contextMenusCreate({ + type: 'normal', + id: 'copy-identifier', + parentId: 'root', + contexts: ['all'], + title: this.i18nService.t('copyElementIdentifier'), + }); + this.buildingContextMenu = false; } diff --git a/src/background/nativeMessaging.background.ts b/src/background/nativeMessaging.background.ts index 53d7aa1343..4f11bc3302 100644 --- a/src/background/nativeMessaging.background.ts +++ b/src/background/nativeMessaging.background.ts @@ -10,7 +10,7 @@ import { VaultTimeoutService } from 'jslib-common/abstractions/vaultTimeout.serv import { ConstantsService } from 'jslib-common/services/constants.service'; import { Utils } from 'jslib-common/misc/utils'; -import { SymmetricCryptoKey } from 'jslib-common/models/domain'; +import { SymmetricCryptoKey } from 'jslib-common/models/domain/symmetricCryptoKey'; import { BrowserApi } from '../browser/browserApi'; import RuntimeBackground from './runtime.background'; diff --git a/src/background/runtime.background.ts b/src/background/runtime.background.ts index e51e5c8161..3034c66f58 100644 --- a/src/background/runtime.background.ts +++ b/src/background/runtime.background.ts @@ -1,4 +1,4 @@ -import { CipherType } from 'jslib-common/enums'; +import { CipherType } from 'jslib-common/enums/cipherType'; import { CipherView } from 'jslib-common/models/view/cipherView'; import { LoginUriView } from 'jslib-common/models/view/loginUriView'; @@ -6,6 +6,7 @@ import { LoginView } from 'jslib-common/models/view/loginView'; import { CipherService } from 'jslib-common/abstractions/cipher.service'; import { EnvironmentService } from 'jslib-common/abstractions/environment.service'; +import { FolderService } from 'jslib-common/abstractions/folder.service'; import { I18nService } from 'jslib-common/abstractions/i18n.service'; import { MessagingService } from 'jslib-common/abstractions/messaging.service'; import { NotificationsService } from 'jslib-common/abstractions/notifications.service'; @@ -24,7 +25,6 @@ import MainBackground from './main.background'; import { Utils } from 'jslib-common/misc/utils'; -import { OrganizationUserStatusType } from 'jslib-common/enums/organizationUserStatusType'; import { PolicyType } from 'jslib-common/enums/policyType'; export default class RuntimeBackground { @@ -39,7 +39,8 @@ export default class RuntimeBackground { private notificationsService: NotificationsService, private systemService: SystemService, private vaultTimeoutService: VaultTimeoutService, private environmentService: EnvironmentService, private policyService: PolicyService, - private userService: UserService, private messagingService: MessagingService) { + private userService: UserService, private messagingService: MessagingService, + private folderService: FolderService) { // onInstalled listener must be wired up before anything else, so we do it in the ctor chrome.runtime.onInstalled.addListener((details: any) => { @@ -107,7 +108,7 @@ export default class RuntimeBackground { this.removeTabFromNotificationQueue(sender.tab); break; case 'bgAddSave': - await this.saveAddLogin(sender.tab); + await this.saveAddLogin(sender.tab, msg.folder); break; case 'bgChangeSave': await this.saveChangePassword(sender.tab); @@ -195,6 +196,8 @@ export default class RuntimeBackground { type: 'info', }); break; + case 'getClickedElementResponse': + this.platformUtilsService.copyToClipboard(msg.identifier, { window: window }); default: break; } @@ -216,7 +219,7 @@ export default class RuntimeBackground { this.pageDetailsToAutoFill = []; } - private async saveAddLogin(tab: any) { + private async saveAddLogin(tab: any, folderId: string) { if (await this.vaultTimeoutService.isLocked()) { return; } @@ -247,6 +250,13 @@ export default class RuntimeBackground { model.type = CipherType.Login; model.login = loginModel; + if (!Utils.isNullOrWhitespace(folderId)) { + const folders = await this.folderService.getAllDecrypted(); + if (folders.some(x => x.id === folderId)) { + model.folderId = folderId; + } + } + const cipher = await this.cipherService.encrypt(model); await this.cipherService.saveWithServer(cipher); } @@ -450,24 +460,14 @@ export default class RuntimeBackground { notificationChangeSave: this.i18nService.t('notificationChangeSave'), notificationChangeDesc: this.i18nService.t('notificationChangeDesc'), }; + } else if (responseCommand === 'notificationBarGetFoldersList') { + responseData.folders = await this.folderService.getAllDecrypted(); } await BrowserApi.tabSendMessageData(tab, responseCommand, responseData); } private async allowPersonalOwnership(): Promise { - const personalOwnershipPolicies = await this.policyService.getAll(PolicyType.PersonalOwnership); - if (personalOwnershipPolicies != null) { - for (const policy of personalOwnershipPolicies) { - if (policy.enabled) { - const org = await this.userService.getOrganization(policy.organizationId); - if (org != null && org.enabled && org.usePolicies && !org.canManagePolicies - && org.status === OrganizationUserStatusType.Confirmed) { - return false; - } - } - } - } - return true; + return !await this.policyService.policyAppliesToUser(PolicyType.PersonalOwnership); } } diff --git a/src/background/webRequest.background.ts b/src/background/webRequest.background.ts index 65e080ec96..4c858c1034 100644 --- a/src/background/webRequest.background.ts +++ b/src/background/webRequest.background.ts @@ -2,7 +2,7 @@ import { CipherService } from 'jslib-common/abstractions/cipher.service'; import { PlatformUtilsService } from 'jslib-common/abstractions/platformUtils.service'; import { VaultTimeoutService } from 'jslib-common/abstractions/vaultTimeout.service'; -import { UriMatchType } from 'jslib-common/enums'; +import { UriMatchType } from 'jslib-common/enums/uriMatchType'; export default class WebRequestBackground { private pendingAuthRequests: any[] = []; diff --git a/src/content/autofill.js b/src/content/autofill.js index dd813ff628..b4aa58397b 100644 --- a/src/content/autofill.js +++ b/src/content/autofill.js @@ -835,12 +835,14 @@ document.elementForOPID = getElementByOpId; - // normalize the event since firefox handles events differently than others + // normalize the event based on API support function normalizeEvent(el, eventName) { var ev; - if (isFirefox) { - ev = document.createEvent('KeyboardEvent'); - ev.initKeyEvent(eventName, true, false, null, false, false, false, false, 0, 0); + if ('KeyboardEvent' in window) { + ev = new window.KeyboardEvent(eventName, { + bubbles: true, + cancelable: false, + }); } else { ev = el.ownerDocument.createEvent('Events'); diff --git a/src/content/contextMenuHandler.ts b/src/content/contextMenuHandler.ts new file mode 100644 index 0000000000..e4be3aa1a8 --- /dev/null +++ b/src/content/contextMenuHandler.ts @@ -0,0 +1,45 @@ +const inputTags = ['input', 'textarea', 'select']; +const attributes = ['id', 'name', 'label-aria', 'placeholder']; +let clickedEl: HTMLElement = null; + +// Find the best attribute to be used as the Name for an element in a custom field. +function getClickedElementIdentifier() { + if (clickedEl == null) { + return 'Unable to identify clicked element.'; + } + + if (!inputTags.includes(clickedEl.nodeName.toLowerCase())) { + return 'Invalid element type.'; + } + + for (const attr of attributes) { + const attributeValue = clickedEl.getAttribute(attr); + const selector = '[' + attr + '="' + attributeValue + '"]'; + if (!isNullOrEmpty(attributeValue) && document.querySelectorAll(selector)?.length === 1) { + return attributeValue; + } + } + return 'No unique identifier found.'; +} + +function isNullOrEmpty(s: string) { + return s == null || s === ''; +} + +// We only have access to the element that's been clicked when the context menu is first opened. +// Remember it for use later. +document.addEventListener('contextmenu', event => { + clickedEl = event.target as HTMLElement; +}); + +// Runs when the 'Copy Custom Field Name' context menu item is actually clicked. +chrome.runtime.onMessage.addListener(event => { + if (event.command === 'getClickedElement') { + const identifier = getClickedElementIdentifier(); + chrome.runtime.sendMessage({ + command: 'getClickedElementResponse', + sender: 'contextMenuHandler', + identifier: identifier, + }); + } +}); diff --git a/src/manifest.json b/src/manifest.json index 0147a1caa0..cb79e00627 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "__MSG_extName__", "short_name": "__MSG_appName__", - "version": "1.51.1", + "version": "1.52.1", "description": "__MSG_extDesc__", "default_locale": "en", "author": "Bitwarden Inc.", @@ -20,7 +20,8 @@ "js": [ "content/autofill.js", "content/autofiller.js", - "content/notificationBar.js" + "content/notificationBar.js", + "content/contextMenuHandler.js" ], "matches": [ "http://*/*", diff --git a/src/notification/bar.html b/src/notification/bar.html index efacf8d878..d5b8c95b87 100644 --- a/src/notification/bar.html +++ b/src/notification/bar.html @@ -23,6 +23,7 @@
+
diff --git a/src/notification/bar.js b/src/notification/bar.js index a5e55ca664..070b293440 100644 --- a/src/notification/bar.js +++ b/src/notification/bar.js @@ -17,7 +17,6 @@ document.addEventListener('DOMContentLoaded', () => { // delay 50ms so that we get proper body dimensions setTimeout(load, 50); - function load() { var closeButton = document.getElementById('close-button'), @@ -34,10 +33,12 @@ document.addEventListener('DOMContentLoaded', () => { if (bodyRect.width < 768) { document.querySelector('#template-add .add-save').textContent = i18n.yes; document.querySelector('#template-add .never-save').textContent = i18n.never; + document.querySelector('#template-add .select-folder').style.display = 'none'; document.querySelector('#template-change .change-save').textContent = i18n.yes; } else { document.querySelector('#template-add .add-save').textContent = i18n.notificationAddSave; document.querySelector('#template-add .never-save').textContent = i18n.notificationNeverSave; + document.querySelector('#template-add .select-folder').style.display = 'initial'; document.querySelector('#template-change .change-save').textContent = i18n.notificationChangeSave; } @@ -52,8 +53,10 @@ document.addEventListener('DOMContentLoaded', () => { addButton.addEventListener('click', (e) => { e.preventDefault(); + const folderId = document.querySelector('#template-add-clone .select-folder').value; sendPlatformMessage({ - command: 'bgAddSave' + command: 'bgAddSave', + folder: folderId, }); }); @@ -63,6 +66,17 @@ document.addEventListener('DOMContentLoaded', () => { command: 'bgNeverSave' }); }); + + const responseFoldersCommand = 'notificationBarGetFoldersList'; + chrome.runtime.onMessage.addListener((msg) => { + if (msg.command === responseFoldersCommand && msg.data) { + fillSelectorWithFolders(msg.data.folders); + } + }); + sendPlatformMessage({ + command: 'bgGetDataForTab', + responseCommand: responseFoldersCommand + }); } else if (getQueryVariable('change')) { setContent(document.getElementById('template-change')); var changeButton = document.querySelector('#template-change-clone .change-save'); @@ -120,4 +134,13 @@ document.addEventListener('DOMContentLoaded', () => { function sendPlatformMessage(msg) { chrome.runtime.sendMessage(msg); } + + function fillSelectorWithFolders(folders) { + const select = document.querySelector('#template-add-clone .select-folder'); + select.appendChild(new Option(chrome.i18n.getMessage('selectFolder'), null, true)); + folders.forEach((folder) => { + //Select "No Folder" (id=null) folder by default + select.appendChild(new Option(folder.name, folder.id || '', false)); + }); + } }); diff --git a/src/notification/bar.scss b/src/notification/bar.scss index 8942ed5098..c76a534007 100644 --- a/src/notification/bar.scss +++ b/src/notification/bar.scss @@ -101,3 +101,4 @@ body[class*='lang-en'] .add-buttons { display: none; } } + diff --git a/src/popup/accounts/environment.component.html b/src/popup/accounts/environment.component.html index 5654fdc367..dbacca585a 100644 --- a/src/popup/accounts/environment.component.html +++ b/src/popup/accounts/environment.component.html @@ -1,4 +1,4 @@ - + + {{'personalVaultExportPolicyInEffect' | i18n}} + +
- @@ -28,7 +32,8 @@
+ class="monospaced" [(ngModel)]="masterPassword" required appInputVerbatim appAutofocus + [disabled]="disabledByPolicy">
{{'security' | i18n}}
-
- - -
+
+
+ + +
{{'lockNow' | i18n}}
diff --git a/src/popup/settings/settings.component.ts b/src/popup/settings/settings.component.ts index b22610fae1..89c3c415d5 100644 --- a/src/popup/settings/settings.component.ts +++ b/src/popup/settings/settings.component.ts @@ -1,12 +1,13 @@ -import Swal from 'sweetalert2/src/sweetalert2.js'; - import { Component, ElementRef, OnInit, ViewChild, } from '@angular/core'; +import { FormControl } from '@angular/forms'; import { Router } from '@angular/router'; +import { ToasterService } from 'angular2-toaster'; +import Swal from 'sweetalert2/src/sweetalert2.js'; import { BrowserApi } from '../../browser/browserApi'; @@ -24,6 +25,10 @@ import { UserService } from 'jslib-common/abstractions/user.service'; import { VaultTimeoutService } from 'jslib-common/abstractions/vaultTimeout.service'; import { PopupUtilsService } from '../services/popup-utils.service'; +import { ModalService } from 'jslib-angular/services/modal.service'; + +import { SetPinComponent } from '../components/set-pin.component'; + const RateUrls = { [DeviceType.ChromeExtension]: 'https://chrome.google.com/webstore/detail/bitwarden-free-password-m/nngceckbapebfimnlniiiahkandclblb/reviews', @@ -44,22 +49,24 @@ const RateUrls = { templateUrl: 'settings.component.html', }) export class SettingsComponent implements OnInit { - @ViewChild('vaultTimeoutSelect', { read: ElementRef, static: true }) vaultTimeoutSelectRef: ElementRef; @ViewChild('vaultTimeoutActionSelect', { read: ElementRef, static: true }) vaultTimeoutActionSelectRef: ElementRef; vaultTimeouts: any[]; - vaultTimeout: number = null; vaultTimeoutActions: any[]; vaultTimeoutAction: string; pin: boolean = null; supportsBiometric: boolean; biometric: boolean = false; + disableAutoBiometricsPrompt = true; previousVaultTimeout: number = null; + vaultTimeout: FormControl = new FormControl(null); + constructor(private platformUtilsService: PlatformUtilsService, private i18nService: I18nService, private vaultTimeoutService: VaultTimeoutService, private storageService: StorageService, public messagingService: MessagingService, private router: Router, private environmentService: EnvironmentService, private cryptoService: CryptoService, - private userService: UserService, private popupUtilsService: PopupUtilsService) { + private userService: UserService, private popupUtilsService: PopupUtilsService, + private modalService: ModalService, private toasterService: ToasterService) { } async ngOnInit() { @@ -89,14 +96,18 @@ export class SettingsComponent implements OnInit { { name: this.i18nService.t('logOut'), value: 'logOut' }, ]; - let timeout = await this.storageService.get(ConstantsService.vaultTimeoutKey); + let timeout = await this.vaultTimeoutService.getVaultTimeout(); if (timeout != null) { if (timeout === -2 && !showOnLocked) { timeout = -1; } - this.vaultTimeout = timeout; + this.vaultTimeout.setValue(timeout); } - this.previousVaultTimeout = this.vaultTimeout; + this.previousVaultTimeout = this.vaultTimeout.value; + this.vaultTimeout.valueChanges.subscribe(value => { + this.saveVaultTimeout(value); + }); + const action = await this.storageService.get(ConstantsService.vaultTimeoutActionKey); this.vaultTimeoutAction = action == null ? 'lock' : action; @@ -105,6 +116,8 @@ export class SettingsComponent implements OnInit { this.supportsBiometric = await this.platformUtilsService.supportsBiometric(); this.biometric = await this.vaultTimeoutService.isBiometricLockSet(); + this.disableAutoBiometricsPrompt = await this.storageService.get( + ConstantsService.disableAutoBiometricsPromptKey) ?? true; } async saveVaultTimeout(newValue: number) { @@ -113,18 +126,19 @@ export class SettingsComponent implements OnInit { this.i18nService.t('neverLockWarning'), null, this.i18nService.t('yes'), this.i18nService.t('cancel'), 'warning'); if (!confirmed) { - this.vaultTimeouts.forEach((option: any, i) => { - if (option.value === this.vaultTimeout) { - this.vaultTimeoutSelectRef.nativeElement.value = i + ': ' + this.vaultTimeout; - } - }); + this.vaultTimeout.setValue(this.previousVaultTimeout); return; } } - this.previousVaultTimeout = this.vaultTimeout; - this.vaultTimeout = newValue; - await this.vaultTimeoutService.setVaultTimeoutOptions(this.vaultTimeout != null ? this.vaultTimeout : null, - this.vaultTimeoutAction); + + if (!this.vaultTimeout.valid) { + this.toasterService.popAsync('error', null, this.i18nService.t('vaultTimeoutToLarge')); + return; + } + + this.previousVaultTimeout = this.vaultTimeout.value; + + await this.vaultTimeoutService.setVaultTimeoutOptions(this.vaultTimeout.value, this.vaultTimeoutAction); if (this.previousVaultTimeout == null) { this.messagingService.send('bgReseedStorage'); } @@ -145,65 +159,27 @@ export class SettingsComponent implements OnInit { return; } } + + if (!this.vaultTimeout.valid) { + this.toasterService.popAsync('error', null, this.i18nService.t('vaultTimeoutToLarge')); + return; + } + this.vaultTimeoutAction = newValue; - await this.vaultTimeoutService.setVaultTimeoutOptions(this.vaultTimeout != null ? this.vaultTimeout : null, - this.vaultTimeoutAction); + await this.vaultTimeoutService.setVaultTimeoutOptions(this.vaultTimeout.value, this.vaultTimeoutAction); } async updatePin() { if (this.pin) { - const div = document.createElement('div'); - const label = document.createElement('label'); - label.className = 'checkbox'; - const checkboxText = document.createElement('span'); - const restartText = document.createTextNode(this.i18nService.t('lockWithMasterPassOnRestart')); - checkboxText.appendChild(restartText); - label.innerHTML = ''; - label.appendChild(checkboxText); + const ref = this.modalService.open(SetPinComponent, { allowMultipleModals: true }); - div.innerHTML = - `
${this.i18nService.t('setYourPinCode')}
` + - ''; - - (div.querySelector('#pin-val') as HTMLInputElement).placeholder = this.i18nService.t('pin'); - div.appendChild(label); - - const submitted = await Swal.fire({ - heightAuto: false, - buttonsStyling: false, - html: div, - showCancelButton: true, - cancelButtonText: this.i18nService.t('cancel'), - showConfirmButton: true, - confirmButtonText: this.i18nService.t('submit'), - }); - - let pin: string = null; - let masterPassOnRestart: boolean = null; - if (submitted.value) { - pin = (document.getElementById('pin-val') as HTMLInputElement).value; - masterPassOnRestart = (document.getElementById('master-pass-restart') as HTMLInputElement).checked; - } - if (pin != null && pin.trim() !== '') { - const kdf = await this.userService.getKdf(); - const kdfIterations = await this.userService.getKdfIterations(); - const email = await this.userService.getEmail(); - const pinKey = await this.cryptoService.makePinKey(pin, email, kdf, kdfIterations); - const key = await this.cryptoService.getKey(); - const pinProtectedKey = await this.cryptoService.encrypt(key.key, pinKey); - if (masterPassOnRestart) { - const encPin = await this.cryptoService.encrypt(pin); - await this.storageService.save(ConstantsService.protectedPin, encPin.encryptedString); - this.vaultTimeoutService.pinProtectedKey = pinProtectedKey; - } else { - await this.storageService.save(ConstantsService.pinProtectedKey, pinProtectedKey.encryptedString); - } - } else { + if (ref == null) { this.pin = false; + return; } - } - if (!this.pin) { + + this.pin = await ref.onClosedPromise(); + } else { await this.cryptoService.clearPinProtectedKey(); await this.vaultTimeoutService.clear(); } @@ -277,6 +253,10 @@ export class SettingsComponent implements OnInit { } } + async updateAutoBiometricsPrompt() { + await this.storageService.save(ConstantsService.disableAutoBiometricsPromptKey, this.disableAutoBiometricsPrompt); + } + async lock() { await this.vaultTimeoutService.lock(true); } diff --git a/src/popup/settings/vault-timeout-input.component.html b/src/popup/settings/vault-timeout-input.component.html new file mode 100644 index 0000000000..760dbd5d1e --- /dev/null +++ b/src/popup/settings/vault-timeout-input.component.html @@ -0,0 +1,29 @@ + + {{'vaultTimeoutPolicyInEffect' | i18n : vaultTimeoutPolicyHours : vaultTimeoutPolicyMinutes}} + + +
+
+ + +
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
diff --git a/src/popup/settings/vault-timeout-input.component.ts b/src/popup/settings/vault-timeout-input.component.ts new file mode 100644 index 0000000000..47335e51c4 --- /dev/null +++ b/src/popup/settings/vault-timeout-input.component.ts @@ -0,0 +1,28 @@ +import { Component } from '@angular/core'; +import { + NG_VALIDATORS, + NG_VALUE_ACCESSOR, +} from '@angular/forms'; + +import { + VaultTimeoutInputComponent as VaultTimeoutInputComponentBase +} from 'jslib-angular/components/settings/vault-timeout-input.component'; + +@Component({ + selector: 'app-vault-timeout-input', + templateUrl: 'vault-timeout-input.component.html', + providers: [ + { + provide: NG_VALUE_ACCESSOR, + multi: true, + useExisting: VaultTimeoutInputComponent, + }, + { + provide: NG_VALIDATORS, + multi: true, + useExisting: VaultTimeoutInputComponent, + }, + ], +}) +export class VaultTimeoutInputComponent extends VaultTimeoutInputComponentBase { +} diff --git a/src/popup/vault/ciphers.component.html b/src/popup/vault/ciphers.component.html index 67cb8b398e..bddede8fa5 100644 --- a/src/popup/vault/ciphers.component.html +++ b/src/popup/vault/ciphers.component.html @@ -63,7 +63,8 @@
- +
{{groupingTitle}} diff --git a/src/popup/vault/groupings.component.html b/src/popup/vault/groupings.component.html index ade7ba5593..7474459f57 100644 --- a/src/popup/vault/groupings.component.html +++ b/src/popup/vault/groupings.component.html @@ -145,7 +145,8 @@

{{'noItemsInList' | i18n}}

- +
Promise) { - const dialogId = Math.floor(Math.random() * Number.MAX_SAFE_INTEGER); - - this.messagingService.send('showPasswordDialog', { - title: title, - body: body, - dialogId: dialogId, - }); - - return new Promise(resolve => { - this.passwordDialogResolves.set(dialogId, { - tryResolve: async (canceled: boolean, password: string) => { - if (canceled) { - resolve(false); - return false; - } - - if (await passwordValidation(password)) { - resolve(true); - return true; - } - }, - date: new Date(), - }); - }); - } - isDev(): boolean { return process.env.ENV === 'development'; } diff --git a/src/services/i18n.service.ts b/src/services/i18n.service.ts index bd77991cf2..8bb867f570 100644 --- a/src/services/i18n.service.ts +++ b/src/services/i18n.service.ts @@ -8,8 +8,9 @@ export default class I18nService extends BaseI18nService { return await file.json(); }); + // Please leave 'en' where it is, as it's our fallback language in case no translation can be found this.supportedTranslationLocales = [ - 'az', 'en', 'be', 'bg', 'bn', 'ca', 'cs', 'da', 'de', 'el', 'en-GB', 'en-IN', 'es', 'et', 'fa', 'fi', 'fr', 'he', 'hr', 'hu', + 'en', 'az', 'be', 'bg', 'bn', 'ca', 'cs', 'da', 'de', 'el', 'en-GB', 'en-IN', 'es', 'et', 'fa', 'fi', 'fr', 'he', 'hr', 'hu', 'id', 'it', 'ja', 'kn', 'ko', 'lv', 'ml', 'nb', 'nl', 'pl', 'pt-BR', 'pt-PT', 'ro', 'ru', 'sk', 'sr', 'sv', 'th', 'tr', 'uk', 'vi', 'zh-CN', 'zh-TW', ]; diff --git a/store/icons/chrome-icon128.png b/store/icons/chrome-icon128.png index a7f6c41af4..9bce320e73 100644 Binary files a/store/icons/chrome-icon128.png and b/store/icons/chrome-icon128.png differ diff --git a/store/icons/icon64.png b/store/icons/icon64.png index 89fb3a6b59..5b9d09d51d 100644 Binary files a/store/icons/icon64.png and b/store/icons/icon64.png differ diff --git a/store/icons/safari-icon256.png b/store/icons/safari-icon256.png index 2b71c22e81..adb75cbbe7 100644 Binary files a/store/icons/safari-icon256.png and b/store/icons/safari-icon256.png differ diff --git a/store/icons/windows-icon300.png b/store/icons/windows-icon300.png index b0be924bda..ba18ac07bb 100644 Binary files a/store/icons/windows-icon300.png and b/store/icons/windows-icon300.png differ diff --git a/store/locales/az/copy.resx b/store/locales/az/copy.resx index cfb4c5df10..79ce85d379 100644 --- a/store/locales/az/copy.resx +++ b/store/locales/az/copy.resx @@ -118,58 +118,57 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Bitwarden – Free Password Manager + Bitwarden – Ödənişsiz Şifrə Meneceri - A secure and free password manager for all of your devices + Bütün cihazlarınız üçün təhlükəsiz və ödənişsiz bir şifrə meneceri - Bitwarden, Inc. is the parent company of 8bit Solutions LLC. + Bitwarden, Inc., 8bit Solutions LLC-nin ana şirkətidir. -NAMED BEST PASSWORD MANAGER BY THE VERGE, U.S. NEWS & WORLD REPORT, CNET, AND MORE. +THE VERGE, U.S. NEWS & WORLD REPORT, CNET VƏ BİR ÇOXUNA GÖRƏ ƏN YAXŞI ŞİFRƏ MENECERİDİR. -Manage, store, secure, and share unlimited passwords across unlimited devices from anywhere. Bitwarden delivers open source password management solutions to everyone, whether at home, at work, or on the go. +Hər yerdən limitsiz cihazda limitsiz şifrəni idarə edin, saxlayın, qoruyun və paylaşın. Bitwarden evdə, işdə və ya yolda hər kəsə açıq mənbəli şifrə idarəetmə həllərini təqdim edir. -Generate strong, unique, and random passwords based on security requirements for every website you frequent. +Çox istifadə etdiyiniz hər veb sayt üçün təhlükəsizlik tələblərinə görə güclü, unikal və təsadüfi şifrələr yaradın. -Bitwarden Send quickly transmits encrypted information --- files and plaintext -- directly to anyone. +Bitwarden Send şifrələnmiş məlumatların (fayl və sadə mətnləri) birbaşa və sürətli göndərilməsini təmin edir. -Bitwarden offers Teams and Enterprise plans for companies so you can securely share passwords with colleagues. +Bitwarden, şifrələri iş yoldaşlarınızla təhlükəsiz paylaşa bilməyiniz üçün şirkətlərə Teams və Enterprise planları təklif edir. -Why Choose Bitwarden: +Nəyə görə Bitwarden-i seçməliyik: -World-Class Encryption -Passwords are protected with advanced end-to-end encryption (AES-256 bit, salted hashtag, and PBKDF2 SHA-256) so your data stays secure and private. +Yüksək səviyyə şifrələmə +Şifrələriniz qabaqcıl ucdan-uca şifrələmə (AES-256 bit, salted hashtag və PBKDF2 SHA-256) ilə qorunur, beləcə verilənlərinizin təhlükəsiz və gizli qalmasını təmin edir. -Built-in Password Generator -Generate strong, unique, and random passwords based on security requirements for every website you frequent. +Daxili şifrə yaradıcı +Çox istifadə etdiyiniz hər veb sayt üçün təhlükəsizlik tələblərinə görə güclü, unikal və təsadüfi şifrələr yaradın. -Global Translations -Bitwarden translations exist in 40 languages and are growing, thanks to our global community. +Qlobal tərcümələr +Bitwarden tərcümələri 40 dildə mövcuddur və qlobal cəmiyyətimiz sayəsində böyüməyə davam edir. -Cross-Platform Applications -Secure and share sensitive data within your Bitwarden Vault from any browser, mobile device, or desktop OS, and more. - +Çarpaz platform tətbiqləri +Bitwarden anbarındakı həssas verilənləri, istənilən səyyahdan, mobil cihazdan və ya masaüstü əməliyyat sistemindən və daha çoxundan qoruyub paylaşın. - A secure and free password manager for all of your devices + Bütün cihazlarınız üçün təhlükəsiz və ödənişsiz bir şifrə meneceri - Sync and access your vault from multiple devices + Anbarınıza bir neçə cihazdan eyniləşdirərək müraciət edin - Manage all your logins and passwords from a secure vault + Bütün giriş məlumatlarınızı və şifrələrinizi təhlükəsiz bir anbardan idarə edin - Quickly auto-fill your login credentials into any website that you visit + Giriş kimlik məlumatlarınızı ziyarət etdiyiniz istənilən veb sayta dərhal avtomatik doldurun - Your vault is also conveniently accessible from the right-click menu + Anbarınıza sağ klikləmə menyusundan da asanlıqla müraciət edə bilərsiniz - Automatically generate strong, random, and secure passwords + Güclü, təsadüfi və etibarlı şifrələrin avtomatik yaradılması - Your information is managed securely using AES-256 bit encryption + Məlumatlarınız AES-256 bit şifrələmə istifadə edilərək təhlükəsiz şəkildə idarə olunur diff --git a/store/locales/en/copy.resx b/store/locales/en/copy.resx index 9c05cbd131..cfb4c5df10 100644 --- a/store/locales/en/copy.resx +++ b/store/locales/en/copy.resx @@ -59,46 +59,46 @@ : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> - - + + - + - - - - + + + + - - + + - - + + - - - - + + + + - + - + diff --git a/store/locales/fi/copy.resx b/store/locales/fi/copy.resx index e3ff6c1a1e..d3a532d12b 100644 --- a/store/locales/fi/copy.resx +++ b/store/locales/fi/copy.resx @@ -124,15 +124,31 @@ Turvallinen ja ilmainen salasanojen hallinta kaikille laitteillesi - Bitwarden on helpoin ja turvallisin tapa säilyttää käyttäjätunnuksesi ja salasanasi, samalla pitäen ne synkronoituna laitteidesi välillä. + Bitwarden, inc. on 8bit Solutions LLC:n emoyhtiö. -Salasanavarkaudet ovat vakava ongelma ja monet käyttämäsi sivustot ja sovellukset ovat päivittäisten hyökkäysten kohteina. Tietoturvavuotoja tapahtuu ja salasanoja varastetaan. Jos käytät samoja salasanoja uudelleen eri sivustoilla ja sovelluksissa, saattavat hakkerit päästä helposti käsiksi sähköpostiisi, pankkiisi tai muihin tärkeisiin käyttäjätileihisi. +NIMENNYT PARHAAKSI SALASANOJEN HALLINNAKSI MM. THE VERGE, U.S. NEWS & WORLD REPORT JA CNET. -Tietoturva-asiantuntijat suosittelevat ainutlaatuisten, satunnaisesti luotujen salasanojen käyttöä kaikilla käyttäjätileilläsi. Mutta kuinka sitten hallitset näitä kaikkia erilaisia salasanoja? Bitwarden tekee laadukkaiden ja ainutlaatuisten salasanojen luonnista, säilytyksestä ja käytöstä helppoa. +Hallinnoi, säilytä, suojaa ja jaa rajattomasti salasanoja missä tahansa ja miltä tahansa laitteelta. Bitwarden tarjoaa avoimeen lähdekoodin perustuvan salasanojen hallintaratkaisun kaikille, olitpa sitten kotona, töissä tai liikkeellä. -Bitwarden säilyttää kaikki kirjautumistietosi salattussa holvissa, joka synkronoidaan laitteidesi välillä. Koska tietosi ovat täysin salattuja jo ennen kuin ne edes lähtevät laitteeltasi, vain sinä pääset niihin käsiksi. Edes Bitwardenin kehittäjät eivät voi lukea tietojasi, vaikka haluaisivat. Tietosi suojataan 256-bittisellä AES-salauksella, suolatulla hajautuksella sekä PBKDF2 ja SHA-256 -menetelmillä. +Luo usein käyttämillesi sivustoille automaattisesti vahvoja, yksilöllisiä ja satunnaisia salasanoja. -Bitwarden on 100% avointa lähdekoodia. Bitwardenin lähdekoodi on esillä GitHubissa ja kuka tahansa voi tutkia ja tarkastella sitä sekä osallistua Bitwardenin kehitykseen. +Bitwarden Send -ominaisuudella lähetät tietoa nopeasti salattuna — tiedostoja ja tekstiä — suoraan kenelle tahansa. + +Yrityksille Bitwarden tarjoaa Teams ja Enterprise -tilaukset, jotta voit jakaa salasanoja kollegoiden kesken turvallisesti. + +Miksi Bitwarden?: + +Maailmanluokan salaus +Salasanat on suojattu tehokkaalla päästä päähän salauksella (AES-256 Bit, suolattu hajautus ja PBKDF2 SHA-256), joten tietosi pysyvät turvassa ja yksityisinä. + +Sisäänrakennettu salasanageneraattori +Luo usein käyttämillesi sivustoille vahvoja, yksilöllisiä ja satunnaisia salasanoja. + +Monikielinen +Bitwardenin sovelluksia on käännetty yli 40 kielelle ja määrä kasvaa jatkuvasti, kiitos kansainvälisen yhteisömme. + +Alustariippumattomaton +Suojaa, käytä ja jaa Bitwarden-holvisi arkaluontoisia tietoja kaikilla selaimilla, mobiililaitteilla, pöytätietokoneilla ja muissa järjestelmissä. Turvallinen ja ilmainen salasanojen hallinta kaikille laitteillesi diff --git a/store/locales/fil/copy.resx b/store/locales/fil/copy.resx new file mode 100644 index 0000000000..cfb4c5df10 --- /dev/null +++ b/store/locales/fil/copy.resx @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Bitwarden – Free Password Manager + + + A secure and free password manager for all of your devices + + + Bitwarden, Inc. is the parent company of 8bit Solutions LLC. + +NAMED BEST PASSWORD MANAGER BY THE VERGE, U.S. NEWS & WORLD REPORT, CNET, AND MORE. + +Manage, store, secure, and share unlimited passwords across unlimited devices from anywhere. Bitwarden delivers open source password management solutions to everyone, whether at home, at work, or on the go. + +Generate strong, unique, and random passwords based on security requirements for every website you frequent. + +Bitwarden Send quickly transmits encrypted information --- files and plaintext -- directly to anyone. + +Bitwarden offers Teams and Enterprise plans for companies so you can securely share passwords with colleagues. + +Why Choose Bitwarden: + +World-Class Encryption +Passwords are protected with advanced end-to-end encryption (AES-256 bit, salted hashtag, and PBKDF2 SHA-256) so your data stays secure and private. + +Built-in Password Generator +Generate strong, unique, and random passwords based on security requirements for every website you frequent. + +Global Translations +Bitwarden translations exist in 40 languages and are growing, thanks to our global community. + +Cross-Platform Applications +Secure and share sensitive data within your Bitwarden Vault from any browser, mobile device, or desktop OS, and more. + + + + A secure and free password manager for all of your devices + + + Sync and access your vault from multiple devices + + + Manage all your logins and passwords from a secure vault + + + Quickly auto-fill your login credentials into any website that you visit + + + Your vault is also conveniently accessible from the right-click menu + + + Automatically generate strong, random, and secure passwords + + + Your information is managed securely using AES-256 bit encryption + + diff --git a/store/locales/fr/copy.resx b/store/locales/fr/copy.resx index 878aeacc7f..f8687ca5c4 100644 --- a/store/locales/fr/copy.resx +++ b/store/locales/fr/copy.resx @@ -124,15 +124,31 @@ Un gestionnaire de mots de passe sécurisé et gratuit pour tous vos appareils - Bitwarden est le moyen le plus facile et sûr de stocker tous vos identifiants et mots de passe tout en les synchronisant facilement entre tous vos appareils. + Bitwarden, Inc. est la société mère de 8bit Solutions LLC. -Le vol de mot de passe est un problème sérieux. Les sites web et les applications que vous utilisez sont attaqués tous les jours. Des failles de sécurité apparaissent et vos mots de passe sont volés. Quand vous réutilisez les mêmes mots de passe sur divers sites web et applications, des hackers peuvent facilement accéder à vos e-mails, vos comptes bancaires et à d'autres informations importantes. +NOMMÉ MEILLEUR GESTIONNAIRE DE MOTS DE PASSE PAR THE VERGE, U.S. NEWS & WORLD REPORT, CNET, ET PLUS ENCORE. -Les experts en sécurité recommandent l'utilisation de mots de passe différents et générés aléatoirement pour chaque compte que vous créez. Mais comment allez-vous gérer tous ces mots de passe ? Bitwarden facilite la création, le stockage et l'accès de vos mots de passe. +Gérez, stockez, sécurisez et partagez un nombre illimité de mots de passe sur un nombre illimité d'appareils, où que vous soyez. Bitwarden fournit des solutions de gestion de mots de passe open source à tout le monde, que ce soit à la maison, au travail ou en déplacement. -Bitwarden stocke tous vos identifiants dans un coffre chiffré qui est synchronisé entre tous vos appareils. Puisqu'il est entièrement chiffré avant même qu'il ne sorte de votre appareil, vous êtes la seule personne à avoir accès à vos données. Personne, pas même l'équipe de Bitwarden ne peut lire vos données, même si nous le voulions. Vos données sont scellées par un chiffrement AES-256 bit, salées et hachées en utilisant PBKDF2 avec SHA-256. +Générez des mots de passe forts, uniques et aléatoires basés sur des exigences de sécurité pour chaque site web que vous fréquentez. -Bitwarden est un logiciel 100% open source. Le code source de Bitwarden est hébergé sur Github et tout le monde est libre de le consulter, de l'auditer et de contribuer au code de Bitwarden. +Bitwarden Send transmet rapidement des informations chiffrées --- fichiers et texte --- directement à quiconque. + +Bitwarden propose les plans Teams et Enterprise pour les entreprises afin que vous puissiez partager des mots de passe en toute sécurité avec vos collègues. + +Pourquoi choisir Bitwarden : + +Un chiffrement de classe internationale +Les mots de passe sont protégés par un chiffrement avancé de bout en bout (AES-256 bit, salted hashtag, et PBKDF2 SHA-256) afin que vos données restent sécurisées et privées. + +Générateur de mots de passe intégré +Générez des mots de passe forts, uniques et aléatoires en fonction des exigences de sécurité pour chaque site web que vous fréquentez. + +Traductions mondiales +Les traductions de Bitwarden existent dans 40 langues et ne cessent de croître, grâce à notre communauté mondiale. + +Applications multiplateformes +Sécurisez et partagez des données sensibles dans votre coffre-fort Bitwarden à partir de n'importe quel navigateur, appareil mobile ou système d'exploitation de bureau, et plus encore. Un gestionnaire de mots de passe sécurisé et gratuit pour tous vos appareils diff --git a/store/locales/pl/copy.resx b/store/locales/pl/copy.resx index ecad4c96f9..5b3941cb7e 100644 --- a/store/locales/pl/copy.resx +++ b/store/locales/pl/copy.resx @@ -124,13 +124,31 @@ Bezpieczny i darmowy menedżer haseł dla wszystkich Twoich urządzeń - bitwarden to najłatwiejszy i najbezpieczniejszy sposób przechowywania wszystkich Twoich loginów i haseł, umożliwiający ich wygodną synchronizację pomiędzy wszystkimi Twoimi urządzeniami. + Bitwarden, Inc. jest macierzystą firmą 8bit Solutions LLC. -Kradzież hasła to poważny problem. Witryny i aplikacje, których używasz są atakowane każdego dnia. Twoje hasła mogą zostać skradzione w wyniku złamania zabezpieczeń. Gdy używasz tego samego hasła dla różnych aplikacji i stron internetowych, hakerzy mogą z łatwością uzyskać dostęp do twojego konta e-mail, banku i innych ważnych kont. +NAZWANY NAJLEPSZYM MENEDŻEREM HASEŁ PRZEZ THE VERGE, US NEWS & WORLD REPORT, CNET I WIĘCEJ. -Eksperci od bezpieczeństwa zalecają używanie różnych, losowo wygenerowanych haseł dla każdego nowo tworzonego konta. Ale jak można zarządzać wszystkimi tymi hasłami? bitwarden sprawia, że tworzenie, przechowywanie i dostęp do Twoich haseł jest naprawdę łatwy. +Zarządzaj, przechowuj, zabezpieczaj i udostępniaj nieograniczoną liczbę haseł na nieograniczonej liczbie urządzeń z każdego miejsca. Bitwarden dostarcza rozwiązania do zarządzania hasłami z otwartym kodem źródłowym każdemu, niezależnie od tego, czy jest w domu, w pracy, czy w podróży. -bitwarden przechowuje wszystkie Twoje dane logowania w zaszyfrowanym sejfie, który jest synchronizowany pomiędzy wszystkimi Twoimi urządzeniami. Dzięki temu, że dane są w pełni zaszyfrowane zanim opuszczą Twoje urządzenie, tylko masz do nich dostęp. Nawet zespół bitwarden nie ma dostępu do Twoich danych. Dane są zabezpieczone za pomocą szyfrowania metodą AES-256, stosowania ciągów zaburzających i algorytmu PBKDF2 SHA-256. +Generuj silne, unikalne i losowe hasła w oparciu o wymagania bezpieczeństwa dla każdej odwiedzanej strony. + +Funkcja Bitwarden Send szybko przesyła zaszyfrowane informacje --- pliki i zwykły tekst -- bezpośrednio do każdego. + +Bitwarden oferuje plany dla zespołów i firm, dzięki czemu możesz bezpiecznie udostępniać hasła współpracownikom. + +Dlaczego warto wybrać Bitwarden: + +Szyfrowanie światowej klasy +Hasła są chronione za pomocą zaawansowanego szyfrowania typu end-to-end (AES-256 bitów, dodatkowy ciąg zaburzający i PBKDF2 SHA-256), dzięki czemu Twoje dane pozostają bezpieczne i prywatne. + +Wbudowany generator haseł +Generuj silne, unikalne i losowe hasła w oparciu o wymagania bezpieczeństwa dla każdej odwiedzanej strony. + +Przetłumaczone aplikacje +Tłumaczenia Bitwarden są dostępne w 40 językach i rosną dzięki naszej globalnej społeczności. + +Aplikacje wieloplatformowe +Zabezpiecz i udostępniaj poufne dane w swoim sejfie Bitwarden z dowolnej przeglądarki, urządzenia mobilnego, systemu operacyjnego i nie tylko. Bezpieczny i darmowy menedżer haseł dla wszystkich Twoich urządzeń diff --git a/store/locales/vi/copy.resx b/store/locales/vi/copy.resx index 6b29ce530d..52beeca10b 100644 --- a/store/locales/vi/copy.resx +++ b/store/locales/vi/copy.resx @@ -124,13 +124,31 @@ Một trình quản lý mật khẩu an toàn và miễn phí cho mọi thiết bị của bạn - Bitwarden là cách dễ dàng và an toàn nhất để lưu trữ tất cả các thông tin đăng nhập và mật khẩu của bạn và giữ chúng được đồng bộ giữa tất cả các thiết bị của bạn. + Bitwarden, Inc là công ty mẹ của 8bit Solutions LLC -Rò rỉ mật khẩu là một vấn đề rất nghiêm trọng. Các trang web và ứng dụng mà bạn sử dụng đang bị tấn công mỗi ngày. Vi phạm an ninh mạng xảy ra khiến mật khẩu của bạn bị đánh cắp. Khi bạn sử dụng cùng một mật khẩu trên nhiều ứng dụng và trang web, tin tặc có thể dễ dàng truy cập vào email, tài khoản ngân hàng và các tài khoản quan trọng khác của bạn. +ĐƯỢC ĐÁNH GIÁ LÀ TRÌNH QUẢN LÝ MẬT KHẨU TỐT NHẤT BỞI NHÀ BÁO LỚN NHƯ THE VERGE, CNET, U.S. NEWS & WORLD REPORT VÀ HƠN NỮA -Các chuyên gia bảo mật khuyên bạn nên sử dụng một mật khẩu được tạo ngẫu nhiên cho mỗi tài khoản của bạn. Nhưng làm thế nào để bạn quản lý tất cả những mật khẩu đó? bitwarden giúp bạn tạo, lưu trữ và truy cập tất cả mật khẩu một cách dễ dàng. +Quản lý, lưu trữ, bảo mật và chia sẻ mật khẩu không giới hạn trên các thiết bị không giới hạn mọi lúc, mọi nơi. Bitwarden cung cấp các giải pháp quản lý mật khẩu mã nguồn mở cho tất cả mọi người, cho dù ở nhà, tại cơ quan hay khi đang di chuyển . -Bitwarden lưu trữ tất cả các thông tin đăng nhập của bạn trong một hầm được mã hóa và đồng bộ trên tất cả các thiết bị của bạn. Vì nó được mã hóa đầy đủ trước khi nó rời khỏi thiết bị của bạn nên chỉ có bạn mới có thể truy cập vào dữ liệu của mình. Ngay cả nhóm nghiên cứu tại bitwarden cũng không thể đọc được dữ liệu của bạn khi hộ muốn. Dữ liệu của bạn được bảo vệ bằng mã hóa AES-256 bit, hàm băm và PBKDF2 SHA-256. +Tạo mật khẩu mạnh, không bị trùng và ngẫu nhiên dựa trên các yêu cầu bảo mật cho mọi trang web bạn thường xuyên sử dụng. + +Tính năng 'Bitwarden Send' nhanh chóng truyền thông tin được mã hóa --- tệp và bản rõ - trực tiếp đến bất kỳ ai. + +Bitwarden cung cấp các gói 'Nhóm' và 'Doanh nghiệp' cho các công ty để bạn có thể chia sẻ mật khẩu với đồng nghiệp một cách an toàn. + +Tại sao bạn nên chọn Bitwarden: + +Mã hóa tốt nhất thế giới +Mật khẩu được bảo vệ bằng mã hóa đầu cuối (end-to-end encryption) tiên tiến như AES-256 bit, salted hashtag, và PBKDF2 SHA-256 nên dữ liệu của bạn luôn an toàn và riêng tư. + +Trình tạo mật khẩu tích hợp +Tạo mật khẩu mạnh, không bị trùng và ngẫu nhiên dựa trên các yêu cầu bảo mật cho mọi trang web bạn thường xuyên sử dụng. + +Bản dịch ngôn ngữ từ cộng đồng +Bitwarden đã có bản dịch 40 ngôn ngữ và đang phát triển nhờ vào cộng đồng toàn cầu của chúng tôi. + +Ứng dụng đa nền tảng +Bảo mật và chia sẻ dữ liệu nhạy cảm trong kho lưu trữ Bitwarden của bạn từ bất kỳ trình duyệt, điện thoại thông minh hoặc hệ điều hành máy tính nào, vân vân Một trình quản lý mật khẩu an toàn và miễn phí cho mọi thiết bị của bạn diff --git a/store/windows/Assets/icon_150.png b/store/windows/Assets/icon_150.png index 668244a56b..cd7fda75d9 100644 Binary files a/store/windows/Assets/icon_150.png and b/store/windows/Assets/icon_150.png differ diff --git a/store/windows/Assets/icon_44.png b/store/windows/Assets/icon_44.png index b08bf7fa77..10ab6fe65a 100644 Binary files a/store/windows/Assets/icon_44.png and b/store/windows/Assets/icon_44.png differ diff --git a/store/windows/Assets/icon_50.png b/store/windows/Assets/icon_50.png index 6bf4752aa3..4865f4abe3 100644 Binary files a/store/windows/Assets/icon_50.png and b/store/windows/Assets/icon_50.png differ diff --git a/webpack.config.js b/webpack.config.js index 6b5ca45301..08918eed55 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -130,6 +130,7 @@ const config = { 'content/autofill': './src/content/autofill.js', 'content/autofiller': './src/content/autofiller.ts', 'content/notificationBar': './src/content/notificationBar.ts', + 'content/contextMenuHandler': './src/content/contextMenuHandler.ts', 'content/shortcuts': './src/content/shortcuts.ts', 'content/message_handler': './src/content/message_handler.ts', 'notification/bar': './src/notification/bar.js',