mirror of
https://github.com/bitwarden/clients.git
synced 2026-06-22 21:02:34 +08:00
Merge branch 'master' into auth/pm-3797/emergency-access-refactor
This commit is contained in:
commit
ee677eaffe
@ -179,6 +179,23 @@
|
||||
"rules": {
|
||||
"no-restricted-imports": ["error", { "patterns": ["@bitwarden/vault/*", "src/**/*"] }]
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": ["apps/browser/src/**/*.ts", "libs/**/*.ts"],
|
||||
"excludedFiles": "apps/browser/src/autofill/{content,notification}/**/*.ts",
|
||||
"rules": {
|
||||
"no-restricted-syntax": [
|
||||
"error",
|
||||
{
|
||||
"message": "Using addListener in the browser popup produces a memory leak in Safari, use `BrowserApi.messageListener` instead",
|
||||
"selector": "CallExpression > [object.object.object.name='chrome'][object.object.property.name='runtime'][object.property.name='onMessage'][property.name='addListener']"
|
||||
},
|
||||
{
|
||||
"message": "Using addListener in the browser popup produces a memory leak in Safari, use `BrowserApi.storageChangeListener` instead",
|
||||
"selector": "CallExpression > [object.object.object.name='chrome'][object.object.property.name='storage'][object.property.name='onChanged'][property.name='addListener']"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
2
.github/workflows/brew-bump-cli.yml
vendored
2
.github/workflows/brew-bump-cli.yml
vendored
@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "brew-bump-workflow-pat"
|
||||
|
||||
2
.github/workflows/brew-bump-desktop.yml
vendored
2
.github/workflows/brew-bump-desktop.yml
vendored
@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "brew-bump-workflow-pat"
|
||||
|
||||
22
.github/workflows/build-browser.yml
vendored
22
.github/workflows/build-browser.yml
vendored
@ -58,7 +58,11 @@ jobs:
|
||||
outputs:
|
||||
repo_url: ${{ steps.gen_vars.outputs.repo_url }}
|
||||
adj_build_number: ${{ steps.gen_vars.outputs.adj_build_number }}
|
||||
node_version: ${{ steps.retrieve-node-version.outputs.node_version }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Get Package Version
|
||||
id: gen_vars
|
||||
run: |
|
||||
@ -68,6 +72,14 @@ jobs:
|
||||
echo "repo_url=$repo_url" >> $GITHUB_OUTPUT
|
||||
echo "adj_build_number=$adj_build_num" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Get Node Version
|
||||
id: retrieve-node-version
|
||||
working-directory: ./
|
||||
run: |
|
||||
NODE_NVMRC=$(cat .nvmrc)
|
||||
NODE_VERSION=${NODE_NVMRC/v/''}
|
||||
echo "node_version=$NODE_VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
|
||||
locales-test:
|
||||
name: Locales Test
|
||||
@ -114,6 +126,7 @@ jobs:
|
||||
- locales-test
|
||||
env:
|
||||
_BUILD_NUMBER: ${{ needs.setup.outputs.adj_build_number }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
@ -123,7 +136,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
@ -251,6 +264,7 @@ jobs:
|
||||
- locales-test
|
||||
env:
|
||||
_BUILD_NUMBER: ${{ needs.setup.outputs.adj_build_number }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
@ -260,7 +274,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Print environment
|
||||
run: |
|
||||
@ -361,7 +375,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "crowdin-api-token"
|
||||
@ -423,7 +437,7 @@ jobs:
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
if: failure()
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "devops-alerts-slack-webhook-url"
|
||||
|
||||
21
.github/workflows/build-cli.yml
vendored
21
.github/workflows/build-cli.yml
vendored
@ -53,17 +53,26 @@ jobs:
|
||||
name: Setup
|
||||
runs-on: ubuntu-22.04
|
||||
outputs:
|
||||
package_version: ${{ steps.retrieve-version.outputs.package_version }}
|
||||
package_version: ${{ steps.retrieve-package-version.outputs.package_version }}
|
||||
node_version: ${{ steps.retrieve-node-version.outputs.node_version }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Get Package Version
|
||||
id: retrieve-version
|
||||
id: retrieve-package-version
|
||||
run: |
|
||||
PKG_VERSION=$(jq -r .version package.json)
|
||||
echo "package_version=$PKG_VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Get Node Version
|
||||
id: retrieve-node-version
|
||||
working-directory: ./
|
||||
run: |
|
||||
NODE_NVMRC=$(cat .nvmrc)
|
||||
NODE_VERSION=${NODE_NVMRC/v/''}
|
||||
echo "node_version=$NODE_VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
|
||||
cli:
|
||||
name: Build CLI ${{ matrix.os }}
|
||||
@ -75,6 +84,7 @@ jobs:
|
||||
- setup
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
_WIN_PKG_FETCH_VERSION: 18.5.0
|
||||
_WIN_PKG_VERSION: 3.4
|
||||
steps:
|
||||
@ -92,7 +102,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
@ -149,6 +159,7 @@ jobs:
|
||||
- setup
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
_WIN_PKG_FETCH_VERSION: 18.5.0
|
||||
_WIN_PKG_VERSION: 3.4
|
||||
steps:
|
||||
@ -166,7 +177,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
@ -404,7 +415,7 @@ jobs:
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
if: failure()
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "devops-alerts-slack-webhook-url"
|
||||
|
||||
34
.github/workflows/build-desktop.yml
vendored
34
.github/workflows/build-desktop.yml
vendored
@ -78,6 +78,7 @@ jobs:
|
||||
build_number: ${{ steps.increment-version.outputs.build_number }}
|
||||
rc_branch_exists: ${{ steps.branch-check.outputs.rc_branch_exists }}
|
||||
hotfix_branch_exists: ${{ steps.branch-check.outputs.hotfix_branch_exists }}
|
||||
node_version: ${{ steps.retrieve-node-version.outputs.node_version }}
|
||||
defaults:
|
||||
run:
|
||||
working-directory: apps/desktop
|
||||
@ -130,6 +131,13 @@ jobs:
|
||||
echo "hotfix_branch_exists=0" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Get Node Version
|
||||
id: retrieve-node-version
|
||||
working-directory: ./
|
||||
run: |
|
||||
NODE_NVMRC=$(cat .nvmrc)
|
||||
NODE_VERSION=${NODE_NVMRC/v/''}
|
||||
echo "node_version=$NODE_VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
linux:
|
||||
name: Linux Build
|
||||
@ -138,6 +146,7 @@ jobs:
|
||||
- setup
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
defaults:
|
||||
run:
|
||||
working-directory: apps/desktop
|
||||
@ -150,7 +159,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
@ -257,6 +266,7 @@ jobs:
|
||||
working-directory: apps/desktop
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
@ -266,7 +276,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||
@ -277,7 +287,7 @@ jobs:
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Install AST
|
||||
uses: bitwarden/gh-actions/install-ast@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/install-ast@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
|
||||
- name: Set up environmentF
|
||||
run: choco install checksum --no-progress
|
||||
@ -302,7 +312,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "code-signing-vault-url,
|
||||
@ -467,6 +477,7 @@ jobs:
|
||||
- setup
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
defaults:
|
||||
run:
|
||||
working-directory: apps/desktop
|
||||
@ -479,7 +490,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
@ -619,6 +630,7 @@ jobs:
|
||||
- setup
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
defaults:
|
||||
run:
|
||||
working-directory: apps/desktop
|
||||
@ -631,7 +643,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
@ -816,6 +828,7 @@ jobs:
|
||||
- setup
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
defaults:
|
||||
run:
|
||||
working-directory: apps/desktop
|
||||
@ -828,7 +841,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
@ -1005,6 +1018,7 @@ jobs:
|
||||
- setup
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
defaults:
|
||||
run:
|
||||
working-directory: apps/desktop
|
||||
@ -1017,7 +1031,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
@ -1190,7 +1204,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "crowdin-api-token"
|
||||
@ -1269,7 +1283,7 @@ jobs:
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
if: failure()
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "devops-alerts-slack-webhook-url"
|
||||
|
||||
17
.github/workflows/build-web.yml
vendored
17
.github/workflows/build-web.yml
vendored
@ -57,6 +57,7 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
outputs:
|
||||
version: ${{ steps.version.outputs.value }}
|
||||
node_version: ${{ steps.retrieve-node-version.outputs.node_version }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
@ -65,12 +66,20 @@ jobs:
|
||||
id: version
|
||||
run: echo "value=${GITHUB_SHA:0:7}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Get Node Version
|
||||
id: retrieve-node-version
|
||||
run: |
|
||||
NODE_NVMRC=$(cat .nvmrc)
|
||||
NODE_VERSION=${NODE_NVMRC/v/''}
|
||||
echo "node_version=$NODE_VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
build-artifacts:
|
||||
name: Build artifacts
|
||||
runs-on: ubuntu-22.04
|
||||
needs: setup
|
||||
env:
|
||||
_VERSION: ${{ needs.setup.outputs.version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
@ -98,7 +107,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: "16"
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Print environment
|
||||
run: |
|
||||
@ -188,7 +197,7 @@ jobs:
|
||||
|
||||
- name: Retrieve github PAT secrets
|
||||
id: retrieve-secret-pat
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "github-pat-bitwarden-devops-bot-repo-scope"
|
||||
@ -264,7 +273,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "crowdin-api-token"
|
||||
@ -325,7 +334,7 @@ jobs:
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
if: failure()
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "devops-alerts-slack-webhook-url"
|
||||
|
||||
19
.github/workflows/chromatic.yml
vendored
19
.github/workflows/chromatic.yml
vendored
@ -12,16 +12,23 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
|
||||
with:
|
||||
node-version: "16"
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Get Node Version
|
||||
id: retrieve-node-version
|
||||
run: |
|
||||
NODE_NVMRC=$(cat .nvmrc)
|
||||
NODE_VERSION=${NODE_NVMRC/v/''}
|
||||
echo "node_version=$NODE_VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
|
||||
with:
|
||||
node-version: ${{ steps.retrieve-node-version.outputs.node_version }}
|
||||
|
||||
- name: Cache npm
|
||||
id: npm-cache
|
||||
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
|
||||
@ -31,7 +38,7 @@ jobs:
|
||||
|
||||
- name: Install Node dependencies
|
||||
run: npm ci
|
||||
|
||||
|
||||
# Manual build the storybook to resolve a chromatic/storybook bug related to TurboSnap
|
||||
- name: Build Storybook
|
||||
run: npm run build-storybook:ci
|
||||
|
||||
4
.github/workflows/crowdin-pull.yml
vendored
4
.github/workflows/crowdin-pull.yml
vendored
@ -32,13 +32,13 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "crowdin-api-token, github-gpg-private-key, github-gpg-private-key-passphrase"
|
||||
|
||||
- name: Download translations
|
||||
uses: bitwarden/gh-actions/crowdin@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/crowdin@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}
|
||||
|
||||
4
.github/workflows/deploy-eu-prod-web.yml
vendored
4
.github/workflows/deploy-eu-prod-web.yml
vendored
@ -24,13 +24,13 @@ jobs:
|
||||
|
||||
- name: Retrieve Storage Account connection string
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: webvault-westeurope-prod
|
||||
secrets: "sa-bitwarden-web-vault-dev-key-temp"
|
||||
|
||||
- name: Download latest cloud asset
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: apps/web
|
||||
|
||||
4
.github/workflows/deploy-eu-qa-web.yml
vendored
4
.github/workflows/deploy-eu-qa-web.yml
vendored
@ -24,13 +24,13 @@ jobs:
|
||||
|
||||
- name: Retrieve Storage Account connection string
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: webvaulteu-westeurope-qa
|
||||
secrets: "sa-bitwarden-web-vault-dev-key-temp"
|
||||
|
||||
- name: Download latest cloud asset
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: apps/web
|
||||
|
||||
2
.github/workflows/deploy-non-prod-web.yml
vendored
2
.github/workflows/deploy-non-prod-web.yml
vendored
@ -67,7 +67,7 @@ jobs:
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Download latest cloud asset
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: apps/web
|
||||
|
||||
9
.github/workflows/lint.yml
vendored
9
.github/workflows/lint.yml
vendored
@ -38,12 +38,19 @@ jobs:
|
||||
> tmp.txt
|
||||
diff <(sort .github/whitelist-capital-letters.txt) <(sort tmp.txt)
|
||||
|
||||
- name: Get Node Version
|
||||
id: retrieve-node-version
|
||||
run: |
|
||||
NODE_NVMRC=$(cat .nvmrc)
|
||||
NODE_VERSION=${NODE_NVMRC/v/''}
|
||||
echo "node_version=$NODE_VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ steps.retrieve-node-version.outputs.node_version }}
|
||||
|
||||
- name: Run linter
|
||||
run: |
|
||||
|
||||
6
.github/workflows/release-browser.yml
vendored
6
.github/workflows/release-browser.yml
vendored
@ -41,7 +41,7 @@ jobs:
|
||||
|
||||
- name: Check Release Version
|
||||
id: version
|
||||
uses: bitwarden/gh-actions/release-version-check@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/release-version-check@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
release-type: ${{ github.event.inputs.release_type }}
|
||||
project-type: ts
|
||||
@ -103,7 +103,7 @@ jobs:
|
||||
|
||||
- name: Download latest Release build artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-browser.yml
|
||||
workflow_conclusion: success
|
||||
@ -116,7 +116,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download latest master build artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-browser.yml
|
||||
workflow_conclusion: success
|
||||
|
||||
28
.github/workflows/release-cli.yml
vendored
28
.github/workflows/release-cli.yml
vendored
@ -57,7 +57,7 @@ jobs:
|
||||
|
||||
- name: Check Release Version
|
||||
id: version
|
||||
uses: bitwarden/gh-actions/release-version-check@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/release-version-check@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
release-type: ${{ github.event.inputs.release_type }}
|
||||
project-type: ts
|
||||
@ -78,7 +78,7 @@ jobs:
|
||||
|
||||
- name: Download all Release artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli
|
||||
@ -87,7 +87,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download all artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli
|
||||
@ -150,19 +150,17 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "snapcraft-store-token"
|
||||
|
||||
- name: Install Snap
|
||||
uses: samuelmeuli/action-snapcraft@d33c176a9b784876d966f80fb1b461808edc0641 # v2.1.1
|
||||
with:
|
||||
snapcraft_token: ${{ steps.retrieve-secrets.outputs.snapcraft-store-token }}
|
||||
|
||||
- name: Download artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli
|
||||
@ -172,7 +170,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli
|
||||
@ -185,7 +183,7 @@ jobs:
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ steps.retrieve-secrets.outputs.snapcraft-store-token }}
|
||||
run: |
|
||||
snapcraft push bw_${{ env._PKG_VERSION }}_amd64.snap --release stable
|
||||
snapcraft upload bw_${{ env._PKG_VERSION }}_amd64.snap --release stable
|
||||
snapcraft logout
|
||||
|
||||
choco:
|
||||
@ -206,7 +204,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "cli-choco-api-key"
|
||||
@ -222,7 +220,7 @@ jobs:
|
||||
|
||||
- name: Download artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli/dist
|
||||
@ -232,7 +230,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli/dist
|
||||
@ -265,14 +263,14 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "npm-api-key"
|
||||
|
||||
- name: Download artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli/build
|
||||
@ -282,7 +280,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli/build
|
||||
|
||||
31
.github/workflows/release-desktop-beta.yml
vendored
31
.github/workflows/release-desktop-beta.yml
vendored
@ -21,6 +21,7 @@ jobs:
|
||||
release-channel: ${{ steps.release-channel.outputs.channel }}
|
||||
branch-name: ${{ steps.branch.outputs.branch-name }}
|
||||
build_number: ${{ steps.increment-version.outputs.build_number }}
|
||||
node_version: ${{ steps.retrieve-node-version.outputs.node_version }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
@ -47,7 +48,7 @@ jobs:
|
||||
|
||||
- name: Check Release Version
|
||||
id: version
|
||||
uses: bitwarden/gh-actions/release-version-check@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/release-version-check@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
release-type: 'Initial Release'
|
||||
project-type: ts
|
||||
@ -104,12 +105,20 @@ jobs:
|
||||
|
||||
echo "branch-name=$branch_name" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Get Node Version
|
||||
id: retrieve-node-version
|
||||
run: |
|
||||
NODE_NVMRC=$(cat .nvmrc)
|
||||
NODE_VERSION=${NODE_NVMRC/v/''}
|
||||
echo "node_version=$NODE_VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
linux:
|
||||
name: Linux Build
|
||||
runs-on: ubuntu-20.04
|
||||
needs: setup
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.release-version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
defaults:
|
||||
run:
|
||||
working-directory: apps/desktop
|
||||
@ -124,7 +133,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
@ -209,6 +218,7 @@ jobs:
|
||||
working-directory: apps/desktop
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.release-version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
@ -220,7 +230,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||
@ -231,7 +241,7 @@ jobs:
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Install AST
|
||||
uses: bitwarden/gh-actions/install-ast@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/install-ast@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
|
||||
- name: Set up environment
|
||||
run: choco install checksum --no-progress
|
||||
@ -249,7 +259,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "code-signing-vault-url,
|
||||
@ -401,6 +411,7 @@ jobs:
|
||||
needs: setup
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.release-version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
defaults:
|
||||
run:
|
||||
working-directory: apps/desktop
|
||||
@ -415,7 +426,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
@ -530,6 +541,7 @@ jobs:
|
||||
- macos-build
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.release-version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
defaults:
|
||||
run:
|
||||
working-directory: apps/desktop
|
||||
@ -544,7 +556,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
@ -732,6 +744,7 @@ jobs:
|
||||
- macos-build
|
||||
env:
|
||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.release-version }}
|
||||
_NODE_VERSION: ${{ needs.setup.outputs.node_version }}
|
||||
defaults:
|
||||
run:
|
||||
working-directory: apps/desktop
|
||||
@ -746,7 +759,7 @@ jobs:
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
@ -932,7 +945,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "aws-electron-access-id,
|
||||
|
||||
28
.github/workflows/release-desktop.yml
vendored
28
.github/workflows/release-desktop.yml
vendored
@ -67,7 +67,7 @@ jobs:
|
||||
|
||||
- name: Check Release Version
|
||||
id: version
|
||||
uses: bitwarden/gh-actions/release-version-check@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/release-version-check@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
release-type: ${{ inputs.release_type }}
|
||||
project-type: ts
|
||||
@ -110,7 +110,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "aws-electron-access-id,
|
||||
@ -123,7 +123,7 @@ jobs:
|
||||
|
||||
- name: Download all artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
@ -132,7 +132,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download all artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
@ -185,7 +185,7 @@ jobs:
|
||||
--endpoint-url https://${CF_ACCOUNT}.r2.cloudflarestorage.com
|
||||
|
||||
- name: Get checksum files
|
||||
uses: bitwarden/gh-actions/get-checksum@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-checksum@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
packages_dir: "apps/desktop/artifacts"
|
||||
file_path: "apps/desktop/artifacts/sha256-checksums.txt"
|
||||
@ -263,15 +263,13 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "snapcraft-store-token"
|
||||
|
||||
- name: Install Snap
|
||||
uses: samuelmeuli/action-snapcraft@d33c176a9b784876d966f80fb1b461808edc0641 # v2.1.1
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ steps.retrieve-secrets.outputs.snapcraft-store-token }}
|
||||
|
||||
- name: Setup
|
||||
run: mkdir dist
|
||||
@ -279,7 +277,7 @@ jobs:
|
||||
|
||||
- name: Download Snap artifact
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
@ -289,7 +287,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download Snap artifact
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
@ -302,8 +300,8 @@ jobs:
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ steps.retrieve-secrets.outputs.snapcraft-store-token }}
|
||||
run: |
|
||||
/snap/bin/snapcraft upload bitwarden_${{ env._PKG_VERSION }}_amd64.snap --release stable
|
||||
/snap/bin/snapcraft logout
|
||||
snapcraft upload bitwarden_${{ env._PKG_VERSION }}_amd64.snap --release stable
|
||||
snapcraft logout
|
||||
working-directory: apps/desktop/dist
|
||||
|
||||
choco:
|
||||
@ -329,7 +327,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "cli-choco-api-key"
|
||||
@ -347,7 +345,7 @@ jobs:
|
||||
|
||||
- name: Download choco artifact
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
@ -357,7 +355,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download choco artifact
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
|
||||
12
.github/workflows/release-web.yml
vendored
12
.github/workflows/release-web.yml
vendored
@ -41,7 +41,7 @@ jobs:
|
||||
|
||||
- name: Check Release Version
|
||||
id: version
|
||||
uses: bitwarden/gh-actions/release-version-check@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/release-version-check@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
release-type: ${{ github.event.inputs.release_type }}
|
||||
project-type: ts
|
||||
@ -130,7 +130,7 @@ jobs:
|
||||
|
||||
- name: Retrieve bot secrets
|
||||
id: retrieve-bot-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: bitwarden-ci
|
||||
secrets: "github-pat-bitwarden-devops-bot-repo-scope"
|
||||
@ -144,7 +144,7 @@ jobs:
|
||||
|
||||
- name: Download latest cloud asset
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: assets
|
||||
@ -154,7 +154,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download latest cloud asset
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: assets
|
||||
@ -227,7 +227,7 @@ jobs:
|
||||
|
||||
- name: Download latest build artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: apps/web/artifacts
|
||||
@ -238,7 +238,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download latest build artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: apps/web/artifacts
|
||||
|
||||
2
.github/workflows/staged-rollout-desktop.yml
vendored
2
.github/workflows/staged-rollout-desktop.yml
vendored
@ -26,7 +26,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "aws-electron-access-id,
|
||||
|
||||
9
.github/workflows/test.yml
vendored
9
.github/workflows/test.yml
vendored
@ -27,12 +27,19 @@ jobs:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Get Node Version
|
||||
id: retrieve-node-version
|
||||
run: |
|
||||
NODE_NVMRC=$(cat .nvmrc)
|
||||
NODE_VERSION=${NODE_NVMRC/v/''}
|
||||
echo "node_version=$NODE_VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: '18'
|
||||
node-version: ${{ steps.retrieve-node-version.outputs.node_version }}
|
||||
|
||||
- name: Print environment
|
||||
run: |
|
||||
|
||||
6
.github/workflows/version-bump.yml
vendored
6
.github/workflows/version-bump.yml
vendored
@ -54,7 +54,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "github-gpg-private-key, github-gpg-private-key-passphrase"
|
||||
@ -125,14 +125,14 @@ jobs:
|
||||
|
||||
- name: Bump Browser Version - Manifest
|
||||
if: ${{ inputs.bump_browser == true }}
|
||||
uses: bitwarden/gh-actions/version-bump@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/version-bump@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
version: ${{ inputs.version_number }}
|
||||
file_path: "apps/browser/src/manifest.json"
|
||||
|
||||
- name: Bump Browser Version - Manifest v3
|
||||
if: ${{ inputs.bump_browser == true }}
|
||||
uses: bitwarden/gh-actions/version-bump@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/version-bump@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
with:
|
||||
version: ${{ inputs.version_number }}
|
||||
file_path: "apps/browser/src/manifest.v3.json"
|
||||
|
||||
2
.github/workflows/workflow-linter.yml
vendored
2
.github/workflows/workflow-linter.yml
vendored
@ -8,4 +8,4 @@ on:
|
||||
|
||||
jobs:
|
||||
call-workflow:
|
||||
uses: bitwarden/gh-actions/.github/workflows/workflow-linter.yml@62d1bf7c3e31c458cc7236b1e69a475d235cd78f
|
||||
uses: bitwarden/gh-actions/.github/workflows/workflow-linter.yml@f1125802b1ccae8c601d7c4f61ce39ea254b10c8
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "التعبئة التلقائية"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "إنشاء كلمة مرور (تم النسخ)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "لا توجد تسجيلات دخول مطابقة."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "افتح خزنتك"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Avto-doldurma"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Giriş avto-doldurma"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Kart avto-doldurma"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Kimlik avto-doldurma"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Parol yarat (kopyalandı)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Uyğun gələn hesab yoxdur."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Kart yoxdur"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Kimlik yoxdur"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Giriş əlavə et"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Kart əlavə et"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Kimlik əlavə et"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Anbarın kilidini açın"
|
||||
},
|
||||
@ -671,7 +695,7 @@
|
||||
"description": "'Solarized' is a noun and the name of a color scheme. It should not be translated."
|
||||
},
|
||||
"exportVault": {
|
||||
"message": "Anbarı ixrac et"
|
||||
"message": "Anbarı xaricə köçür"
|
||||
},
|
||||
"fileFormat": {
|
||||
"message": "Fayl formatı"
|
||||
@ -681,19 +705,19 @@
|
||||
"description": "WARNING (should stay in capitalized letters if the language permits)"
|
||||
},
|
||||
"confirmVaultExport": {
|
||||
"message": "Anbarın ixracını təsdiqləyin"
|
||||
"message": "Anbarın xaricə köçürülməsini təsdiqləyin"
|
||||
},
|
||||
"exportWarningDesc": {
|
||||
"message": "Bu ixrac faylındakı anbar verilənləriniz şifrələnməmiş formatdadır. İxrac edilən faylı, güvənli olmayan kanallar üzərində saxlamamalı və ya göndərməməlisiniz (e-poçt kimi). Bu faylı işiniz bitdikdən sonra dərhal silin."
|
||||
"message": "Xaricə köçürdüyünüz bu fayldakı datanız şifrələnməmiş formatdadır. Bu faylı güvənli olmayan kanallar (e-poçt kimi) üzərində saxlamamalı və ya göndərməməlisiniz. İşiniz bitdikdən sonra faylı dərhal silin."
|
||||
},
|
||||
"encExportKeyWarningDesc": {
|
||||
"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."
|
||||
"message": "Xaricə köçürdüyünüz bu fayldakı data, hesabınızın şifrələmə açarı istifadə edilərək şifrələnir. Hesabınızın şifrələmə açarını dəyişdirsəniz, bu faylın şifrəsini aça bilməyəcəksiniz və onu yenidən xaricə köçürməli olacaqsınız."
|
||||
},
|
||||
"encExportAccountWarningDesc": {
|
||||
"message": "Hesab şifrələmə açarları, hər Bitwarden istifadəçi hesabı üçün unikaldır, buna görə də şifrələnmiş bir ixracı, fərqli bir hesaba idxal edə bilməzsiniz."
|
||||
},
|
||||
"exportMasterPassword": {
|
||||
"message": "Anbar verilənlərinizi ixrac etmək üçün ana parolunuzu daxil edin."
|
||||
"message": "Anbar datanızı xaricə köçürmək üçün ana parolunuzu daxil edin."
|
||||
},
|
||||
"shared": {
|
||||
"message": "Paylaşılan"
|
||||
@ -799,7 +823,7 @@
|
||||
"message": "YubiKey və Duo kimi mülkiyyətçi iki addımlı giriş seçimləri."
|
||||
},
|
||||
"ppremiumSignUpReports": {
|
||||
"message": "Anbarınızın təhlükəsiyini təmin etmək üçün parol gigiyenası, hesab sağlamlığı və verilənlərin pozulması hesabatları."
|
||||
"message": "Anbarınızın təhlükəsizliyini təmin etmək üçün parol gigiyenası, hesab sağlamlığı və data pozuntusu hesabatları."
|
||||
},
|
||||
"ppremiumSignUpTotp": {
|
||||
"message": "Anbarınızdakı hesablar üçün TOTP təsdiqləmə kodu (2FA) yaradıcısı."
|
||||
@ -2408,18 +2432,18 @@
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
"message": "Domen ləqəbi"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"message": "\"Ana parolu təkrar soruş\" özəlliyi olan elementlər səhifə yüklənəndə avto-doldurulmur. \"Səhifə yüklənəndə avto-doldurma\" özəlliyi söndürülüb.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Auto-fill on page load set to use default setting.",
|
||||
"message": "\"Səhifə yüklənəndə avto-doldurma\" özəlliyi ilkin tənzimləməni istifadə etmək üzrə tənzimləndi.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Turn off master password re-prompt to edit this field",
|
||||
"message": "Bu sahəyə düzəliş etmək üçün \"Ana parolu təkrar soruş\"u söndürün",
|
||||
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
|
||||
}
|
||||
}
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Аўтазапаўненне"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Генерыраваць пароль (з капіяваннем)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Няма адпаведных лагінаў."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Разблакіраваць сховішча"
|
||||
},
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
"message": "Впишете се или създайте нов абонамент, за да достъпите защитен трезор."
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Създаване на абонамент"
|
||||
"message": "Създаване на акаунт"
|
||||
},
|
||||
"login": {
|
||||
"message": "Вписване"
|
||||
@ -83,7 +83,7 @@
|
||||
"message": "Копиране на потребителското име"
|
||||
},
|
||||
"copyNumber": {
|
||||
"message": "Копиране на номера"
|
||||
"message": "Копиране на но̀мера"
|
||||
},
|
||||
"copySecurityCode": {
|
||||
"message": "Копиране на кода за сигурност"
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Автоматично дописване"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Авт. попълване на данни за вход"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Самопопълваща се карта"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Самопопълваща се самоличност"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Генериране на парола (копирана)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Няма съвпадащи записи."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Няма карти"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Няма самоличности"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Добавяне на запис за вход"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Добавяне на карта"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Добавяне на самоличност"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Отключете трезора си"
|
||||
},
|
||||
@ -233,7 +257,7 @@
|
||||
"message": "Избор"
|
||||
},
|
||||
"generatePassword": {
|
||||
"message": "Генериране на парола"
|
||||
"message": "Нова парола"
|
||||
},
|
||||
"regeneratePassword": {
|
||||
"message": "Регенериране на паролата"
|
||||
@ -467,7 +491,7 @@
|
||||
"message": "Грешен код за потвърждаване"
|
||||
},
|
||||
"valueCopied": {
|
||||
"message": "$VALUE$ — копирано",
|
||||
"message": "Копирано е $VALUE$",
|
||||
"description": "Value has been copied to the clipboard.",
|
||||
"placeholders": {
|
||||
"value": {
|
||||
@ -537,7 +561,7 @@
|
||||
"message": "Копирана парола"
|
||||
},
|
||||
"uri": {
|
||||
"message": "Адрес"
|
||||
"message": "Унифициран идентификатор на ресурс"
|
||||
},
|
||||
"uriPosition": {
|
||||
"message": "Адрес $POSITION$",
|
||||
@ -550,7 +574,7 @@
|
||||
}
|
||||
},
|
||||
"newUri": {
|
||||
"message": "Нов адрес"
|
||||
"message": "Нов унифициран идентификатор на ресурс"
|
||||
},
|
||||
"addedItem": {
|
||||
"message": "Елементът е добавен"
|
||||
@ -631,7 +655,7 @@
|
||||
"message": "Да се обнови ли паролата в Bitwarden?"
|
||||
},
|
||||
"notificationChangeSave": {
|
||||
"message": "Да, нека се обнови сега"
|
||||
"message": "Осъвременяване"
|
||||
},
|
||||
"notificationUnlockDesc": {
|
||||
"message": "Отключете трезора си в Битуорден, за да завършите заявката за автоматично попълване."
|
||||
@ -684,7 +708,7 @@
|
||||
"message": "Потвърждаване на изнасянето на трезора"
|
||||
},
|
||||
"exportWarningDesc": {
|
||||
"message": "Данните от трезора ви ще се изнесат в незащитен формат. Не го пращайте по незащитени канали като е-поща. Изтрийте файла незабавно след като свършите работата си с него."
|
||||
"message": "Този износ съдържа данни на трезора ви в некриптиран формат. Не трябва да съхранявате или изпращате износния файл през незащитени канали (като имейл). Изтрийте файла моментално след като свършите работата си с него."
|
||||
},
|
||||
"encExportKeyWarningDesc": {
|
||||
"message": "При изнасяне данните се шифрират с ключа ви. Ако го смените, ще трябва наново да ги изнесете, защото няма да може да дешифрирате настоящия файл."
|
||||
@ -699,10 +723,10 @@
|
||||
"message": "Споделено"
|
||||
},
|
||||
"learnOrg": {
|
||||
"message": "Разберете повече за организациите"
|
||||
"message": "Научете за организациите"
|
||||
},
|
||||
"learnOrgConfirmation": {
|
||||
"message": "Битуорден позволява да споделяте части от трезора си чрез използването на организация. Искате ли да научите повече от сайта bitwarden.com?"
|
||||
"message": "Битуорден позволява да споделяте елементи от трезора си а други, използвайки организация. Бихте ли посетили сайта bitwarden.com, за да научите повече?"
|
||||
},
|
||||
"moveToOrganization": {
|
||||
"message": "Преместване в организация"
|
||||
@ -781,7 +805,7 @@
|
||||
"message": "Управление на абонамента"
|
||||
},
|
||||
"premiumManageAlert": {
|
||||
"message": "Можете да управлявате абонамента си през сайта bitwarden.com. Искате ли да го посетите сега?"
|
||||
"message": "Може да управлявате членството си в мрежата на трезора в bitwarden.com. Искате ли да посетите уебсайта сега?"
|
||||
},
|
||||
"premiumRefresh": {
|
||||
"message": "Опресняване на абонамента"
|
||||
@ -901,7 +925,7 @@
|
||||
"message": "Регистрацията е защитена с двустепенно удостоверяване, но никой от настроените доставчици на удостоверяване не се поддържа от този браузър."
|
||||
},
|
||||
"noTwoStepProviders2": {
|
||||
"message": "Пробвайте с поддържан уеб браузър (като Chrome или Firefox) и други доставчици на удостоверяване, които се поддържат от браузърите (като специални програми за удостоверяване)."
|
||||
"message": "Употребявайте поддържан браузър (като Chrome, Firefox) и/или добавете други доставчици на удостоверяване, които се поддържат по-добре от браузърите (като специални програми за удостоверяване)."
|
||||
},
|
||||
"twoStepOptions": {
|
||||
"message": "Настройки на двустепенното удостоверяване"
|
||||
@ -920,10 +944,10 @@
|
||||
"description": "'Authy' and 'Google Authenticator' are product names and should not be translated."
|
||||
},
|
||||
"yubiKeyTitle": {
|
||||
"message": "Устройство YubiKey OTP"
|
||||
"message": "Ключ за сигурност YubiKey OTP"
|
||||
},
|
||||
"yubiKeyDesc": {
|
||||
"message": "Използвайте устройство на YubiKey, за да влезете в абонамента си. Поддържат се моделите YubiKey 4, 4 Nano, 4C и NEO."
|
||||
"message": "Използвайте ключа за сигурност YubiKey, за да влезете в акаунта си. Работи с устройствата YubiKey 4, 4 Nano, 4C и NEO."
|
||||
},
|
||||
"duoDesc": {
|
||||
"message": "Удостоверяване чрез Duo Security, с ползване на приложението Duo Mobile, SMS, телефонен разговор или устройство U2F.",
|
||||
@ -2096,7 +2120,7 @@
|
||||
"message": "собствен хостинг"
|
||||
},
|
||||
"thirdParty": {
|
||||
"message": "Third-party"
|
||||
"message": "Трета страна"
|
||||
},
|
||||
"thirdPartyServerMessage": {
|
||||
"message": "Connected to third-party server implementation, $SERVERNAME$. Please verify bugs using the official server, or report them to the third-party server.",
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "স্বতঃপূরণ"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "পাসওয়ার্ড তৈরি করুন (অনুলিপিকৃত)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "কোনও মিলত লগইন নেই।"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-fill"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Emplenament automàtic"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Genera contrasenya (copiada)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No hi ha inicis de sessió coincidents."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "1. Desbloquegeu la caixa forta."
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Automatické vyplňování"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Automaticky vyplnit přihlášení"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Automaticky vyplnit kartu"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Automaticky vyplnit identitu"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Vygenerovat heslo a zkopírovat do schránky"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Žádné odpovídající přihlašovací údaje"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Žádné karty"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Žádné identity"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Přidat přihlašovací údaje"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Přidat kartu"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Přidat identitu"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Odemknout Váš trezor"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Llenwi'n awtomatig"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Cynhyrchu cyfrinair (wedi'i gopïo)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Datgloi'ch cell"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-udfyld"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Autoudfyld login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Autoudfyld kort"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Autoudfyld identitet"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generér adgangskode (kopieret)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Ingen matchende logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Ingen kort"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Ingen identiteter"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Tilføj login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Tilføj kort"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Tilføj identitet"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Lås din boks op"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-Ausfüllen"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Zugangsdaten automatisch ausfüllen"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Karte automatisch ausfüllen"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Identität automatisch ausfüllen"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Passwort generieren (kopiert)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Keine passenden Zugangsdaten"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Keine Karten"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Keine Identitäten"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Zugangsdaten hinzufügen"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Karte hinzufügen"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Identität hinzufügen"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Entsperre deinen Tresor"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Αυτόματη συμπλήρωση"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Δημιουργία Κωδικού (αντιγράφηκε)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Δεν υπάρχουν αντιστοιχίσεις σύνδεσης."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Ξεκλειδώστε το vault σας"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-fill"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-fill"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Autorellenar"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generar contraseña (copiada)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Sin entradas coincidentes."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Desbloquea la caja fuerte"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Automaatne täitmine"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Täida konto andmed"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Täida kaardi andmed"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Täida identiteet"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Genereeri parool (kopeeritakse)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Sobivaid kontoandmeid ei leitud."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Kaardid puuduvad"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Identiteedid puuduvad"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Lisa konto andmed"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Lisa kaart"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Lisa identiteet"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Lukusta hoidla lahti"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-betetzea"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Sortu pasahitza (kopiatuta)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Bat datozen saio-hasierarik gabe"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Desblokeatu kutxa gotorra"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "پر کردن خودکار"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "پر کردن خودکار ورود"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "پر کردن خودکار کارت"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "پر کردن خودکار هویت"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "ساخت کلمه عبور (کپی شد)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "ورودیها منتطبق نیست"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "کارتی وجود ندارد"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "هویتی وجود ندارد"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "افزودن ورود"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "افزودن کارت"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "افزودن هویت"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "قفل گاوصندوق خود را باز کنید"
|
||||
},
|
||||
@ -637,7 +661,7 @@
|
||||
"message": "برای پر کردن خودکار گاوصندوق Bitwarden خود را باز کنید."
|
||||
},
|
||||
"notificationUnlock": {
|
||||
"message": "بازگشایی"
|
||||
"message": "باز کردن قفل"
|
||||
},
|
||||
"enableContextMenuItem": {
|
||||
"message": "نمایش گزینههای منوی زمینه"
|
||||
@ -702,7 +726,7 @@
|
||||
"message": "درباره سازمانها اطلاعات کسب کنید"
|
||||
},
|
||||
"learnOrgConfirmation": {
|
||||
"message": "Bitwarden به شما اجازه میدهد با استفاده از سازماندهی، موارد گاوصندوق خود را با دیگران به اشتراک بگذارید. آیا مایل به بازدید از وب سایت bitwarden.com برای کسب اطلاعات بیشتر هستید؟"
|
||||
"message": "Bitwarden به شما اجازه میدهد با استفاده از سازمان، موارد گاوصندوق خود را با دیگران به اشتراک بگذارید. آیا مایل به بازدید از وب سایت bitwarden.com برای کسب اطلاعات بیشتر هستید؟"
|
||||
},
|
||||
"moveToOrganization": {
|
||||
"message": "انتقال به سازمان"
|
||||
@ -772,7 +796,7 @@
|
||||
"message": "ویژگی موجود نیست"
|
||||
},
|
||||
"encryptionKeyMigrationRequired": {
|
||||
"message": "Encryption key migration required. Please login through the web vault to update your encryption key."
|
||||
"message": "انتقال کلید رمزگذاری مورد نیاز است. لطفاً از طریق گاوصندوق وب وارد شوید تا کلید رمزگذاری خود را به روز کنید."
|
||||
},
|
||||
"premiumMembership": {
|
||||
"message": "عضویت پرمیوم"
|
||||
@ -1606,10 +1630,10 @@
|
||||
"message": "بیومتریک مرورگر در این دستگاه پشتیبانی نمیشود."
|
||||
},
|
||||
"biometricsFailedTitle": {
|
||||
"message": "زیستسنجی ناتمام ماند"
|
||||
"message": "زیستسنجی ناموفق بود"
|
||||
},
|
||||
"biometricsFailedDesc": {
|
||||
"message": "زیستسنجی نمی تواند انجام شود، استفاده از کلمه عبور اصلی یا خروج را در نظر بگیرید. اگر این مشکل ادامه یافت لطفا با پشتیبانی Bitwarden تماس بگیرید."
|
||||
"message": "زیستسنجی نمیتواند انجام شود، استفاده از کلمه عبور اصلی یا خروج را در نظر بگیرید. اگر این مشکل ادامه یافت لطفاً با پشتیبانی Bitwarden تماس بگیرید."
|
||||
},
|
||||
"nativeMessaginPermissionErrorTitle": {
|
||||
"message": "مجوز ارائه نشده است"
|
||||
@ -1992,7 +2016,7 @@
|
||||
"message": "برون ریزی گاوصندوق شخصی"
|
||||
},
|
||||
"exportingIndividualVaultDescription": {
|
||||
"message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.",
|
||||
"message": "فقط موارد شخصی گاوصندوق مرتبط با $EMAIL$ برون ریزی خواهند شد. موارد گاوصندوق سازمان شامل نخواهد شد. فقط اطلاعات مورد گاوصندوق برون ریزی خواهد شد و شامل تاریخچه کلمه عبور مرتبط یا پیوست نمیشود.",
|
||||
"placeholders": {
|
||||
"email": {
|
||||
"content": "$1",
|
||||
@ -2234,28 +2258,28 @@
|
||||
}
|
||||
},
|
||||
"loggingInOn": {
|
||||
"message": "ورود به عنوان"
|
||||
"message": "ورود با"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "در پنجره جدید باز میشود"
|
||||
},
|
||||
"deviceApprovalRequired": {
|
||||
"message": "تایید دستگاه لازم است. یک روش تایید برگزینید:"
|
||||
"message": "تأیید دستگاه لازم است. یک روش تأیید انتخاب کنید:"
|
||||
},
|
||||
"rememberThisDevice": {
|
||||
"message": "این دستگاه را به خاطر بسپار"
|
||||
},
|
||||
"uncheckIfPublicDevice": {
|
||||
"message": "بردارید اگر از دستگاه عمومی استفاده میکنید"
|
||||
"message": "اگر از دستگاه عمومی استفاده میکنید علامت را بردارید"
|
||||
},
|
||||
"approveFromYourOtherDevice": {
|
||||
"message": "تایید با دستگاه دیگرتان"
|
||||
"message": "تأیید با دستگاه دیگرتان"
|
||||
},
|
||||
"requestAdminApproval": {
|
||||
"message": "درخواست تایید مدیر"
|
||||
"message": "درخواست تأیید مدیر"
|
||||
},
|
||||
"approveWithMasterPassword": {
|
||||
"message": "تایید با کلمه عبور اصلی"
|
||||
"message": "تأیید با کلمه عبور اصلی"
|
||||
},
|
||||
"ssoIdentifierRequired": {
|
||||
"message": "شناسه سازمان SSO مورد نیاز است."
|
||||
@ -2283,37 +2307,37 @@
|
||||
"message": "حساب کاربری با موفقیت ایجاد شد!"
|
||||
},
|
||||
"adminApprovalRequested": {
|
||||
"message": "تایید مدیر در خواست شد"
|
||||
"message": "تأیید مدیر درخواست شد"
|
||||
},
|
||||
"adminApprovalRequestSentToAdmins": {
|
||||
"message": "درخواست شما به مدیرتان فرستاده شد."
|
||||
},
|
||||
"youWillBeNotifiedOnceApproved": {
|
||||
"message": "به محض تایید مطلع خواهید شد."
|
||||
"message": "به محض تأیید مطلع خواهید شد."
|
||||
},
|
||||
"troubleLoggingIn": {
|
||||
"message": "در ورود مشکلی دارید؟"
|
||||
},
|
||||
"loginApproved": {
|
||||
"message": "ورود تایید شد"
|
||||
"message": "ورود تأیید شد"
|
||||
},
|
||||
"userEmailMissing": {
|
||||
"message": "رایانامه کاربر کم است"
|
||||
"message": "ایمیل کاربر وجود ندارد"
|
||||
},
|
||||
"deviceTrusted": {
|
||||
"message": "دستگاه مورد اعتماد است"
|
||||
},
|
||||
"inputRequired": {
|
||||
"message": "ورودی مورد نیاز است."
|
||||
"message": "ورودی ضروری است."
|
||||
},
|
||||
"required": {
|
||||
"message": "الزامی"
|
||||
"message": "ضروری"
|
||||
},
|
||||
"search": {
|
||||
"message": "جستجو"
|
||||
},
|
||||
"inputMinLength": {
|
||||
"message": "ورودی باید حداقل $COUNT$ نشانه داشته باشد.",
|
||||
"message": "ورودی باید حداقل $COUNT$ کاراکتر داشته باشد.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
@ -2322,7 +2346,7 @@
|
||||
}
|
||||
},
|
||||
"inputMaxLength": {
|
||||
"message": "اندازه ورودی نباید بیش از $COUNT$ نشانه باشد.",
|
||||
"message": "طول ورودی نباید بیش از $COUNT$ کاراکتر باشد.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
@ -2331,7 +2355,7 @@
|
||||
}
|
||||
},
|
||||
"inputForbiddenCharacters": {
|
||||
"message": "نشانه های زیر مجاز نیستند: $CHARACTERS$",
|
||||
"message": "کاراکترهای زیر مجاز نیستند: $CHARACTERS$",
|
||||
"placeholders": {
|
||||
"characters": {
|
||||
"content": "$1",
|
||||
@ -2340,7 +2364,7 @@
|
||||
}
|
||||
},
|
||||
"inputMinValue": {
|
||||
"message": "مقدار ورودی باید دست کم $MIN$ باشد.",
|
||||
"message": "مقدار ورودی باید حداقل $MIN$ باشد.",
|
||||
"placeholders": {
|
||||
"min": {
|
||||
"content": "$1",
|
||||
@ -2349,7 +2373,7 @@
|
||||
}
|
||||
},
|
||||
"inputMaxValue": {
|
||||
"message": "مقدار ورودی نباید بیش از $MAX$ باشد.",
|
||||
"message": "مقدار ورودی نباید از $MAX$ تجاوز کند.",
|
||||
"placeholders": {
|
||||
"max": {
|
||||
"content": "$1",
|
||||
@ -2358,17 +2382,17 @@
|
||||
}
|
||||
},
|
||||
"multipleInputEmails": {
|
||||
"message": "یک یا چند رایانامه نامعتبر است"
|
||||
"message": "یک یا چند ایمیل نامعتبر است"
|
||||
},
|
||||
"inputTrimValidator": {
|
||||
"message": "ورودی نباید فقط فاصله باشد.",
|
||||
"message": "ورودی نباید فقط حاوی فضای خالی باشد.",
|
||||
"description": "Notification to inform the user that a form's input can't contain only whitespace."
|
||||
},
|
||||
"inputEmail": {
|
||||
"message": "ورودی یک نشانی رایانامه نیست."
|
||||
"message": "ورودی یک نشانی ایمیل نیست."
|
||||
},
|
||||
"fieldsNeedAttention": {
|
||||
"message": "بخش (های) $COUNT$ در بالا نیازمند توجه شما است.",
|
||||
"message": "فیلد $COUNT$ در بالا به توجه شما نیاز دارد.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
@ -2380,16 +2404,16 @@
|
||||
"message": "-- انتخاب --"
|
||||
},
|
||||
"multiSelectPlaceholder": {
|
||||
"message": "-- برای گزینش چیزی بنویسید --"
|
||||
"message": "-- برای فیلتر تایپ کنید --"
|
||||
},
|
||||
"multiSelectLoading": {
|
||||
"message": "در حال بازیابی گزینهها..."
|
||||
},
|
||||
"multiSelectNotFound": {
|
||||
"message": "موردی پیدا نشد"
|
||||
"message": "موردی یافت نشد"
|
||||
},
|
||||
"multiSelectClearAll": {
|
||||
"message": "پاک کردن همه"
|
||||
"message": "پاککردن همه"
|
||||
},
|
||||
"plusNMore": {
|
||||
"message": "+ $QUANTITY$ بیشتر",
|
||||
@ -2401,25 +2425,25 @@
|
||||
}
|
||||
},
|
||||
"submenu": {
|
||||
"message": "زیرفهرست"
|
||||
"message": "زیرمنو"
|
||||
},
|
||||
"toggleCollapse": {
|
||||
"message": "باز و بسته کردن",
|
||||
"message": "دکمه بستن",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
"message": "دامنه مستعار"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"message": "موارد با درخواست مجدد کلمه عبور اصلی را نمیتوان در بارگذاری صفحه بهصورت خودکار پر کرد. پر کردن خودکار در بارگیری صفحه خاموش شد.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Auto-fill on page load set to use default setting.",
|
||||
"message": "پر کردن خودکار در بارگیری صفحه برای استفاده از تنظیمات پیشفرض تنظیم شده است.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Turn off master password re-prompt to edit this field",
|
||||
"message": "برای ویرایش این فیلد، درخواست مجدد کلمه عبور اصلی را خاموش کنید",
|
||||
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
|
||||
}
|
||||
}
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Automaattinen täyttö"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Täytä kirjautumistieto automaattisesti"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Täytä kortti automaattisesti"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Täytä identiteetti automaattisesti"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Luo salasana (leikepöydälle)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Ei tunnistettuja kirjautumistietoja."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Kortteja ei ole"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Identiteettejä ei ole"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Lisää kirjautumistieto"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Lisää kortti"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Lisää identiteetti"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Avaa holvisi"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-fill sa Filipino ay Awtomatikong Pagpuno"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Maglagay ng Password"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Walang tumutugmang mga login"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Buksan ang iyong kahadeyero"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Saisie automatique"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Saisie automatique de l'identifiant"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Saisie automatique de la carte"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Saisie automatique de l'identité"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Générer un mot de passe (copié)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Aucun identifiant correspondant."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Aucune carte"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Aucune identité"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Ajouter un identifiant"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Ajouter une carte"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Ajouter une identité"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Déverrouillez votre coffre"
|
||||
},
|
||||
@ -634,7 +658,7 @@
|
||||
"message": "Mettre à jour"
|
||||
},
|
||||
"notificationUnlockDesc": {
|
||||
"message": "Unlock your Bitwarden vault to complete the auto-fill request."
|
||||
"message": "Déverrouillez votre coffre Bitwarden pour terminer la demande de saisie automatique."
|
||||
},
|
||||
"notificationUnlock": {
|
||||
"message": "Déverrouiller"
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-fill"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "השלמה אוטומטית"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "צור סיסמה (העתק)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "לא נמצאו פרטי כניסה תואמים."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "שחרור הכספת שלך"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "स्वत:भरण"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate Password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "कोई मेल-मिला लॉगिन नहीं |"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "आपकी तिजोरी का ताला खोलें"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-ispuna"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generiraj lozinku (i kopiraj)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Nema podudarajućih prijava"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Otključaj svoj trezor"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Automatikus kitöltés"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Automatikus kitöltés bejelentkezés"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Automatikus kitöltés kártya"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Automatikus kitöltés személyazonosság"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Jelszó generálás (másolt)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Nincsenek egyező bejelentkezések."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Nincsenek kártyák"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Nincsenek személyazonosságok"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Bejelentkezés hozzáadása"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Kártya hozzáadása"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Személyazonossság hozzáadása"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Széf kinyitása"
|
||||
},
|
||||
@ -143,7 +167,7 @@
|
||||
"message": "A folytatáshoz meg kell erősíteni a személyazonosságot."
|
||||
},
|
||||
"account": {
|
||||
"message": "Felhasználó"
|
||||
"message": "Fiók"
|
||||
},
|
||||
"changeMasterPassword": {
|
||||
"message": "Mesterjelszó módosítása"
|
||||
@ -513,7 +537,7 @@
|
||||
"message": "A kétlépcsős bejelentkezés biztonságosabbá teszi a fiókot azáltal, hogy ellenőrizni kell a bejelentkezést egy másik olyan eszközzel mint például biztonsági kulcs, hitelesítő alkalmazás, SMS, telefon hívás vagy email. A kétlépcsős bejelentkezést a bitwarden.com webes széfben lehet engedélyezni. Felkeressük a webhelyet most?"
|
||||
},
|
||||
"editedFolder": {
|
||||
"message": "A mappa módosításra került."
|
||||
"message": "A mappa mentésre került."
|
||||
},
|
||||
"deleteFolderConfirmation": {
|
||||
"message": "Biztos, hogy törölni akarod ezt a mappát?"
|
||||
@ -562,7 +586,7 @@
|
||||
"message": "Biztosan törlésre kerüljön ezt az elem?"
|
||||
},
|
||||
"deletedItem": {
|
||||
"message": "Az elem törlésre került."
|
||||
"message": "Az elem a lomtárba került."
|
||||
},
|
||||
"overwritePassword": {
|
||||
"message": "Jelszó felülírása"
|
||||
@ -769,7 +793,7 @@
|
||||
"message": "A naximális fájlméret 500 MB."
|
||||
},
|
||||
"featureUnavailable": {
|
||||
"message": "Ez a funkció nem érhető el."
|
||||
"message": "A funkció nem érhető el."
|
||||
},
|
||||
"encryptionKeyMigrationRequired": {
|
||||
"message": "Titkosítási kulcs migráció szükséges. Jelentkezzünk be a webes széfen keresztül a titkosítási kulcs frissítéséhez."
|
||||
@ -787,7 +811,7 @@
|
||||
"message": "Tagság frissítése"
|
||||
},
|
||||
"premiumNotCurrentMember": {
|
||||
"message": "Jelenleg nincs prémium tagság."
|
||||
"message": "Jelenleg nem vagyunk prémium tag."
|
||||
},
|
||||
"premiumSignUpAndGet": {
|
||||
"message": "Regisztráció a prémium tagságra az alábbi funkciókért:"
|
||||
@ -796,7 +820,7 @@
|
||||
"message": "1 GB titkosított tárhely a fájlmellékleteknek."
|
||||
},
|
||||
"premiumSignUpTwoStepOptions": {
|
||||
"message": "Proprietary two-step login options such as YubiKey and Duo."
|
||||
"message": "Saját kétlépcsős bejelentkezési lehetőségek mint a YubiKey és a Duo."
|
||||
},
|
||||
"ppremiumSignUpReports": {
|
||||
"message": "Jelszó higiénia, fiók biztonság és adatszivárgási jelentések a széf biztonsága érdekében."
|
||||
@ -817,7 +841,7 @@
|
||||
"message": "A prémium tagság megvásárolható a bitwarden.com webes széfben. Szeretnénk felkeresni a webhelyet most?"
|
||||
},
|
||||
"premiumCurrentMember": {
|
||||
"message": "Jelenleg a prémium tagság érvényben van."
|
||||
"message": "Prémium tag vagyunk!"
|
||||
},
|
||||
"premiumCurrentMemberThanks": {
|
||||
"message": "Köszönjük a Bitwarden támogatását."
|
||||
@ -994,7 +1018,7 @@
|
||||
"message": "Alapértelmezett beállítások bejelentkezési elemekhez"
|
||||
},
|
||||
"defaultAutoFillOnPageLoadDesc": {
|
||||
"message": "Az Automatikus kitöltés engedélyezése az oldalbetöltéskor engedélyezheti vagy letilthatja a funkciót az egyes bejelentkezési elemeknél. Ez az alapértelmezett beállítás a bejelentkezési elemeknéll, amelyek nincsenek külön konfigurálva."
|
||||
"message": "Az egyes bejelentkezési elemeknél kikapcsolhatjuk oldalbetöltéskor az automatikus kitöltést az elem Szerkesztés nézetében."
|
||||
},
|
||||
"itemAutoFillOnPageLoad": {
|
||||
"message": "Automatikus kitöltés oldal betöltésnél (Ha engedélyezett az opcióknál)"
|
||||
@ -1905,7 +1929,7 @@
|
||||
"message": "Perc"
|
||||
},
|
||||
"vaultTimeoutPolicyInEffect": {
|
||||
"message": "A szervezeti házirendek hatással vannak a széf időkorlátjára. A széf időkorlátja legfeljebb $HOURS$ óra és $MINUTES$ perc lehet.",
|
||||
"message": "A szervezeti szabályzata $HOURS$ órára és $MINUTES$ percre állította be a maximálisan megengedett széf időtúllépést.",
|
||||
"placeholders": {
|
||||
"hours": {
|
||||
"content": "$1",
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Isi otomatis"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Membuat Kata Sandi (tersalin)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Tidak ada info masuk yang cocok."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Buka brankas Anda"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Riempimento automatico"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Riempi automaticamente login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Riempi automaticamente carta"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Riempi automaticamente identità"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Genera password e copiala"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Nessun login corrispondente"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Nessuna carta"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Nessuna identità"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Aggiungi login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Aggiungi carta"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Aggiungi identità"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Sblocca la tua cassaforte"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "自動入力"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "自動入力ログイン"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "自動入力カード"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "自動入力 ID"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "パスワードを生成 (コピー)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "一致するログインがありません。"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "カードなし"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "ID なし"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "ログイン情報を追加"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "カードを追加"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "ID を追加"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "保管庫のロックを解除"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "თვითშევსება"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-fill"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "ಸ್ವಯಂ ಭರ್ತಿ"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "ಪಾಸ್ವರ್ಡ್ ರಚಿಸಿ (ನಕಲಿಸಲಾಗಿದೆ)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "ಹೊಂದಾಣಿಕೆಯ ಲಾಗಿನ್ಗಳು ಇಲ್ಲ."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "자동 완성"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "비밀번호 생성 및 클립보드에 복사"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "사용할 수 있는 로그인이 없습니다."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "보관함 잠금 해제"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Automatinis užpildymas"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Automatinio užpildymo prisijungimas"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Automatinio užpildymo kortelė"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Automatinio užpildymo tapatybė"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Kurti slaptažodį (paruoštas įterpti)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Nėra atitinkančių prisijungimų."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Nėra kortelių"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Nėra tapatybių"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Pridėti prisijungimą"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Pridėti kortelę"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Pridėti tapatybę"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Atrakinti saugyklą"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Automātiskā aizpildīšana"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Automātiski aizpildīt pieteikšanos"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Automātiski aizpildīt karti"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Automātiski aizpildīt identitāti"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Izveidot paroli (tiks ievietota starpliktuvē)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Nav atbilstošu pieteikšanās vienumu"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Nav karšu"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Nav identitāšu"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Pievienot pieteikšanās vienumu"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Pievienot karti"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Pievienot identitāti"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Atslēgt glabātavu"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "ഓട്ടോഫിൽ"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "പാസ്വേഡ് സൃഷ്ടിക്കുക (പകർത്തുക )"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "പൊരുത്തപ്പെടുന്ന ലോഗിനുകളൊന്നുമില്ല."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "स्वयंभरण"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "तिजोरी उघडा"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-fill"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-utfylling"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generer et passord (kopiert)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Ingen samsvarende innlogginger."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Lås opp hvelvet ditt"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-fill"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-invullen"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Login automatisch invullen"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Kaart automatisch invullen"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Identiteit automatisch invullen"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Wachtwoord genereren (op klembord)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Geen overeenkomstige logins."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Geen kaarten"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Geen identiteiten"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Login toevoegen"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Kaart toevoegen"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Identiteit toevoegen"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Ontgrendel je kluis"
|
||||
},
|
||||
@ -772,7 +796,7 @@
|
||||
"message": "Functionaliteit niet beschikbaar"
|
||||
},
|
||||
"encryptionKeyMigrationRequired": {
|
||||
"message": "Encryption key migration required. Please login through the web vault to update your encryption key."
|
||||
"message": "Migratie van de encryptiesleutel vereist. Login via de website om je sleutel te bij te werken."
|
||||
},
|
||||
"premiumMembership": {
|
||||
"message": "Premium-abonnement"
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-fill"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-fill"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Autouzupełnianie"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Autouzupełnianie logowania"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Autouzupełnianie karty"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Autouzupełnianie tożsamości"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Wygeneruj hasło (do schowka)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Brak pasujących danych logowania"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Brak kart"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Brak tożsamości"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Dodaj dane logowania"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Dodaj kartę"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Dodaj tożsamość"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Odblokuj sejf"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Autopreencher"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Gerar Senha (copiada)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Sem credenciais correspondentes."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Desbloqueie seu cofre"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Preenchimento automático"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Preenchimento automático da credencial"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Preenchimento automático do cartão"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Preenchimento automático da identidade"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Gerar palavra-passe (copiada)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Sem credenciais correspondentes"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Sem cartões"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Sem identidades"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Adicionar credencial"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Adicionar cartão"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Adicionar identidade"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Desbloquear o cofre"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-completare"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generare parolă (s-a copiat)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Nu există potrivire de autentificări"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Deblocați-vă seiful"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Автозаполнение"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Автозаполнение логина"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Автозаполнение карты"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Автозаполнение личности"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Сгенерировать пароль (с копированием)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Нет подходящих логинов."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Нет карт"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Нет личностей"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Добавить логин"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Добавить карту"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Добавить личность"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Разблокировать хранилище"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "ස්වයං-පිරවීම"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "මුරපදය ජනනය (පිටපත්)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "ගැලපෙන පිවිසුම් නොමැත."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Automatické vypĺňanie"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Automatické vyplnenie prihlasovacích údajov"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Automatické vyplnenie karty"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Automatické vyplnenie identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Vygenerovať heslo (skopírované)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Žiadne zodpovedajúce prihlasovacie údaje."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Žiadne karty"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Žiadne identity"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Pridať prihlasovacie údaje"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Pridať kartu"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Pridať identitu"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Odomknúť trezor"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Samodejno izpolnjevanje"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generiraj geslo (kopirano)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Ni ustreznih prijav."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Odkleni svoj trezor"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Аутоматско допуњавање"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Ауто-пуњење пријаве"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Ауто-пуњење картице"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Ауто-пуњење идентитета"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Генериши Лозинку (копирано)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Нема одговарајућих пријављивања."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Нема карте"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Нема идентитета"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Нема пријаве"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Додати картицу"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Додати идентитет"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Откључај свој сеф"
|
||||
},
|
||||
@ -2408,7 +2432,7 @@
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
"message": "Домен алијаса"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Ставке са упитом за поновно постављање главне лозинке не могу се ауто-попунити при учитавању странице. Ауто-попуњавање при учитавању странице је искључено.",
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Fyll i automatiskt"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Autofyll inloggning"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Autofyll kort"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Skapa lösenord (kopierad)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Inga matchande inloggningar"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Inga kort"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Inga identiteter"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Lägg till inloggning"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Lägg till kort"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Lägg till identitet"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Lås upp ditt valv"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Auto-fill"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "No matching logins"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Unlock your vault"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "กรอกข้อมูลอัตโนมัติ"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Generate Password (copied)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "ไม่พบข้อมูลล็อกอินที่ตรงกัน"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "ปลดล็อกกตู้นิรภัยของคุณ"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Otomatik doldur"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Hesabı otomatik doldur"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Kartı otomatik doldur"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Kimliği otomatik doldur"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Parola oluştur (ve kopyala)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Eşleşen hesap yok"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Kart yok"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Kimlik yok"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Hesap ekle"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Kart ekle"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Kimlik ekle"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Kasanızın kilidini açın"
|
||||
},
|
||||
@ -1609,7 +1633,7 @@
|
||||
"message": "Biyometri doğrulanamadı"
|
||||
},
|
||||
"biometricsFailedDesc": {
|
||||
"message": "Biometrics cannot be completed, consider using a master password or logging out. If this persists, please contact Bitwarden support."
|
||||
"message": "Biyometri doğrulaması tamamlanamadı. Ana parolanızı kullanabilir veya çıkış yapabilirsiniz. Sorun devam ederse Bitwarden destek ekibiyle iletişime geçin."
|
||||
},
|
||||
"nativeMessaginPermissionErrorTitle": {
|
||||
"message": "İzin verilmedi"
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Автозаповнення"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Автозаповнення входу"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Автозаповнення картки"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Автозаповнення особистих даних"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Генерувати пароль (з копіюванням)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Немає відповідних записів"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Немає карток"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Немає особистих даних"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Додати запис входу"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Додати картку"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Додати особисті дані"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Розблокуйте сховище"
|
||||
},
|
||||
@ -2408,18 +2432,18 @@
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
"message": "Псевдонім домену"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"message": "Записи з повторним запитом головного пароля не можна автоматично заповнювати під час завантаження сторінки. Автозаповнення на сторінці вимкнено.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Auto-fill on page load set to use default setting.",
|
||||
"message": "Автозаповнення на сторінці налаштовано з типовими параметрами.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Turn off master password re-prompt to edit this field",
|
||||
"message": "Вимкніть повторний запит головного пароля, щоб редагувати це поле",
|
||||
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
|
||||
}
|
||||
}
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "Tự động điền"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Tạo mật khẩu (đã sao chép)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Không có thông tin đăng nhập phù hợp."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Mở khoá kho lưu trữ của bạn"
|
||||
},
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "自动填充"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "自动填充登录"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "自动填充支付卡"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "自动填充身份"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "生成密码(并复制)"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "无匹配的登录项目"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "无支付卡"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "无身份"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "添加登录项目"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "添加支付卡"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "添加身份"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "解锁您的密码库"
|
||||
},
|
||||
@ -850,7 +874,7 @@
|
||||
"message": "使用此功能需要高级会员资格。"
|
||||
},
|
||||
"enterVerificationCodeApp": {
|
||||
"message": "请输入您的验证器应用中的 6 位验证码。"
|
||||
"message": "请输入您的验证器应用中的 6 位数验证码。"
|
||||
},
|
||||
"enterVerificationCodeEmail": {
|
||||
"message": "请输入发送给电子邮件 $EMAIL$ 的 6 位数验证码。",
|
||||
@ -2117,7 +2141,7 @@
|
||||
}
|
||||
},
|
||||
"loginWithMasterPassword": {
|
||||
"message": "主密码登录"
|
||||
"message": "使用主密码登录"
|
||||
},
|
||||
"loggingInAs": {
|
||||
"message": "正登录为"
|
||||
@ -2132,7 +2156,7 @@
|
||||
"message": "记住电子邮件地址"
|
||||
},
|
||||
"loginWithDevice": {
|
||||
"message": "设备登录"
|
||||
"message": "使用设备登录"
|
||||
},
|
||||
"loginWithDeviceEnabledInfo": {
|
||||
"message": "设备登录必须在 Bitwarden 应用程序的设置中启用。需要其他登录选项吗?"
|
||||
|
||||
@ -91,6 +91,15 @@
|
||||
"autoFill": {
|
||||
"message": "自動填入"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Auto-fill identity"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "產生及複製密碼"
|
||||
},
|
||||
@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "無符合的登入資料"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "No cards"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "No identities"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Add login"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Add card"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Add identity"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "解鎖您的密碼庫"
|
||||
},
|
||||
|
||||
@ -113,7 +113,10 @@
|
||||
"
|
||||
>
|
||||
<div id="duo-frame">
|
||||
<iframe id="duo_iframe" sandbox="allow-scripts allow-forms allow-same-origin"></iframe>
|
||||
<iframe
|
||||
id="duo_iframe"
|
||||
sandbox="allow-scripts allow-forms allow-same-origin allow-popups allow-popups-to-escape-sandbox"
|
||||
></iframe>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="box-content">
|
||||
|
||||
@ -4,6 +4,7 @@ import { EventCollectionService } from "@bitwarden/common/abstractions/event/eve
|
||||
import { TotpService } from "@bitwarden/common/abstractions/totp.service";
|
||||
import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service";
|
||||
import { UserVerificationService } from "@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction";
|
||||
import { StateService } from "@bitwarden/common/platform/abstractions/state.service";
|
||||
import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service";
|
||||
import { CipherRepromptType } from "@bitwarden/common/vault/enums/cipher-reprompt-type";
|
||||
import { CipherType } from "@bitwarden/common/vault/enums/cipher-type";
|
||||
@ -65,6 +66,7 @@ describe("ContextMenuClickedHandler", () => {
|
||||
let autofill: AutofillAction;
|
||||
let authService: MockProxy<AuthService>;
|
||||
let cipherService: MockProxy<CipherService>;
|
||||
let stateService: MockProxy<StateService>;
|
||||
let totpService: MockProxy<TotpService>;
|
||||
let eventCollectionService: MockProxy<EventCollectionService>;
|
||||
let userVerificationService: MockProxy<UserVerificationService>;
|
||||
@ -77,6 +79,7 @@ describe("ContextMenuClickedHandler", () => {
|
||||
autofill = jest.fn<Promise<void>, [tab: chrome.tabs.Tab, cipher: CipherView]>();
|
||||
authService = mock();
|
||||
cipherService = mock();
|
||||
stateService = mock();
|
||||
totpService = mock();
|
||||
eventCollectionService = mock();
|
||||
|
||||
@ -86,6 +89,7 @@ describe("ContextMenuClickedHandler", () => {
|
||||
autofill,
|
||||
authService,
|
||||
cipherService,
|
||||
stateService,
|
||||
totpService,
|
||||
eventCollectionService,
|
||||
userVerificationService
|
||||
|
||||
@ -4,6 +4,7 @@ import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service";
|
||||
import { UserVerificationService } from "@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction";
|
||||
import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status";
|
||||
import { EventType } from "@bitwarden/common/enums";
|
||||
import { StateService } from "@bitwarden/common/platform/abstractions/state.service";
|
||||
import { StateFactory } from "@bitwarden/common/platform/factories/state-factory";
|
||||
import { GlobalState } from "@bitwarden/common/platform/models/domain/global-state";
|
||||
import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service";
|
||||
@ -63,6 +64,7 @@ export class ContextMenuClickedHandler {
|
||||
private autofillAction: AutofillAction,
|
||||
private authService: AuthService,
|
||||
private cipherService: CipherService,
|
||||
private stateService: StateService,
|
||||
private totpService: TotpService,
|
||||
private eventCollectionService: EventCollectionService,
|
||||
private userVerificationService: UserVerificationService
|
||||
@ -114,6 +116,7 @@ export class ContextMenuClickedHandler {
|
||||
(tab, cipher) => autofillCommand.doAutofillTabWithCipherCommand(tab, cipher),
|
||||
await authServiceFactory(cachedServices, serviceOptions),
|
||||
await cipherServiceFactory(cachedServices, serviceOptions),
|
||||
await stateServiceFactory(cachedServices, serviceOptions),
|
||||
await totpServiceFactory(cachedServices, serviceOptions),
|
||||
await eventCollectionServiceFactory(cachedServices, serviceOptions),
|
||||
await userVerificationServiceFactory(cachedServices, serviceOptions)
|
||||
@ -224,6 +227,7 @@ export class ContextMenuClickedHandler {
|
||||
return;
|
||||
}
|
||||
|
||||
this.stateService.setLastActive(new Date().getTime());
|
||||
switch (info.parentMenuItemId) {
|
||||
case AUTOFILL_ID:
|
||||
case AUTOFILL_IDENTITY_ID:
|
||||
|
||||
@ -993,11 +993,6 @@
|
||||
function fillTheElement(el, op) {
|
||||
var shouldCheck;
|
||||
if (el && null !== op && void 0 !== op && !(el.disabled || el.a || el.readOnly)) {
|
||||
const tabURLChanged = !fillScript.savedUrls?.some(url => url.startsWith(window.location.origin))
|
||||
// Check to make sure the page location didn't change
|
||||
if (tabURLChanged) {
|
||||
return;
|
||||
}
|
||||
switch (markTheFilling && el.form && !el.form.opfilled && (el.form.opfilled = true),
|
||||
el.type ? el.type.toLowerCase() : null) {
|
||||
case 'checkbox':
|
||||
|
||||
@ -148,7 +148,7 @@ export default class AutofillService implements AutofillServiceInterface {
|
||||
throw new Error("Nothing to auto-fill.");
|
||||
}
|
||||
|
||||
let totpPromise: Promise<string> = null;
|
||||
let totp: string | null = null;
|
||||
|
||||
const canAccessPremium = await this.stateService.getCanAccessPremium();
|
||||
const defaultUriMatch = (await this.stateService.getDefaultUriMatch()) ?? UriMatchType.Domain;
|
||||
@ -205,15 +205,14 @@ export default class AutofillService implements AutofillServiceInterface {
|
||||
|
||||
if (
|
||||
options.cipher.type !== CipherType.Login ||
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
||||
totpPromise ||
|
||||
totp !== null ||
|
||||
!options.cipher.login.totp ||
|
||||
(!canAccessPremium && !options.cipher.organizationUseTotp)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
totpPromise = this.stateService.getDisableAutoTotpCopy().then((disabled) => {
|
||||
totp = await this.stateService.getDisableAutoTotpCopy().then((disabled) => {
|
||||
if (!disabled) {
|
||||
return this.totpService.getCode(options.cipher.login.totp);
|
||||
}
|
||||
@ -224,8 +223,8 @@ export default class AutofillService implements AutofillServiceInterface {
|
||||
|
||||
if (didAutofill) {
|
||||
this.eventCollectionService.collect(EventType.Cipher_ClientAutofilled, options.cipher.id);
|
||||
if (totpPromise != null) {
|
||||
return await totpPromise;
|
||||
if (totp !== null) {
|
||||
return totp;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -108,7 +108,6 @@ describe("InsertAutofillContentService", () => {
|
||||
jest.spyOn(insertAutofillContentService as any, "fillingWithinSandboxedIframe");
|
||||
jest.spyOn(insertAutofillContentService as any, "userCancelledInsecureUrlAutofill");
|
||||
jest.spyOn(insertAutofillContentService as any, "userCancelledUntrustedIframeAutofill");
|
||||
jest.spyOn(insertAutofillContentService as any, "tabURLChanged");
|
||||
jest.spyOn(insertAutofillContentService as any, "runFillScriptAction");
|
||||
|
||||
insertAutofillContentService.fillForm(fillScript);
|
||||
@ -120,7 +119,6 @@ describe("InsertAutofillContentService", () => {
|
||||
expect(
|
||||
insertAutofillContentService["userCancelledUntrustedIframeAutofill"]
|
||||
).not.toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["tabURLChanged"]).not.toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["runFillScriptAction"]).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
@ -130,7 +128,6 @@ describe("InsertAutofillContentService", () => {
|
||||
.mockReturnValue(true);
|
||||
jest.spyOn(insertAutofillContentService as any, "userCancelledInsecureUrlAutofill");
|
||||
jest.spyOn(insertAutofillContentService as any, "userCancelledUntrustedIframeAutofill");
|
||||
jest.spyOn(insertAutofillContentService as any, "tabURLChanged");
|
||||
jest.spyOn(insertAutofillContentService as any, "runFillScriptAction");
|
||||
|
||||
insertAutofillContentService.fillForm(fillScript);
|
||||
@ -142,7 +139,6 @@ describe("InsertAutofillContentService", () => {
|
||||
expect(
|
||||
insertAutofillContentService["userCancelledUntrustedIframeAutofill"]
|
||||
).not.toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["tabURLChanged"]).not.toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["runFillScriptAction"]).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
@ -154,7 +150,6 @@ describe("InsertAutofillContentService", () => {
|
||||
.spyOn(insertAutofillContentService as any, "userCancelledInsecureUrlAutofill")
|
||||
.mockReturnValue(true);
|
||||
jest.spyOn(insertAutofillContentService as any, "userCancelledUntrustedIframeAutofill");
|
||||
jest.spyOn(insertAutofillContentService as any, "tabURLChanged");
|
||||
jest.spyOn(insertAutofillContentService as any, "runFillScriptAction");
|
||||
|
||||
insertAutofillContentService.fillForm(fillScript);
|
||||
@ -164,7 +159,6 @@ describe("InsertAutofillContentService", () => {
|
||||
expect(
|
||||
insertAutofillContentService["userCancelledUntrustedIframeAutofill"]
|
||||
).not.toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["tabURLChanged"]).not.toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["runFillScriptAction"]).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
@ -178,7 +172,6 @@ describe("InsertAutofillContentService", () => {
|
||||
jest
|
||||
.spyOn(insertAutofillContentService as any, "userCancelledUntrustedIframeAutofill")
|
||||
.mockReturnValue(true);
|
||||
jest.spyOn(insertAutofillContentService as any, "tabURLChanged").mockReturnValue(false);
|
||||
jest.spyOn(insertAutofillContentService as any, "runFillScriptAction");
|
||||
|
||||
insertAutofillContentService.fillForm(fillScript);
|
||||
@ -188,31 +181,6 @@ describe("InsertAutofillContentService", () => {
|
||||
expect(
|
||||
insertAutofillContentService["userCancelledUntrustedIframeAutofill"]
|
||||
).toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["tabURLChanged"]).not.toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["runFillScriptAction"]).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("returns early if the page location origin does not match against any of the cipher saved URLs", () => {
|
||||
jest
|
||||
.spyOn(insertAutofillContentService as any, "fillingWithinSandboxedIframe")
|
||||
.mockReturnValue(false);
|
||||
jest
|
||||
.spyOn(insertAutofillContentService as any, "userCancelledInsecureUrlAutofill")
|
||||
.mockReturnValue(false);
|
||||
jest
|
||||
.spyOn(insertAutofillContentService as any, "userCancelledUntrustedIframeAutofill")
|
||||
.mockReturnValue(false);
|
||||
jest.spyOn(insertAutofillContentService as any, "tabURLChanged").mockReturnValue(true);
|
||||
jest.spyOn(insertAutofillContentService as any, "runFillScriptAction");
|
||||
|
||||
insertAutofillContentService.fillForm(fillScript);
|
||||
|
||||
expect(insertAutofillContentService["fillingWithinSandboxedIframe"]).toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["userCancelledInsecureUrlAutofill"]).toHaveBeenCalled();
|
||||
expect(
|
||||
insertAutofillContentService["userCancelledUntrustedIframeAutofill"]
|
||||
).toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["tabURLChanged"]).toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["runFillScriptAction"]).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
@ -226,7 +194,6 @@ describe("InsertAutofillContentService", () => {
|
||||
jest
|
||||
.spyOn(insertAutofillContentService as any, "userCancelledUntrustedIframeAutofill")
|
||||
.mockReturnValue(false);
|
||||
jest.spyOn(insertAutofillContentService as any, "tabURLChanged").mockReturnValue(false);
|
||||
jest.spyOn(insertAutofillContentService as any, "runFillScriptAction");
|
||||
|
||||
insertAutofillContentService.fillForm(fillScript);
|
||||
@ -236,7 +203,6 @@ describe("InsertAutofillContentService", () => {
|
||||
expect(
|
||||
insertAutofillContentService["userCancelledUntrustedIframeAutofill"]
|
||||
).toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["tabURLChanged"]).toHaveBeenCalled();
|
||||
expect(insertAutofillContentService["runFillScriptAction"]).toHaveBeenCalledTimes(3);
|
||||
expect(insertAutofillContentService["runFillScriptAction"]).toHaveBeenNthCalledWith(
|
||||
1,
|
||||
|
||||
@ -38,8 +38,7 @@ class InsertAutofillContentService implements InsertAutofillContentServiceInterf
|
||||
!fillScript.script?.length ||
|
||||
this.fillingWithinSandboxedIframe() ||
|
||||
this.userCancelledInsecureUrlAutofill(fillScript.savedUrls) ||
|
||||
this.userCancelledUntrustedIframeAutofill(fillScript) ||
|
||||
this.tabURLChanged(fillScript.savedUrls)
|
||||
this.userCancelledUntrustedIframeAutofill(fillScript)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
@ -47,16 +46,6 @@ class InsertAutofillContentService implements InsertAutofillContentServiceInterf
|
||||
fillScript.script.forEach(this.runFillScriptAction);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the page URL no longer matches one of the cipher's savedURL domains
|
||||
* @param {string[] | null} savedUrls
|
||||
* @returns {boolean}
|
||||
* @private
|
||||
*/
|
||||
private tabURLChanged(savedUrls?: AutofillScript["savedUrls"]): boolean {
|
||||
return savedUrls && !savedUrls.some((url) => url.startsWith(window.location.origin));
|
||||
}
|
||||
|
||||
/**
|
||||
* Identifies if the execution of this script is happening
|
||||
* within a sandboxed iframe.
|
||||
|
||||
@ -103,6 +103,12 @@ import {
|
||||
VaultExportService,
|
||||
VaultExportServiceAbstraction,
|
||||
} from "@bitwarden/exporter/vault-export";
|
||||
import {
|
||||
ImportApiServiceAbstraction,
|
||||
ImportApiService,
|
||||
ImportServiceAbstraction,
|
||||
ImportService,
|
||||
} from "@bitwarden/importer";
|
||||
|
||||
import { BrowserOrganizationService } from "../admin-console/services/browser-organization.service";
|
||||
import { BrowserPolicyService } from "../admin-console/services/browser-policy.service";
|
||||
@ -172,6 +178,8 @@ export default class MainBackground {
|
||||
containerService: ContainerService;
|
||||
auditService: AuditServiceAbstraction;
|
||||
authService: AuthServiceAbstraction;
|
||||
importApiService: ImportApiServiceAbstraction;
|
||||
importService: ImportServiceAbstraction;
|
||||
exportService: VaultExportServiceAbstraction;
|
||||
searchService: SearchServiceAbstraction;
|
||||
notificationsService: NotificationsServiceAbstraction;
|
||||
@ -527,6 +535,18 @@ export default class MainBackground {
|
||||
this.userVerificationService
|
||||
);
|
||||
this.auditService = new AuditService(this.cryptoFunctionService, this.apiService);
|
||||
|
||||
this.importApiService = new ImportApiService(this.apiService);
|
||||
|
||||
this.importService = new ImportService(
|
||||
this.cipherService,
|
||||
this.folderService,
|
||||
this.importApiService,
|
||||
this.i18nService,
|
||||
this.collectionService,
|
||||
this.cryptoService
|
||||
);
|
||||
|
||||
this.exportService = new VaultExportService(
|
||||
this.folderService,
|
||||
this.cipherService,
|
||||
@ -575,6 +595,7 @@ export default class MainBackground {
|
||||
this.platformUtilsService as BrowserPlatformUtilsService,
|
||||
this.i18nService,
|
||||
this.notificationsService,
|
||||
this.stateService,
|
||||
this.systemService,
|
||||
this.environmentService,
|
||||
this.messagingService,
|
||||
@ -635,6 +656,7 @@ export default class MainBackground {
|
||||
},
|
||||
this.authService,
|
||||
this.cipherService,
|
||||
this.stateService,
|
||||
this.totpService,
|
||||
this.eventCollectionService,
|
||||
this.userVerificationService
|
||||
|
||||
@ -11,6 +11,7 @@ import { CipherType } from "@bitwarden/common/vault/enums/cipher-type";
|
||||
import { AutofillService } from "../autofill/services/abstractions/autofill.service";
|
||||
import { BrowserApi } from "../platform/browser/browser-api";
|
||||
import { BrowserPopoutWindowService } from "../platform/popup/abstractions/browser-popout-window.service";
|
||||
import { BrowserStateService } from "../platform/services/abstractions/browser-state.service";
|
||||
import { BrowserEnvironmentService } from "../platform/services/browser-environment.service";
|
||||
import BrowserPlatformUtilsService from "../platform/services/browser-platform-utils.service";
|
||||
|
||||
@ -29,6 +30,7 @@ export default class RuntimeBackground {
|
||||
private platformUtilsService: BrowserPlatformUtilsService,
|
||||
private i18nService: I18nService,
|
||||
private notificationsService: NotificationsService,
|
||||
private stateService: BrowserStateService,
|
||||
private systemService: SystemService,
|
||||
private environmentService: BrowserEnvironmentService,
|
||||
private messagingService: MessagingService,
|
||||
@ -176,6 +178,7 @@ export default class RuntimeBackground {
|
||||
switch (msg.sender) {
|
||||
case "autofiller":
|
||||
case "autofill_cmd": {
|
||||
this.stateService.setLastActive(new Date().getTime());
|
||||
const totpCode = await this.autofillService.doAutoFillActiveTab(
|
||||
[
|
||||
{
|
||||
|
||||
@ -208,6 +208,7 @@ export class BrowserApi {
|
||||
name: string,
|
||||
callback: (message: any, sender: chrome.runtime.MessageSender, response: any) => void
|
||||
) {
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
chrome.runtime.onMessage.addListener(callback);
|
||||
|
||||
if (BrowserApi.isSafariApi && !BrowserApi.isBackgroundPage(window)) {
|
||||
@ -219,6 +220,7 @@ export class BrowserApi {
|
||||
static storageChangeListener(
|
||||
callback: Parameters<typeof chrome.storage.onChanged.addListener>[0]
|
||||
) {
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
chrome.storage.onChanged.addListener(callback);
|
||||
|
||||
if (BrowserApi.isSafariApi && !BrowserApi.isBackgroundPage(window)) {
|
||||
|
||||
@ -39,7 +39,6 @@ import { SendTypeComponent } from "../tools/popup/send/send-type.component";
|
||||
import { ExportComponent } from "../tools/popup/settings/export.component";
|
||||
import { ActionButtonsComponent } from "../vault/popup/components/action-buttons.component";
|
||||
import { CipherRowComponent } from "../vault/popup/components/cipher-row.component";
|
||||
import { PasswordRepromptComponent } from "../vault/popup/components/password-reprompt.component";
|
||||
import { AddEditCustomFieldsComponent } from "../vault/popup/components/vault/add-edit-custom-fields.component";
|
||||
import { AddEditComponent } from "../vault/popup/components/vault/add-edit.component";
|
||||
import { AttachmentsComponent } from "../vault/popup/components/vault/attachments.component";
|
||||
@ -125,7 +124,6 @@ import "../platform/popup/locales";
|
||||
GeneratorComponent,
|
||||
PasswordGeneratorHistoryComponent,
|
||||
PasswordHistoryComponent,
|
||||
PasswordRepromptComponent,
|
||||
PopOutComponent,
|
||||
PremiumComponent,
|
||||
PrivateModeWarningComponent,
|
||||
|
||||
@ -80,11 +80,11 @@ import {
|
||||
FolderService,
|
||||
InternalFolderService,
|
||||
} from "@bitwarden/common/vault/abstractions/folder/folder.service.abstraction";
|
||||
import { PasswordRepromptService as PasswordRepromptServiceAbstraction } from "@bitwarden/common/vault/abstractions/password-reprompt.service";
|
||||
import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction";
|
||||
import { FolderApiService } from "@bitwarden/common/vault/services/folder/folder-api.service";
|
||||
import { DialogService } from "@bitwarden/components";
|
||||
import { VaultExportServiceAbstraction } from "@bitwarden/exporter/vault-export";
|
||||
import { ImportServiceAbstraction } from "@bitwarden/importer";
|
||||
|
||||
import { BrowserOrganizationService } from "../../admin-console/services/browser-organization.service";
|
||||
import { BrowserPolicyService } from "../../admin-console/services/browser-policy.service";
|
||||
@ -103,7 +103,6 @@ import BrowserMessagingService from "../../platform/services/browser-messaging.s
|
||||
import { BrowserStateService } from "../../platform/services/browser-state.service";
|
||||
import { BrowserSendService } from "../../services/browser-send.service";
|
||||
import { BrowserSettingsService } from "../../services/browser-settings.service";
|
||||
import { PasswordRepromptService } from "../../vault/popup/services/password-reprompt.service";
|
||||
import { BrowserFolderService } from "../../vault/services/browser-folder.service";
|
||||
import { VaultFilterService } from "../../vault/services/vault-filter.service";
|
||||
|
||||
@ -368,6 +367,11 @@ function getBgService<T>(service: keyof MainBackground) {
|
||||
useFactory: getBgService<AutofillService>("autofillService"),
|
||||
deps: [],
|
||||
},
|
||||
{
|
||||
provide: ImportServiceAbstraction,
|
||||
useFactory: getBgService<ImportServiceAbstraction>("importService"),
|
||||
deps: [],
|
||||
},
|
||||
{
|
||||
provide: VaultExportServiceAbstraction,
|
||||
useFactory: getBgService<VaultExportServiceAbstraction>("exportService"),
|
||||
@ -403,7 +407,6 @@ function getBgService<T>(service: keyof MainBackground) {
|
||||
useFactory: getBgService<ConsoleLogService>("logService"),
|
||||
deps: [],
|
||||
},
|
||||
{ provide: PasswordRepromptServiceAbstraction, useClass: PasswordRepromptService },
|
||||
{
|
||||
provide: OrganizationService,
|
||||
useFactory: (stateService: StateServiceAbstraction) => {
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
import { ImportApiService, ImportApiServiceAbstraction } from "@bitwarden/importer";
|
||||
|
||||
import {
|
||||
ApiServiceInitOptions,
|
||||
apiServiceFactory,
|
||||
} from "../../../platform/background/service-factories/api-service.factory";
|
||||
import {
|
||||
FactoryOptions,
|
||||
CachedServices,
|
||||
factory,
|
||||
} from "../../../platform/background/service-factories/factory-options";
|
||||
|
||||
export type ImportApiServiceInitOptions = FactoryOptions & ApiServiceInitOptions;
|
||||
type ServiceCache = { importApiService?: ImportApiServiceAbstraction } & CachedServices;
|
||||
|
||||
export function importApiServiceFactory(
|
||||
cache: ServiceCache,
|
||||
opts: ImportApiServiceInitOptions
|
||||
): Promise<ImportApiServiceAbstraction> {
|
||||
return factory(
|
||||
cache,
|
||||
"importApiService",
|
||||
opts,
|
||||
async () => new ImportApiService(await apiServiceFactory(cache, opts))
|
||||
);
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
import { ImportService, ImportServiceAbstraction } from "@bitwarden/importer";
|
||||
|
||||
import {
|
||||
cryptoServiceFactory,
|
||||
CryptoServiceInitOptions,
|
||||
} from "../../../platform/background/service-factories/crypto-service.factory";
|
||||
import {
|
||||
CachedServices,
|
||||
factory,
|
||||
FactoryOptions,
|
||||
} from "../../../platform/background/service-factories/factory-options";
|
||||
import {
|
||||
i18nServiceFactory,
|
||||
I18nServiceInitOptions,
|
||||
} from "../../../platform/background/service-factories/i18n-service.factory";
|
||||
import {
|
||||
cipherServiceFactory,
|
||||
CipherServiceInitOptions,
|
||||
} from "../../../vault/background/service_factories/cipher-service.factory";
|
||||
import {
|
||||
collectionServiceFactory,
|
||||
CollectionServiceInitOptions,
|
||||
} from "../../../vault/background/service_factories/collection-service.factory";
|
||||
import {
|
||||
folderServiceFactory,
|
||||
FolderServiceInitOptions,
|
||||
} from "../../../vault/background/service_factories/folder-service.factory";
|
||||
|
||||
import { importApiServiceFactory, ImportApiServiceInitOptions } from "./import-api-service.factory";
|
||||
|
||||
type ImportServiceFactoryOptions = FactoryOptions;
|
||||
|
||||
export type ImportServiceInitOptions = ImportServiceFactoryOptions &
|
||||
CipherServiceInitOptions &
|
||||
FolderServiceInitOptions &
|
||||
ImportApiServiceInitOptions &
|
||||
I18nServiceInitOptions &
|
||||
CollectionServiceInitOptions &
|
||||
CryptoServiceInitOptions;
|
||||
|
||||
export function importServiceFactory(
|
||||
cache: {
|
||||
importService?: ImportServiceAbstraction;
|
||||
} & CachedServices,
|
||||
opts: ImportServiceInitOptions
|
||||
): Promise<ImportServiceAbstraction> {
|
||||
return factory(
|
||||
cache,
|
||||
"importService",
|
||||
opts,
|
||||
async () =>
|
||||
new ImportService(
|
||||
await cipherServiceFactory(cache, opts),
|
||||
await folderServiceFactory(cache, opts),
|
||||
await importApiServiceFactory(cache, opts),
|
||||
await i18nServiceFactory(cache, opts),
|
||||
await collectionServiceFactory(cache, opts),
|
||||
await cryptoServiceFactory(cache, opts)
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -6,10 +6,10 @@ import { EventType } from "@bitwarden/common/enums";
|
||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
||||
import { StateService } from "@bitwarden/common/platform/abstractions/state.service";
|
||||
import { PasswordRepromptService } from "@bitwarden/common/vault/abstractions/password-reprompt.service";
|
||||
import { CipherRepromptType } from "@bitwarden/common/vault/enums/cipher-reprompt-type";
|
||||
import { CipherType } from "@bitwarden/common/vault/enums/cipher-type";
|
||||
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
|
||||
import { PasswordRepromptService } from "@bitwarden/vault";
|
||||
|
||||
@Component({
|
||||
selector: "app-action-buttons",
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
<div class="modal fade" role="dialog" aria-modal="true">
|
||||
<div class="modal-dialog modal-dialog-scrollable" role="document">
|
||||
<form class="modal-content" #form (ngSubmit)="submit()">
|
||||
<div class="modal-body">
|
||||
<div class="box">
|
||||
<h1 class="box-header">{{ "passwordConfirmation" | i18n }}</h1>
|
||||
<div class="box-content">
|
||||
<div class="box-content-row box-content-row-flex" appBoxRow>
|
||||
<div class="row-main">
|
||||
<label for="masterPassword">{{ "masterPass" | i18n }}</label>
|
||||
<input
|
||||
id="masterPassword"
|
||||
type="{{ showPassword ? 'text' : 'password' }}"
|
||||
name="MasterPassword"
|
||||
aria-describedby="masterPasswordHelp"
|
||||
class="monospaced"
|
||||
[(ngModel)]="masterPassword"
|
||||
required
|
||||
appAutofocus
|
||||
/>
|
||||
</div>
|
||||
<div class="action-buttons">
|
||||
<button
|
||||
type="button"
|
||||
class="row-btn"
|
||||
appStopClick
|
||||
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
|
||||
(click)="togglePassword()"
|
||||
[attr.aria-pressed]="showPassword"
|
||||
>
|
||||
<i
|
||||
class="bwi bwi-lg"
|
||||
aria-hidden="true"
|
||||
[ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
|
||||
></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="masterPasswordHelp" class="box-footer">
|
||||
{{ "passwordConfirmationDesc" | i18n }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="submit" class="btn btn-primary btn-submit">
|
||||
<span>{{ "ok" | i18n }}</span>
|
||||
</button>
|
||||
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">
|
||||
{{ "cancel" | i18n }}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,8 +0,0 @@
|
||||
import { Component } from "@angular/core";
|
||||
|
||||
import { PasswordRepromptComponent as BasePasswordRepromptComponent } from "@bitwarden/angular/vault/components/password-reprompt.component";
|
||||
|
||||
@Component({
|
||||
templateUrl: "password-reprompt.component.html",
|
||||
})
|
||||
export class PasswordRepromptComponent extends BasePasswordRepromptComponent {}
|
||||
@ -17,10 +17,10 @@ import { SendApiService } from "@bitwarden/common/tools/send/services/send-api.s
|
||||
import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service";
|
||||
import { CollectionService } from "@bitwarden/common/vault/abstractions/collection.service";
|
||||
import { FolderService } from "@bitwarden/common/vault/abstractions/folder/folder.service.abstraction";
|
||||
import { PasswordRepromptService } from "@bitwarden/common/vault/abstractions/password-reprompt.service";
|
||||
import { CipherType } from "@bitwarden/common/vault/enums/cipher-type";
|
||||
import { LoginUriView } from "@bitwarden/common/vault/models/view/login-uri.view";
|
||||
import { DialogService } from "@bitwarden/components";
|
||||
import { PasswordRepromptService } from "@bitwarden/vault";
|
||||
|
||||
import { BrowserApi } from "../../../../platform/browser/browser-api";
|
||||
import { PopupUtilsService } from "../../../../popup/services/popup-utils.service";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user