mirror of
https://github.com/bitwarden/browser
synced 2026-02-04 10:43:47 +00:00
merged with master and fixed conflicts
This commit is contained in:
@@ -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']"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
4
.github/CODEOWNERS
vendored
4
.github/CODEOWNERS
vendored
@@ -75,8 +75,8 @@ apps/web/src/translation-constants.ts @bitwarden/team-platform-dev
|
||||
apps/browser/src/autofill @bitwarden/team-autofill-dev
|
||||
|
||||
## Component Library ##
|
||||
.storybook @bitwarden/team-platform-dev
|
||||
libs/components @bitwarden/team-platform-dev
|
||||
.storybook @bitwarden/team-component-library
|
||||
libs/components @bitwarden/team-component-library
|
||||
|
||||
## Desktop native module ##
|
||||
apps/desktop/desktop_native @bitwarden/team-platform-dev
|
||||
|
||||
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
|
||||
|
||||
@@ -4,6 +4,7 @@ import remarkGfm from "remark-gfm";
|
||||
|
||||
const config: StorybookConfig = {
|
||||
stories: [
|
||||
"../libs/auth/src/**/*.stories.@(js|jsx|ts|tsx)",
|
||||
"../libs/components/src/**/*.mdx",
|
||||
"../libs/components/src/**/*.stories.@(js|jsx|ts|tsx)",
|
||||
"../apps/web/src/**/*.mdx",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@bitwarden/browser",
|
||||
"version": "2023.9.1",
|
||||
"version": "2023.9.2",
|
||||
"scripts": {
|
||||
"build": "webpack",
|
||||
"build:mv3": "cross-env MANIFEST_VERSION=3 webpack",
|
||||
|
||||
@@ -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": "افتح خزنتك"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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ı."
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Yığcamlaşdırmanı aç/bağla",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Domen ləqəbi"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"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": "\"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": "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": "Разблакіраваць сховішча"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"message": "Впишете се или създайте нов абонамент, за да достъпите защитен трезор."
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Създаване на абонамент"
|
||||
"message": "Създаване на акаунт"
|
||||
},
|
||||
"login": {
|
||||
"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": "Отключете трезора си"
|
||||
},
|
||||
@@ -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.",
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Превключване на свиването",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Псевдонимен домейн"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Записите с включено изискване за повторно въвеждане на главната парола не могат да бъдат попълвани автоматично при зареждане на страницата. Автоматичното попълване при зареждане на страницата е изключено.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Автоматичното попълване при зареждане на страницата използва настройката си по подразбиране.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"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": "স্বতঃপূরণ"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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."
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Redueix/Amplia",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Přepnout sbalení",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Doména aliasu"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Položky se žádostí o změnu hlavního hesla nemohou být automaticky vyplněny při načítání stránky. Automatické vyplnění při načítání stránky je vypnuto.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Automatické vyplnění při načítání stránky bylo nastaveno na výchozí nastavení.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Pro úpravu tohoto pole vypněte požadavek na hlavní heslo",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Fold sammen/ud",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Aliasdomæne"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Emner, hvor der anmodes om hovedadgangskode igen, kan ikke autoudfyldes ved sideindlæsning. Autoudfyldning ved sideindlæsning er slået fra.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Autoudfyldning ved sideindlæsning sat til standardindstillingen.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Slå anmodning om hovedadgangskode igen fra for at redigere dette felt",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Ein-/ausklappen",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias-Domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Einträge, die eine erneuten Abfrage des Master-Passworts verlangen, können nicht beim Laden einer Seite automatisch ausgefüllt werden. Auto-Ausfüllen beim Laden einer Seite deaktiviert.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Auto-Ausfüllen beim Lader einer Seite wurde auf die Standardeinstellung gesetzt.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Deaktiviere die erneute Abfrage des Master-Passworts, um dieses Feld zu bearbeiten",
|
||||
"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": "Ξεκλειδώστε το vault σας"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Εναλλαγή σύμπτυξης",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -637,7 +661,7 @@
|
||||
"message": "Unlock your Bitwarden vault to complete the auto-fill request."
|
||||
},
|
||||
"notificationUnlock": {
|
||||
"message": "Unlock"
|
||||
"message": "Desbloquear"
|
||||
},
|
||||
"enableContextMenuItem": {
|
||||
"message": "Mostrar las opciones de menú contextuales"
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Peida",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domeen"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "پر کردن خودکار ورود"
|
||||
},
|
||||
"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": "نمایش گزینههای منوی زمینه"
|
||||
@@ -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,10 +2425,25 @@
|
||||
}
|
||||
},
|
||||
"submenu": {
|
||||
"message": "زیرفهرست"
|
||||
"message": "زیرمنو"
|
||||
},
|
||||
"toggleCollapse": {
|
||||
"message": "باز و بسته کردن",
|
||||
"message": "دکمه بستن",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "دامنه مستعار"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "موارد با درخواست مجدد کلمه عبور اصلی را نمیتوان در بارگذاری صفحه بهصورت خودکار پر کرد. پر کردن خودکار در بارگیری صفحه خاموش شد.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "پر کردن خودکار در بارگیری صفحه برای استفاده از تنظیمات پیشفرض تنظیم شده است.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Laajenna tai supista",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Aliasverkkotunnus"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Kohteita, joille pääsalasanan uudelleenkysely on käytössä, ei voida täyttää automaattisesti sivujen avautuessa. Automaattinen täyttö sivujen avautuessa poistettiin käytöstä.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Automaattinen täyttö sivun avautuessa käyttää oletusasetusta.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Poista pääsalasanan uudelleenkysely käytöstä muokataksesi kenttää",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -339,7 +363,7 @@
|
||||
"message": "Autre"
|
||||
},
|
||||
"unlockMethodNeededToChangeTimeoutActionDesc": {
|
||||
"message": "Set up an unlock method to change your vault timeout action."
|
||||
"message": "Configurez une méthode de déverrouillage pour changer le délai d'attente de votre coffre."
|
||||
},
|
||||
"rateExtension": {
|
||||
"message": "Noter l'extension"
|
||||
@@ -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"
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Domaine de l'alias"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Désactivez la resaisie du mot de passe maître pour éditer ce champ",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "שחרור הכספת שלך"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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": "आपकी तिजोरी का ताला खोलें"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "डोमेन उपनाम"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -772,7 +796,7 @@
|
||||
"message": "Značajka nije dostupna"
|
||||
},
|
||||
"encryptionKeyMigrationRequired": {
|
||||
"message": "Encryption key migration required. Please login through the web vault to update your encryption key."
|
||||
"message": "Potrebna je migracija ključa za šifriranje. Prijavi se na web trezoru za ažuriranje ključa za šifriranje."
|
||||
},
|
||||
"premiumMembership": {
|
||||
"message": "Premium članstvo"
|
||||
@@ -1992,7 +2016,7 @@
|
||||
"message": "Izvoz osobnog trezora"
|
||||
},
|
||||
"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": "Izvest će se samo stavke osobnog trezora povezanog s $EMAIL$. Stavke organizacijskog trezora neće biti uključene. Izvest će se samo informacija o stavci trezora bez pripadajućih podataka o povijesti lozinki i privitaka.",
|
||||
"placeholders": {
|
||||
"email": {
|
||||
"content": "$1",
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Sažmi/Proširi",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domene"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Stavke za koje je potrebna glavna lozinka neće se auto-ispuniti kod učitavanja stranice. Auto-ispuna pri učitavanju stranice je isključena.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Auto-ispuna kod učitavanja stranice koristi zadane postavke.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Isključi traženje glavne lozinke za promjenu ovog polja",
|
||||
"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": "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",
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Összezárás váltás",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Áldomain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "A mesterjelszót újra bekérő elemeket nem lehet automatikusan kitölteni az oldal betöltésekor. Az automatikus kitöltés az oldal betöltésekor kikapcsolásra kerül.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Az automatikus kitöltés az oldal betöltésekor az alapértelmezett beállítás használatára lett beállítva.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Kapcsoljuk ki a mesterjelszó újbóli bekérését a mező szerkesztéséhez.",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Comprimi/espandi",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Dominio alias"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Gli elementi che richiedono di inserire la password principale di nuovo non possono essere riempiti automaticamente al caricamento della pagina.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Il riempimento automatico al caricamento della pagina impostata per usare l'impostazione predefinita.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Disattiva l'inserimento della password principale di nuovo per modificare questo campo",
|
||||
"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": "自動入力ログイン"
|
||||
},
|
||||
"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": "保管庫のロックを解除"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "開く/閉じる",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "エイリアスドメイン"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "マスターパスワードの再入力を促すアイテムは、ページ読み込み時に自動入力できません。ページ読み込み時の自動入力をオフにしました。",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "ページ読み込み時の自動入力はデフォルトの設定を使うよう設定しました。",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"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": "თვითშევსება"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "Unlock your vault"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "보관함 잠금 해제"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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ą"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Pārslēgt sakļaušanu",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Aizstājdomēns"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Vienumus ar galvenās paroles pārvaicāšanu nevar automātiski aizpildīt lapas ielādes brīdī. Automātiskā aizpilde lapas ielādes brīdī ir izslēgta.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Automātiskā aizpilde lapas ielādes brīdī iestatīta izmantot noklusējuma iestatījumu.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Jāizslēdz galvenās paroles pārvaicāšana, lai labotu šo lauku",
|
||||
"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": "Unlock your vault"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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": "तिजोरी उघडा"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "In-/Uitklappen",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Aliasdomein"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Zwiń/rozwiń",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Domena aliasu"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Elementy z pytaniem o hasło głównege nie mogą być automatycznie wypełniane przy wczytywaniu strony. Automatyczne wypełnianie po wczytywania strony zostało wyłączone.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Automatyczne wypełnianie przy wczytywaniu strony zostało ustawione, aby używać ustawień domyślnych.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Wyłącz prośbę o podanie hasła głównego, aby edytować to pole",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -781,7 +805,7 @@
|
||||
"message": "Gerir subscrição"
|
||||
},
|
||||
"premiumManageAlert": {
|
||||
"message": "Pode gerir a sua subscrição no cofre Web bitwarden.com. Pretende visitar o site agora?"
|
||||
"message": "Pode gerir a sua subscrição no cofre web em bitwarden.com. Pretende visitar o site agora?"
|
||||
},
|
||||
"premiumRefresh": {
|
||||
"message": "Atualizar subscrição"
|
||||
@@ -814,7 +838,7 @@
|
||||
"message": "Adquirir Premium"
|
||||
},
|
||||
"premiumPurchaseAlert": {
|
||||
"message": "Pode adquirir uma subscrição Premium no cofre Web bitwarden.com. Pretende visitar o site agora?"
|
||||
"message": "Pode adquirir uma subscrição Premium no cofre web em bitwarden.com. Pretende visitar o site agora?"
|
||||
},
|
||||
"premiumCurrentMember": {
|
||||
"message": "É um membro Premium!"
|
||||
@@ -930,7 +954,7 @@
|
||||
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
|
||||
},
|
||||
"duoOrganizationDesc": {
|
||||
"message": "Verifique com a Duo Security para a sua organização utilizando a aplicação Duo Mobile, SMS, chamada telefónica, ou chave de segurança U2F.",
|
||||
"message": "Proteja a sua organização com a Duo Security utilizando a aplicação Duo Mobile, SMS, chamada telefónica ou uma chave de segurança U2F.",
|
||||
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
|
||||
},
|
||||
"webAuthnTitle": {
|
||||
@@ -1279,7 +1303,7 @@
|
||||
"message": "Esta palavra-passe não foi encontrada em nenhuma violação de dados conhecida. A sua utilização deve ser segura."
|
||||
},
|
||||
"baseDomain": {
|
||||
"message": "Domínio base",
|
||||
"message": "Domínio de base",
|
||||
"description": "Domain name. Ex. website.com"
|
||||
},
|
||||
"domainName": {
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Alternar colapso",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias de domínio"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Os itens que voltem a pedir a palavra-passe mestra não podem ser preenchidos automaticamente no carregamento da página. Preenchimento automático no carregamento da página desativado.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Preenchimento automático no carregamento da página definido para utilizar a predefinição.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Desativar o pedido para reintroduzir a palavra-passe mestra para editar este campo",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -199,7 +223,7 @@
|
||||
"message": "Centrul de Ajutor Bitwarden"
|
||||
},
|
||||
"communityForums": {
|
||||
"message": "Explorează forumurile comunității Bitwarden"
|
||||
"message": "Explorați forumurile comunității Bitwarden"
|
||||
},
|
||||
"contactSupport": {
|
||||
"message": "Contactați asistența Bitwarden"
|
||||
@@ -339,7 +363,7 @@
|
||||
"message": "Altele"
|
||||
},
|
||||
"unlockMethodNeededToChangeTimeoutActionDesc": {
|
||||
"message": "Set up an unlock method to change your vault timeout action."
|
||||
"message": "Configurați metoda de deblocare care să schimbe acțiunea de expirare a seifului."
|
||||
},
|
||||
"rateExtension": {
|
||||
"message": "Evaluare extensie"
|
||||
@@ -634,7 +658,7 @@
|
||||
"message": "Actualizare"
|
||||
},
|
||||
"notificationUnlockDesc": {
|
||||
"message": "Deblochează seiful Bitwarden pentru a finaliza solicitarea de completare automată."
|
||||
"message": "Deblocați seiful Bitwarden pentru a finaliza solicitarea de auto-completare."
|
||||
},
|
||||
"notificationUnlock": {
|
||||
"message": "Deblocare"
|
||||
@@ -772,7 +796,7 @@
|
||||
"message": "Funcție indisponibilă"
|
||||
},
|
||||
"encryptionKeyMigrationRequired": {
|
||||
"message": "Encryption key migration required. Please login through the web vault to update your encryption key."
|
||||
"message": "Este necesară migrarea cheilor de criptare. Autentificați-vă prin intermediul seifului web pentru a vă actualiza cheia de criptare."
|
||||
},
|
||||
"premiumMembership": {
|
||||
"message": "Abonament Premium"
|
||||
@@ -796,7 +820,7 @@
|
||||
"message": "1 GB spațiu de stocare criptat pentru atașamente de fișiere."
|
||||
},
|
||||
"premiumSignUpTwoStepOptions": {
|
||||
"message": "Proprietary two-step login options such as YubiKey and Duo."
|
||||
"message": "Opțiuni brevetate de conectare cu doi factori, cum ar fi YubiKey și Duo."
|
||||
},
|
||||
"ppremiumSignUpReports": {
|
||||
"message": "Rapoarte privind igiena parolelor, sănătatea contului și breșele de date pentru a vă păstra seiful în siguranță."
|
||||
@@ -985,10 +1009,10 @@
|
||||
"message": "Dacă se detectează un formular de autentificare, completați-l automat la încărcarea paginii web."
|
||||
},
|
||||
"experimentalFeature": {
|
||||
"message": "Site-urile web compromise sau nesigure pot exploata funcția de autocompletare la încărcarea paginii."
|
||||
"message": "Site-urile web compromise sau nesigure pot profita de auto-completarea la încărcare."
|
||||
},
|
||||
"learnMoreAboutAutofill": {
|
||||
"message": "Learn more about auto-fill"
|
||||
"message": "Mai multe informații despre auto-completare"
|
||||
},
|
||||
"defaultAutoFillOnPageLoad": {
|
||||
"message": "Setarea implicită de completare automată pentru articole de conectare"
|
||||
@@ -1468,16 +1492,16 @@
|
||||
"message": "Articolul s-a completat automat "
|
||||
},
|
||||
"insecurePageWarning": {
|
||||
"message": "Avertisment: Aceasta este o pagină HTTP nesecurizată și orice informație pe care o trimiteți poate fi văzută și modificată de alte persoane. Această Parolă a fost salvată inițial pe o pagină securizată (HTTPS)."
|
||||
"message": "Avertisment: Acesta este un site HTTP nesecurizat. Orice informație transmisă poate fi vizualizată și modificată de alte persoane. Această autentificare a fost salvată inițial pe un site securizat (HTTPS)."
|
||||
},
|
||||
"insecurePageWarningFillPrompt": {
|
||||
"message": "Do you still wish to fill this login?"
|
||||
"message": "Încă mai doriți să completați acest login?"
|
||||
},
|
||||
"autofillIframeWarning": {
|
||||
"message": "The form is hosted by a different domain than the URI of your saved login. Choose OK to auto-fill anyway, or Cancel to stop."
|
||||
"message": "Formularul este găzduit pe un alt domeniu decât adresa URI de autentificare salvată. Alegeți OK pentru completarea automată oricum sau Anulare pentru a opri."
|
||||
},
|
||||
"autofillIframeWarningTip": {
|
||||
"message": "To prevent this warning in the future, save this URI, $HOSTNAME$, to your Bitwarden login item for this site.",
|
||||
"message": "Pe viitor, pentru a evita acest avertisment, înregistrați acest URI, $HOSTNAME$, în login-ul Bitwarden pentru acest site.",
|
||||
"placeholders": {
|
||||
"hostname": {
|
||||
"content": "$1",
|
||||
@@ -1489,13 +1513,13 @@
|
||||
"message": "Setare parolă principală"
|
||||
},
|
||||
"currentMasterPass": {
|
||||
"message": "Current master password"
|
||||
"message": "Parola principală actuală"
|
||||
},
|
||||
"newMasterPass": {
|
||||
"message": "New master password"
|
||||
"message": "Noua parolă principală"
|
||||
},
|
||||
"confirmNewMasterPass": {
|
||||
"message": "Confirm new master password"
|
||||
"message": "Confirmați noua parolă principală"
|
||||
},
|
||||
"masterPasswordPolicyInEffect": {
|
||||
"message": "Una sau mai multe politici ale organizației necesită ca parola principală să îndeplinească următoarele cerințe:"
|
||||
@@ -1606,10 +1630,10 @@
|
||||
"message": "Biometria browserului nu este acceptată pe acest dispozitiv."
|
||||
},
|
||||
"biometricsFailedTitle": {
|
||||
"message": "Biometrics failed"
|
||||
"message": "Biometrica a eșuat"
|
||||
},
|
||||
"biometricsFailedDesc": {
|
||||
"message": "Biometrics cannot be completed, consider using a master password or logging out. If this persists, please contact Bitwarden support."
|
||||
"message": "Verificarea biometrică nu poate fi finalizată. Încercați parola principală sau deconectați-vă. Dacă problema persistă, vă rugăm să contactați serviciul de asistență Bitwarden."
|
||||
},
|
||||
"nativeMessaginPermissionErrorTitle": {
|
||||
"message": "Permisiunea nu a fost furnizată"
|
||||
@@ -1884,7 +1908,7 @@
|
||||
"message": "Parola principală a fost schimbată recent de către un administrator din organizație. Pentru a accesa seiful, trebuie să o actualizați acum. Continuarea vă va deconecta de la sesiunea curentă, cerându-vă să vă conectați din nou. Sesiunile active de pe alte dispozitive pot continua să rămână active timp de până la o oră."
|
||||
},
|
||||
"updateWeakMasterPasswordWarning": {
|
||||
"message": "Your master password does not meet one or more of your organization policies. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour."
|
||||
"message": "Parola dvs. principală nu respectă una sau mai multe politici ale organizației. Pentru a accesa seiful, parola principală trebuie actualizată acum. În cazul în care continuați, veți fi deconectat din sesiunea curentă și va trebui să vă conectați din nou. Sesiunile active de pe alte dispozitive pot rămâne active timp de până la o oră."
|
||||
},
|
||||
"resetPasswordPolicyAutoEnroll": {
|
||||
"message": "Înscrierea automată"
|
||||
@@ -1905,7 +1929,7 @@
|
||||
"message": "Minute"
|
||||
},
|
||||
"vaultTimeoutPolicyInEffect": {
|
||||
"message": "Politicile organizației dvs vă afectează expirarea seifului. Timpul maxim permis de expirare a seifului este $HOURS$ oră (ore) și $MINUTES$ minut(e)",
|
||||
"message": "Politicile organizației dvs. au stabilit timpul maxim de expirare permis pentru seif la $HOURS$ oră/ore și $MINUTES$ de minut(e).",
|
||||
"placeholders": {
|
||||
"hours": {
|
||||
"content": "$1",
|
||||
@@ -1918,7 +1942,7 @@
|
||||
}
|
||||
},
|
||||
"vaultTimeoutPolicyWithActionInEffect": {
|
||||
"message": "Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is $HOURS$ hour(s) and $MINUTES$ minute(s). Your vault timeout action is set to $ACTION$.",
|
||||
"message": "Politicile organizației dvs. afectează timpul de expirare al seifului. Timpul maxim de așteptare permis pentru seif este de $HOURS$ oră(e) și $MINUTES$ minut(e). Acțiunea de temporizare a seifului este setată la $ACTION$.",
|
||||
"placeholders": {
|
||||
"hours": {
|
||||
"content": "$1",
|
||||
@@ -1935,7 +1959,7 @@
|
||||
}
|
||||
},
|
||||
"vaultTimeoutActionPolicyInEffect": {
|
||||
"message": "Your organization policies have set your vault timeout action to $ACTION$.",
|
||||
"message": "Politicile organizației dvs. au setat acțiunea de expirare a seifului la $ACTION$.",
|
||||
"placeholders": {
|
||||
"action": {
|
||||
"content": "$1",
|
||||
@@ -1992,7 +2016,7 @@
|
||||
"message": "Exportul seifului individual"
|
||||
},
|
||||
"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": "Se exportă numai intrările din seiful personal asociate cu $EMAIL$. Nu sunt incluse intrările de seif ale organizației. Se exportă numai informațiile despre intrările din seif. Acestea nu includ atașamentele asociate.",
|
||||
"placeholders": {
|
||||
"email": {
|
||||
"content": "$1",
|
||||
@@ -2093,7 +2117,7 @@
|
||||
"message": "Versiune server"
|
||||
},
|
||||
"selfHostedServer": {
|
||||
"message": "self-hosted"
|
||||
"message": "auto-găzduit"
|
||||
},
|
||||
"thirdParty": {
|
||||
"message": "Parte terță"
|
||||
@@ -2132,52 +2156,52 @@
|
||||
"message": "Memorare e-mail"
|
||||
},
|
||||
"loginWithDevice": {
|
||||
"message": "Log in with device"
|
||||
"message": "Conectați-vă cu dispozitivul"
|
||||
},
|
||||
"loginWithDeviceEnabledInfo": {
|
||||
"message": "Log in with device must be set up in the settings of the Bitwarden app. Need another option?"
|
||||
"message": "Conectarea cu dispozitivul trebuie să fie configurată în setările aplicației Bitwarden. Aveți nevoie de o altă opțiune?"
|
||||
},
|
||||
"fingerprintPhraseHeader": {
|
||||
"message": "Fingerprint phrase"
|
||||
"message": "Fraza amprentă"
|
||||
},
|
||||
"fingerprintMatchInfo": {
|
||||
"message": "Please make sure your vault is unlocked and the Fingerprint phrase matches on the other device."
|
||||
"message": "Asigurați-vă că seiful este deblocat și că fraza amprentă se potrivește cu cea de pe celălalt dispozitiv."
|
||||
},
|
||||
"resendNotification": {
|
||||
"message": "Resend notification"
|
||||
"message": "Reîntoarceți notificarea"
|
||||
},
|
||||
"viewAllLoginOptions": {
|
||||
"message": "View all log in options"
|
||||
"message": "Afișați toate opțiunile de conectare"
|
||||
},
|
||||
"notificationSentDevice": {
|
||||
"message": "A notification has been sent to your device."
|
||||
"message": "O notificare a fost trimisă pe dispozitivul dvs."
|
||||
},
|
||||
"loginInitiated": {
|
||||
"message": "Login initiated"
|
||||
"message": "Conectare inițiată"
|
||||
},
|
||||
"exposedMasterPassword": {
|
||||
"message": "Exposed Master Password"
|
||||
"message": "Parolă principală compromisă"
|
||||
},
|
||||
"exposedMasterPasswordDesc": {
|
||||
"message": "Password found in a data breach. Use a unique password to protect your account. Are you sure you want to use an exposed password?"
|
||||
"message": "Parola găsită în scurgerea de date. Folosiți o parolă unică pentru a vă proteja contul. Sunteți sigur că doriți să folosiți o parolă compromisă?"
|
||||
},
|
||||
"weakAndExposedMasterPassword": {
|
||||
"message": "Weak and Exposed Master Password"
|
||||
"message": "Parolă principală slabă și compromisă"
|
||||
},
|
||||
"weakAndBreachedMasterPasswordDesc": {
|
||||
"message": "Weak password identified and found in a data breach. Use a strong and unique password to protect your account. Are you sure you want to use this password?"
|
||||
"message": "Parolă slabă identificată și găsită într-o scurgere de date. Folosiți o parolă puternică și unică pentru a vă proteja contul. Sunteți sigur că doriți să utilizați această parolă?"
|
||||
},
|
||||
"checkForBreaches": {
|
||||
"message": "Check known data breaches for this password"
|
||||
"message": "Verificați scurgerile de date cunoscute pentru această parolă"
|
||||
},
|
||||
"important": {
|
||||
"message": "Important:"
|
||||
},
|
||||
"masterPasswordHint": {
|
||||
"message": "Your master password cannot be recovered if you forget it!"
|
||||
"message": "Parola principală nu poate fi recuperată dacă este uitată!"
|
||||
},
|
||||
"characterMinimum": {
|
||||
"message": "$LENGTH$ character minimum",
|
||||
"message": "Minim $LENGTH$ caractere",
|
||||
"placeholders": {
|
||||
"length": {
|
||||
"content": "$1",
|
||||
@@ -2186,13 +2210,13 @@
|
||||
}
|
||||
},
|
||||
"autofillPageLoadPolicyActivated": {
|
||||
"message": "Your organization policies have turned on auto-fill on page load."
|
||||
"message": "Politicile organizației dvs. au activat auto-completarea la încărcarea paginii."
|
||||
},
|
||||
"howToAutofill": {
|
||||
"message": "How to auto-fill"
|
||||
"message": "Instrucțiuni de auto-completare"
|
||||
},
|
||||
"autofillSelectInfoWithCommand": {
|
||||
"message": "Select an item from this page or use the shortcut: $COMMAND$",
|
||||
"message": "Selectați un element din această pagină sau utilizați comanda rapidă: $COMMAND$",
|
||||
"placeholders": {
|
||||
"command": {
|
||||
"content": "$1",
|
||||
@@ -2201,22 +2225,22 @@
|
||||
}
|
||||
},
|
||||
"autofillSelectInfoWithoutCommand": {
|
||||
"message": "Select an item from this page or set a shortcut in settings."
|
||||
"message": "Selectați un element din această pagină sau setați o comandă rapidă în setări."
|
||||
},
|
||||
"gotIt": {
|
||||
"message": "Got it"
|
||||
"message": "Am înțeles"
|
||||
},
|
||||
"autofillSettings": {
|
||||
"message": "Auto-fill settings"
|
||||
"message": "Setări de auto-completare"
|
||||
},
|
||||
"autofillShortcut": {
|
||||
"message": "Auto-fill keyboard shortcut"
|
||||
"message": "Scurtătură de tastatură pentru auto-completare"
|
||||
},
|
||||
"autofillShortcutNotSet": {
|
||||
"message": "The auto-fill shortcut is not set. Change this in the browser's settings."
|
||||
"message": "Scurtătura de auto-completare nu este setată. Modificați acest lucru în setările browserului."
|
||||
},
|
||||
"autofillShortcutText": {
|
||||
"message": "The auto-fill shortcut is: $COMMAND$. Change this in the browser's settings.",
|
||||
"message": "Scurtătura de auto-completare este: $COMMAND$. Modificați acest lucru în setările browserului.",
|
||||
"placeholders": {
|
||||
"command": {
|
||||
"content": "$1",
|
||||
@@ -2225,7 +2249,7 @@
|
||||
}
|
||||
},
|
||||
"autofillShortcutTextSafari": {
|
||||
"message": "Default auto-fill shortcut: $COMMAND$.",
|
||||
"message": "Scurtătură implicită de auto-completare: $COMMAND$.",
|
||||
"placeholders": {
|
||||
"command": {
|
||||
"content": "$1",
|
||||
@@ -2234,31 +2258,31 @@
|
||||
}
|
||||
},
|
||||
"loggingInOn": {
|
||||
"message": "Logging in on"
|
||||
"message": "Conectare la"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
"message": "Se deschide într-o nouă fereastră"
|
||||
},
|
||||
"deviceApprovalRequired": {
|
||||
"message": "Device approval required. Select an approval option below:"
|
||||
"message": "Este necesară aprobarea dispozitivului. Selectați o opțiune de autorizare de mai jos:"
|
||||
},
|
||||
"rememberThisDevice": {
|
||||
"message": "Remember this device"
|
||||
"message": "Memorizează acest dispozitiv"
|
||||
},
|
||||
"uncheckIfPublicDevice": {
|
||||
"message": "Uncheck if using a public device"
|
||||
"message": "Debifați dacă utilizați un dispozitiv public"
|
||||
},
|
||||
"approveFromYourOtherDevice": {
|
||||
"message": "Approve from your other device"
|
||||
"message": "Aprobați de pe celălalt dispozitiv"
|
||||
},
|
||||
"requestAdminApproval": {
|
||||
"message": "Request admin approval"
|
||||
"message": "Cereți aprobarea administratorului"
|
||||
},
|
||||
"approveWithMasterPassword": {
|
||||
"message": "Approve with master password"
|
||||
"message": "Aprobați cu parola principală"
|
||||
},
|
||||
"ssoIdentifierRequired": {
|
||||
"message": "Organization SSO identifier is required."
|
||||
"message": "Identificatorul SSO al organizației este necesar."
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
@@ -2271,49 +2295,49 @@
|
||||
"message": "bitwarden.eu"
|
||||
},
|
||||
"accessDenied": {
|
||||
"message": "Access denied. You do not have permission to view this page."
|
||||
"message": "Acces refuzat. Nu aveți permisiunea de a vizualiza această pagină."
|
||||
},
|
||||
"general": {
|
||||
"message": "General"
|
||||
},
|
||||
"display": {
|
||||
"message": "Display"
|
||||
"message": "Afișare"
|
||||
},
|
||||
"accountSuccessfullyCreated": {
|
||||
"message": "Account successfully created!"
|
||||
"message": "Cont creat cu succes!"
|
||||
},
|
||||
"adminApprovalRequested": {
|
||||
"message": "Admin approval requested"
|
||||
"message": "Autorizație administrativă solicitată"
|
||||
},
|
||||
"adminApprovalRequestSentToAdmins": {
|
||||
"message": "Your request has been sent to your admin."
|
||||
"message": "Cererea dvs. a fost trimisă administratorului."
|
||||
},
|
||||
"youWillBeNotifiedOnceApproved": {
|
||||
"message": "You will be notified once approved."
|
||||
"message": "Veți primi o notificare după aprobare."
|
||||
},
|
||||
"troubleLoggingIn": {
|
||||
"message": "Trouble logging in?"
|
||||
"message": "Aveți probleme la logare?"
|
||||
},
|
||||
"loginApproved": {
|
||||
"message": "Login approved"
|
||||
"message": "Autentificare aprobată"
|
||||
},
|
||||
"userEmailMissing": {
|
||||
"message": "User email missing"
|
||||
"message": "Lipsește e-mailul utilizatorului"
|
||||
},
|
||||
"deviceTrusted": {
|
||||
"message": "Device trusted"
|
||||
"message": "Dispozitiv de încredere"
|
||||
},
|
||||
"inputRequired": {
|
||||
"message": "Input is required."
|
||||
"message": "Este necesară o intrare."
|
||||
},
|
||||
"required": {
|
||||
"message": "required"
|
||||
"message": "necesar"
|
||||
},
|
||||
"search": {
|
||||
"message": "Search"
|
||||
"message": "Căutare"
|
||||
},
|
||||
"inputMinLength": {
|
||||
"message": "Input must be at least $COUNT$ characters long.",
|
||||
"message": "Intrarea trebuie să aibă o lungime de cel puțin $COUNT$ caractere.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
@@ -2322,7 +2346,7 @@
|
||||
}
|
||||
},
|
||||
"inputMaxLength": {
|
||||
"message": "Input must not exceed $COUNT$ characters in length.",
|
||||
"message": "Intrarea nu trebuie să fie mai lungă de $COUNT$ caractere.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
@@ -2331,7 +2355,7 @@
|
||||
}
|
||||
},
|
||||
"inputForbiddenCharacters": {
|
||||
"message": "The following characters are not allowed: $CHARACTERS$",
|
||||
"message": "Următoarele caractere nu sunt permise: $CHARACTERS$",
|
||||
"placeholders": {
|
||||
"characters": {
|
||||
"content": "$1",
|
||||
@@ -2340,7 +2364,7 @@
|
||||
}
|
||||
},
|
||||
"inputMinValue": {
|
||||
"message": "Input value must be at least $MIN$.",
|
||||
"message": "Valoarea de intrare trebuie să fie cel puțin $MIN$.",
|
||||
"placeholders": {
|
||||
"min": {
|
||||
"content": "$1",
|
||||
@@ -2349,7 +2373,7 @@
|
||||
}
|
||||
},
|
||||
"inputMaxValue": {
|
||||
"message": "Input value must not exceed $MAX$.",
|
||||
"message": "Valoarea de intrare nu trebuie să depășească $MAX$.",
|
||||
"placeholders": {
|
||||
"max": {
|
||||
"content": "$1",
|
||||
@@ -2358,17 +2382,17 @@
|
||||
}
|
||||
},
|
||||
"multipleInputEmails": {
|
||||
"message": "1 or more emails are invalid"
|
||||
"message": "1 sau mai multe e-mailuri sunt invalide"
|
||||
},
|
||||
"inputTrimValidator": {
|
||||
"message": "Input must not contain only whitespace.",
|
||||
"message": "Datele introduse nu trebuie să conțină numai spații.",
|
||||
"description": "Notification to inform the user that a form's input can't contain only whitespace."
|
||||
},
|
||||
"inputEmail": {
|
||||
"message": "Input is not an email address."
|
||||
"message": "Intrarea nu este o adresă de e-mail."
|
||||
},
|
||||
"fieldsNeedAttention": {
|
||||
"message": "$COUNT$ field(s) above need your attention.",
|
||||
"message": "$COUNT$ câmp(uri) de mai sus necesită atenție.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
@@ -2377,22 +2401,22 @@
|
||||
}
|
||||
},
|
||||
"selectPlaceholder": {
|
||||
"message": "-- Select --"
|
||||
"message": "-- Selectați --"
|
||||
},
|
||||
"multiSelectPlaceholder": {
|
||||
"message": "-- Type to filter --"
|
||||
"message": "-- Scrieți pentru a filtra --"
|
||||
},
|
||||
"multiSelectLoading": {
|
||||
"message": "Retrieving options..."
|
||||
"message": "Recuperarea opțiunilor..."
|
||||
},
|
||||
"multiSelectNotFound": {
|
||||
"message": "No items found"
|
||||
"message": "Niciun element găsit"
|
||||
},
|
||||
"multiSelectClearAll": {
|
||||
"message": "Clear all"
|
||||
"message": "Ștergeți tot"
|
||||
},
|
||||
"plusNMore": {
|
||||
"message": "+ $QUANTITY$ more",
|
||||
"message": "+ $QUANTITY$ mai mult",
|
||||
"placeholders": {
|
||||
"quantity": {
|
||||
"content": "$1",
|
||||
@@ -2401,10 +2425,25 @@
|
||||
}
|
||||
},
|
||||
"submenu": {
|
||||
"message": "Submenu"
|
||||
"message": "Submeniu"
|
||||
},
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"message": "Comutare restrângere",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Elementele în care parola principală este solicitată din nou nu pot fi completate automat la încărcarea paginii. Completarea automată la încărcarea paginii este dezactivată.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Completarea automată la încărcarea paginii este setată la valoarea implicită.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Dezactivați reintroducerea parolei principale pentru a edita acest câmp",
|
||||
"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": "Автозаполнение логина"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Автозаполнение карты"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Автозаполнение личности"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Сгенерировать пароль (с копированием)"
|
||||
},
|
||||
@@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Нет подходящих логинов."
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Нет карт"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Нет личностей"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Добавить логин"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Добавить карту"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Добавить личность"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Разблокировать хранилище"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Свернуть/развернуть",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Псевдоним домена"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Элементы с повторным запросом мастер-пароля не могут быть автоматически заполнены при загрузке страницы. Автозаполнение при загрузке страницы выключено.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Автозаполнение при загрузке страницы использует настройку по умолчанию.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"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": "ස්වයං-පිරවීම"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Prepnúť zbalenie",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias doména"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Položky, ktoré vyžadujú opätovné zadanie hlavného hesla sa nedajú automaticky vyplniť pri načítaní stránky. Automatické vypĺňanie pri načítaní stránky je vypnuté.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Automatické vypĺňanie pri načítaní stránky nastavené na pôvodnú predvoľbu.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Vypnite výzvu na opätovné zadanie hlavného hesla na úpravu tohto poľa",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "Откључај свој сеф"
|
||||
},
|
||||
@@ -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": "Премијум чланство"
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Промени проширење",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Домен алијаса"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Ставке са упитом за поновно постављање главне лозинке не могу се ауто-попунити при учитавању странице. Ауто-попуњавање при учитавању странице је искључено.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Ауто-попуњавање при учитавању странице је подешено да користи подразумевано подешавање.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"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": "Fyll i automatiskt"
|
||||
},
|
||||
"autoFillLogin": {
|
||||
"message": "Auto-fill login"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Auto-fill card"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Aliasdomän"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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": "ปลดล็อกกตู้นิรภัยของคุณ"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "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"
|
||||
},
|
||||
@@ -339,7 +363,7 @@
|
||||
"message": "Diğer"
|
||||
},
|
||||
"unlockMethodNeededToChangeTimeoutActionDesc": {
|
||||
"message": "Set up an unlock method to change your vault timeout action."
|
||||
"message": "Kasa zaman aşımı eyleminizi değiştirmek için kilit açma yönteminizi ayarlayın."
|
||||
},
|
||||
"rateExtension": {
|
||||
"message": "Uzantıyı değerlendirin"
|
||||
@@ -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"
|
||||
@@ -2277,7 +2301,7 @@
|
||||
"message": "Genel"
|
||||
},
|
||||
"display": {
|
||||
"message": "Display"
|
||||
"message": "Görünüm"
|
||||
},
|
||||
"accountSuccessfullyCreated": {
|
||||
"message": "Hesap başarıyla oluşturuldu!"
|
||||
@@ -2304,16 +2328,16 @@
|
||||
"message": "Cihaza güvenildi"
|
||||
},
|
||||
"inputRequired": {
|
||||
"message": "Input is required."
|
||||
"message": "Girdi gerekli."
|
||||
},
|
||||
"required": {
|
||||
"message": "required"
|
||||
"message": "gerekli"
|
||||
},
|
||||
"search": {
|
||||
"message": "Ara"
|
||||
},
|
||||
"inputMinLength": {
|
||||
"message": "Input must be at least $COUNT$ characters long.",
|
||||
"message": "Girdi en az $COUNT$ karakter uzunluğunda olmalıdır.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
@@ -2322,7 +2346,7 @@
|
||||
}
|
||||
},
|
||||
"inputMaxLength": {
|
||||
"message": "Input must not exceed $COUNT$ characters in length.",
|
||||
"message": "Girdi $COUNT$ karakter uzunluğunu geçmemelidir.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
@@ -2331,7 +2355,7 @@
|
||||
}
|
||||
},
|
||||
"inputForbiddenCharacters": {
|
||||
"message": "The following characters are not allowed: $CHARACTERS$",
|
||||
"message": "Şu karakterlere izin verilmez: $CHARACTERS$",
|
||||
"placeholders": {
|
||||
"characters": {
|
||||
"content": "$1",
|
||||
@@ -2349,7 +2373,7 @@
|
||||
}
|
||||
},
|
||||
"inputMaxValue": {
|
||||
"message": "Input value must not exceed $MAX$.",
|
||||
"message": "Girdi değeri en fazla $MAX$ olmalı.",
|
||||
"placeholders": {
|
||||
"max": {
|
||||
"content": "$1",
|
||||
@@ -2358,17 +2382,17 @@
|
||||
}
|
||||
},
|
||||
"multipleInputEmails": {
|
||||
"message": "1 or more emails are invalid"
|
||||
"message": "Bir veya daha fazla e-posta geçersiz"
|
||||
},
|
||||
"inputTrimValidator": {
|
||||
"message": "Input must not contain only whitespace.",
|
||||
"message": "Girdi yalnızca boşluktan ibaret olamaz.",
|
||||
"description": "Notification to inform the user that a form's input can't contain only whitespace."
|
||||
},
|
||||
"inputEmail": {
|
||||
"message": "Input is not an email address."
|
||||
"message": "Girdi bir e-posta adresi değil."
|
||||
},
|
||||
"fieldsNeedAttention": {
|
||||
"message": "$COUNT$ field(s) above need your attention.",
|
||||
"message": "Yukarıdaki $COUNT$ alanla ilgilenmeniz gerekiyor.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"content": "$1",
|
||||
@@ -2377,13 +2401,13 @@
|
||||
}
|
||||
},
|
||||
"selectPlaceholder": {
|
||||
"message": "-- Select --"
|
||||
"message": "-- Seçin --"
|
||||
},
|
||||
"multiSelectPlaceholder": {
|
||||
"message": "-- Type to filter --"
|
||||
"message": "-- Filtrelemek için yazın --"
|
||||
},
|
||||
"multiSelectLoading": {
|
||||
"message": "Retrieving options..."
|
||||
"message": "Seçenekler alınıyor..."
|
||||
},
|
||||
"multiSelectNotFound": {
|
||||
"message": "Hiç kayıt bulunamadı"
|
||||
@@ -2392,7 +2416,7 @@
|
||||
"message": "Tümünü temizle"
|
||||
},
|
||||
"plusNMore": {
|
||||
"message": "+ $QUANTITY$ more",
|
||||
"message": "+ $QUANTITY$ tane daha",
|
||||
"placeholders": {
|
||||
"quantity": {
|
||||
"content": "$1",
|
||||
@@ -2401,10 +2425,25 @@
|
||||
}
|
||||
},
|
||||
"submenu": {
|
||||
"message": "Submenu"
|
||||
"message": "Alt menü"
|
||||
},
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"message": "Daraltmayı aç/kapat",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias alan adı"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Ana parolayı yeniden isteyen kayıtlar sayfa yüklendiğinde otomatik olarak doldurulamaz. Sayfa yüklendiğinde otomatik doldurma kapatıldı.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Sayfa yüklendiğinde otomatik doldurma, varsayılan ayarı kullanacak şekilde ayarlandı.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "Bu alanı düzenlemek için ana parolayı yeniden istemeyi kapatı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": "Автозаповнення входу"
|
||||
},
|
||||
"autoFillCard": {
|
||||
"message": "Автозаповнення картки"
|
||||
},
|
||||
"autoFillIdentity": {
|
||||
"message": "Автозаповнення особистих даних"
|
||||
},
|
||||
"generatePasswordCopied": {
|
||||
"message": "Генерувати пароль (з копіюванням)"
|
||||
},
|
||||
@@ -100,6 +109,21 @@
|
||||
"noMatchingLogins": {
|
||||
"message": "Немає відповідних записів"
|
||||
},
|
||||
"noCards": {
|
||||
"message": "Немає карток"
|
||||
},
|
||||
"noIdentities": {
|
||||
"message": "Немає особистих даних"
|
||||
},
|
||||
"addLoginMenu": {
|
||||
"message": "Додати запис входу"
|
||||
},
|
||||
"addCardMenu": {
|
||||
"message": "Додати картку"
|
||||
},
|
||||
"addIdentityMenu": {
|
||||
"message": "Додати особисті дані"
|
||||
},
|
||||
"unlockVaultMenu": {
|
||||
"message": "Розблокуйте сховище"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Згорнути/розгорнути",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Псевдонім домену"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Записи з повторним запитом головного пароля не можна автоматично заповнювати під час завантаження сторінки. Автозаповнення на сторінці вимкнено.",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "Автозаповнення на сторінці налаштовано з типовими параметрами.",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"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"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.",
|
||||
"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.",
|
||||
"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",
|
||||
"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": "自动填充登录"
|
||||
},
|
||||
"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 应用程序的设置中启用。需要其他登录选项吗?"
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "切换折叠",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "别名域"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "具有主密码重新提示的项目无法在页面加载时自动填充。页面加载时的自动填充功能已关闭。",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "页面加载时自动填充设置为默认设置。",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"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": "自動填入"
|
||||
},
|
||||
"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": "解鎖您的密碼庫"
|
||||
},
|
||||
@@ -2406,5 +2430,20 @@
|
||||
"toggleCollapse": {
|
||||
"message": "Toggle collapse",
|
||||
"description": "Toggling an expand/collapse state."
|
||||
},
|
||||
"aliasDomain": {
|
||||
"message": "Alias domain"
|
||||
},
|
||||
"passwordRepromptDisabledAutofillOnPageLoad": {
|
||||
"message": "使用主密碼重新提示的項目無法在頁面加載時自動填寫。已關閉頁面加載時的自動填入。",
|
||||
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
|
||||
},
|
||||
"autofillOnPageLoadSetToDefault": {
|
||||
"message": "將頁面加載時的自動填入設置為使用默認設定。",
|
||||
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
|
||||
},
|
||||
"turnOffMasterPasswordPromptToEditField": {
|
||||
"message": "關閉主密碼重新提示以編輯此欄位",
|
||||
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,19 +69,20 @@ describe("CipherContextMenuHandler", () => {
|
||||
expect(mainContextMenuHandler.noLogins).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it("only adds login ciphers including ciphers that require reprompt", async () => {
|
||||
it("only adds autofill ciphers including ciphers that require reprompt", async () => {
|
||||
authService.getAuthStatus.mockResolvedValue(AuthenticationStatus.Unlocked);
|
||||
|
||||
mainContextMenuHandler.init.mockResolvedValue(true);
|
||||
|
||||
const realCipher = {
|
||||
const loginCipher = {
|
||||
id: "5",
|
||||
type: CipherType.Login,
|
||||
reprompt: CipherRepromptType.None,
|
||||
name: "Test Cipher",
|
||||
login: { username: "Test Username" },
|
||||
};
|
||||
const repromptCipher = {
|
||||
|
||||
const repromptLoginCipher = {
|
||||
id: "6",
|
||||
type: CipherType.Login,
|
||||
reprompt: CipherRepromptType.Password,
|
||||
@@ -89,34 +90,49 @@ describe("CipherContextMenuHandler", () => {
|
||||
login: { username: "Test Username" },
|
||||
};
|
||||
|
||||
const cardCipher = {
|
||||
id: "7",
|
||||
type: CipherType.Card,
|
||||
name: "Test Card Cipher",
|
||||
card: { username: "Test Username" },
|
||||
};
|
||||
|
||||
cipherService.getAllDecryptedForUrl.mockResolvedValue([
|
||||
null, // invalid cipher
|
||||
undefined, // invalid cipher
|
||||
{ type: CipherType.Card }, // invalid cipher
|
||||
realCipher, // valid cipher
|
||||
repromptCipher,
|
||||
{ type: CipherType.SecureNote }, // invalid cipher
|
||||
loginCipher, // valid cipher
|
||||
repromptLoginCipher,
|
||||
cardCipher, // valid cipher
|
||||
] as any[]);
|
||||
|
||||
await sut.update("https://test.com");
|
||||
|
||||
expect(cipherService.getAllDecryptedForUrl).toHaveBeenCalledTimes(1);
|
||||
|
||||
expect(cipherService.getAllDecryptedForUrl).toHaveBeenCalledWith("https://test.com");
|
||||
expect(cipherService.getAllDecryptedForUrl).toHaveBeenCalledWith("https://test.com", [
|
||||
CipherType.Card,
|
||||
CipherType.Identity,
|
||||
]);
|
||||
|
||||
expect(mainContextMenuHandler.loadOptions).toHaveBeenCalledTimes(2);
|
||||
expect(mainContextMenuHandler.loadOptions).toHaveBeenCalledTimes(3);
|
||||
|
||||
expect(mainContextMenuHandler.loadOptions).toHaveBeenCalledWith(
|
||||
"Test Cipher (Test Username)",
|
||||
"5",
|
||||
"https://test.com",
|
||||
realCipher
|
||||
loginCipher
|
||||
);
|
||||
|
||||
expect(mainContextMenuHandler.loadOptions).toHaveBeenCalledWith(
|
||||
"Test Reprompt Cipher (Test Username)",
|
||||
"6",
|
||||
"https://test.com",
|
||||
repromptCipher
|
||||
repromptLoginCipher
|
||||
);
|
||||
|
||||
expect(mainContextMenuHandler.loadOptions).toHaveBeenCalledWith(
|
||||
"Test Card Cipher",
|
||||
"7",
|
||||
cardCipher
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -18,6 +18,7 @@ import {
|
||||
cipherServiceFactory,
|
||||
CipherServiceInitOptions,
|
||||
} from "../../vault/background/service_factories/cipher-service.factory";
|
||||
import { AutofillCipherTypeId } from "../types";
|
||||
|
||||
import { MainContextMenuHandler } from "./main-context-menu-handler";
|
||||
|
||||
@@ -159,29 +160,67 @@ export class CipherContextMenuHandler {
|
||||
return;
|
||||
}
|
||||
|
||||
const ciphers = await this.cipherService.getAllDecryptedForUrl(url);
|
||||
const ciphers = await this.cipherService.getAllDecryptedForUrl(url, [
|
||||
CipherType.Card,
|
||||
CipherType.Identity,
|
||||
]);
|
||||
ciphers.sort((a, b) => this.cipherService.sortCiphersByLastUsedThenName(a, b));
|
||||
|
||||
if (ciphers.length === 0) {
|
||||
await this.mainContextMenuHandler.noLogins(url);
|
||||
return;
|
||||
const groupedCiphers: Record<AutofillCipherTypeId, CipherView[]> = ciphers.reduce(
|
||||
(ciphersByType, cipher) => {
|
||||
if (!cipher?.type) {
|
||||
return ciphersByType;
|
||||
}
|
||||
|
||||
const existingCiphersOfType = ciphersByType[cipher.type as AutofillCipherTypeId] || [];
|
||||
|
||||
return {
|
||||
...ciphersByType,
|
||||
[cipher.type]: [...existingCiphersOfType, cipher],
|
||||
};
|
||||
},
|
||||
{
|
||||
[CipherType.Login]: [],
|
||||
[CipherType.Card]: [],
|
||||
[CipherType.Identity]: [],
|
||||
}
|
||||
);
|
||||
|
||||
if (groupedCiphers[CipherType.Login].length === 0) {
|
||||
await this.mainContextMenuHandler.noLogins();
|
||||
}
|
||||
|
||||
if (groupedCiphers[CipherType.Identity].length === 0) {
|
||||
await this.mainContextMenuHandler.noIdentities();
|
||||
}
|
||||
|
||||
if (groupedCiphers[CipherType.Card].length === 0) {
|
||||
await this.mainContextMenuHandler.noCards();
|
||||
}
|
||||
|
||||
for (const cipher of ciphers) {
|
||||
await this.updateForCipher(url, cipher);
|
||||
await this.updateForCipher(cipher);
|
||||
}
|
||||
}
|
||||
|
||||
private async updateForCipher(url: string, cipher: CipherView) {
|
||||
if (cipher == null || cipher.type !== CipherType.Login) {
|
||||
private async updateForCipher(cipher: CipherView) {
|
||||
if (
|
||||
cipher == null ||
|
||||
!new Set([CipherType.Login, CipherType.Card, CipherType.Identity]).has(cipher.type)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
let title = cipher.name;
|
||||
if (!Utils.isNullOrEmpty(title)) {
|
||||
|
||||
if (cipher.type === CipherType.Login && !Utils.isNullOrEmpty(title) && cipher.login?.username) {
|
||||
title += ` (${cipher.login.username})`;
|
||||
}
|
||||
|
||||
await this.mainContextMenuHandler.loadOptions(title, cipher.id, url, cipher);
|
||||
if (cipher.type === CipherType.Card && cipher.card?.subTitle) {
|
||||
title += ` ${cipher.card.subTitle}`;
|
||||
}
|
||||
|
||||
await this.mainContextMenuHandler.loadOptions(title, cipher.id, cipher);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,12 +4,22 @@ 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";
|
||||
import { Cipher } from "@bitwarden/common/vault/models/domain/cipher";
|
||||
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
|
||||
|
||||
import {
|
||||
AUTOFILL_ID,
|
||||
COPY_PASSWORD_ID,
|
||||
COPY_USERNAME_ID,
|
||||
COPY_VERIFICATIONCODE_ID,
|
||||
GENERATE_PASSWORD_ID,
|
||||
NOOP_COMMAND_SUFFIX,
|
||||
} from "../constants";
|
||||
|
||||
import {
|
||||
CopyToClipboardAction,
|
||||
ContextMenuClickedHandler,
|
||||
@@ -17,13 +27,6 @@ import {
|
||||
GeneratePasswordToClipboardAction,
|
||||
AutofillAction,
|
||||
} from "./context-menu-clicked-handler";
|
||||
import {
|
||||
AUTOFILL_ID,
|
||||
COPY_PASSWORD_ID,
|
||||
COPY_USERNAME_ID,
|
||||
COPY_VERIFICATIONCODE_ID,
|
||||
GENERATE_PASSWORD_ID,
|
||||
} from "./main-context-menu-handler";
|
||||
|
||||
describe("ContextMenuClickedHandler", () => {
|
||||
const createData = (
|
||||
@@ -51,6 +54,7 @@ describe("ContextMenuClickedHandler", () => {
|
||||
type: CipherType.Login,
|
||||
} as any)
|
||||
);
|
||||
|
||||
cipherView.login.username = username ?? "USERNAME";
|
||||
cipherView.login.password = password ?? "PASSWORD";
|
||||
cipherView.login.totp = totp ?? "TOTP";
|
||||
@@ -62,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>;
|
||||
@@ -74,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();
|
||||
|
||||
@@ -83,6 +89,7 @@ describe("ContextMenuClickedHandler", () => {
|
||||
autofill,
|
||||
authService,
|
||||
cipherService,
|
||||
stateService,
|
||||
totpService,
|
||||
eventCollectionService,
|
||||
userVerificationService
|
||||
@@ -106,7 +113,7 @@ describe("ContextMenuClickedHandler", () => {
|
||||
const cipher = createCipher();
|
||||
cipherService.getAllDecrypted.mockResolvedValue([cipher]);
|
||||
|
||||
await sut.run(createData("T_1", AUTOFILL_ID), { id: 5 } as any);
|
||||
await sut.run(createData(`${AUTOFILL_ID}_1`, AUTOFILL_ID), { id: 5 } as any);
|
||||
|
||||
expect(autofill).toBeCalledTimes(1);
|
||||
|
||||
@@ -118,11 +125,16 @@ describe("ContextMenuClickedHandler", () => {
|
||||
createCipher({ username: "TEST_USERNAME" }),
|
||||
]);
|
||||
|
||||
await sut.run(createData("T_1", COPY_USERNAME_ID));
|
||||
await sut.run(createData(`${COPY_USERNAME_ID}_1`, COPY_USERNAME_ID), {
|
||||
url: "https://test.com",
|
||||
} as any);
|
||||
|
||||
expect(copyToClipboard).toBeCalledTimes(1);
|
||||
|
||||
expect(copyToClipboard).toHaveBeenCalledWith({ text: "TEST_USERNAME", options: undefined });
|
||||
expect(copyToClipboard).toHaveBeenCalledWith({
|
||||
text: "TEST_USERNAME",
|
||||
tab: { url: "https://test.com" },
|
||||
});
|
||||
});
|
||||
|
||||
it("copies password to clipboard", async () => {
|
||||
@@ -130,11 +142,16 @@ describe("ContextMenuClickedHandler", () => {
|
||||
createCipher({ password: "TEST_PASSWORD" }),
|
||||
]);
|
||||
|
||||
await sut.run(createData("T_1", COPY_PASSWORD_ID));
|
||||
await sut.run(createData(`${COPY_PASSWORD_ID}_1`, COPY_PASSWORD_ID), {
|
||||
url: "https://test.com",
|
||||
} as any);
|
||||
|
||||
expect(copyToClipboard).toBeCalledTimes(1);
|
||||
|
||||
expect(copyToClipboard).toHaveBeenCalledWith({ text: "TEST_PASSWORD", options: undefined });
|
||||
expect(copyToClipboard).toHaveBeenCalledWith({
|
||||
text: "TEST_PASSWORD",
|
||||
tab: { url: "https://test.com" },
|
||||
});
|
||||
});
|
||||
|
||||
it("copies totp code to clipboard", async () => {
|
||||
@@ -148,11 +165,16 @@ describe("ContextMenuClickedHandler", () => {
|
||||
return Promise.resolve("654321");
|
||||
});
|
||||
|
||||
await sut.run(createData("T_1", COPY_VERIFICATIONCODE_ID));
|
||||
await sut.run(createData(`${COPY_VERIFICATIONCODE_ID}_1`, COPY_VERIFICATIONCODE_ID), {
|
||||
url: "https://test.com",
|
||||
} as any);
|
||||
|
||||
expect(totpService.getCode).toHaveBeenCalledTimes(1);
|
||||
|
||||
expect(copyToClipboard).toHaveBeenCalledWith({ text: "123456" });
|
||||
expect(copyToClipboard).toHaveBeenCalledWith({
|
||||
text: "123456",
|
||||
tab: { url: "https://test.com" },
|
||||
});
|
||||
});
|
||||
|
||||
it("attempts to find a cipher when noop but unlocked", async () => {
|
||||
@@ -163,11 +185,13 @@ describe("ContextMenuClickedHandler", () => {
|
||||
} as any,
|
||||
]);
|
||||
|
||||
await sut.run(createData("T_noop", COPY_USERNAME_ID), { url: "https://test.com" } as any);
|
||||
await sut.run(createData(`${COPY_USERNAME_ID}_${NOOP_COMMAND_SUFFIX}`, COPY_USERNAME_ID), {
|
||||
url: "https://test.com",
|
||||
} as any);
|
||||
|
||||
expect(cipherService.getAllDecryptedForUrl).toHaveBeenCalledTimes(1);
|
||||
|
||||
expect(cipherService.getAllDecryptedForUrl).toHaveBeenCalledWith("https://test.com");
|
||||
expect(cipherService.getAllDecryptedForUrl).toHaveBeenCalledWith("https://test.com", []);
|
||||
|
||||
expect(copyToClipboard).toHaveBeenCalledTimes(1);
|
||||
|
||||
@@ -185,11 +209,13 @@ describe("ContextMenuClickedHandler", () => {
|
||||
} as any,
|
||||
]);
|
||||
|
||||
await sut.run(createData("T_noop", COPY_USERNAME_ID), { url: "https://test.com" } as any);
|
||||
await sut.run(createData(`${COPY_USERNAME_ID}_${NOOP_COMMAND_SUFFIX}`, COPY_USERNAME_ID), {
|
||||
url: "https://test.com",
|
||||
} as any);
|
||||
|
||||
expect(cipherService.getAllDecryptedForUrl).toHaveBeenCalledTimes(1);
|
||||
|
||||
expect(cipherService.getAllDecryptedForUrl).toHaveBeenCalledWith("https://test.com");
|
||||
expect(cipherService.getAllDecryptedForUrl).toHaveBeenCalledWith("https://test.com", []);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -4,10 +4,12 @@ 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";
|
||||
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 {
|
||||
@@ -30,16 +32,21 @@ import {
|
||||
import { autofillServiceFactory } from "../background/service_factories/autofill-service.factory";
|
||||
import { copyToClipboard, GeneratePasswordToClipboardCommand } from "../clipboard";
|
||||
import { AutofillTabCommand } from "../commands/autofill-tab-command";
|
||||
|
||||
import {
|
||||
AUTOFILL_CARD_ID,
|
||||
AUTOFILL_ID,
|
||||
AUTOFILL_IDENTITY_ID,
|
||||
COPY_IDENTIFIER_ID,
|
||||
COPY_PASSWORD_ID,
|
||||
COPY_USERNAME_ID,
|
||||
COPY_VERIFICATIONCODE_ID,
|
||||
CREATE_CARD_ID,
|
||||
CREATE_IDENTITY_ID,
|
||||
CREATE_LOGIN_ID,
|
||||
GENERATE_PASSWORD_ID,
|
||||
NOOP_COMMAND_SUFFIX,
|
||||
} from "./main-context-menu-handler";
|
||||
} from "../constants";
|
||||
import { AutofillCipherTypeId } from "../types";
|
||||
|
||||
export type CopyToClipboardOptions = { text: string; tab: chrome.tabs.Tab };
|
||||
export type CopyToClipboardAction = (options: CopyToClipboardOptions) => void;
|
||||
@@ -57,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
|
||||
@@ -108,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)
|
||||
@@ -142,18 +151,16 @@ export class ContextMenuClickedHandler {
|
||||
);
|
||||
}
|
||||
|
||||
async run(info: chrome.contextMenus.OnClickData, tab?: chrome.tabs.Tab) {
|
||||
async run(info: chrome.contextMenus.OnClickData, tab: chrome.tabs.Tab) {
|
||||
if (!tab) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (info.menuItemId) {
|
||||
case GENERATE_PASSWORD_ID:
|
||||
if (!tab) {
|
||||
return;
|
||||
}
|
||||
await this.generatePasswordToClipboard(tab);
|
||||
break;
|
||||
case COPY_IDENTIFIER_ID:
|
||||
if (!tab) {
|
||||
return;
|
||||
}
|
||||
this.copyToClipboard({ text: await this.getIdentifier(tab, info), tab: tab });
|
||||
break;
|
||||
default:
|
||||
@@ -161,7 +168,11 @@ export class ContextMenuClickedHandler {
|
||||
}
|
||||
}
|
||||
|
||||
async cipherAction(info: chrome.contextMenus.OnClickData, tab?: chrome.tabs.Tab) {
|
||||
async cipherAction(info: chrome.contextMenus.OnClickData, tab: chrome.tabs.Tab) {
|
||||
if (!tab) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((await this.authService.getAuthStatus()) < AuthenticationStatus.Unlocked) {
|
||||
const retryMessage: LockedVaultPendingNotificationsItem = {
|
||||
commandToRetry: {
|
||||
@@ -182,32 +193,58 @@ export class ContextMenuClickedHandler {
|
||||
|
||||
// NOTE: We don't actually use the first part of this ID, we further switch based on the parentMenuItemId
|
||||
// I would really love to not add it but that is a departure from how it currently works.
|
||||
const id = (info.menuItemId as string).split("_")[1]; // We create all the ids, we can guarantee they are strings
|
||||
const menuItemId = (info.menuItemId as string).split("_")[1]; // We create all the ids, we can guarantee they are strings
|
||||
let cipher: CipherView | undefined;
|
||||
if (id === NOOP_COMMAND_SUFFIX) {
|
||||
const isCreateCipherAction = [CREATE_LOGIN_ID, CREATE_IDENTITY_ID, CREATE_CARD_ID].includes(
|
||||
menuItemId as string
|
||||
);
|
||||
|
||||
if (isCreateCipherAction) {
|
||||
// pass; defer to logic below
|
||||
} else if (menuItemId === NOOP_COMMAND_SUFFIX) {
|
||||
const additionalCiphersToGet =
|
||||
info.parentMenuItemId === AUTOFILL_IDENTITY_ID
|
||||
? [CipherType.Identity]
|
||||
: info.parentMenuItemId === AUTOFILL_CARD_ID
|
||||
? [CipherType.Card]
|
||||
: [];
|
||||
|
||||
// This NOOP item has come through which is generally only for no access state but since we got here
|
||||
// we are actually unlocked we will do our best to find a good match of an item to autofill this is useful
|
||||
// in scenarios like unlock on autofill
|
||||
const ciphers = await this.cipherService.getAllDecryptedForUrl(tab.url);
|
||||
const ciphers = await this.cipherService.getAllDecryptedForUrl(
|
||||
tab.url,
|
||||
additionalCiphersToGet
|
||||
);
|
||||
|
||||
cipher = ciphers[0];
|
||||
} else {
|
||||
const ciphers = await this.cipherService.getAllDecrypted();
|
||||
cipher = ciphers.find((c) => c.id === id);
|
||||
cipher = ciphers.find(({ id }) => id === menuItemId);
|
||||
}
|
||||
|
||||
if (cipher == null) {
|
||||
if (!cipher && !isCreateCipherAction) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.stateService.setLastActive(new Date().getTime());
|
||||
switch (info.parentMenuItemId) {
|
||||
case AUTOFILL_ID:
|
||||
if (tab == null) {
|
||||
return;
|
||||
case AUTOFILL_IDENTITY_ID:
|
||||
case AUTOFILL_CARD_ID: {
|
||||
const cipherType = this.getCipherCreationType(menuItemId);
|
||||
|
||||
if (cipherType) {
|
||||
await BrowserApi.tabSendMessageData(tab, "openAddEditCipher", {
|
||||
cipherType,
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
if (await this.isPasswordRepromptRequired(cipher)) {
|
||||
await BrowserApi.tabSendMessageData(tab, "passwordReprompt", {
|
||||
cipherId: cipher.id,
|
||||
// The action here is passed on to the single-use reprompt window and doesn't change based on cipher type
|
||||
action: AUTOFILL_ID,
|
||||
});
|
||||
} else {
|
||||
@@ -215,14 +252,29 @@ export class ContextMenuClickedHandler {
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case COPY_USERNAME_ID:
|
||||
if (menuItemId === CREATE_LOGIN_ID) {
|
||||
await BrowserApi.tabSendMessageData(tab, "openAddEditCipher", {
|
||||
cipherType: CipherType.Login,
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
this.copyToClipboard({ text: cipher.login.username, tab: tab });
|
||||
break;
|
||||
case COPY_PASSWORD_ID:
|
||||
if (menuItemId === CREATE_LOGIN_ID) {
|
||||
await BrowserApi.tabSendMessageData(tab, "openAddEditCipher", {
|
||||
cipherType: CipherType.Login,
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
if (await this.isPasswordRepromptRequired(cipher)) {
|
||||
await BrowserApi.tabSendMessageData(tab, "passwordReprompt", {
|
||||
cipherId: cipher.id,
|
||||
action: COPY_PASSWORD_ID,
|
||||
action: info.parentMenuItemId,
|
||||
});
|
||||
} else {
|
||||
this.copyToClipboard({ text: cipher.login.password, tab: tab });
|
||||
@@ -231,10 +283,17 @@ export class ContextMenuClickedHandler {
|
||||
|
||||
break;
|
||||
case COPY_VERIFICATIONCODE_ID:
|
||||
if (menuItemId === CREATE_LOGIN_ID) {
|
||||
await BrowserApi.tabSendMessageData(tab, "openAddEditCipher", {
|
||||
cipherType: CipherType.Login,
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
if (await this.isPasswordRepromptRequired(cipher)) {
|
||||
await BrowserApi.tabSendMessageData(tab, "passwordReprompt", {
|
||||
cipherId: cipher.id,
|
||||
action: COPY_VERIFICATIONCODE_ID,
|
||||
action: info.parentMenuItemId,
|
||||
});
|
||||
} else {
|
||||
this.copyToClipboard({
|
||||
@@ -254,6 +313,16 @@ export class ContextMenuClickedHandler {
|
||||
);
|
||||
}
|
||||
|
||||
private getCipherCreationType(menuItemId?: string): AutofillCipherTypeId | null {
|
||||
return menuItemId === CREATE_IDENTITY_ID
|
||||
? CipherType.Identity
|
||||
: menuItemId === CREATE_CARD_ID
|
||||
? CipherType.Card
|
||||
: menuItemId === CREATE_LOGIN_ID
|
||||
? CipherType.Login
|
||||
: null;
|
||||
}
|
||||
|
||||
private async getIdentifier(tab: chrome.tabs.Tab, info: chrome.contextMenus.OnClickData) {
|
||||
return new Promise<string>((resolve, reject) => {
|
||||
BrowserApi.sendTabsMessage(
|
||||
|
||||
@@ -60,7 +60,7 @@ describe("context-menu", () => {
|
||||
|
||||
const createdMenu = await sut.init();
|
||||
expect(createdMenu).toBeTruthy();
|
||||
expect(createSpy).toHaveBeenCalledTimes(7);
|
||||
expect(createSpy).toHaveBeenCalledTimes(10);
|
||||
});
|
||||
|
||||
it("has menu enabled and has premium", async () => {
|
||||
@@ -70,7 +70,7 @@ describe("context-menu", () => {
|
||||
|
||||
const createdMenu = await sut.init();
|
||||
expect(createdMenu).toBeTruthy();
|
||||
expect(createSpy).toHaveBeenCalledTimes(8);
|
||||
expect(createSpy).toHaveBeenCalledTimes(11);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -97,7 +97,7 @@ describe("context-menu", () => {
|
||||
};
|
||||
|
||||
it("is not a login cipher", async () => {
|
||||
await sut.loadOptions("TEST_TITLE", "1", "", {
|
||||
await sut.loadOptions("TEST_TITLE", "1", {
|
||||
...createCipher(),
|
||||
type: CipherType.SecureNote,
|
||||
} as any);
|
||||
@@ -109,7 +109,6 @@ describe("context-menu", () => {
|
||||
await sut.loadOptions(
|
||||
"TEST_TITLE",
|
||||
"1",
|
||||
"",
|
||||
createCipher({
|
||||
username: "",
|
||||
totp: "",
|
||||
@@ -123,18 +122,18 @@ describe("context-menu", () => {
|
||||
it("create entry for each cipher piece", async () => {
|
||||
stateService.getCanAccessPremium.mockResolvedValue(true);
|
||||
|
||||
await sut.loadOptions("TEST_TITLE", "1", "", createCipher());
|
||||
await sut.loadOptions("TEST_TITLE", "1", createCipher());
|
||||
|
||||
// One for autofill, copy username, copy password, and copy totp code
|
||||
expect(createSpy).toHaveBeenCalledTimes(4);
|
||||
});
|
||||
|
||||
it("creates noop item for no cipher", async () => {
|
||||
it("creates a login/unlock item for each context menu action option when user is not authenticated", async () => {
|
||||
stateService.getCanAccessPremium.mockResolvedValue(true);
|
||||
|
||||
await sut.loadOptions("TEST_TITLE", "NOOP", "");
|
||||
await sut.loadOptions("TEST_TITLE", "NOOP");
|
||||
|
||||
expect(createSpy).toHaveBeenCalledTimes(4);
|
||||
expect(createSpy).toHaveBeenCalledTimes(6);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -21,22 +21,24 @@ import {
|
||||
StateServiceInitOptions,
|
||||
} from "../../platform/background/service-factories/state-service.factory";
|
||||
import { BrowserStateService } from "../../platform/services/abstractions/browser-state.service";
|
||||
|
||||
export const ROOT_ID = "root";
|
||||
|
||||
export const AUTOFILL_ID = "autofill";
|
||||
export const COPY_USERNAME_ID = "copy-username";
|
||||
export const COPY_PASSWORD_ID = "copy-password";
|
||||
export const COPY_VERIFICATIONCODE_ID = "copy-totp";
|
||||
export const COPY_IDENTIFIER_ID = "copy-identifier";
|
||||
|
||||
const SEPARATOR_ID = "separator";
|
||||
export const GENERATE_PASSWORD_ID = "generate-password";
|
||||
|
||||
export const NOOP_COMMAND_SUFFIX = "noop";
|
||||
import {
|
||||
AUTOFILL_CARD_ID,
|
||||
AUTOFILL_ID,
|
||||
AUTOFILL_IDENTITY_ID,
|
||||
COPY_IDENTIFIER_ID,
|
||||
COPY_PASSWORD_ID,
|
||||
COPY_USERNAME_ID,
|
||||
COPY_VERIFICATIONCODE_ID,
|
||||
CREATE_CARD_ID,
|
||||
CREATE_IDENTITY_ID,
|
||||
CREATE_LOGIN_ID,
|
||||
GENERATE_PASSWORD_ID,
|
||||
NOOP_COMMAND_SUFFIX,
|
||||
ROOT_ID,
|
||||
SEPARATOR_ID,
|
||||
} from "../constants";
|
||||
|
||||
export class MainContextMenuHandler {
|
||||
//
|
||||
private initRunning = false;
|
||||
|
||||
create: (options: chrome.contextMenus.CreateProperties) => Promise<void>;
|
||||
@@ -120,7 +122,7 @@ export class MainContextMenuHandler {
|
||||
await create({
|
||||
id: AUTOFILL_ID,
|
||||
parentId: ROOT_ID,
|
||||
title: this.i18nService.t("autoFill"),
|
||||
title: this.i18nService.t("autoFillLogin"),
|
||||
});
|
||||
|
||||
await create({
|
||||
@@ -144,7 +146,25 @@ export class MainContextMenuHandler {
|
||||
}
|
||||
|
||||
await create({
|
||||
id: SEPARATOR_ID,
|
||||
id: SEPARATOR_ID + 1,
|
||||
type: "separator",
|
||||
parentId: ROOT_ID,
|
||||
});
|
||||
|
||||
await create({
|
||||
id: AUTOFILL_IDENTITY_ID,
|
||||
parentId: ROOT_ID,
|
||||
title: this.i18nService.t("autoFillIdentity"),
|
||||
});
|
||||
|
||||
await create({
|
||||
id: AUTOFILL_CARD_ID,
|
||||
parentId: ROOT_ID,
|
||||
title: this.i18nService.t("autoFillCard"),
|
||||
});
|
||||
|
||||
await create({
|
||||
id: SEPARATOR_ID + 2,
|
||||
type: "separator",
|
||||
parentId: ROOT_ID,
|
||||
});
|
||||
@@ -194,40 +214,52 @@ export class MainContextMenuHandler {
|
||||
});
|
||||
}
|
||||
|
||||
async loadOptions(title: string, id: string, url: string, cipher?: CipherView | undefined) {
|
||||
if (cipher != null && cipher.type !== CipherType.Login) {
|
||||
return;
|
||||
}
|
||||
|
||||
async loadOptions(title: string, optionId: string, cipher?: CipherView) {
|
||||
try {
|
||||
const sanitizedTitle = MainContextMenuHandler.sanitizeContextMenuTitle(title);
|
||||
|
||||
const createChildItem = async (parent: string) => {
|
||||
const menuItemId = `${parent}_${id}`;
|
||||
const createChildItem = async (parentId: string) => {
|
||||
const menuItemId = `${parentId}_${optionId}`;
|
||||
|
||||
return await this.create({
|
||||
type: "normal",
|
||||
id: menuItemId,
|
||||
parentId: parent,
|
||||
parentId,
|
||||
title: sanitizedTitle,
|
||||
contexts: ["all"],
|
||||
});
|
||||
};
|
||||
|
||||
if (cipher == null || !Utils.isNullOrEmpty(cipher.login.password)) {
|
||||
if (
|
||||
!cipher ||
|
||||
(cipher.type === CipherType.Login && !Utils.isNullOrEmpty(cipher.login?.password))
|
||||
) {
|
||||
await createChildItem(AUTOFILL_ID);
|
||||
|
||||
if (cipher?.viewPassword ?? true) {
|
||||
await createChildItem(COPY_PASSWORD_ID);
|
||||
}
|
||||
}
|
||||
|
||||
if (cipher == null || !Utils.isNullOrEmpty(cipher.login.username)) {
|
||||
if (
|
||||
!cipher ||
|
||||
(cipher.type === CipherType.Login && !Utils.isNullOrEmpty(cipher.login?.username))
|
||||
) {
|
||||
await createChildItem(COPY_USERNAME_ID);
|
||||
}
|
||||
|
||||
const canAccessPremium = await this.stateService.getCanAccessPremium();
|
||||
if (canAccessPremium && (cipher == null || !Utils.isNullOrEmpty(cipher.login.totp))) {
|
||||
if (canAccessPremium && (!cipher || !Utils.isNullOrEmpty(cipher.login?.totp))) {
|
||||
await createChildItem(COPY_VERIFICATIONCODE_ID);
|
||||
}
|
||||
|
||||
if ((!cipher || cipher.type === CipherType.Card) && optionId !== CREATE_LOGIN_ID) {
|
||||
await createChildItem(AUTOFILL_CARD_ID);
|
||||
}
|
||||
|
||||
if ((!cipher || cipher.type === CipherType.Identity) && optionId !== CREATE_LOGIN_ID) {
|
||||
await createChildItem(AUTOFILL_IDENTITY_ID);
|
||||
}
|
||||
} catch (error) {
|
||||
this.logService.warning(error.message);
|
||||
}
|
||||
@@ -242,13 +274,72 @@ export class MainContextMenuHandler {
|
||||
const authed = await this.stateService.getIsAuthenticated();
|
||||
await this.loadOptions(
|
||||
this.i18nService.t(authed ? "unlockVaultMenu" : "loginToVaultMenu"),
|
||||
NOOP_COMMAND_SUFFIX,
|
||||
"<all_urls>"
|
||||
NOOP_COMMAND_SUFFIX
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
async noLogins(url: string) {
|
||||
await this.loadOptions(this.i18nService.t("noMatchingLogins"), NOOP_COMMAND_SUFFIX, url);
|
||||
async noCards() {
|
||||
await this.create({
|
||||
id: `${AUTOFILL_CARD_ID}_NOTICE`,
|
||||
enabled: false,
|
||||
parentId: AUTOFILL_CARD_ID,
|
||||
title: this.i18nService.t("noCards"),
|
||||
type: "normal",
|
||||
});
|
||||
|
||||
await this.create({
|
||||
id: `${AUTOFILL_CARD_ID}_${SEPARATOR_ID}`,
|
||||
parentId: AUTOFILL_CARD_ID,
|
||||
type: "separator",
|
||||
});
|
||||
|
||||
await this.create({
|
||||
id: `${AUTOFILL_CARD_ID}_${CREATE_CARD_ID}`,
|
||||
parentId: AUTOFILL_CARD_ID,
|
||||
title: this.i18nService.t("addCardMenu"),
|
||||
type: "normal",
|
||||
});
|
||||
}
|
||||
|
||||
async noIdentities() {
|
||||
await this.create({
|
||||
id: `${AUTOFILL_IDENTITY_ID}_NOTICE`,
|
||||
enabled: false,
|
||||
parentId: AUTOFILL_IDENTITY_ID,
|
||||
title: this.i18nService.t("noIdentities"),
|
||||
type: "normal",
|
||||
});
|
||||
|
||||
await this.create({
|
||||
id: `${AUTOFILL_IDENTITY_ID}_${SEPARATOR_ID}`,
|
||||
parentId: AUTOFILL_IDENTITY_ID,
|
||||
type: "separator",
|
||||
});
|
||||
|
||||
await this.create({
|
||||
id: `${AUTOFILL_IDENTITY_ID}_${CREATE_IDENTITY_ID}`,
|
||||
parentId: AUTOFILL_IDENTITY_ID,
|
||||
title: this.i18nService.t("addIdentityMenu"),
|
||||
type: "normal",
|
||||
});
|
||||
}
|
||||
|
||||
async noLogins() {
|
||||
await this.create({
|
||||
id: `${AUTOFILL_ID}_NOTICE`,
|
||||
enabled: false,
|
||||
parentId: AUTOFILL_ID,
|
||||
title: this.i18nService.t("noMatchingLogins"),
|
||||
type: "normal",
|
||||
});
|
||||
|
||||
await this.create({
|
||||
id: `${AUTOFILL_ID}_${SEPARATOR_ID}` + 1,
|
||||
parentId: AUTOFILL_ID,
|
||||
type: "separator",
|
||||
});
|
||||
|
||||
await this.loadOptions(this.i18nService.t("addLoginMenu"), CREATE_LOGIN_ID);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,3 +11,19 @@ export const EVENTS = {
|
||||
KEYPRESS: "keypress",
|
||||
KEYUP: "keyup",
|
||||
} as const;
|
||||
|
||||
/* Context Menu item Ids */
|
||||
export const AUTOFILL_CARD_ID = "autofill-card";
|
||||
export const AUTOFILL_ID = "autofill";
|
||||
export const AUTOFILL_IDENTITY_ID = "autofill-identity";
|
||||
export const COPY_IDENTIFIER_ID = "copy-identifier";
|
||||
export const COPY_PASSWORD_ID = "copy-password";
|
||||
export const COPY_USERNAME_ID = "copy-username";
|
||||
export const COPY_VERIFICATIONCODE_ID = "copy-totp";
|
||||
export const CREATE_CARD_ID = "create-card";
|
||||
export const CREATE_IDENTITY_ID = "create-identity";
|
||||
export const CREATE_LOGIN_ID = "create-login";
|
||||
export const GENERATE_PASSWORD_ID = "generate-password";
|
||||
export const NOOP_COMMAND_SUFFIX = "noop";
|
||||
export const ROOT_ID = "root";
|
||||
export const SEPARATOR_ID = "separator";
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { UriMatchType } from "@bitwarden/common/enums";
|
||||
import { CipherType } from "@bitwarden/common/vault/enums/cipher-type";
|
||||
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
|
||||
|
||||
import AutofillField from "../../models/autofill-field";
|
||||
@@ -55,5 +56,9 @@ export abstract class AutofillService {
|
||||
tab: chrome.tabs.Tab,
|
||||
fromCommand: boolean
|
||||
) => Promise<string | null>;
|
||||
doAutoFillActiveTab: (pageDetails: PageDetail[], fromCommand: boolean) => Promise<string | null>;
|
||||
doAutoFillActiveTab: (
|
||||
pageDetails: PageDetail[],
|
||||
fromCommand: boolean,
|
||||
cipherType?: CipherType
|
||||
) => Promise<string | null>;
|
||||
}
|
||||
|
||||
@@ -780,6 +780,18 @@ describe("AutofillService", () => {
|
||||
];
|
||||
});
|
||||
|
||||
it("returns a null vault without doing autofill if the page details does not contain fields ", async () => {
|
||||
pageDetails[0].details.fields = [];
|
||||
jest.spyOn(autofillService as any, "getActiveTab");
|
||||
jest.spyOn(autofillService, "doAutoFill");
|
||||
|
||||
const result = await autofillService.doAutoFillActiveTab(pageDetails, false);
|
||||
|
||||
expect(autofillService["getActiveTab"]).not.toHaveBeenCalled();
|
||||
expect(autofillService.doAutoFill).not.toHaveBeenCalled();
|
||||
expect(result).toBeNull();
|
||||
});
|
||||
|
||||
it("returns a null value without doing autofill if the active tab cannot be found", async () => {
|
||||
jest.spyOn(autofillService as any, "getActiveTab").mockResolvedValueOnce(undefined);
|
||||
jest.spyOn(autofillService, "doAutoFill");
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -304,21 +303,51 @@ export default class AutofillService implements AutofillServiceInterface {
|
||||
}
|
||||
|
||||
/**
|
||||
* Autofill the active tab with the next login item from the cache
|
||||
* Autofill the active tab with the next cipher from the cache
|
||||
* @param {PageDetail[]} pageDetails The data scraped from the page
|
||||
* @param {boolean} fromCommand Whether the autofill is triggered by a keyboard shortcut (`true`) or autofill on page load (`false`)
|
||||
* @returns {Promise<string | null>} The TOTP code of the successfully autofilled login, if any
|
||||
*/
|
||||
async doAutoFillActiveTab(
|
||||
pageDetails: PageDetail[],
|
||||
fromCommand: boolean
|
||||
fromCommand: boolean,
|
||||
cipherType?: CipherType
|
||||
): Promise<string | null> {
|
||||
if (!pageDetails[0]?.details?.fields?.length) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const tab = await this.getActiveTab();
|
||||
|
||||
if (!tab || !tab.url) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return await this.doAutoFillOnTab(pageDetails, tab, fromCommand);
|
||||
if (!cipherType || cipherType === CipherType.Login) {
|
||||
return await this.doAutoFillOnTab(pageDetails, tab, fromCommand);
|
||||
}
|
||||
|
||||
// Cipher is a non-login type
|
||||
const cipher: CipherView = (
|
||||
(await this.cipherService.getAllDecryptedForUrl(tab.url, [cipherType])) || []
|
||||
).find(({ type }) => type === cipherType);
|
||||
|
||||
if (!cipher || cipher.reprompt !== CipherRepromptType.None) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return await this.doAutoFill({
|
||||
tab: tab,
|
||||
cipher: cipher,
|
||||
pageDetails: pageDetails,
|
||||
skipLastUsed: !fromCommand,
|
||||
skipUsernameOnlyFill: !fromCommand,
|
||||
onlyEmptyFields: !fromCommand,
|
||||
onlyVisibleFields: !fromCommand,
|
||||
fillNewPassword: false,
|
||||
allowUntrustedIframe: fromCommand,
|
||||
allowTotpAutofill: false,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Region } from "@bitwarden/common/platform/abstractions/environment.service";
|
||||
import { VaultTimeoutAction } from "@bitwarden/common/src/enums/vault-timeout-action.enum";
|
||||
import { CipherType } from "@bitwarden/common/vault/enums/cipher-type";
|
||||
|
||||
export type UserSettings = {
|
||||
avatarColor: string | null;
|
||||
@@ -58,3 +59,5 @@ export type FillableFormFieldElement = HTMLInputElement | HTMLSelectElement | HT
|
||||
export type FormFieldElement = FillableFormFieldElement | HTMLSpanElement;
|
||||
|
||||
export type FormElementWithAttribute = FormFieldElement & Record<string, string | null | undefined>;
|
||||
|
||||
export type AutofillCipherTypeId = CipherType.Login | CipherType.Card | CipherType.Identity;
|
||||
|
||||
@@ -108,6 +108,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";
|
||||
@@ -179,6 +185,8 @@ export default class MainBackground {
|
||||
containerService: ContainerService;
|
||||
auditService: AuditServiceAbstraction;
|
||||
authService: AuthServiceAbstraction;
|
||||
importApiService: ImportApiServiceAbstraction;
|
||||
importService: ImportServiceAbstraction;
|
||||
exportService: VaultExportServiceAbstraction;
|
||||
searchService: SearchServiceAbstraction;
|
||||
notificationsService: NotificationsServiceAbstraction;
|
||||
@@ -538,6 +546,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,
|
||||
@@ -602,6 +622,7 @@ export default class MainBackground {
|
||||
this.platformUtilsService as BrowserPlatformUtilsService,
|
||||
this.i18nService,
|
||||
this.notificationsService,
|
||||
this.stateService,
|
||||
this.systemService,
|
||||
this.environmentService,
|
||||
this.messagingService,
|
||||
@@ -662,6 +683,7 @@ export default class MainBackground {
|
||||
},
|
||||
this.authService,
|
||||
this.cipherService,
|
||||
this.stateService,
|
||||
this.totpService,
|
||||
this.eventCollectionService,
|
||||
this.userVerificationService
|
||||
|
||||
@@ -6,10 +6,12 @@ import { LogService } from "@bitwarden/common/platform/abstractions/log.service"
|
||||
import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service";
|
||||
import { SystemService } from "@bitwarden/common/platform/abstractions/system.service";
|
||||
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
||||
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";
|
||||
import { AbortManager } from "../vault/background/abort-manager";
|
||||
@@ -30,6 +32,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,
|
||||
@@ -140,12 +143,28 @@ export default class RuntimeBackground {
|
||||
}
|
||||
break;
|
||||
case "openAddEditCipher": {
|
||||
const addEditCipherUrl =
|
||||
cipherId == null
|
||||
? "popup/index.html#/edit-cipher"
|
||||
: "popup/index.html#/edit-cipher?cipherId=" + cipherId;
|
||||
const isNewCipher = !cipherId;
|
||||
const cipherType = msg.data?.cipherType;
|
||||
const senderTab = sender.tab;
|
||||
|
||||
if (!senderTab) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (isNewCipher) {
|
||||
await this.browserPopoutWindowService.openCipherCreation(senderTab.windowId, {
|
||||
cipherType,
|
||||
senderTabId: senderTab.id,
|
||||
senderTabURI: senderTab.url,
|
||||
});
|
||||
} else {
|
||||
await this.browserPopoutWindowService.openCipherEdit(senderTab.windowId, {
|
||||
cipherId,
|
||||
senderTabId: senderTab.id,
|
||||
senderTabURI: senderTab.url,
|
||||
});
|
||||
}
|
||||
|
||||
BrowserApi.openBitwardenExtensionTab(addEditCipherUrl, true);
|
||||
break;
|
||||
}
|
||||
case "closeTab":
|
||||
@@ -176,6 +195,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(
|
||||
[
|
||||
{
|
||||
@@ -191,6 +211,34 @@ export default class RuntimeBackground {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "autofill_card": {
|
||||
await this.autofillService.doAutoFillActiveTab(
|
||||
[
|
||||
{
|
||||
frameId: sender.frameId,
|
||||
tab: msg.tab,
|
||||
details: msg.details,
|
||||
},
|
||||
],
|
||||
false,
|
||||
CipherType.Card
|
||||
);
|
||||
break;
|
||||
}
|
||||
case "autofill_identity": {
|
||||
await this.autofillService.doAutoFillActiveTab(
|
||||
[
|
||||
{
|
||||
frameId: sender.frameId,
|
||||
tab: msg.tab,
|
||||
details: msg.details,
|
||||
},
|
||||
],
|
||||
false,
|
||||
CipherType.Identity
|
||||
);
|
||||
break;
|
||||
}
|
||||
case "contextMenu":
|
||||
clearTimeout(this.autofillTimeout);
|
||||
this.pageDetailsToAutoFill.push({
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"manifest_version": 2,
|
||||
"name": "__MSG_extName__",
|
||||
"short_name": "__MSG_appName__",
|
||||
"version": "2023.9.1",
|
||||
"version": "2023.9.2",
|
||||
"description": "__MSG_extDesc__",
|
||||
"default_locale": "en",
|
||||
"author": "Bitwarden Inc.",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user