diff --git a/apps/web/src/app/auth/login/login.component.ts b/apps/web/src/app/auth/login/login.component.ts
index c67c84286ae..3a5c6d0eb2e 100644
--- a/apps/web/src/app/auth/login/login.component.ts
+++ b/apps/web/src/app/auth/login/login.component.ts
@@ -15,6 +15,7 @@ import { PolicyResponse } from "@bitwarden/common/admin-console/models/response/
import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service";
import { DevicesApiServiceAbstraction } from "@bitwarden/common/auth/abstractions/devices-api.service.abstraction";
import { LoginService } from "@bitwarden/common/auth/abstractions/login.service";
+import { WebAuthnLoginServiceAbstraction } from "@bitwarden/common/auth/abstractions/webauthn/webauthn-login.service.abstraction";
import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result";
import { ListResponse } from "@bitwarden/common/models/response/list.response";
import { AppIdService } from "@bitwarden/common/platform/abstractions/app-id.service";
@@ -62,7 +63,8 @@ export class LoginComponent extends BaseLoginComponent implements OnInit {
private routerService: RouterService,
formBuilder: FormBuilder,
formValidationErrorService: FormValidationErrorsService,
- loginService: LoginService
+ loginService: LoginService,
+ webAuthnLoginService: WebAuthnLoginServiceAbstraction
) {
super(
devicesApiService,
@@ -80,7 +82,8 @@ export class LoginComponent extends BaseLoginComponent implements OnInit {
formBuilder,
formValidationErrorService,
route,
- loginService
+ loginService,
+ webAuthnLoginService
);
this.onSuccessfulLogin = async () => {
this.messagingService.send("setFullWidth");
diff --git a/apps/web/src/app/auth/login/login.module.ts b/apps/web/src/app/auth/login/login.module.ts
index eb3d58cddfc..ee3af10109a 100644
--- a/apps/web/src/app/auth/login/login.module.ts
+++ b/apps/web/src/app/auth/login/login.module.ts
@@ -6,11 +6,22 @@ import { SharedModule } from "../../../app/shared";
import { LoginDecryptionOptionsComponent } from "./login-decryption-options/login-decryption-options.component";
import { LoginViaAuthRequestComponent } from "./login-via-auth-request.component";
+import { LoginViaWebAuthnComponent } from "./login-via-webauthn/login-via-webauthn.component";
import { LoginComponent } from "./login.component";
@NgModule({
imports: [SharedModule, CheckboxModule],
- declarations: [LoginComponent, LoginViaAuthRequestComponent, LoginDecryptionOptionsComponent],
- exports: [LoginComponent, LoginViaAuthRequestComponent, LoginDecryptionOptionsComponent],
+ declarations: [
+ LoginComponent,
+ LoginViaAuthRequestComponent,
+ LoginDecryptionOptionsComponent,
+ LoginViaWebAuthnComponent,
+ ],
+ exports: [
+ LoginComponent,
+ LoginViaAuthRequestComponent,
+ LoginDecryptionOptionsComponent,
+ LoginViaWebAuthnComponent,
+ ],
})
export class LoginModule {}
diff --git a/apps/web/src/app/oss-routing.module.ts b/apps/web/src/app/oss-routing.module.ts
index 5f5baab2e3f..a59576a77bc 100644
--- a/apps/web/src/app/oss-routing.module.ts
+++ b/apps/web/src/app/oss-routing.module.ts
@@ -24,6 +24,7 @@ import { HintComponent } from "./auth/hint.component";
import { LockComponent } from "./auth/lock.component";
import { LoginDecryptionOptionsComponent } from "./auth/login/login-decryption-options/login-decryption-options.component";
import { LoginViaAuthRequestComponent } from "./auth/login/login-via-auth-request.component";
+import { LoginViaWebAuthnComponent } from "./auth/login/login-via-webauthn/login-via-webauthn.component";
import { LoginComponent } from "./auth/login/login.component";
import { RecoverDeleteComponent } from "./auth/recover-delete.component";
import { RecoverTwoFactorComponent } from "./auth/recover-two-factor.component";
@@ -70,6 +71,11 @@ const routes: Routes = [
component: LoginViaAuthRequestComponent,
data: { titleId: "loginWithDevice" },
},
+ {
+ path: "login-with-passkey",
+ component: LoginViaWebAuthnComponent,
+ data: { titleId: "loginWithPasskey" },
+ },
{
path: "admin-approval-requested",
component: LoginViaAuthRequestComponent,
diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json
index 702f94e7e4d..6d0a3a8e3ed 100644
--- a/apps/web/src/locales/en/messages.json
+++ b/apps/web/src/locales/en/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
diff --git a/libs/angular/src/auth/components/base-login-via-webauthn.component.ts b/libs/angular/src/auth/components/base-login-via-webauthn.component.ts
new file mode 100644
index 00000000000..bcc37476675
--- /dev/null
+++ b/libs/angular/src/auth/components/base-login-via-webauthn.component.ts
@@ -0,0 +1,69 @@
+import { Directive, OnInit } from "@angular/core";
+import { Router } from "@angular/router";
+
+import { WebAuthnLoginServiceAbstraction } from "@bitwarden/common/auth/abstractions/webauthn/webauthn-login.service.abstraction";
+import { ForceSetPasswordReason } from "@bitwarden/common/auth/models/domain/force-set-password-reason";
+import { WebAuthnLoginCredentialAssertionView } from "@bitwarden/common/auth/models/view/webauthn-login/webauthn-login-credential-assertion.view";
+import { ErrorResponse } from "@bitwarden/common/models/response/error.response";
+import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
+import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
+import { ValidationService } from "@bitwarden/common/platform/abstractions/validation.service";
+
+export type State = "assert" | "assertFailed";
+
+@Directive()
+export class BaseLoginViaWebAuthnComponent implements OnInit {
+ protected currentState: State = "assert";
+
+ protected successRoute = "/vault";
+ protected forcePasswordResetRoute = "/update-temp-password";
+
+ constructor(
+ private webAuthnLoginService: WebAuthnLoginServiceAbstraction,
+ private router: Router,
+ private logService: LogService,
+ private validationService: ValidationService,
+ private i18nService: I18nService
+ ) {}
+
+ ngOnInit(): void {
+ this.authenticate();
+ }
+
+ protected retry() {
+ this.currentState = "assert";
+ this.authenticate();
+ }
+
+ private async authenticate() {
+ let assertion: WebAuthnLoginCredentialAssertionView;
+ try {
+ const options = await this.webAuthnLoginService.getCredentialAssertionOptions();
+ assertion = await this.webAuthnLoginService.assertCredential(options);
+ } catch (error) {
+ this.validationService.showError(error);
+ this.currentState = "assertFailed";
+ return;
+ }
+ try {
+ const authResult = await this.webAuthnLoginService.logIn(assertion);
+
+ if (authResult.requiresTwoFactor) {
+ this.validationService.showError(
+ this.i18nService.t("twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn")
+ );
+ this.currentState = "assertFailed";
+ } else if (authResult.forcePasswordReset == ForceSetPasswordReason.AdminForcePasswordReset) {
+ await this.router.navigate([this.forcePasswordResetRoute]);
+ } else {
+ await this.router.navigate([this.successRoute]);
+ }
+ } catch (error) {
+ if (error instanceof ErrorResponse) {
+ this.validationService.showError(this.i18nService.t("invalidPasskeyPleaseTryAgain"));
+ }
+ this.logService.error(error);
+ this.currentState = "assertFailed";
+ }
+ }
+}
diff --git a/libs/angular/src/auth/components/login.component.ts b/libs/angular/src/auth/components/login.component.ts
index cc81175b195..d344688cc53 100644
--- a/libs/angular/src/auth/components/login.component.ts
+++ b/libs/angular/src/auth/components/login.component.ts
@@ -1,12 +1,13 @@
import { Directive, ElementRef, NgZone, OnDestroy, OnInit, ViewChild } from "@angular/core";
import { FormBuilder, Validators } from "@angular/forms";
import { ActivatedRoute, Router } from "@angular/router";
-import { Subject } from "rxjs";
+import { Observable, Subject } from "rxjs";
import { take, takeUntil } from "rxjs/operators";
import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service";
import { DevicesApiServiceAbstraction } from "@bitwarden/common/auth/abstractions/devices-api.service.abstraction";
import { LoginService } from "@bitwarden/common/auth/abstractions/login.service";
+import { WebAuthnLoginServiceAbstraction } from "@bitwarden/common/auth/abstractions/webauthn/webauthn-login.service.abstraction";
import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result";
import { ForceSetPasswordReason } from "@bitwarden/common/auth/models/domain/force-set-password-reason";
import { PasswordLoginCredentials } from "@bitwarden/common/auth/models/domain/login-credentials";
@@ -53,6 +54,7 @@ export class LoginComponent extends CaptchaProtectedComponent implements OnInit,
protected twoFactorRoute = "2fa";
protected successRoute = "vault";
protected forcePasswordResetRoute = "update-temp-password";
+ protected showWebauthnLogin$: Observable;
protected destroy$ = new Subject();
@@ -76,7 +78,8 @@ export class LoginComponent extends CaptchaProtectedComponent implements OnInit,
protected formBuilder: FormBuilder,
protected formValidationErrorService: FormValidationErrorsService,
protected route: ActivatedRoute,
- protected loginService: LoginService
+ protected loginService: LoginService,
+ protected webAuthnLoginService: WebAuthnLoginServiceAbstraction
) {
super(environmentService, i18nService, platformUtilsService);
}
@@ -86,6 +89,8 @@ export class LoginComponent extends CaptchaProtectedComponent implements OnInit,
}
async ngOnInit() {
+ this.showWebauthnLogin$ = this.webAuthnLoginService.enabled$;
+
this.route?.queryParams.pipe(takeUntil(this.destroy$)).subscribe((params) => {
if (!params) {
return;
diff --git a/libs/angular/src/auth/icons/create-passkey-failed.icon.ts b/libs/angular/src/auth/icons/create-passkey-failed.icon.ts
new file mode 100644
index 00000000000..39a2389c5a9
--- /dev/null
+++ b/libs/angular/src/auth/icons/create-passkey-failed.icon.ts
@@ -0,0 +1,28 @@
+import { svgIcon } from "@bitwarden/components";
+
+export const CreatePasskeyFailedIcon = svgIcon`
+
+`;
diff --git a/libs/angular/src/auth/icons/create-passkey.icon.ts b/libs/angular/src/auth/icons/create-passkey.icon.ts
new file mode 100644
index 00000000000..c0e984bbee2
--- /dev/null
+++ b/libs/angular/src/auth/icons/create-passkey.icon.ts
@@ -0,0 +1,26 @@
+import { svgIcon } from "@bitwarden/components";
+
+export const CreatePasskeyIcon = svgIcon`
+
+`;
diff --git a/libs/angular/src/services/jslib-services.module.ts b/libs/angular/src/services/jslib-services.module.ts
index 1cbb1526182..fedbf43391c 100644
--- a/libs/angular/src/services/jslib-services.module.ts
+++ b/libs/angular/src/services/jslib-services.module.ts
@@ -54,6 +54,9 @@ import { TokenService as TokenServiceAbstraction } from "@bitwarden/common/auth/
import { TwoFactorService as TwoFactorServiceAbstraction } from "@bitwarden/common/auth/abstractions/two-factor.service";
import { UserVerificationApiServiceAbstraction } from "@bitwarden/common/auth/abstractions/user-verification/user-verification-api.service.abstraction";
import { UserVerificationService as UserVerificationServiceAbstraction } from "@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction";
+import { WebAuthnLoginApiServiceAbstraction } from "@bitwarden/common/auth/abstractions/webauthn/webauthn-login-api.service.abstraction";
+import { WebAuthnLoginPrfCryptoServiceAbstraction } from "@bitwarden/common/auth/abstractions/webauthn/webauthn-login-prf-crypto.service.abstraction";
+import { WebAuthnLoginServiceAbstraction } from "@bitwarden/common/auth/abstractions/webauthn/webauthn-login.service.abstraction";
import { AccountApiServiceImplementation } from "@bitwarden/common/auth/services/account-api.service";
import { AccountServiceImplementation } from "@bitwarden/common/auth/services/account.service";
import { AuthRequestCryptoServiceImplementation } from "@bitwarden/common/auth/services/auth-request-crypto.service.implementation";
@@ -68,6 +71,9 @@ import { TokenService } from "@bitwarden/common/auth/services/token.service";
import { TwoFactorService } from "@bitwarden/common/auth/services/two-factor.service";
import { UserVerificationApiService } from "@bitwarden/common/auth/services/user-verification/user-verification-api.service";
import { UserVerificationService } from "@bitwarden/common/auth/services/user-verification/user-verification.service";
+import { WebAuthnLoginApiService } from "@bitwarden/common/auth/services/webauthn-login/webauthn-login-api.service";
+import { WebAuthnLoginPrfCryptoService } from "@bitwarden/common/auth/services/webauthn-login/webauthn-login-prf-crypto.service";
+import { WebAuthnLoginService } from "@bitwarden/common/auth/services/webauthn-login/webauthn-login.service";
import { AppIdService as AppIdServiceAbstraction } from "@bitwarden/common/platform/abstractions/app-id.service";
import { BroadcasterService as BroadcasterServiceAbstraction } from "@bitwarden/common/platform/abstractions/broadcaster.service";
import { ConfigApiServiceAbstraction } from "@bitwarden/common/platform/abstractions/config/config-api.service.abstraction";
@@ -752,6 +758,28 @@ import { AbstractThemingService } from "./theming/theming.service.abstraction";
useClass: AuthRequestCryptoServiceImplementation,
deps: [CryptoServiceAbstraction],
},
+ {
+ provide: WebAuthnLoginPrfCryptoServiceAbstraction,
+ useClass: WebAuthnLoginPrfCryptoService,
+ deps: [CryptoFunctionServiceAbstraction],
+ },
+ {
+ provide: WebAuthnLoginApiServiceAbstraction,
+ useClass: WebAuthnLoginApiService,
+ deps: [ApiServiceAbstraction, EnvironmentServiceAbstraction],
+ },
+ {
+ provide: WebAuthnLoginServiceAbstraction,
+ useClass: WebAuthnLoginService,
+ deps: [
+ WebAuthnLoginApiServiceAbstraction,
+ AuthServiceAbstraction,
+ ConfigServiceAbstraction,
+ WebAuthnLoginPrfCryptoServiceAbstraction,
+ WINDOW,
+ LogService,
+ ],
+ },
{
provide: GlobalStateProvider,
useClass: DefaultGlobalStateProvider,
diff --git a/libs/common/src/abstractions/api.service.ts b/libs/common/src/abstractions/api.service.ts
index 1a8ca440d2d..d8ce416fda2 100644
--- a/libs/common/src/abstractions/api.service.ts
+++ b/libs/common/src/abstractions/api.service.ts
@@ -38,6 +38,7 @@ import { EmailRequest } from "../auth/models/request/email.request";
import { PasswordTokenRequest } from "../auth/models/request/identity-token/password-token.request";
import { SsoTokenRequest } from "../auth/models/request/identity-token/sso-token.request";
import { UserApiTokenRequest } from "../auth/models/request/identity-token/user-api-token.request";
+import { WebAuthnLoginTokenRequest } from "../auth/models/request/identity-token/webauthn-login-token.request";
import { KeyConnectorUserKeyRequest } from "../auth/models/request/key-connector-user-key.request";
import { PasswordHintRequest } from "../auth/models/request/password-hint.request";
import { PasswordRequest } from "../auth/models/request/password.request";
@@ -144,7 +145,11 @@ export abstract class ApiService {
) => Promise;
postIdentityToken: (
- request: PasswordTokenRequest | SsoTokenRequest | UserApiTokenRequest
+ request:
+ | PasswordTokenRequest
+ | SsoTokenRequest
+ | UserApiTokenRequest
+ | WebAuthnLoginTokenRequest
) => Promise;
refreshIdentityToken: () => Promise;
diff --git a/libs/common/src/auth/abstractions/auth.service.ts b/libs/common/src/auth/abstractions/auth.service.ts
index 27107b708bc..58931c7509a 100644
--- a/libs/common/src/auth/abstractions/auth.service.ts
+++ b/libs/common/src/auth/abstractions/auth.service.ts
@@ -9,6 +9,7 @@ import {
PasswordLoginCredentials,
SsoLoginCredentials,
AuthRequestLoginCredentials,
+ WebAuthnLoginCredentials,
} from "../models/domain/login-credentials";
import { TokenTwoFactorRequest } from "../models/request/identity-token/token-two-factor.request";
import { AuthRequestResponse } from "../models/response/auth-request.response";
@@ -26,6 +27,7 @@ export abstract class AuthService {
| PasswordLoginCredentials
| SsoLoginCredentials
| AuthRequestLoginCredentials
+ | WebAuthnLoginCredentials
) => Promise;
logInTwoFactor: (
twoFactor: TokenTwoFactorRequest,
diff --git a/libs/common/src/auth/abstractions/webauthn/webauthn-login-api.service.abstraction.ts b/libs/common/src/auth/abstractions/webauthn/webauthn-login-api.service.abstraction.ts
new file mode 100644
index 00000000000..01845a2e3d8
--- /dev/null
+++ b/libs/common/src/auth/abstractions/webauthn/webauthn-login-api.service.abstraction.ts
@@ -0,0 +1,5 @@
+import { CredentialAssertionOptionsResponse } from "../../services/webauthn-login/response/credential-assertion-options.response";
+
+export class WebAuthnLoginApiServiceAbstraction {
+ getCredentialAssertionOptions: () => Promise;
+}
diff --git a/libs/common/src/auth/abstractions/webauthn/webauthn-login-prf-crypto.service.abstraction.ts b/libs/common/src/auth/abstractions/webauthn/webauthn-login-prf-crypto.service.abstraction.ts
new file mode 100644
index 00000000000..5ce58a06a92
--- /dev/null
+++ b/libs/common/src/auth/abstractions/webauthn/webauthn-login-prf-crypto.service.abstraction.ts
@@ -0,0 +1,17 @@
+import { PrfKey } from "../../../platform/models/domain/symmetric-crypto-key";
+
+/**
+ * Contains methods for all crypto operations specific to the WebAuthn login flow.
+ */
+export abstract class WebAuthnLoginPrfCryptoServiceAbstraction {
+ /**
+ * Get the salt used to generate the PRF-output used when logging in with WebAuthn.
+ */
+ getLoginWithPrfSalt: () => Promise;
+
+ /**
+ * Create a symmetric key from the PRF-output by stretching it.
+ * This should be used as `ExternalKey` with `RotateableKeySet`.
+ */
+ createSymmetricKeyFromPrf: (prf: ArrayBuffer) => Promise;
+}
diff --git a/libs/common/src/auth/abstractions/webauthn/webauthn-login.service.abstraction.ts b/libs/common/src/auth/abstractions/webauthn/webauthn-login.service.abstraction.ts
new file mode 100644
index 00000000000..529c2e2016a
--- /dev/null
+++ b/libs/common/src/auth/abstractions/webauthn/webauthn-login.service.abstraction.ts
@@ -0,0 +1,48 @@
+import { Observable } from "rxjs";
+
+import { AuthResult } from "../../models/domain/auth-result";
+import { WebAuthnLoginCredentialAssertionOptionsView } from "../../models/view/webauthn-login/webauthn-login-credential-assertion-options.view";
+import { WebAuthnLoginCredentialAssertionView } from "../../models/view/webauthn-login/webauthn-login-credential-assertion.view";
+
+/**
+ * Service for logging in with WebAuthnLogin credentials.
+ */
+export abstract class WebAuthnLoginServiceAbstraction {
+ /**
+ * An Observable that emits a boolean indicating whether the WebAuthn login feature is enabled.
+ */
+ readonly enabled$: Observable;
+
+ /**
+ * Gets the credential assertion options needed for initiating the WebAuthn
+ * authentication process. It should provide the challenge and other data
+ * (whether FIDO2 user verification is required, the relying party id, timeout duration for the process to complete, etc.)
+ * for the authenticator.
+ */
+ getCredentialAssertionOptions: () => Promise;
+
+ /**
+ * Asserts the credential. This involves user interaction with the authenticator
+ * to sign a challenge with a private key (proving ownership of the private key).
+ * This will trigger the browsers WebAuthn API to assert a credential. A PRF-output might
+ * be included in the response if the authenticator supports it.
+ *
+ * @param {WebAuthnLoginCredentialAssertionOptionsView} credentialAssertionOptions - The options provided by the
+ * `getCredentialAssertionOptions` method, including the challenge and other data.
+ * @returns {WebAuthnLoginCredentialAssertionView} The assertion obtained from the authenticator.
+ * If the assertion is not successfully obtained, it returns undefined.
+ */
+ assertCredential: (
+ credentialAssertionOptions: WebAuthnLoginCredentialAssertionOptionsView
+ ) => Promise;
+
+ /**
+ * Logs the user in using the assertion obtained from the authenticator.
+ * It completes the authentication process if the assertion is successfully validated server side:
+ * the server verifies the signed challenge with the corresponding public key.
+ *
+ * @param {WebAuthnLoginCredentialAssertionView} assertion - The assertion obtained from the authenticator
+ * that needs to be validated for login.
+ */
+ logIn: (assertion: WebAuthnLoginCredentialAssertionView) => Promise;
+}
diff --git a/libs/common/src/auth/enums/authentication-type.ts b/libs/common/src/auth/enums/authentication-type.ts
index 32751f40e56..23ca9ace76d 100644
--- a/libs/common/src/auth/enums/authentication-type.ts
+++ b/libs/common/src/auth/enums/authentication-type.ts
@@ -3,4 +3,5 @@ export enum AuthenticationType {
Sso = 1,
UserApi = 2,
AuthRequest = 3,
+ WebAuthn = 4,
}
diff --git a/libs/common/src/auth/login-strategies/login.strategy.ts b/libs/common/src/auth/login-strategies/login.strategy.ts
index fb328c865c5..74b2d9a7623 100644
--- a/libs/common/src/auth/login-strategies/login.strategy.ts
+++ b/libs/common/src/auth/login-strategies/login.strategy.ts
@@ -24,12 +24,14 @@ import {
PasswordLoginCredentials,
SsoLoginCredentials,
UserApiLoginCredentials,
+ WebAuthnLoginCredentials,
} from "../models/domain/login-credentials";
import { DeviceRequest } from "../models/request/identity-token/device.request";
import { PasswordTokenRequest } from "../models/request/identity-token/password-token.request";
import { SsoTokenRequest } from "../models/request/identity-token/sso-token.request";
import { TokenTwoFactorRequest } from "../models/request/identity-token/token-two-factor.request";
import { UserApiTokenRequest } from "../models/request/identity-token/user-api-token.request";
+import { WebAuthnLoginTokenRequest } from "../models/request/identity-token/webauthn-login-token.request";
import { IdentityCaptchaResponse } from "../models/response/identity-captcha.response";
import { IdentityTokenResponse } from "../models/response/identity-token.response";
import { IdentityTwoFactorResponse } from "../models/response/identity-two-factor.response";
@@ -37,7 +39,11 @@ import { IdentityTwoFactorResponse } from "../models/response/identity-two-facto
type IdentityResponse = IdentityTokenResponse | IdentityTwoFactorResponse | IdentityCaptchaResponse;
export abstract class LoginStrategy {
- protected abstract tokenRequest: UserApiTokenRequest | PasswordTokenRequest | SsoTokenRequest;
+ protected abstract tokenRequest:
+ | UserApiTokenRequest
+ | PasswordTokenRequest
+ | SsoTokenRequest
+ | WebAuthnLoginTokenRequest;
protected captchaBypassToken: string = null;
constructor(
@@ -58,6 +64,7 @@ export abstract class LoginStrategy {
| PasswordLoginCredentials
| SsoLoginCredentials
| AuthRequestLoginCredentials
+ | WebAuthnLoginCredentials
): Promise;
async logInTwoFactor(
diff --git a/libs/common/src/auth/login-strategies/webauthn-login.strategy.spec.ts b/libs/common/src/auth/login-strategies/webauthn-login.strategy.spec.ts
new file mode 100644
index 00000000000..83de3b5d6a3
--- /dev/null
+++ b/libs/common/src/auth/login-strategies/webauthn-login.strategy.spec.ts
@@ -0,0 +1,333 @@
+import { mock, MockProxy } from "jest-mock-extended";
+
+import { ApiService } from "../../abstractions/api.service";
+import { AppIdService } from "../../platform/abstractions/app-id.service";
+import { CryptoService } from "../../platform/abstractions/crypto.service";
+import { LogService } from "../../platform/abstractions/log.service";
+import { MessagingService } from "../../platform/abstractions/messaging.service";
+import { PlatformUtilsService } from "../../platform/abstractions/platform-utils.service";
+import { StateService } from "../../platform/abstractions/state.service";
+import { Utils } from "../../platform/misc/utils";
+import {
+ PrfKey,
+ SymmetricCryptoKey,
+ UserKey,
+} from "../../platform/models/domain/symmetric-crypto-key";
+import { TokenService } from "../abstractions/token.service";
+import { TwoFactorService } from "../abstractions/two-factor.service";
+import { AuthResult } from "../models/domain/auth-result";
+import { WebAuthnLoginCredentials } from "../models/domain/login-credentials";
+import { IdentityTokenResponse } from "../models/response/identity-token.response";
+import { IUserDecryptionOptionsServerResponse } from "../models/response/user-decryption-options/user-decryption-options.response";
+import { WebAuthnLoginAssertionResponseRequest } from "../services/webauthn-login/request/webauthn-login-assertion-response.request";
+
+import { identityTokenResponseFactory } from "./login.strategy.spec";
+import { WebAuthnLoginStrategy } from "./webauthn-login.strategy";
+
+describe("WebAuthnLoginStrategy", () => {
+ let cryptoService!: MockProxy;
+ let apiService!: MockProxy;
+ let tokenService!: MockProxy;
+ let appIdService!: MockProxy;
+ let platformUtilsService!: MockProxy;
+ let messagingService!: MockProxy;
+ let logService!: MockProxy;
+ let stateService!: MockProxy;
+ let twoFactorService!: MockProxy;
+
+ let webAuthnLoginStrategy!: WebAuthnLoginStrategy;
+
+ const token = "mockToken";
+ const deviceId = Utils.newGuid();
+
+ let webAuthnCredentials!: WebAuthnLoginCredentials;
+
+ let originalPublicKeyCredential!: PublicKeyCredential | any;
+ let originalAuthenticatorAssertionResponse!: AuthenticatorAssertionResponse | any;
+
+ beforeAll(() => {
+ // Save off the original classes so we can restore them after all tests are done if they exist
+ originalPublicKeyCredential = global.PublicKeyCredential;
+ originalAuthenticatorAssertionResponse = global.AuthenticatorAssertionResponse;
+
+ // We must do this to make the mocked classes available for all the
+ // assertCredential(...) tests.
+ global.PublicKeyCredential = MockPublicKeyCredential;
+ global.AuthenticatorAssertionResponse = MockAuthenticatorAssertionResponse;
+ });
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+
+ cryptoService = mock();
+ apiService = mock();
+ tokenService = mock();
+ appIdService = mock();
+ platformUtilsService = mock();
+ messagingService = mock();
+ logService = mock();
+ stateService = mock();
+ twoFactorService = mock();
+
+ tokenService.getTwoFactorToken.mockResolvedValue(null);
+ appIdService.getAppId.mockResolvedValue(deviceId);
+ tokenService.decodeToken.mockResolvedValue({});
+
+ webAuthnLoginStrategy = new WebAuthnLoginStrategy(
+ cryptoService,
+ apiService,
+ tokenService,
+ appIdService,
+ platformUtilsService,
+ messagingService,
+ logService,
+ stateService,
+ twoFactorService
+ );
+
+ // Create credentials
+ const publicKeyCredential = new MockPublicKeyCredential();
+ const deviceResponse = new WebAuthnLoginAssertionResponseRequest(publicKeyCredential);
+ const prfKey = new SymmetricCryptoKey(randomBytes(32)) as PrfKey;
+ webAuthnCredentials = new WebAuthnLoginCredentials(token, deviceResponse, prfKey);
+ });
+
+ afterAll(() => {
+ // Restore global after all tests are done
+ global.PublicKeyCredential = originalPublicKeyCredential;
+ global.AuthenticatorAssertionResponse = originalAuthenticatorAssertionResponse;
+ });
+
+ const mockEncPrfPrivateKey =
+ "2.eh465OrUcluL9UpnCOUTAg==|2HXNXwrLwAjUfZ/U75c92rZEltt1eHxjMkp/ADAmx346oT1+GaQvaL1QIV/9Om0T72m8AnlO92iUfWdhbA/ifHZ+lhFoUVeyw1M88CMzktbVcq42rFoK7SGHSAGdTL3ccUWKI8yCCQJhpt2X6a/5+T7ey5k2CqvylKyOtkiCnVeLmYqETn5BM9Rl3tEgJW1yDLuSJ+L+Qh9xnk/Z3zJUV5HAs+YwjKwuSNrd00SXjDyx8rBEstD9MKI+lrk7to/q90vqKqCucAj/dzUpVtHe88al2AAlBVwQ13HUPdNFOyti6niUgCAWx+DzRqlhkFvl/z/rtxtQsyqq/3Eh/EL54ylxKzAya0ev9EaIOm/dD1aBmI58p4Bs0eMOCIKJjtw+Cmdql+RhCtKtumgFShqyXv+LfD/FgUsdTVNExk3YNhgwPR4jOaMa/j9LCrBMCLKxdAhQyBe7T3qoX1fBBirvY6t77ifMu1YEQ6DfmFphVSwDH5C9xGeTSh5IELSf0tGVtlWUe9RffDDzccD0L1lR8U+dqzoSTYCuXvhEhQptdIW6fpH/47u0M5MiI97/d35A7Et2I1gjHp7WF3qsY20ellBueu7ZL5P1BmqPXl58yaBBXJaCutYHDfIucspqdZmfBGEbdRT4wmuZRON0J8zLmUejM0VR/2MOmpfyYQXnJhTfrvnZ1bOg1aMhUxJ2vhDNPXUFm5b+vwsho4GEvcLAKq9WwbvOJ/sK7sEVfTfEO2IG+0X6wkWm7RpR6Wq9FGKSrv2PSjMAYnb+z3ETeWiaaiD+tVFxa2AaqsbOuX092/86GySpHES7cFWhQ/YMOgj6egUi8mEC0CqMXYsx0TTJDsn16oP+XB3a2WoRqzE0YBozp2aMXxhVf/jMZ03BmEmRQu5B+Sq1gMEZwtIfJ+srkZLMYlLjvVw92FRoFy+N6ytPiyf6RMHMUnJ3vEZSBogaElYoQAtFJ5kK811CUzb78zEHH8xWtPrCZn9zZfvf/zaWxo7fpV8VwAwUeHXHcQMraZum5QeO+5tLRUYrLm85JNelGfmUA3BjfNyFbfb32PhkWWd0CbDaPME48uIriVK32pNEtvtR/+I/f3YgA/jP9kSlDvbzG/OAg/AFBIpNwKUzsu4+va8mI+O5FDufw5D74WwdGJ9DeyEb2CHtWMR1VwtFKL0ZZsqltNf8EkBeJ5RtTNtAMM8ie4dDZaKC96ymQHKrdB4hjkAr0F1XFsU4XdOa9Nbkdcm/7KoNc6bE6oJtG9lqE8h+1CysfcbfJ7am+hvDFzT0IPmp3GDSMAk+e6xySgFQw0C/SZ7LQsxPa1s6hc+BOtTn0oClZnU7Mowxv+z+xURJj4Yp3Cy6tAoia1jEQSs6lSMNKPf9bi3xFKtPl4143hwhpvTAzJUcski9OVGd7Du+VyxwIrvLqp5Ct/oNrESVJpf1EDCs9xT1EW+PiSkRmHXoZ1t5MOLFEiMAZL2+bNe3A2661oJeMtps8zrfCVc251OUE1WvqWePlTOs5TDVqdwDH88J6rHLsbaf33Mxh5DP8gMfZQxE44Nsp6H0/Szfkss5UmFwBEpHjl1GJMWDnB3u2d+l1CSkLoB6C+diAUlY6wL/VwJBeMPHZTf6amQIS2B/lo/CnvV/E3k=|uuoY4b7xwMYBNIZi85KBsaHmNqtJl5FrKxZI9ugeNwc=";
+
+ const mockEncUserKey =
+ "4.Xht6K9GA9jKcSNy4TaIvdj7f9+WsgQycs/HdkrJi33aC//roKkjf3UTGpdzFLxVP3WhyOVGyo9f2Jymf1MFPdpg7AuMnpGJlcrWLDbnPjOJo4x5gUwwBUmy3nFw6+wamyS1LRmrBPcv56yKpf80k5Q3hUrum8q9YS9m2I10vklX/TaB1YML0yo+K1feWUxg8vIx+vloxhUdkkysvcV5xU3R+AgYLrwvJS8TLL7Ug/P5HxinCaIroRrNe8xcv84vyVnzPFdXe0cfZ0cpcrm586LwfEXP2seeldO/bC51Uk/mudeSALJURPC64f5ch2cOvk48GOTapGnssCqr6ky5yFw==";
+
+ const userDecryptionOptsServerResponseWithWebAuthnPrfOption: IUserDecryptionOptionsServerResponse =
+ {
+ HasMasterPassword: true,
+ WebAuthnPrfOption: {
+ EncryptedPrivateKey: mockEncPrfPrivateKey,
+ EncryptedUserKey: mockEncUserKey,
+ },
+ };
+
+ const mockIdTokenResponseWithModifiedWebAuthnPrfOption = (key: string, value: any) => {
+ const userDecryptionOpts: IUserDecryptionOptionsServerResponse = {
+ ...userDecryptionOptsServerResponseWithWebAuthnPrfOption,
+ WebAuthnPrfOption: {
+ ...userDecryptionOptsServerResponseWithWebAuthnPrfOption.WebAuthnPrfOption,
+ [key]: value,
+ },
+ };
+ return identityTokenResponseFactory(null, userDecryptionOpts);
+ };
+
+ it("returns successful authResult when api service returns valid credentials", async () => {
+ // Arrange
+ const idTokenResponse: IdentityTokenResponse = identityTokenResponseFactory(
+ null,
+ userDecryptionOptsServerResponseWithWebAuthnPrfOption
+ );
+
+ apiService.postIdentityToken.mockResolvedValue(idTokenResponse);
+
+ // Act
+ const authResult = await webAuthnLoginStrategy.logIn(webAuthnCredentials);
+
+ // Assert
+ expect(apiService.postIdentityToken).toHaveBeenCalledWith(
+ expect.objectContaining({
+ // webauthn specific info
+ token: webAuthnCredentials.token,
+ deviceResponse: webAuthnCredentials.deviceResponse,
+ // standard info
+ device: expect.objectContaining({
+ identifier: deviceId,
+ }),
+ })
+ );
+
+ expect(authResult).toBeInstanceOf(AuthResult);
+ expect(authResult).toMatchObject({
+ captchaSiteKey: "",
+ forcePasswordReset: 0,
+ resetMasterPassword: false,
+ twoFactorProviders: null,
+ requiresTwoFactor: false,
+ requiresCaptcha: false,
+ });
+ });
+
+ it("decrypts and sets user key when webAuthn PRF decryption option exists with valid PRF key and enc key data", async () => {
+ // Arrange
+ const idTokenResponse: IdentityTokenResponse = identityTokenResponseFactory(
+ null,
+ userDecryptionOptsServerResponseWithWebAuthnPrfOption
+ );
+
+ apiService.postIdentityToken.mockResolvedValue(idTokenResponse);
+
+ const mockPrfPrivateKey: Uint8Array = randomBytes(32);
+ const mockUserKeyArray: Uint8Array = randomBytes(32);
+ const mockUserKey = new SymmetricCryptoKey(mockUserKeyArray) as UserKey;
+
+ cryptoService.decryptToBytes.mockResolvedValue(mockPrfPrivateKey);
+ cryptoService.rsaDecrypt.mockResolvedValue(mockUserKeyArray);
+
+ // Act
+ await webAuthnLoginStrategy.logIn(webAuthnCredentials);
+
+ // // Assert
+ expect(cryptoService.decryptToBytes).toHaveBeenCalledTimes(1);
+ expect(cryptoService.decryptToBytes).toHaveBeenCalledWith(
+ idTokenResponse.userDecryptionOptions.webAuthnPrfOption.encryptedPrivateKey,
+ webAuthnCredentials.prfKey
+ );
+ expect(cryptoService.rsaDecrypt).toHaveBeenCalledTimes(1);
+ expect(cryptoService.rsaDecrypt).toHaveBeenCalledWith(
+ idTokenResponse.userDecryptionOptions.webAuthnPrfOption.encryptedUserKey.encryptedString,
+ mockPrfPrivateKey
+ );
+ expect(cryptoService.setUserKey).toHaveBeenCalledWith(mockUserKey);
+ expect(cryptoService.setPrivateKey).toHaveBeenCalledWith(idTokenResponse.privateKey);
+
+ // Master key and private key should not be set
+ expect(cryptoService.setMasterKey).not.toHaveBeenCalled();
+ });
+
+ it("does not try to set the user key when prfKey is missing", async () => {
+ // Arrange
+ const idTokenResponse: IdentityTokenResponse = identityTokenResponseFactory(
+ null,
+ userDecryptionOptsServerResponseWithWebAuthnPrfOption
+ );
+
+ apiService.postIdentityToken.mockResolvedValue(idTokenResponse);
+
+ // Remove PRF key
+ webAuthnCredentials.prfKey = null;
+
+ // Act
+ await webAuthnLoginStrategy.logIn(webAuthnCredentials);
+
+ // Assert
+ expect(cryptoService.decryptToBytes).not.toHaveBeenCalled();
+ expect(cryptoService.rsaDecrypt).not.toHaveBeenCalled();
+ expect(cryptoService.setUserKey).not.toHaveBeenCalled();
+ });
+
+ describe.each([
+ {
+ valueName: "encPrfPrivateKey",
+ },
+ {
+ valueName: "encUserKey",
+ },
+ ])("given webAuthn PRF decryption option has missing encrypted key data", ({ valueName }) => {
+ it(`does not set the user key when ${valueName} is missing`, async () => {
+ // Arrange
+ const idTokenResponse = mockIdTokenResponseWithModifiedWebAuthnPrfOption(valueName, null);
+ apiService.postIdentityToken.mockResolvedValue(idTokenResponse);
+
+ // Act
+ await webAuthnLoginStrategy.logIn(webAuthnCredentials);
+
+ // Assert
+ expect(cryptoService.setUserKey).not.toHaveBeenCalled();
+ });
+ });
+
+ it("does not set the user key when the PRF encrypted private key decryption fails", async () => {
+ // Arrange
+ const idTokenResponse: IdentityTokenResponse = identityTokenResponseFactory(
+ null,
+ userDecryptionOptsServerResponseWithWebAuthnPrfOption
+ );
+
+ apiService.postIdentityToken.mockResolvedValue(idTokenResponse);
+
+ cryptoService.decryptToBytes.mockResolvedValue(null);
+
+ // Act
+ await webAuthnLoginStrategy.logIn(webAuthnCredentials);
+
+ // Assert
+ expect(cryptoService.setUserKey).not.toHaveBeenCalled();
+ });
+
+ it("does not set the user key when the encrypted user key decryption fails", async () => {
+ // Arrange
+ const idTokenResponse: IdentityTokenResponse = identityTokenResponseFactory(
+ null,
+ userDecryptionOptsServerResponseWithWebAuthnPrfOption
+ );
+
+ apiService.postIdentityToken.mockResolvedValue(idTokenResponse);
+
+ cryptoService.rsaDecrypt.mockResolvedValue(null);
+
+ // Act
+ await webAuthnLoginStrategy.logIn(webAuthnCredentials);
+
+ // Assert
+ expect(cryptoService.setUserKey).not.toHaveBeenCalled();
+ });
+});
+
+// Helpers and mocks
+function randomBytes(length: number): Uint8Array {
+ return new Uint8Array(Array.from({ length }, (_, k) => k % 255));
+}
+
+// AuthenticatorAssertionResponse && PublicKeyCredential are only available in secure contexts
+// so we need to mock them and assign them to the global object to make them available
+// for the tests
+class MockAuthenticatorAssertionResponse implements AuthenticatorAssertionResponse {
+ clientDataJSON: ArrayBuffer = randomBytes(32).buffer;
+ authenticatorData: ArrayBuffer = randomBytes(196).buffer;
+ signature: ArrayBuffer = randomBytes(72).buffer;
+ userHandle: ArrayBuffer = randomBytes(16).buffer;
+
+ clientDataJSONB64Str = Utils.fromBufferToUrlB64(this.clientDataJSON);
+ authenticatorDataB64Str = Utils.fromBufferToUrlB64(this.authenticatorData);
+ signatureB64Str = Utils.fromBufferToUrlB64(this.signature);
+ userHandleB64Str = Utils.fromBufferToUrlB64(this.userHandle);
+}
+
+class MockPublicKeyCredential implements PublicKeyCredential {
+ authenticatorAttachment = "cross-platform";
+ id = "mockCredentialId";
+ type = "public-key";
+ rawId: ArrayBuffer = randomBytes(32).buffer;
+ rawIdB64Str = Utils.fromBufferToB64(this.rawId);
+
+ response: MockAuthenticatorAssertionResponse = new MockAuthenticatorAssertionResponse();
+
+ // Use random 64 character hex string (32 bytes - matters for symmetric key creation)
+ // to represent the prf key binary data and convert to ArrayBuffer
+ // Creating the array buffer from a known hex value allows us to
+ // assert on the value in tests
+ private prfKeyArrayBuffer: ArrayBuffer = Utils.hexStringToArrayBuffer(
+ "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
+ );
+
+ getClientExtensionResults(): any {
+ return {
+ prf: {
+ results: {
+ first: this.prfKeyArrayBuffer,
+ },
+ },
+ };
+ }
+
+ static isConditionalMediationAvailable(): Promise {
+ return Promise.resolve(false);
+ }
+
+ static isUserVerifyingPlatformAuthenticatorAvailable(): Promise {
+ return Promise.resolve(false);
+ }
+}
diff --git a/libs/common/src/auth/login-strategies/webauthn-login.strategy.ts b/libs/common/src/auth/login-strategies/webauthn-login.strategy.ts
new file mode 100644
index 00000000000..8d47be0197c
--- /dev/null
+++ b/libs/common/src/auth/login-strategies/webauthn-login.strategy.ts
@@ -0,0 +1,68 @@
+import { SymmetricCryptoKey, UserKey } from "../../platform/models/domain/symmetric-crypto-key";
+import { AuthResult } from "../models/domain/auth-result";
+import { WebAuthnLoginCredentials } from "../models/domain/login-credentials";
+import { WebAuthnLoginTokenRequest } from "../models/request/identity-token/webauthn-login-token.request";
+import { IdentityTokenResponse } from "../models/response/identity-token.response";
+
+import { LoginStrategy } from "./login.strategy";
+
+export class WebAuthnLoginStrategy extends LoginStrategy {
+ tokenRequest: WebAuthnLoginTokenRequest;
+ private credentials: WebAuthnLoginCredentials;
+
+ protected override async setMasterKey() {
+ return Promise.resolve();
+ }
+
+ protected override async setUserKey(idTokenResponse: IdentityTokenResponse) {
+ const userDecryptionOptions = idTokenResponse?.userDecryptionOptions;
+
+ if (userDecryptionOptions?.webAuthnPrfOption) {
+ const webAuthnPrfOption = idTokenResponse.userDecryptionOptions?.webAuthnPrfOption;
+
+ // confirm we still have the prf key
+ if (!this.credentials.prfKey) {
+ return;
+ }
+
+ // decrypt prf encrypted private key
+ const privateKey = await this.cryptoService.decryptToBytes(
+ webAuthnPrfOption.encryptedPrivateKey,
+ this.credentials.prfKey
+ );
+
+ // decrypt user key with private key
+ const userKey = await this.cryptoService.rsaDecrypt(
+ webAuthnPrfOption.encryptedUserKey.encryptedString,
+ privateKey
+ );
+
+ if (userKey) {
+ await this.cryptoService.setUserKey(new SymmetricCryptoKey(userKey) as UserKey);
+ }
+ }
+ }
+
+ protected override async setPrivateKey(response: IdentityTokenResponse): Promise {
+ await this.cryptoService.setPrivateKey(
+ response.privateKey ?? (await this.createKeyPairForOldAccount())
+ );
+ }
+
+ async logInTwoFactor(): Promise {
+ throw new Error("2FA not supported yet for WebAuthn Login.");
+ }
+
+ async logIn(credentials: WebAuthnLoginCredentials) {
+ this.credentials = credentials;
+
+ this.tokenRequest = new WebAuthnLoginTokenRequest(
+ credentials.token,
+ credentials.deviceResponse,
+ await this.buildDeviceRequest()
+ );
+
+ const [authResult] = await this.startLogIn();
+ return authResult;
+ }
+}
diff --git a/libs/common/src/auth/models/domain/login-credentials.ts b/libs/common/src/auth/models/domain/login-credentials.ts
index a2a7016442e..2e3e4916d0c 100644
--- a/libs/common/src/auth/models/domain/login-credentials.ts
+++ b/libs/common/src/auth/models/domain/login-credentials.ts
@@ -1,5 +1,10 @@
-import { MasterKey, UserKey } from "../../../platform/models/domain/symmetric-crypto-key";
+import {
+ MasterKey,
+ UserKey,
+ SymmetricCryptoKey,
+} from "../../../platform/models/domain/symmetric-crypto-key";
import { AuthenticationType } from "../../enums/authentication-type";
+import { WebAuthnLoginAssertionResponseRequest } from "../../services/webauthn-login/request/webauthn-login-assertion-response.request";
import { TokenTwoFactorRequest } from "../request/identity-token/token-two-factor.request";
export class PasswordLoginCredentials {
@@ -44,3 +49,13 @@ export class AuthRequestLoginCredentials {
public twoFactor?: TokenTwoFactorRequest
) {}
}
+
+export class WebAuthnLoginCredentials {
+ readonly type = AuthenticationType.WebAuthn;
+
+ constructor(
+ public token: string,
+ public deviceResponse: WebAuthnLoginAssertionResponseRequest,
+ public prfKey?: SymmetricCryptoKey
+ ) {}
+}
diff --git a/libs/common/src/auth/models/request/identity-token/token.request.ts b/libs/common/src/auth/models/request/identity-token/token.request.ts
index 5195eedbdff..653f7fe5c3b 100644
--- a/libs/common/src/auth/models/request/identity-token/token.request.ts
+++ b/libs/common/src/auth/models/request/identity-token/token.request.ts
@@ -5,7 +5,7 @@ export abstract class TokenRequest {
protected device?: DeviceRequest;
protected authRequest: string;
- constructor(protected twoFactor: TokenTwoFactorRequest, device?: DeviceRequest) {
+ constructor(protected twoFactor?: TokenTwoFactorRequest, device?: DeviceRequest) {
this.device = device != null ? device : null;
}
@@ -14,7 +14,7 @@ export abstract class TokenRequest {
// Implemented in subclass if required
}
- setTwoFactor(twoFactor: TokenTwoFactorRequest) {
+ setTwoFactor(twoFactor: TokenTwoFactorRequest | undefined) {
this.twoFactor = twoFactor;
}
diff --git a/libs/common/src/auth/models/request/identity-token/webauthn-login-token.request.ts b/libs/common/src/auth/models/request/identity-token/webauthn-login-token.request.ts
new file mode 100644
index 00000000000..75c6cf4c27c
--- /dev/null
+++ b/libs/common/src/auth/models/request/identity-token/webauthn-login-token.request.ts
@@ -0,0 +1,25 @@
+import { WebAuthnLoginAssertionResponseRequest } from "../../../services/webauthn-login/request/webauthn-login-assertion-response.request";
+
+import { DeviceRequest } from "./device.request";
+import { TokenRequest } from "./token.request";
+
+export class WebAuthnLoginTokenRequest extends TokenRequest {
+ constructor(
+ public token: string,
+ public deviceResponse: WebAuthnLoginAssertionResponseRequest,
+ device?: DeviceRequest
+ ) {
+ super(undefined, device);
+ }
+
+ toIdentityToken(clientId: string) {
+ const obj = super.toIdentityToken(clientId);
+
+ obj.grant_type = "webauthn";
+ obj.token = this.token;
+ // must be a string b/c sending as form encoded data
+ obj.deviceResponse = JSON.stringify(this.deviceResponse);
+
+ return obj;
+ }
+}
diff --git a/libs/common/src/auth/models/response/user-decryption-options/user-decryption-options.response.ts b/libs/common/src/auth/models/response/user-decryption-options/user-decryption-options.response.ts
index fcf1f49ace6..466b3cca70b 100644
--- a/libs/common/src/auth/models/response/user-decryption-options/user-decryption-options.response.ts
+++ b/libs/common/src/auth/models/response/user-decryption-options/user-decryption-options.response.ts
@@ -8,17 +8,23 @@ import {
ITrustedDeviceUserDecryptionOptionServerResponse,
TrustedDeviceUserDecryptionOptionResponse,
} from "./trusted-device-user-decryption-option.response";
+import {
+ IWebAuthnPrfDecryptionOptionServerResponse,
+ WebAuthnPrfDecryptionOptionResponse,
+} from "./webauthn-prf-decryption-option.response";
export interface IUserDecryptionOptionsServerResponse {
HasMasterPassword: boolean;
TrustedDeviceOption?: ITrustedDeviceUserDecryptionOptionServerResponse;
KeyConnectorOption?: IKeyConnectorUserDecryptionOptionServerResponse;
+ WebAuthnPrfOption?: IWebAuthnPrfDecryptionOptionServerResponse;
}
export class UserDecryptionOptionsResponse extends BaseResponse {
hasMasterPassword: boolean;
trustedDeviceOption?: TrustedDeviceUserDecryptionOptionResponse;
keyConnectorOption?: KeyConnectorUserDecryptionOptionResponse;
+ webAuthnPrfOption?: WebAuthnPrfDecryptionOptionResponse;
constructor(response: IUserDecryptionOptionsServerResponse) {
super(response);
@@ -35,5 +41,10 @@ export class UserDecryptionOptionsResponse extends BaseResponse {
this.getResponseProperty("KeyConnectorOption")
);
}
+ if (response.WebAuthnPrfOption) {
+ this.webAuthnPrfOption = new WebAuthnPrfDecryptionOptionResponse(
+ this.getResponseProperty("WebAuthnPrfOption")
+ );
+ }
}
}
diff --git a/libs/common/src/auth/models/response/user-decryption-options/webauthn-prf-decryption-option.response.ts b/libs/common/src/auth/models/response/user-decryption-options/webauthn-prf-decryption-option.response.ts
new file mode 100644
index 00000000000..777b3dffc43
--- /dev/null
+++ b/libs/common/src/auth/models/response/user-decryption-options/webauthn-prf-decryption-option.response.ts
@@ -0,0 +1,22 @@
+import { BaseResponse } from "../../../../models/response/base.response";
+import { EncString } from "../../../../platform/models/domain/enc-string";
+
+export interface IWebAuthnPrfDecryptionOptionServerResponse {
+ EncryptedPrivateKey: string;
+ EncryptedUserKey: string;
+}
+
+export class WebAuthnPrfDecryptionOptionResponse extends BaseResponse {
+ encryptedPrivateKey: EncString;
+ encryptedUserKey: EncString;
+
+ constructor(response: IWebAuthnPrfDecryptionOptionServerResponse) {
+ super(response);
+ if (response.EncryptedPrivateKey) {
+ this.encryptedPrivateKey = new EncString(this.getResponseProperty("EncryptedPrivateKey"));
+ }
+ if (response.EncryptedUserKey) {
+ this.encryptedUserKey = new EncString(this.getResponseProperty("EncryptedUserKey"));
+ }
+ }
+}
diff --git a/libs/common/src/auth/models/view/webauthn-login/webauthn-login-credential-assertion-options.view.ts b/libs/common/src/auth/models/view/webauthn-login/webauthn-login-credential-assertion-options.view.ts
new file mode 100644
index 00000000000..4b49e979b10
--- /dev/null
+++ b/libs/common/src/auth/models/view/webauthn-login/webauthn-login-credential-assertion-options.view.ts
@@ -0,0 +1,5 @@
+import { AssertionOptionsResponse } from "../../../services/webauthn-login/response/assertion-options.response";
+
+export class WebAuthnLoginCredentialAssertionOptionsView {
+ constructor(readonly options: AssertionOptionsResponse, readonly token: string) {}
+}
diff --git a/libs/common/src/auth/models/view/webauthn-login/webauthn-login-credential-assertion.view.ts b/libs/common/src/auth/models/view/webauthn-login/webauthn-login-credential-assertion.view.ts
new file mode 100644
index 00000000000..bb36a62e5fe
--- /dev/null
+++ b/libs/common/src/auth/models/view/webauthn-login/webauthn-login-credential-assertion.view.ts
@@ -0,0 +1,10 @@
+import { PrfKey } from "../../../../platform/models/domain/symmetric-crypto-key";
+import { WebAuthnLoginAssertionResponseRequest } from "../../../services/webauthn-login/request/webauthn-login-assertion-response.request";
+
+export class WebAuthnLoginCredentialAssertionView {
+ constructor(
+ readonly token: string,
+ readonly deviceResponse: WebAuthnLoginAssertionResponseRequest,
+ readonly prfKey?: PrfKey
+ ) {}
+}
diff --git a/libs/common/src/auth/services/auth.service.ts b/libs/common/src/auth/services/auth.service.ts
index 2e4862b4091..1c5f066d3a7 100644
--- a/libs/common/src/auth/services/auth.service.ts
+++ b/libs/common/src/auth/services/auth.service.ts
@@ -30,6 +30,7 @@ import { AuthRequestLoginStrategy } from "../login-strategies/auth-request-login
import { PasswordLoginStrategy } from "../login-strategies/password-login.strategy";
import { SsoLoginStrategy } from "../login-strategies/sso-login.strategy";
import { UserApiLoginStrategy } from "../login-strategies/user-api-login.strategy";
+import { WebAuthnLoginStrategy } from "../login-strategies/webauthn-login.strategy";
import { AuthResult } from "../models/domain/auth-result";
import { KdfConfig } from "../models/domain/kdf-config";
import {
@@ -37,6 +38,7 @@ import {
PasswordLoginCredentials,
SsoLoginCredentials,
UserApiLoginCredentials,
+ WebAuthnLoginCredentials,
} from "../models/domain/login-credentials";
import { TokenTwoFactorRequest } from "../models/request/identity-token/token-two-factor.request";
import { PasswordlessAuthRequest } from "../models/request/passwordless-auth.request";
@@ -85,7 +87,8 @@ export class AuthService implements AuthServiceAbstraction {
| UserApiLoginStrategy
| PasswordLoginStrategy
| SsoLoginStrategy
- | AuthRequestLoginStrategy;
+ | AuthRequestLoginStrategy
+ | WebAuthnLoginStrategy;
private sessionTimeout: any;
private pushNotificationSubject = new Subject();
@@ -116,6 +119,7 @@ export class AuthService implements AuthServiceAbstraction {
| PasswordLoginCredentials
| SsoLoginCredentials
| AuthRequestLoginCredentials
+ | WebAuthnLoginCredentials
): Promise {
this.clearState();
@@ -123,7 +127,8 @@ export class AuthService implements AuthServiceAbstraction {
| UserApiLoginStrategy
| PasswordLoginStrategy
| SsoLoginStrategy
- | AuthRequestLoginStrategy;
+ | AuthRequestLoginStrategy
+ | WebAuthnLoginStrategy;
switch (credentials.type) {
case AuthenticationType.Password:
@@ -188,6 +193,19 @@ export class AuthService implements AuthServiceAbstraction {
this.deviceTrustCryptoService
);
break;
+ case AuthenticationType.WebAuthn:
+ strategy = new WebAuthnLoginStrategy(
+ this.cryptoService,
+ this.apiService,
+ this.tokenService,
+ this.appIdService,
+ this.platformUtilsService,
+ this.messagingService,
+ this.logService,
+ this.stateService,
+ this.twoFactorService
+ );
+ break;
}
const result = await strategy.logIn(credentials as any);
@@ -353,6 +371,7 @@ export class AuthService implements AuthServiceAbstraction {
| PasswordLoginStrategy
| SsoLoginStrategy
| AuthRequestLoginStrategy
+ | WebAuthnLoginStrategy
) {
this.logInStrategy = strategy;
this.startSessionTimeout();
diff --git a/libs/common/src/auth/services/webauthn-login/request/webauthn-login-assertion-response.request.ts b/libs/common/src/auth/services/webauthn-login/request/webauthn-login-assertion-response.request.ts
new file mode 100644
index 00000000000..2f7eddb2d6d
--- /dev/null
+++ b/libs/common/src/auth/services/webauthn-login/request/webauthn-login-assertion-response.request.ts
@@ -0,0 +1,30 @@
+import { Utils } from "../../../../platform/misc/utils";
+
+import { WebAuthnLoginResponseRequest } from "./webauthn-login-response.request";
+
+// base 64 strings
+export interface WebAuthnLoginAssertionResponseData {
+ authenticatorData: string;
+ signature: string;
+ clientDataJSON: string;
+ userHandle: string;
+}
+
+export class WebAuthnLoginAssertionResponseRequest extends WebAuthnLoginResponseRequest {
+ response: WebAuthnLoginAssertionResponseData;
+
+ constructor(credential: PublicKeyCredential) {
+ super(credential);
+
+ if (!(credential.response instanceof AuthenticatorAssertionResponse)) {
+ throw new Error("Invalid authenticator response");
+ }
+
+ this.response = {
+ authenticatorData: Utils.fromBufferToUrlB64(credential.response.authenticatorData),
+ signature: Utils.fromBufferToUrlB64(credential.response.signature),
+ clientDataJSON: Utils.fromBufferToUrlB64(credential.response.clientDataJSON),
+ userHandle: Utils.fromBufferToUrlB64(credential.response.userHandle),
+ };
+ }
+}
diff --git a/libs/common/src/auth/services/webauthn-login/request/webauthn-login-response.request.ts b/libs/common/src/auth/services/webauthn-login/request/webauthn-login-response.request.ts
new file mode 100644
index 00000000000..4b1eff4d471
--- /dev/null
+++ b/libs/common/src/auth/services/webauthn-login/request/webauthn-login-response.request.ts
@@ -0,0 +1,19 @@
+import { Utils } from "../../../../platform/misc/utils";
+
+export abstract class WebAuthnLoginResponseRequest {
+ id: string;
+ rawId: string;
+ type: string;
+ extensions: Record;
+
+ constructor(credential: PublicKeyCredential) {
+ this.id = credential.id;
+ this.rawId = Utils.fromBufferToUrlB64(credential.rawId);
+ this.type = credential.type;
+
+ // WARNING: do not add PRF information here by mapping
+ // credential.getClientExtensionResults() into the extensions property,
+ // as it will be sent to the server (leaking credentials).
+ this.extensions = {}; // Extensions are handled client-side
+ }
+}
diff --git a/libs/common/src/auth/services/webauthn-login/response/assertion-options.response.ts b/libs/common/src/auth/services/webauthn-login/response/assertion-options.response.ts
new file mode 100644
index 00000000000..b7ac7354f27
--- /dev/null
+++ b/libs/common/src/auth/services/webauthn-login/response/assertion-options.response.ts
@@ -0,0 +1,28 @@
+import { BaseResponse } from "../../../../models/response/base.response";
+import { Utils } from "../../../../platform/misc/utils";
+
+export class AssertionOptionsResponse
+ extends BaseResponse
+ implements PublicKeyCredentialRequestOptions
+{
+ /** A list of credentials that the authenticator is allowed to use; only used for non-discoverable flow */
+ allowCredentials?: PublicKeyCredentialDescriptor[];
+ challenge: BufferSource;
+ extensions?: AuthenticationExtensionsClientInputs;
+ rpId?: string;
+ timeout?: number;
+ userVerification?: UserVerificationRequirement;
+
+ constructor(response: unknown) {
+ super(response);
+ this.allowCredentials = this.getResponseProperty("allowCredentials")?.map((c: any) => ({
+ ...c,
+ id: Utils.fromUrlB64ToArray(c.id).buffer,
+ }));
+ this.challenge = Utils.fromUrlB64ToArray(this.getResponseProperty("challenge"));
+ this.extensions = this.getResponseProperty("extensions");
+ this.rpId = this.getResponseProperty("rpId");
+ this.timeout = this.getResponseProperty("timeout");
+ this.userVerification = this.getResponseProperty("userVerification");
+ }
+}
diff --git a/libs/common/src/auth/services/webauthn-login/response/credential-assertion-options.response.ts b/libs/common/src/auth/services/webauthn-login/response/credential-assertion-options.response.ts
new file mode 100644
index 00000000000..f0b1d27c12c
--- /dev/null
+++ b/libs/common/src/auth/services/webauthn-login/response/credential-assertion-options.response.ts
@@ -0,0 +1,14 @@
+import { BaseResponse } from "../../../../models/response/base.response";
+
+import { AssertionOptionsResponse } from "./assertion-options.response";
+
+export class CredentialAssertionOptionsResponse extends BaseResponse {
+ options: AssertionOptionsResponse;
+ token: string;
+
+ constructor(response: unknown) {
+ super(response);
+ this.options = new AssertionOptionsResponse(this.getResponseProperty("options"));
+ this.token = this.getResponseProperty("token");
+ }
+}
diff --git a/libs/common/src/auth/services/webauthn-login/webauthn-login-api.service.ts b/libs/common/src/auth/services/webauthn-login/webauthn-login-api.service.ts
new file mode 100644
index 00000000000..a10f5188819
--- /dev/null
+++ b/libs/common/src/auth/services/webauthn-login/webauthn-login-api.service.ts
@@ -0,0 +1,21 @@
+import { ApiService } from "../../../abstractions/api.service";
+import { EnvironmentService } from "../../../platform/abstractions/environment.service";
+import { WebAuthnLoginApiServiceAbstraction } from "../../abstractions/webauthn/webauthn-login-api.service.abstraction";
+
+import { CredentialAssertionOptionsResponse } from "./response/credential-assertion-options.response";
+
+export class WebAuthnLoginApiService implements WebAuthnLoginApiServiceAbstraction {
+ constructor(private apiService: ApiService, private environmentService: EnvironmentService) {}
+
+ async getCredentialAssertionOptions(): Promise {
+ const response = await this.apiService.send(
+ "GET",
+ `/accounts/webauthn/assertion-options`,
+ null,
+ false,
+ true,
+ this.environmentService.getIdentityUrl()
+ );
+ return new CredentialAssertionOptionsResponse(response);
+ }
+}
diff --git a/libs/common/src/auth/services/webauthn-login/webauthn-login-prf-crypto.service.spec.ts b/libs/common/src/auth/services/webauthn-login/webauthn-login-prf-crypto.service.spec.ts
new file mode 100644
index 00000000000..7bfb36d769a
--- /dev/null
+++ b/libs/common/src/auth/services/webauthn-login/webauthn-login-prf-crypto.service.spec.ts
@@ -0,0 +1,32 @@
+import { mock, MockProxy } from "jest-mock-extended";
+
+import { CryptoFunctionService } from "../../../platform/abstractions/crypto-function.service";
+
+import { WebAuthnLoginPrfCryptoService } from "./webauthn-login-prf-crypto.service";
+
+describe("WebAuthnLoginPrfCryptoService", () => {
+ let cryptoFunctionService: MockProxy;
+ let service: WebAuthnLoginPrfCryptoService;
+
+ beforeEach(() => {
+ cryptoFunctionService = mock();
+ service = new WebAuthnLoginPrfCryptoService(cryptoFunctionService);
+ });
+
+ describe("createSymmetricKeyFromPrf", () => {
+ it("should stretch the key to 64 bytes when given a key with 32 bytes", async () => {
+ cryptoFunctionService.hkdfExpand.mockImplementation((key, salt, length) =>
+ Promise.resolve(randomBytes(length))
+ );
+
+ const result = await service.createSymmetricKeyFromPrf(randomBytes(32));
+
+ expect(result.key.length).toBe(64);
+ });
+ });
+});
+
+/** This is a fake function that always returns the same byte sequence */
+function randomBytes(length: number) {
+ return new Uint8Array(Array.from({ length }, (_, k) => k % 255));
+}
diff --git a/libs/common/src/auth/services/webauthn-login/webauthn-login-prf-crypto.service.ts b/libs/common/src/auth/services/webauthn-login/webauthn-login-prf-crypto.service.ts
new file mode 100644
index 00000000000..4962f10010d
--- /dev/null
+++ b/libs/common/src/auth/services/webauthn-login/webauthn-login-prf-crypto.service.ts
@@ -0,0 +1,26 @@
+import { CryptoFunctionService } from "../../../platform/abstractions/crypto-function.service";
+import { PrfKey, SymmetricCryptoKey } from "../../../platform/models/domain/symmetric-crypto-key";
+import { WebAuthnLoginPrfCryptoServiceAbstraction } from "../../abstractions/webauthn/webauthn-login-prf-crypto.service.abstraction";
+
+const LoginWithPrfSalt = "passwordless-login";
+
+export class WebAuthnLoginPrfCryptoService implements WebAuthnLoginPrfCryptoServiceAbstraction {
+ constructor(private cryptoFunctionService: CryptoFunctionService) {}
+
+ async getLoginWithPrfSalt(): Promise {
+ return await this.cryptoFunctionService.hash(LoginWithPrfSalt, "sha256");
+ }
+
+ async createSymmetricKeyFromPrf(prf: ArrayBuffer): Promise {
+ return (await this.stretchKey(new Uint8Array(prf))) as PrfKey;
+ }
+
+ private async stretchKey(key: Uint8Array): Promise {
+ const newKey = new Uint8Array(64);
+ const encKey = await this.cryptoFunctionService.hkdfExpand(key, "enc", 32, "sha256");
+ const macKey = await this.cryptoFunctionService.hkdfExpand(key, "mac", 32, "sha256");
+ newKey.set(new Uint8Array(encKey));
+ newKey.set(new Uint8Array(macKey), 32);
+ return new SymmetricCryptoKey(newKey);
+ }
+}
diff --git a/libs/common/src/auth/services/webauthn-login/webauthn-login.service.spec.ts b/libs/common/src/auth/services/webauthn-login/webauthn-login.service.spec.ts
new file mode 100644
index 00000000000..4b8e73abb27
--- /dev/null
+++ b/libs/common/src/auth/services/webauthn-login/webauthn-login.service.spec.ts
@@ -0,0 +1,377 @@
+import { mock } from "jest-mock-extended";
+import { firstValueFrom, of } from "rxjs";
+
+import { ConfigServiceAbstraction } from "../../../platform/abstractions/config/config.service.abstraction";
+import { LogService } from "../../../platform/abstractions/log.service";
+import { Utils } from "../../../platform/misc/utils";
+import { PrfKey, SymmetricCryptoKey } from "../../../platform/models/domain/symmetric-crypto-key";
+import { AuthService } from "../../abstractions/auth.service";
+import { WebAuthnLoginApiServiceAbstraction } from "../../abstractions/webauthn/webauthn-login-api.service.abstraction";
+import { WebAuthnLoginPrfCryptoServiceAbstraction } from "../../abstractions/webauthn/webauthn-login-prf-crypto.service.abstraction";
+import { AuthResult } from "../../models/domain/auth-result";
+import { WebAuthnLoginCredentials } from "../../models/domain/login-credentials";
+import { WebAuthnLoginCredentialAssertionOptionsView } from "../../models/view/webauthn-login/webauthn-login-credential-assertion-options.view";
+import { WebAuthnLoginCredentialAssertionView } from "../../models/view/webauthn-login/webauthn-login-credential-assertion.view";
+
+import { WebAuthnLoginAssertionResponseRequest } from "./request/webauthn-login-assertion-response.request";
+import { CredentialAssertionOptionsResponse } from "./response/credential-assertion-options.response";
+import { WebAuthnLoginService } from "./webauthn-login.service";
+
+describe("WebAuthnLoginService", () => {
+ let webAuthnLoginService: WebAuthnLoginService;
+
+ const webAuthnLoginApiService = mock();
+ const authService = mock();
+ const configService = mock();
+ const webAuthnLoginPrfCryptoService = mock();
+ const navigatorCredentials = mock();
+ const logService = mock();
+
+ let originalPublicKeyCredential!: PublicKeyCredential | any;
+ let originalAuthenticatorAssertionResponse!: AuthenticatorAssertionResponse | any;
+ let originalNavigator!: Navigator;
+
+ beforeAll(() => {
+ // Save off the original classes so we can restore them after all tests are done if they exist
+ originalPublicKeyCredential = global.PublicKeyCredential;
+ originalAuthenticatorAssertionResponse = global.AuthenticatorAssertionResponse;
+
+ // We must do this to make the mocked classes available for all the
+ // assertCredential(...) tests.
+ global.PublicKeyCredential = MockPublicKeyCredential;
+ global.AuthenticatorAssertionResponse = MockAuthenticatorAssertionResponse;
+
+ // Save the original navigator
+ originalNavigator = global.window.navigator;
+
+ // Mock the window.navigator with mocked CredentialsContainer
+ Object.defineProperty(global.window, "navigator", {
+ value: {
+ ...originalNavigator,
+ credentials: navigatorCredentials,
+ },
+ configurable: true,
+ });
+ });
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ });
+
+ afterAll(() => {
+ // Restore global after all tests are done
+ global.PublicKeyCredential = originalPublicKeyCredential;
+ global.AuthenticatorAssertionResponse = originalAuthenticatorAssertionResponse;
+
+ // Restore the original navigator
+ Object.defineProperty(global.window, "navigator", {
+ value: originalNavigator,
+ configurable: true,
+ });
+ });
+
+ function createWebAuthnLoginService(config: { featureEnabled: boolean }): WebAuthnLoginService {
+ configService.getFeatureFlag$.mockReturnValue(of(config.featureEnabled));
+ return new WebAuthnLoginService(
+ webAuthnLoginApiService,
+ authService,
+ configService,
+ webAuthnLoginPrfCryptoService,
+ window,
+ logService
+ );
+ }
+
+ it("instantiates", () => {
+ webAuthnLoginService = createWebAuthnLoginService({ featureEnabled: true });
+ expect(webAuthnLoginService).not.toBeFalsy();
+ });
+
+ describe("enabled$", () => {
+ it("should emit true when feature flag for PasswordlessLogin is enabled", async () => {
+ // Arrange
+ const webAuthnLoginService = createWebAuthnLoginService({ featureEnabled: true });
+
+ // Act & Assert
+ const result = await firstValueFrom(webAuthnLoginService.enabled$);
+ expect(result).toBe(true);
+ });
+
+ it("should emit false when feature flag for PasswordlessLogin is disabled", async () => {
+ // Arrange
+ const webAuthnLoginService = createWebAuthnLoginService({ featureEnabled: false });
+
+ // Act & Assert
+ const result = await firstValueFrom(webAuthnLoginService.enabled$);
+ expect(result).toBe(false);
+ });
+ });
+
+ describe("getCredentialAssertionOptions()", () => {
+ it("webAuthnLoginService returns WebAuthnLoginCredentialAssertionOptionsView when getCredentialAssertionOptions is called with the feature enabled", async () => {
+ // Arrange
+ const webAuthnLoginService = createWebAuthnLoginService({ featureEnabled: true });
+
+ const challenge = "6CG3jqMCVASJVXySMi9KWw";
+ const token = "BWWebAuthnLoginAssertionOptions_CfDJ_2KBN892w";
+ const timeout = 60000;
+ const rpId = "localhost";
+ const allowCredentials = [] as PublicKeyCredentialDescriptor[];
+ const userVerification = "required";
+ const objectName = "webAuthnLoginAssertionOptions";
+
+ const mockedCredentialAssertionOptionsServerResponse = {
+ options: {
+ challenge: challenge,
+ timeout: timeout,
+ rpId: rpId,
+ allowCredentials: allowCredentials,
+ userVerification: userVerification,
+ status: "ok",
+ errorMessage: "",
+ },
+ token: token,
+ object: objectName,
+ };
+
+ const mockedCredentialAssertionOptionsResponse = new CredentialAssertionOptionsResponse(
+ mockedCredentialAssertionOptionsServerResponse
+ );
+
+ webAuthnLoginApiService.getCredentialAssertionOptions.mockResolvedValue(
+ mockedCredentialAssertionOptionsResponse
+ );
+
+ // Act
+ const result = await webAuthnLoginService.getCredentialAssertionOptions();
+
+ // Assert
+ expect(result).toBeInstanceOf(WebAuthnLoginCredentialAssertionOptionsView);
+ });
+ });
+
+ describe("assertCredential(...)", () => {
+ it("should assert the credential and return WebAuthnLoginAssertionView on success", async () => {
+ // Arrange
+ const webAuthnLoginService = createWebAuthnLoginService({ featureEnabled: true });
+ const credentialAssertionOptions = buildCredentialAssertionOptions();
+
+ // Mock webAuthnUtils functions
+ const expectedSaltHex = "abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890";
+ const saltArrayBuffer = Utils.hexStringToArrayBuffer(expectedSaltHex);
+
+ const publicKeyCredential = new MockPublicKeyCredential();
+ const prfResult: ArrayBuffer =
+ publicKeyCredential.getClientExtensionResults().prf?.results?.first;
+ const prfKey = new SymmetricCryptoKey(new Uint8Array(prfResult)) as PrfKey;
+
+ webAuthnLoginPrfCryptoService.getLoginWithPrfSalt.mockResolvedValue(saltArrayBuffer);
+ webAuthnLoginPrfCryptoService.createSymmetricKeyFromPrf.mockResolvedValue(prfKey);
+
+ // Mock implementations
+ navigatorCredentials.get.mockResolvedValue(publicKeyCredential);
+
+ // Act
+ const result = await webAuthnLoginService.assertCredential(credentialAssertionOptions);
+
+ // Assert
+
+ expect(webAuthnLoginPrfCryptoService.getLoginWithPrfSalt).toHaveBeenCalled();
+
+ expect(navigatorCredentials.get).toHaveBeenCalledWith(
+ expect.objectContaining({
+ publicKey: expect.objectContaining({
+ ...credentialAssertionOptions.options,
+ extensions: expect.objectContaining({
+ prf: expect.objectContaining({
+ eval: expect.objectContaining({
+ first: saltArrayBuffer,
+ }),
+ }),
+ }),
+ }),
+ })
+ );
+
+ expect(webAuthnLoginPrfCryptoService.createSymmetricKeyFromPrf).toHaveBeenCalledWith(
+ prfResult
+ );
+
+ expect(result).toBeInstanceOf(WebAuthnLoginCredentialAssertionView);
+ expect(result.token).toEqual(credentialAssertionOptions.token);
+
+ expect(result.deviceResponse).toBeInstanceOf(WebAuthnLoginAssertionResponseRequest);
+ expect(result.deviceResponse.id).toEqual(publicKeyCredential.id);
+ expect(result.deviceResponse.rawId).toEqual(publicKeyCredential.rawIdB64Str);
+ expect(result.deviceResponse.type).toEqual(publicKeyCredential.type);
+ // extensions being empty could change in the future but for now it is expected
+ expect(result.deviceResponse.extensions).toEqual({});
+ // but it should never contain any PRF information
+ expect("prf" in result.deviceResponse.extensions).toBe(false);
+
+ expect(result.deviceResponse.response).toEqual({
+ authenticatorData: publicKeyCredential.response.authenticatorDataB64Str,
+ clientDataJSON: publicKeyCredential.response.clientDataJSONB64Str,
+ signature: publicKeyCredential.response.signatureB64Str,
+ userHandle: publicKeyCredential.response.userHandleB64Str,
+ });
+
+ expect(result.prfKey).toEqual(prfKey);
+ });
+
+ it("should return undefined on non-PublicKeyCredential browser response", async () => {
+ // Arrange
+ const webAuthnLoginService = createWebAuthnLoginService({ featureEnabled: true });
+ const credentialAssertionOptions = buildCredentialAssertionOptions();
+
+ // Mock the navigatorCredentials.get to return null
+ navigatorCredentials.get.mockResolvedValue(null);
+
+ // Act
+ const result = await webAuthnLoginService.assertCredential(credentialAssertionOptions);
+
+ // Assert
+ expect(result).toBeUndefined();
+ });
+
+ it("should log an error and return undefined when navigatorCredentials.get throws an error", async () => {
+ // Arrange
+ const webAuthnLoginService = createWebAuthnLoginService({ featureEnabled: true });
+ const credentialAssertionOptions = buildCredentialAssertionOptions();
+
+ // Mock navigatorCredentials.get to throw an error
+ const errorMessage = "Simulated error";
+ navigatorCredentials.get.mockRejectedValue(new Error(errorMessage));
+
+ // Spy on logService.error
+ const logServiceErrorSpy = jest.spyOn(logService, "error");
+
+ // Act
+ const result = await webAuthnLoginService.assertCredential(credentialAssertionOptions);
+
+ // Assert
+ expect(result).toBeUndefined();
+ expect(logServiceErrorSpy).toHaveBeenCalledWith(expect.any(Error));
+ });
+ });
+
+ describe("logIn(...)", () => {
+ function buildWebAuthnLoginCredentialAssertionView(): WebAuthnLoginCredentialAssertionView {
+ const publicKeyCredential = new MockPublicKeyCredential();
+
+ const deviceResponse = new WebAuthnLoginAssertionResponseRequest(publicKeyCredential);
+
+ const prfKey = new SymmetricCryptoKey(randomBytes(32)) as PrfKey;
+
+ return new WebAuthnLoginCredentialAssertionView("mockToken", deviceResponse, prfKey);
+ }
+
+ it("should accept an assertion with a signed challenge and use it to try and login", async () => {
+ // Arrange
+ const webAuthnLoginService = createWebAuthnLoginService({ featureEnabled: true });
+ const assertion = buildWebAuthnLoginCredentialAssertionView();
+ const mockAuthResult: AuthResult = new AuthResult();
+
+ jest.spyOn(authService, "logIn").mockResolvedValue(mockAuthResult);
+
+ // Act
+ const result = await webAuthnLoginService.logIn(assertion);
+
+ // Assert
+ expect(result).toEqual(mockAuthResult);
+
+ const callArguments = authService.logIn.mock.calls[0];
+ expect(callArguments[0]).toBeInstanceOf(WebAuthnLoginCredentials);
+ });
+ });
+});
+
+// Test helpers
+function randomBytes(length: number): Uint8Array {
+ return new Uint8Array(Array.from({ length }, (_, k) => k % 255));
+}
+
+// AuthenticatorAssertionResponse && PublicKeyCredential are only available in secure contexts
+// so we need to mock them and assign them to the global object to make them available
+// for the tests
+class MockAuthenticatorAssertionResponse implements AuthenticatorAssertionResponse {
+ clientDataJSON: ArrayBuffer = randomBytes(32).buffer;
+ authenticatorData: ArrayBuffer = randomBytes(196).buffer;
+ signature: ArrayBuffer = randomBytes(72).buffer;
+ userHandle: ArrayBuffer = randomBytes(16).buffer;
+
+ clientDataJSONB64Str = Utils.fromBufferToUrlB64(this.clientDataJSON);
+ authenticatorDataB64Str = Utils.fromBufferToUrlB64(this.authenticatorData);
+ signatureB64Str = Utils.fromBufferToUrlB64(this.signature);
+ userHandleB64Str = Utils.fromBufferToUrlB64(this.userHandle);
+}
+
+class MockPublicKeyCredential implements PublicKeyCredential {
+ authenticatorAttachment = "cross-platform";
+ id = "mockCredentialId";
+ type = "public-key";
+ rawId: ArrayBuffer = randomBytes(32).buffer;
+ rawIdB64Str = Utils.fromBufferToUrlB64(this.rawId);
+
+ response: MockAuthenticatorAssertionResponse = new MockAuthenticatorAssertionResponse();
+
+ // Use random 64 character hex string (32 bytes - matters for symmetric key creation)
+ // to represent the prf key binary data and convert to ArrayBuffer
+ // Creating the array buffer from a known hex value allows us to
+ // assert on the value in tests
+ private prfKeyArrayBuffer: ArrayBuffer = Utils.hexStringToArrayBuffer(
+ "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
+ );
+
+ getClientExtensionResults(): any {
+ return {
+ prf: {
+ results: {
+ first: this.prfKeyArrayBuffer,
+ },
+ },
+ };
+ }
+
+ static isConditionalMediationAvailable(): Promise {
+ return Promise.resolve(false);
+ }
+
+ static isUserVerifyingPlatformAuthenticatorAvailable(): Promise {
+ return Promise.resolve(false);
+ }
+}
+
+function buildCredentialAssertionOptions(): WebAuthnLoginCredentialAssertionOptionsView {
+ // Mock credential assertion options
+ const challenge = "6CG3jqMCVASJVXySMi9KWw";
+ const token = "BWWebAuthnLoginAssertionOptions_CfDJ_2KBN892w";
+ const timeout = 60000;
+ const rpId = "localhost";
+ const allowCredentials = [] as PublicKeyCredentialDescriptor[];
+ const userVerification = "required";
+ const objectName = "webAuthnLoginAssertionOptions";
+
+ const credentialAssertionOptionsServerResponse = {
+ options: {
+ challenge: challenge,
+ timeout: timeout,
+ rpId: rpId,
+ allowCredentials: allowCredentials,
+ userVerification: userVerification,
+ status: "ok",
+ errorMessage: "",
+ },
+ token: token,
+ object: objectName,
+ };
+
+ const credentialAssertionOptionsResponse = new CredentialAssertionOptionsResponse(
+ credentialAssertionOptionsServerResponse
+ );
+
+ return new WebAuthnLoginCredentialAssertionOptionsView(
+ credentialAssertionOptionsResponse.options,
+ credentialAssertionOptionsResponse.token
+ );
+}
diff --git a/libs/common/src/auth/services/webauthn-login/webauthn-login.service.ts b/libs/common/src/auth/services/webauthn-login/webauthn-login.service.ts
new file mode 100644
index 00000000000..43fcf00c3de
--- /dev/null
+++ b/libs/common/src/auth/services/webauthn-login/webauthn-login.service.ts
@@ -0,0 +1,93 @@
+import { Observable } from "rxjs";
+
+import { FeatureFlag } from "../../../enums/feature-flag.enum";
+import { ConfigServiceAbstraction } from "../../../platform/abstractions/config/config.service.abstraction";
+import { LogService } from "../../../platform/abstractions/log.service";
+import { PrfKey } from "../../../platform/models/domain/symmetric-crypto-key";
+import { AuthService } from "../../abstractions/auth.service";
+import { WebAuthnLoginApiServiceAbstraction } from "../../abstractions/webauthn/webauthn-login-api.service.abstraction";
+import { WebAuthnLoginPrfCryptoServiceAbstraction } from "../../abstractions/webauthn/webauthn-login-prf-crypto.service.abstraction";
+import { WebAuthnLoginServiceAbstraction } from "../../abstractions/webauthn/webauthn-login.service.abstraction";
+import { AuthResult } from "../../models/domain/auth-result";
+import { WebAuthnLoginCredentials } from "../../models/domain/login-credentials";
+import { WebAuthnLoginCredentialAssertionOptionsView } from "../../models/view/webauthn-login/webauthn-login-credential-assertion-options.view";
+import { WebAuthnLoginCredentialAssertionView } from "../../models/view/webauthn-login/webauthn-login-credential-assertion.view";
+
+import { WebAuthnLoginAssertionResponseRequest } from "./request/webauthn-login-assertion-response.request";
+
+export class WebAuthnLoginService implements WebAuthnLoginServiceAbstraction {
+ readonly enabled$: Observable;
+
+ private navigatorCredentials: CredentialsContainer;
+
+ constructor(
+ private webAuthnLoginApiService: WebAuthnLoginApiServiceAbstraction,
+ private authService: AuthService,
+ private configService: ConfigServiceAbstraction,
+ private webAuthnLoginPrfCryptoService: WebAuthnLoginPrfCryptoServiceAbstraction,
+ private window: Window,
+ private logService?: LogService
+ ) {
+ this.enabled$ = this.configService.getFeatureFlag$(FeatureFlag.PasswordlessLogin, false);
+ this.navigatorCredentials = this.window.navigator.credentials;
+ }
+
+ async getCredentialAssertionOptions(): Promise {
+ const response = await this.webAuthnLoginApiService.getCredentialAssertionOptions();
+ return new WebAuthnLoginCredentialAssertionOptionsView(response.options, response.token);
+ }
+
+ async assertCredential(
+ credentialAssertionOptions: WebAuthnLoginCredentialAssertionOptionsView
+ ): Promise {
+ const nativeOptions: CredentialRequestOptions = {
+ publicKey: credentialAssertionOptions.options,
+ };
+ // TODO: Remove `any` when typescript typings add support for PRF
+ nativeOptions.publicKey.extensions = {
+ prf: { eval: { first: await this.webAuthnLoginPrfCryptoService.getLoginWithPrfSalt() } },
+ } as any;
+
+ try {
+ const response = await this.navigatorCredentials.get(nativeOptions);
+ if (!(response instanceof PublicKeyCredential)) {
+ return undefined;
+ }
+ // TODO: Remove `any` when typescript typings add support for PRF
+ const prfResult = (response.getClientExtensionResults() as any).prf?.results?.first;
+ let symmetricPrfKey: PrfKey | undefined;
+ if (prfResult != undefined) {
+ symmetricPrfKey = await this.webAuthnLoginPrfCryptoService.createSymmetricKeyFromPrf(
+ prfResult
+ );
+ }
+
+ const deviceResponse = new WebAuthnLoginAssertionResponseRequest(response);
+
+ // Verify that we aren't going to send PRF information to the server in any case.
+ // Note: this will only happen if a dev has done something wrong.
+ if ("prf" in deviceResponse.extensions) {
+ throw new Error("PRF information is not allowed to be sent to the server.");
+ }
+
+ return new WebAuthnLoginCredentialAssertionView(
+ credentialAssertionOptions.token,
+ deviceResponse,
+ symmetricPrfKey
+ );
+ } catch (error) {
+ this.logService?.error(error);
+ return undefined;
+ }
+ }
+
+ async logIn(assertion: WebAuthnLoginCredentialAssertionView): Promise {
+ const credential = new WebAuthnLoginCredentials(
+ assertion.token,
+ assertion.deviceResponse,
+ assertion.prfKey
+ );
+ const result = await this.authService.logIn(credential);
+ return result;
+ }
+}
diff --git a/libs/common/src/platform/misc/utils.spec.ts b/libs/common/src/platform/misc/utils.spec.ts
index 0fd76a80921..0a76493a01c 100644
--- a/libs/common/src/platform/misc/utils.spec.ts
+++ b/libs/common/src/platform/misc/utils.spec.ts
@@ -244,6 +244,243 @@ describe("Utils Service", () => {
});
});
+ function runInBothEnvironments(testName: string, testFunc: () => void): void {
+ const environments = [
+ { isNode: true, name: "Node environment" },
+ { isNode: false, name: "non-Node environment" },
+ ];
+
+ environments.forEach((env) => {
+ it(`${testName} in ${env.name}`, () => {
+ Utils.isNode = env.isNode;
+ testFunc();
+ });
+ });
+ }
+
+ const asciiHelloWorldArray = [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100];
+ const b64HelloWorldString = "aGVsbG8gd29ybGQ=";
+
+ describe("fromBufferToB64(...)", () => {
+ const originalIsNode = Utils.isNode;
+
+ afterEach(() => {
+ Utils.isNode = originalIsNode;
+ });
+
+ runInBothEnvironments("should convert an ArrayBuffer to a b64 string", () => {
+ const buffer = new Uint8Array(asciiHelloWorldArray).buffer;
+ const b64String = Utils.fromBufferToB64(buffer);
+ expect(b64String).toBe(b64HelloWorldString);
+ });
+
+ runInBothEnvironments("should return an empty string for an empty ArrayBuffer", () => {
+ const buffer = new Uint8Array([]).buffer;
+ const b64String = Utils.fromBufferToB64(buffer);
+ expect(b64String).toBe("");
+ });
+
+ runInBothEnvironments("should return null for null input", () => {
+ const b64String = Utils.fromBufferToB64(null);
+ expect(b64String).toBeNull();
+ });
+ });
+
+ describe("fromB64ToArray(...)", () => {
+ runInBothEnvironments("should convert a b64 string to an Uint8Array", () => {
+ const expectedArray = new Uint8Array(asciiHelloWorldArray);
+
+ const resultArray = Utils.fromB64ToArray(b64HelloWorldString);
+
+ expect(resultArray).toEqual(expectedArray);
+ });
+
+ runInBothEnvironments("should return null for null input", () => {
+ const expectedArray = Utils.fromB64ToArray(null);
+ expect(expectedArray).toBeNull();
+ });
+
+ // Hmmm... this passes in browser but not in node
+ // as node doesn't throw an error for invalid base64 strings.
+ // It instead produces a buffer with the bytes that could be decoded
+ // and ignores the rest after an invalid character.
+ // https://github.com/nodejs/node/issues/8569
+ // This could be mitigated with a regex check before decoding...
+ // runInBothEnvironments("should throw an error for invalid base64 string", () => {
+ // const invalidB64String = "invalid base64";
+ // expect(() => {
+ // Utils.fromB64ToArrayBuffer(invalidB64String);
+ // }).toThrow();
+ // });
+ });
+
+ describe("Base64 and ArrayBuffer round trip conversions", () => {
+ const originalIsNode = Utils.isNode;
+
+ afterEach(() => {
+ Utils.isNode = originalIsNode;
+ });
+
+ runInBothEnvironments(
+ "should correctly round trip convert from ArrayBuffer to base64 and back",
+ () => {
+ // Start with a known ArrayBuffer
+ const originalArray = new Uint8Array(asciiHelloWorldArray);
+ const originalBuffer = originalArray.buffer;
+
+ // Convert ArrayBuffer to a base64 string
+ const b64String = Utils.fromBufferToB64(originalBuffer);
+
+ // Convert that base64 string back to an ArrayBuffer
+ const roundTrippedBuffer = Utils.fromB64ToArray(b64String).buffer;
+ const roundTrippedArray = new Uint8Array(roundTrippedBuffer);
+
+ // Compare the original ArrayBuffer with the round-tripped ArrayBuffer
+ expect(roundTrippedArray).toEqual(originalArray);
+ }
+ );
+
+ runInBothEnvironments(
+ "should correctly round trip convert from base64 to ArrayBuffer and back",
+ () => {
+ // Convert known base64 string to ArrayBuffer
+ const bufferFromB64 = Utils.fromB64ToArray(b64HelloWorldString).buffer;
+
+ // Convert the ArrayBuffer back to a base64 string
+ const roundTrippedB64String = Utils.fromBufferToB64(bufferFromB64);
+
+ // Compare the original base64 string with the round-tripped base64 string
+ expect(roundTrippedB64String).toBe(b64HelloWorldString);
+ }
+ );
+ });
+
+ describe("fromBufferToHex(...)", () => {
+ const originalIsNode = Utils.isNode;
+
+ afterEach(() => {
+ Utils.isNode = originalIsNode;
+ });
+
+ /**
+ * Creates a string that represents a sequence of hexadecimal byte values in ascending order.
+ * Each byte value corresponds to its position in the sequence.
+ *
+ * @param {number} length - The number of bytes to include in the string.
+ * @return {string} A string of hexadecimal byte values in sequential order.
+ *
+ * @example
+ * // Returns '000102030405060708090a0b0c0d0e0f101112...ff'
+ * createSequentialHexByteString(256);
+ */
+ function createSequentialHexByteString(length: number) {
+ let sequentialHexString = "";
+ for (let i = 0; i < length; i++) {
+ // Convert the number to a hex string and pad with leading zeros if necessary
+ const hexByte = i.toString(16).padStart(2, "0");
+ sequentialHexString += hexByte;
+ }
+ return sequentialHexString;
+ }
+
+ runInBothEnvironments("should convert an ArrayBuffer to a hex string", () => {
+ const buffer = new Uint8Array([0, 1, 10, 16, 255]).buffer;
+ const hexString = Utils.fromBufferToHex(buffer);
+ expect(hexString).toBe("00010a10ff");
+ });
+
+ runInBothEnvironments("should handle an empty buffer", () => {
+ const buffer = new ArrayBuffer(0);
+ const hexString = Utils.fromBufferToHex(buffer);
+ expect(hexString).toBe("");
+ });
+
+ runInBothEnvironments(
+ "should correctly convert a large buffer containing a repeating sequence of all 256 unique byte values to hex",
+ () => {
+ const largeBuffer = new Uint8Array(1024).map((_, index) => index % 256).buffer;
+ const hexString = Utils.fromBufferToHex(largeBuffer);
+ const expectedHexString = createSequentialHexByteString(256).repeat(4);
+ expect(hexString).toBe(expectedHexString);
+ }
+ );
+
+ runInBothEnvironments("should correctly convert a buffer with a single byte to hex", () => {
+ const singleByteBuffer = new Uint8Array([0xab]).buffer;
+ const hexString = Utils.fromBufferToHex(singleByteBuffer);
+ expect(hexString).toBe("ab");
+ });
+
+ runInBothEnvironments(
+ "should correctly convert a buffer with an odd number of bytes to hex",
+ () => {
+ const oddByteBuffer = new Uint8Array([0x01, 0x23, 0x45, 0x67, 0x89]).buffer;
+ const hexString = Utils.fromBufferToHex(oddByteBuffer);
+ expect(hexString).toBe("0123456789");
+ }
+ );
+ });
+
+ describe("hexStringToArrayBuffer(...)", () => {
+ test("should convert a hex string to an ArrayBuffer correctly", () => {
+ const hexString = "ff0a1b"; // Arbitrary hex string
+ const expectedResult = new Uint8Array([255, 10, 27]).buffer;
+ const result = Utils.hexStringToArrayBuffer(hexString);
+ expect(new Uint8Array(result)).toEqual(new Uint8Array(expectedResult));
+ });
+
+ test("should throw an error if the hex string length is not even", () => {
+ const hexString = "abc"; // Odd number of characters
+ expect(() => {
+ Utils.hexStringToArrayBuffer(hexString);
+ }).toThrow("HexString has to be an even length");
+ });
+
+ test("should convert a hex string representing zero to an ArrayBuffer correctly", () => {
+ const hexString = "00";
+ const expectedResult = new Uint8Array([0]).buffer;
+ const result = Utils.hexStringToArrayBuffer(hexString);
+ expect(new Uint8Array(result)).toEqual(new Uint8Array(expectedResult));
+ });
+
+ test("should handle an empty hex string", () => {
+ const hexString = "";
+ const expectedResult = new ArrayBuffer(0);
+ const result = Utils.hexStringToArrayBuffer(hexString);
+ expect(result).toEqual(expectedResult);
+ });
+
+ test("should convert a long hex string to an ArrayBuffer correctly", () => {
+ const hexString = "0102030405060708090a0b0c0d0e0f";
+ const expectedResult = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
+ .buffer;
+ const result = Utils.hexStringToArrayBuffer(hexString);
+ expect(new Uint8Array(result)).toEqual(new Uint8Array(expectedResult));
+ });
+ });
+
+ describe("ArrayBuffer and Hex string round trip conversions", () => {
+ runInBothEnvironments(
+ "should allow round-trip conversion from ArrayBuffer to hex and back",
+ () => {
+ const originalBuffer = new Uint8Array([10, 20, 30, 40, 255]).buffer; // arbitrary buffer
+ const hexString = Utils.fromBufferToHex(originalBuffer);
+ const roundTripBuffer = Utils.hexStringToArrayBuffer(hexString);
+ expect(new Uint8Array(roundTripBuffer)).toEqual(new Uint8Array(originalBuffer));
+ }
+ );
+
+ runInBothEnvironments(
+ "should allow round-trip conversion from hex to ArrayBuffer and back",
+ () => {
+ const hexString = "0a141e28ff"; // arbitrary hex string
+ const bufferFromHex = Utils.hexStringToArrayBuffer(hexString);
+ const roundTripHexString = Utils.fromBufferToHex(bufferFromHex);
+ expect(roundTripHexString).toBe(hexString);
+ }
+ );
+ });
+
describe("mapToRecord", () => {
it("should handle null", () => {
expect(Utils.mapToRecord(null)).toEqual(null);
diff --git a/libs/common/src/platform/misc/utils.ts b/libs/common/src/platform/misc/utils.ts
index 2feb6288af2..776ec51a268 100644
--- a/libs/common/src/platform/misc/utils.ts
+++ b/libs/common/src/platform/misc/utils.ts
@@ -170,6 +170,43 @@ export class Utils {
}
}
+ /**
+ * Converts a hex string to an ArrayBuffer.
+ * Note: this doesn't need any Node specific code as parseInt() / ArrayBuffer / Uint8Array
+ * work the same in Node and the browser.
+ * @param {string} hexString - A string of hexadecimal characters.
+ * @returns {ArrayBuffer} The ArrayBuffer representation of the hex string.
+ */
+ static hexStringToArrayBuffer(hexString: string): ArrayBuffer {
+ // Check if the hexString has an even length, as each hex digit represents half a byte (4 bits),
+ // and it takes two hex digits to represent a full byte (8 bits).
+ if (hexString.length % 2 !== 0) {
+ throw "HexString has to be an even length";
+ }
+
+ // Create an ArrayBuffer with a length that is half the length of the hex string,
+ // because each pair of hex digits will become a single byte.
+ const arrayBuffer = new ArrayBuffer(hexString.length / 2);
+
+ // Create a Uint8Array view on top of the ArrayBuffer (each position represents a byte)
+ // as ArrayBuffers cannot be edited directly.
+ const uint8Array = new Uint8Array(arrayBuffer);
+
+ // Loop through the bytes
+ for (let i = 0; i < uint8Array.length; i++) {
+ // Extract two hex characters (1 byte)
+ const hexByte = hexString.substr(i * 2, 2);
+
+ // Convert hexByte into a decimal value from base 16. (ex: ff --> 255)
+ const byteValue = parseInt(hexByte, 16);
+
+ // Place the byte value into the uint8Array
+ uint8Array[i] = byteValue;
+ }
+
+ return arrayBuffer;
+ }
+
static fromUrlB64ToB64(urlB64Str: string): string {
let output = urlB64Str.replace(/-/g, "+").replace(/_/g, "/");
switch (output.length % 4) {
diff --git a/libs/common/src/services/api.service.ts b/libs/common/src/services/api.service.ts
index 2275c2015f7..423cb38be1d 100644
--- a/libs/common/src/services/api.service.ts
+++ b/libs/common/src/services/api.service.ts
@@ -42,6 +42,7 @@ import { PasswordTokenRequest } from "../auth/models/request/identity-token/pass
import { SsoTokenRequest } from "../auth/models/request/identity-token/sso-token.request";
import { TokenTwoFactorRequest } from "../auth/models/request/identity-token/token-two-factor.request";
import { UserApiTokenRequest } from "../auth/models/request/identity-token/user-api-token.request";
+import { WebAuthnLoginTokenRequest } from "../auth/models/request/identity-token/webauthn-login-token.request";
import { KeyConnectorUserKeyRequest } from "../auth/models/request/key-connector-user-key.request";
import { PasswordHintRequest } from "../auth/models/request/password-hint.request";
import { PasswordRequest } from "../auth/models/request/password.request";
@@ -180,7 +181,11 @@ export class ApiService implements ApiServiceAbstraction {
// Auth APIs
async postIdentityToken(
- request: UserApiTokenRequest | PasswordTokenRequest | SsoTokenRequest
+ request:
+ | UserApiTokenRequest
+ | PasswordTokenRequest
+ | SsoTokenRequest
+ | WebAuthnLoginTokenRequest
): Promise {
const headers = new Headers({
"Content-Type": "application/x-www-form-urlencoded; charset=utf-8",
From e60d557f85304de85e6379608dcf84bb4702f152 Mon Sep 17 00:00:00 2001
From: Jake Fink
Date: Wed, 22 Nov 2023 16:29:10 -0500
Subject: [PATCH 16/30] I guess we won't break master before going on 4 day
weekend (#6952)
---
apps/web/src/app/oss-routing.module.ts | 2 --
1 file changed, 2 deletions(-)
diff --git a/apps/web/src/app/oss-routing.module.ts b/apps/web/src/app/oss-routing.module.ts
index a59576a77bc..b22d9419436 100644
--- a/apps/web/src/app/oss-routing.module.ts
+++ b/apps/web/src/app/oss-routing.module.ts
@@ -18,7 +18,6 @@ import { FamiliesForEnterpriseSetupComponent } from "./admin-console/organizatio
import { CreateOrganizationComponent } from "./admin-console/settings/create-organization.component";
import { SponsoredFamiliesComponent } from "./admin-console/settings/sponsored-families.component";
import { AcceptOrganizationComponent } from "./auth/accept-organization.component";
-import { AcceptEmergencyComponent } from "./auth/emergency-access/accept/accept-emergency.component";
import { deepLinkGuard } from "./auth/guards/deep-link.guard";
import { HintComponent } from "./auth/hint.component";
import { LockComponent } from "./auth/lock.component";
@@ -132,7 +131,6 @@ const routes: Routes = [
},
{
path: "accept-emergency",
- component: AcceptEmergencyComponent,
canActivate: [deepLinkGuard()],
data: { titleId: "acceptEmergency", doNotSaveUrl: false },
loadComponent: () =>
From 564bb03038137033e75b5a580507058b7cb85343 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Anders=20=C3=85berg?=
Date: Thu, 23 Nov 2023 10:30:16 +0100
Subject: [PATCH 17/30] [PM-4881]: Added userName to fido2credential (#6922)
* [PM-4881]: Added userName to fido2credential
* added user.name as input params
* Fixed some type errors
---
apps/browser/src/vault/fido2/webauthn-utils.ts | 1 +
libs/common/src/models/export/fido2-credential.export.ts | 6 ++++++
.../abstractions/fido2/fido2-client.service.abstraction.ts | 1 +
libs/common/src/vault/api/fido2-credential.api.ts | 2 ++
libs/common/src/vault/models/data/fido2-credential.data.ts | 2 ++
.../src/vault/models/domain/fido2-credential.spec.ts | 7 +++++++
libs/common/src/vault/models/domain/fido2-credential.ts | 6 ++++++
libs/common/src/vault/models/domain/login.spec.ts | 4 ++++
libs/common/src/vault/models/request/cipher.request.ts | 1 +
libs/common/src/vault/models/view/fido2-credential.view.ts | 1 +
libs/common/src/vault/services/cipher.service.ts | 1 +
.../services/fido2/fido2-authenticator.service.spec.ts | 2 ++
.../vault/services/fido2/fido2-authenticator.service.ts | 1 +
.../src/vault/services/fido2/fido2-client.service.spec.ts | 6 ++++--
.../src/vault/services/fido2/fido2-client.service.ts | 1 +
15 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/apps/browser/src/vault/fido2/webauthn-utils.ts b/apps/browser/src/vault/fido2/webauthn-utils.ts
index 2422736077f..b747825e9c8 100644
--- a/apps/browser/src/vault/fido2/webauthn-utils.ts
+++ b/apps/browser/src/vault/fido2/webauthn-utils.ts
@@ -45,6 +45,7 @@ export class WebauthnUtils {
user: {
id: Fido2Utils.bufferToString(keyOptions.user.id),
displayName: keyOptions.user.displayName,
+ name: keyOptions.user.name,
},
timeout: keyOptions.timeout,
sameOriginWithAncestors,
diff --git a/libs/common/src/models/export/fido2-credential.export.ts b/libs/common/src/models/export/fido2-credential.export.ts
index 258699c8daf..d41b7d67c93 100644
--- a/libs/common/src/models/export/fido2-credential.export.ts
+++ b/libs/common/src/models/export/fido2-credential.export.ts
@@ -19,6 +19,7 @@ export class Fido2CredentialExport {
req.keyValue = "keyValue";
req.rpId = "rpId";
req.userHandle = "userHandle";
+ req.userName = "userName";
req.counter = "counter";
req.rpName = "rpName";
req.userDisplayName = "userDisplayName";
@@ -41,6 +42,7 @@ export class Fido2CredentialExport {
view.keyValue = req.keyValue;
view.rpId = req.rpId;
view.userHandle = req.userHandle;
+ view.userName = req.userName;
view.counter = parseInt(req.counter);
view.rpName = req.rpName;
view.userDisplayName = req.userDisplayName;
@@ -63,6 +65,7 @@ export class Fido2CredentialExport {
domain.keyValue = req.keyValue != null ? new EncString(req.keyValue) : null;
domain.rpId = req.rpId != null ? new EncString(req.rpId) : null;
domain.userHandle = req.userHandle != null ? new EncString(req.userHandle) : null;
+ domain.userName = req.userName != null ? new EncString(req.userName) : null;
domain.counter = req.counter != null ? new EncString(req.counter) : null;
domain.rpName = req.rpName != null ? new EncString(req.rpName) : null;
domain.userDisplayName =
@@ -79,6 +82,7 @@ export class Fido2CredentialExport {
keyValue: string;
rpId: string;
userHandle: string;
+ userName: string;
counter: string;
rpName: string;
userDisplayName: string;
@@ -103,6 +107,7 @@ export class Fido2CredentialExport {
this.keyValue = o.keyValue;
this.rpId = o.rpId;
this.userHandle = o.userHandle;
+ this.userName = o.userName;
this.counter = String(o.counter);
this.rpName = o.rpName;
this.userDisplayName = o.userDisplayName;
@@ -115,6 +120,7 @@ export class Fido2CredentialExport {
this.keyValue = o.keyValue?.encryptedString;
this.rpId = o.rpId?.encryptedString;
this.userHandle = o.userHandle?.encryptedString;
+ this.userName = o.userName?.encryptedString;
this.counter = o.counter?.encryptedString;
this.rpName = o.rpName?.encryptedString;
this.userDisplayName = o.userDisplayName?.encryptedString;
diff --git a/libs/common/src/vault/abstractions/fido2/fido2-client.service.abstraction.ts b/libs/common/src/vault/abstractions/fido2/fido2-client.service.abstraction.ts
index fca73c8d99e..9bb346ccc52 100644
--- a/libs/common/src/vault/abstractions/fido2/fido2-client.service.abstraction.ts
+++ b/libs/common/src/vault/abstractions/fido2/fido2-client.service.abstraction.ts
@@ -103,6 +103,7 @@ export interface CreateCredentialParams {
user: {
id: string; // b64 encoded
displayName: string;
+ name: string;
};
/** Forwarded to user interface */
fallbackSupported: boolean;
diff --git a/libs/common/src/vault/api/fido2-credential.api.ts b/libs/common/src/vault/api/fido2-credential.api.ts
index bfe32fc9b56..4a836d4d83c 100644
--- a/libs/common/src/vault/api/fido2-credential.api.ts
+++ b/libs/common/src/vault/api/fido2-credential.api.ts
@@ -8,6 +8,7 @@ export class Fido2CredentialApi extends BaseResponse {
keyValue: string;
rpId: string;
userHandle: string;
+ userName: string;
counter: string;
rpName: string;
userDisplayName: string;
@@ -27,6 +28,7 @@ export class Fido2CredentialApi extends BaseResponse {
this.keyValue = this.getResponseProperty("keyValue");
this.rpId = this.getResponseProperty("RpId");
this.userHandle = this.getResponseProperty("UserHandle");
+ this.userName = this.getResponseProperty("UserName");
this.counter = this.getResponseProperty("Counter");
this.rpName = this.getResponseProperty("RpName");
this.userDisplayName = this.getResponseProperty("UserDisplayName");
diff --git a/libs/common/src/vault/models/data/fido2-credential.data.ts b/libs/common/src/vault/models/data/fido2-credential.data.ts
index 8f5160d91ba..0ba13682b92 100644
--- a/libs/common/src/vault/models/data/fido2-credential.data.ts
+++ b/libs/common/src/vault/models/data/fido2-credential.data.ts
@@ -8,6 +8,7 @@ export class Fido2CredentialData {
keyValue: string;
rpId: string;
userHandle: string;
+ userName: string;
counter: string;
rpName: string;
userDisplayName: string;
@@ -26,6 +27,7 @@ export class Fido2CredentialData {
this.keyValue = data.keyValue;
this.rpId = data.rpId;
this.userHandle = data.userHandle;
+ this.userName = data.userName;
this.counter = data.counter;
this.rpName = data.rpName;
this.userDisplayName = data.userDisplayName;
diff --git a/libs/common/src/vault/models/domain/fido2-credential.spec.ts b/libs/common/src/vault/models/domain/fido2-credential.spec.ts
index 0b2b76a19cd..9705862460e 100644
--- a/libs/common/src/vault/models/domain/fido2-credential.spec.ts
+++ b/libs/common/src/vault/models/domain/fido2-credential.spec.ts
@@ -25,6 +25,7 @@ describe("Fido2Credential", () => {
keyValue: null,
rpId: null,
userHandle: null,
+ userName: null,
rpName: null,
userDisplayName: null,
counter: null,
@@ -42,6 +43,7 @@ describe("Fido2Credential", () => {
keyValue: "keyValue",
rpId: "rpId",
userHandle: "userHandle",
+ userName: "userName",
counter: "counter",
rpName: "rpName",
userDisplayName: "userDisplayName",
@@ -58,6 +60,7 @@ describe("Fido2Credential", () => {
keyValue: { encryptedString: "keyValue", encryptionType: 0 },
rpId: { encryptedString: "rpId", encryptionType: 0 },
userHandle: { encryptedString: "userHandle", encryptionType: 0 },
+ userName: { encryptedString: "userName", encryptionType: 0 },
counter: { encryptedString: "counter", encryptionType: 0 },
rpName: { encryptedString: "rpName", encryptionType: 0 },
userDisplayName: { encryptedString: "userDisplayName", encryptionType: 0 },
@@ -85,6 +88,7 @@ describe("Fido2Credential", () => {
credential.keyValue = mockEnc("keyValue");
credential.rpId = mockEnc("rpId");
credential.userHandle = mockEnc("userHandle");
+ credential.userName = mockEnc("userName");
credential.counter = mockEnc("2");
credential.rpName = mockEnc("rpName");
credential.userDisplayName = mockEnc("userDisplayName");
@@ -101,6 +105,7 @@ describe("Fido2Credential", () => {
keyValue: "keyValue",
rpId: "rpId",
userHandle: "userHandle",
+ userName: "userName",
rpName: "rpName",
userDisplayName: "userDisplayName",
counter: 2,
@@ -120,6 +125,7 @@ describe("Fido2Credential", () => {
keyValue: "keyValue",
rpId: "rpId",
userHandle: "userHandle",
+ userName: "userName",
counter: "2",
rpName: "rpName",
userDisplayName: "userDisplayName",
@@ -144,6 +150,7 @@ describe("Fido2Credential", () => {
credential.keyValue = createEncryptedEncString("keyValue");
credential.rpId = createEncryptedEncString("rpId");
credential.userHandle = createEncryptedEncString("userHandle");
+ credential.userName = createEncryptedEncString("userName");
credential.counter = createEncryptedEncString("2");
credential.rpName = createEncryptedEncString("rpName");
credential.userDisplayName = createEncryptedEncString("userDisplayName");
diff --git a/libs/common/src/vault/models/domain/fido2-credential.ts b/libs/common/src/vault/models/domain/fido2-credential.ts
index 84f075458a8..f8f006af799 100644
--- a/libs/common/src/vault/models/domain/fido2-credential.ts
+++ b/libs/common/src/vault/models/domain/fido2-credential.ts
@@ -14,6 +14,7 @@ export class Fido2Credential extends Domain {
keyValue: EncString;
rpId: EncString;
userHandle: EncString;
+ userName: EncString;
counter: EncString;
rpName: EncString;
userDisplayName: EncString;
@@ -37,6 +38,7 @@ export class Fido2Credential extends Domain {
keyValue: null,
rpId: null,
userHandle: null,
+ userName: null,
counter: null,
rpName: null,
userDisplayName: null,
@@ -58,6 +60,7 @@ export class Fido2Credential extends Domain {
keyValue: null,
rpId: null,
userHandle: null,
+ userName: null,
rpName: null,
userDisplayName: null,
discoverable: null,
@@ -102,6 +105,7 @@ export class Fido2Credential extends Domain {
keyValue: null,
rpId: null,
userHandle: null,
+ userName: null,
counter: null,
rpName: null,
userDisplayName: null,
@@ -122,6 +126,7 @@ export class Fido2Credential extends Domain {
const keyValue = EncString.fromJSON(obj.keyValue);
const rpId = EncString.fromJSON(obj.rpId);
const userHandle = EncString.fromJSON(obj.userHandle);
+ const userName = EncString.fromJSON(obj.userName);
const counter = EncString.fromJSON(obj.counter);
const rpName = EncString.fromJSON(obj.rpName);
const userDisplayName = EncString.fromJSON(obj.userDisplayName);
@@ -136,6 +141,7 @@ export class Fido2Credential extends Domain {
keyValue,
rpId,
userHandle,
+ userName,
counter,
rpName,
userDisplayName,
diff --git a/libs/common/src/vault/models/domain/login.spec.ts b/libs/common/src/vault/models/domain/login.spec.ts
index d0b24d8c173..b4b5065272a 100644
--- a/libs/common/src/vault/models/domain/login.spec.ts
+++ b/libs/common/src/vault/models/domain/login.spec.ts
@@ -135,6 +135,7 @@ describe("Login DTO", () => {
keyValue: "keyValue" as EncryptedString,
rpId: "rpId" as EncryptedString,
userHandle: "userHandle" as EncryptedString,
+ userName: "userName" as EncryptedString,
counter: "counter" as EncryptedString,
rpName: "rpName" as EncryptedString,
userDisplayName: "userDisplayName" as EncryptedString,
@@ -159,6 +160,7 @@ describe("Login DTO", () => {
keyValue: "keyValue_fromJSON",
rpId: "rpId_fromJSON",
userHandle: "userHandle_fromJSON",
+ userName: "userName_fromJSON",
counter: "counter_fromJSON",
rpName: "rpName_fromJSON",
userDisplayName: "userDisplayName_fromJSON",
@@ -185,6 +187,7 @@ function initializeFido2Credential(key: T): T {
key.keyValue = "keyValue";
key.rpId = "rpId";
key.userHandle = "userHandle";
+ key.userName = "userName";
key.counter = "counter";
key.rpName = "rpName";
key.userDisplayName = "userDisplayName";
@@ -202,6 +205,7 @@ function encryptFido2Credential(key: Fido2CredentialLike): Fido2Credential {
encrypted.keyValue = { encryptedString: key.keyValue, encryptionType: 0 } as EncString;
encrypted.rpId = { encryptedString: key.rpId, encryptionType: 0 } as EncString;
encrypted.userHandle = { encryptedString: key.userHandle, encryptionType: 0 } as EncString;
+ encrypted.userName = { encryptedString: key.userName, encryptionType: 0 } as EncString;
encrypted.counter = { encryptedString: key.counter, encryptionType: 0 } as EncString;
encrypted.rpName = { encryptedString: key.rpName, encryptionType: 0 } as EncString;
encrypted.userDisplayName = {
diff --git a/libs/common/src/vault/models/request/cipher.request.ts b/libs/common/src/vault/models/request/cipher.request.ts
index 949d36ab051..4fabd57d4a0 100644
--- a/libs/common/src/vault/models/request/cipher.request.ts
+++ b/libs/common/src/vault/models/request/cipher.request.ts
@@ -81,6 +81,7 @@ export class CipherRequest {
keyApi.rpName = key.rpName != null ? key.rpName.encryptedString : null;
keyApi.counter = key.counter != null ? key.counter.encryptedString : null;
keyApi.userHandle = key.userHandle != null ? key.userHandle.encryptedString : null;
+ keyApi.userName = key.userName != null ? key.userName.encryptedString : null;
keyApi.userDisplayName =
key.userDisplayName != null ? key.userDisplayName.encryptedString : null;
keyApi.discoverable =
diff --git a/libs/common/src/vault/models/view/fido2-credential.view.ts b/libs/common/src/vault/models/view/fido2-credential.view.ts
index b6894e84ff5..f07347f6626 100644
--- a/libs/common/src/vault/models/view/fido2-credential.view.ts
+++ b/libs/common/src/vault/models/view/fido2-credential.view.ts
@@ -10,6 +10,7 @@ export class Fido2CredentialView extends ItemView {
keyValue: string;
rpId: string;
userHandle: string;
+ userName: string;
counter: number;
rpName: string;
userDisplayName: string;
diff --git a/libs/common/src/vault/services/cipher.service.ts b/libs/common/src/vault/services/cipher.service.ts
index 6f669555ae6..d800d699824 100644
--- a/libs/common/src/vault/services/cipher.service.ts
+++ b/libs/common/src/vault/services/cipher.service.ts
@@ -1158,6 +1158,7 @@ export class CipherService implements CipherServiceAbstraction {
rpId: null,
rpName: null,
userHandle: null,
+ userName: null,
userDisplayName: null,
origin: null,
},
diff --git a/libs/common/src/vault/services/fido2/fido2-authenticator.service.spec.ts b/libs/common/src/vault/services/fido2/fido2-authenticator.service.spec.ts
index 39a77152c77..0fbf96922b2 100644
--- a/libs/common/src/vault/services/fido2/fido2-authenticator.service.spec.ts
+++ b/libs/common/src/vault/services/fido2/fido2-authenticator.service.spec.ts
@@ -247,6 +247,7 @@ describe("FidoAuthenticatorService", () => {
rpId: params.rpEntity.id,
rpName: params.rpEntity.name,
userHandle: Fido2Utils.bufferToString(params.userEntity.id),
+ userName: params.userEntity.name,
counter: 0,
userDisplayName: params.userEntity.displayName,
discoverable: false,
@@ -796,6 +797,7 @@ function createCipherView(
fido2CredentialView.counter = fido2Credential.counter ?? 0;
fido2CredentialView.userHandle =
fido2Credential.userHandle ?? Fido2Utils.bufferToString(randomBytes(16));
+ fido2CredentialView.userName = fido2Credential.userName;
fido2CredentialView.keyAlgorithm = fido2Credential.keyAlgorithm ?? "ECDSA";
fido2CredentialView.keyCurve = fido2Credential.keyCurve ?? "P-256";
fido2CredentialView.discoverable = fido2Credential.discoverable ?? true;
diff --git a/libs/common/src/vault/services/fido2/fido2-authenticator.service.ts b/libs/common/src/vault/services/fido2/fido2-authenticator.service.ts
index 292413b3bd3..43b1c67f826 100644
--- a/libs/common/src/vault/services/fido2/fido2-authenticator.service.ts
+++ b/libs/common/src/vault/services/fido2/fido2-authenticator.service.ts
@@ -401,6 +401,7 @@ async function createKeyView(
fido2Credential.keyValue = Fido2Utils.bufferToString(pkcs8Key);
fido2Credential.rpId = params.rpEntity.id;
fido2Credential.userHandle = Fido2Utils.bufferToString(params.userEntity.id);
+ fido2Credential.userName = params.userEntity.name;
fido2Credential.counter = 0;
fido2Credential.rpName = params.rpEntity.name;
fido2Credential.userDisplayName = params.userEntity.displayName;
diff --git a/libs/common/src/vault/services/fido2/fido2-client.service.spec.ts b/libs/common/src/vault/services/fido2/fido2-client.service.spec.ts
index 46aa40c049f..af845ac0938 100644
--- a/libs/common/src/vault/services/fido2/fido2-client.service.spec.ts
+++ b/libs/common/src/vault/services/fido2/fido2-client.service.spec.ts
@@ -58,7 +58,7 @@ describe("FidoAuthenticatorService", () => {
// Spec: If the length of options.user.id is not between 1 and 64 bytes (inclusive) then return a TypeError.
it("should throw error if user.id is too small", async () => {
- const params = createParams({ user: { id: "", displayName: "name" } });
+ const params = createParams({ user: { id: "", displayName: "displayName", name: "name" } });
const result = async () => await client.createCredential(params, tab);
@@ -70,7 +70,8 @@ describe("FidoAuthenticatorService", () => {
const params = createParams({
user: {
id: "YWJzb2x1dGVseS13YXktd2F5LXRvby1sYXJnZS1iYXNlNjQtZW5jb2RlZC11c2VyLWlkLWJpbmFyeS1zZXF1ZW5jZQ",
- displayName: "name",
+ displayName: "displayName",
+ name: "name",
},
});
@@ -261,6 +262,7 @@ describe("FidoAuthenticatorService", () => {
user: params.user ?? {
id: "YmFzZTY0LWVuY29kZWQtdXNlci1pZA",
displayName: "User Name",
+ name: "name",
},
fallbackSupported: params.fallbackSupported ?? false,
timeout: params.timeout,
diff --git a/libs/common/src/vault/services/fido2/fido2-client.service.ts b/libs/common/src/vault/services/fido2/fido2-client.service.ts
index a810d0accd6..e9eeef19801 100644
--- a/libs/common/src/vault/services/fido2/fido2-client.service.ts
+++ b/libs/common/src/vault/services/fido2/fido2-client.service.ts
@@ -395,6 +395,7 @@ function mapToMakeCredentialParams({
userEntity: {
id: Fido2Utils.stringToBuffer(params.user.id),
displayName: params.user.displayName,
+ name: params.user.name,
},
fallbackSupported: params.fallbackSupported,
};
From f2aa0ca65fa3f35fb6a40a66100cf861ecac3b78 Mon Sep 17 00:00:00 2001
From: Oscar Hinton
Date: Thu, 23 Nov 2023 11:23:11 +0100
Subject: [PATCH 18/30] [PM-4087] Add missing await for
native-messaging.service (#6708)
We missed an await which caused the if statement to never be true. This might have had the effect of not showing a browser integration error message when attempting to unlock should biometrics for some reason be unavailable.
---
apps/desktop/src/services/native-messaging.service.ts | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/apps/desktop/src/services/native-messaging.service.ts b/apps/desktop/src/services/native-messaging.service.ts
index 3463cd4365e..d4f465dca9e 100644
--- a/apps/desktop/src/services/native-messaging.service.ts
+++ b/apps/desktop/src/services/native-messaging.service.ts
@@ -125,8 +125,7 @@ export class NativeMessagingService {
switch (message.command) {
case "biometricUnlock": {
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
- if (!this.platformUtilService.supportsBiometric()) {
+ if (!(await this.platformUtilService.supportsBiometric())) {
return this.send({ command: "biometricUnlock", response: "not supported" }, appId);
}
From 59f1a2d022907d2144d5fc3e11d210fa0da95479 Mon Sep 17 00:00:00 2001
From: Oscar Hinton
Date: Thu, 23 Nov 2023 13:10:23 +0100
Subject: [PATCH 19/30] Switch NodeJS.Timer to NodeJS.Timeout (#6916)
The latest version of types/node had some breaking changes related to Timer and Timeout, #6739. It turns out that we incorrectly used the type Timer when Timeout was expected in a few places. This PR resolves them, in an effort to unblock the @types/node upgrade.
---
apps/desktop/src/auth/login/login-approval.component.ts | 2 +-
apps/desktop/src/main/messaging.main.ts | 2 +-
apps/desktop/src/main/window.main.ts | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/desktop/src/auth/login/login-approval.component.ts b/apps/desktop/src/auth/login/login-approval.component.ts
index 4fee03eb8a6..0e2c03af35d 100644
--- a/apps/desktop/src/auth/login/login-approval.component.ts
+++ b/apps/desktop/src/auth/login/login-approval.component.ts
@@ -28,7 +28,7 @@ export class LoginApprovalComponent implements OnInit, OnDestroy {
email: string;
fingerprintPhrase: string;
authRequestResponse: AuthRequestResponse;
- interval: NodeJS.Timer;
+ interval: NodeJS.Timeout;
requestTimeText: string;
dismissModal: boolean;
diff --git a/apps/desktop/src/main/messaging.main.ts b/apps/desktop/src/main/messaging.main.ts
index 2dec019da89..b63f2858138 100644
--- a/apps/desktop/src/main/messaging.main.ts
+++ b/apps/desktop/src/main/messaging.main.ts
@@ -12,7 +12,7 @@ import { MenuUpdateRequest } from "./menu/menu.updater";
const SyncInterval = 5 * 60 * 1000; // 5 minutes
export class MessagingMain {
- private syncTimeout: NodeJS.Timer;
+ private syncTimeout: NodeJS.Timeout;
constructor(private main: Main, private stateService: StateService) {}
diff --git a/apps/desktop/src/main/window.main.ts b/apps/desktop/src/main/window.main.ts
index cf792a9348a..de24254cc50 100644
--- a/apps/desktop/src/main/window.main.ts
+++ b/apps/desktop/src/main/window.main.ts
@@ -26,7 +26,7 @@ export class WindowMain {
isQuitting = false;
isClosing = false;
- private windowStateChangeTimer: NodeJS.Timer;
+ private windowStateChangeTimer: NodeJS.Timeout;
private windowStates: { [key: string]: WindowState } = {};
private enableAlwaysOnTop = false;
private session: Electron.Session;
From 74208d568e9f20b729db539fe24855d501fb54d5 Mon Sep 17 00:00:00 2001
From: Kyle Spearrin
Date: Thu, 23 Nov 2023 11:09:27 -0500
Subject: [PATCH 20/30] [PM-4690] Setting in the browser extension that turns
off passkeys (#6929)
* use passkeys setting
* check state service on isFido2FeatureEnabled
* fix broken json
* update description text
* make setting global
* invert logic to positive state
* fix and add to fido2 client service tests
---
apps/browser/src/_locales/en/messages.json | 6 ++++++
.../src/popup/settings/options.component.html | 17 +++++++++++++++
.../src/popup/settings/options.component.ts | 7 +++++++
.../platform/abstractions/state.service.ts | 2 ++
.../platform/models/domain/global-state.ts | 1 +
.../src/platform/services/state.service.ts | 18 ++++++++++++++++
.../fido2/fido2-client.service.spec.ts | 21 +++++++++++++++++++
.../services/fido2/fido2-client.service.ts | 6 +++++-
8 files changed, 77 insertions(+), 1 deletion(-)
diff --git a/apps/browser/src/_locales/en/messages.json b/apps/browser/src/_locales/en/messages.json
index af2de0643ed..0109c7036f6 100644
--- a/apps/browser/src/_locales/en/messages.json
+++ b/apps/browser/src/_locales/en/messages.json
@@ -657,6 +657,12 @@
"changedPasswordNotificationDescAlt": {
"message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
},
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
diff --git a/apps/browser/src/popup/settings/options.component.html b/apps/browser/src/popup/settings/options.component.html
index db9a29fa119..fb8906463be 100644
--- a/apps/browser/src/popup/settings/options.component.html
+++ b/apps/browser/src/popup/settings/options.component.html
@@ -104,6 +104,23 @@
}}
+
+
+
+
+
+
+
+
+ {{ "usePasskeysDesc" | i18n }}
+
+
diff --git a/apps/browser/src/popup/settings/options.component.ts b/apps/browser/src/popup/settings/options.component.ts
index b23fefbf646..159bd100e81 100644
--- a/apps/browser/src/popup/settings/options.component.ts
+++ b/apps/browser/src/popup/settings/options.component.ts
@@ -24,6 +24,7 @@ export class OptionsComponent implements OnInit {
enableContextMenuItem = false;
enableAddLoginNotification = false;
enableChangedPasswordNotification = false;
+ enablePasskeys = true;
showCardsCurrentTab = false;
showIdentitiesCurrentTab = false;
showClearClipboard = true;
@@ -100,6 +101,8 @@ export class OptionsComponent implements OnInit {
this.enableBadgeCounter = !(await this.stateService.getDisableBadgeCounter());
+ this.enablePasskeys = await this.stateService.getEnablePasskeys();
+
this.theme = await this.stateService.getTheme();
const defaultUriMatch = await this.stateService.getDefaultUriMatch();
@@ -118,6 +121,10 @@ export class OptionsComponent implements OnInit {
);
}
+ async updateEnablePasskeys() {
+ await this.stateService.setEnablePasskeys(this.enablePasskeys);
+ }
+
async updateContextMenuItem() {
await this.stateService.setDisableContextMenuItem(!this.enableContextMenuItem);
this.messagingService.send("bgUpdateContextMenu");
diff --git a/libs/common/src/platform/abstractions/state.service.ts b/libs/common/src/platform/abstractions/state.service.ts
index 374f5f7171e..f4f86cb8595 100644
--- a/libs/common/src/platform/abstractions/state.service.ts
+++ b/libs/common/src/platform/abstractions/state.service.ts
@@ -243,6 +243,8 @@ export abstract class StateService {
value: boolean,
options?: StorageOptions
) => Promise;
+ getEnablePasskeys: (options?: StorageOptions) => Promise;
+ setEnablePasskeys: (value: boolean, options?: StorageOptions) => Promise;
getDisableContextMenuItem: (options?: StorageOptions) => Promise;
setDisableContextMenuItem: (value: boolean, options?: StorageOptions) => Promise;
/**
diff --git a/libs/common/src/platform/models/domain/global-state.ts b/libs/common/src/platform/models/domain/global-state.ts
index 61fc5ffa34f..ab52115a7ed 100644
--- a/libs/common/src/platform/models/domain/global-state.ts
+++ b/libs/common/src/platform/models/domain/global-state.ts
@@ -36,6 +36,7 @@ export class GlobalState {
enableDuckDuckGoBrowserIntegration?: boolean;
region?: string;
neverDomains?: { [id: string]: unknown };
+ enablePasskeys?: boolean;
disableAddLoginNotification?: boolean;
disableChangedPasswordNotification?: boolean;
disableContextMenuItem?: boolean;
diff --git a/libs/common/src/platform/services/state.service.ts b/libs/common/src/platform/services/state.service.ts
index 2ddba9b2ffe..fda79c5524c 100644
--- a/libs/common/src/platform/services/state.service.ts
+++ b/libs/common/src/platform/services/state.service.ts
@@ -1213,6 +1213,24 @@ export class StateService<
);
}
+ async getEnablePasskeys(options?: StorageOptions): Promise {
+ return (
+ (await this.getGlobals(this.reconcileOptions(options, await this.defaultOnDiskOptions())))
+ ?.enablePasskeys ?? true
+ );
+ }
+
+ async setEnablePasskeys(value: boolean, options?: StorageOptions): Promise {
+ const globals = await this.getGlobals(
+ this.reconcileOptions(options, await this.defaultOnDiskOptions())
+ );
+ globals.enablePasskeys = value;
+ await this.saveGlobals(
+ globals,
+ this.reconcileOptions(options, await this.defaultOnDiskOptions())
+ );
+ }
+
async getDisableContextMenuItem(options?: StorageOptions): Promise {
return (
(await this.getGlobals(this.reconcileOptions(options, await this.defaultOnDiskOptions())))
diff --git a/libs/common/src/vault/services/fido2/fido2-client.service.spec.ts b/libs/common/src/vault/services/fido2/fido2-client.service.spec.ts
index af845ac0938..753c5800f7c 100644
--- a/libs/common/src/vault/services/fido2/fido2-client.service.spec.ts
+++ b/libs/common/src/vault/services/fido2/fido2-client.service.spec.ts
@@ -40,6 +40,7 @@ describe("FidoAuthenticatorService", () => {
client = new Fido2ClientService(authenticator, configService, authService, stateService);
configService.getFeatureFlag.mockResolvedValue(true);
+ stateService.getEnablePasskeys.mockResolvedValue(true);
tab = { id: 123, windowId: 456 } as chrome.tabs.Tab;
});
@@ -229,6 +230,16 @@ describe("FidoAuthenticatorService", () => {
await rejects.toThrow(FallbackRequestedError);
});
+ it("should throw FallbackRequestedError if passkeys state is not enabled", async () => {
+ const params = createParams();
+ stateService.getEnablePasskeys.mockResolvedValue(false);
+
+ const result = async () => await client.createCredential(params, tab);
+
+ const rejects = expect(result).rejects;
+ await rejects.toThrow(FallbackRequestedError);
+ });
+
it("should throw FallbackRequestedError if user is logged out", async () => {
const params = createParams();
authService.getAuthStatus.mockResolvedValue(AuthenticationStatus.LoggedOut);
@@ -389,6 +400,16 @@ describe("FidoAuthenticatorService", () => {
await rejects.toThrow(FallbackRequestedError);
});
+ it("should throw FallbackRequestedError if passkeys state is not enabled", async () => {
+ const params = createParams();
+ stateService.getEnablePasskeys.mockResolvedValue(false);
+
+ const result = async () => await client.assertCredential(params, tab);
+
+ const rejects = expect(result).rejects;
+ await rejects.toThrow(FallbackRequestedError);
+ });
+
it("should throw FallbackRequestedError if user is logged out", async () => {
const params = createParams();
authService.getAuthStatus.mockResolvedValue(AuthenticationStatus.LoggedOut);
diff --git a/libs/common/src/vault/services/fido2/fido2-client.service.ts b/libs/common/src/vault/services/fido2/fido2-client.service.ts
index e9eeef19801..e377b47c548 100644
--- a/libs/common/src/vault/services/fido2/fido2-client.service.ts
+++ b/libs/common/src/vault/services/fido2/fido2-client.service.ts
@@ -46,7 +46,11 @@ export class Fido2ClientService implements Fido2ClientServiceAbstraction {
) {}
async isFido2FeatureEnabled(): Promise {
- return await this.configService.getFeatureFlag(FeatureFlag.Fido2VaultCredentials);
+ const featureFlagEnabled = await this.configService.getFeatureFlag(
+ FeatureFlag.Fido2VaultCredentials
+ );
+ const userEnabledPasskeys = await this.stateService.getEnablePasskeys();
+ return featureFlagEnabled && userEnabledPasskeys;
}
async createCredential(
From dbceaabb2d846bfb6e2b4d42fefc5eaa6a714590 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 24 Nov 2023 11:16:31 +0000
Subject: [PATCH 21/30] Autosync the updated translations (#6960)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
---
apps/desktop/src/locales/fr/messages.json | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/apps/desktop/src/locales/fr/messages.json b/apps/desktop/src/locales/fr/messages.json
index fbf233c9dc3..de8ad0064e0 100644
--- a/apps/desktop/src/locales/fr/messages.json
+++ b/apps/desktop/src/locales/fr/messages.json
@@ -1534,11 +1534,11 @@
"message": "Définir le mot de passe principal"
},
"orgPermissionsUpdatedMustSetPassword": {
- "message": "Your organization permissions were updated, requiring you to set a master password.",
+ "message": "Les autorisations de votre organisation ont été mises à jour, vous obligeant à définir un mot de passe principal.",
"description": "Used as a card title description on the set password page to explain why the user is there"
},
"orgRequiresYouToSetPassword": {
- "message": "Your organization requires you to set a master password.",
+ "message": "Votre organisation exige que vous définissiez un mot de passe principal.",
"description": "Used as a card title description on the set password page to explain why the user is there"
},
"currentMasterPass": {
@@ -2557,10 +2557,10 @@
"message": "Nom d'utilisateur ou mot de passe incorrect"
},
"multifactorAuthenticationFailed": {
- "message": "Multifactor authentication failed"
+ "message": "Authentification multifacteur échouée"
},
"includeSharedFolders": {
- "message": "Include shared folders"
+ "message": "Inclure les dossiers partagés"
},
"lastPassEmail": {
"message": "Courriel LastPass"
@@ -2569,22 +2569,22 @@
"message": "Importation de votre compte..."
},
"lastPassMFARequired": {
- "message": "LastPass multifactor authentication required"
+ "message": "Authentification multifacteur LastPass requise"
},
"lastPassMFADesc": {
"message": "Enter your one-time passcode from your authentication app"
},
"lastPassOOBDesc": {
- "message": "Approve the login request in your authentication app or enter a one-time passcode."
+ "message": "Approuvez la demande de connexion dans votre application d'authentification ou saisissez le code d'accès à usage unique."
},
"passcode": {
- "message": "Passcode"
+ "message": "Code d'accès"
},
"lastPassMasterPassword": {
"message": "Mot de passe principal LastPass"
},
"lastPassAuthRequired": {
- "message": "LastPass authentication required"
+ "message": "Authentification LastPass requise"
},
"awaitingSSO": {
"message": "En attente de l'authentification SSO"
From b71a547d8f2a9a2ecbc587cda98c67e6e324c253 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 24 Nov 2023 12:25:47 +0100
Subject: [PATCH 22/30] Autosync the updated translations (#6961)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
---
apps/web/src/locales/af/messages.json | 15 +++++++++++++++
apps/web/src/locales/ar/messages.json | 15 +++++++++++++++
apps/web/src/locales/az/messages.json | 21 ++++++++++++++++++---
apps/web/src/locales/be/messages.json | 15 +++++++++++++++
apps/web/src/locales/bg/messages.json | 19 +++++++++++++++++--
apps/web/src/locales/bn/messages.json | 15 +++++++++++++++
apps/web/src/locales/bs/messages.json | 15 +++++++++++++++
apps/web/src/locales/ca/messages.json | 15 +++++++++++++++
apps/web/src/locales/cs/messages.json | 15 +++++++++++++++
apps/web/src/locales/cy/messages.json | 15 +++++++++++++++
apps/web/src/locales/da/messages.json | 15 +++++++++++++++
apps/web/src/locales/de/messages.json | 15 +++++++++++++++
apps/web/src/locales/el/messages.json | 15 +++++++++++++++
apps/web/src/locales/en_GB/messages.json | 15 +++++++++++++++
apps/web/src/locales/en_IN/messages.json | 15 +++++++++++++++
apps/web/src/locales/eo/messages.json | 15 +++++++++++++++
apps/web/src/locales/es/messages.json | 15 +++++++++++++++
apps/web/src/locales/et/messages.json | 15 +++++++++++++++
apps/web/src/locales/eu/messages.json | 15 +++++++++++++++
apps/web/src/locales/fa/messages.json | 15 +++++++++++++++
apps/web/src/locales/fi/messages.json | 15 +++++++++++++++
apps/web/src/locales/fil/messages.json | 15 +++++++++++++++
apps/web/src/locales/fr/messages.json | 15 +++++++++++++++
apps/web/src/locales/gl/messages.json | 15 +++++++++++++++
apps/web/src/locales/he/messages.json | 15 +++++++++++++++
apps/web/src/locales/hi/messages.json | 15 +++++++++++++++
apps/web/src/locales/hr/messages.json | 15 +++++++++++++++
apps/web/src/locales/hu/messages.json | 15 +++++++++++++++
apps/web/src/locales/id/messages.json | 15 +++++++++++++++
apps/web/src/locales/it/messages.json | 15 +++++++++++++++
apps/web/src/locales/ja/messages.json | 15 +++++++++++++++
apps/web/src/locales/ka/messages.json | 15 +++++++++++++++
apps/web/src/locales/km/messages.json | 15 +++++++++++++++
apps/web/src/locales/kn/messages.json | 15 +++++++++++++++
apps/web/src/locales/ko/messages.json | 15 +++++++++++++++
apps/web/src/locales/lv/messages.json | 17 ++++++++++++++++-
apps/web/src/locales/ml/messages.json | 15 +++++++++++++++
apps/web/src/locales/mr/messages.json | 15 +++++++++++++++
apps/web/src/locales/my/messages.json | 15 +++++++++++++++
apps/web/src/locales/nb/messages.json | 15 +++++++++++++++
apps/web/src/locales/ne/messages.json | 15 +++++++++++++++
apps/web/src/locales/nl/messages.json | 15 +++++++++++++++
apps/web/src/locales/nn/messages.json | 15 +++++++++++++++
apps/web/src/locales/or/messages.json | 15 +++++++++++++++
apps/web/src/locales/pl/messages.json | 15 +++++++++++++++
apps/web/src/locales/pt_BR/messages.json | 23 +++++++++++++++++++----
apps/web/src/locales/pt_PT/messages.json | 15 +++++++++++++++
apps/web/src/locales/ro/messages.json | 15 +++++++++++++++
apps/web/src/locales/ru/messages.json | 15 +++++++++++++++
apps/web/src/locales/si/messages.json | 15 +++++++++++++++
apps/web/src/locales/sk/messages.json | 15 +++++++++++++++
apps/web/src/locales/sl/messages.json | 15 +++++++++++++++
apps/web/src/locales/sr/messages.json | 23 +++++++++++++++++++----
apps/web/src/locales/sr_CS/messages.json | 15 +++++++++++++++
apps/web/src/locales/sv/messages.json | 15 +++++++++++++++
apps/web/src/locales/te/messages.json | 15 +++++++++++++++
apps/web/src/locales/th/messages.json | 15 +++++++++++++++
apps/web/src/locales/tr/messages.json | 15 +++++++++++++++
apps/web/src/locales/uk/messages.json | 15 +++++++++++++++
apps/web/src/locales/vi/messages.json | 15 +++++++++++++++
apps/web/src/locales/zh_CN/messages.json | 23 +++++++++++++++++++----
apps/web/src/locales/zh_TW/messages.json | 15 +++++++++++++++
62 files changed, 948 insertions(+), 18 deletions(-)
diff --git a/apps/web/src/locales/af/messages.json b/apps/web/src/locales/af/messages.json
index d2549d6df8d..550c7c9aeba 100644
--- a/apps/web/src/locales/af/messages.json
+++ b/apps/web/src/locales/af/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/ar/messages.json b/apps/web/src/locales/ar/messages.json
index bbb7d9ba4b2..c2a8af12698 100644
--- a/apps/web/src/locales/ar/messages.json
+++ b/apps/web/src/locales/ar/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/az/messages.json b/apps/web/src/locales/az/messages.json
index 298c927bad1..b95b82a9901 100644
--- a/apps/web/src/locales/az/messages.json
+++ b/apps/web/src/locales/az/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Parolla giriş et"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Yararsız keçid açarı. Lütfən yenidən sınayın."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "Keçid açarları üçün 2FA dəstəklənmir. Giriş etmək üçün tətbiqi güncəlləyin."
+ },
"loginWithPasskeyInfo": {
"message": "Bir parol olmadan avtomatik olaraq giriş etməyinizi təmin edəcək bir keçid açarı istifadə edin. Üz tanıma və ya barmaq izi kimi biometrik, ya da başqa bir FIDO2 güvənlik üsulu kimliyinizi doğrulayacaq."
},
@@ -4219,7 +4225,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"downloadAttachments": {
- "message": "Download attachments"
+ "message": "Qoşmaları endir"
},
"sendAccessUnavailable": {
"message": "Müraciət etməyə çalışdığınız Send yoxdur və ya artıq əlçatmazdır.",
@@ -4610,7 +4616,7 @@
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'"
},
"sendAccessCreatorIdentifier": {
- "message": "Bitwarden member $USER_IDENTIFIER$ shared the following with you",
+ "message": "$USER_IDENTIFIER$ Bitwarden üzvü aşağıdakıları sizinlə paylaşdı",
"placeholders": {
"user_identifier": {
"content": "$1",
@@ -7397,6 +7403,15 @@
"message": "Project access updated"
},
"unexpectedErrorSend": {
- "message": "An unexpected error has occurred while loading this Send. Try again later."
+ "message": "Bu Send yüklənərkən gözlənilməz bir xəta baş verdi. Daha sonra yenidən sınayın."
+ },
+ "seatLimitReached": {
+ "message": "Oturacaq limitinə çatıldı"
+ },
+ "contactYourProvider": {
+ "message": "Əlavə oturacaq satın almaq üçün provayderinizlə əlaqə saxlayın."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Oturacaq limitinə çatıldı. Əlavə oturacaq satın almaq üçün provayderinizlə əlaqə saxlayın."
}
}
diff --git a/apps/web/src/locales/be/messages.json b/apps/web/src/locales/be/messages.json
index 578d711ac3d..af4be9e9294 100644
--- a/apps/web/src/locales/be/messages.json
+++ b/apps/web/src/locales/be/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/bg/messages.json b/apps/web/src/locales/bg/messages.json
index 5a5f821e1a5..16c8ae49ad3 100644
--- a/apps/web/src/locales/bg/messages.json
+++ b/apps/web/src/locales/bg/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Вписване със секретен ключ"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Грешен секретен ключ. Опитайте отново."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "Двустепенното удостоверяване не се поддържа за секретни ключове. Обновете приложението, за да се впишете."
+ },
"loginWithPasskeyInfo": {
"message": "Използвайте автоматично създаден секретен ключ, чрез който ще се вписвате без нуждата от парола. За удостоверяване на самоличността Ви, ще се ползват биометрични данни, лицево разпознаване, пръстов отпечатък или друг метод за защита от тип FIDO2."
},
@@ -642,7 +648,7 @@
"message": "Секретният ключ е създаден успешно!"
},
"customName": {
- "message": "Custom name"
+ "message": "Персонализирано име"
},
"customPasskeyNameInfo": {
"message": "Изберете име за секретния си ключ, за да го разпознавате по-лесно."
@@ -657,7 +663,7 @@
"message": "Грешка при прочитането на секретния ключ. Опитайте отново или махнете тази отметка."
},
"encryptionNotSupported": {
- "message": "Encryption not supported"
+ "message": "Шифроването не се поддържа"
},
"encryptionNotEnabled": {
"message": "Шифроването не е включено"
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Възникна неочаквана грешка при зареждането на това изпращане. Опитайте отново по-късно."
+ },
+ "seatLimitReached": {
+ "message": "Достигнат е максималният брой потребители"
+ },
+ "contactYourProvider": {
+ "message": "Свържете се с доставчика си, за да закупи допълнителни места."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Достигнат е максималният брой потребители. Свържете се с доставчика си, за да закупи допълнителни места."
}
}
diff --git a/apps/web/src/locales/bn/messages.json b/apps/web/src/locales/bn/messages.json
index 8e271a0c621..9af488c3c06 100644
--- a/apps/web/src/locales/bn/messages.json
+++ b/apps/web/src/locales/bn/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/bs/messages.json b/apps/web/src/locales/bs/messages.json
index f4ae92cb1bd..c4634a34aee 100644
--- a/apps/web/src/locales/bs/messages.json
+++ b/apps/web/src/locales/bs/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/ca/messages.json b/apps/web/src/locales/ca/messages.json
index 7e7c4c4b114..a84da9282dd 100644
--- a/apps/web/src/locales/ca/messages.json
+++ b/apps/web/src/locales/ca/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Inicieu sessió amb la clau de pas"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Clau d'accés no vàlida. Torneu-ho a provar."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "No és compatible 2FA per a claus de pas. Actualitza l'aplicació per iniciar sessió."
+ },
"loginWithPasskeyInfo": {
"message": "Utilitzeu una contrasenya generada que us iniciarà automàticament sense contrasenya. La biometria, com ara el reconeixement facial o l'empremta digital, o un altre mètode de seguretat FIDO2 verificarà la vostra identitat."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "S'ha produït un error inesperat en carregar aquest enviament. Torneu a provar-ho més tard."
+ },
+ "seatLimitReached": {
+ "message": "S'ha arribat al límit de places"
+ },
+ "contactYourProvider": {
+ "message": "Contacta amb el teu proveïdor per comprar places addicionals."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "S'ha arribat al límit de places. Contacta amb el teu proveïdor per comprar places addicionals."
}
}
diff --git a/apps/web/src/locales/cs/messages.json b/apps/web/src/locales/cs/messages.json
index c567d2981e8..06cc22040c1 100644
--- a/apps/web/src/locales/cs/messages.json
+++ b/apps/web/src/locales/cs/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Přihlásit se pomocí přístupového klíče"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Neplatný přístupový klíč. Zkuste to znovu."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "Dvoufaktorové ověření pro přístupový klíč není povoleno. Aktualizujte aplikaci pro přihlášení."
+ },
"loginWithPasskeyInfo": {
"message": "Použijte vygenerovaný přístupový klíč, který Vás automaticky přihlásí bez hesla. Biometriky, jako je rozpoznávání obličeje, otisky prstů nebo jiná bezpečnostní metoda FIDO2 ověří Vaši totožnost."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Při načítání tohoto Sendu došlo k neočekávané chybě. Zkuste to znovu později."
+ },
+ "seatLimitReached": {
+ "message": "Dosažen limit počtu uživatelů"
+ },
+ "contactYourProvider": {
+ "message": "Obraťte se na svého poskytovatele pro nákup dalších uživatelů."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Byl dosažen limit počtu uživatelů. Kontaktujte svého poskytovatele pro zakoupení dalších uživatelů."
}
}
diff --git a/apps/web/src/locales/cy/messages.json b/apps/web/src/locales/cy/messages.json
index 77e07d67954..ce42d30279a 100644
--- a/apps/web/src/locales/cy/messages.json
+++ b/apps/web/src/locales/cy/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/da/messages.json b/apps/web/src/locales/da/messages.json
index c4c294b6e83..b95fbfdae9e 100644
--- a/apps/web/src/locales/da/messages.json
+++ b/apps/web/src/locales/da/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log ind med adgangsnøgle"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Ugyldig adgangsnøgle. Prøv igen."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA til adgangsnøgler understøttes ikke. Opdatér appen for at logge ind."
+ },
"loginWithPasskeyInfo": {
"message": "Brug en genereret adgangsnøgle, der automatisk logger dig ind uden en adgangskode. Biometri, såsom ansigtsgenkendelse eller fingeraftryk, eller en anden FIDO2-sikkerhedsmetode, vil bekræfte din identitet."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "En uventet fejl opstod under indlæsning af denne Send. Forsøg igen senere."
+ },
+ "seatLimitReached": {
+ "message": "Pladskvote er opbrugt"
+ },
+ "contactYourProvider": {
+ "message": "Kontakt udbyderen for at tilkøbe yderligere pladser."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Pladskvote er opbrugt. Kontakt udbyderen for at tilkøbe yderligere pladser."
}
}
diff --git a/apps/web/src/locales/de/messages.json b/apps/web/src/locales/de/messages.json
index d6bf3cab26a..b704ed44393 100644
--- a/apps/web/src/locales/de/messages.json
+++ b/apps/web/src/locales/de/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Mit Passkey anmelden"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Ungültiger Passkey. Bitte versuche es erneut."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA für Passkeys wird nicht unterstützt. Aktualisiere die App, um dich anzumelden."
+ },
"loginWithPasskeyInfo": {
"message": "Verwende einen generierten Passkey, der dich automatisch ohne Passwort anmeldet. Biometrische Merkmale wie Gesichtserkennung oder Fingerabdruck oder eine andere FIDO2-Sicherheitsmethode verifizieren deine Identität."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Beim Laden dieses Sends ist ein unerwarteter Fehler aufgetreten. Versuche es später erneut."
+ },
+ "seatLimitReached": {
+ "message": "Benutzerplatzlimit wurde erreicht"
+ },
+ "contactYourProvider": {
+ "message": "Kontaktiere deinen Anbieter, um zusätzliche Benutzerplätze zu erwerben."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Das Benutzerplatzlimit wurde erreicht. Kontaktiere deinen Anbieter, um zusätzliche Benutzerplätze zu erwerben."
}
}
diff --git a/apps/web/src/locales/el/messages.json b/apps/web/src/locales/el/messages.json
index d7ff3c648b6..44450c4f917 100644
--- a/apps/web/src/locales/el/messages.json
+++ b/apps/web/src/locales/el/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/en_GB/messages.json b/apps/web/src/locales/en_GB/messages.json
index ecbabbde081..3418a5dea8d 100644
--- a/apps/web/src/locales/en_GB/messages.json
+++ b/apps/web/src/locales/en_GB/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/en_IN/messages.json b/apps/web/src/locales/en_IN/messages.json
index 244c300d817..129613e94fa 100644
--- a/apps/web/src/locales/en_IN/messages.json
+++ b/apps/web/src/locales/en_IN/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/eo/messages.json b/apps/web/src/locales/eo/messages.json
index 4d1e883a162..fa09843e3ec 100644
--- a/apps/web/src/locales/eo/messages.json
+++ b/apps/web/src/locales/eo/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/es/messages.json b/apps/web/src/locales/es/messages.json
index 26a70699bdb..860803f3133 100644
--- a/apps/web/src/locales/es/messages.json
+++ b/apps/web/src/locales/es/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/et/messages.json b/apps/web/src/locales/et/messages.json
index 456ed4f3d72..fd8c79eb1db 100644
--- a/apps/web/src/locales/et/messages.json
+++ b/apps/web/src/locales/et/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/eu/messages.json b/apps/web/src/locales/eu/messages.json
index 7c67cce7f25..85bfdb2ed2d 100644
--- a/apps/web/src/locales/eu/messages.json
+++ b/apps/web/src/locales/eu/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/fa/messages.json b/apps/web/src/locales/fa/messages.json
index 89299d8ab26..0bc4e61e35d 100644
--- a/apps/web/src/locales/fa/messages.json
+++ b/apps/web/src/locales/fa/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "با کلید عبور وارد شوید"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "از یک کلمه عبور ایجاد شده استفاده کنید که به طور خودکار بدون کلمه عبور شما را وارد میکند. بیومتریکها، مانند تشخیص چهره یا اثر انگشت، یا سایر روشهای امنیتی FIDO2 هویت شما را تأیید میکنند."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/fi/messages.json b/apps/web/src/locales/fi/messages.json
index 14b954f26aa..9450bd659dd 100644
--- a/apps/web/src/locales/fi/messages.json
+++ b/apps/web/src/locales/fi/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Kirjaudu suojausavaimella"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Käytä generoitua suojausavainta, joka kirjaa sinut automaattisesti sisään ilman salasanaa. Henkilöllisyytesi vahvistetaan kasvojen tunnistuksen tai sormenjäljen kataisilla biometrisillä tiedoilla, tai jollakin muulla FIDO2-suojausratkaisulla."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Odottamaton virhe ladattaessa Sendiä. Yritä myöhemmin uudelleen."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/fil/messages.json b/apps/web/src/locales/fil/messages.json
index 0b79921ff0c..ccab05deaf3 100644
--- a/apps/web/src/locales/fil/messages.json
+++ b/apps/web/src/locales/fil/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/fr/messages.json b/apps/web/src/locales/fr/messages.json
index e5a5e0e9563..1aa7659f64f 100644
--- a/apps/web/src/locales/fr/messages.json
+++ b/apps/web/src/locales/fr/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Se connecter avec la clé d'accès"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Passkey invalide. Veuillez réessayer de nouveau."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "La 2FA pour les Passkey n'est pas pris en charge. Mettez à jour l'application pour vous connecter."
+ },
"loginWithPasskeyInfo": {
"message": "Utilisez une clé d'accès générée qui vous connectera automatiquement sans mot de passe. Les fonctions biométriques, comme la reconnaissance faciale, l'empreinte digitale, ou une autre méthode de sécurité FIDO2 vérifiera votre identité."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Une erreur inattendue est survenue lors du chargement de ce Send. Réessayez plus tard."
+ },
+ "seatLimitReached": {
+ "message": "La limite de places a été atteinte"
+ },
+ "contactYourProvider": {
+ "message": "Contactez votre fournisseur pour acheter des places supplémentaires."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "La limite de places a été atteinte. Contactez votre fournisseur pour acheter des places supplémentaires."
}
}
diff --git a/apps/web/src/locales/gl/messages.json b/apps/web/src/locales/gl/messages.json
index 77e07d67954..ce42d30279a 100644
--- a/apps/web/src/locales/gl/messages.json
+++ b/apps/web/src/locales/gl/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/he/messages.json b/apps/web/src/locales/he/messages.json
index 1ab9f723784..9891b917073 100644
--- a/apps/web/src/locales/he/messages.json
+++ b/apps/web/src/locales/he/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/hi/messages.json b/apps/web/src/locales/hi/messages.json
index d3f42f2b036..cae7d04c617 100644
--- a/apps/web/src/locales/hi/messages.json
+++ b/apps/web/src/locales/hi/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/hr/messages.json b/apps/web/src/locales/hr/messages.json
index 65e7d69e90f..f10717c54e4 100644
--- a/apps/web/src/locales/hr/messages.json
+++ b/apps/web/src/locales/hr/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Prijava pristupnim ključem"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/hu/messages.json b/apps/web/src/locales/hu/messages.json
index a7ef618f490..3939a406589 100644
--- a/apps/web/src/locales/hu/messages.json
+++ b/apps/web/src/locales/hu/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Bejelentkezés jelszóval"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Érvénytelen jelszó. Próbálja újra."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "A 2FA a jelszónál nem támogatott. A bejelentkezéshez frissítsük az alkalmazást."
+ },
"loginWithPasskeyInfo": {
"message": "Használjunk generált jelszót, amely automatikusan, jelszó nélkül bejelentkeztet. A biometrikus adatok, például az arcfelismerés vagy az ujjlenyomat, vagy más FIDO2 biztonsági módszer igazolja személyazonosságot."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Váratlan hiba történt a Send betöltésekor. Próbáljuk újra később."
+ },
+ "seatLimitReached": {
+ "message": "A hely korlát elérésre került."
+ },
+ "contactYourProvider": {
+ "message": "További helyek vásárlásához forduljunk a szolgáltatóhoz."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "A helyek száma elérésre került. További helyek vásárlásához forduljunk a szolgáltatóhoz."
}
}
diff --git a/apps/web/src/locales/id/messages.json b/apps/web/src/locales/id/messages.json
index fa0aa9340d2..3ced061b3d6 100644
--- a/apps/web/src/locales/id/messages.json
+++ b/apps/web/src/locales/id/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/it/messages.json b/apps/web/src/locales/it/messages.json
index f7e9ea0ed0c..a755496ae36 100644
--- a/apps/web/src/locales/it/messages.json
+++ b/apps/web/src/locales/it/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Accedi con passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Passkey non valida. Riprova."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "La 2FA per le passkey non è supportata. Aggiorna l'app per accedere."
+ },
"loginWithPasskeyInfo": {
"message": "Usa una passkey che ti farà accedere automaticamente senza una password. L'autenticazione biometrica, come il riconoscimento facciale o l'impronta digitale, o un altro metodo di sicurezza FIDO2 verificherà la tua identità."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Si è verificato un errore imprevisto durante il caricamento di questo Send. Riprova più tardi."
+ },
+ "seatLimitReached": {
+ "message": "Il limite degli slot è stato raggiunto"
+ },
+ "contactYourProvider": {
+ "message": "Contatta il tuo fornitore per acquistare slot aggiuntivi."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Il limite degli slot è stato raggiunto. Contatta il tuo fornitore per acquistare slot aggiuntivi."
}
}
diff --git a/apps/web/src/locales/ja/messages.json b/apps/web/src/locales/ja/messages.json
index 09de6c0838a..480905fc255 100644
--- a/apps/web/src/locales/ja/messages.json
+++ b/apps/web/src/locales/ja/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "パスキー でログイン"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "無効なパスキーです。もう一度やり直してください。"
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "パスキーの2段階認証はサポートされていません。ログインするにはアプリを更新してください。"
+ },
"loginWithPasskeyInfo": {
"message": "パスワードなしで自動的にログインできる、生成されたパスキーを使用します。顔や指紋などの生体認証、または他の FIDO2 認証方式で本人確認を行います。"
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "この Send の読み込み中に予期しないエラーが発生しました。後でもう一度お試しください。"
+ },
+ "seatLimitReached": {
+ "message": "シート数の上限に達しました"
+ },
+ "contactYourProvider": {
+ "message": "追加のシートを購入するには、プロバイダに連絡してください。"
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "シート数の上限に達しました。追加のシートを購入するには、プロバイダに連絡してください。"
}
}
diff --git a/apps/web/src/locales/ka/messages.json b/apps/web/src/locales/ka/messages.json
index a3fe70ddd10..9a99b861f40 100644
--- a/apps/web/src/locales/ka/messages.json
+++ b/apps/web/src/locales/ka/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/km/messages.json b/apps/web/src/locales/km/messages.json
index 77e07d67954..ce42d30279a 100644
--- a/apps/web/src/locales/km/messages.json
+++ b/apps/web/src/locales/km/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/kn/messages.json b/apps/web/src/locales/kn/messages.json
index ca6c70819bd..711c041e6ba 100644
--- a/apps/web/src/locales/kn/messages.json
+++ b/apps/web/src/locales/kn/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/ko/messages.json b/apps/web/src/locales/ko/messages.json
index 80ac34fa7c4..62c3c1d9bf8 100644
--- a/apps/web/src/locales/ko/messages.json
+++ b/apps/web/src/locales/ko/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/lv/messages.json b/apps/web/src/locales/lv/messages.json
index 986f44caf9a..37997204006 100644
--- a/apps/web/src/locales/lv/messages.json
+++ b/apps/web/src/locales/lv/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Pieteikties ar piekļuves atslēgu"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Nederīga piekļuves atslēga. Lūgums mēģināt vēlreiz."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "Divpakāpju pieteikšanās netiek atbalstīta piekļuves atslēgām. Jāatjaunina lietotne, lai pieteiktos."
+ },
"loginWithPasskeyInfo": {
"message": "Piekļuves atslēga ir izmantojama, lai automātiski pieteiktos bez paroles. Biometrija, piemēram, sejas atpazīšana vai pirkstu nospiedums, vai cits FIDO2 drošības veids apstiprinās identitāti."
},
@@ -4937,7 +4943,7 @@
"message": "Apvienība tika veiksmīgi pievienota sniedzējam"
},
"accessingUsingProvider": {
- "message": "Piekļūst apvienībai ar sniedzēju $PROVIDER$",
+ "message": "Piekļūst apvienībai ar nodrošinātāju $PROVIDER$",
"placeholders": {
"provider": {
"content": "$1",
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Atgadījās neparedzēta kļūda šī Send ielādēšanas laikā. Vēlāk jāmēģina vēlreiz."
+ },
+ "seatLimitReached": {
+ "message": "Ir sasniegts vietu ierobežojums"
+ },
+ "contactYourProvider": {
+ "message": "Jāsazinās ar nodrošinātāju, lai iegādātos papildu vietas."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Ir sasniegts vietu ierobežojums. Jāsazinās ar savu nodrošinātāju, lai iegādātos papildu vietas."
}
}
diff --git a/apps/web/src/locales/ml/messages.json b/apps/web/src/locales/ml/messages.json
index ebd600ce3c0..d535a5232c4 100644
--- a/apps/web/src/locales/ml/messages.json
+++ b/apps/web/src/locales/ml/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/mr/messages.json b/apps/web/src/locales/mr/messages.json
index 77e07d67954..ce42d30279a 100644
--- a/apps/web/src/locales/mr/messages.json
+++ b/apps/web/src/locales/mr/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/my/messages.json b/apps/web/src/locales/my/messages.json
index 77e07d67954..ce42d30279a 100644
--- a/apps/web/src/locales/my/messages.json
+++ b/apps/web/src/locales/my/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/nb/messages.json b/apps/web/src/locales/nb/messages.json
index 6c4ff5e3117..541af380f93 100644
--- a/apps/web/src/locales/nb/messages.json
+++ b/apps/web/src/locales/nb/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/ne/messages.json b/apps/web/src/locales/ne/messages.json
index 05c85aa7858..88e8b2191a2 100644
--- a/apps/web/src/locales/ne/messages.json
+++ b/apps/web/src/locales/ne/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/nl/messages.json b/apps/web/src/locales/nl/messages.json
index 81222b6059e..3bb4d5bacc3 100644
--- a/apps/web/src/locales/nl/messages.json
+++ b/apps/web/src/locales/nl/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Inloggen met passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Ongeldige Passkey. Probeer het opnieuw."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA voor Passkeys is niet ondersteund. Werk de app bij om in te loggen."
+ },
"loginWithPasskeyInfo": {
"message": "Gebruik een gegenereerde passkey die je automatisch inlogt zonder wachtwoord. Biometrie, zoals gezichtsherkenning of vingerafdruk, of een andere FIDO2-beveiligingsmethode controleren je identiteit."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Er is een onverwachte fout opgetreden tijdens het laden van deze Send. Probeer het later opnieuw."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/nn/messages.json b/apps/web/src/locales/nn/messages.json
index d101f348674..852256bda1a 100644
--- a/apps/web/src/locales/nn/messages.json
+++ b/apps/web/src/locales/nn/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/or/messages.json b/apps/web/src/locales/or/messages.json
index 77e07d67954..ce42d30279a 100644
--- a/apps/web/src/locales/or/messages.json
+++ b/apps/web/src/locales/or/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/pl/messages.json b/apps/web/src/locales/pl/messages.json
index 35fe6a505d4..b6cc6396e4d 100644
--- a/apps/web/src/locales/pl/messages.json
+++ b/apps/web/src/locales/pl/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Zaloguj się za pomocą passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Błędny passkey. Spróbuj ponownie."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA dla passkey nie jest obsługiwane. Zaktualizuj aplikację, aby się zalogować."
+ },
"loginWithPasskeyInfo": {
"message": "Użyj wygenerowanego passkey'a, który automatycznie zaloguje Cię bez hasła. Biometrie, takie jak rozpoznawanie twarzy lub odcisk palca, lub inna metoda zabezpieczeń FIDO2, zweryfikują Twoją tożsamość."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/pt_BR/messages.json b/apps/web/src/locales/pt_BR/messages.json
index 5d592f7bb77..eccec91dd43 100644
--- a/apps/web/src/locales/pt_BR/messages.json
+++ b/apps/web/src/locales/pt_BR/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Iniciar sessão com a chave de acesso"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use uma senha gerada que fará o login automaticamente sem uma senha. Biometrias como reconhecimento facial ou impressão digital, ou outro método de segurança FIDO2 verificarão sua identidade."
},
@@ -4219,7 +4225,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"downloadAttachments": {
- "message": "Download attachments"
+ "message": "Baixar anexos"
},
"sendAccessUnavailable": {
"message": "O Send que você está tentando acessar não existe ou não está mais disponível.",
@@ -4610,7 +4616,7 @@
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'"
},
"sendAccessCreatorIdentifier": {
- "message": "Bitwarden member $USER_IDENTIFIER$ shared the following with you",
+ "message": "O usuário $USER_IDENTIFIER$ do Bitwarden compartilhou o seguinte com você",
"placeholders": {
"user_identifier": {
"content": "$1",
@@ -7183,7 +7189,7 @@
"message": "Avançar"
},
"ssoLoginIsRequired": {
- "message": "SSO login is required"
+ "message": "Login SSO é obrigatório"
},
"selectedRegionFlag": {
"message": "Sinalização de região selecionada"
@@ -7397,6 +7403,15 @@
"message": "Project access updated"
},
"unexpectedErrorSend": {
- "message": "An unexpected error has occurred while loading this Send. Try again later."
+ "message": "Ocorreu um erro inesperado ao carregar este Envio. Tente novamente mais tarde."
+ },
+ "seatLimitReached": {
+ "message": "Limite de lugares foi atingido"
+ },
+ "contactYourProvider": {
+ "message": "Entre em contato com seu provedor para comprar lugares adicionais."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "O limite de lugares foi atingido. Entre em contato com seu provedor para comprar lugares adicionais."
}
}
diff --git a/apps/web/src/locales/pt_PT/messages.json b/apps/web/src/locales/pt_PT/messages.json
index aff9efc4b3b..94cb66ad34c 100644
--- a/apps/web/src/locales/pt_PT/messages.json
+++ b/apps/web/src/locales/pt_PT/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Iniciar sessão com a chave de acesso"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Chave de acesso inválida. Por favor, tente novamente."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "A 2FA para chaves de acesso não é suportada. Atualize a aplicação para iniciar sessão."
+ },
"loginWithPasskeyInfo": {
"message": "Utilize uma chave de acesso gerada que lhe permitirá iniciar sessão automaticamente sem uma palavra-passe. A biometria, como o reconhecimento facial ou a impressão digital ou outro método de segurança FIDO2, verificará a sua identidade."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Ocorreu um erro inesperado ao carregar este Send. Tente novamente mais tarde."
+ },
+ "seatLimitReached": {
+ "message": "O limite de lugares foi atingido"
+ },
+ "contactYourProvider": {
+ "message": "Contacte o seu fornecedor para adquirir lugares adicionais."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "O limite de lugares foi atingido. Contacte o seu fornecedor para adquirir lugares adicionais."
}
}
diff --git a/apps/web/src/locales/ro/messages.json b/apps/web/src/locales/ro/messages.json
index babd9be2e0a..f09e7c03cc4 100644
--- a/apps/web/src/locales/ro/messages.json
+++ b/apps/web/src/locales/ro/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/ru/messages.json b/apps/web/src/locales/ru/messages.json
index c47e7995067..3d231053f46 100644
--- a/apps/web/src/locales/ru/messages.json
+++ b/apps/web/src/locales/ru/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Войти с ключом доступа"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Неверный ключ доступа. Попробуйте снова."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA для ключей доступа не поддерживается. Для авторизации обновите приложение."
+ },
"loginWithPasskeyInfo": {
"message": "Используйте сгенерированный ключ доступа для автоматической авторизации без пароля. Ваша личность будет подтверждена биометрическими данными (распознаванием лица, отпечатком пальца или другим методом безопасности FIDO2)."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "При загрузке этой Send произошла непредвиденная ошибка. Повторите попытку позже."
+ },
+ "seatLimitReached": {
+ "message": "Лимит мест исчерпан"
+ },
+ "contactYourProvider": {
+ "message": "Свяжитесь с вашим провайдером для покупки дополнительных мест."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Лимит мест исчерпан. Свяжитесь с вашим провайдером для покупки дополнительных мест."
}
}
diff --git a/apps/web/src/locales/si/messages.json b/apps/web/src/locales/si/messages.json
index 0350e6464bf..f61eb9298c6 100644
--- a/apps/web/src/locales/si/messages.json
+++ b/apps/web/src/locales/si/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/sk/messages.json b/apps/web/src/locales/sk/messages.json
index effd87f2185..4fb76c43c39 100644
--- a/apps/web/src/locales/sk/messages.json
+++ b/apps/web/src/locales/sk/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Prihlásiť sa s prístupovým kľúčom"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Nesprávne Passkey heslo. Prosím skúste to znovu."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA pre Passkey nie je podporované. Pre prihlásenie aktualizujte aplikáciu."
+ },
"loginWithPasskeyInfo": {
"message": "Použite vygenerovaný prístupový kľúč, ktorý vás automaticky prihlási bez zadávania hesla. Vaša identita bude overená pomocou biometrie, ako napríklad rozpoznanie tváre alebo odtlačok prsta, alebo pomocou ďalšej FIDO2 bezpečnostnej metódy."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Nastal neočakávaný problém pri načítavaní tohto Sendu. Skúste to neskôr."
+ },
+ "seatLimitReached": {
+ "message": "Bol dosiahnutý limit počtu používateľských licencií"
+ },
+ "contactYourProvider": {
+ "message": "Kontaktujte vášho poskytovateľa pre zakúpenie dodatočných licencií."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Bol dosiahnutý limit počtu používateľských licencií. Kontaktujte vášho poskytovateľa pre zakúpenie dodatočných licencií."
}
}
diff --git a/apps/web/src/locales/sl/messages.json b/apps/web/src/locales/sl/messages.json
index b4fa9f8cb33..59660921956 100644
--- a/apps/web/src/locales/sl/messages.json
+++ b/apps/web/src/locales/sl/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/sr/messages.json b/apps/web/src/locales/sr/messages.json
index 09c15aacff3..3f772b8c8d9 100644
--- a/apps/web/src/locales/sr/messages.json
+++ b/apps/web/src/locales/sr/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Пријавите се са приступачним кључем"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Неважећи приступни кључ. Молим вас, покушајте поново."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA за приступни кључ није подржано. Надоградити апликацјиу за пријаву."
+ },
"loginWithPasskeyInfo": {
"message": "Користите генерисан passkey који ће вас аутоматски пријавити без лозинке. Биометрија, као што је препознавање лица или отисак прста, или неки други FIDO2 метод за проверу идентитета."
},
@@ -4219,7 +4225,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"downloadAttachments": {
- "message": "Download attachments"
+ "message": "Преузмите прилоге"
},
"sendAccessUnavailable": {
"message": "„Send“ које покушавате да приступите не постоји или више није доступан.",
@@ -4610,7 +4616,7 @@
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'"
},
"sendAccessCreatorIdentifier": {
- "message": "Bitwarden member $USER_IDENTIFIER$ shared the following with you",
+ "message": "Bitwarden члан $USER_IDENTIFIER$ је поделио следеће са тобом",
"placeholders": {
"user_identifier": {
"content": "$1",
@@ -7183,7 +7189,7 @@
"message": "Следеће"
},
"ssoLoginIsRequired": {
- "message": "SSO login is required"
+ "message": "SSO пријава је потребна"
},
"selectedRegionFlag": {
"message": "Одабрана застава"
@@ -7397,6 +7403,15 @@
"message": "Приступ пројекту је ажуриран"
},
"unexpectedErrorSend": {
- "message": "An unexpected error has occurred while loading this Send. Try again later."
+ "message": "Дошло је до неочекиване грешке при учитавању овога Send. Покушати поново касније."
+ },
+ "seatLimitReached": {
+ "message": "Достигнуто је ограничење броја места"
+ },
+ "contactYourProvider": {
+ "message": "Обратите се свом провајдеру да бисте купили додатна места."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Достигнуто је ограничење броја места. Обратите се свом провајдеру да бисте купили додатна места."
}
}
diff --git a/apps/web/src/locales/sr_CS/messages.json b/apps/web/src/locales/sr_CS/messages.json
index d5510f30b4d..598581ce92c 100644
--- a/apps/web/src/locales/sr_CS/messages.json
+++ b/apps/web/src/locales/sr_CS/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/sv/messages.json b/apps/web/src/locales/sv/messages.json
index bb7847f07b9..101a709f6a1 100644
--- a/apps/web/src/locales/sv/messages.json
+++ b/apps/web/src/locales/sv/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Ett oväntat fel inträffade när denna Send laddades. Försök igen senare."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/te/messages.json b/apps/web/src/locales/te/messages.json
index 77e07d67954..ce42d30279a 100644
--- a/apps/web/src/locales/te/messages.json
+++ b/apps/web/src/locales/te/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/th/messages.json b/apps/web/src/locales/th/messages.json
index d1f77892e0b..6440c620b77 100644
--- a/apps/web/src/locales/th/messages.json
+++ b/apps/web/src/locales/th/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/tr/messages.json b/apps/web/src/locales/tr/messages.json
index 1b171cbff85..a117b8e459f 100644
--- a/apps/web/src/locales/tr/messages.json
+++ b/apps/web/src/locales/tr/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Geçiş anahtarıyla giriş yap"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Geçersiz geçiş anahtarı. Lütfen tekrar deneyin."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "Geçiş anahtarları için 2FA desteklebmiyor. Giriş yapmak için uygulamayı güncelleyin."
+ },
"loginWithPasskeyInfo": {
"message": "Parola kullanmadan otomatik olarak giriş yapmanızı sağlayacak bir geçiş anahtarı kullanabilirsiniz. Kimliğinizi doğrulamak için yüz tanıma veya parmak izi gibi biyometri özellikleri ya da başka bir FIDO2 güvenlik yöntemi kullanılacaktır."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Bu Gönderim yüklenirken beklenmeyen bir hata oluştu. Daha sonra tekrar deneyin."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
diff --git a/apps/web/src/locales/uk/messages.json b/apps/web/src/locales/uk/messages.json
index 86312163a53..f4beff74863 100644
--- a/apps/web/src/locales/uk/messages.json
+++ b/apps/web/src/locales/uk/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Увійти з ключем доступу"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Недійсний ключ доступу. Повторіть спробу."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA для ключів доступу не підтримується. Оновіть програму, щоб увійти."
+ },
"loginWithPasskeyInfo": {
"message": "Використовуйте згенерований ключ доступу для автоматичного входу без пароля. Ваша авторизація відбуватиметься з використанням біометрії, як-от розпізнавання обличчя чи відбитків пальців, або іншого методу безпеки FIDO2."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Під час завантаження цього відправлення сталася неочікувана помилка. Повторіть спробу пізніше."
+ },
+ "seatLimitReached": {
+ "message": "Досягнуто обмеження кількості місць"
+ },
+ "contactYourProvider": {
+ "message": "Зверніться до свого провайдера для придбання додаткових місць."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Досягнуто обмеження кількості місць. Зверніться до свого провайдера для придбання додаткових місць."
}
}
diff --git a/apps/web/src/locales/vi/messages.json b/apps/web/src/locales/vi/messages.json
index e95c92fd387..b10ae872645 100644
--- a/apps/web/src/locales/vi/messages.json
+++ b/apps/web/src/locales/vi/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "Log in with passkey"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "PassKey sai. Hãy thử lại."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "Chưa hỗ trợ 2FA cho PassKey. Cập nhật app để đăng nhập."
+ },
"loginWithPasskeyInfo": {
"message": "Use a generated passkey that will automatically log you in without a password. Biometrics, like facial recognition or fingerprint, or another FIDO2 security method will verify your identity."
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "Đã xảy ra lỗi khi tải mục Gửi này. Hãy thử lại sau."
+ },
+ "seatLimitReached": {
+ "message": "Số ghế sử dụng hàng tháng đã đạt đến giới hạn"
+ },
+ "contactYourProvider": {
+ "message": "Liên hệ nhà cung cấp của bạn để mua thêm ghế."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Số ghế sử dụng hàng tháng đã đạt đến giới hạn. Liên hệ nhà cung cấp để mua thêm."
}
}
diff --git a/apps/web/src/locales/zh_CN/messages.json b/apps/web/src/locales/zh_CN/messages.json
index 2d40fe30386..384a55e3d84 100644
--- a/apps/web/src/locales/zh_CN/messages.json
+++ b/apps/web/src/locales/zh_CN/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "使用通行密钥登录"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "通行密钥无效。请重试。"
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "使用已生成的通行密钥,无需密码即可自动登录。生物识别(例如面部识别或指纹)或其他 FIDO2 安全方法将用于验证您的身份。"
},
@@ -4219,7 +4225,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"downloadAttachments": {
- "message": "Download attachments"
+ "message": "下载附件"
},
"sendAccessUnavailable": {
"message": "您尝试访问的 Send 不存在或不再可用。",
@@ -4610,7 +4616,7 @@
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'"
},
"sendAccessCreatorIdentifier": {
- "message": "Bitwarden member $USER_IDENTIFIER$ shared the following with you",
+ "message": "Bitwarden 成员 $USER_IDENTIFIER$ 与您分享了以下内容",
"placeholders": {
"user_identifier": {
"content": "$1",
@@ -7183,7 +7189,7 @@
"message": "下一步"
},
"ssoLoginIsRequired": {
- "message": "SSO login is required"
+ "message": "要求 SSO 登录"
},
"selectedRegionFlag": {
"message": "选择的区域旗帜"
@@ -7397,6 +7403,15 @@
"message": "工程访问权限已更新"
},
"unexpectedErrorSend": {
- "message": "An unexpected error has occurred while loading this Send. Try again later."
+ "message": "加载此 Send 时发生意外错误。请稍后再试。"
+ },
+ "seatLimitReached": {
+ "message": "已达到席位限制"
+ },
+ "contactYourProvider": {
+ "message": "请联系您的供应商购买更多席位。"
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "已达到席位限制。请联系您的供应商购买更多席位。"
}
}
diff --git a/apps/web/src/locales/zh_TW/messages.json b/apps/web/src/locales/zh_TW/messages.json
index 0b56f49e779..038c3be77df 100644
--- a/apps/web/src/locales/zh_TW/messages.json
+++ b/apps/web/src/locales/zh_TW/messages.json
@@ -614,6 +614,12 @@
"loginWithPasskey": {
"message": "使用密碼金鑰登入"
},
+ "invalidPasskeyPleaseTryAgain": {
+ "message": "Invalid Passkey. Please try again."
+ },
+ "twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
+ "message": "2FA for passkeys is not supported. Update the app to log in."
+ },
"loginWithPasskeyInfo": {
"message": "使用已產生的密碼金輪,無需密碼即可自動登入。生物特徵辨識(例如面部識別或指紋)或其他 FIDO2 安全方式將用於確認您的身分。"
},
@@ -7398,5 +7404,14 @@
},
"unexpectedErrorSend": {
"message": "An unexpected error has occurred while loading this Send. Try again later."
+ },
+ "seatLimitReached": {
+ "message": "Seat limit has been reached"
+ },
+ "contactYourProvider": {
+ "message": "Contact your provider to purchase additional seats."
+ },
+ "seatLimitReachedContactYourProvider": {
+ "message": "Seat limit has been reached. Contact your provider to purchase additional seats."
}
}
From f678de54b63259f40261626ce0f550f3ce9080ab Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 24 Nov 2023 12:28:43 +0100
Subject: [PATCH 23/30] [deps] Tools: Update @types/papaparse to v5.3.13
(#6932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
package-lock.json | 12 ++++++------
package.json | 2 +-
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 571434e8c0f..f2769ca55f3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -64,7 +64,7 @@
"proper-lockfile": "4.1.2",
"qrious": "4.0.2",
"rxjs": "7.8.1",
- "tabbable": "^6.2.0",
+ "tabbable": "6.2.0",
"tldts": "6.0.14",
"utf-8-validate": "5.0.10",
"zone.js": "0.12.0",
@@ -107,14 +107,14 @@
"@types/node-fetch": "2.6.4",
"@types/node-forge": "1.3.4",
"@types/node-ipc": "9.2.0",
- "@types/papaparse": "5.3.7",
+ "@types/papaparse": "5.3.13",
"@types/proper-lockfile": "4.1.2",
"@types/react": "16.14.45",
"@types/retry": "0.12.2",
"@types/zxcvbn": "4.4.1",
"@typescript-eslint/eslint-plugin": "5.62.0",
"@typescript-eslint/parser": "5.62.0",
- "@webcomponents/custom-elements": "^1.6.0",
+ "@webcomponents/custom-elements": "1.6.0",
"autoprefixer": "10.4.15",
"base64-loader": "1.0.0",
"buffer": "6.0.3",
@@ -14244,9 +14244,9 @@
"dev": true
},
"node_modules/@types/papaparse": {
- "version": "5.3.7",
- "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.7.tgz",
- "integrity": "sha512-f2HKmlnPdCvS0WI33WtCs5GD7X1cxzzS/aduaxSu3I7TbhWlENjSPs6z5TaB9K0J+BH1jbmqTaM+ja5puis4wg==",
+ "version": "5.3.13",
+ "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.13.tgz",
+ "integrity": "sha512-tYSlZI3tIdBHXea8fZHcmwbsd1mSUikdMUyqpqj0Zzfu2GTGUSHEKmcnBg699WJ8UnxG31rXD4b1mLGPOAxS2w==",
"dev": true,
"dependencies": {
"@types/node": "*"
diff --git a/package.json b/package.json
index 34f9d217b81..9ee884b31d2 100644
--- a/package.json
+++ b/package.json
@@ -70,7 +70,7 @@
"@types/node-fetch": "2.6.4",
"@types/node-forge": "1.3.4",
"@types/node-ipc": "9.2.0",
- "@types/papaparse": "5.3.7",
+ "@types/papaparse": "5.3.13",
"@types/proper-lockfile": "4.1.2",
"@types/react": "16.14.45",
"@types/retry": "0.12.2",
From 802fb291207e75be36054d8019fbd245cb41902c Mon Sep 17 00:00:00 2001
From: Todd Martin <106564991+trmartin4@users.noreply.github.com>
Date: Sat, 25 Nov 2023 16:58:38 -0500
Subject: [PATCH 24/30] Fix on-premise vs. on-premises in org plan verbiage
(#6966)
---
apps/web/src/locales/en/messages.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json
index 6d0a3a8e3ed..9987d92357b 100644
--- a/apps/web/src/locales/en/messages.json
+++ b/apps/web/src/locales/en/messages.json
@@ -2481,7 +2481,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
From 640700e4f0133219edb19dd566881af71abdfe93 Mon Sep 17 00:00:00 2001
From: Todd Martin <106564991+trmartin4@users.noreply.github.com>
Date: Mon, 27 Nov 2023 03:10:49 -0500
Subject: [PATCH 25/30] Add missing translations on WebAuthn login (#6965)
---
apps/web/src/locales/en/messages.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json
index 9987d92357b..891551b590e 100644
--- a/apps/web/src/locales/en/messages.json
+++ b/apps/web/src/locales/en/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
From 5805497efad16c104c760088f06f46fbd43743f3 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon, 27 Nov 2023 11:35:04 +0000
Subject: [PATCH 26/30] Autosync the updated translations (#6962)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
---
apps/browser/src/_locales/ar/messages.json | 121 ++++-
apps/browser/src/_locales/az/messages.json | 429 +++++++++++-------
apps/browser/src/_locales/be/messages.json | 117 ++++-
apps/browser/src/_locales/bg/messages.json | 121 ++++-
apps/browser/src/_locales/bn/messages.json | 123 ++++-
apps/browser/src/_locales/bs/messages.json | 123 ++++-
apps/browser/src/_locales/ca/messages.json | 117 ++++-
apps/browser/src/_locales/cs/messages.json | 117 ++++-
apps/browser/src/_locales/cy/messages.json | 121 ++++-
apps/browser/src/_locales/da/messages.json | 117 ++++-
apps/browser/src/_locales/de/messages.json | 117 ++++-
apps/browser/src/_locales/el/messages.json | 117 ++++-
apps/browser/src/_locales/en_GB/messages.json | 117 ++++-
apps/browser/src/_locales/en_IN/messages.json | 121 ++++-
apps/browser/src/_locales/es/messages.json | 117 ++++-
apps/browser/src/_locales/et/messages.json | 117 ++++-
apps/browser/src/_locales/eu/messages.json | 121 ++++-
apps/browser/src/_locales/fa/messages.json | 117 ++++-
apps/browser/src/_locales/fi/messages.json | 117 ++++-
apps/browser/src/_locales/fil/messages.json | 151 +++++-
apps/browser/src/_locales/fr/messages.json | 165 +++++--
apps/browser/src/_locales/gl/messages.json | 123 ++++-
apps/browser/src/_locales/he/messages.json | 123 ++++-
apps/browser/src/_locales/hi/messages.json | 121 ++++-
apps/browser/src/_locales/hr/messages.json | 117 ++++-
apps/browser/src/_locales/hu/messages.json | 117 ++++-
apps/browser/src/_locales/id/messages.json | 123 ++++-
apps/browser/src/_locales/it/messages.json | 117 ++++-
apps/browser/src/_locales/ja/messages.json | 117 ++++-
apps/browser/src/_locales/ka/messages.json | 123 ++++-
apps/browser/src/_locales/km/messages.json | 123 ++++-
apps/browser/src/_locales/kn/messages.json | 123 ++++-
apps/browser/src/_locales/ko/messages.json | 123 ++++-
apps/browser/src/_locales/lt/messages.json | 119 ++++-
apps/browser/src/_locales/lv/messages.json | 117 ++++-
apps/browser/src/_locales/ml/messages.json | 123 ++++-
apps/browser/src/_locales/mr/messages.json | 123 ++++-
apps/browser/src/_locales/my/messages.json | 123 ++++-
apps/browser/src/_locales/nb/messages.json | 117 ++++-
apps/browser/src/_locales/ne/messages.json | 123 ++++-
apps/browser/src/_locales/nl/messages.json | 117 ++++-
apps/browser/src/_locales/nn/messages.json | 123 ++++-
apps/browser/src/_locales/or/messages.json | 123 ++++-
apps/browser/src/_locales/pl/messages.json | 117 ++++-
apps/browser/src/_locales/pt_BR/messages.json | 119 ++++-
apps/browser/src/_locales/pt_PT/messages.json | 123 ++++-
apps/browser/src/_locales/ro/messages.json | 117 ++++-
apps/browser/src/_locales/ru/messages.json | 121 ++++-
apps/browser/src/_locales/si/messages.json | 123 ++++-
apps/browser/src/_locales/sk/messages.json | 117 ++++-
apps/browser/src/_locales/sl/messages.json | 135 +++++-
apps/browser/src/_locales/sr/messages.json | 117 ++++-
apps/browser/src/_locales/sv/messages.json | 117 ++++-
apps/browser/src/_locales/te/messages.json | 123 ++++-
apps/browser/src/_locales/th/messages.json | 121 ++++-
apps/browser/src/_locales/tr/messages.json | 117 ++++-
apps/browser/src/_locales/uk/messages.json | 123 ++++-
apps/browser/src/_locales/vi/messages.json | 121 ++++-
apps/browser/src/_locales/zh_CN/messages.json | 117 ++++-
apps/browser/src/_locales/zh_TW/messages.json | 141 +++++-
60 files changed, 7135 insertions(+), 475 deletions(-)
diff --git a/apps/browser/src/_locales/ar/messages.json b/apps/browser/src/_locales/ar/messages.json
index 0d83c4d20e7..183602d4ed4 100644
--- a/apps/browser/src/_locales/ar/messages.json
+++ b/apps/browser/src/_locales/ar/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "اطلب إضافة عنصر إذا لم يُعثر عليه في خزنتك."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "أظهر البطاقات في صفحة التبويبات"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "اسأل عن تحديث كلمة السر عند اكتشاف تغيير على الموقع الإلكتروني."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "هل تريد تحديث كلمة المرور هذه في Bitwarden؟"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "استخدم نقرة ثانوية للوصول إلى توليد كلمة المرور ومطابقة تسجيلات الدخول للموقع. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "الكشف الافتراضي عن تطابق URI",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "تغيير سمة لون التطبيق."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "داكن",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "روابط البيئة المحفوظة"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "ملء تلقائي عند تحميل الصفحة"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "الهوية"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "سجل كلمة المرور"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden لن يطلب حفظ تفاصيل تسجيل الدخول لهذه النطاقات. يجب عليك تحديث الصفحة حتى تصبح التغييرات سارية المفعول."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ نطاق غير صالح",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/az/messages.json b/apps/browser/src/_locales/az/messages.json
index 76668645604..b640dbe7145 100644
--- a/apps/browser/src/_locales/az/messages.json
+++ b/apps/browser/src/_locales/az/messages.json
@@ -38,7 +38,7 @@
"message": "Ana parol"
},
"masterPassDesc": {
- "message": "Ana parol, anbarınıza müraciət etmək üçün istifadə edəcəyiniz paroldur. Ana parolu yadda saxlamaq çox vacibdir. Unutsanız, parolu bərpa etməyin heç bir yolu yoxdur."
+ "message": "Ana parol, anbarınıza müraciət etmək üçün istifadə edəcəyiniz paroldur. Ana parolu yadda saxlamaq çox vacibdir. Unutsanız, parolu geri qaytarmağın heç bir yolu yoxdur."
},
"masterPassHintDesc": {
"message": "Ana parol məsləhəti, unutduğunuz parolunuzu xatırlamağınıza kömək edir."
@@ -47,7 +47,7 @@
"message": "Ana parolu yenidən yaz"
},
"masterPassHint": {
- "message": "Ana parol məsləhəti (ixtiyari)"
+ "message": "Ana parol ipucu (ixtiyari)"
},
"tab": {
"message": "Vərəq"
@@ -65,7 +65,7 @@
"message": "Alətlər"
},
"settings": {
- "message": "Tənzimləmələr"
+ "message": "Ayarlar"
},
"currentTab": {
"message": "Hazırkı vərəq"
@@ -74,7 +74,7 @@
"message": "Parolu kopyala"
},
"copyNote": {
- "message": "Qeydi kopyala"
+ "message": "Notu kopyala"
},
"copyUri": {
"message": "URI-ni kopyala"
@@ -92,13 +92,13 @@
"message": "Avto-doldurma"
},
"autoFillLogin": {
- "message": "Giriş avto-doldurma"
+ "message": "Girişi avto-doldur"
},
"autoFillCard": {
- "message": "Kart avto-doldurma"
+ "message": "Kartı avto-doldur"
},
"autoFillIdentity": {
- "message": "Kimlik avto-doldurma"
+ "message": "Kimliyi avto-doldur"
},
"generatePasswordCopied": {
"message": "Parol yarat (kopyalandı)"
@@ -125,7 +125,7 @@
"message": "Kimlik əlavə et"
},
"unlockVaultMenu": {
- "message": "Anbarın kilidini açın"
+ "message": "Anbarınızın kilidini açın"
},
"loginToVaultMenu": {
"message": "Anbarınıza giriş edin"
@@ -140,19 +140,19 @@
"message": "Element əlavə et"
},
"passwordHint": {
- "message": "Parol məsləhəti"
+ "message": "Parol ipucu"
},
"enterEmailToGetHint": {
- "message": "Ana parol məsləhətini alacağınız hesabınızın e-poçt ünvanını daxil edin."
+ "message": "Ana parol ipucunuzu alacağınız hesabınızın e-poçt ünvanını daxil edin."
},
"getMasterPasswordHint": {
- "message": "Ana parol üçün məsləhət alın"
+ "message": "Ana parol üçün ipucu alın"
},
"continue": {
"message": "Davam"
},
"sendVerificationCode": {
- "message": "E-poçtunuza bir təsdiqləmə kodu göndərin"
+ "message": "Doğrulama kodunu e-poçtunuza göndərin"
},
"sendCode": {
"message": "Kod göndər"
@@ -161,7 +161,7 @@
"message": "Kod göndərildi"
},
"verificationCode": {
- "message": "Təsdiqləmə kodu"
+ "message": "Doğrulama kodu"
},
"confirmIdentity": {
"message": "Davam etmək üçün kimliyinizi təsdiqləyin."
@@ -181,7 +181,7 @@
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"twoStepLogin": {
- "message": "İki mərhələli giriş"
+ "message": "İki addımlı giriş"
},
"logOut": {
"message": "Çıxış"
@@ -214,28 +214,28 @@
"message": "Qovluqlar"
},
"noFolders": {
- "message": "Siyahılanacaq heç bir qovluq yoxdur."
+ "message": "Sadalanacaq heç bir qovluq yoxdur."
},
"helpFeedback": {
- "message": "Kömək və əks əlaqə"
+ "message": "Kömək və əks-əlaqə"
},
"helpCenter": {
- "message": "Bitwarden Kömək mərkəzi"
+ "message": "Bitwarden Kömək Mərkəzi"
},
"communityForums": {
"message": "Bitwarden cəmiyyət forumlarını kəşf et"
},
"contactSupport": {
- "message": "Bitwarden dəstəyi ilə əlaqə saxla"
+ "message": "Bitwarden dəstəyi ilə əlaqə"
},
"sync": {
- "message": "Eyniləşdirmə"
+ "message": "Sinxr"
},
"syncVaultNow": {
- "message": "Anbarı indi eyniləşdir"
+ "message": "Anbarı indi sinxronlaşdır"
},
"lastSync": {
- "message": "Son eyniləşdirmə:"
+ "message": "Son sinxr:"
},
"passGen": {
"message": "Parol yaradıcı"
@@ -251,7 +251,7 @@
"message": "Bitwarden veb anbarı"
},
"importItems": {
- "message": "Elementləri idxal et"
+ "message": "Elementləri daxilə köçür"
},
"select": {
"message": "Seçin"
@@ -312,7 +312,7 @@
"message": "Bax"
},
"noItemsInList": {
- "message": "Siyahılanacaq heç bir element yoxdur."
+ "message": "Sadalanacaq heç bir element yoxdur."
},
"itemInformation": {
"message": "Element məlumatları"
@@ -324,16 +324,16 @@
"message": "Parol"
},
"passphrase": {
- "message": "Uzun ifadə"
+ "message": "Parol ifadəsi"
},
"favorite": {
"message": "Sevimli"
},
"notes": {
- "message": "Qeydlər"
+ "message": "Notlar"
},
"note": {
- "message": "Qeyd"
+ "message": "Not"
},
"editItem": {
"message": "Elementə düzəliş et"
@@ -363,10 +363,10 @@
"message": "Digər"
},
"unlockMethodNeededToChangeTimeoutActionDesc": {
- "message": "Anbar vaxt bitməsi əməliyyatınızı dəyişdirmək üçün bir kilid açma üsulu quraşdırın."
+ "message": "Anbar vaxt bitməsi əməliyyatınızı dəyişdirmək üçün bir kilid açma üsulu qurun."
},
"rateExtension": {
- "message": "Genişləndirməni qiymətləndir"
+ "message": "Uzantını qiymətləndir"
},
"rateExtensionDesc": {
"message": "Gözəl bir rəy ilə bizə dəstək ola bilərsiniz!"
@@ -375,10 +375,10 @@
"message": "Veb brauzeriniz lövhəyə kopyalamağı dəstəkləmir. Əvəzində əllə kopyalayın."
},
"verifyIdentity": {
- "message": "Kimliyi təsdiqləyin"
+ "message": "Kimliyi doğrula"
},
"yourVaultIsLocked": {
- "message": "Anbarınız kilidlənib. Davam etmək üçün ana parolunuzu təsdiqləyin."
+ "message": "Anbarınız kilidlənib. Davam etmək üçün kimliyinizi doğrulayın."
},
"unlock": {
"message": "Kilidi aç"
@@ -454,16 +454,16 @@
"message": "Bir xəta baş verdi"
},
"emailRequired": {
- "message": "E-poçt ünvanı lazımdır."
+ "message": "E-poçt ünvanı tələb olunur."
},
"invalidEmail": {
"message": "Yararsız e-poçt ünvanı."
},
"masterPasswordRequired": {
- "message": "Ana parol lazımdır."
+ "message": "Ana parol tələb olunur."
},
"confirmMasterPasswordRequired": {
- "message": "Ana parolun yenidən yazılması lazımdır."
+ "message": "Ana parolun yenidən yazılması tələb olunur."
},
"masterPasswordMinlength": {
"message": "Ana parol ən azı $VALUE$ simvol uzunluğunda olmalıdır.",
@@ -476,19 +476,19 @@
}
},
"masterPassDoesntMatch": {
- "message": "Ana parol təsdiqləməsi uyğun gəlmir."
+ "message": "Ana parolun təsdiqi uyğun gəlmir."
},
"newAccountCreated": {
"message": "Yeni hesabınız yaradıldı! İndi giriş edə bilərsiniz."
},
"masterPassSent": {
- "message": "Ana parol məsləhətini ehtiva edən bir e-poçt göndərdik."
+ "message": "Sizə ana parol ipucunuz olan bir e-poçt göndərdik."
},
"verificationCodeRequired": {
- "message": "Təsdiq kodu lazımdır."
+ "message": "Doğrulama kodu tələb olunur."
},
"invalidVerificationCode": {
- "message": "Yararsız təsdiqləmə kodu"
+ "message": "Yararsız doğrulama kodu"
},
"valueCopied": {
"message": "$VALUE$ kopyalandı",
@@ -501,13 +501,13 @@
}
},
"autofillError": {
- "message": "Bu səhifədə seçilən element avto-doldurulmur. Əvəzində məlumatları kopyalayıb yapışdırın."
+ "message": "Bu səhifədə seçilmiş element avto-doldurulmur. Əvəzində məlumatları kopyalayıb yapışdırın."
},
"loggedOut": {
"message": "Çıxış edildi"
},
"loginExpired": {
- "message": "Seansın müddəti bitdi."
+ "message": "Giriş seansınızın müddəti bitdi."
},
"logOutConfirmation": {
"message": "Çıxış etmək istədiyinizə əminsiniz?"
@@ -519,10 +519,10 @@
"message": "Xeyr"
},
"unexpectedError": {
- "message": "Gözlənilməz bir səhv baş verdi"
+ "message": "Gözlənilməz bir xəta baş verdi."
},
"nameRequired": {
- "message": "Ad lazımdır."
+ "message": "Ad tələb olunur."
},
"addedFolder": {
"message": "Qovluq əlavə edildi"
@@ -534,10 +534,10 @@
"message": "Ana parolunuzu bitwarden.com veb anbarında dəyişdirə bilərsiniz. İndi saytı ziyarət etmək istəyirsiniz?"
},
"twoStepLoginConfirmation": {
- "message": "İki mərhələli giriş, güvənlik açarı, kimlik təsdiqləyici tətbiq, SMS, telefon zəngi və ya e-poçt kimi digər cihazlarla girişinizi təsdiqləməyinizi tələb edərək hesabınızı daha da güvənli edir. İki mərhələli giriş, bitwarden.com veb anbarında fəallaşdırıla bilər. Veb saytı indi ziyarət etmək istəyirsiniz?"
+ "message": "İki addımlı giriş, güvənlik açarı, kimlik doğrulayıcı tətbiq, SMS, telefon zəngi və ya e-poçt kimi digər cihazlarla girişinizi doğrulamanızı tələb edərək hesabınızı daha da güvənli edir. İki addımlı giriş, bitwarden.com veb anbarında qurula bilər. Veb saytı indi ziyarət etmək istəyirsiniz?"
},
"editedFolder": {
- "message": "Qovluğa düzəliş edildi"
+ "message": "Qovluğ saxlanıldı"
},
"deleteFolderConfirmation": {
"message": "Bu qovluğu silmək istədiyinizə əminsiniz?"
@@ -549,13 +549,13 @@
"message": "Başlanğıc təlimatı"
},
"gettingStartedTutorialVideo": {
- "message": "Brauzer genişləndirməsindən necə daha yaxşı faydalanmağı öyrənmək üçün başlanğıc təlimatına baxa bilərsiniz."
+ "message": "Brauzer uzantısından necə daha yaxşı faydalanmağı öyrənmək üçün başlanğıc təlimatına baxa bilərsiniz."
},
"syncingComplete": {
- "message": "Eyniləşdirmə tamamlandı"
+ "message": "Sinxr tamamlandı"
},
"syncingFailed": {
- "message": "Uğursuz eyniləşdirmə"
+ "message": "Sinxr uğursuz oldu"
},
"passwordCopied": {
"message": "Parol kopyalandı"
@@ -580,7 +580,7 @@
"message": "Element əlavə edildi"
},
"editedItem": {
- "message": "Elementə düzəliş edildi"
+ "message": "Element saxlanıldı"
},
"deleteItemConfirmation": {
"message": "Həqiqətən tullantı qutusuna göndərmək istəyirsiniz?"
@@ -617,19 +617,22 @@
"message": "Giriş əlavə etmək üçün soruş"
},
"addLoginNotificationDesc": {
- "message": "\"Hesab əlavə et bildirişi\", ilk dəfə giriş edəndə yeni giriş məlumatlarını anbarda saxlamaq istəyib-istəmədiyinizi avtomatik olaraq soruşur."
+ "message": "Anbarınızda tapılmayan bir elementin əlavə edilməsi soruşulsun."
+ },
+ "addLoginNotificationDescAlt": {
+ "message": "Anbarınızda tapılmayan bir elementin əlavə edilməsi soruşulsun. Giriş etmiş bütün hesablara aiddir."
},
"showCardsCurrentTab": {
- "message": "Kartları vərəq səhifəsində göstər"
+ "message": "Kartları Vərəq səhifəsində göstər"
},
"showCardsCurrentTabDesc": {
- "message": "Asan avto-doldurma üçün Vərəq səhifəsində kart elementlərini siyahılayın."
+ "message": "Asan avto-doldurma üçün Vərəq səhifəsində kart elementlərini sadalayın."
},
"showIdentitiesCurrentTab": {
"message": "Vərəq səhifəsində kimlikləri göstər"
},
"showIdentitiesCurrentTabDesc": {
- "message": "Asan avto-doldurma üçün Vərəq səhifəsində kimlik elementlərini siyahılayın."
+ "message": "Asan avto-doldurma üçün Vərəq səhifəsində kimlik elementlərini sadalayın."
},
"clearClipboard": {
"message": "Lövhəni təmizlə",
@@ -643,13 +646,22 @@
"message": "Bitwarden sizin üçün bu parolu xatırlasın?"
},
"notificationAddSave": {
- "message": "Bəli, indi saxla"
+ "message": "Saxla"
},
"enableChangedPasswordNotification": {
"message": "Mövcud girişin güncəllənməsini soruş"
},
"changedPasswordNotificationDesc": {
- "message": "Bir veb saytda dəyişiklik aşkarlananda giriş parolunun güncəllənməsini soruşun."
+ "message": "Bir veb saytda bir dəyişiklik aşkarlandıqda giriş parolunun güncəllənməsini soruşulsun."
+ },
+ "changedPasswordNotificationDescAlt": {
+ "message": "Bir veb saytda bir dəyişiklik aşkarlandıqda giriş parolunun güncəllənməsini soruşulsun. Giriş etmiş bütün hesablara aiddir."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
},
"notificationChangeDesc": {
"message": "Bu parolu \"Bitwarden\"də güncəlləmək istəyirsiniz?"
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Veb sayt üçün parol yaratmaq və uyğunlaşan giriş məlumatlarına müraciət etmək üçün ikinci klikləməni istifadə edin. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Veb sayt üçün parol yaratmaq və uyğunlaşan giriş məlumatlarına müraciət etmək üçün ikinci klikləməni istifadə edin. Giriş etmiş bütün hesablara aiddir."
+ },
"defaultUriMatchDetection": {
"message": "İlkin URI uyğunluq aşkarlaması",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Tətbiqin rəng temasını dəyişdirin."
},
+ "themeDescAlt": {
+ "message": "Tətbiqin rəng temasını dəyişdirin. Giriş etmiş bütün hesablara aiddir."
+ },
"dark": {
"message": "Tünd",
"description": "Dark color"
@@ -705,7 +723,7 @@
"description": "WARNING (should stay in capitalized letters if the language permits)"
},
"confirmVaultExport": {
- "message": "Anbarın xaricə köçürülməsini təsdiqləyin"
+ "message": "Anbarın xaricə köçürülməsini təsdiqlə"
},
"exportWarningDesc": {
"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."
@@ -714,7 +732,7 @@
"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."
+ "message": "Hesab şifrələmə açarları, hər Bitwarden istifadəçi hesabı üçün unikaldır, buna görə də şifrələnmiş bir xaricə köçürməni, fərqli bir hesaba iköçürə bilməzsiniz."
},
"exportMasterPassword": {
"message": "Anbar datanızı xaricə köçürmək üçün ana parolunuzu daxil edin."
@@ -726,7 +744,7 @@
"message": "Təşkilatlar barədə daha ətraflı"
},
"learnOrgConfirmation": {
- "message": "Bitwarden, bir təşkilat hesabı istifadə edərək anbar elementlərinizi başqaları ilə paylaşmağınıza icazə verər. Daha ətraflı məlumat üçün bitwarden.com saytını ziyarət etmək istəyirsiniz?"
+ "message": "Bitwarden, bir təşkilat hesabı istifadə edərək anbar elementlərinizi başqaları ilə paylaşmağınıza icazə verir. Daha ətraflı məlumat üçün bitwarden.com saytını ziyarət etmək istəyirsiniz?"
},
"moveToOrganization": {
"message": "Təşkilata daşı"
@@ -735,7 +753,7 @@
"message": "Paylaş"
},
"movedItemToOrg": {
- "message": "$ITEMNAME$ $ORGNAME$ şirkətinə daşındı",
+ "message": "$ITEMNAME$, $ORGNAME$ şirkətinə daşındı",
"placeholders": {
"itemname": {
"content": "$1",
@@ -754,13 +772,13 @@
"message": "Daha ətraflı"
},
"authenticatorKeyTotp": {
- "message": "Kimlik təsdiqləyici açarı (TOTP)"
+ "message": "Kimlik doğrulayıcı açarı (TOTP)"
},
"verificationCodeTotp": {
- "message": "Təsdiqləmə kodu (TOTP)"
+ "message": "Doğrulama kodu (TOTP)"
},
"copyVerificationCode": {
- "message": "Təsdiqləmə kodunu kopyala"
+ "message": "Doğrulama kodunu kopyala"
},
"attachments": {
"message": "Qoşmalar"
@@ -787,7 +805,7 @@
"message": "Fayl"
},
"selectFile": {
- "message": "Fayl seçin."
+ "message": "Bir fayl seçin"
},
"maxFileSize": {
"message": "Maksimal fayl həcmi 500 MB-dır"
@@ -796,7 +814,7 @@
"message": "Özəllik əlçatmazdır"
},
"encryptionKeyMigrationRequired": {
- "message": "Şifrələmə açarının daşınması tələb olunur. Şifrələmə açarınızı güncəlləmək üçün zəhmət olmasa veb anbar üzərindən giriş edin."
+ "message": "Şifrələmə açarının daşınması tələb olunur. Şifrələmə açarınızı güncəlləmək üçün lütfən veb anbar üzərindən giriş edin."
},
"premiumMembership": {
"message": "Premium üzvlük"
@@ -823,10 +841,10 @@
"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əsizliyini təmin etmək üçün parol gigiyenası, hesab sağlamlığı və data pozuntusu hesabatları."
+ "message": "Anbarınızın güvənliyini 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ı."
+ "message": "Anbarınızdakı hesablar üçün TOTP doğrulama kodu (2FA) yaradıcısı."
},
"ppremiumSignUpSupport": {
"message": "Prioritet müştəri dəstəyi."
@@ -862,10 +880,10 @@
"message": "TOTP-ni avtomatik kopyala"
},
"disableAutoTotpCopyDesc": {
- "message": "Hesabınıza əlavə edilən kimlik təsdiqləyici açarı varsa, giriş məlumatları avto-doldurulanda TOTP təsdiqləmə kodu da avtomatik olaraq lövhəyə kopyalanacaq."
+ "message": "Hesabınıza əlavə edilən kimlik doğrulayıcı açarı varsa, giriş məlumatları avto-doldurulanda TOTP doğrulama kodu da avtomatik olaraq lövhəyə kopyalanacaq."
},
"enableAutoBiometricsPrompt": {
- "message": "Açılışda biometrik təsdiqləmə soruş"
+ "message": "Açılışda biometrik soruşulsun"
},
"premiumRequired": {
"message": "Premium üzvlük lazımdır"
@@ -874,10 +892,10 @@
"message": "Bu özəlliyi istifadə etmək üçün premium üzvlük lazımdır."
},
"enterVerificationCodeApp": {
- "message": "Kimlik təsdiqləyici tətbiqindən 6 rəqəmli təsdiqləmə kodunu daxil edin."
+ "message": "Kimlik doğrulayıcı tətbiqindən 6 rəqəmli doğrulama kodunu daxil edin."
},
"enterVerificationCodeEmail": {
- "message": "$EMAIL$ ünvanına göndərilən e-poçtdakı 6 rəqəmli təsdiqləmə kodunu daxil edin.",
+ "message": "$EMAIL$ ünvanına göndərilən e-poçtdakı 6 rəqəmli doğrulama kodunu daxil edin.",
"placeholders": {
"email": {
"content": "$1",
@@ -886,7 +904,7 @@
}
},
"verificationCodeEmailSent": {
- "message": "Təsdiqləmə poçtu $EMAIL$ ünvanına göndərildi.",
+ "message": "Doğrulama poçtu $EMAIL$ ünvanına göndərildi.",
"placeholders": {
"email": {
"content": "$1",
@@ -898,49 +916,49 @@
"message": "Məni xatırla"
},
"sendVerificationCodeEmailAgain": {
- "message": "Təsdiqləmə kodu olan e-poçtu yenidən göndər"
+ "message": "Doğrulama kodu olan e-poçtu yenidən göndər"
},
"useAnotherTwoStepMethod": {
- "message": "Başqa bir iki mərhələli giriş metodu istifadə edin"
+ "message": "Başqa bir iki addımlı giriş üsulu istifadə edin"
},
"insertYubiKey": {
"message": "\"YubiKey\"i kompüterinizin USB portuna taxın, daha sonra düyməsinə toxunun."
},
"insertU2f": {
- "message": "Güvənlik açarını kompüterinizin USB portun taxın. Düyməsi varsa toxunun."
+ "message": "Güvənlik açarını kompüterinizin USB portuna taxın. Düyməsi varsa toxunun."
},
"webAuthnNewTab": {
- "message": "WebAuthn 2FA təsdiqləməsini başladın. Yeni bir vərəq açmaq üçün aşağıdakı düyməyə klikləyin və yeni vərəqdəki təlimatları izləyin."
+ "message": "WebAuthn 2FA doğrulamasını başladın. Yeni bir vərəq açmaq üçün aşağıdakı düyməyə klikləyin və yeni vərəqdəki təlimatları izləyin."
},
"webAuthnNewTabOpen": {
"message": "Yeni vərəq aç"
},
"webAuthnAuthenticate": {
- "message": "WebAuthn təsdiqləmə"
+ "message": "WebAuthn kimlik doğrulama"
},
"loginUnavailable": {
"message": "Giriş edilə bilmir"
},
"noTwoStepProviders": {
- "message": "Bu hesabın iki mərhələli giriş özəlliyi fəaldır, ancaq, konfiqurasiya edilmiş iki mərhələli provayderlərin heç biri bu brauzer tərəfindən dəstəklənmir."
+ "message": "Bu hesabın iki addımlı giriş özəlliyi qurulub, ancaq, konfiqurasiya edilmiş iki addımlı provayderlərin heç biri bu brauzer tərəfindən dəstəklənmir."
},
"noTwoStepProviders2": {
- "message": "Zəhmət olmasa (Chrome kimi) dəstəklənən bir veb brauzer istifadə edin və/və ya veb brauzerlərə (kimlik təsdiqləyici tətbiq kimi) daha yaxşı dəstəklənən provayderlər əlavə edin."
+ "message": "Lütfən (Chrome kimi) dəstəklənən bir veb brauzer istifadə edin və/və ya veb brauzerlərə (kimlik doğrulayıcı tətbiq kimi) daha yaxşı dəstəklənən provayderlər əlavə edin."
},
"twoStepOptions": {
- "message": "İki mərhələli giriş seçimləri"
+ "message": "İki addımlı giriş seçimləri"
},
"recoveryCodeDesc": {
- "message": "İki mərhələli təsdiqləmə provayderlərinə müraciəti itirmisiniz? Bərpa kodunuzu istifadə edərək hesabınızdakı bütün iki mərhələli provayderləri sıradan çıxara bilərsiniz."
+ "message": "İki faktorlu provayderlərinə müraciəti itirmisiniz? Geri qaytarma kodunuzu istifadə edərək hesabınızdakı bütün iki faktorlu provayderləri sıradan çıxarda bilərsiniz."
},
"recoveryCodeTitle": {
- "message": "Bərpa kodu"
+ "message": "Geri qaytarma kodu"
},
"authenticatorAppTitle": {
- "message": "Kimlik təsdiqləyici tətbiqi"
+ "message": "Kimlik doğrulayıcı tətbiqi"
},
"authenticatorAppDesc": {
- "message": "Vaxt əsaslı təsdiqləmə kodları yaratmaq üçün (Authy və ya Google Authenticator kimi) kimlik təsdiqləyici tətbiq istifadə edin.",
+ "message": "Vaxt əsaslı doğrulama kodları yaratmaq üçün (Authy və ya Google Authenticator kimi) kimlik doğrulayıcı tətbiq istifadə edin.",
"description": "'Authy' and 'Google Authenticator' are product names and should not be translated."
},
"yubiKeyTitle": {
@@ -950,24 +968,24 @@
"message": "Hesabınıza müraciət etmək üçün bir YubiKey istifadə edin. YubiKey 4, 4 Nano, 4C və NEO cihazları ilə işləyir."
},
"duoDesc": {
- "message": "Duo Security ilə təsdiqləmək üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
+ "message": "Duo Security ilə doğrulamaq üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
},
"duoOrganizationDesc": {
- "message": "Təşkilatınızını Duo Security ilə təsdiqləmək üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
+ "message": "Təşkilatınızını Duo Security ilə doğrulamaq üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
},
"webAuthnTitle": {
"message": "FIDO2 WebAuthn"
},
"webAuthnDesc": {
- "message": "Hesabınıza müraciət etmək üçün istənilən bir WebAuthn fəallaşdırılmış güvənlik açarı istifadə edin."
+ "message": "Hesabınıza müraciət etmək üçün WebAuthn özəllikli istənilən bir güvənlik açarı istifadə edin."
},
"emailTitle": {
"message": "E-poçt"
},
"emailDesc": {
- "message": "Təsdiqləmə kodları e-poçt ünvanınıza göndəriləcək."
+ "message": "Doğrulama kodları e-poçt ünvanınıza göndəriləcək."
},
"selfHostedEnvironment": {
"message": "Öz-özünə sahiblik edən mühit"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Mühit URL-ləri saxlanıldı."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Form sahələrində avto-doldurma menyusunu göstər",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Giriş etmiş bütün hesablara aiddir."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Bağlı",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Sahə seçiləndə (fokusda)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Avto-doldurma nişanı seçiləndə",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Səhifə yüklənəndə avto-doldurmanı fəallaşdır"
},
@@ -1015,16 +1052,16 @@
"message": "Avto-doldurma haqqında daha ətraflı"
},
"defaultAutoFillOnPageLoad": {
- "message": "Giriş məlumatları üçün ilkin avto-doldurma tənzimləməsi"
+ "message": "Giriş elementləri üçün ilkin avto-doldurma ayarı"
},
"defaultAutoFillOnPageLoadDesc": {
- "message": "\"Səhifə yüklənəndə avto-doldur\"u fəal etdikdən sonra, fərdi giriş elementləri üçün özəlliyi fəallaşdıra və ya sıradan çıxarda bilərsiniz. Bu ayrı-ayrı konfiqurasiya edilməmiş giriş elementləri üçün ilkin tənzimləmədir."
+ "message": "Fərdi giriş elementləri üçün \"Səhifə yüklənəndə avto-doldur\"u elementin Düzəliş et görünüşündən söndürə bilərsiniz."
},
"itemAutoFillOnPageLoad": {
"message": "Səhifə yüklənəndə avto-doldur (Seçimlərdə fəallaşdırılıbsa)"
},
"autoFillOnPageLoadUseDefault": {
- "message": "İlkin tənzimləməni istifadə et"
+ "message": "İlkin ayarı istifadə et"
},
"autoFillOnPageLoadYes": {
"message": "Səhifə yüklənəndə avto-doldur"
@@ -1033,7 +1070,7 @@
"message": "Səhifə yüklənəndə avto-doldurma"
},
"commandOpenPopup": {
- "message": "Anbar açılan pəncərədə aç"
+ "message": "Anbarı açılan pəncərədə aç"
},
"commandOpenSidebar": {
"message": "Anbar yan sətirdə aç"
@@ -1063,7 +1100,7 @@
"message": "Yeni özəl sahə"
},
"dragToSort": {
- "message": "Sıralamaq üçün sürüşdürün"
+ "message": "Sıralamaq üçün sürüklə"
},
"cfTypeText": {
"message": "Mətn"
@@ -1075,15 +1112,15 @@
"message": "Boolean"
},
"cfTypeLinked": {
- "message": "Əlaqə yaradıldı",
+ "message": "Əlaqələndirildi",
"description": "This describes a field that is 'linked' (tied) to another field."
},
"linkedValue": {
- "message": "Əlaqəli dəyər",
+ "message": "Əlaqələndirilmiş dəyər",
"description": "This describes a value that is 'linked' (tied) to another value."
},
"popup2faCloseMessage": {
- "message": "Təsdiqləmə kodunu alacağınız e-poçtu yoxlamaq üçün bu pəncərə xaricində bir yerə klikləsəniz bu pəncərə bağlanacaq. Bu pəncərənin bağlanmaması üçün yeni bir pəncərədə açmaq istəyirsiniz?"
+ "message": "Doğrulama kodunu alacağınız e-poçtu yoxlamaq üçün bu pəncərə xaricində bir yerə klikləsəniz bu pəncərə bağlanacaq. Bu pəncərənin bağlanmaması üçün yeni bir pəncərədə açmaq istəyirsiniz?"
},
"popupU2fCloseMessage": {
"message": "Bu brauzer bu açılan pəncərədə U2F tələblərini emal edə bilmir. U2F istifadə edərək giriş etmək üçün bu açılan pəncərəni yeni bir pəncərədə açmaq istəyirsiniz?"
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Kimlik"
},
- "typePasskey": {
- "message": "Keçid açarı"
- },
"passwordHistory": {
"message": "Parol tarixçəsi"
},
@@ -1378,13 +1412,13 @@
"description": "ex. Date this password was updated"
},
"neverLockWarning": {
- "message": "\"Heç vaxt\" seçimini istifadə etmək istədiyinizə əminsiniz? Kilid seçimini \"Heç vaxt\" olaraq tənzimləsəniz, anbarınızın şifrələmə açarı cihazınızda saxlanılacaq. Bu seçimi istifadə etsəniz, cihazınızı daha yaxşı mühafizə etməlisiniz."
+ "message": "\"Heç vaxt\" seçimini istifadə etmək istədiyinizə əminsiniz? Kilid seçimini \"Heç vaxt\" olaraq ayarlasanız, anbarınızın şifrələmə açarı cihazınızda saxlanılacaq. Bu seçimi istifadə etsəniz, cihazınızı daha yaxşı mühafizə etməlisiniz."
},
"noOrganizationsList": {
"message": "Heç bir təşkilata aid deyilsiniz. Təşkilatlar, elementlərinizi digər istifadəçilərlə güvənli şəkildə paylaşmağınızı təmin edir."
},
"noCollectionsInList": {
- "message": "Siyahılanacaq heç bir kolleksiya yoxdur."
+ "message": "Sadalanacaq heç bir kolleksiya yoxdur."
},
"ownership": {
"message": "Sahiblik"
@@ -1418,7 +1452,7 @@
"message": "PIN ilə kilidi açın"
},
"setYourPinCode": {
- "message": "Bitwarden-in kilidini açmaq üçün PIN kod tənzimləyin. Hər tətbiqdən tam çıxış edəndə PIN tənzimləmələriniz sıfırlanacaq."
+ "message": "Bitwarden-in kilidini açmaq üçün PIN kodunuzu ayarlayın. Tətbiqdən tam çıxış etdikdə PIN ayarlarınız sıfırlanacaq."
},
"pinRequired": {
"message": "PIN kod lazımdır."
@@ -1433,7 +1467,7 @@
"message": "Masaüstündən təsdiq gözlənilir"
},
"awaitDesktopDesc": {
- "message": "Brauzer üçün biometrikləri fəallaşdırmaq üçün zəhmət olmasa Bitwarden masaüstü tətbiqində biometrik istifadəsini təsdiqləyin."
+ "message": "Brauzer üzrə biometrikləri qurmaq üçün lütfən Bitwarden masaüstü tətbiqində biometrik istifadəsini təsdiqləyin."
},
"lockWithMasterPassOnRestart": {
"message": "Brauzer yenidən başladılanda ana parolla kilidlə"
@@ -1480,7 +1514,7 @@
"message": "Element bərpa edildi"
},
"vaultTimeoutLogOutConfirmation": {
- "message": "Çıxış edəndə, anbarınıza bütün müraciətiniz dayanacaq və vaxt bitməsindən sonra onlayn kimlik təsdiqləməsi tələb olunacaq. Bu tənzimləməni istifadə etmək istədiyinizə əminsiniz?"
+ "message": "Çıxış etdikdə anbarınıza bütün müraciətiniz dayanacaq və vaxt bitməsindən sonra onlayn kimlik doğrulaması tələb olunacaq. Bu ayarı istifadə etmək istədiyinizə əminsiniz?"
},
"vaultTimeoutLogOutConfirmationTitle": {
"message": "Vaxt bitmə əməliyyat təsdiqi"
@@ -1513,7 +1547,7 @@
}
},
"setMasterPassword": {
- "message": "Ana parolu tənzimlə"
+ "message": "Ana parolu ayarla"
},
"currentMasterPass": {
"message": "Hazırkı ana parol"
@@ -1588,13 +1622,13 @@
"message": "Masaüstü eyniləşdirmə təsdiqləməsi"
},
"desktopIntegrationVerificationText": {
- "message": "Zəhmət olmasa masaüstü tətbiqin bu barmaq izini gördüyünü təsdiqləyin:"
+ "message": "Lütfən masaüstü tətbiqin bu barmaq izini gördüyünü doğrulayın: "
},
"desktopIntegrationDisabledTitle": {
"message": "Brauzer inteqrasiyası fəal deyil"
},
"desktopIntegrationDisabledDesc": {
- "message": "Brauzer inteqrasiyası Bitwarden masaüstü tətbiqində fəal deyil. Zəhmət olmasa masaüstü tətbiqinin tənzimləmələrində fəallaşdırın."
+ "message": "Brauzer inteqrasiyası Bitwarden masaüstü tətbiqində qurulmuyub. Lütfən bunu masaüstü tətbiqinin ayarlarında qurun."
},
"startDesktopTitle": {
"message": "Bitwarden masaüstü tətbiqini başlat"
@@ -1624,7 +1658,7 @@
"message": "Biometriklə fəal deyil"
},
"biometricsNotEnabledDesc": {
- "message": "Brauzer biometrikləri, əvvəlcə tənzimləmələrdə masaüstü biometriklərinin fəallaşdırılmasını tələb edir."
+ "message": "Brauzer biometrikləri, əvvəlcə ayarlarda masaüstü biometriklərinin qurulmasını tələb edir."
},
"biometricsNotSupportedTitle": {
"message": "Biometriklər dəstəklənmir"
@@ -1636,19 +1670,19 @@
"message": "Biometrik uğursuzdur"
},
"biometricsFailedDesc": {
- "message": "Biometriklər tamamlana bilmir, ana parol istifadə etməyi düşünün və ya çıxış edin. Bu problem davam edərsə, zəhmət olmasa Bitwarden dəstəyi ilə əlaqə saxlayın."
+ "message": "Biometriklər tamamlana bilmir, ana parol istifadə etməyi düşünün və ya çıxış edin. Bu problem davam edərsə, lütfən Bitwarden dəstəyi ilə əlaqə saxlayın."
},
"nativeMessaginPermissionErrorTitle": {
"message": "İcazə verilmədi"
},
"nativeMessaginPermissionErrorDesc": {
- "message": "Bitwarden masaüstü tətbiqi ilə əlaqə qurma icazəsi olmadan, brauzer genişləndirməsində biometrikləri təmin edə bilmərik. Zəhmət olmasa yenidən sınayın."
+ "message": "Bitwarden masaüstü tətbiqi ilə əlaqə qurma icazəsi olmadan, brauzer uzantısında biometrikləri təmin edə bilmirik. Lütfən yenidən sınayın."
},
"nativeMessaginPermissionSidebarTitle": {
"message": "İcazə tələb xətası"
},
"nativeMessaginPermissionSidebarDesc": {
- "message": "Bu əməliyyatı yan sətirdən edə bilməzsiniz. Zəhmət olmasa açılan pəncərədə yenidən cəhd edin."
+ "message": "Bu əməliyyatı yan sətirdən edə bilməzsiniz. Lütfən açılan pəncərədə yenidən sınayın."
},
"personalOwnershipSubmitError": {
"message": "Müəssisə Siyasətinə görə, elementləri şəxsi anbarınızda saxlamağınız məhdudlaşdırılıb. Sahiblik seçimini təşkilat olaraq dəyişdirin və mövcud kolleksiyalar arasından seçim edin."
@@ -1657,7 +1691,7 @@
"message": "Bir təşkilat siyasəti, sahiblik seçimlərinizə təsir edir."
},
"personalOwnershipPolicyInEffectImports": {
- "message": "An organization policy has blocked importing items into your individual vault."
+ "message": "Bir təşkilat siyasəti, elementlərin fərdi anbarınıza köçürülməsini əngəllədi."
},
"excludedDomains": {
"message": "İstisna edilən domenlər"
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden bu domenlər üçün giriş təfsilatlarını saxlamağı soruşmayacaq. Dəyişikliklərin təsirli olması üçün səhifəni təzələməlisiniz."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden, giriş etmiş bütün hesablar üçün bu domenlərin giriş detallarını saxlamağı istəməyəcək. Dəyişikliklərin qüvvəyə minməsi üçün səhifəni təzələməlisiniz."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ etibarlı bir domen deyil",
"placeholders": {
@@ -1770,7 +1807,7 @@
"message": "Bitmə tarixi"
},
"expirationDateDesc": {
- "message": "Əgər tənzimlənsə, göstərilən tarix və vaxtda \"Send\"ə müraciət başa çatacaq.",
+ "message": "Əgər ayarlanıbsa, göstərilən tarix və vaxtda \"Send\"ə müraciət başa çatacaq.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"oneDay": {
@@ -1792,7 +1829,7 @@
"message": "Maksimal müraciət sayı"
},
"maximumAccessCountDesc": {
- "message": "Əgər tənzimlənsə, istifadəçilər maksimal müraciət sayına çatdıqdan sonra bu \"Send\"ə müraciət edə bilməyəcək.",
+ "message": "Əgər ayarlanıbsa, istifadəçilər maksimal müraciət sayına çatdıqdan sonra bu \"Send\"ə müraciət edə bilməyəcək.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendPasswordDesc": {
@@ -1896,7 +1933,7 @@
"message": "Ana parol təsdiqi"
},
"passwordConfirmationDesc": {
- "message": "Bu əməliyyat qorumalıdır, davam etmək üçün zəhmət olmasa kimliyinizi təsdiqləmək üçün ana parolunuzu təkrar daxil edin."
+ "message": "Bu əməliyyat qorumalıdır, davam etmək üçün lütfən kimliyinizi doğrulamaq məqsədilə ana parolunuzu yenidən daxil edin."
},
"emailVerificationRequired": {
"message": "E-poçt təsdiqləməsi tələb olunur"
@@ -1926,11 +1963,11 @@
"message": "Qovluq seçin..."
},
"orgPermissionsUpdatedMustSetPassword": {
- "message": "Your organization permissions were updated, requiring you to set a master password.",
+ "message": "Təşkilatınızın icazələri güncəlləndi və bir ana parol ayarlamağınızı tələb edir.",
"description": "Used as a card title description on the set password page to explain why the user is there"
},
"orgRequiresYouToSetPassword": {
- "message": "Your organization requires you to set a master password.",
+ "message": "Təşkilatınız bir ana parol ayarlamağı tələb edir.",
"description": "Used as a card title description on the set password page to explain why the user is there"
},
"hours": {
@@ -1953,7 +1990,7 @@
}
},
"vaultTimeoutPolicyWithActionInEffect": {
- "message": "Təşkilatınızın siyasətləri, anbarınızın vaxt bitişinə təsir edir. Anbar vaxt bitişi üçün icazə verilən maksimum vaxt $HOURS$ saat $MINUTES$ dəqiqədir. Anbar vaxt bitişi əməliyyatı $ACTION$ olaraq tənzimləndi.",
+ "message": "Təşkilatınızın siyasətləri, anbarınızın vaxt bitişinə təsir edir. Anbar vaxt bitişi üçün icazə verilən maksimum vaxt $HOURS$ saat $MINUTES$ dəqiqədir. Anbar vaxt bitişi əməliyyatı $ACTION$ olaraq ayarlandı.",
"placeholders": {
"hours": {
"content": "$1",
@@ -1970,7 +2007,7 @@
}
},
"vaultTimeoutActionPolicyInEffect": {
- "message": "Təşkilatınızın siyasətləri, anbar vaxt bitişi əməliyyatınızı $ACTION$ olaraq tənzimlədi.",
+ "message": "Təşkilatınızın siyasətləri, anbar vaxt bitişi əməliyyatınızı $ACTION$ olaraq ayarladı.",
"placeholders": {
"action": {
"content": "$1",
@@ -1979,7 +2016,7 @@
}
},
"vaultTimeoutTooLarge": {
- "message": "Anbar vaxt bitişi, təşkilatınız tərəfindən tənzimlənən məhdudiyyətləri aşır."
+ "message": "Anbar vaxt bitişi, təşkilatınız tərəfindən ayarlanan məhdudiyyətləri aşır."
},
"vaultExportDisabled": {
"message": "Anbar ixracı sıradan çıxarıldı"
@@ -2021,7 +2058,7 @@
"message": "Simvol sayını dəyişdir"
},
"sessionTimeout": {
- "message": "Seansınızın vaxtı bitdi. Zəhmət olmasa geri qayıdıb yenidən giriş etməyə cəhd edin."
+ "message": "Seansınızın vaxtı bitdi. Lütfən geri qayıdıb yenidən giriş etməyə cəhd edin."
},
"exportingPersonalVaultTitle": {
"message": "Şəxsi anbarın ixracı"
@@ -2116,13 +2153,13 @@
}
},
"settingsEdited": {
- "message": "Tənzimləmələrə düzəliş edildi"
+ "message": "Ayarlara düzəliş edildi"
},
"environmentEditedClick": {
"message": "Bura klikləyin"
},
"environmentEditedReset": {
- "message": "ön konfiqurasiyalı tənzimləmələri sıfırlamaq üçün"
+ "message": "ön konfiqurasiyalı ayarları sıfırlamaq üçün"
},
"serverVersion": {
"message": "Server Versiyası"
@@ -2134,7 +2171,7 @@
"message": "Üçüncü tərəf"
},
"thirdPartyServerMessage": {
- "message": "Üçüncü tərəf server tətbiqetməsi ilə bağlantı quruldu, $SERVERNAME$. Zəhmət olmasa rəsmi serveri istifadə edərək xətaları təsdiqləyin və ya onları üçüncü tərəf serverə bildirin.",
+ "message": "$SERVERNAME$ üçüncü tərəf server tətbiqinə bağlandı. Lütfən rəsmi serveri istifadə edərək xətaları doğrulayın və ya onları üçüncü tərəf serverə bildirin.",
"placeholders": {
"servername": {
"content": "$1",
@@ -2170,13 +2207,13 @@
"message": "Cihazla giriş et"
},
"loginWithDeviceEnabledInfo": {
- "message": "Cihazla giriş etmə, Bitwarden tətbiqinin tənzimləmələrində quraşdırılmalıdır. Başqa bir seçimə ehtiyacınız var?"
+ "message": "Cihazla giriş, Bitwarden tətbiqinin ayarlarında qurulmalıdır. Başqa bir seçimə ehtiyacınız var?"
},
"fingerprintPhraseHeader": {
"message": "Barmaq izi ifadəsi"
},
"fingerprintMatchInfo": {
- "message": "Zəhmət olmasa anbarınızın kilidinin açıq olduğuna və Barmaq izi ifadəsinin digər cihazda uyğun gəldiyinə əmin olun."
+ "message": "Lütfən anbarınızın kilidinin açıq olduğuna və Barmaq izi ifadəsinin digər cihazda uyğun gəldiyinə əmin olun."
},
"resendNotification": {
"message": "Bildirişi təkrar göndər"
@@ -2209,7 +2246,7 @@
"message": "Vacib:"
},
"masterPasswordHint": {
- "message": "Unutsanız, ana parolunuz bərpa edilə bilməz!"
+ "message": "Unutsanız, ana parolunuz geri qaytarıla bilməz!"
},
"characterMinimum": {
"message": "Minimum $LENGTH$ simvol",
@@ -2236,22 +2273,22 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Bu səhifədən bir element seçin və ya tənzimləmələrdə bir qısayol tənzimləyin."
+ "message": "Bu səhifədən bir element seçin və ya ayarlardakı digər seçimləri kəşf edin."
},
"gotIt": {
"message": "Anladım"
},
"autofillSettings": {
- "message": "Avto-doldurma tənzimləmələri"
+ "message": "Avto-doldurma ayarları"
},
"autofillShortcut": {
"message": "Avto-doldurma klaviatura qısayolu"
},
"autofillShortcutNotSet": {
- "message": "Avto-doldurma qısayolu tənzimlənməyib. Bunu brauzerin tənzimləmələrində dəyişdirin."
+ "message": "Avto-doldurma qısayolu ayarlanmayıb. Bunu brauzerin ayarlarında dəyişdirin."
},
"autofillShortcutText": {
- "message": "Avto-doldurma qısayolu: $COMMAND$. Bunu brauzerin tənzimləmələrində dəyişdirin.",
+ "message": "Avto-doldurma qısayolu: $COMMAND$. Bunu brauzerin ayarlarında dəyişdirin.",
"placeholders": {
"command": {
"content": "$1",
@@ -2450,34 +2487,108 @@
"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.",
+ "message": "\"Səhifə yüklənəndə avto-doldurma\" özəlliyi ilkin ayarı istifadə etmək üzrə ayarlandı.",
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden avto-doldurma menyu düyməsi",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Bitwarden avto-doldurma menyusunu aç/bağla",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden avto-doldurma menyusu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Uyğunlaşan giriş məlumatlarına baxmaq üçün hesabınızın kilidini açın",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Hesabın kilidini aç",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Kimlik məlumatlarını doldur",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Qismən istifadəçi adı",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Göstəriləcək heç bir element yoxdur",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Yeni element",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Yeni anbar elementi əlavə et",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden avto-doldurma menyusu mövcuddur. Seçmək üçün aşağı ox düyməsinə basın.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Brauzerin avto-doldurması yararsız edilsin?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Bu ayarın söndürülməsi, \"Bitwarden\"in və brauzerinizin avto-doldurma menyuları arasında ziddiyyətlərə səbəb ola bilər.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Bu ayarın söndürülməsi, \"Bitwarden\"in və brauzerinizin avto-doldurma menyuları arasında ziddiyyətlərə səbəb ola bilər. Bunu işə salmaq, Bitwarden uzantısını yenidən başladacaq.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "İşə sal"
+ },
+ "ignore": {
+ "message": "Yox say"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Brauzerin avto-doldurma ayarlarını yararsız et",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Brauzerin avto-doldurması yararsız edilə bilmir",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden, brauzerin avto-doldurma ayarlarını yararsız etmək üçün uzantının gizlilik icazəsinə müraciət etməlidir.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
- "message": "Import data",
+ "message": "Datanı daxilə köçür",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
},
"importError": {
- "message": "Import error"
+ "message": "Daxilə köçürmə xətası"
},
"importErrorDesc": {
- "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again."
+ "message": "Daxilə köçürməyə çalışdığınız data ilə bağlı bir problem var. Lütfən mənbə faylınızda aşağıda sadalanan xətaları həll edib yenidən sınayın."
},
"resolveTheErrorsBelowAndTryAgain": {
- "message": "Resolve the errors below and try again."
+ "message": "Aşağıdakı xətaları həll edin və yenidən sınayın."
},
"description": {
- "message": "Description"
+ "message": "Açıqlama"
},
"importSuccess": {
- "message": "Data successfully imported"
+ "message": "Data uğurla daxilə köçürüldü"
},
"importSuccessNumberOfItems": {
- "message": "A total of $AMOUNT$ items were imported.",
+ "message": "Cəmi $AMOUNT$ element daxilə köçürüldü.",
"placeholders": {
"amount": {
"content": "$1",
@@ -2486,10 +2597,10 @@
}
},
"total": {
- "message": "Total"
+ "message": "Cəmi"
},
"importWarning": {
- "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?",
+ "message": "Datanı $ORGANIZATION$ təşkilatına köçürürsünüz. Datanızı bu təşkilatın üzvləri ilə paylaşa bilərsiniz. Davam etmək istəyirsiniz?",
"placeholders": {
"organization": {
"content": "$1",
@@ -2498,31 +2609,31 @@
}
},
"importFormatError": {
- "message": "Data is not formatted correctly. Please check your import file and try again."
+ "message": "Data doğru format edilməyib. Lütfən daxilə köçürmə faylınızı yoxlayıb yenidən sınayın."
},
"importNothingError": {
- "message": "Nothing was imported."
+ "message": "Heç nə daxilə köçürülmədi."
},
"importEncKeyError": {
- "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data."
+ "message": "Xaricə köçürülən faylın şifrəsi açılarkən xəta baş verdi. Şifrələmə açarınız, datanın xaricə köçürülməsi zamanı istifadə edilən şifrələmə açarı ilə uyğunlaşmır."
},
"invalidFilePassword": {
- "message": "Yararsız fayl parolu, zəhmət olmasa xaricə köçürmə faylını yaradarkən daxil etdiyiniz parolu istifadə edin."
+ "message": "Yararsız fayl parolu, lütfən xaricə köçürmə faylını yaradarkən daxil etdiyiniz parolu istifadə edin."
},
"importDestination": {
- "message": "Import destination"
+ "message": "Hədəfi daxilə köçür"
},
"learnAboutImportOptions": {
- "message": "Learn about your import options"
+ "message": "Daxilə köçürmə seçimlərinizi öyrənin"
},
"selectImportFolder": {
- "message": "Select a folder"
+ "message": "Bir qovluq seçin"
},
"selectImportCollection": {
- "message": "Select a collection"
+ "message": "Bir kolleksiya seçin"
},
"importTargetHint": {
- "message": "Select this option if you want the imported file contents moved to a $DESTINATION$",
+ "message": "Daxilə köçürülən fayl məzmununun $DESTINATION$ yerinə daşınmasını istəyirsinizsə bu variantı seçin",
"description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.",
"placeholders": {
"destination": {
@@ -2532,25 +2643,25 @@
}
},
"importUnassignedItemsError": {
- "message": "File contains unassigned items."
+ "message": "Faylda təyin edilməmiş elementlər var."
},
"selectFormat": {
- "message": "Select the format of the import file"
+ "message": "Daxilə köçürmə faylının formatını seçin"
},
"selectImportFile": {
- "message": "Select the import file"
+ "message": "Daxilə köçürmə faylını seçin"
},
"chooseFile": {
- "message": "Choose File"
+ "message": "Fayl seç"
},
"noFileChosen": {
- "message": "No file chosen"
+ "message": "Heç bir fayl seçilməyib"
},
"orCopyPasteFileContents": {
- "message": "or copy/paste the import file contents"
+ "message": "və ya daxilə köçürmə faylının məzmununu kopyalayın/yapışdırın"
},
"instructionsFor": {
- "message": "$NAME$ Instructions",
+ "message": "$NAME$ Təlimatları",
"description": "The title for the import tool instructions.",
"placeholders": {
"name": {
@@ -2560,13 +2671,13 @@
}
},
"confirmVaultImport": {
- "message": "Confirm vault import"
+ "message": "Anbarın daxilə köçürülməsini təsdiqləyin"
},
"confirmVaultImportDesc": {
- "message": "This file is password-protected. Please enter the file password to import data."
+ "message": "Bu fayl parolla qorunur. Məlumatları daxilə köçürmək üçün fayl parolunu daxil edin."
},
"confirmFilePassword": {
- "message": "Confirm file password"
+ "message": "Fayl parolunu təsdiqlə"
},
"passkeyNotCopied": {
"message": "Keçid açarı kopyalanmır"
@@ -2614,10 +2725,10 @@
"message": "Özəllik hələ dəstəklənmir"
},
"yourPasskeyIsLocked": {
- "message": "Authentication required to use passkey. Verify your identity to continue."
+ "message": "Keçid açarını istifadə etmək üçün kimlik doğrulama tələb olunur. Davam etmək üçün kimliyinizi doğrulayın."
},
"useBrowserName": {
- "message": "Use browser"
+ "message": "Brauzer istifadə et"
},
"multifactorAuthenticationCancelled": {
"message": "Çox faktorlu kimlik doğrulama ləğv edildi"
diff --git a/apps/browser/src/_locales/be/messages.json b/apps/browser/src/_locales/be/messages.json
index 7278c61d448..b5342529094 100644
--- a/apps/browser/src/_locales/be/messages.json
+++ b/apps/browser/src/_locales/be/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Пытацца пра дадаванне элемента, калі ён адсутнічае ў вашым сховішчы."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Паказваць карткі на старонцы з укладкамі"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Пытацца пра абнаўленне пароля ад лагіна пры выяўленні змяненняў на вэб-сайце."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Хочаце абнавіць гэты пароль у Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Выкарыстоўваць падвоены націск для доступу да генератара пароляў і супастаўлення лагінаў для вэб-сайтаў. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Прадвызначанае выяўленне супадзення URI",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Змена каляровай тэмы праграмы."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Цёмная",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "URL-адрас сервера асяроддзя захаваны."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Аўтазапаўненне пры загрузцы старонкі"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Пасведчанне"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Гісторыя пароляў"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Праграма не будзе прапаноўваць захаваць падрабязнасці ўваходу для гэтых даменаў. Вы павінны абнавіць старонку, каб змяненні пачалі дзейнічаць."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ не з'яўляецца правільным даменам",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/bg/messages.json b/apps/browser/src/_locales/bg/messages.json
index dfa2260546c..2ce13e9fd46 100644
--- a/apps/browser/src/_locales/bg/messages.json
+++ b/apps/browser/src/_locales/bg/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Известията за запазване на регистрации автоматично ви подканят да запазите новите регистрации в трезора при първото ви вписване в тях."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Питане за добавяне на елемент, ако такъв не бъде намерен в трезора. Прилага се за всички регистрации, в които сте вписан(а)."
+ },
"showCardsCurrentTab": {
"message": "Показване на карти в страницата с разделите"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Питане за обновяване на паролата към даден запис, когато бъде засечена промяна в съответния уеб сайт."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Питане за обновяване на паролата за дадена регистрация, ако бъде засечена промяна в съответния уеб сайт. Прилага се за всички регистрации, в които сте вписан(а)."
+ },
+ "enableUsePasskeys": {
+ "message": "Питане за запазване и ползване на секретни ключове"
+ },
+ "usePasskeysDesc": {
+ "message": "Питане за запазване на нови секретни ключове или за вписване чрез секретни ключове, пазени в трезора. Прилага се за всички регистрации, в които сте вписан(а)."
+ },
"notificationChangeDesc": {
"message": "Да се обнови ли паролата в Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Щракване с десния бутон на мишката дава достъп до генератора на пароли и съответстващите за уеб сайта записи. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Щракване с десния бутон на мишката дава достъп до генератора на пароли и съответстващите за уеб сайта записи. Прилага се за всички регистрации, в които сте вписан(а)."
+ },
"defaultUriMatchDetection": {
"message": "Стандартно засичане на адреси",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Промяна на цветовия облик на програмата."
},
+ "themeDescAlt": {
+ "message": "Промяна на цветовата тема на приложението. Прилага се за всички регистрации, в които сте вписан(а)."
+ },
"dark": {
"message": "Тъмен",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Средата с адресите е запазена."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Показване на меню за авт. попълване при полетата на формулярите",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Прилага се за всички регистрации, в които сте вписан(а)."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Изключено",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Когато полето бъде избрано (на фокус)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Когато бъде избрана иконката за авт. попълване",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Включване на автоматичното попълване"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Самоличност"
},
- "typePasskey": {
- "message": "Секретен ключ"
- },
"passwordHistory": {
"message": "Хронология на паролата"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Битуорден няма да пита дали да запазва данните за вход в тези сайтове. За да влезе правилото в сила, презаредете страницата."
},
+ "excludedDomainsDescAlt": {
+ "message": "Битуорден няма да пита дали да запазва данните за вход в тези сайтове за всички регистрации, в които сте вписан(а). За да влезе правилото в сила, презаредете страницата."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ не е валиден домейн",
"placeholders": {
@@ -2134,7 +2171,7 @@
"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.",
+ "message": "Свързан(а) сте със сървърна имплементация от трета страна — $SERVERNAME$. Ако се сблъскате с проблем, може да проверите официалния сървър, или да го докладвате в сървъра на третата страна.",
"placeholders": {
"servername": {
"content": "$1",
@@ -2457,6 +2494,80 @@
"message": "Изключете повторното въвеждане на главната парола, за да редактирате това поле",
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
},
+ "bitwardenOverlayButton": {
+ "message": "Бутон на менюто за авт. попълване на Битуорден",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Превключване на менюто за авт. попълване на Битуорден",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Меню за авт. попълване на Битуорден",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Отключете регистрацията си, за да видите съвпадащите записи за вписване",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Отключване на регистрацията",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Попълване на данните за",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Частично потребителско име",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Няма елементи за показване",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Нов елемент",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Добавяне на нов елемент в трезора",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Има налично меню за авт. попълване на Битуорден. Натиснете стрелката надолу, за да го изберете.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Замяна на автоматичното попълване на браузъра?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Ако оставите тази настройка изключена, може да има конфликт между менюто за автоматично попълване на Битуорден и това на браузъра.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Ако оставите тази настройка изключена, може да има конфликт между менюто за автоматично попълване на Битуорден и това на браузъра. Ако я включите, разширението на Битуорден ще трябва да бъде рестартирано.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Включване"
+ },
+ "ignore": {
+ "message": "Пренебрегване"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Настройки за замяна на автоматичното попълване на браузъра",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Автоматичното попълване на браузъра не може да бъде заменено",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Битуорден трябва да има разрешение за достъп до поверителността на разширението, за да може да замени настройките за автоматично попълване на браузъра.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Внасяне на данни",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
@@ -2602,7 +2713,7 @@
"message": "Изберете елемент, в който да запазите този секретен ключ"
},
"passkeyItem": {
- "message": "Passkey Item"
+ "message": "Секретен ключ"
},
"overwritePasskey": {
"message": "Да се замени ли секретният ключ?"
diff --git a/apps/browser/src/_locales/bn/messages.json b/apps/browser/src/_locales/bn/messages.json
index eb3a6354094..5827f01cde8 100644
--- a/apps/browser/src/_locales/bn/messages.json
+++ b/apps/browser/src/_locales/bn/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "\"লগইন যোগ করুন বিজ্ঞপ্তি\" স্বয়ংক্রিয়ভাবে আপনই যখনই প্রথমবারের জন্য লগ ইন করেন তখন আপনার ভল্টে নতুন লগইনগুলি সংরক্ষণ করতে অনুরোধ জানায়।"
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "আপনি কি এই পাসওয়ার্ডটি Bitwarden এ হালনাগাদ করতে চান?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "পূর্ব-নির্ধারিত URI মিল সনাক্তকরণ",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "অ্যাপ্লিকেশনটির রং থিম পরিবর্তন।"
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "অন্ধকার",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "পরিবেশের URL গুলি সংরক্ষণ করা হয়েছে।"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "পৃষ্ঠা লোডে স্বতঃপূরণ সক্ষম করুন"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "পরিচয়"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "পাসওয়ার্ড ইতিহাস"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/bs/messages.json b/apps/browser/src/_locales/bs/messages.json
index 85860ee130a..87509233dda 100644
--- a/apps/browser/src/_locales/bs/messages.json
+++ b/apps/browser/src/_locales/bs/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Default URI match detection",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/ca/messages.json b/apps/browser/src/_locales/ca/messages.json
index 90af76cb111..c270f19118b 100644
--- a/apps/browser/src/_locales/ca/messages.json
+++ b/apps/browser/src/_locales/ca/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "La \"Notificació per afegir inicis de sessió\" demana automàticament que guardeu els nous inicis de sessió a la vostra caixa forta quan inicieu la sessió per primera vegada."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Demana afegir un element si no se'n troba cap a la caixa forta. S'aplica a tots els comptes connectats."
+ },
"showCardsCurrentTab": {
"message": "Mostra les targetes a la pàgina de pestanya"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Demana actualitzar la contrasenya d'inici de sessió quan es detecte un canvi en un lloc web."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Demana actualitzar la contrasenya d'inici de sessió quan es detecte un canvi en un lloc web. S'aplica a tots els comptes connectats."
+ },
+ "enableUsePasskeys": {
+ "message": "Demana guardar i utilitzar claus de pas"
+ },
+ "usePasskeysDesc": {
+ "message": "Demana que guardeu les contrasenyes noves o inicieu sessió amb les claus emmagatzemades a la vostra caixa forta. S'aplica a tots els comptes connectats."
+ },
"notificationChangeDesc": {
"message": "Voleu actualitzar aquesta contrasenya a Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Utilitza un clic secundari per accedir a la generació de contrasenyes i als inicis de sessió coincidents per al lloc web. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Fa servir un clic secundari per accedir a la generació de contrasenyes i als inicis de sessió coincidents per al lloc web. S'aplica a tots els comptes connectats."
+ },
"defaultUriMatchDetection": {
"message": "Detecció de coincidències URI per defecte",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Canvia el color del tema de l'aplicació."
},
+ "themeDescAlt": {
+ "message": "Canvia el tema de color de l'aplicació. S'aplica a tots els comptes connectats."
+ },
"dark": {
"message": "Fosc",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "S'han guardat les URL de l'entorn"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Mostra el menú d'emplenament automàtic als camps del formulari",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "S'aplica a tots els comptes connectats."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Desactivat",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Quan el camp està seleccionat (en el focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Quan la icona d'emplenament automàtic està seleccionada",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Habilita l'emplenament automàtic en carregar la pàgina"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identitat"
},
- "typePasskey": {
- "message": "Clau de pas"
- },
"passwordHistory": {
"message": "Historial de les contrasenyes"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden no demanarà que es guarden les dades d’inici de sessió d’aquests dominis. Heu d'actualitzar la pàgina perquè els canvis tinguen efecte."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden no demanarà que es guarden les dades d'inici de sessió d'aquests dominis per a tots els comptes iniciats. Heu d'actualitzar la pàgina perquè els canvis tinguen efecte."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ no és un domini vàlid",
"placeholders": {
@@ -2457,6 +2494,80 @@
"message": "Desactiveu la sol·licitud de nova contrasenya mestra per editar aquest camp",
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
},
+ "bitwardenOverlayButton": {
+ "message": "Botó de menú d'emplenament automàtic de Bitwarden",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Commuta el menú d'emplenament automàtic de Bitwarden",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Menú d'emplenament automàtic de Bitwarden",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Desbloqueja el compte per veure els inicis de sessió coincidents",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Desbloqueja el compte",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Ompliu les credencials per a",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Nom d'usuari parcial",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No hi ha cap element per mostrar",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Element nou",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Afegeix un nou element a la caixa forta",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "El menú d'emplenament automàtic de Bitwarden està disponible. Premeu la tecla de fletxa avall per seleccionar-lo.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Voleu substituir l'emplenament automàtic del navegador?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Si deixeu aquesta configuració desactivada, és possible que hi haja conflictes entre el menú d'emplenament automàtic de Bitwarden i el del navegador.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Si deixeu aquesta configuració desactivada, és possible que hi haja conflictes entre el menú d'emplenament automàtic de Bitwarden i el del navegador. En activar-la, es reiniciarà l'extensió Bitwarden.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Activa"
+ },
+ "ignore": {
+ "message": "Ignora"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Anul·la la configuració d'emplenament automàtic del navegador",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "No es pot anul·lar l'emplenament automàtic del navegador",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden ha de tenir accés al permís de privadesa de l'extensió per anul·lar la configuració d'emplenament automàtic del navegador.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Importa dades",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/cs/messages.json b/apps/browser/src/_locales/cs/messages.json
index 5a2e61bb6ec..35242676aa2 100644
--- a/apps/browser/src/_locales/cs/messages.json
+++ b/apps/browser/src/_locales/cs/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Zeptá se na uložení údajů, pokud nebyly v trezoru nalezeny."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Požádá o přidání položky, pokud nebyla nalezena v trezoru. Platí pro všechny přihlášené účty."
+ },
"showCardsCurrentTab": {
"message": "Zobrazit platební karty na obrazovce Karta"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Zeptat se na aktualizaci hesla pro přihlášení, pokud je na webové stránce zjištěno použití jiného hesla."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Vyžádá aktualizaci hesla k přihlášení, pokud je na webu zjištěna změna. Platí pro všechny přihlášené účty."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Chcete aktualizovat toto heslo v Bitwardenu?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Použijte pravé tlačítko pro přístup k vytvoření hesla a odpovídajícímu přihlášení pro tuto stránku. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Použije pravé tlačítko pro přístup k vytvoření hesla a odpovídajícímu přihlášení pro tuto stránku. Platí pro všechny přihlášené účty."
+ },
"defaultUriMatchDetection": {
"message": "Výchozí zjišťování shody URI",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Změní barevný motiv aplikace."
},
+ "themeDescAlt": {
+ "message": "Změní barevný motiv aplikace. Platí pro všechny přihlášené účty."
+ },
"dark": {
"message": "Tmavý",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "URL adresy vlastního prostředí byly uloženy"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Zobrazit menu automatického vyplňování v polích formuláře",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Použije se na všechny přihlášené účty."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "VYP.",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Když je vybráno pole (zaměřeno)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Když je vybrána ikona automatického vyplňování",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Automaticky vyplnit údaje při načtení stránky"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identita"
},
- "typePasskey": {
- "message": "Přístupový klíč"
- },
"passwordHistory": {
"message": "Historie hesel"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden nebude žádat o uložení přihlašovacích údajů pro tyto domény. Aby se změny projevily, musíte stránku obnovit."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden nebude žádat o uložení přihlašovacích údajů pro tyto domény pro všechny přihlášené účty. Aby se změny projevily, musíte stránku obnovit."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ není platná doména",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Tlačítko nabídky automatického vyplňování Bitwardenu",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Přepnout nabídku automatického vyplňování Bitwardenu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Nabídka automatického vyplňování Bitwardenu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Odemkněte Váš účet pro zobrazení odpovídajících přihlašovacích údajů",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Odemknout účet",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Vyplnit přihlašovací údaje pro",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Částečné uživatelské jméno",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Žádné položky k zobrazení",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Nová položka",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Přidat novou položku trezoru",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Nabídka automatického vyplňování Bitwardenu. Pro výběr stiskněte šipku dolů.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Přepsat automatické vyplnění prohlížeče?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Ponechání tohoto nastavení ve vypnutém stavu může způsobit konflikty mezi nabídkou automatického vyplňování Bitwardenu a Vaším prohlížečem.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Ponechání tohoto nastavení ve vypnutém stavu může způsobit konflikty mezi nabídkou automatického vyplňování Bitwardenu a Vaším prohlížečem. Zapnutím tohoto rozšíření dojde k restartování doplňku Bitwardenu.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Zapnout"
+ },
+ "ignore": {
+ "message": "Ignorovat"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Přepsat nastavení automatického vyplnění prohlížeče",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Nelze přepsat automatické vyplnění prohlížeče",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden musí mít přístup k ochraně osobních údajů doplňku pro přepsání nastavení automatického vyplňování prohlížeče.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Importovat data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/cy/messages.json b/apps/browser/src/_locales/cy/messages.json
index 3ba4132947c..fac5aaf5335 100644
--- a/apps/browser/src/_locales/cy/messages.json
+++ b/apps/browser/src/_locales/cy/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Default URI match detection",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Tywyll",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Hunaniaeth"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Fydd Bitwarden ddim yn gofyn i gadw manylion mewngofnodi'r parthau hyn. Rhaid i chi ail-lwytho'r dudalen i newidiadau ddod i rym."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "Dyw $DOMAIN$ ddim yn barth dilys",
"placeholders": {
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Iawn"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/da/messages.json b/apps/browser/src/_locales/da/messages.json
index 1bcce85bef1..3da61a598ce 100644
--- a/apps/browser/src/_locales/da/messages.json
+++ b/apps/browser/src/_locales/da/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Spørg om at tilføje et element, hvis et ikke findes i din boks."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Anmod om at tilføje et emne, hvis intet ikke findes i boksen. Gælder alle indloggede konti."
+ },
"showCardsCurrentTab": {
"message": "Vis kort på fanebladet"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Bed om at opdatere et logins adgangskode, når der registreres en ændring på en hjemmeside."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Anmod om at opdatere en login-adgangskode ved registreret ændring på et websted. Gælder alle indloggede konti."
+ },
+ "enableUsePasskeys": {
+ "message": "Spørg om at gemme og bruge adgangsnøgler"
+ },
+ "usePasskeysDesc": {
+ "message": "Spørg om at gemme nye adgangsnøgler eller logge ind med adgangsnøgler gemt i Boksen. Gælder for alle indloggede konti."
+ },
"notificationChangeDesc": {
"message": "Vil du opdatere denne adgangskode i Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Brug et sekundært klik for at få adgang til adgangskodegenerering og matchende logins til hjemmesiden."
},
+ "contextMenuItemDescAlt": {
+ "message": "Brug et sekundært klik for at få adgang til adgangskodegenerering og matchende logins til webstedet. Gælder alle indloggede konti."
+ },
"defaultUriMatchDetection": {
"message": "Standard URI matchmetode",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Skift applikationens farvetema."
},
+ "themeDescAlt": {
+ "message": "Skift applikationens farvetema. Gælder for alle indloggede konti."
+ },
"dark": {
"message": "Mørk",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Miljøets URLs er blevet gemt."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Vis autoudfyld-menu i formularfelter",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Gælder for alle indloggede konti."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Fra",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Når felt er valgt (i fokus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Når autoudfyld-ikon vælges",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-udfyld ved sideindlæsning"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identitet"
},
- "typePasskey": {
- "message": "Adgangsnøgle"
- },
"passwordHistory": {
"message": "Adgangskodehistorik"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden vil ikke bede om at gemme login-detaljer for disse domæner. Du skal opdatere siden for at ændringerne kan træde i kraft."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden vil ikke anmode om at gemme login-detaljer for disse domæner for alle indloggede konti. Siden skal opfriskes for at effektuere ændringerne."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ er ikke et gyldigt domæne",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden autoudfyld-menuknap",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Slå Bitwarden autoudfyld--menu til/fra",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden autoudfyld-menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Oplås kontoen for at se matchende logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Oplås konto",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Angiv legitimationsoplysninger for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Delvis brugernavn",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Ingen emner at vise",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Nyt emne",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Tilføj nyt Boks-emne",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden autoudfyld-menu tilgængelig. Tryk på pil ned-tasten for at vælge.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Tilsidesæt browser-autoudfyldning?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Lades denne indstilling deaktiveret, kan det forårsage konflikter mellem Bitwardens autoudfyld-menu og webbrowsere.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Lades denne indstilling deaktiveret, kan det forårsage konflikter mellem Bitwardens autoudfyld-menu og webbrowsere. Aktiveres indstillingen, genstartes Bitwarden-udvidelsen.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Slå til"
+ },
+ "ignore": {
+ "message": "Ignorér"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Tilsidesæt webbrowser autoudfyld-indstillinger",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Kan ikke tilsidesætte webbrowser-autoudfyld",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden skal kunne tilgå udvidelsens fortrolighedstilladelse for at tilsidesætte indstillinger for webbrowser-autoudfyld.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Importér data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/de/messages.json b/apps/browser/src/_locales/de/messages.json
index 4f4bab110a7..28b7a3729d0 100644
--- a/apps/browser/src/_locales/de/messages.json
+++ b/apps/browser/src/_locales/de/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Nach dem Hinzufügen eines Eintrags fragen, wenn dieser nicht in deinem Tresor gefunden wurde."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Nach dem Hinzufügen eines Eintrags fragen, wenn er nicht in deinem Tresor gefunden wurde. Gilt für alle angemeldeten Konten."
+ },
"showCardsCurrentTab": {
"message": "Karten auf Tab Seite anzeigen"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Nach dem Aktualisieren eines Passworts fragen, wenn eine Änderung auf einer Website erkannt wird."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Nach dem Aktualisieren des Passworts von Zugangsdaten fragen, wenn eine Änderung auf einer Website erkannt wird. Gilt für alle angemeldeten Konten."
+ },
+ "enableUsePasskeys": {
+ "message": "Nach dem Speichern und Verwenden von Passkeys fragen"
+ },
+ "usePasskeysDesc": {
+ "message": "Danach fragen neue Passkeys zu speichern oder sich mit in deinem Tresor gespeicherten Passkeys anmelden. Gilt für alle angemeldeten Konten."
+ },
"notificationChangeDesc": {
"message": "Möchtest du dieses Passwort in Bitwarden aktualisieren?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Greife über einen Rechtsklick auf die Erstellung von Passwörtern und passende Zugangsdaten für die Website zu."
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Standard URI-Übereinstimmungserkennung",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Ändere das Farbschema der Anwendung."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dunkel",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "URLs der Umgebung gespeichert"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Gilt für alle angemeldeten Konten."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Aus",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-Ausfüllen beim Laden einer Seite aktivieren"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identität"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Passwortverlauf"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden wird keine Login-Daten für diese Domäne speichern. Du musst die Seite aktualisieren, damit die Änderungen wirksam werden."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden wird für alle angemeldeten Konten nicht danach fragen Zugangsdaten für diese Domains speichern. Du musst die Seite neu laden, damit die Änderungen wirksam werden."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ ist keine gültige Domain",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden Auto-Ausfüllen Menütaste",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Bitwarden Auto-Ausfüllen Menü umschalten",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden Auto-Ausfüllen Menü",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Konto entsperren",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Zugangsdaten ausfüllen für",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Kein Eintrag zum Anzeigen",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Neuer Eintrag",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Neuen Tresor-Eintrag hinzufügen",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Einschalten"
+ },
+ "ignore": {
+ "message": "Ignorieren"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Daten importieren",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/el/messages.json b/apps/browser/src/_locales/el/messages.json
index e3211bcee52..b72c72605c6 100644
--- a/apps/browser/src/_locales/el/messages.json
+++ b/apps/browser/src/_locales/el/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Η \"Προσθήκη Ειδοποίησης Σύνδεσης\" σας προτρέπει αυτόματα να αποθηκεύσετε νέες συνδέσεις στο vault σας κάθε φορά που θα συνδεθείτε για πρώτη φορά."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Εμφάνιση καρτών στη σελίδα Καρτέλας"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ζητήστε να ενημερώσετε τον κωδικό πρόσβασης μιας σύνδεσης όταν εντοπιστεί μια αλλαγή σε μια ιστοσελίδα."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Θέλετε να ενημερώσετε αυτό τον κωδικό στο Bitwarden ;"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Χρησιμοποιήστε ένα δευτερεύον κλικ για να αποκτήσετε πρόσβαση στη δημιουργία κωδικού πρόσβασης και να ταιριάξετε τις συνδέσεις για την ιστοσελίδα. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Προεπιλεγμένη ανίχνευση αντιστοιχίας URI",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Αλλαγή χρώματος θέματος εφαρμογής."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Σκοτεινό",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Οι διευθύνσεις URL περιβάλλοντος έχουν αποθηκευτεί."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Ενεργοποίηση αυτόματης συμπλήρωσης κατά την φόρτωση της σελίδας"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Ταυτότητα"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Ιστορικό Κωδικού"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Το Bitwarden δεν θα ζητήσει να αποθηκεύσετε τα στοιχεία σύνδεσης για αυτούς τους τομείς. Πρέπει να ανανεώσετε τη σελίδα για να τεθούν σε ισχύ οι αλλαγές."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "Το $DOMAIN$ δεν είναι έγκυρος τομέας",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Εισαγωγή δεδομένων",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/en_GB/messages.json b/apps/browser/src/_locales/en_GB/messages.json
index a13edbe6b2f..79c0e3dbc49 100644
--- a/apps/browser/src/_locales/en_GB/messages.json
+++ b/apps/browser/src/_locales/en_GB/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Use a secondary click to access password generation and matching logins for the website. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Default URI match detection",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's colour theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's colour theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/en_IN/messages.json b/apps/browser/src/_locales/en_IN/messages.json
index c1e4750afd9..9848dad0ed3 100644
--- a/apps/browser/src/_locales/en_IN/messages.json
+++ b/apps/browser/src/_locales/en_IN/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "The \"add login notification\" automatically prompts you to save new logins to your vault whenever you log into them for the first time."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Use a secondary click to access password generation and matching logins for the website. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Default URI match detection",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's colour theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "The environment URLs have been saved."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Enable auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/es/messages.json b/apps/browser/src/_locales/es/messages.json
index bd987126b69..e41e1a3abfa 100644
--- a/apps/browser/src/_locales/es/messages.json
+++ b/apps/browser/src/_locales/es/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "La opción \"Notificación para añadir entradas\" pregunta automáticamente si quieres guardar nuevas entradas en tu caja fuerte cuando te identificas en un sitio web por primera vez."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Mostrar las tarjetas en la pestaña"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Solicitar la actualización de los datos de inicio de sesión existentes cuando se detecte un cambio en un sitio web."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "¿Desea actualizar esta contraseña en Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Haga clic con el botón secundario para acceder a la generación de contraseñas y a los inicios de sesión correspondientes al sitio web. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Detección por defecto de coincidencia de URI",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Cambiar el tema de la aplicación."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Oscuro",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Las URLs del entorno han sido guardadas."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Habilitar autorrellenar al cargar la página"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identidad"
},
- "typePasskey": {
- "message": "Clave de acceso"
- },
"passwordHistory": {
"message": "Historial de contraseñas"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden no pedirá que se guarden los datos de acceso para estos dominios. Debe actualizar la página para que los cambios surtan efecto."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ no es un dominio válido",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Importar datos",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/et/messages.json b/apps/browser/src/_locales/et/messages.json
index 415ad5bb2a9..c3fa407c916 100644
--- a/apps/browser/src/_locales/et/messages.json
+++ b/apps/browser/src/_locales/et/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "\"Lisa konto andmed\" teavitus ilmub pärast esimest sisselogimist ning võimaldab kontoandmeid automaatselt Bitwardenisse lisada."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Kuva \"Kaart\" vaates kaardiandmed"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Kui veebilehel tuvastatakse olemasolevate andmete muutmine, siis pakutakse nende andmete uuendamist Bitwardenis."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Soovid seda parooli ka Bitwardenis uuendada?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Võimaldab parema kliki menüüs kaustada Bitwardeni valikuid, nt kontoandmete täitmist või parooli genereerimist. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Vaike URI sobivuse tuvastamine",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Muuda rakenduse värvikujundust."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Tume",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "The environment URLs have been saved."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Luba kontoandmete täitmine"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identiteet"
},
- "typePasskey": {
- "message": "Pääsukood"
- },
"passwordHistory": {
"message": "Paroolide ajalugu"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Nendel domeenidel Bitwarden paroolide salvestamise valikut ei paku. Muudatuste jõustamiseks pead lehekülge värskendama."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ ei ole õige domeen.",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/eu/messages.json b/apps/browser/src/_locales/eu/messages.json
index 88436d8d2f2..1da1301e48b 100644
--- a/apps/browser/src/_locales/eu/messages.json
+++ b/apps/browser/src/_locales/eu/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Elementu bat gehitu nahi duzun galdetu, elementu hau zure kutxa gotorrean ez badago."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Erakutsi txartelak fitxa orrian"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Galdetu saio-hasiera baten pasahitza eguneratzeko, webgune batean aldaketaren bat atzematen denean."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Bitwardenen pasahitz hau eguneratu nahi duzu?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Erabili bigarren mailako klika webgunerako pasahitzak eta saio-hasierak sortzeko."
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Lehenetsitako detekzioa URI kointzidentziarako",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Aldatu aplikaziorako kolore gaia."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Iluna",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Inguruneko URL-ak gorde dira."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-bete orrialdea kargatzean"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identitatea"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Pasahitz historia"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwardenek ez du eskatuko domeinu horietarako saio-hasierako xehetasunak gordetzea. Orrialdea eguneratu behar duzu aldaketek eragina izan dezaten."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ ez da onartutako domeinu bat",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/fa/messages.json b/apps/browser/src/_locales/fa/messages.json
index 1bb8121d8a0..95343071a65 100644
--- a/apps/browser/src/_locales/fa/messages.json
+++ b/apps/browser/src/_locales/fa/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "در صورتی که موردی در گاوصندوق شما یافت نشد، درخواست افزودن کنید."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "نمایش کارتها در صفحه برگه"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "هنگامی که تغییری در یک وبسایت شناسایی شد، درخواست بهروزرسانی کلمه عبور ورود کن."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "آیا مایل به بهروزرسانی این کلمه عبور در Bitwarden هستید؟"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "از یک کلیک ثانویه برای دسترسی به تولید کلمه عبور و ورودهای منطبق برای وب سایت استفاده کن."
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "بررسی مطابقت نشانی اینترنتی پیشفرض",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "تغییر رنگ پوسته برنامه."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "تاریک",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "نشانیهای اینترنتی محیط ذخیره شد"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "پر کردن خودکار هنگام بارگذاری صفحه"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "هویت"
},
- "typePasskey": {
- "message": "کلید عبور"
- },
"passwordHistory": {
"message": "تاریخچه کلمه عبور"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden برای ذخیره جزئیات ورود به سیستم این دامنه ها سوال نمیکند. برای اینکه تغییرات اعمال شود باید صفحه را تازه کنید."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ دامنه معتبری نیست",
"placeholders": {
@@ -2457,6 +2494,80 @@
"message": "برای ویرایش این فیلد، درخواست مجدد کلمه عبور اصلی را خاموش کنید",
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/fi/messages.json b/apps/browser/src/_locales/fi/messages.json
index 5455c794fa1..e4e07528251 100644
--- a/apps/browser/src/_locales/fi/messages.json
+++ b/apps/browser/src/_locales/fi/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Kysy lisätäänkö uusi kohde, jos holvissa ei vielä ole sopivaa kohdetta."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Näytä kortit välilehtiosiossa"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Kysy päivitetäänkö kirjautumistiedon salasana sivustolla havaittua muutosta vastaavaksi."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Haluatko päivittää salasanan Bitwardeniin?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Käytä salasanageneraattoria ja avoimelle sivulle soveltuvia kirjautumistietoja hiiren kakkospainikkeella avattavasta valikosta."
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "URI:n oletusarvoinen täsmäystapa",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Vaihda sovelluksen väriteemaa."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Tumma",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Palvelinympäristön URL-osoitteet tallennettiin"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Automaattinen täyttö sivun avautuessa"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Henkilöllisyys"
},
- "typePasskey": {
- "message": "Suojausavain"
- },
"passwordHistory": {
"message": "Salasanahistoria"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden ei pyydä kirjautumistietojen tallennusta näille verkkotunnuksille. Päivitä sivu ottaaksesi muutokset käyttöön."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ ei ole kelvollinen verkkotunnus",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Tuo tietoja",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/fil/messages.json b/apps/browser/src/_locales/fil/messages.json
index 3e2794dfb87..fe689bf797c 100644
--- a/apps/browser/src/_locales/fil/messages.json
+++ b/apps/browser/src/_locales/fil/messages.json
@@ -92,13 +92,13 @@
"message": "Auto-fill sa Filipino ay Awtomatikong Pagpuno"
},
"autoFillLogin": {
- "message": "Auto-fill login"
+ "message": "Auto-fill na pag-login"
},
"autoFillCard": {
"message": "Auto-fill card"
},
"autoFillIdentity": {
- "message": "Auto-fill identity"
+ "message": "Awtomatikong punan ang pagkakakilanlan"
},
"generatePasswordCopied": {
"message": "Maglagay ng Password"
@@ -110,19 +110,19 @@
"message": "Walang tumutugmang mga login"
},
"noCards": {
- "message": "No cards"
+ "message": "Walang card"
},
"noIdentities": {
- "message": "No identities"
+ "message": "Walang pagkakakilanlan"
},
"addLoginMenu": {
- "message": "Add login"
+ "message": "Magdagdag ng login"
},
"addCardMenu": {
- "message": "Add card"
+ "message": "Magdagdag ng card"
},
"addIdentityMenu": {
- "message": "Add identity"
+ "message": "Magdagdag ng pagkakakilanlan"
},
"unlockVaultMenu": {
"message": "Buksan ang iyong kahadeyero"
@@ -363,7 +363,7 @@
"message": "Iba pa"
},
"unlockMethodNeededToChangeTimeoutActionDesc": {
- "message": "Set up an unlock method to change your vault timeout action."
+ "message": "Mag-set up ng paraan ng pag-unlock upang baguhin ang iyong pagkilos sa pag-timeout ng vault."
},
"rateExtension": {
"message": "I-rate ang extension"
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Tanungin na magdagdag ng isang item kung wala itong nakita sa iyong vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Hilingin na magdagdag ng isang item kung ang isa ay hindi mahanap sa iyong vault. Nalalapat sa lahat ng naka-log in na account."
+ },
"showCardsCurrentTab": {
"message": "Ipakita ang mga card sa Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Tanungin ang update ng password ng isang login kapag napansin ang pagbabago sa websi."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Hilingin na i-update ang password ng login kapag may nakitang pagbabago sa isang website. Nalalapat sa lahat ng naka-log in na account.\nI-unlock ang iyong Bitwarden vault para makumpleto ang kahilingan sa auto-fill."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Nais mo bang i-update ang password na ito sa Bitwarden?"
},
@@ -658,10 +670,10 @@
"message": "I-update"
},
"notificationUnlockDesc": {
- "message": "Unlock your Bitwarden vault to complete the auto-fill request."
+ "message": "I-unlock ang iyong Bitwarden vault para makumpleto ang kahilingan sa auto-fill."
},
"notificationUnlock": {
- "message": "Unlock"
+ "message": "I-unlock"
},
"enableContextMenuItem": {
"message": "Ipakita ang mga opsyon ng menu ng konteksto"
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Gamitin ang pangalawang pag-click upang ma-access ang password generation at matching logins para sa website. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Gumamit ng pangalawang pag-click upang ma-access ang pagbuo ng password at pagtutugma ng mga login para sa website. Nalalapat sa lahat ng naka-log in na account."
+ },
"defaultUriMatchDetection": {
"message": "Default na pagtukoy ng tugma ng URI",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Baguhin ang tema ng kulay ng application."
},
+ "themeDescAlt": {
+ "message": "Baguhin ang tema ng kulay ng application. Nalalapat sa lahat ng naka-log in na account."
+ },
"dark": {
"message": "Madilim",
"description": "Dark color"
@@ -796,7 +814,7 @@
"message": "Hindi magagamit ang tampok"
},
"encryptionKeyMigrationRequired": {
- "message": "Encryption key migration required. Please login through the web vault to update your encryption key."
+ "message": "Kinakailangan ang paglilipat ng encryption key. Mangyaring mag-login sa pamamagitan ng web vault upang i-update ang iyong encryption key."
},
"premiumMembership": {
"message": "Pagiging miyembro ng premium"
@@ -820,7 +838,7 @@
"message": "1 GB encrypted storage para sa mga file attachment."
},
"premiumSignUpTwoStepOptions": {
- "message": "Proprietary two-step login options such as YubiKey and Duo."
+ "message": "Pagmamay-ari na dalawang hakbang na opsyon sa pag-log in gaya ng YubiKey at Duo."
},
"ppremiumSignUpReports": {
"message": "Pasahod higiyena, kalusugan ng account, at mga ulat sa data breach upang panatilihing ligtas ang iyong vault."
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Nai-save ang mga URL ng Kapaligiran"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Nakasara",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Awtomatikong punan sa pagkarga ng pahina"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Pagkakakilanlan"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Kasaysayan ng Password"
},
@@ -1519,10 +1553,10 @@
"message": "Current master password"
},
"newMasterPass": {
- "message": "New master password"
+ "message": "Bagong master password"
},
"confirmNewMasterPass": {
- "message": "Confirm new master password"
+ "message": "Kumpirmahin ang bagong master password"
},
"masterPasswordPolicyInEffect": {
"message": "Isang o higit pang mga patakaran ng organisasyon ay nangangailangan ng iyong master password upang matugunan ang sumusunod na kinakailangan:"
@@ -1657,7 +1691,7 @@
"message": "Isang organisasyon policy ang nakakaapekto sa iyong mga pagpipilian sa ownership."
},
"personalOwnershipPolicyInEffectImports": {
- "message": "An organization policy has blocked importing items into your individual vault."
+ "message": "Hinarang ng isang patakaran ng organisasyon ang pag-import ng mga item sa iyong vault."
},
"excludedDomains": {
"message": "Inilayo na Domain"
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Hindi tatanungin ng Bitwarden na i-save ang mga detalye ng pag-login para sa mga domain na ito. Kailangan mo nang i-refresh ang page para maipatupad ang mga pagbabago."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ ay hindi isang valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "Paano mag-auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Nakuha ko"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/fr/messages.json b/apps/browser/src/_locales/fr/messages.json
index e677671da6d..489303d13cb 100644
--- a/apps/browser/src/_locales/fr/messages.json
+++ b/apps/browser/src/_locales/fr/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Demander à ajouter un élément si aucun n'est trouvé dans votre coffre."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Afficher les cartes sur la page de l'onglet"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Demander à mettre à jour le mot de passe d'un identifiant lorsqu'un changement est détecté sur un site Web."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Souhaitez-vous mettre à jour ce mot de passe dans Bitwarden ?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Utilisez un clic secondaire pour accéder à la génération de mots de passe et les identifiants correspondants pour le site Web. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Détection de correspondance URI par défaut",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Modifier le thème de couleur de l'application."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Sombre",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Les URLs d'environnement ont été enregistrées."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Saisir automatiquement au chargement de la page"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identité"
},
- "typePasskey": {
- "message": "Clé d'accès"
- },
"passwordHistory": {
"message": "Historique des mots de passe"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden ne proposera pas d'enregistrer les informations de connexion pour ces domaines. Vous devez actualiser la page pour que les modifications prennent effet."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ n'est pas un domaine valide",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
@@ -2544,13 +2655,13 @@
"message": "Choose File"
},
"noFileChosen": {
- "message": "No file chosen"
+ "message": "Aucun fichier choisi"
},
"orCopyPasteFileContents": {
"message": "or copy/paste the import file contents"
},
"instructionsFor": {
- "message": "$NAME$ Instructions",
+ "message": "Instructions $NAME$",
"description": "The title for the import tool instructions.",
"placeholders": {
"name": {
@@ -2560,13 +2671,13 @@
}
},
"confirmVaultImport": {
- "message": "Confirm vault import"
+ "message": "Confirmez l'import du coffre"
},
"confirmVaultImportDesc": {
- "message": "This file is password-protected. Please enter the file password to import data."
+ "message": "Ce fichier est protégé par mot de passe. Veuillez entrer le mot de passe du fichier pour importer des données."
},
"confirmFilePassword": {
- "message": "Confirm file password"
+ "message": "Confirmez le mot de passe du fichier"
},
"passkeyNotCopied": {
"message": "La clé d'accès ne sera pas copiée"
@@ -2620,67 +2731,67 @@
"message": "Utiliser le navigateur"
},
"multifactorAuthenticationCancelled": {
- "message": "Multifactor authentication cancelled"
+ "message": "Authentification multi-facteurs annulée"
},
"noLastPassDataFound": {
- "message": "No LastPass data found"
+ "message": "Aucune donnée LastPass trouvée"
},
"incorrectUsernameOrPassword": {
- "message": "Incorrect username or password"
+ "message": "Nom d'utilisateur ou mot de passe incorrect"
},
"multifactorAuthenticationFailed": {
- "message": "Multifactor authentication failed"
+ "message": "Authentification multifacteur échouée"
},
"includeSharedFolders": {
- "message": "Include shared folders"
+ "message": "Inclure les dossiers partagés"
},
"lastPassEmail": {
- "message": "LastPass Email"
+ "message": "Courriel LastPass"
},
"importingYourAccount": {
- "message": "Importing your account..."
+ "message": "Importation de votre compte..."
},
"lastPassMFARequired": {
- "message": "LastPass multifactor authentication required"
+ "message": "Authentification multi-facteurs LastPass requise"
},
"lastPassMFADesc": {
- "message": "Enter your one-time passcode from your authentication app"
+ "message": "Entrez votre code d'accès unique depuis votre application d'authentification"
},
"lastPassOOBDesc": {
- "message": "Approve the login request in your authentication app or enter a one-time passcode."
+ "message": "Approuvez la demande de connexion dans votre application d'authentification ou saisissez le code d'accès à usage unique."
},
"passcode": {
- "message": "Passcode"
+ "message": "Code d'accès"
},
"lastPassMasterPassword": {
- "message": "LastPass master password"
+ "message": "Mot de passe principal LastPass"
},
"lastPassAuthRequired": {
- "message": "LastPass authentication required"
+ "message": "Authentification LastPass requise"
},
"awaitingSSO": {
- "message": "Awaiting SSO authentication"
+ "message": "En attente de l'authentification SSO"
},
"awaitingSSODesc": {
"message": "Please continue to log in using your company credentials."
},
"seeDetailedInstructions": {
- "message": "See detailed instructions on our help site at",
+ "message": "Consultez les instructions détaillées sur notre site d'aide à",
"description": "This is followed a by a hyperlink to the help website."
},
"importDirectlyFromLastPass": {
- "message": "Import directly from LastPass"
+ "message": "Importer directement de LastPass"
},
"importFromCSV": {
- "message": "Import from CSV"
+ "message": "Importer depuis un fichier CSV"
},
"lastPassTryAgainCheckEmail": {
- "message": "Try again or look for an email from LastPass to verify it's you."
+ "message": "Essayez à nouveau ou cherchez un courriel de LastPass pour vérifier que c'est vous."
},
"collection": {
"message": "Collection"
},
"lastPassYubikeyDesc": {
- "message": "Insert the YubiKey associated with your LastPass account into your computer's USB port, then touch its button."
+ "message": "Insérez la YubiKey associée à votre compte LastPass dans le port USB de votre ordinateur, puis appuyez sur son bouton."
}
}
diff --git a/apps/browser/src/_locales/gl/messages.json b/apps/browser/src/_locales/gl/messages.json
index 355c1ec3b8f..5f243afe040 100644
--- a/apps/browser/src/_locales/gl/messages.json
+++ b/apps/browser/src/_locales/gl/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Default URI match detection",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/he/messages.json b/apps/browser/src/_locales/he/messages.json
index 4a686aefa1d..2bd5216f861 100644
--- a/apps/browser/src/_locales/he/messages.json
+++ b/apps/browser/src/_locales/he/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "ההודעה \"שמור פרטי כניסה\" מופיעה בכל פעם שתכנס לאתר חדש בפעם הראשונה."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "האם ברצונך לעדכן את הסיסמה הזו בתוכנת Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "ברירת מחדל לזיהוי התאמת כתובות",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "שנה את ערכת הצבע של האפליקציה."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "כהה",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "כתובות הסביבה נשמרו."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "הפעל השלמה אוטומטית בזמן טעינת העמוד"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "זהות"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "היסטוריית סיסמאות"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "ייבוא נתונים",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/hi/messages.json b/apps/browser/src/_locales/hi/messages.json
index 882ac057d33..bf3802d6848 100644
--- a/apps/browser/src/_locales/hi/messages.json
+++ b/apps/browser/src/_locales/hi/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "The \"Add Login Notification\" automatically prompts you to save new logins to your vault whenever you log into them for the first time."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "टैब पेज पर कार्ड दिखाएं"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "किसी वेबसाइट पर परिवर्तन का पता चलने पर लॉगिन का पासवर्ड अपडेट करने के लिए कहें।"
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "क्या आप बिटवर्डन में इस पासवर्ड को अपडेट करना चाहते हैं?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "वेबसाइट के लिए पासवर्ड जेनरेशन और मैचिंग लॉग इन तक पहुंचने के लिए सेकेंडरी क्लिक का उपयोग करें। "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "डिफॉल्ट URI मैच डिटेक्शन",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "अंधेरा",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "पर्यावरण URL को बचाया गया है।"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Enable Auto-fill On Page Load."
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "पहचान"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "पासवर्ड इतिहास"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "बिटवर्डन इन डोमेन के लिए लॉगिन विवरण सहेजने के लिए नहीं कहेगा।परिवर्तनों को प्रभावी बनाने के लिए आपको पृष्ठ को ताज़ा करना होगा |"
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "ऑटो-फ़िल कैसे करें"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/hr/messages.json b/apps/browser/src/_locales/hr/messages.json
index 6d321b41904..e33f89bc214 100644
--- a/apps/browser/src/_locales/hr/messages.json
+++ b/apps/browser/src/_locales/hr/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Upit za dodavanje prijave pojavljuje se kada se otkrije prva prijava na neko web mjesto. Bitwarden će te pitatati želiš li uneseno korisničko ime i lozinku spremiti u svoj trezor."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Prikaži platne kartice"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Upitaj za ažuriranje lozinke prijave ako se otkrije promjena na web stranici."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Želiš li ovu lozinku ažurirati u Bitwarden-u?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Koristi sekundarni klik za pristup generatoru lozinki i pripadajućim prijavama trenunte web stranice. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Zadano otkrivanje URI podudaranja",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Promijeni temu boja."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Tamna",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "URL-ovi okoline su spremljeni."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-ispuna kod učitavanja"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identitet"
},
- "typePasskey": {
- "message": "Pristupni ključ"
- },
"passwordHistory": {
"message": "Povijest"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden neće pitati treba li spremiti prijavne podatke za ove domene. Za primjenu promjena, potrebno je osvježiti stranicu."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ nije valjana domena",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Uvezi podatke",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/hu/messages.json b/apps/browser/src/_locales/hu/messages.json
index abb79799fc5..001d5897893 100644
--- a/apps/browser/src/_locales/hu/messages.json
+++ b/apps/browser/src/_locales/hu/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "A \"Bejelentkezés értesítés hozzáadása\" automatikusan felajánlja a bejelentkezés széfbe mentését az első bejelentkezéskor."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Egy elem hozzáadásának kérése, ha az nem található a széfben. Minden bejelentkezett fiókra vonatkozik."
+ },
"showCardsCurrentTab": {
"message": "Kártyák megjelenítése a Fül oldalon"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "A bejelentkezési jelszó frissítésének kérése a webhelyen történő változás érzékelésekor."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "A bejelentkezési jelszó frissítésének kérése, ha változást lett érzékelve egy webhelyen. Minden bejelentkezett fiókra vonatkozik."
+ },
+ "enableUsePasskeys": {
+ "message": "Kérés a jelszó mentésére és használatára"
+ },
+ "usePasskeysDesc": {
+ "message": "Kérés az új jelszavak mentésére vagy bejelentkezés a széfben tárolt jelszavakkal. Minden bejelentkezett fiókra vonatkozik."
+ },
"notificationChangeDesc": {
"message": "Frissítésre kerüljön a jelszó a Bitwardenben?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Másodlagos kattintással férhetünk hozzá a webhely jelszó-generálásához és a egyező bejelentkezésekhez."
},
+ "contextMenuItemDescAlt": {
+ "message": "Másodlagos kattintással eléérhető a jelszógenerálás és a megfelelő bejelentkezési adatok a webhelyhez. Minden bejelentkezett fiókra vonatkozik."
+ },
"defaultUriMatchDetection": {
"message": "Alapértelmezett URI egyezés érzékelés",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Az alkalmazás színtémájának megváltoztatása."
},
+ "themeDescAlt": {
+ "message": "Az alkalmazás színtéma módosítása. Minden bejelentkezett fiókra vonatkozik."
+ },
"dark": {
"message": "Sötét",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "A környezeti webcímek mentésre kerültek."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Minden bejelentkezett fiókra vonatkozik."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Automatikus kitöltés oldalbetöltésnél"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Személyazonosság"
},
- "typePasskey": {
- "message": "Hozzáférési kulcs"
- },
"passwordHistory": {
"message": "Jelszó előzmények"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "A Bitwarden nem fogja kérni a domainek bejelentkezési adatainak mentését. A változások életbe lépéséhez frissíteni kell az oldalt."
},
+ "excludedDomainsDescAlt": {
+ "message": "A Bitwarden nem kéri a bejelentkezési adatok mentését ezeknél a tartományoknál az összes bejelentkezési fiókra vonatkozva. A változtatások életbe lépéséhez frissíteni kell az oldalt."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ nem érvényes domain.",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Adatok importálása",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/id/messages.json b/apps/browser/src/_locales/id/messages.json
index cdb8cbcdaf1..0108ec505c4 100644
--- a/apps/browser/src/_locales/id/messages.json
+++ b/apps/browser/src/_locales/id/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "\"Notifikasi Penambahan Info Masuk\" secara otomatis akan meminta Anda untuk menyimpan info masuk baru ke brankas Anda saat Anda masuk untuk pertama kalinya."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Apakah Anda ingin memperbarui kata sandi ini di Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Deteksi Kecocokan URI Bawaan",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Ubah tema warna aplikasi."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Gelap",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "URL dari semua lingkungan telah disimpan."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Aktifkan Isi-Otomatis Saat Memuat Laman"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identitas"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Riwayat Kata Sandi"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden tidak akan meminta untuk menyimpan detail login untuk domain ini. Anda harus menyegarkan halaman agar perubahan diterapkan."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ bukan domain yang valid",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/it/messages.json b/apps/browser/src/_locales/it/messages.json
index efd9dec90de..e0ee99a65e1 100644
--- a/apps/browser/src/_locales/it/messages.json
+++ b/apps/browser/src/_locales/it/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Chiedi di aggiungere un nuovo elemento se non ce n'è uno nella tua cassaforte."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Mostra le carte nella sezione Scheda"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Chiedi di aggiornare la password di un login quando rileviamo che è cambiata su un sito web."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Chiedi di salvare e usare le passkey"
+ },
+ "usePasskeysDesc": {
+ "message": "Chiedi di salvare nuove passkey o accedere con passkey salvate nella tua cassaforte. Si applica a tutti gli account connessi."
+ },
"notificationChangeDesc": {
"message": "Vuoi aggiornare questa password in Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Utilizza un secondo clic per accedere alla generazione di password e login corrispondenti per il sito web. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Rilevamento corrispondenza URI predefinito",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Cambia lo schema di colori dell'app."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Scuro",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "URL dell'ambiente salvati"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Mostra il menu di riempimento automatico nei campi di modulo",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "No",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Quando il campo è selezionato",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Quando l'icona di riempimento automatico è selezionata",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Riempi automaticamente al caricamento della pagina"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identità"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Cronologia delle password"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden non ti chiederà di aggiungere nuovi login per questi domini. Ricorda di ricaricare la pagina perché le modifiche abbiano effetto."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ non è un dominio valido",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Pulsante del menu di riempimento automatico di Bitwarden",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Attiva/disattiva il menu di riempimento automatico di Bitwarden",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Menu di riempimento automatico di Bitwarden",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Sblocca il tuo account per visualizzare i login corrispondenti",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Sblocca account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Riempi le credenziali per",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Nome utente parziale",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Nessun elemento trovato",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Nuovo elemento",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Aggiungi un nuovo elemento alla cassaforte",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Il menu di riempimento automatico di Bitwarden è disponibile. Premi il tasto freccia giù per selezionare.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Ignora il riempimento automatico del browser?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Se questa opzione è disattivata potrebbe causare conflitti tra il menu di riempimento automatico di Bitwarden e quello del tuo browser.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Se questa opzione è disattivata potrebbe causare conflitti tra il menu di riempimento automatico di Bitwarden e quello del tuo browser. Attivandola, l'estensione di Bitwarden si riavvierà.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Attiva"
+ },
+ "ignore": {
+ "message": "Ignora"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Ignora il riempimento automatico del browser",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Impossibile ignorare il riempimento automatico del browser",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden deve avere accesso all'autorizzazione alla privacy dell'estensione per modificare le impostazioni di riempimento automatico del browser.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Importa dati",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/ja/messages.json b/apps/browser/src/_locales/ja/messages.json
index 7b1f4f03b38..75fc8b2c483 100644
--- a/apps/browser/src/_locales/ja/messages.json
+++ b/apps/browser/src/_locales/ja/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "初めてログインしたとき保管庫にログイン情報を保存するよう「ログイン情報を追加」通知を自動的に表示します。"
},
+ "addLoginNotificationDescAlt": {
+ "message": "保管庫にアイテムが見つからない場合は、アイテムを追加するよう要求します。ログインしているすべてのアカウントに適用されます。"
+ },
"showCardsCurrentTab": {
"message": "タブページにカードを表示"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "ウェブサイトで変更があったとき、ログイン情報のパスワードを更新するか尋ねます"
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "ウェブサイトで変更が検出された場合、ログインパスワードを更新するように求めます。ログインしているすべてのアカウントに適用されます。"
+ },
+ "enableUsePasskeys": {
+ "message": "パスキーの保存と使用を尋ねる"
+ },
+ "usePasskeysDesc": {
+ "message": "新しいパスキーを保存するか、保管庫に保存されているパスキーでログインするよう要求します。ログインしているすべてのアカウントに適用されます。"
+ },
"notificationChangeDesc": {
"message": "Bitwarden でこのパスワードを更新しますか?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "コンテキストメニューでパスワード生成やログイン情報の入力をできるようにします"
},
+ "contextMenuItemDescAlt": {
+ "message": "コンテキストメニューを使用して、ウェブサイトのパスワード生成と一致するログインにアクセスします。ログインしているすべてのアカウントに適用されます。"
+ },
"defaultUriMatchDetection": {
"message": "デフォルトの URI 一致検出方法",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "アプリのテーマカラーを変更します。"
},
+ "themeDescAlt": {
+ "message": "アプリのカラーテーマを変更します。ログインしているすべてのアカウントに適用されます。"
+ },
"dark": {
"message": "ダーク",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "環境 URL を保存しました。"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "フォーム項目に自動入力メニューを表示",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "ログインしているすべてのアカウントに適用されます。"
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "オフ",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "項目を選択しているとき (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "自動入力アイコンを選択しているとき",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "ページ読み込み時の自動入力を有効化"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "ID"
},
- "typePasskey": {
- "message": "パスキー"
- },
"passwordHistory": {
"message": "パスワードの履歴"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden はこれらのドメインのログイン情報を保存するよう尋ねません。変更を有効にするにはページを更新する必要があります。"
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden はログインしているすべてのアカウントで、これらのドメインのログイン情報を保存するよう要求しません。 変更を有効にするにはページを更新する必要があります。"
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ は有効なドメインではありません",
"placeholders": {
@@ -2457,6 +2494,80 @@
"message": "このフィールドを編集するには、マスターパスワードの再入力をオフにしてください",
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden 自動入力メニューボタン",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Bitwarden 自動入力メニューの切り替え",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden 自動入力メニュー",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "一致するログイン情報を表示するには、アカウントのロックを解除してください",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "アカウントのロックを解除",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "資格情報を入力:",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "部分的なユーザー名",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "表示するアイテムがありません",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "新しいアイテム",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "新しい保管庫アイテムを追加",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden 自動入力メニューがあります。下矢印キーを押すと選択できます。",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "ブラウザの自動入力を上書きしますか?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "この設定をオフにすると、Bitwarden 自動入力メニューとブラウザの間で競合が発生する可能性があります。",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "この設定をオフにすると、Bitwarden 自動入力メニューとブラウザの間で競合が発生する可能性があります。これをオンにすると、 Bitwarden 拡張機能は再起動します。",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "オンにする"
+ },
+ "ignore": {
+ "message": "無視"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "ブラウザの自動入力設定を上書きする",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "ブラウザの自動入力を上書きできません",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden はブラウザの自動入力設定を上書きするために、拡張機能のプライバシー権限にアクセスする必要があります。",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "データのインポート",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/ka/messages.json b/apps/browser/src/_locales/ka/messages.json
index 77cc821d333..1f5e2d81400 100644
--- a/apps/browser/src/_locales/ka/messages.json
+++ b/apps/browser/src/_locales/ka/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Default URI match detection",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/km/messages.json b/apps/browser/src/_locales/km/messages.json
index 355c1ec3b8f..5f243afe040 100644
--- a/apps/browser/src/_locales/km/messages.json
+++ b/apps/browser/src/_locales/km/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Default URI match detection",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/kn/messages.json b/apps/browser/src/_locales/kn/messages.json
index df1d4fbfa4d..a743076b158 100644
--- a/apps/browser/src/_locales/kn/messages.json
+++ b/apps/browser/src/_locales/kn/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "\"ಲಾಗಿನ್ ಅಧಿಸೂಚನೆಯನ್ನು ಸೇರಿಸಿ\" ನೀವು ಮೊದಲ ಬಾರಿಗೆ ಪ್ರವೇಶಿಸಿದಾಗಲೆಲ್ಲಾ ಹೊಸ ಲಾಗಿನ್ಗಳನ್ನು ನಿಮ್ಮ ವಾಲ್ಟ್ಗೆ ಉಳಿಸಲು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕೇಳುತ್ತದೆ."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "ಈ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬಿಟ್ವರ್ಡ್ನಲ್ಲಿ ನವೀಕರಿಸಲು ನೀವು ಬಯಸುತ್ತೀರಾ?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "ಡೀಫಾಲ್ಟ್ ಯುಆರ್ಐ ಹೊಂದಾಣಿಕೆ ಪತ್ತೆ",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "ಅಪ್ಲಿಕೇಶನ್ನ ಬಣ್ಣ ಥೀಮ್ ಅನ್ನು ಬದಲಾಯಿಸಿ."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "ಡಾರ್ಕ್",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "ಪರಿಸರ URL ಗಳನ್ನು ಉಳಿಸಲಾಗಿದೆ."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "ಪುಟ ಲೋಡ್ನಲ್ಲಿ ಸ್ವಯಂ ಭರ್ತಿ ಸಕ್ರಿಯಗೊಳಿಸಿ"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "ಗುರುತಿಸುವಿಕೆ"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "ಪಾಸ್ವರ್ಡ್ ಇತಿಹಾಸ"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "ಬಿಟ್ವಾರ್ಡ್ ಈ ಡೊಮೇನ್ಗಳಿಗಾಗಿ ಲಾಗಿನ್ ವಿವರಗಳನ್ನು ಉಳಿಸಲು ಕೇಳುವುದಿಲ್ಲ. ಬದಲಾವಣೆಗಳನ್ನು ಜಾರಿಗೆ ತರಲು ನೀವು ಪುಟವನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಬೇಕು."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ ಮಾನ್ಯವಾದ ಡೊಮೇನ್ ಅಲ್ಲ",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/ko/messages.json b/apps/browser/src/_locales/ko/messages.json
index ccfddda3460..4837698c64c 100644
--- a/apps/browser/src/_locales/ko/messages.json
+++ b/apps/browser/src/_locales/ko/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "\"로그인 추가 알림\"을 사용하면 새 로그인을 사용할 때마다 보관함에 그 로그인을 추가할 것인지 물어봅니다."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Bitwarden에 저장되어 있는 비밀번호를 이 비밀번호로 변경하시겠습니까?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "기본 URI 일치 인식",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "애플리케이션의 색상 테마를 변경합니다."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "어두운 테마",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "환경 URL 값을 저장했습니다."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "페이지 로드 시 자동 완성 사용"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "신원"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "비밀번호 변경 기록"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden은 이 도메인들에 대해 로그인 정보를 저장할 것인지 묻지 않습니다. 페이지를 새로고침해야 변경된 내용이 적용됩니다."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ 도메인은 유효한 도메인이 아닙니다.",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/lt/messages.json b/apps/browser/src/_locales/lt/messages.json
index eef514177ba..7c4dbf790e2 100644
--- a/apps/browser/src/_locales/lt/messages.json
+++ b/apps/browser/src/_locales/lt/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Prisijungimo pridėjimo pranešimas automatiškai Jūs paragina išsaugoti naujus prisijungimus Jūsų saugykloje, kuomet prisijungiate pirmą kartą."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Rodyti korteles skirtuko puslapyje"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Paprašyti atnaujinti prisijungimo slaptažodį, kai pakeitimas aptiktas svetainėje."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Ar nori atnaujinti šį slaptažodį Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Naudokite antrinį paspaudimą, kad patekti į svetainės slaptažodžio generavimo ir prisijungimo atitikimo parinktis. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Numatytojo URI atitikimo aptikimas",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Pakeisti programos spalvos temą"
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Tamsi",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Aplinkos URL adresai išsaugoti"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Automatiškai užpildyti užsikrovus puslapiui"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Tapatybė"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Slaptažodžio istorija"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/lv/messages.json b/apps/browser/src/_locales/lv/messages.json
index 9776d005b36..27bf418fe9d 100644
--- a/apps/browser/src/_locales/lv/messages.json
+++ b/apps/browser/src/_locales/lv/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Vaicāt pievienot vienumu, ja tāds nav atrodams glabātavā."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Rādīt kartes cilnes lapā"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Vaicāt atjaunināt pieteikšanās vienuma paroli, ja vietnē ir noteiktas tās izmaiņas."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Vai atjaunināt šo paroli Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Izmantot orējo klikšķi, lai piekļūtu paroļu veidošanai un vietnei atbilstošajiem pieteikšanās vienumiem. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Noklusējuma URI atbilstības noteikšana",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Mainīt lietotnes izskata krāsas."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Tumšs",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Vides URL ir saglabāti."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Rādīt automātiskās aizpildes izvēlni veidlapu laukos",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Izslēgts",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Kad lauks ir atlasīts (atlasot)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Kad tiek atlasīta automātiskās aizpildes ikona",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Iespējot aizpildīšanu lapas ielādes brīdī"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identitāte"
},
- "typePasskey": {
- "message": "Piekļuves atslēga"
- },
"passwordHistory": {
"message": "Paroļu vēsture"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden nevaicās saglabāt pieteikšanās datus šiem domēniem. Ir jāpārlādē lapa, lai izmaiņas iedarbotos."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ nav derīgs domēns",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden automātiskās aizpildes izvēlnes poga",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Pārslēgt Bitwarden automātiskās aizpildes izvēlni",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden automātiskās aizpildes izvēlne",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Jāatslēdz savs konts, lai apskatītu atbilstošus pieteikšanās vienumus",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Atslēgt kontu",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Aizpildīt pieteikšanās datus",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Daļējs lietotājvārds",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Nav vienumu, ko parādīt",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Jauns vienums",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Pievienot jaunu glabātavas vienumu",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Ir pieejama Bitwarden automātiskās aizpildes izvēlne. Jānospiež poga ar bultu uz leju, lai atlasītu.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Aizvietot pārlūka automātisko aizpildi?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Šī iestatījuma neieslēgšana var radīt nesaderības starp Bitwarden automātiskās aizpildes izvēlni un pārlūku.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Šī iestatījuma neieslēgšana var radīt nesaderības starp Bitwarden automātiskās aizpildes izvēlni un pārlūku. Ieslēgšana pārsāknēs Bitwarden paplašinājumu.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Ieslēgt"
+ },
+ "ignore": {
+ "message": "Neņemt vērā"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Aizvietot pārlūka automātiskās aizpildes iestatījumus",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Nebija iespējams aizvietot pārlūka automātisko aizpildi",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden ir jābūt piekļuvei paplašinājuma privātuma atļaujai, lai aizvietotu pārlūka automātiskās aizpildes iestatījumus.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Ievietot datus",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/ml/messages.json b/apps/browser/src/_locales/ml/messages.json
index 775d0803e1e..129952598d8 100644
--- a/apps/browser/src/_locales/ml/messages.json
+++ b/apps/browser/src/_locales/ml/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "നിങ്ങൾ ആദ്യമായി സൈറ്റിൽ പ്രവേശിക്കുമ്പോൾ നിങ്ങളുടെ വാൾട്ടിലേക്കു തനിയെ പ്രവേശനം ഉൾപെടുത്താൻ \"പ്രവേശനം ചേർക്കുക എന്ന അറിയിപ്പ്\" ആവശ്യപ്പെടും."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "ബിറ്റ്വാർഡനിൽ ഈ പാസ്വേഡ് അപ്ഡേറ്റ് ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "സാധാരണ URI പൊരുത്തം കണ്ടെത്തൽ",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "അപ്ലിക്കേഷന്റെ തീമും വർണ്ണങ്ങളും മാറ്റുക."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "ഇരുണ്ടത്",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "എന്വിയാണമെന്റ് URL സംരക്ഷിച്ചു."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "പേജ് ലോഡിൽ യാന്ത്രിക-പൂരിപ്പിക്കൽ പ്രവർത്തനക്ഷമമാക്കുക"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "ഐഡന്റിറ്റി"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "പാസ്സ്വേഡ് നാൾവഴി"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/mr/messages.json b/apps/browser/src/_locales/mr/messages.json
index c2630a110f9..54908aec4cf 100644
--- a/apps/browser/src/_locales/mr/messages.json
+++ b/apps/browser/src/_locales/mr/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Default URI match detection",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/my/messages.json b/apps/browser/src/_locales/my/messages.json
index 355c1ec3b8f..5f243afe040 100644
--- a/apps/browser/src/_locales/my/messages.json
+++ b/apps/browser/src/_locales/my/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Default URI match detection",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/nb/messages.json b/apps/browser/src/_locales/nb/messages.json
index 97b3d671e82..90f38ffb558 100644
--- a/apps/browser/src/_locales/nb/messages.json
+++ b/apps/browser/src/_locales/nb/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "\"Legg til innlogging\"-beskjeden ber deg automatisk om å lagre nye innlogginger til hvelvet ditt hver gang du logger på dem for første gang."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Vis kort på fanesiden"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Spør om å oppdatere passordet til innlogging når endring på nettside oppdages."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Vil du oppdatere dette passordet i Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Bruk et sekundært klikk for å få tilgang til passordgenerering og samsvarende innlogginger for nettsiden. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Standard URI-samsvarsgjenkjenning",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Endre appens fargetema."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Mørkt",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Miljø-nettadressene har blitt lagret."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Aktiver auto-utfylling ved sideinnlastning"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identitet"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Passordhistorikk"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden vil ikke be om å lagre innloggingsdetaljer for disse domenene. Du må oppdatere siden for at endringene skal tre i kraft."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ er ikke et gyldig domene",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/ne/messages.json b/apps/browser/src/_locales/ne/messages.json
index 355c1ec3b8f..5f243afe040 100644
--- a/apps/browser/src/_locales/ne/messages.json
+++ b/apps/browser/src/_locales/ne/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Default URI match detection",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/nl/messages.json b/apps/browser/src/_locales/nl/messages.json
index 82fc6c029a0..d4b28d646e1 100644
--- a/apps/browser/src/_locales/nl/messages.json
+++ b/apps/browser/src/_locales/nl/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "\"Melding bij nieuwe login\" vraagt automatisch om nieuwe sites in de kluis op te slaan wanneer je ergens voor de eerste keer inlogt."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Kaarten weergeven op tabpagina"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Vraag om bijwerken van het wachtwoord van een login zodra een wijziging op een website is gedetecteerd."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Vragen om opslaan en gebruiken van passkeys en wachtwoorden"
+ },
+ "usePasskeysDesc": {
+ "message": "Vragen om opslaan nieuwe passkeys of inloggen met opgeslagen passkeys in je privékluis. Geldt voor alle ingelogde accounts."
+ },
"notificationChangeDesc": {
"message": "Wilt je dit wachtwoord in Bitwarden bijwerken?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Gebruik de tweede klikfunctie voor toegang tot wachtwoordgeneratie en het matchen van logins voor de website."
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Standaard URI-overeenkomstdetectie",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Het kleurenthema van de toepassing wijzigen."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Donker",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "De omgeving-URL's zijn opgeslagen."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Auto-invulmenu op formuliervelden weergeven",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Uit",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Wanneer het veld is geselecteerd (op focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Wanneer het pictogram automatisch aanvullen is geselecteerd",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Automatisch invullen bij laden van pagina"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identiteit"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Geschiedenis"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden zal voor deze domeinen niet vragen om inloggegevens op te slaan. Je moet de pagina vernieuwen om de wijzigingen toe te passen."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is geen geldig domein",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Menuknop Bitwarden automatisch invullen",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Bitwarden auto-invulmenu in- en uitschakelen",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-invulmenu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Ontgrendel je account om overeenkomende logins te bekijken",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Account ontgrendelen",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Inloggegevens invullen voor",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Gedeeltelijke gebruikersnaam",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Geen items om weer te geven",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Nieuw item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Nieuwe kluisitem toevoegen",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-invulmenu beschikbaar. Druk op de pijltjestoets omlaag om te selecteren.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Auto-fill instellingen van browser overschrijven?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Als je deze instelling uitschakelt, kunnen er conflicten ontstaan tussen het automatisch invullen van Bitwarden en dat van je browser.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Als je deze instelling uitschakelt, kunnen er conflicten ontstaan tussen het automatische invulmenu van Bitwarden en je browser. Als je dit inschakelt, wordt de Bitwarden-extensie opnieuw opgestart.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Inschakelen"
+ },
+ "ignore": {
+ "message": "Negeren"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Autofill instellingen van browser overschrijven",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Kan automatisch aanvullen van browser niet overschrijven",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden moet toegang hebben tot de privacy-rechten van de extensie om browser auto-fill instellingen te overschrijven.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Data importeren",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/nn/messages.json b/apps/browser/src/_locales/nn/messages.json
index 355c1ec3b8f..5f243afe040 100644
--- a/apps/browser/src/_locales/nn/messages.json
+++ b/apps/browser/src/_locales/nn/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Default URI match detection",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/or/messages.json b/apps/browser/src/_locales/or/messages.json
index 355c1ec3b8f..5f243afe040 100644
--- a/apps/browser/src/_locales/or/messages.json
+++ b/apps/browser/src/_locales/or/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Default URI match detection",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/pl/messages.json b/apps/browser/src/_locales/pl/messages.json
index bc9e4632ab1..fa0ec8ee21a 100644
--- a/apps/browser/src/_locales/pl/messages.json
+++ b/apps/browser/src/_locales/pl/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "\"Dodaj powiadomienia logowania\" automatycznie wyświetla monit o zapisanie nowych danych logowania do sejfu przy każdym pierwszym logowaniu."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Poproś o dodanie elementu, jeśli nie zostanie znaleziony w Twoim sejfie. Dotyczy wszystkich zalogowanych kont."
+ },
"showCardsCurrentTab": {
"message": "Pokaż karty na stronie głównej"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Poproś o aktualizację hasła danych logowania po wykryciu zmiany w witrynie."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Poproś o aktualizację hasła, gdy zmiana zostanie wykryta na stronie. Dotyczy wszystkich zalogowanych kont."
+ },
+ "enableUsePasskeys": {
+ "message": "Pytaj o zapisywanie i używanie passkey"
+ },
+ "usePasskeysDesc": {
+ "message": "Pytaj o zapisywanie nowych passkey albo danych logowania z passkey w Twoim sejfie. Dotyczy wszystkich zalogowanych kont."
+ },
"notificationChangeDesc": {
"message": "Czy chcesz zaktualizować to hasło w Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Użyj drugiego kliknięcia, aby uzyskać dostęp do generowania haseł i pasujących danych logowania do witryny. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Użyj drugiego kliknięcia, aby uzyskać dostęp do generowania haseł i pasujących danych logowania do witryny. Dotyczy wszystkich zalogowanych kont."
+ },
"defaultUriMatchDetection": {
"message": "Domyślne wykrywanie dopasowania",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Zmień motyw kolorystyczny aplikacji."
},
+ "themeDescAlt": {
+ "message": "Zmień kolor motywu aplikacji. Dotyczy wszystkich zalogowanych kont."
+ },
"dark": {
"message": "Ciemny",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Adresy URL środowiska zostały zapisane"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Pokaż menu autouzupełniania na polach formularza",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Dotyczy wszystkich zalogowanych kont."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Wył.",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Gdy pole jest zaznaczone",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Gdy wybrano ikonę autouzupełniania",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Włącz autouzupełnianie po załadowaniu strony"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Tożsamość"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Historia hasła"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Aplikacja Bitwarden nie będzie proponować zapisywania danych logowania dla tych domen. Musisz odświeżyć stronę, aby zastosowywać zmiany."
},
+ "excludedDomainsDescAlt": {
+ "message": "Aplikacja Bitwarden nie będzie proponować zapisywania danych logowania dla tych domen dla wszystkich zalogowanych kont. Musisz odświeżyć stronę, aby zastosowywać zmiany."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ nie jest prawidłową nazwą domeny",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Przycisk menu autouzupełniania Bitwarden",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Przełącz menu autouzupełniania Bitwarden",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Menu autouzupełniania Bitwarden",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Odblokuj swoje konto, aby wyświetlić pasujące elementy",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Odblokuj konto",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Wypełnij dane logowania dla",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Częściowa nazwa użytkownika",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Brak elementów do wyświetlenia",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Nowy element",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Dodaj nowy element do sejfu",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Dostępne menu autouzupełniania Bitwarden. Naciśnij przycisk strzałki w dół, aby wybrać.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Zastąpić automatyczne wypełnianie przeglądarki?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Pozostawienie tego ustawienia jako wyłączonego może spowodować konflikty pomiędzy menu autouzupełniania Bitwarden a przeglądarką.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Pozostawienie tego ustawienia jako wyłączonego może spowodować konflikty pomiędzy menu autouzupełniania Bitwarden a przeglądarką. Włączenie tego spowoduje ponowne uruchomienie rozszerzenia Bitwarden.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Włącz"
+ },
+ "ignore": {
+ "message": "Ignoruj"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Nadpisz ustawienia autouzupełniania przeglądarki",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Nie można napisać autouzupełniania przeglądarki",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden musi mieć dostęp do uprawnień prywatności rozszerzenia, aby nadpisać ustawienia autouzupełniania przeglądarki.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Importuj dane",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/pt_BR/messages.json b/apps/browser/src/_locales/pt_BR/messages.json
index 34715c27d6b..0635932c516 100644
--- a/apps/browser/src/_locales/pt_BR/messages.json
+++ b/apps/browser/src/_locales/pt_BR/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "A \"Notificação de Adicionar Login\" pede para salvar automaticamente novas logins para o seu cofre quando você inicia uma sessão em um site pela primeira vez."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Mostrar cartões em páginas com guias."
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Peça para atualizar a senha de login quando uma mudança for detectada em um site."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Você quer atualizar esta senha no Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Use um duplo clique para acessar a geração de usuários e senhas correspondentes para o site. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Detecção de Correspondência de URI Padrão",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Altere o tema de cores do aplicativo."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Escuro",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "As URLs do ambiente foram salvas."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Ativar o Autopreenchimento ao Carregar a Página"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identidade"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Histórico de Senha"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "O Bitwarden não irá pedir para salvar os detalhes de credencial para estes domínios. Você deve atualizar a página para que as alterações entrem em vigor."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ não é um domínio válido",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "Como autopreencher"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/pt_PT/messages.json b/apps/browser/src/_locales/pt_PT/messages.json
index 84642617357..8759e14e70d 100644
--- a/apps/browser/src/_locales/pt_PT/messages.json
+++ b/apps/browser/src/_locales/pt_PT/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Pedir para adicionar um item se não o encontrar no seu cofre."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Pedir para adicionar um item se não for encontrado um no seu cofre. Aplica-se a todas as contas com sessão iniciada."
+ },
"showCardsCurrentTab": {
"message": "Mostrar cartões na página Separador"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Pedir para atualizar a palavra-passe de uma credencial quando for detetada uma alteração num site."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Pedir para atualizar a palavra-passe de um início de sessão quando for detetada uma alteração num site. Aplica-se a todas as contas com sessão iniciada."
+ },
+ "enableUsePasskeys": {
+ "message": "Pedir para guardar e utilizar chaves de acesso"
+ },
+ "usePasskeysDesc": {
+ "message": "Pedir para guardar novas chaves de acesso ou iniciar sessão com chaves de acesso armazenadas no seu cofre. Aplica-se a todas as contas com sessão iniciada."
+ },
"notificationChangeDesc": {
"message": "Pretende atualizar esta palavra-passe no Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Mostrar opções do menu de contexto"
},
"contextMenuItemDesc": {
- "message": "Utilize um clique secundário para aceder à geração de palavras-passe e às credenciais correspondentes do site. "
+ "message": "Utilize um clique secundário para aceder à geração de palavras-passe e às credenciais correspondentes do site."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Utilize um clique secundário para aceder ao gerador de palavras-passe e aos inícios de sessão correspondentes para o site. Aplica-se a todas as contas com sessão iniciada."
},
"defaultUriMatchDetection": {
"message": "Deteção de correspondência de URI predefinida",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Alterar o tema de cores da aplicação."
},
+ "themeDescAlt": {
+ "message": "Altere o tema de cores da aplicação. Aplica-se a todas as contas com sessão iniciada."
+ },
"dark": {
"message": "Escuro",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "URLs de ambiente guardados"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Mostrar menu de preenchimento automático nos campos do formulário",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Aplica-se a todas as contas com sessão iniciada."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Desligado",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Se um campo estiver selecionado (em destaque)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Quando o ícone de preenchimento automático está selecionado",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Preencher automaticamente ao carregar a página"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identidade"
},
- "typePasskey": {
- "message": "Chave de acesso"
- },
"passwordHistory": {
"message": "Histórico de palavras-passe"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "O Bitwarden não pedirá para guardar os detalhes de início de sessão destes domínios. É necessário atualizar a página para que as alterações tenham efeito."
},
+ "excludedDomainsDescAlt": {
+ "message": "O Bitwarden não pedirá para guardar os detalhes de início de sessão destes domínios para todas as contas com sessão iniciada. É necessário atualizar a página para que as alterações tenham efeito."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ não é um domínio válido",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "Como preencher automaticamente"
},
"autofillSelectInfoWithCommand": {
- "message": "Selecione um item desta página ou utilize o atalho: $COMMAND$",
+ "message": "Selecione um item a partir deste ecrã, utilize o atalho $COMMAND$ ou explore outras opções nas definições.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Selecione um item desta página ou defina um atalho nas definições."
+ "message": "Selecione um item a partir deste ecrã ou explore outras opções nas definições."
},
"gotIt": {
"message": "Percebido"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Botão de menu de preenchimento automático Bitwarden",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Alternar o menu de preenchimento automático do Bitwarden",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Menu de preenchimento automático do Bitwarden",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Desbloqueie a sua conta para ver as credenciais correspondentes",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Desbloquear a conta",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Preencher as credenciais para",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Nome de utilizador parcial",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Nenhum item para mostrar",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Novo item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Adicionar novo item do cofre",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Menu de preenchimento automático Bitwarden disponível. Prima a tecla de seta para baixo para selecionar.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Anular o preenchimento automático do navegador?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Deixar esta definição desativada pode causar conflitos entre o menu de preenchimento automático do Bitwarden e o do seu navegador.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Deixar esta configuração desativada pode causar conflitos entre o menu de preenchimento automático do Bitwarden e o do seu navegador. Ativar esta opção reiniciará a extensão Bitwarden.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Ativar"
+ },
+ "ignore": {
+ "message": "Ignorar"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Substituir as definições de preenchimento automático do navegador",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Não é possível anular o preenchimento automático do navegador",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "O Bitwarden deve ter acesso à permissão de privacidade da extensão para substituir as definições de preenchimento automático do navegador.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Importar dados",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/ro/messages.json b/apps/browser/src/_locales/ro/messages.json
index 823a9e18486..04245c91c3c 100644
--- a/apps/browser/src/_locales/ro/messages.json
+++ b/apps/browser/src/_locales/ro/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Solicitați adăugarea unui element dacă nu se găsește unul în seif."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Afișați cardurile pe pagina Filă"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Solicitați actualizarea unei parole de autentificare atunci când este detectată o modificare pe un site web."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Doriți să actualizați această parolă în Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Utilizați un clic secundar pentru a accesa generarea de parole și conectările potrivite pentru site-ul web."
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Detectare implicită a potrivirii URI",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Schimbă tema de culori a aplicației."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Întunecat",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "URL-urile mediului au fost salvate"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Completare automată la încărcarea paginii"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identitate"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Istoric parole"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden nu va cere să salveze detaliile de conectare pentru aceste domenii. Trebuie să reîmprospătați pagina pentru ca modificările să intre în vigoare."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ nu este un domeniu valid",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/ru/messages.json b/apps/browser/src/_locales/ru/messages.json
index 233338d9bff..e12c2448949 100644
--- a/apps/browser/src/_locales/ru/messages.json
+++ b/apps/browser/src/_locales/ru/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Запросить добавление элемента, если его нет в вашем хранилище."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Запрос на добавление элемента, если он отсутствует в вашем хранилище. Применяется ко всем авторизованным аккаунтам."
+ },
"showCardsCurrentTab": {
"message": "Показывать карты на вкладке"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Спрашивать обновление пароля логина при обнаружении изменения на сайте."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Запрос на обновление пароля логина при обнаружении изменений на сайте. Применяется ко всем авторизованным аккаунтам."
+ },
+ "enableUsePasskeys": {
+ "message": "Запрос на сохранение и использование ключей доступа"
+ },
+ "usePasskeysDesc": {
+ "message": "Запрос на сохранение новых ключей или в авторизация с ключами, хранящимися в вашем хранилище. Применяется ко всем авторизованным аккаунтам."
+ },
"notificationChangeDesc": {
"message": "Обновить этот пароль в Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "С помощью двойного щелчка можно получить доступ к генерации паролей и сопоставлению логинов для сайта."
},
+ "contextMenuItemDescAlt": {
+ "message": "Использовать двойной щелчок для доступа к генерации паролей и сопоставлению логинов для сайта. Применяется ко всем авторизованным аккаунтам."
+ },
"defaultUriMatchDetection": {
"message": "Обнаружение совпадения URI по умолчанию",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Изменение цветовой темы приложения."
},
+ "themeDescAlt": {
+ "message": "Изменение цветовой темы приложения. Применяется ко всем авторизованным аккаунтам."
+ },
"dark": {
"message": "Темная",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "URL окружения сохранены"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Показывать меню автозаполнения в полях формы",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Применяется ко всем авторизованным аккаунтам."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Выкл",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Когда поле выбрано (в фокусе)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Если выбран значок автозаполнения",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Автозаполнение при загрузке страницы"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Личная информация"
},
- "typePasskey": {
- "message": "Ключ доступа"
- },
"passwordHistory": {
"message": "История паролей"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden не будет предлагать сохранить логины для этих доменов. Для вступления изменений в силу необходимо обновить страницу."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden не будет предлагать сохранение логинов для этих доменов для всех авторизованных аккаунтов. Для вступления изменений в силу необходимо обновить страницу."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ – некорректно указанный домен",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "Как использовать автозаполнение"
},
"autofillSelectInfoWithCommand": {
- "message": "Выберите элемент на этой странице или используйте сочетание клавиш: $COMMAND$",
+ "message": "Выберите элемент на этой странице, используйте сочетание клавиш: $COMMAND$ или ознакомьтесь с другими параметрами в настройках.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Выберите элемент на этой странице или задайте сочетание клавиш в настройках."
+ "message": "Выберите элемент на этой странице или изучите другие параметры в настройках."
},
"gotIt": {
"message": "Понятно"
@@ -2457,6 +2494,80 @@
"message": "Для редактирования этого поля отключите повторный запрос мастер-пароля",
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
},
+ "bitwardenOverlayButton": {
+ "message": "Кнопка меню автозаполнения Bitwarden",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Вкл/выкл меню автозаполнения Bitwarden",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Меню автозаполнения Bitwarden",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Разблокируйте ваш аккаунт для просмотра подходящих логинов",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Разблокировать аккаунт",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Заполнить учетные данные",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Часть имени пользователя",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Нет элементов для отображения",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Новый элемент",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Добавить новый элемент в хранилище",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Доступно меню автозаполнения Bitwarden. Для выбора нажмите клавишу со стрелкой вниз.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Переопределить автозаполнение браузера?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Отключение этого параметра может привести к конфликту между меню автозаполнения Bitwarden и меню вашего браузера.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Отключение этого параметра может привести к конфликту между меню автозаполнения Bitwarden и меню браузера. Включение этого параметра приведет к перезапуску расширения Bitwarden.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Включить"
+ },
+ "ignore": {
+ "message": "Игнорировать"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Переопределить настройки автозаполнения браузера",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Невозможно переопределить автозаполнение браузера",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden должен иметь доступ к полномочиям конфиденциальности расширения для переопределения настроек автозаполнения браузера.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Импорт данных",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/si/messages.json b/apps/browser/src/_locales/si/messages.json
index 3060ceb3536..c8c192f54e3 100644
--- a/apps/browser/src/_locales/si/messages.json
+++ b/apps/browser/src/_locales/si/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "මෙම “ලොගින් වන්න නිවේදනය එකතු කරන්න” ස්වයංක්රීයව ඔබ පළමු වරට ඔවුන් තුලට ප්රවිෂ්ට සෑම අවස්ථාවකදීම ඔබගේ සුරක්ෂිතාගාරය නව පිවිසුම් බේරා ගැනීමට ඔබෙන් විමසනු."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Bitwarden හි මෙම මුරපදය යාවත්කාලීන කිරීමට ඔබට අවශ්යද?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "පෙරනිමි URI තරග හඳුනා",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "යෙදුමේ වර්ණ තේමාව වෙනස් කරන්න."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "අඳුරු",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "පරිසර URL සුරකිනු ඇත."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "පිටු පැටවුම් මත ස්වයංක්රීය-පිරවීම සක්රීය"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "අනන්යතාවය"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "මුරපද ඉතිහාසය"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "බිට්වර්ඩන් මෙම වසම් සඳහා පිවිසුම් තොරතුරු සුරැකීමට ඉල්ලා නොසිටිනු ඇත. බලාත්මක කිරීම සඳහා වෙනස්කම් සඳහා ඔබ පිටුව නැවුම් කළ යුතුය."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ වලංගු වසමක් නොවේ",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/sk/messages.json b/apps/browser/src/_locales/sk/messages.json
index 9fa49ea8fd4..37be7358d43 100644
--- a/apps/browser/src/_locales/sk/messages.json
+++ b/apps/browser/src/_locales/sk/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Opýtať sa na pridanie prihlasovacích údajov ak ich ešte nemáte v trezore."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Požiada o pridanie položky, ak sa v trezore nenachádza. Platí pre všetky prihlásené účty."
+ },
"showCardsCurrentTab": {
"message": "Zobraziť karty na stránke \"Aktuálna karta\""
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Požiadať o aktualizáciu prihlasovacieho hesla, ak sa zistí zmena na stránke."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Požiada o aktualizáciu hesla na prihlásenie, keď sa zistí zmena na webe. Platí pre všetky prihlásené účty."
+ },
+ "enableUsePasskeys": {
+ "message": "Požiadať o uloženie a používanie prístupových kľúčov"
+ },
+ "usePasskeysDesc": {
+ "message": "Požiadať o uloženie nových prístupových kľúčov alebo prihlásenie s prístupovými kľúčmi uloženými v trezore. Platí pre všetky prihlásené účty."
+ },
"notificationChangeDesc": {
"message": "Chcete aktualizovať toto heslo v Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Sekundárnym kliknutím získate prístup k vygenerovaniu hesiel a zodpovedajúcim prihláseniam pre webovú stránku. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Sekundárnym kliknutím získate prístup k vygenerovaniu hesiel a zodpovedajúcim prihláseniam pre webovú stránku. Platí pre všetky prihlásené účty."
+ },
"defaultUriMatchDetection": {
"message": "Predvolené mapovanie",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Zmeniť motív aplikácie."
},
+ "themeDescAlt": {
+ "message": "Zmení farebný motív aplikácie. Platí pre všetky prihlásené účty."
+ },
"dark": {
"message": "Tmavý",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "URL prostredia boli uložené."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Zobraziť ponuku automatického vypĺňania na poliach formulára",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Platí pre všetky prihlásené účty."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Vypnuté",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Keď je vybrané pole (zamerané)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Keď je vybratá ikona automatického vypĺňania",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Povoliť automatické vypĺňanie pri načítaní stránky"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identita"
},
- "typePasskey": {
- "message": "Prístupový kľúč"
- },
"passwordHistory": {
"message": "História hesla"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden nebude požadovať ukladanie prihlasovacích údajov pre tieto domény. Aby sa zmeny prejavili, musíte stránku obnoviť."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden nebude požadovať ukladanie prihlasovacích údajov pre tieto domény pre všetky prihlásené účty. Aby sa zmeny prejavili, musíte stránku obnoviť."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ nie je platná doména",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Tlačidlo ponuky automatického vypĺňania Bitwardenu",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Prepnúť ponuku automatického vypĺňania Bitwardenu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Ponuka automatického vypĺňania Bitwardenu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Odomknite svoj účet na zobrazenie zodpovedajúcich prihlasovacích údajov",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Odomknúť účet",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Vyplňte prihlasovacie údaje pre",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Čiastočné používateľské meno",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Žiadne položky na zobrazenie",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Nová položka",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Pridať novú položku trezoru",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "K dispozícii je ponuka automatického vyplňovania Bitwardenu. Stlačte tlačidlo so šípkou nadol a vyberte.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Prepísať automatické vypĺňanie prehliadača?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Ak necháte toto nastavenie vypnuté, môže to spôsobiť konflikty medzi ponukou automatického vypĺňania Bitwardenu a ponukou vášho prehliadača.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Ak necháte toto nastavenie vypnuté, môže to spôsobiť konflikty medzi ponukou automatického vypĺňania Bitwardenu a ponukou vášho prehliadača. Zapnutím nastavenia sa rozšírenie Bitwarden reštartuje.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Zapnúť"
+ },
+ "ignore": {
+ "message": "Ignorovať"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Prepísať automatické vypĺňanie prehliadača",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Nedá sa prepísať automatické vypĺňanie prehliadača",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden musí mať povolenie rozšírenia na nastavenie súkromia, aby mohol zrušiť nastavenia automatického vypĺňania prehliadača.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import údajov",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/sl/messages.json b/apps/browser/src/_locales/sl/messages.json
index c27c903903c..34bb3af86bc 100644
--- a/apps/browser/src/_locales/sl/messages.json
+++ b/apps/browser/src/_locales/sl/messages.json
@@ -92,13 +92,13 @@
"message": "Samodejno izpolnjevanje"
},
"autoFillLogin": {
- "message": "Auto-fill login"
+ "message": "Samodejno izpolni prijavo"
},
"autoFillCard": {
- "message": "Auto-fill card"
+ "message": "Samodejno izpolni kartico"
},
"autoFillIdentity": {
- "message": "Auto-fill identity"
+ "message": "Samodejno izpolni identiteto"
},
"generatePasswordCopied": {
"message": "Generiraj geslo (kopirano)"
@@ -110,19 +110,19 @@
"message": "Ni ustreznih prijav."
},
"noCards": {
- "message": "No cards"
+ "message": "Ni kartic"
},
"noIdentities": {
- "message": "No identities"
+ "message": "Ni identitet"
},
"addLoginMenu": {
- "message": "Add login"
+ "message": "Dodaj prijavo"
},
"addCardMenu": {
- "message": "Add card"
+ "message": "Dodaj kartico"
},
"addIdentityMenu": {
- "message": "Add identity"
+ "message": "Dodaj identiteto"
},
"unlockVaultMenu": {
"message": "Odkleni svoj trezor"
@@ -363,7 +363,7 @@
"message": "Drugo"
},
"unlockMethodNeededToChangeTimeoutActionDesc": {
- "message": "Set up an unlock method to change your vault timeout action."
+ "message": "Da spremenite časovne omejitve trezorja, nastavite metodo odklepanja."
},
"rateExtension": {
"message": "Ocenite to razširitev"
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Predlagaj dodajanje novega elementa, če v trezorju ni ustreznega."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Če predmeta ni v trezorju, ga je potrebno dodati. Velja za vse prijavljene račune."
+ },
"showCardsCurrentTab": {
"message": "Prikaži kartice na strani Zavihek"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Vprašaj, ali naj Bitwarden posodobi geslo prijave, kadar zazna spremembo gesla na spletni strani"
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Želite, da Bitwarden shrani spremembo tega gesla?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Z desnim klikom se vam prikažejo možnosti generiranja gesel in shranjenih prijav za spletno stran, na kateri ste."
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Privzet način preverjanja ujemanja URI-ja",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Spremeni temo aplikacije."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Temno",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Samodejno izpolni, ko se stran naloži"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identiteta"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Zgodovina gesel"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Za te domene Bitwarden ne bo predlagal shranjevanja prijavnih podatkov. Sprememba nastavitev stopi v veljavo šele, ko osvežite stran."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ ni veljavna domena",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/sr/messages.json b/apps/browser/src/_locales/sr/messages.json
index 4c51f2f4e47..0d87b59d4ee 100644
--- a/apps/browser/src/_locales/sr/messages.json
+++ b/apps/browser/src/_locales/sr/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "„Нотификације Додај Лозинку“ аутоматски тражи да сачувате нове пријаве у сефу кад год се први пут пријавите на њих."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Затражите да додате ставку ако она није пронађена у вашем сефу. Односи се на све пријављене налоге."
+ },
"showCardsCurrentTab": {
"message": "Прикажи кредитне картице на страници картице"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Прикажи потврду за ажурирање тренутне лозинке за пријаву када се промена препозна на Web страници."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Затражите ажурирање лозинке за пријаву када се открије промена на веб локацији. Односи се на све пријављене налоге."
+ },
+ "enableUsePasskeys": {
+ "message": "Затражите за сачувавање и коришћење приступне кључеве"
+ },
+ "usePasskeysDesc": {
+ "message": "Затражите да сачувате нове приступне кључеве или се пријавите са приступним кључевима ускладиштеним у вашем сефу. Односи се на све пријављене налоге."
+ },
"notificationChangeDesc": {
"message": "Да ли желите да ажурирате ову лозинку за Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Користите други клик за приступање генерисању лозинки и пријавама за тренутну web страницу. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Користите други клик за приступање генерисању лозинки и пријавама за тренутну web страницу. Односи се на све пријављене налоге."
+ },
"defaultUriMatchDetection": {
"message": "Стандардно налажење УРЛ",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Промени боје апликације"
},
+ "themeDescAlt": {
+ "message": "Промените тему боје апликације. Односи се на све пријављене налоге."
+ },
"dark": {
"message": "Тамна",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "УРЛ адресе окружења су сачуване."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Прикажи мени за ауто-попуњавање на пољима обрасца",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Односи се на све пријављене налоге."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Искључено",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Када је поље изабрано (у фокусу)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Када је изабрана икона ауто-попуњавања",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Омогући аутоматско попуњавање након учитавања странице"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Идентитет"
},
- "typePasskey": {
- "message": "Приступачни кључ"
- },
"passwordHistory": {
"message": "Историја Лозинке"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden неће тражити да сачува податке за пријављивање за ове домене. Морате освежити страницу да би промене ступиле на снагу."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden неће тражити да сачува податке за пријављивање за ове домене за све пријављене налоге. Морате освежити страницу да би промене ступиле на снагу."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ није важећи домен",
"placeholders": {
@@ -2457,6 +2494,80 @@
"message": "Искључите поновни упит главне лозинке да бисте уредили ово поље",
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden мени дугмета ауто-попуњавања",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Пребаци мени ауто-попуњавања Bitwarden-а",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden мени ауто-попуњавања",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Откључајте налог да бисте видели подударне пријаве",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Откључај налог",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Попунити акредитиве за",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Делимично корисничко име",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Нема ставки за приказивање",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Нова ставке",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Додајте нову ставку сефу",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Мени ауто-попуњавања Bitwarden-а је доступан. Притисните тастер са стрелицом надоле да бисте изабрали.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Заменити ауто-попуњавање прегледача?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Ако ову поставку оставите искљученом, може доћи до сукоба између Bitwarden менија ауто-попуњавања и вашег претраживача.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Ако ову поставку оставите искљученом, може доћи до сукоба између Битварден менија аутоматског попуњавања и вашег претраживача. Ако упалите, то ће поново покренути Bitwarden додатак.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Укључи"
+ },
+ "ignore": {
+ "message": "Игнориши"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Заменити ауто-попуњавање прегледача",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Није могуће заменити ауто-попуњавање прегледача",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden мора имати приступ дозволи приватности екстензије да би заменио подешавања ауто-попуњавања прегледача.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Увези податке",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/sv/messages.json b/apps/browser/src/_locales/sv/messages.json
index 5ad600bb3d7..d62aa8e6496 100644
--- a/apps/browser/src/_locales/sv/messages.json
+++ b/apps/browser/src/_locales/sv/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Be om att lägga till ett objekt om det inte finns i ditt valv."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Visa kort på fliksida"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Be om att uppdatera ett lösenord när en ändring upptäcks på en webbplats."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Vill du uppdatera det här lösenordet i Bitwarden?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Använd ett andra klick för att komma åt lösenordsgenerering och matchande inloggningar för webbplatsen. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Standardmatchning för URI",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Ändra programmets färgtema."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Mörkt",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Miljö-URL:erna har sparats"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Aktivera automatisk ifyllnad vid sidhämtning"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identitet"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Lösenordshistorik"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden kommer inte att fråga om att få spara inloggningsuppgifter för dessa domäner. Du måste uppdatera sidan för att ändringarna ska träda i kraft."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ är inte en giltig domän",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Importera data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/te/messages.json b/apps/browser/src/_locales/te/messages.json
index 355c1ec3b8f..5f243afe040 100644
--- a/apps/browser/src/_locales/te/messages.json
+++ b/apps/browser/src/_locales/te/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Ask to add an item if one isn't found in your vault."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Show cards on Tab page"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Do you want to update this password in Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Show context menu options"
},
"contextMenuItemDesc": {
- "message": "Use a secondary click to access password generation and matching logins for the website. "
+ "message": "Use a secondary click to access password generation and matching logins for the website."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
},
"defaultUriMatchDetection": {
"message": "Default URI match detection",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Dark",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Auto-fill on page load"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Identity"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Password history"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/th/messages.json b/apps/browser/src/_locales/th/messages.json
index 35701ac0262..cc03c106e31 100644
--- a/apps/browser/src/_locales/th/messages.json
+++ b/apps/browser/src/_locales/th/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "The \"Add Login Notification\" automatically prompts you to save new logins to your vault whenever you log into them for the first time."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "แสดงการ์ดบนหน้าแท็บ"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "คุณต้องการอัปเดตรหัสผ่านนี้ใน Bitwarden หรือไม่?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "ใช้การคลิกสำรองเพื่อเข้าถึงการสร้างรหัสผ่านและการเข้าสู่ระบบที่ตรงกันสำหรับเว็บไซต์ "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "การตรวจจับการจับคู่ URI เริ่มต้น",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Change the application's color theme."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "มืด",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Environment URLs saved"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Enable Auto-fill On Page Load."
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "ข้อมูลระบุตัวตน"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "ประวัติของรหัสผ่าน"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden will not ask to save login details for these domains. You must refresh the page for changes to take effect."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ is not a valid domain",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/tr/messages.json b/apps/browser/src/_locales/tr/messages.json
index 00549e832c4..4253fa3b510 100644
--- a/apps/browser/src/_locales/tr/messages.json
+++ b/apps/browser/src/_locales/tr/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "\"Hesap ekle\" bildirimi, ilk kez kullandığınız hesap bilgilerini kasanıza kaydetmek isteyip istemediğinizi otomatik olarak sorar."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Kasanızda bulunmayan bir öğenin eklenmesini isteyin. Oturum açmış tüm hesaplar için geçerlidir."
+ },
"showCardsCurrentTab": {
"message": "Sekme sayfasında kartları göster"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Sitede bir değişiklik tespit edildiğinde hesap parolasını güncellemeyi öner."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Bir web sitesinde bir değişiklik tespit edildiğinde oturum açma şifresinin güncellenmesini isteyin. Oturum açmış tüm hesaplar için geçerlidir."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Bu parolayı Bitwarden'da güncellemek ister misiniz?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Parola oluşturma ve eşlesen hesaplara ulaşmak için sağ tıklamayı kullan."
},
+ "contextMenuItemDescAlt": {
+ "message": "Web sitesi için şifre oluşturmaya ve eşleşen oturum açma bilgilerine erişmek için ikincil bir tıklama kullanın. Oturum açmış tüm hesaplar için geçerlidir."
+ },
"defaultUriMatchDetection": {
"message": "Varsayılan URI eşleşme tespiti",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Uygulamanın renk temasını değiştir."
},
+ "themeDescAlt": {
+ "message": "Uygulamanın renk temasını değiştirin. Oturum açmış tüm hesaplar için geçerlidir."
+ },
"dark": {
"message": "Koyu",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Ortam URL'leri kaydedildi"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Oturum açmış tüm hesaplara uygulanır."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Kapalı",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Otomatik doldurma simgesi seçildiğinde",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Sayfa yüklendiğinde otomatik doldur"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Kimlik"
},
- "typePasskey": {
- "message": "Geçiş anahtarı"
- },
"passwordHistory": {
"message": "Parola geçmişi"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden bu alan adlarında hesaplarınızı kaydetmeyi sormayacaktır. Değişikliklerin etkili olması için sayfayı yenilemelisiniz."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden, oturum açmış tüm hesaplar için bu alan adlarının oturum açma ayrıntılarını kaydetmeyi istemeyecektir. Değişikliklerin etkili olması için sayfayı yenilemeniz gerekir."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ geçerli bir alan adı değil",
"placeholders": {
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden otomatik doldurma menüsü düğmesi",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden otomatik doldurma menüsü",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Eşleşen giriş bilgilerini görüntülemek için hesabınızın kilidini açın",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Hesabın kilidini açın",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Kimlik bilgilerini doldurun",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Kısmi kullanıcı adı",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Gösterilecek öğe yok",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Yeni öge",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Bu ayarı kapalı bırakmak, Bitwarden otomatik doldurma menüsü ile tarayıcınızınki arasında çakışmalara neden olabilir.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Yoksay"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Tarayıcının otomatik doldurma ayarlarını geçersiz kıl",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Verileri içe aktar",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/uk/messages.json b/apps/browser/src/_locales/uk/messages.json
index 5f2fab32263..0f581ad4e92 100644
--- a/apps/browser/src/_locales/uk/messages.json
+++ b/apps/browser/src/_locales/uk/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "Запитувати про додавання запису, якщо його немає у вашому сховищі."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Запитувати про додавання запису, якщо такого не знайдено у вашому сховищі. Застосовується для всіх облікових записів, до яких виконано вхід."
+ },
"showCardsCurrentTab": {
"message": "Показувати картки на вкладці"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Запитувати про оновлення пароля запису, якщо на вебсайті виявлено його зміну."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Запитувати про оновлення пароля для запису, якщо виявлено його зміну на вебсайті. Застосовується для всіх облікових записів, до яких виконано вхід."
+ },
+ "enableUsePasskeys": {
+ "message": "Запитувати про збереження та використання ключів доступу"
+ },
+ "usePasskeysDesc": {
+ "message": "Запитувати про збереження нових ключів доступу та використання збережених ключів доступу. Застосовується для всіх облікових записів, до яких виконано вхід."
+ },
"notificationChangeDesc": {
"message": "Ви хочете оновити цей пароль в Bitwarden?"
},
@@ -667,7 +679,10 @@
"message": "Показувати в контекстному меню"
},
"contextMenuItemDesc": {
- "message": "Використовувати доступ до генератора паролів та відповідних записів для вебсайту через контекстне меню."
+ "message": "Використовувати контекстне меню для доступу до генератора паролів та відповідних записів для вебсайту."
+ },
+ "contextMenuItemDescAlt": {
+ "message": "Використовувати контекстне меню для доступу до генератора паролів та відповідних записів для вебсайту. Застосовується для всіх облікових записів, до яких виконано вхід."
},
"defaultUriMatchDetection": {
"message": "Типове виявлення збігів URI",
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Змінити колірну тему додатка."
},
+ "themeDescAlt": {
+ "message": "Змінити колірну тему програми. Застосовується для всіх облікових записів, до яких виконано вхід."
+ },
"dark": {
"message": "Темна",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "URL-адреси середовища збережено"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Меню автозаповнення на полях форм",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Застосовується для всіх облікових записів, до яких виконано вхід."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Вимк",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "Якщо вибрано поле (у фокусі)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "Якщо вибрано піктограму автозаповнення",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Автозаповнення на сторінці"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Особисті дані"
},
- "typePasskey": {
- "message": "Ключ доступу"
- },
"passwordHistory": {
"message": "Історія паролів"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden не запитуватиме про збереження даних входу для цих доменів. Потрібно оновити сторінку для застосування змін."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden не запитуватиме про збереження даних входу для цих доменів для всіх облікових записів, до яких виконано вхід. Потрібно оновити сторінку для застосування змін."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ не є дійсним доменом",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "Як працює автозаповнення"
},
"autofillSelectInfoWithCommand": {
- "message": "Виберіть елемент із цієї сторінки або використайте комбінацію клавіш: $COMMAND$",
+ "message": "Виберіть елемент із цього екрану, скористайтеся комбінацією клавіш $COMMAND$, або дізнайтеся про інші можливості в налаштуваннях.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Виберіть елемент із цієї сторінки або встановіть комбінацію клавіш у налаштуваннях."
+ "message": "Виберіть елемент із цього екрану або дізнайтеся про інші можливості в налаштуваннях."
},
"gotIt": {
"message": "Зрозуміло"
@@ -2457,6 +2494,80 @@
"message": "Вимкніть повторний запит головного пароля, щоб редагувати це поле",
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
},
+ "bitwardenOverlayButton": {
+ "message": "Кнопка меню автозаповнення Bitwarden",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Перемкнути меню автозаповнення Bitwarden",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Меню автозаповнення Bitwarden",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Розблокуйте обліковий запис, щоб побачити відповідні записи",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Розблокувати обліковий запис",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Заповнити облікові дані для",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Часткове ім'я користувача",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "Немає записів для показу",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "Новий запис",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Додати новий запис сховища",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Доступне меню автозаповнення Bitwarden. Натисніть клавішу стрілки для вибору.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Перевизначити автозаповнення браузера?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Якщо залишити цей параметр вимкненим, може виникнути конфлікт між меню автозаповнення Bitwarden та вашого браузера.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Якщо залишити цей параметр вимкненим, може виникнути конфлікт між меню автозаповнення Bitwarden та вашого браузера. Якщо увімкнути, розширення Bitwarden перезапуститься.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Увімкнути"
+ },
+ "ignore": {
+ "message": "Ігнорувати"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Перевизначити налаштування автозаповнення браузера",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Неможливо перевизначити автозаповнення браузера",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden повинен мати доступ до дозволу приватності розширення, щоб перевизначати налаштування автозаповнення браузера.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Імпортувати дані",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/vi/messages.json b/apps/browser/src/_locales/vi/messages.json
index cad3ff1616f..46b9e71df67 100644
--- a/apps/browser/src/_locales/vi/messages.json
+++ b/apps/browser/src/_locales/vi/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "'Thông báo Thêm đăng nhập' sẽ tự động nhắc bạn lưu các đăng nhập mới vào hầm an toàn của bạn bất cứ khi nào bạn đăng nhập trang web lần đầu tiên."
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "Hiển thị thẻ trên trang Tab"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "Yêu cầu cập nhật mật khẩu đăng nhập khi phát hiện thay đổi trên trang web."
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "Bạn có muốn cập nhật mật khẩu này trên Bitwarden không?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "Sử dụng một đúp chuột để truy cập vào việc tạo mật khẩu và thông tin đăng nhập phù hợp cho trang web. "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "Phương thức kiểm tra URI mặc định",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "Thay đổi màu sắc ứng dụng."
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "Tối",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "Địa chỉ môi trường đã được lưu."
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "Tự động điền khi tải trang"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "Danh tính"
},
- "typePasskey": {
- "message": "Passkey"
- },
"passwordHistory": {
"message": "Lịch sử mật khẩu"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden sẽ không yêu cầu lưu thông tin đăng nhập cho các miền này. Bạn phải làm mới trang để các thay đổi có hiệu lực."
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ không phải là tên miền hợp lệ",
"placeholders": {
@@ -2227,7 +2264,7 @@
"message": "Cách tự đồng điền"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2236,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
@@ -2457,6 +2494,80 @@
"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."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "Import data",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/zh_CN/messages.json b/apps/browser/src/_locales/zh_CN/messages.json
index 1c72b15db49..a3f4c0043d0 100644
--- a/apps/browser/src/_locales/zh_CN/messages.json
+++ b/apps/browser/src/_locales/zh_CN/messages.json
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "在密码库中找不到匹配项目时询问添加一个。"
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "在标签页上显示支付卡"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "在网站上检测到更改时询问更新登录密码。"
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "是否要在 Bitwarden 中更新此密码?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "使用辅助点击来访问密码生成和匹配的网站登录项目。 "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "默认 URI 匹配检测",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "更改本应用程序的颜色主题。"
},
+ "themeDescAlt": {
+ "message": "更改应用程序的颜色主题。适用于所有已登录的账户。"
+ },
"dark": {
"message": "深色",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "环境 URL 已保存"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "在表单字段中显示自动填充菜单",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "适用于所有已登录的账户。"
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "关闭",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "当选中字段时 (焦点)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "选中自动填充图标时",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "页面加载时自动填充"
},
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "身份"
},
- "typePasskey": {
- "message": "通行密钥"
- },
"passwordHistory": {
"message": "密码历史记录"
},
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden 将不会询问是否为这些域名保存登录信息。您必须刷新页面才能使更改生效。"
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ 不是一个有效的域名",
"placeholders": {
@@ -2457,6 +2494,80 @@
"message": "关闭主密码重新提示以编辑此字段",
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden 自动填充菜单按钮",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "切换 Bitwarden 自动填充菜单",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden 自动填充菜单",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "解锁您的账户以查看匹配的登录",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "解锁账户",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "填写凭据",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "部分用户名",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "没有可显示的项目",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "新增项目",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "添加新的密码库项目",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden 自动填充菜单可用。按向下箭头键进行选择。",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "覆盖浏览器自动填充?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "离开此设置可能会在 Bitwarden 自动填充菜单和您的浏览器之间造成冲突。",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "离开此设置可能会导致 Bitwarden 自动填充菜单和您的浏览器之间的冲突。打开此选项将重启Bitwarden扩展。",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "开启"
+ },
+ "ignore": {
+ "message": "忽略"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "覆盖浏览器的自动填充设置?",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "无法覆盖浏览器自动填充",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden 必须拥有访问扩展隐私的权限,才能覆盖浏览器的自动填充设置。",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "导入数据",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
diff --git a/apps/browser/src/_locales/zh_TW/messages.json b/apps/browser/src/_locales/zh_TW/messages.json
index 5af68716091..063fd8ca134 100644
--- a/apps/browser/src/_locales/zh_TW/messages.json
+++ b/apps/browser/src/_locales/zh_TW/messages.json
@@ -92,13 +92,13 @@
"message": "自動填入"
},
"autoFillLogin": {
- "message": "自動填入登入"
+ "message": "自動填入登入資訊"
},
"autoFillCard": {
"message": "自動填入支付卡"
},
"autoFillIdentity": {
- "message": "自動填入身分"
+ "message": "自動填入身分資訊"
},
"generatePasswordCopied": {
"message": "產生及複製密碼"
@@ -113,16 +113,16 @@
"message": "無支付卡"
},
"noIdentities": {
- "message": "無身分"
+ "message": "無身分資訊"
},
"addLoginMenu": {
- "message": "新增登入"
+ "message": "新增登入資訊"
},
"addCardMenu": {
"message": "新增支付卡"
},
"addIdentityMenu": {
- "message": "新增身分"
+ "message": "新增身分資訊"
},
"unlockVaultMenu": {
"message": "解鎖您的密碼庫"
@@ -363,7 +363,7 @@
"message": "其他"
},
"unlockMethodNeededToChangeTimeoutActionDesc": {
- "message": "設定解鎖方法來變更您的密碼庫逾時動作。"
+ "message": "設定一個解鎖方式來變更您的密碼庫逾時動作。"
},
"rateExtension": {
"message": "為本套件評分"
@@ -619,6 +619,9 @@
"addLoginNotificationDesc": {
"message": "在密碼庫中找不到相符的項目時詢問是否新增項目。"
},
+ "addLoginNotificationDescAlt": {
+ "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ },
"showCardsCurrentTab": {
"message": "於分頁頁面顯示支付卡"
},
@@ -651,6 +654,15 @@
"changedPasswordNotificationDesc": {
"message": "偵測到網站密碼變更時,詢問是否更新登入資料密碼。"
},
+ "changedPasswordNotificationDescAlt": {
+ "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ },
+ "enableUsePasskeys": {
+ "message": "Ask to save and use passkeys"
+ },
+ "usePasskeysDesc": {
+ "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ },
"notificationChangeDesc": {
"message": "是否要在 Bitwarden 中更新此密碼?"
},
@@ -669,6 +681,9 @@
"contextMenuItemDesc": {
"message": "使用輔助點選(右鍵選單)來存取密碼產生和匹配的網站登入項目。 "
},
+ "contextMenuItemDescAlt": {
+ "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ },
"defaultUriMatchDetection": {
"message": "預設的 URI 一致性偵測",
"description": "Default URI match detection for auto-fill."
@@ -682,6 +697,9 @@
"themeDesc": {
"message": "變更應用程式的主題色彩。"
},
+ "themeDescAlt": {
+ "message": "Change the application's color theme. Applies to all logged in accounts."
+ },
"dark": {
"message": "深色",
"description": "Dark color"
@@ -1002,6 +1020,25 @@
"environmentSaved": {
"message": "環境 URL 已儲存"
},
+ "showAutoFillMenuOnFormFields": {
+ "message": "Show auto-fill menu on form fields",
+ "description": "Represents the message for allowing the user to enable the auto-fill overlay"
+ },
+ "showAutoFillMenuOnFormFieldsDescAlt": {
+ "message": "Applies to all logged in accounts."
+ },
+ "autofillOverlayVisibilityOff": {
+ "message": "Off",
+ "description": "Overlay setting select option for disabling autofill overlay"
+ },
+ "autofillOverlayVisibilityOnFieldFocus": {
+ "message": "When field is selected (on focus)",
+ "description": "Overlay appearance select option for showing the field on focus of the input element"
+ },
+ "autofillOverlayVisibilityOnButtonClick": {
+ "message": "When auto-fill icon is selected",
+ "description": "Overlay appearance select option for showing the field on click of the overlay icon"
+ },
"enableAutoFillOnPageLoad": {
"message": "頁面載入時自動填入"
},
@@ -1009,7 +1046,7 @@
"message": "網頁載入時如果偵測到登入表單,則執行自動填入。"
},
"experimentalFeature": {
- "message": "被入侵或不可信任的網站可以利用網頁載入時的自動填入功能。"
+ "message": "被入侵或不可信任的網站可不當利用頁面加載時的自動填入功能。"
},
"learnMoreAboutAutofill": {
"message": "進一步瞭解「自動填入」功能"
@@ -1253,9 +1290,6 @@
"typeIdentity": {
"message": "身分"
},
- "typePasskey": {
- "message": "密碼金鑰"
- },
"passwordHistory": {
"message": "密碼歷史記錄"
},
@@ -1498,7 +1532,7 @@
"message": "警告:這是不安全的 HTTP 頁面,任何您送出的資訊均可能被其他人看見和更改。此登入資訊原先是在安全的 (HTTPS) 頁面儲存的。"
},
"insecurePageWarningFillPrompt": {
- "message": "您依然想要填充此登入資訊嗎?"
+ "message": "您仍要填入此登入資訊嗎?"
},
"autofillIframeWarning": {
"message": "這個表單寄放在不同的網域,而非您儲存登入資訊的 URI。選擇「確認」則依然自動填入,「取消」則停止本動作。"
@@ -1636,7 +1670,7 @@
"message": "生物特徵辨識失敗"
},
"biometricsFailedDesc": {
- "message": "生物特徵辨識無法完成,請考慮使用主密碼或登出。如果這種情況仍然存在,請聯絡 Bitwarden 支援。"
+ "message": "生物特徵辨識無法完成,請考慮使用主密碼或登出。若仍無法解決,請聯絡 Bitwarden 客服。"
},
"nativeMessaginPermissionErrorTitle": {
"message": "未提供權限"
@@ -1665,6 +1699,9 @@
"excludedDomainsDesc": {
"message": "Bitwarden 不會要求儲存這些網域的詳細登入資訊。必須重新整理頁面才能使變更生效。"
},
+ "excludedDomainsDescAlt": {
+ "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ },
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ 不是一個有效的網域",
"placeholders": {
@@ -2209,7 +2246,7 @@
"message": "重要:"
},
"masterPasswordHint": {
- "message": "如果您忘記主密碼,沒有復原的方法!"
+ "message": "若您忘記主密碼,將會無法找回!"
},
"characterMinimum": {
"message": "$LENGTH$ 個字元以上",
@@ -2221,7 +2258,7 @@
}
},
"autofillPageLoadPolicyActivated": {
- "message": "您的組織政策已經開啟了自動填入功能。"
+ "message": "您的組織原則已啟用頁面加載時自動填入的功能。"
},
"howToAutofill": {
"message": "如何自動填入"
@@ -2281,7 +2318,7 @@
"message": "記住這個裝置"
},
"uncheckIfPublicDevice": {
- "message": "若使用公用裝置,请勿選中"
+ "message": "若使用公用裝置,請勿選中"
},
"approveFromYourOtherDevice": {
"message": "從其他裝置核准"
@@ -2457,6 +2494,80 @@
"message": "關閉主密碼重新提示以編輯此欄位",
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
},
+ "bitwardenOverlayButton": {
+ "message": "Bitwarden auto-fill menu button",
+ "description": "Page title for the iframe containing the overlay button"
+ },
+ "toggleBitwardenVaultOverlay": {
+ "message": "Toggle Bitwarden auto-fill menu",
+ "description": "Screen reader and tool tip label for the overlay button"
+ },
+ "bitwardenVault": {
+ "message": "Bitwarden auto-fill menu",
+ "description": "Page title in overlay"
+ },
+ "unlockYourAccountToViewMatchingLogins": {
+ "message": "Unlock your account to view matching logins",
+ "description": "Text to display in overlay when the account is locked."
+ },
+ "unlockAccount": {
+ "message": "Unlock account",
+ "description": "Button text to display in overlay when the account is locked."
+ },
+ "fillCredentialsFor": {
+ "message": "Fill credentials for",
+ "description": "Screen reader text for when overlay item is in focused"
+ },
+ "partialUsername": {
+ "message": "Partial username",
+ "description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
+ },
+ "noItemsToShow": {
+ "message": "No items to show",
+ "description": "Text to show in overlay if there are no matching items"
+ },
+ "newItem": {
+ "message": "New item",
+ "description": "Button text to display in overlay when there are no matching items"
+ },
+ "addNewVaultItem": {
+ "message": "Add new vault item",
+ "description": "Screen reader text (aria-label) for new item button in overlay"
+ },
+ "bitwardenOverlayMenuAvailable": {
+ "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "description": "Screen reader text for announcing when the overlay opens on the page"
+ },
+ "overrideBrowserAutofillTitle": {
+ "message": "Override browser auto-fill?",
+ "description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "overrideBrowserAutofillPrivacyRequiredDescription": {
+ "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
+ },
+ "turnOn": {
+ "message": "Turn on"
+ },
+ "ignore": {
+ "message": "Ignore"
+ },
+ "overrideBrowserAutoFillSettings": {
+ "message": "Override browser auto-fill settings",
+ "description": "Label for the setting that allows overriding the default browser autofill settings"
+ },
+ "extensionPrivacyPermissionNotGrantedTitle": {
+ "message": "Unable to override browser auto-fill",
+ "description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
+ "extensionPrivacyPermissionNotGrantedDescription": {
+ "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
+ },
"importData": {
"message": "匯入資料",
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
From 427772727901daefaba94660729b3fb83b00a40d Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon, 27 Nov 2023 12:45:32 +0100
Subject: [PATCH 27/30] Autosync the updated translations (#6971)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
---
apps/desktop/src/locales/az/messages.json | 142 +++++++++++-----------
apps/desktop/src/locales/uk/messages.json | 2 +-
2 files changed, 72 insertions(+), 72 deletions(-)
diff --git a/apps/desktop/src/locales/az/messages.json b/apps/desktop/src/locales/az/messages.json
index d360656bb90..ec46ef93a67 100644
--- a/apps/desktop/src/locales/az/messages.json
+++ b/apps/desktop/src/locales/az/messages.json
@@ -104,7 +104,7 @@
"message": "E-poçt ünvanı"
},
"verificationCodeTotp": {
- "message": "Təsdiqləmə kodu (TOTP)"
+ "message": "Doğrulama kodu (TOTP)"
},
"website": {
"message": "Veb sayt"
@@ -126,7 +126,7 @@
"message": "Lövhəyə kopyalananda kiçilt"
},
"minimizeOnCopyToClipboardDesc": {
- "message": "Elementin verilənlərini lövhəyə kopyalayarkən kiçilt."
+ "message": "Bir elementin datasını lövhəyə kopyalayarkən tətbiqi kiçilt."
},
"toggleVisibility": {
"message": "Görünməni aç/bağla"
@@ -311,7 +311,7 @@
"message": "Düzəliş et"
},
"authenticatorKeyTotp": {
- "message": "Kimlik təsdiqləyici açarı (TOTP)"
+ "message": "Kimlik doğrulayıcı açarı (TOTP)"
},
"folder": {
"message": "Qovluq"
@@ -398,7 +398,7 @@
"message": "URI-ni kopyala"
},
"copyVerificationCodeTotp": {
- "message": "Təsdiqləmə kodunu kopyala (TOTP)"
+ "message": "Doğrulama kodunu kopyala (TOTP)"
},
"length": {
"message": "Uzunluq"
@@ -476,7 +476,7 @@
"message": "Maksimal fayl həcmi 500 MB-dır."
},
"encryptionKeyMigrationRequired": {
- "message": "Şifrələmə açarının daşınması tələb olunur. Şifrələmə açarınızı güncəlləmək üçün zəhmət olmasa veb anbar üzərindən giriş edin."
+ "message": "Şifrələmə açarının daşınması tələb olunur. Şifrələmə açarınızı güncəlləmək üçün lütfən veb anbar üzərindən giriş edin."
},
"editedFolder": {
"message": "Qovluğa düzəliş edildi"
@@ -518,7 +518,7 @@
"message": "Ana parol məsləhəti (ixtiyari)"
},
"settings": {
- "message": "Tənzimləmələr"
+ "message": "Ayarlar"
},
"passwordHint": {
"message": "Parol məsləhəti"
@@ -552,7 +552,7 @@
}
},
"masterPassDoesntMatch": {
- "message": "Ana parol təsdiqləməsi uyğun gəlmir."
+ "message": "Ana parolun təsdiqi uyğun gəlmir."
},
"newAccountCreated": {
"message": "Yeni hesabınız yaradıldı! İndi giriş edə bilərsiniz."
@@ -570,7 +570,7 @@
"message": "Siyahılanacaq heç bir element yoxdur."
},
"sendVerificationCode": {
- "message": "E-poçtunuza bir təsdiqləmə kodu göndərin"
+ "message": "Doğrulama kodunu e-poçtunuza göndərin"
},
"sendCode": {
"message": "Kod göndər"
@@ -579,25 +579,25 @@
"message": "Kod göndərildi"
},
"verificationCode": {
- "message": "Təsdiqləmə kodu"
+ "message": "Doğrulama kodu"
},
"confirmIdentity": {
"message": "Davam etmək üçün kimliyinizi təsdiqləyin."
},
"verificationCodeRequired": {
- "message": "Təsdiq kodu lazımdır."
+ "message": "Doğrulama kodu tələb olunur."
},
"invalidVerificationCode": {
- "message": "Yararsız təsdiqləmə kodu"
+ "message": "Yararsız doğrulama kodu"
},
"continue": {
"message": "Davam"
},
"enterVerificationCodeApp": {
- "message": "Kimlik təsdiqləyici tətbiqindən 6 rəqəmli təsdiqləmə kodunu daxil edin."
+ "message": "Kimlik doğrulayıcı tətbiqindən 6 rəqəmli doğrulama kodunu daxil edin."
},
"enterVerificationCodeEmail": {
- "message": "$EMAIL$ ünvanına göndərilən e-poçtdakı 6 rəqəmli təsdiqləmə kodunu daxil edin.",
+ "message": "$EMAIL$ ünvanına göndərilən e-poçtdakı 6 rəqəmli doğrulama kodunu daxil edin.",
"placeholders": {
"email": {
"content": "$1",
@@ -606,7 +606,7 @@
}
},
"verificationCodeEmailSent": {
- "message": "Təsdiqləmə poçtu $EMAIL$ ünvanına göndərildi.",
+ "message": "Doğrulama poçtu $EMAIL$ ünvanına göndərildi.",
"placeholders": {
"email": {
"content": "$1",
@@ -618,7 +618,7 @@
"message": "Məni xatırla"
},
"sendVerificationCodeEmailAgain": {
- "message": "Təsdiqləmə kodu olan e-poçtu yenidən göndər"
+ "message": "Doğrulama kodu olan e-poçtu yenidən göndər"
},
"useAnotherTwoStepMethod": {
"message": "Başqa bir iki mərhələli giriş metodu istifadə edin"
@@ -627,19 +627,19 @@
"message": "\"YubiKey\"i kompüterinizin USB portuna taxın, daha sonra düyməsinə toxunun."
},
"insertU2f": {
- "message": "Güvənlik açarını kompüterinizin USB portun taxın. Düyməsi varsa toxunun."
+ "message": "Güvənlik açarını kompüterinizin USB portuna taxın. Düyməsi varsa toxunun."
},
"recoveryCodeDesc": {
- "message": "İki mərhələli təsdiqləmə provayderlərinə müraciəti itirmisiniz? Bərpa kodunuzu istifadə edərək hesabınızdakı bütün iki mərhələli provayderləri sıradan çıxara bilərsiniz."
+ "message": "İki faktorlu provayderlərinizə müraciəti itirmisiniz? Geri qaytarma kodunuzu istifadə edərək hesabınızdakı bütün iki faktorlu provayderləri söndürə bilərsiniz."
},
"recoveryCodeTitle": {
"message": "Bərpa kodu"
},
"authenticatorAppTitle": {
- "message": "Kimlik təsdiqləyici tətbiqi"
+ "message": "Kimlik doğrulayıcı tətbiqi"
},
"authenticatorAppDesc": {
- "message": "Vaxt əsaslı təsdiqləmə kodları yaratmaq üçün (Authy və ya Google Authenticator kimi) kimlik təsdiqləyici tətbiq istifadə edin.",
+ "message": "Vaxt əsaslı doğrulama kodları yaratmaq üçün (Authy və ya Google Authenticator kimi) kimlik doğrulayıcı tətbiq istifadə edin.",
"description": "'Authy' and 'Google Authenticator' are product names and should not be translated."
},
"yubiKeyTitle": {
@@ -649,11 +649,11 @@
"message": "Hesabınıza müraciət etmək üçün bir YubiKey istifadə edin. YubiKey 4, 4 Nano, 4C və NEO cihazları ilə işləyir."
},
"duoDesc": {
- "message": "Duo Security ilə təsdiqləmək üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
+ "message": "Duo Security ilə doğrulamaq üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
},
"duoOrganizationDesc": {
- "message": "Təşkilatınızını Duo Security ilə təsdiqləmək üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
+ "message": "Təşkilatınızını Duo Security ilə doğrulamaq üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
},
"webAuthnTitle": {
@@ -666,7 +666,7 @@
"message": "E-poçt"
},
"emailDesc": {
- "message": "Təsdiqləmə kodları e-poçt ünvanınıza göndəriləcək."
+ "message": "Doğrulama kodları e-poçt ünvanınıza göndəriləcək."
},
"loginUnavailable": {
"message": "Giriş edilə bilmir"
@@ -675,7 +675,7 @@
"message": "Bu hesabın iki mərhələli giriş özəlliyi fəaldır, ancaq, konfiqurasiya edilmiş iki mərhələli provayderlərin heç biri bu cihaz tərəfindən dəstəklənmir."
},
"noTwoStepProviders2": {
- "message": "Zəhmət olmasa daha yaxşı cihazlar (tətbiq təsdiqləyici tətbiqi) arasında dəstəklənən əlavə provayderləri əlavə edin."
+ "message": "Lütfən daha yaxşı cihazlar (kimlik doğrulayıcı tətbiqi) arasında dəstəklənən əlavə provayderləri əlavə edin."
},
"twoStepOptions": {
"message": "İki mərhələli giriş seçimləri"
@@ -809,7 +809,7 @@
"message": "Mobil tətbiqə get"
},
"getBrowserExtension": {
- "message": "Brauzer genişləndirməsini al"
+ "message": "Brauzer uzantısını al"
},
"syncingComplete": {
"message": "Eyniləşdirmə tamamlandı"
@@ -818,7 +818,7 @@
"message": "Uğursuz eyniləşdirmə"
},
"yourVaultIsLocked": {
- "message": "Anbarınız kilidlənib. Davam etmək üçün ana parolunuzu təsdiqləyin."
+ "message": "Anbarınız kilidlənib. Davam etmək üçün kimliyinizi doğrulayın."
},
"unlock": {
"message": "Kilidi aç"
@@ -840,7 +840,7 @@
"message": "Yararsız ana parol"
},
"twoStepLoginConfirmation": {
- "message": "İki mərhələli giriş, güvənlik açarı, kimlik təsdiqləyici tətbiq, SMS, telefon zəngi və ya e-poçt kimi digər cihazlarla girişinizi təsdiqləməyinizi tələb edərək hesabınızı daha da güvənli edir. İki mərhələli giriş, bitwarden.com veb anbarında fəallaşdırıla bilər. Veb saytı indi ziyarət etmək istəyirsiniz?"
+ "message": "İki addımlı giriş, güvənlik açarı, kimlik doğrulayıcı tətbiq, SMS, telefon zəngi və ya e-poçt kimi digər cihazlarla girişinizi doğrulamanızı tələb edərək hesabınızı daha da güvənli edir. İki addımlı giriş, bitwarden.com veb anbarında qurula bilər. Veb saytı indi ziyarət etmək istəyirsiniz?"
},
"twoStepLogin": {
"message": "İki mərhələli giriş"
@@ -974,7 +974,7 @@
"message": "Bildiriş sahəsi nişanını ləğv et"
},
"confirmTrayDesc": {
- "message": "Bu tənzimləməni ləğv etsəniz, bütün əlaqəli tənzimləmələr də ləğv ediləcək."
+ "message": "Bu ayarı söndürsəniz, bütün əlaqəli ayarlar da söndürüləcək."
},
"language": {
"message": "Dil"
@@ -1081,10 +1081,10 @@
"message": "YubiKey və Duo kimi mülkiyyətçi iki addımlı giriş seçimləri."
},
"premiumSignUpReports": {
- "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əsiyini təmin etmək üçün parol gigiyenası, hesab sağlamlığı və datanın pozulması hesabatları."
},
"premiumSignUpTotp": {
- "message": "Anbarınızdakı hesablar üçün TOTP təsdiqləmə kodu (2FA) yaradıcısı."
+ "message": "Anbarınızdakı hesablar üçün TOTP doğrulama kodu (2FA) yaradıcısı."
},
"premiumSignUpSupport": {
"message": "Prioritet müştəri dəstəyi."
@@ -1288,7 +1288,7 @@
"description": "ex. Date this password was updated"
},
"exportVault": {
- "message": "Anbarı ixrac et"
+ "message": "Anbarı xaricə köçür"
},
"fileFormat": {
"message": "Fayl formatı"
@@ -1332,16 +1332,16 @@
"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ə"
},
"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."
+ "message": "Hesab şifrələmə açarları, hər Bitwarden istifadəçi hesabı üçün unikaldır, buna görə də şifrələnmiş bir xaricə köçürməni, fərqli bir hesaba köçürə bilməzsiniz."
},
"noOrganizationsList": {
"message": "Heç bir təşkilata aid deyilsiniz. Təşkilatlar, elementlərinizi digər istifadəçilərlə güvənli şəkildə paylaşmağınızı təmin edir."
@@ -1381,7 +1381,7 @@
"message": "PIN ilə kilidi açın"
},
"setYourPinCode": {
- "message": "Bitwarden-in kilidini açmaq üçün PIN kod tənzimləyin. Hər tətbiqdən tam çıxış edəndə PIN tənzimləmələriniz sıfırlanacaq."
+ "message": "Bitwarden-in kilidini açmaq üçün PIN kod ayarlayın. Hər tətbiqdən tam çıxış edəndə PIN ayarlarınız sıfırlanacaq."
},
"pinRequired": {
"message": "PIN kod lazımdır."
@@ -1393,16 +1393,16 @@
"message": "Windows Hello ilə kilidi aç"
},
"additionalWindowsHelloSettings": {
- "message": "Əlavə Windows Hello tənzimləmələri"
+ "message": "Əlavə Windows Hello ayarları"
},
"windowsHelloConsentMessage": {
- "message": "Bitwarden üçün təsdiqlə."
+ "message": "Bitwarden üçün doğrula."
},
"unlockWithTouchId": {
"message": "Touch ID kilidini aç"
},
"additionalTouchIdSettings": {
- "message": "Əlavə Touch ID tənzimləmələri"
+ "message": "Əlavə Touch ID ayarları"
},
"touchIdConsentMessage": {
"message": "anbarınızın kilidini açın"
@@ -1426,7 +1426,7 @@
"message": "Hesabı sil"
},
"deleteAccountDesc": {
- "message": "Hesabınızı və bütün anbar verilənlərini silmək üçün aşağıda davam edin."
+ "message": "Hesabınızı və bütün anbar datasını silmək üçün aşağıda davam edin."
},
"deleteAccountWarning": {
"message": "Hesabınızı silmək birdəfəlik prosesdir. Bu əməliyyatın geri dönüşü yoxdur."
@@ -1435,7 +1435,7 @@
"message": "Hesab silindi"
},
"accountDeletedDesc": {
- "message": "Hesabınız bağlandı və bütün əlaqəli verilənlər silindi."
+ "message": "Hesabınız bağlandı və bütün əlaqəli datalar silindi."
},
"preferences": {
"message": "Tercihlər"
@@ -1490,7 +1490,7 @@
"message": "Kilidli bir anbar, təkrar müraciət etmək üçün ana parolunuzu yenidən yazmağınızı tələb edir."
},
"vaultTimeoutActionLogOutDesc": {
- "message": "Çıxış edilmiş bir anbar, təkrar müraciət etmək üçün yenidən kimlik təsdiqləmə tələb edir."
+ "message": "Anbarınıza yenidən müraciət etmək üçün təkrar kimlik doğrulama tələb olunur."
},
"unlockMethodNeededToChangeTimeoutActionDesc": {
"message": "Anbar vaxt bitməsi əməliyyatınızı dəyişdirmək üçün bir kilid açma üsulu quraşdırın."
@@ -1522,7 +1522,7 @@
"message": "Birdəfəlik sil"
},
"vaultTimeoutLogOutConfirmation": {
- "message": "Çıxış edəndə, anbarınıza bütün müraciətiniz dayanacaq və vaxt bitməsindən sonra onlayn kimlik təsdiqləməsi tələb olunacaq. Bu tənzimləməni istifadə etmək istədiyinizə əminsiniz?"
+ "message": "Çıxış edəndə, anbarınıza bütün müraciətiniz dayanacaq və vaxt bitməsindən sonra onlayn kimlik doğrulaması tələb olunacaq. Bu ayarı istifadə etmək istədiyinizə əminsiniz?"
},
"vaultTimeoutLogOutConfirmationTitle": {
"message": "Vaxt bitmə əməliyyat təsdiqi"
@@ -1531,7 +1531,7 @@
"message": "Müəssisə üçün tək daxil olma"
},
"setMasterPassword": {
- "message": "Ana parolu tənzimlə"
+ "message": "Ana parolu ayarla"
},
"orgPermissionsUpdatedMustSetPassword": {
"message": "Təşkilatınızın icazələri güncəlləndi və bir ana parol ayarlamağınızı tələb edir.",
@@ -1602,7 +1602,7 @@
"message": "Brauzer inteqrasiyasını fəallaşdır"
},
"enableBrowserIntegrationDesc": {
- "message": "Brauzer inteqrasiyası, brauzerdə biometrik təsdiqləmə üçün istifadə olunur."
+ "message": "Brauzerdə biometriklər üçün istifadə olunur."
},
"enableDuckDuckGoBrowserIntegration": {
"message": "DuckDuckGo brauzer inteqrasiyasına icazə ver"
@@ -1623,19 +1623,19 @@
"message": "Təəssüf ki, brauzer inteqrasiyası hal-hazırda Linux versiyasında dəstəklənmir."
},
"enableBrowserIntegrationFingerprint": {
- "message": "Brauzer inteqrasiyası üçün təsdiqləmə tələb et"
+ "message": "Brauzer inteqrasiyası üçün doğrulama tələb et"
},
"enableBrowserIntegrationFingerprintDesc": {
- "message": "Masaüstü tətbiqlə brauzer arasında bağlantı qurularkən barmaq izi ifadəsinin təsdiqlənməsini tələb edərək əlavə bir güvənlik qatını fəallaşdıra bilərsiniz. Fəal olanda, bu, hər bağlantı qurulanda istifadəçi müdaxiləsi və təsdiqləməsini tələb edir."
+ "message": "Masaüstü tətbiqi ilə brauzer arasında bağlantı qurarkən barmaq izi ifadəsinin təsdiqlənməsini tələb edərək əlavə bir güvənlik qatını fəallaşdıra bilərsiniz. Bu, hər bağlantı qurulanda istifadəçi müdaxiləsi və doğrulama tələb edir."
},
"approve": {
"message": "Təsdiqlə"
},
"verifyBrowserTitle": {
- "message": "Brauzer bağlantısını təsdiqlə"
+ "message": "Brauzer bağlantısını doğrula"
},
"verifyBrowserDesc": {
- "message": "Zəhmət olmasa göstərilən barmaq izinin brauzer genişləndirməsində göstərilən barmaq izi ilə eyni olduğuna əmin olun."
+ "message": "Lütfən göstərilən barmaq izinin brauzer uzantısında göstərilən barmaq izi ilə eyni olduğuna əmin olun."
},
"verifyNativeMessagingConnectionTitle": {
"message": "$APPID$, Bitwarden ilə bağlantı qurmaq istəyir",
@@ -1656,7 +1656,7 @@
"message": "Biometriklə fəal deyil"
},
"biometricsNotEnabledDesc": {
- "message": "Brauzer biometrikləri, əvvəlcə tənzimləmələrdə masaüstü biometriklərinin fəallaşdırılmasını tələb edir."
+ "message": "Brauzer biometrikləri, əvvəlcə ayarlarda masaüstü biometriklərinin qurulmasını tələb edir."
},
"personalOwnershipSubmitError": {
"message": "Müəssisə Siyasətinə görə, elementləri şəxsi anbarınızda saxlamağınız məhdudlaşdırılıb. Sahiblik seçimini təşkilat olaraq dəyişdirin və mövcud kolleksiyalar arasından seçim edin."
@@ -1668,7 +1668,7 @@
"message": "Bir təşkilat siyasəti, sahiblik seçimlərinizə təsir edir."
},
"personalOwnershipPolicyInEffectImports": {
- "message": "An organization policy has blocked importing items into your individual vault."
+ "message": "Bir təşkilat siyasəti, elementlərin fərdi anbarınıza köçürülməsini əngəllədi."
},
"allSends": {
"message": "Bütün \"Send\"lər",
@@ -1705,7 +1705,7 @@
"message": "Bitmə tarixi"
},
"expirationDateDesc": {
- "message": "Əgər tənzimlənsə, göstərilən tarix və vaxtda \"Send\"ə müraciət başa çatacaq.",
+ "message": "Əgər ayarlanıbsa, göstərilən tarix və vaxtda \"Send\"ə müraciət başa çatacaq.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"maxAccessCount": {
@@ -1713,7 +1713,7 @@
"description": "This text will be displayed after a Send has been accessed the maximum amount of times."
},
"maxAccessCountDesc": {
- "message": "Əgər tənzimlənsə, istifadəçilər maksimal müraciət sayına çatdıqdan sonra bu \"Send\"ə müraciət edə bilməyəcək.",
+ "message": "Əgər ayarlanıbsa, istifadəçilər maksimal müraciət sayına çatdıqdan sonra bu \"Send\"ə müraciət edə bilməyəcək.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"currentAccessCount": {
@@ -1831,7 +1831,7 @@
"message": "Silinməsi gözlənilir"
},
"webAuthnAuthenticate": {
- "message": "WebAuthn təsdiqləmə"
+ "message": "WebAuthn kimlik doğrulama"
},
"hideEmail": {
"message": "E-poçt ünvanımı alıcılardan gizlət."
@@ -1840,10 +1840,10 @@
"message": "Bir və ya daha çox təşkilat siyasətləri \"Send\" seçimlərinizə təsir edir."
},
"emailVerificationRequired": {
- "message": "E-poçt təsdiqləməsi tələb olunur"
+ "message": "E-poçtun doğrulanması tələb olunur"
},
"emailVerificationRequiredDesc": {
- "message": "Bu özəlliyi istifadə etmək üçün e-poçtunuzu təsdiqləməlisiniz."
+ "message": "Bu özəlliyi istifadə etmək üçün e-poçtunuzu doğrulamalısınız."
},
"passwordPrompt": {
"message": "Ana parolu təkrar soruş"
@@ -1852,7 +1852,7 @@
"message": "Ana şifrə təsdiqi"
},
"passwordConfirmationDesc": {
- "message": "Bu əməliyyat qorumalıdır, davam etmək üçün zəhmət olmasa kimliyinizi təsdiqləmək üçün ana parolunuzu təkrar daxil edin."
+ "message": "Bu əməliyyat qorumalıdır, davam etmək üçün lütfən kimliyinizi doğrulamaq məqsədilə ana parolunuzu yenidən daxil edin."
},
"updatedMasterPassword": {
"message": "Güncəllənmiş ana parol"
@@ -1886,7 +1886,7 @@
}
},
"vaultTimeoutPolicyWithActionInEffect": {
- "message": "Təşkilatınızın siyasətləri, anbarınızın vaxt bitişinə təsir edir. Anbar vaxt bitişi üçün icazə verilən maksimum vaxt $HOURS$ saat $MINUTES$ dəqiqədir. Anbar vaxt bitişi əməliyyatı $ACTION$ olaraq tənzimləndi.",
+ "message": "Təşkilatınızın siyasətləri, anbarınızın vaxt bitişinə təsir edir. Anbar vaxt bitişi üçün icazə verilən maksimum vaxt $HOURS$ saat $MINUTES$ dəqiqədir. Anbar vaxt bitişi əməliyyatı $ACTION$ olaraq ayarlandı.",
"placeholders": {
"hours": {
"content": "$1",
@@ -1903,7 +1903,7 @@
}
},
"vaultTimeoutActionPolicyInEffect": {
- "message": "Təşkilatınızın siyasətləri, anbar vaxt bitişi əməliyyatınızı $ACTION$ olaraq tənzimlədi.",
+ "message": "Təşkilatınızın siyasətləri, anbar vaxt bitişi əməliyyatınızı $ACTION$ olaraq ayarladı.",
"placeholders": {
"action": {
"content": "$1",
@@ -1912,7 +1912,7 @@
}
},
"vaultTimeoutTooLarge": {
- "message": "Anbar vaxt bitişi, təşkilatınız tərəfindən tənzimlənən məhdudiyyətləri aşır."
+ "message": "Anbar vaxt bitişi, təşkilatınız tərəfindən ayarlanan məhdudiyyətləri aşır."
},
"resetPasswordPolicyAutoEnroll": {
"message": "Avtomatik qeydiyyat"
@@ -1921,10 +1921,10 @@
"message": "Bu təşkilat, sizi \"parol sıfırlama\"da avtomatik olaraq qeydiyyata alan müəssisə siyasətinə sahibdir. Qeydiyyat, təşkilat administratorlarına ana parolunuzu dəyişdirmə icazəsi verəcək."
},
"vaultExportDisabled": {
- "message": "Anbar ixracı sıradan çıxarıldı"
+ "message": "Anbarın xaricə köçürülməsi silindi"
},
"personalVaultExportPolicyInEffect": {
- "message": "Bir və ya daha çox təşkilat siyasəti, fərdi anbarınızı ixrac etməyinizin qarşısını alır."
+ "message": "Bir və ya daha çox təşkilat siyasəti, fərdi anbarınızı xaricə köçürməyinizi əngəlləyir."
},
"addAccount": {
"message": "Hesab əlavə et"
@@ -1966,13 +1966,13 @@
"message": "Tercihlər"
},
"appPreferences": {
- "message": "Tətbiq tənzimləmələri (Bütün hesablar)"
+ "message": "Tətbiq ayarları (bütün hesablar)"
},
"accountSwitcherLimitReached": {
"message": "Hesab limiti keçildi. Başqa bir hesab əlavə etmək üçün bir hesabdan çıxış edin."
},
"settingsTitle": {
- "message": "$EMAIL$ üçün tətbiq tənzimləmələri",
+ "message": "$EMAIL$ üçün tətbiq ayarları",
"placeholders": {
"email": {
"content": "$1",
@@ -1987,10 +1987,10 @@
"message": "Seçimlər"
},
"sessionTimeout": {
- "message": "Seansınızın vaxtı bitdi. Zəhmət olmasa geri qayıdıb yenidən giriş etməyə cəhd edin."
+ "message": "Seansınızın vaxtı bitdi. Lütfən geri qayıdıb yenidən giriş etməyə cəhd edin."
},
"exportingPersonalVaultTitle": {
- "message": "Şəxsi anbarın ixracı"
+ "message": "Fərdi anbarın xaricə köçürülməsi"
},
"exportingIndividualVaultDescription": {
"message": "Yalnız $EMAIL$ ilə əlaqələndirilmiş fərdi anbar elementləri xaricə köçürüləcək. Təşkilat anbar elementləri daxil edilməyəcək. Yalnız anbar element məlumatları xaricə köçürüləcək və əlaqələndirilmiş qoşmalar daxil edilməyəcək.",
@@ -2085,7 +2085,7 @@
"message": "Sıradan çıxarılmış Təşkilatlardakı elementlərə müraciət edilə bilmir. Kömək üçün Təşkilatınızın sahibi ilə əlaqə saxlayın."
},
"neverLockWarning": {
- "message": "\"Heç vaxt\" seçimini istifadə etmək istədiyinizə əminsiniz? Kilid seçimini \"Heç vaxt\" olaraq tənzimləsəniz, anbarınızın şifrələmə açarı cihazınızda saxlanılacaq. Bu seçimi istifadə etsəniz, cihazınızı daha yaxşı mühafizə etməlisiniz."
+ "message": "\"Heç vaxt\" seçimini istifadə etmək istədiyinizə əminsiniz? Kilid seçimini \"Heç vaxt\" olaraq ayarlasanız, anbarınızın şifrələmə açarı cihazınızda saxlanılacaq. Bu seçimi istifadə etsəniz, cihazınızı daha yaxşı mühafizə etməlisiniz."
},
"vault": {
"message": "Anbar"
@@ -2124,13 +2124,13 @@
"message": "Cihazınıza bir bildiriş göndərildi."
},
"fingerprintMatchInfo": {
- "message": "Zəhmət olmasa anbarınızın kilidinin açıq olduğuna və Barmaq izi ifadəsinin digər cihazla uyğunlaşdığına əmin olun."
+ "message": "Lütfən anbarınızın kilidinin açıq olduğuna və Barmaq izi ifadəsinin digər cihazla uyğunlaşdığına əmin olun."
},
"fingerprintPhraseHeader": {
"message": "Barmaq izi ifadəsi"
},
"needAnotherOption": {
- "message": "Cihazla giriş etmə, Bitwarden tətbiqinin tənzimləmələrində quraşdırılmalıdır. Başqa bir seçimə ehtiyacınız var?"
+ "message": "Cihazla giriş etmə, Bitwarden tətbiqinin ayarlarında qurulmalıdır. Başqa bir seçimə ehtiyacınız var?"
},
"viewAllLoginOptions": {
"message": "Bütün giriş seçimlərinə bax"
@@ -2252,10 +2252,10 @@
}
},
"windowsBiometricUpdateWarning": {
- "message": "Bitwarden, kilidi ilk açanda ana parolunuzu (və ya PIN-inizi) tələb edəcək biometrik tənzimləmələri güncəlləməyi tövsiyə edir. Tənzimləmələrinizi indi güncəlləmək istəyirsiniz?"
+ "message": "Bitwarden, kilidi ilk açanda ana parolunuzu (və ya PIN-inizi) tələb edəcək biometrik ayarları güncəlləməyi tövsiyə edir. Ayarlarınızı indi güncəlləmək istəyirsiniz?"
},
"windowsBiometricUpdateWarningTitle": {
- "message": "Tövsiyə edilən Tənzimləmələr Güncəlləməsi"
+ "message": "Tövsiyə edilən Ayarlar Güncəlləməsi"
},
"deviceApprovalRequired": {
"message": "Cihaz təsdiqi tələb olunur. Aşağıdan bir təsdiq variantı seçin:"
@@ -2444,7 +2444,7 @@
"message": "Daxilə köçürmə xətası"
},
"importErrorDesc": {
- "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again."
+ "message": "Daxilə köçürməyə çalışdığınız data ilə bağlı bir problem var. Lütfən mənbə faylınızda aşağıda sadalanan xətaları həll edib yenidən sınayın."
},
"resolveTheErrorsBelowAndTryAgain": {
"message": "Aşağıdakı xətaları həll edin və yenidən sınayın."
diff --git a/apps/desktop/src/locales/uk/messages.json b/apps/desktop/src/locales/uk/messages.json
index 3a6c5a99cf6..e7e14004785 100644
--- a/apps/desktop/src/locales/uk/messages.json
+++ b/apps/desktop/src/locales/uk/messages.json
@@ -684,7 +684,7 @@
"message": "Середовище власного хостингу"
},
"selfHostedEnvironmentFooter": {
- "message": "Вкажіть основну URL-адресу вашого локально розміщеного встановлення Bitwarden."
+ "message": "Вкажіть основну URL-адресу Bitwarden, встановленого на локальному хостингу."
},
"customEnvironment": {
"message": "Власне середовище"
From 9d001272782e335732cda50fc1fe6c5c26aace51 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon, 27 Nov 2023 12:49:05 +0100
Subject: [PATCH 28/30] Autosync the updated translations (#6972)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
---
apps/browser/src/_locales/az/messages.json | 124 +++++++++---------
apps/browser/src/_locales/be/messages.json | 4 +-
apps/browser/src/_locales/bg/messages.json | 4 +-
apps/browser/src/_locales/ca/messages.json | 4 +-
apps/browser/src/_locales/cs/messages.json | 8 +-
apps/browser/src/_locales/cy/messages.json | 2 +-
apps/browser/src/_locales/da/messages.json | 4 +-
apps/browser/src/_locales/de/messages.json | 36 ++---
apps/browser/src/_locales/el/messages.json | 4 +-
apps/browser/src/_locales/en_GB/messages.json | 4 +-
apps/browser/src/_locales/es/messages.json | 4 +-
apps/browser/src/_locales/et/messages.json | 4 +-
apps/browser/src/_locales/fa/messages.json | 4 +-
apps/browser/src/_locales/fi/messages.json | 4 +-
apps/browser/src/_locales/fr/messages.json | 40 +++---
apps/browser/src/_locales/hi/messages.json | 4 +-
apps/browser/src/_locales/hr/messages.json | 4 +-
apps/browser/src/_locales/hu/messages.json | 4 +-
apps/browser/src/_locales/it/messages.json | 4 +-
apps/browser/src/_locales/ja/messages.json | 4 +-
apps/browser/src/_locales/lt/messages.json | 2 +-
apps/browser/src/_locales/lv/messages.json | 20 +--
apps/browser/src/_locales/nb/messages.json | 4 +-
apps/browser/src/_locales/nl/messages.json | 4 +-
apps/browser/src/_locales/pl/messages.json | 4 +-
apps/browser/src/_locales/pt_BR/messages.json | 2 +-
apps/browser/src/_locales/ro/messages.json | 4 +-
apps/browser/src/_locales/sk/messages.json | 4 +-
apps/browser/src/_locales/sl/messages.json | 4 +-
apps/browser/src/_locales/sr/messages.json | 4 +-
apps/browser/src/_locales/sv/messages.json | 10 +-
apps/browser/src/_locales/tr/messages.json | 8 +-
apps/browser/src/_locales/uk/messages.json | 2 +-
apps/browser/src/_locales/zh_CN/messages.json | 30 ++---
apps/browser/src/_locales/zh_TW/messages.json | 90 ++++++-------
35 files changed, 231 insertions(+), 231 deletions(-)
diff --git a/apps/browser/src/_locales/az/messages.json b/apps/browser/src/_locales/az/messages.json
index b640dbe7145..e72e1e4192b 100644
--- a/apps/browser/src/_locales/az/messages.json
+++ b/apps/browser/src/_locales/az/messages.json
@@ -658,10 +658,10 @@
"message": "Bir veb saytda bir dəyişiklik aşkarlandıqda giriş parolunun güncəllənməsini soruşulsun. Giriş etmiş bütün hesablara aiddir."
},
"enableUsePasskeys": {
- "message": "Ask to save and use passkeys"
+ "message": "Keçid açarlarını saxlamağı və istifadə etməyi soruş"
},
"usePasskeysDesc": {
- "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ "message": "Yeni keçid açarlarını saxlamağı və ya anbarınızda saxlanılan keçid açarları ilə giriş etmək soruşulsun. Giriş etmiş bütün hesablara aiddir."
},
"notificationChangeDesc": {
"message": "Bu parolu \"Bitwarden\"də güncəlləmək istəyirsiniz?"
@@ -732,7 +732,7 @@
"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 xaricə köçürməni, fərqli bir hesaba iköçürə bilməzsiniz."
+ "message": "Hesab şifrələmə açarları, hər Bitwarden istifadəçi hesabı üçün unikaldır, buna görə də şifrələnmiş bir xaricə köçürməni, fərqli bir hesaba köçürə bilməzsiniz."
},
"exportMasterPassword": {
"message": "Anbar datanızı xaricə köçürmək üçün ana parolunuzu daxil edin."
@@ -1325,7 +1325,7 @@
"description": "To clear something out. example: To clear browser history."
},
"checkPassword": {
- "message": "Parolunuzun oğurlanıb oğurlanmadığını yoxlayın."
+ "message": "Parolun ifşalanıb ifşalanmadığını yoxlayın."
},
"passwordExposed": {
"message": "Bu parol, məlumat pozuntularında $VALUE$ dəfə üzə çıxıb. Dəyişdirməyi məsləhət görürük.",
@@ -1391,7 +1391,7 @@
"message": "Bütün elementlər"
},
"noPasswordsInList": {
- "message": "Siyahılanacaq heç bir parol yoxdur."
+ "message": "Sadalanacaq heç bir parol yoxdur."
},
"remove": {
"message": "Çıxart"
@@ -1461,7 +1461,7 @@
"message": "Yararsız PIN kod."
},
"unlockWithBiometrics": {
- "message": "Biometriklərlə kilidi açın"
+ "message": "Kilidi biometriklə açın"
},
"awaitDesktop": {
"message": "Masaüstündən təsdiq gözlənilir"
@@ -1482,10 +1482,10 @@
"message": "Klonla"
},
"passwordGeneratorPolicyInEffect": {
- "message": "Bir və ya daha çox təşkilat siyasətləri yaradıcı seçimlərinizə təsir edir."
+ "message": "Bir və ya daha çox təşkilat siyasəti yaradıcı ayarlarınıza təsir edir."
},
"vaultTimeoutAction": {
- "message": "Anbara müraciət vaxtının bitmə əməliyyatı"
+ "message": "Anbar vaxtının bitmə əməliyyatı"
},
"lock": {
"message": "Kilidlə",
@@ -1535,10 +1535,10 @@
"message": "Hələ də bu girişi doldurmaq istəyirsiniz?"
},
"autofillIframeWarning": {
- "message": "Form sahibliyi, saxlanılmış girişinizin URI-ından fərqli bir domen tərəfindən həyata keçirilir. Yenə də avto-doldurmaq üçün \"Oldu\"ya, dayandırmaq üçün \"İmtina\"ya basın."
+ "message": "Form sahibliyi, saxlanılmış girişinizin URI-sindən fərqli bir domen tərəfindən edilir. Yenə də avto-doldurmaq üçün \"Oldu\"ya, dayandırmaq üçün \"İmtina\"ya basın."
},
"autofillIframeWarningTip": {
- "message": "Gələcəkdə bu xəbərdarlığın qarşısını almaq üçün, $HOSTNAME$ URI-nı bu sayt üçün Bitwarden giriş elementinizdə saxlayın.",
+ "message": "Gələcəkdə bu xəbərdarlığı önləmək üçün, $HOSTNAME$ URI-nı bu sayt üçün Bitwarden giriş elementinizdə saxlayın.",
"placeholders": {
"hostname": {
"content": "$1",
@@ -1613,49 +1613,49 @@
"message": "Gizlilik Siyasəti"
},
"hintEqualsPassword": {
- "message": "Parol məsləhəti, parolunuzla eyni ola bilməz."
+ "message": "Parol ipucusu, parolunuzla eyni ola bilməz."
},
"ok": {
"message": "Oldu"
},
"desktopSyncVerificationTitle": {
- "message": "Masaüstü eyniləşdirmə təsdiqləməsi"
+ "message": "Masaüstü sinxr doğrulaması"
},
"desktopIntegrationVerificationText": {
"message": "Lütfən masaüstü tətbiqin bu barmaq izini gördüyünü doğrulayın: "
},
"desktopIntegrationDisabledTitle": {
- "message": "Brauzer inteqrasiyası fəal deyil"
+ "message": "Brauzer inteqrasiyası qurulmayıb"
},
"desktopIntegrationDisabledDesc": {
- "message": "Brauzer inteqrasiyası Bitwarden masaüstü tətbiqində qurulmuyub. Lütfən bunu masaüstü tətbiqinin ayarlarında qurun."
+ "message": "Brauzer inteqrasiyası Bitwarden masaüstü tətbiqində qurulmayıb. Lütfən bunu masaüstü tətbiqinin ayarlarında qurun."
},
"startDesktopTitle": {
"message": "Bitwarden masaüstü tətbiqini başlat"
},
"startDesktopDesc": {
- "message": "Bu funksiyanın istifadə edilə bilməsi üçün Bitwarden masaüstü tətbiqi başladılmalıdır."
+ "message": "Biometriklə kilidi aça bilmək üçün Bitwarden masaüstü tətbiqi başladılmalıdır."
},
"errorEnableBiometricTitle": {
- "message": "Biometriklər fəallaşdırıla bilmədi"
+ "message": "Biometriklər qurula bilmir"
},
"errorEnableBiometricDesc": {
"message": "Əməliyyat, masaüstü tətbiqi tərəfindən ləğv edildi"
},
"nativeMessagingInvalidEncryptionDesc": {
- "message": "Masaüstü tətbiqi, güvənli rabitə kanalını yararsız etdi. Bu əməliyyatı yenidən icra edin"
+ "message": "Masaüstü tətbiqi, güvənli rabitə kanalını yararsız etdi. Lütfən bu əməliyyatı yenidən icra edin"
},
"nativeMessagingInvalidEncryptionTitle": {
"message": "Masaüstü rabitə əlaqəsi kəsildi"
},
"nativeMessagingWrongUserDesc": {
- "message": "Masaüstü tətbiqdə fərqli bir hesabla giriş edilib. Hər iki tətbiqin eyni hesabla giriş etdiyinə əmin olun."
+ "message": "Masaüstü tətbiqdə fərqli bir hesaba giriş edilib. Lütfən hər iki tətbiqin eyni hesaba giriş etdiyinə əmin olun."
},
"nativeMessagingWrongUserTitle": {
"message": "Hesablar uyğunlaşmır"
},
"biometricsNotEnabledTitle": {
- "message": "Biometriklə fəal deyil"
+ "message": "Biometriklər qurulmayıb"
},
"biometricsNotEnabledDesc": {
"message": "Brauzer biometrikləri, əvvəlcə ayarlarda masaüstü biometriklərinin qurulmasını tələb edir."
@@ -1682,7 +1682,7 @@
"message": "İcazə tələb xətası"
},
"nativeMessaginPermissionSidebarDesc": {
- "message": "Bu əməliyyatı yan sətirdən edə bilməzsiniz. Lütfən açılan pəncərədə yenidən sınayın."
+ "message": "Bu əməliyyatı kənar çubuqda icra edilə bilməz. Lütfən açılan pəncərədə yenidən sınayın."
},
"personalOwnershipSubmitError": {
"message": "Müəssisə Siyasətinə görə, elementləri şəxsi anbarınızda saxlamağınız məhdudlaşdırılıb. Sahiblik seçimini təşkilat olaraq dəyişdirin və mövcud kolleksiyalar arasından seçim edin."
@@ -1697,13 +1697,13 @@
"message": "İstisna edilən domenlər"
},
"excludedDomainsDesc": {
- "message": "Bitwarden bu domenlər üçün giriş təfsilatlarını saxlamağı soruşmayacaq. Dəyişikliklərin təsirli olması üçün səhifəni təzələməlisiniz."
+ "message": "Bitwarden, bu domenlər üçün giriş detallarını saxlamağı soruşmayacaq. Dəyişikliklərin qüvvəyə minməsi üçün səhifəni təzələməlisiniz."
},
"excludedDomainsDescAlt": {
- "message": "Bitwarden, giriş etmiş bütün hesablar üçün bu domenlərin giriş detallarını saxlamağı istəməyəcək. Dəyişikliklərin qüvvəyə minməsi üçün səhifəni təzələməlisiniz."
+ "message": "Bitwarden, giriş etmiş bütün hesablar üçün bu domenlərin giriş detallarını saxlamağı soruşmayacaq. Dəyişikliklərin qüvvəyə minməsi üçün səhifəni təzələməlisiniz."
},
"excludedDomainsInvalidDomain": {
- "message": "$DOMAIN$ etibarlı bir domen deyil",
+ "message": "$DOMAIN$ yararlı bir domen deyil",
"placeholders": {
"domain": {
"content": "$1",
@@ -1747,11 +1747,11 @@
"message": "Parolla qorunan"
},
"copySendLink": {
- "message": "\"Send\" bağlantısını kopyala",
+ "message": "\"Send\" keçidini kopyala",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"removePassword": {
- "message": "Parolu çıxart"
+ "message": "Parolu sil"
},
"delete": {
"message": "Sil"
@@ -1764,14 +1764,14 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendLink": {
- "message": "\"Send\" bağlantısı",
+ "message": "\"Send\" keçidi",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"disabled": {
"message": "Sıradan çıxarıldı"
},
"removePasswordConfirmation": {
- "message": "Parolu çıxartmaq istədiyinizə əminsiniz?"
+ "message": "Parolu silmək istədiyinizə əminsiniz?"
},
"deleteSend": {
"message": "\"Send\"i sil",
@@ -1837,15 +1837,15 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendNotesDesc": {
- "message": "Bu \"Send\" ilə bağlı gizli qeydlər.",
+ "message": "Bu \"Send\" ilə bağlı gizli notlar.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendDisableDesc": {
- "message": "Heç kimin müraciət edə bilməməsi üçün bu \"Send\"i sıradan çıxart.",
+ "message": "Heç kimin müraciət edə bilməməsi üçün bu \"Send\"i deaktiv et.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendShareDesc": {
- "message": "Saxladıqdan sonra \"Send\"in bağlantısını lövhəyə kopyala.",
+ "message": "Saxladıqdan sonra \"Send\"in keçidini lövhəyə kopyala.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendTextDesc": {
@@ -1859,14 +1859,14 @@
"message": "Hazırkı müraciət sayı"
},
"createSend": {
- "message": "Yeni \"Send\" yarat",
+ "message": "Yeni \"Send\"",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"newPassword": {
"message": "Yeni parol"
},
"sendDisabled": {
- "message": "Send sıradan çıxarıldı",
+ "message": "Send silindi",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendDisabledWarning": {
@@ -1878,17 +1878,17 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"editedSend": {
- "message": "\"Send\"ə düzəliş edildi",
+ "message": "\"Send\" saxlanıldı",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendLinuxChromiumFileWarning": {
- "message": "Fayl seçmək üçün (mümkünsə) genişləndirməni yan sətirdə açın və ya bu bannerə klikləyərək yeni bir pəncərədə açın."
+ "message": "Bir fayl seçmək üçün (mümkünsə) kənar çubuqdakı uzantını açın və ya bu bannerə klikləyərək yeni bir pəncərədə açın."
},
"sendFirefoxFileWarning": {
- "message": "Firefox istifadə edərək fayl seçmək üçün genişləndirməni yan sətirdə açın və ya bu bannerə klikləyərək yeni bir pəncərədə açın."
+ "message": "Firefox istifadə edərək bir fayl seçmək üçün kənar çubuqdakı uzantını açın və ya bu bannerə klikləyərək yeni bir pəncərədə açın."
},
"sendSafariFileWarning": {
- "message": "Safari istifadə edərək fayl seçmək üçün bu bannerə klikləyərək yeni bir pəncərədə açın."
+ "message": "Safari istifadə edərək bir fayl seçmək üçün bu bannerə klikləyərək yeni bir pəncərədə açın."
},
"sendFileCalloutHeader": {
"message": "Başlamazdan əvvəl"
@@ -1906,16 +1906,16 @@
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker click here **to pop out your window.**'"
},
"expirationDateIsInvalid": {
- "message": "Göstərilən son istifadə tarixi etibarsızdır."
+ "message": "Göstərilən son istifadə tarixi yararsızdır."
},
"deletionDateIsInvalid": {
- "message": "Göstərilən silinmə tarixi etibarsızdır."
+ "message": "Göstərilən silinmə tarixi yararsızdır."
},
"expirationDateAndTimeRequired": {
- "message": "Son istifadə tarixi və vaxtı lazımdır."
+ "message": "Son istifadə tarixi və vaxtı tələb olunur."
},
"deletionDateAndTimeRequired": {
- "message": "Silinmə tarixi və vaxtı lazımdır."
+ "message": "Silinmə tarixi və vaxtı tələb olunur."
},
"dateParsingError": {
"message": "Silinmə və son istifadə tarixlərini saxlayarkən xəta baş verdi."
@@ -1936,10 +1936,10 @@
"message": "Bu əməliyyat qorumalıdır, davam etmək üçün lütfən kimliyinizi doğrulamaq məqsədilə ana parolunuzu yenidən daxil edin."
},
"emailVerificationRequired": {
- "message": "E-poçt təsdiqləməsi tələb olunur"
+ "message": "E-poçt doğrulaması tələb olunur"
},
"emailVerificationRequiredDesc": {
- "message": "Bu özəlliyi istifadə etmək üçün e-poçtunuzu təsdiqləməlisiniz. E-poçtunuzu veb anbarında təsdiqləyə bilərsiniz."
+ "message": "Bu özəlliyi istifadə etmək üçün e-poçtunuzu doğrulamalısınız. E-poçtunuzu veb anbarında doğrulaya bilərsiniz."
},
"updatedMasterPassword": {
"message": "Güncəllənmiş ana parol"
@@ -1948,16 +1948,16 @@
"message": "Ana parolu güncəllə"
},
"updateMasterPasswordWarning": {
- "message": "Ana parolunuz təzəlikcə təşkilatınızdakı bir administrator tərəfindən dəyişdirildi. Anbara müraciət üçün indi güncəlləməlisiniz. Davam etsəniz, hazırkı seansdan çıxış etmiş və təkrar giriş etməli olacaqsınız. Digər cihazlardakı aktiv seanslar bir saata qədər aktiv qalmağa davam edə bilər."
+ "message": "Ana parolunuz təzəlikcə təşkilatınızdakı bir administrator tərəfindən dəyişdirildi. Anbara müraciət üçün indi güncəlləməlisiniz. Davam etsəniz, hazırkı seansdan çıxış edəcəksiniz və təkrar giriş etməli olacaqsınız. Digər cihazlardakı aktiv seanslar bir saata qədər aktiv qalmağa davam edə bilər."
},
"updateWeakMasterPasswordWarning": {
- "message": "Ana parolunuz təşkilatınızdakı siyasətlərdən birinə və ya bir neçəsinə uyğun gəlmir. Anbara müraciət üçün ana parolunuzu indi güncəlləməlisiniz. Davam etsəniz, hazırkı seansdan çıxış etmiş və təkrar giriş etməli olacaqsınız. Digər cihazlardakı aktiv seanslar bir saata qədər aktiv qalmağa davam edə bilər."
+ "message": "Ana parolunuz təşkilatınızdakı siyasətlərdən birinə və ya bir neçəsinə uyğun gəlmir. Anbara müraciət üçün ana parolunuzu indi güncəlləməlisiniz. Davam etsəniz, hazırkı seansdan çıxış edəcəksiniz və təkrar giriş etməli olacaqsınız. Digər cihazlardakı aktiv seanslar bir saata qədər aktiv qalmağa davam edə bilər."
},
"resetPasswordPolicyAutoEnroll": {
- "message": "Avtomatik qeydiyyat"
+ "message": "Avtomatik yazılma"
},
"resetPasswordAutoEnrollInviteWarning": {
- "message": "Bu təşkilat, sizi \"parol sıfırlama\"da avtomatik olaraq qeydiyyata alan müəssisə siyasətinə sahibdir. Qeydiyyat, təşkilat administratorlarına ana parolunuzu dəyişdirmə icazəsi verəcək."
+ "message": "Bu təşkilatın sizi \"parol sıfırlama\" əməliyyatına avtomatik olaraq yazacaq olan müəssisə siyasəti var. Yazılma, təşkilat administratorlarına ana parolunuzu dəyişdirmə icazəsi verəcək."
},
"selectFolder": {
"message": "Qovluq seçin..."
@@ -2019,13 +2019,13 @@
"message": "Anbar vaxt bitişi, təşkilatınız tərəfindən ayarlanan məhdudiyyətləri aşır."
},
"vaultExportDisabled": {
- "message": "Anbar ixracı sıradan çıxarıldı"
+ "message": "Anbarın xaricə köçürülməsi əlçatmazdır"
},
"personalVaultExportPolicyInEffect": {
- "message": "Bir və ya daha çox təşkilat siyasəti, fərdi anbarınızı ixrac etməyinizin qarşısını alır."
+ "message": "Bir və ya daha çox təşkilat siyasəti, fərdi anbarınızı xaricə köçürməyinizi əngəlləyir."
},
"copyCustomFieldNameInvalidElement": {
- "message": "Etibarlı form elementi müəyyənləşdirilə bilmir. Bunun əvəzinə HTML-i nəzərdən keçirməyi sınayın."
+ "message": "Yararlı bir form elementi müəyyənləşdirilə bilmir. Bunun əvəzinə HTML-i incələməyi sınayın."
},
"copyCustomFieldNameNotUnique": {
"message": "Unikal identifikator tapılmadı."
@@ -2061,7 +2061,7 @@
"message": "Seansınızın vaxtı bitdi. Lütfən geri qayıdıb yenidən giriş etməyə cəhd edin."
},
"exportingPersonalVaultTitle": {
- "message": "Şəxsi anbarın ixracı"
+ "message": "Fərdi anbarın xaricə köçürülməsi"
},
"exportingIndividualVaultDescription": {
"message": "Yalnız $EMAIL$ ilə əlaqələndirilmiş fərdi anbar elementləri xaricə köçürüləcək. Təşkilat anbar elementləri daxil edilməyəcək. Yalnız anbar element məlumatları xaricə köçürüləcək və əlaqələndirilmiş qoşmalar daxil edilməyəcək.",
@@ -2085,17 +2085,17 @@
"message": "İstifadəçi adı növü"
},
"plusAddressedEmail": {
- "message": "Plyus ünvanlı e-poçt",
+ "message": "Üstəgəl ünvanlı e-poçt",
"description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com"
},
"plusAddressedEmailDesc": {
- "message": "E-poçt provayderinizin alt ünvan özəlliklərini istifadə et."
+ "message": "E-poçt provayderinizin alt ünvanlama imkanlarını istifadə edin."
},
"catchallEmail": {
- "message": "Catch-all E-poçt"
+ "message": "Catch-all e-poçt"
},
"catchallEmailDesc": {
- "message": "Domeninizin konfiqurasiya edilmiş hamısını yaxalama gələn qutusunu istifadə edin."
+ "message": "Domeninizin konfiqurasiyalı catch-all gələn qutusunu istifadə edin."
},
"random": {
"message": "Təsadüfi"
@@ -2138,10 +2138,10 @@
"message": "Premium abunəlik tələb olunur"
},
"organizationIsDisabled": {
- "message": "Təşkilat sıradan çıxarıldı."
+ "message": "Təşkilat dayandırıldı."
},
"disabledOrganizationFilterError": {
- "message": "Sıradan çıxarılmış Təşkilatlardakı elementlərə müraciət edilə bilmir. Kömək üçün Təşkilatınızın sahibi ilə əlaqə saxlayın."
+ "message": "Dayandırılmış Təşkilatlardakı elementlərə müraciət edilə bilmir. Kömək üçün Təşkilatınızın sahibi ilə əlaqə saxlayın."
},
"loggingInTo": {
"message": "$DOMAIN$ domeninə giriş edilir",
@@ -2162,7 +2162,7 @@
"message": "ön konfiqurasiyalı ayarları sıfırlamaq üçün"
},
"serverVersion": {
- "message": "Server Versiyası"
+ "message": "Server versiyası"
},
"selfHostedServer": {
"message": "öz-özünə sahiblik edən"
@@ -2180,7 +2180,7 @@
}
},
"lastSeenOn": {
- "message": "son görünmə $DATE$",
+ "message": "son görünmə: $DATE$",
"placeholders": {
"date": {
"content": "$1",
@@ -2219,7 +2219,7 @@
"message": "Bildirişi təkrar göndər"
},
"viewAllLoginOptions": {
- "message": "Bütün giriş etmə seçimlərinə bax"
+ "message": "Bütün giriş seçimlərinə bax"
},
"notificationSentDevice": {
"message": "Cihazınıza bir bildiriş göndərildi."
@@ -2264,7 +2264,7 @@
"message": "Avto-doldurma necə edilir"
},
"autofillSelectInfoWithCommand": {
- "message": "Bu səhifədən bir element seçin və ya qısayolu istifadə edin: $COMMAND$",
+ "message": "Bu ekrandan bir element seçin, $COMMAND$ qısayolunu istifadə edin və ya ayarlardakı digər seçimləri kəşf edin.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Bu səhifədən bir element seçin və ya ayarlardakı digər seçimləri kəşf edin."
+ "message": "Bu ekrandan bir element seçin və ya ayarlardakı digər seçimləri kəşf edin."
},
"gotIt": {
"message": "Anladım"
@@ -2615,7 +2615,7 @@
"message": "Heç nə daxilə köçürülmədi."
},
"importEncKeyError": {
- "message": "Xaricə köçürülən faylın şifrəsi açılarkən xəta baş verdi. Şifrələmə açarınız, datanın xaricə köçürülməsi zamanı istifadə edilən şifrələmə açarı ilə uyğunlaşmır."
+ "message": "Xaricə köçürülən faylın şifrəsi açılarkən xəta baş verdi. Şifrələmə açarınız, datanı xaricə köçürmək üçün istifadə edilən şifrələmə açarı ilə uyğunlaşmır."
},
"invalidFilePassword": {
"message": "Yararsız fayl parolu, lütfən xaricə köçürmə faylını yaradarkən daxil etdiyiniz parolu istifadə edin."
diff --git a/apps/browser/src/_locales/be/messages.json b/apps/browser/src/_locales/be/messages.json
index b5342529094..a8ed4693c68 100644
--- a/apps/browser/src/_locales/be/messages.json
+++ b/apps/browser/src/_locales/be/messages.json
@@ -2264,7 +2264,7 @@
"message": "Як аўтазапоўніць"
},
"autofillSelectInfoWithCommand": {
- "message": "Выберыце элемент на гэтай старонцы або скарыстайцеся спалучэннем клавіш: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Выберыце элемент на гэтай старонцы або задайце спалучэнне клавіш у наладах."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Зразумела"
diff --git a/apps/browser/src/_locales/bg/messages.json b/apps/browser/src/_locales/bg/messages.json
index 2ce13e9fd46..0ee3b95aad7 100644
--- a/apps/browser/src/_locales/bg/messages.json
+++ b/apps/browser/src/_locales/bg/messages.json
@@ -2264,7 +2264,7 @@
"message": "Как се ползва автоматичното попълване"
},
"autofillSelectInfoWithCommand": {
- "message": "Изберете елемент от тази страница или използвайте следната комбинация: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Изберете елемент от тази страница или задайте клавишна комбинация в настройките."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Разбрано"
diff --git a/apps/browser/src/_locales/ca/messages.json b/apps/browser/src/_locales/ca/messages.json
index c270f19118b..f29c2532fab 100644
--- a/apps/browser/src/_locales/ca/messages.json
+++ b/apps/browser/src/_locales/ca/messages.json
@@ -2264,7 +2264,7 @@
"message": "Com emplenar automàticament"
},
"autofillSelectInfoWithCommand": {
- "message": "Seleccioneu un element d'aquesta pàgina o utilitzeu la drecera: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Seleccioneu un element d'aquesta pàgina o definiu una drecera a la configuració."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "D'acord"
diff --git a/apps/browser/src/_locales/cs/messages.json b/apps/browser/src/_locales/cs/messages.json
index 35242676aa2..fbb18f5aadd 100644
--- a/apps/browser/src/_locales/cs/messages.json
+++ b/apps/browser/src/_locales/cs/messages.json
@@ -658,10 +658,10 @@
"message": "Vyžádá aktualizaci hesla k přihlášení, pokud je na webu zjištěna změna. Platí pro všechny přihlášené účty."
},
"enableUsePasskeys": {
- "message": "Ask to save and use passkeys"
+ "message": "Zeptat se na uložení a použití přístupových hesel"
},
"usePasskeysDesc": {
- "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ "message": "Zeptá se na uložení nového hesla nebo se přihlásí pomocí přístupových hesel uložených ve Vašem trezoru. Platí pro všechny přihlášené účty."
},
"notificationChangeDesc": {
"message": "Chcete aktualizovat toto heslo v Bitwardenu?"
@@ -2264,7 +2264,7 @@
"message": "Jak na automatické vyplňování"
},
"autofillSelectInfoWithCommand": {
- "message": "Vyberte položku z této stránky nebo použijte zkratku: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Vyberte položku z této stránky nebo nastavte zkratku v nastavení."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Rozumím"
diff --git a/apps/browser/src/_locales/cy/messages.json b/apps/browser/src/_locales/cy/messages.json
index fac5aaf5335..23c6d581569 100644
--- a/apps/browser/src/_locales/cy/messages.json
+++ b/apps/browser/src/_locales/cy/messages.json
@@ -2264,7 +2264,7 @@
"message": "Sut i lenwi'n awtomatig"
},
"autofillSelectInfoWithCommand": {
- "message": "Dewiswch eitem o'r dudalen hon neu ddefnyddio'r llwybr byr: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
diff --git a/apps/browser/src/_locales/da/messages.json b/apps/browser/src/_locales/da/messages.json
index 3da61a598ce..d3463f567c0 100644
--- a/apps/browser/src/_locales/da/messages.json
+++ b/apps/browser/src/_locales/da/messages.json
@@ -2264,7 +2264,7 @@
"message": "Sådan autoudfyldes"
},
"autofillSelectInfoWithCommand": {
- "message": "Vælg et element fra denne side eller brug genvejen: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Vælg et element fra denne side eller opret en genvej i Indstillinger."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Forstået"
diff --git a/apps/browser/src/_locales/de/messages.json b/apps/browser/src/_locales/de/messages.json
index 28b7a3729d0..1b94bf0270f 100644
--- a/apps/browser/src/_locales/de/messages.json
+++ b/apps/browser/src/_locales/de/messages.json
@@ -682,7 +682,7 @@
"message": "Greife über einen Rechtsklick auf die Erstellung von Passwörtern und passende Zugangsdaten für die Website zu."
},
"contextMenuItemDescAlt": {
- "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ "message": "Verwende einen Rechtsklick, um auf die Passwortgenerierung und die passenden Zugangsdaten für die Website zuzugreifen. Gilt für alle angemeldeten Konten."
},
"defaultUriMatchDetection": {
"message": "Standard URI-Übereinstimmungserkennung",
@@ -698,7 +698,7 @@
"message": "Ändere das Farbschema der Anwendung."
},
"themeDescAlt": {
- "message": "Change the application's color theme. Applies to all logged in accounts."
+ "message": "Ändere das Farbschema der Anwendung. Gilt für alle angemeldeten Konten."
},
"dark": {
"message": "Dunkel",
@@ -1021,7 +1021,7 @@
"message": "URLs der Umgebung gespeichert"
},
"showAutoFillMenuOnFormFields": {
- "message": "Show auto-fill menu on form fields",
+ "message": "Auto-Ausfüllen Menü in Formularfeldern anzeigen",
"description": "Represents the message for allowing the user to enable the auto-fill overlay"
},
"showAutoFillMenuOnFormFieldsDescAlt": {
@@ -1032,11 +1032,11 @@
"description": "Overlay setting select option for disabling autofill overlay"
},
"autofillOverlayVisibilityOnFieldFocus": {
- "message": "When field is selected (on focus)",
+ "message": "Wenn Feld ausgewählt ist (im Fokus)",
"description": "Overlay appearance select option for showing the field on focus of the input element"
},
"autofillOverlayVisibilityOnButtonClick": {
- "message": "When auto-fill icon is selected",
+ "message": "Wenn das Auto-Ausfüllen Symbol ausgewählt ist",
"description": "Overlay appearance select option for showing the field on click of the overlay icon"
},
"enableAutoFillOnPageLoad": {
@@ -1963,11 +1963,11 @@
"message": "Ordner auswählen..."
},
"orgPermissionsUpdatedMustSetPassword": {
- "message": "Your organization permissions were updated, requiring you to set a master password.",
+ "message": "Deine Organisationsberechtigungen wurden aktualisiert und verlangen, dass du ein Master-Passwort festlegen musst.",
"description": "Used as a card title description on the set password page to explain why the user is there"
},
"orgRequiresYouToSetPassword": {
- "message": "Your organization requires you to set a master password.",
+ "message": "Deine Organisation verlangt, dass du ein Master-Passwort festlegen musst.",
"description": "Used as a card title description on the set password page to explain why the user is there"
},
"hours": {
@@ -2264,7 +2264,7 @@
"message": "So funktioniert Auto-Ausfüllen"
},
"autofillSelectInfoWithCommand": {
- "message": "Wähle einen Eintrag von dieser Seite aus oder verwende das Tastaturkürzel: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Wähle einen Eintrag von dieser Seite aus oder lege ein Tastaturkürzel in den Einstellungen fest."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Verstanden"
@@ -2507,7 +2507,7 @@
"description": "Page title in overlay"
},
"unlockYourAccountToViewMatchingLogins": {
- "message": "Unlock your account to view matching logins",
+ "message": "Entsperre dein Konto, um passende Zugangsdaten anzuzeigen",
"description": "Text to display in overlay when the account is locked."
},
"unlockAccount": {
@@ -2519,7 +2519,7 @@
"description": "Screen reader text for when overlay item is in focused"
},
"partialUsername": {
- "message": "Partial username",
+ "message": "Teil-Benutzername",
"description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
},
"noItemsToShow": {
@@ -2535,19 +2535,19 @@
"description": "Screen reader text (aria-label) for new item button in overlay"
},
"bitwardenOverlayMenuAvailable": {
- "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "message": "Bitwarden Auto-Ausfüllen Menü verfügbar. Drücke die Pfeiltaste nach unten zum Auswählen.",
"description": "Screen reader text for announcing when the overlay opens on the page"
},
"overrideBrowserAutofillTitle": {
- "message": "Override browser auto-fill?",
+ "message": "Auto-Ausfüllen Funktion des Browsers überschreiben?",
"description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
},
"overrideBrowserAutofillDescription": {
- "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "message": "Wenn du diese Einstellung deaktivierst, kann dies zu Konflikten zwischen dem Bitwarden Auto-Ausfüllen Menü und dem des Browsers führen.",
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
},
"overrideBrowserAutofillPrivacyRequiredDescription": {
- "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "message": "Wenn du diese Einstellung deaktivierst, kann es zu Konflikten zwischen dem Bitwarden Auto-Ausfüllen Menü und dem des Browsers kommen. Wenn du diese Einstellung aktivierst, wird die Bitwarden-Erweiterung neu gestartet.",
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
},
"turnOn": {
@@ -2557,15 +2557,15 @@
"message": "Ignorieren"
},
"overrideBrowserAutoFillSettings": {
- "message": "Override browser auto-fill settings",
+ "message": "Auto-Ausfüllen Einstellungen des Browsers überschreiben",
"description": "Label for the setting that allows overriding the default browser autofill settings"
},
"extensionPrivacyPermissionNotGrantedTitle": {
- "message": "Unable to override browser auto-fill",
+ "message": "Konnte Auto-Ausfüllen Einstellungen des Browsers nicht überschreiben",
"description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
},
"extensionPrivacyPermissionNotGrantedDescription": {
- "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "message": "Bitwarden muss Zugriff auf die Datenschutz-Berechtigung der Erweiterung haben, um die Auto-Ausfüllen-Einstellungen des Browsers zu überschreiben.",
"description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
},
"importData": {
diff --git a/apps/browser/src/_locales/el/messages.json b/apps/browser/src/_locales/el/messages.json
index b72c72605c6..8eb2367779a 100644
--- a/apps/browser/src/_locales/el/messages.json
+++ b/apps/browser/src/_locales/el/messages.json
@@ -2264,7 +2264,7 @@
"message": "Πώς να συμπληρώσετε αυτόματα"
},
"autofillSelectInfoWithCommand": {
- "message": "Επιλέξτε ένα στοιχείο από αυτή τη σελίδα ή χρησιμοποιήστε τη συντόμευση: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Επιλέξτε ένα στοιχείο από αυτή τη σελίδα ή ορίστε μια συντόμευση στις ρυθμίσεις."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Το κατάλαβα"
diff --git a/apps/browser/src/_locales/en_GB/messages.json b/apps/browser/src/_locales/en_GB/messages.json
index 79c0e3dbc49..ae38637c278 100644
--- a/apps/browser/src/_locales/en_GB/messages.json
+++ b/apps/browser/src/_locales/en_GB/messages.json
@@ -2264,7 +2264,7 @@
"message": "How to auto-fill"
},
"autofillSelectInfoWithCommand": {
- "message": "Select an item from this page or use the shortcut: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Select an item from this page or set a shortcut in settings."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Got it"
diff --git a/apps/browser/src/_locales/es/messages.json b/apps/browser/src/_locales/es/messages.json
index e41e1a3abfa..f3da2ad615d 100644
--- a/apps/browser/src/_locales/es/messages.json
+++ b/apps/browser/src/_locales/es/messages.json
@@ -2264,7 +2264,7 @@
"message": "Cómo autorellenar"
},
"autofillSelectInfoWithCommand": {
- "message": "Seleccione un elemento de esta página o utilice el acceso directo: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Seleccione un elemento de esta página o establezca un acceso directo en los ajustes."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Entendido"
diff --git a/apps/browser/src/_locales/et/messages.json b/apps/browser/src/_locales/et/messages.json
index c3fa407c916..561d5e9fbca 100644
--- a/apps/browser/src/_locales/et/messages.json
+++ b/apps/browser/src/_locales/et/messages.json
@@ -2264,7 +2264,7 @@
"message": "Kuidas automaatselt täita"
},
"autofillSelectInfoWithCommand": {
- "message": "Vali sellele lehelt kirje või kasuta otseteed: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Vali sellelt lehelt kirje või määra seadetes otsetee."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Selge"
diff --git a/apps/browser/src/_locales/fa/messages.json b/apps/browser/src/_locales/fa/messages.json
index 95343071a65..4ab6946cbaf 100644
--- a/apps/browser/src/_locales/fa/messages.json
+++ b/apps/browser/src/_locales/fa/messages.json
@@ -2264,7 +2264,7 @@
"message": "نحوه پر کردن خودکار"
},
"autofillSelectInfoWithCommand": {
- "message": "یک مورد را از این صفحه انتخاب کنید یا از میانبر استفاده کنید: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "یک مورد را از این صفحه انتخاب کنید یا یک میانبر در تنظیمات تنظیم کنید."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "متوجه شدم"
diff --git a/apps/browser/src/_locales/fi/messages.json b/apps/browser/src/_locales/fi/messages.json
index e4e07528251..d1d186200dd 100644
--- a/apps/browser/src/_locales/fi/messages.json
+++ b/apps/browser/src/_locales/fi/messages.json
@@ -2264,7 +2264,7 @@
"message": "Miten täytetään automaattisesti"
},
"autofillSelectInfoWithCommand": {
- "message": "Valitse tälle sivulle sopiva kohde tai käytä pikanäppäintä $COMMAND$.",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Valitse tälle sivulle sopiva kohde tai määritä pikanäppäin asetuksista."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Selvä"
diff --git a/apps/browser/src/_locales/fr/messages.json b/apps/browser/src/_locales/fr/messages.json
index 489303d13cb..eff9cad4687 100644
--- a/apps/browser/src/_locales/fr/messages.json
+++ b/apps/browser/src/_locales/fr/messages.json
@@ -658,7 +658,7 @@
"message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
},
"enableUsePasskeys": {
- "message": "Ask to save and use passkeys"
+ "message": "Demander à enregistrer et utiliser les mots de passe"
},
"usePasskeysDesc": {
"message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
@@ -1025,7 +1025,7 @@
"description": "Represents the message for allowing the user to enable the auto-fill overlay"
},
"showAutoFillMenuOnFormFieldsDescAlt": {
- "message": "Applies to all logged in accounts."
+ "message": "Appliquer à tous les comptes connectés."
},
"autofillOverlayVisibilityOff": {
"message": "Off",
@@ -2264,7 +2264,7 @@
"message": "Comment saisir automatiquement"
},
"autofillSelectInfoWithCommand": {
- "message": "Sélectionnez un élément depuis cette page ou utilisez le raccourci : $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Sélectionnez un élément depuis cette page ou définissez un raccourci dans les paramètres."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Compris"
@@ -2511,11 +2511,11 @@
"description": "Text to display in overlay when the account is locked."
},
"unlockAccount": {
- "message": "Unlock account",
+ "message": "Déverrouiller le compte",
"description": "Button text to display in overlay when the account is locked."
},
"fillCredentialsFor": {
- "message": "Fill credentials for",
+ "message": "Remplir les identifiants pour",
"description": "Screen reader text for when overlay item is in focused"
},
"partialUsername": {
@@ -2523,11 +2523,11 @@
"description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
},
"noItemsToShow": {
- "message": "No items to show",
+ "message": "Aucun élément à afficher",
"description": "Text to show in overlay if there are no matching items"
},
"newItem": {
- "message": "New item",
+ "message": "Nouvel élément",
"description": "Button text to display in overlay when there are no matching items"
},
"addNewVaultItem": {
@@ -2551,10 +2551,10 @@
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
},
"turnOn": {
- "message": "Turn on"
+ "message": "Activer"
},
"ignore": {
- "message": "Ignore"
+ "message": "Ignorer"
},
"overrideBrowserAutoFillSettings": {
"message": "Override browser auto-fill settings",
@@ -2573,7 +2573,7 @@
"description": "Used for the header of the import dialog, the import button and within the file-password-prompt"
},
"importError": {
- "message": "Import error"
+ "message": "Erreur lors de l'importation"
},
"importErrorDesc": {
"message": "Il y a eu un problème avec les données que vous avez essayé d'importer. Veuillez résoudre les erreurs listées ci-dessous dans votre fichier source et réessayer."
@@ -2585,10 +2585,10 @@
"message": "Description"
},
"importSuccess": {
- "message": "Data successfully imported"
+ "message": "Données importées avec succès"
},
"importSuccessNumberOfItems": {
- "message": "A total of $AMOUNT$ items were imported.",
+ "message": "Un total de $AMOUNT$ élément(s) a été importé.",
"placeholders": {
"amount": {
"content": "$1",
@@ -2609,10 +2609,10 @@
}
},
"importFormatError": {
- "message": "Data is not formatted correctly. Please check your import file and try again."
+ "message": "Les données ne sont pas formatées correctement. Veuillez vérifier votre fichier d'origine et réessayer."
},
"importNothingError": {
- "message": "Nothing was imported."
+ "message": "Rien n'a été importé."
},
"importEncKeyError": {
"message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data."
@@ -2624,16 +2624,16 @@
"message": "Import destination"
},
"learnAboutImportOptions": {
- "message": "Learn about your import options"
+ "message": "En savoir plus sur vos options d'importation"
},
"selectImportFolder": {
- "message": "Select a folder"
+ "message": "Choisir un dossier"
},
"selectImportCollection": {
- "message": "Select a collection"
+ "message": "Sélectionner une collection"
},
"importTargetHint": {
- "message": "Select this option if you want the imported file contents moved to a $DESTINATION$",
+ "message": "Sélectionnez cette option si vous voulez que le contenu du fichier importé soit déplacé vers un(e) $DESTINATION$",
"description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.",
"placeholders": {
"destination": {
@@ -2652,7 +2652,7 @@
"message": "Select the import file"
},
"chooseFile": {
- "message": "Choose File"
+ "message": "Choisir le fichier"
},
"noFileChosen": {
"message": "Aucun fichier choisi"
diff --git a/apps/browser/src/_locales/hi/messages.json b/apps/browser/src/_locales/hi/messages.json
index bf3802d6848..d24eacb14b0 100644
--- a/apps/browser/src/_locales/hi/messages.json
+++ b/apps/browser/src/_locales/hi/messages.json
@@ -658,10 +658,10 @@
"message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
},
"enableUsePasskeys": {
- "message": "Ask to save and use passkeys"
+ "message": "पासकी सहेजने और उपयोग करने के लिए पूछें"
},
"usePasskeysDesc": {
- "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ "message": "नई पासकी सहेजने के लिए कहें या अपनी तिजोरी में संग्रहीत पासकी से लॉग इन करें। सभी लॉग इन किए गए खातों पर लागू होता है।"
},
"notificationChangeDesc": {
"message": "क्या आप बिटवर्डन में इस पासवर्ड को अपडेट करना चाहते हैं?"
diff --git a/apps/browser/src/_locales/hr/messages.json b/apps/browser/src/_locales/hr/messages.json
index e33f89bc214..571351bfd46 100644
--- a/apps/browser/src/_locales/hr/messages.json
+++ b/apps/browser/src/_locales/hr/messages.json
@@ -2264,7 +2264,7 @@
"message": "Kako auto-ispuniti"
},
"autofillSelectInfoWithCommand": {
- "message": "Odaberi stavku s ove stranice ili koristi prečac $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Odaberi stavku s ove stranice ili namjesti prečac u postavkama."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "U redu"
diff --git a/apps/browser/src/_locales/hu/messages.json b/apps/browser/src/_locales/hu/messages.json
index 001d5897893..db8ec6ec104 100644
--- a/apps/browser/src/_locales/hu/messages.json
+++ b/apps/browser/src/_locales/hu/messages.json
@@ -2264,7 +2264,7 @@
"message": "Az automatikus kitöltés működése"
},
"autofillSelectInfoWithCommand": {
- "message": "Válasszunk egy elemet ezen az oldalon vagy használjuk a parancsikont: $COMMAND$.",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Válasszunk egy elemet ezen az oldalon vagy állítsunk be parancsikont a beállításokban."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Rendben"
diff --git a/apps/browser/src/_locales/it/messages.json b/apps/browser/src/_locales/it/messages.json
index e0ee99a65e1..841d8b249fc 100644
--- a/apps/browser/src/_locales/it/messages.json
+++ b/apps/browser/src/_locales/it/messages.json
@@ -2264,7 +2264,7 @@
"message": "Come riempire automaticamente"
},
"autofillSelectInfoWithCommand": {
- "message": "Seleziona un elemento da questa pagina o usa la scorciatoia: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Seleziona un elemento da questa pagina o imposta una scorciatoia nelle impostazioni."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Ok"
diff --git a/apps/browser/src/_locales/ja/messages.json b/apps/browser/src/_locales/ja/messages.json
index 75fc8b2c483..0572e2b6462 100644
--- a/apps/browser/src/_locales/ja/messages.json
+++ b/apps/browser/src/_locales/ja/messages.json
@@ -2264,7 +2264,7 @@
"message": "自動入力する方法"
},
"autofillSelectInfoWithCommand": {
- "message": "このページからアイテムを選択するか、ショートカットを使用してください: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "このページからアイテムを選択するか、設定でショートカットを設定してください。"
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "了解"
diff --git a/apps/browser/src/_locales/lt/messages.json b/apps/browser/src/_locales/lt/messages.json
index 7c4dbf790e2..2b3e5c13ebd 100644
--- a/apps/browser/src/_locales/lt/messages.json
+++ b/apps/browser/src/_locales/lt/messages.json
@@ -2264,7 +2264,7 @@
"message": "Kaip automatiškai užpildyti"
},
"autofillSelectInfoWithCommand": {
- "message": "Pasirink elementą iš šio puslapio arba naudok trumpąjį klavišą: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
diff --git a/apps/browser/src/_locales/lv/messages.json b/apps/browser/src/_locales/lv/messages.json
index 27bf418fe9d..21163a395ad 100644
--- a/apps/browser/src/_locales/lv/messages.json
+++ b/apps/browser/src/_locales/lv/messages.json
@@ -620,7 +620,7 @@
"message": "Vaicāt pievienot vienumu, ja tāds nav atrodams glabātavā."
},
"addLoginNotificationDescAlt": {
- "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ "message": "Vaicāt, vai pievienot vienumu, ja glabātavā tāds nav atrodams. Attiecas uz visiem pieslēgtajiem kontiem."
},
"showCardsCurrentTab": {
"message": "Rādīt kartes cilnes lapā"
@@ -655,13 +655,13 @@
"message": "Vaicāt atjaunināt pieteikšanās vienuma paroli, ja vietnē ir noteiktas tās izmaiņas."
},
"changedPasswordNotificationDescAlt": {
- "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ "message": "Vaicāt, vai atjaunināt pieteikšanās vienuma paroli, kad tīmekļa vietnē ir noteikta atšķirība. Attiecas uzvisiem pieslēgtajiem kontiem."
},
"enableUsePasskeys": {
- "message": "Ask to save and use passkeys"
+ "message": "Vaicāt, vai saglabāt un izmantot piekļuves atslēgas"
},
"usePasskeysDesc": {
- "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ "message": "Vaicāt, vai saglabāt jaunas piekļuves atslēgas vai pieteikties ar glabātavā esošajām piekļuves atslēgām. Attiecas uz visiem pieslēgtajiem kontiem."
},
"notificationChangeDesc": {
"message": "Vai atjaunināt šo paroli Bitwarden?"
@@ -682,7 +682,7 @@
"message": "Izmantot orējo klikšķi, lai piekļūtu paroļu veidošanai un vietnei atbilstošajiem pieteikšanās vienumiem. "
},
"contextMenuItemDescAlt": {
- "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ "message": "Izmantot orējo klikšķi, lai piekļūtu paroļu veidošanai un tīmekļa vietnei atbilstošajiem pieteikšanās vienumiem. Attiecas uz visiem pieslēgtajiem kontiem."
},
"defaultUriMatchDetection": {
"message": "Noklusējuma URI atbilstības noteikšana",
@@ -698,7 +698,7 @@
"message": "Mainīt lietotnes izskata krāsas."
},
"themeDescAlt": {
- "message": "Change the application's color theme. Applies to all logged in accounts."
+ "message": "Mainīt lietotnes izskata krāsas. Attiecas uz visiem pieslēgtajiem kontiem."
},
"dark": {
"message": "Tumšs",
@@ -1025,7 +1025,7 @@
"description": "Represents the message for allowing the user to enable the auto-fill overlay"
},
"showAutoFillMenuOnFormFieldsDescAlt": {
- "message": "Applies to all logged in accounts."
+ "message": "Attiecas uz visiem pieslēgtajiem kontiem."
},
"autofillOverlayVisibilityOff": {
"message": "Izslēgts",
@@ -1700,7 +1700,7 @@
"message": "Bitwarden nevaicās saglabāt pieteikšanās datus šiem domēniem. Ir jāpārlādē lapa, lai izmaiņas iedarbotos."
},
"excludedDomainsDescAlt": {
- "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ "message": "Bitwarden nevaicās saglabāt pieteikšanās datus šiem domēniem visiem pieslēgtajiem kontiem. Ir jāpārlādē lapa, lai iedarbotos izmaiņas."
},
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ nav derīgs domēns",
@@ -2264,7 +2264,7 @@
"message": "Kā automātiski aizpildīt"
},
"autofillSelectInfoWithCommand": {
- "message": "Jāatlasa vienums šai lapai vai jāizmanto īsceļš: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Jāatlasa vienums šai lapai vai iestatījumos jāuzstāda īsceļš."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Sapratu"
diff --git a/apps/browser/src/_locales/nb/messages.json b/apps/browser/src/_locales/nb/messages.json
index 90f38ffb558..ea42337a129 100644
--- a/apps/browser/src/_locales/nb/messages.json
+++ b/apps/browser/src/_locales/nb/messages.json
@@ -2264,7 +2264,7 @@
"message": "Hvordan bruke auto-utfylling"
},
"autofillSelectInfoWithCommand": {
- "message": "Velg et element fra denne siden eller bruk snarveien: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Velg et element fra denne siden eller angi en snarvei i innstillingene."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Skjønner"
diff --git a/apps/browser/src/_locales/nl/messages.json b/apps/browser/src/_locales/nl/messages.json
index d4b28d646e1..7303f8f5080 100644
--- a/apps/browser/src/_locales/nl/messages.json
+++ b/apps/browser/src/_locales/nl/messages.json
@@ -2264,7 +2264,7 @@
"message": "Hoe automatisch aanvullen"
},
"autofillSelectInfoWithCommand": {
- "message": "Selecteer een item op deze pagina of gebruik de snelkoppeling: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Selecteer een item op deze pagina of stel een snelkoppeling in via instellingen."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Ik snap het"
diff --git a/apps/browser/src/_locales/pl/messages.json b/apps/browser/src/_locales/pl/messages.json
index fa0ec8ee21a..6ed75cbf58f 100644
--- a/apps/browser/src/_locales/pl/messages.json
+++ b/apps/browser/src/_locales/pl/messages.json
@@ -2264,7 +2264,7 @@
"message": "Jak autouzupełniać"
},
"autofillSelectInfoWithCommand": {
- "message": "Wybierz element z tej strony lub użyj skrótu: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Wybierz element z tej strony lub ustaw skrót w ustawieniach."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Rozumiem"
diff --git a/apps/browser/src/_locales/pt_BR/messages.json b/apps/browser/src/_locales/pt_BR/messages.json
index 0635932c516..9d5bab1cd5c 100644
--- a/apps/browser/src/_locales/pt_BR/messages.json
+++ b/apps/browser/src/_locales/pt_BR/messages.json
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Selecione um item desta página ou defina um atalho nas configurações."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Entendi"
diff --git a/apps/browser/src/_locales/ro/messages.json b/apps/browser/src/_locales/ro/messages.json
index 04245c91c3c..3c655c51e5d 100644
--- a/apps/browser/src/_locales/ro/messages.json
+++ b/apps/browser/src/_locales/ro/messages.json
@@ -2264,7 +2264,7 @@
"message": "Instrucțiuni de auto-completare"
},
"autofillSelectInfoWithCommand": {
- "message": "Selectați un element din această pagină sau utilizați comanda rapidă: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Selectați un element din această pagină sau setați o comandă rapidă în setări."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Am înțeles"
diff --git a/apps/browser/src/_locales/sk/messages.json b/apps/browser/src/_locales/sk/messages.json
index 37be7358d43..ca75f2eeefd 100644
--- a/apps/browser/src/_locales/sk/messages.json
+++ b/apps/browser/src/_locales/sk/messages.json
@@ -2264,7 +2264,7 @@
"message": "Ako používať automatické vypĺňanie"
},
"autofillSelectInfoWithCommand": {
- "message": "Vyberte položku z tejto stránky, alebo použite skratku: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Vyberte položku z tejto stránky, alebo nastavte skratku v nastaveniach."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Chápem"
diff --git a/apps/browser/src/_locales/sl/messages.json b/apps/browser/src/_locales/sl/messages.json
index 34bb3af86bc..a2cff114f7b 100644
--- a/apps/browser/src/_locales/sl/messages.json
+++ b/apps/browser/src/_locales/sl/messages.json
@@ -2264,7 +2264,7 @@
"message": "Kako uporabljati samodejno izpolnjevanje"
},
"autofillSelectInfoWithCommand": {
- "message": "Izberite element na tej strani ali pa uporabite bližnjico $COMMAND$.",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Izberite element na tej strani ali pa nastavite bližnjico v nastavitvah."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Razumem"
diff --git a/apps/browser/src/_locales/sr/messages.json b/apps/browser/src/_locales/sr/messages.json
index 0d87b59d4ee..5a7a76a728d 100644
--- a/apps/browser/src/_locales/sr/messages.json
+++ b/apps/browser/src/_locales/sr/messages.json
@@ -2264,7 +2264,7 @@
"message": "Како ауто-попуњавати"
},
"autofillSelectInfoWithCommand": {
- "message": "Изаберите ставку са ове странице или користите пречицу: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Изаберите ставку са ове странице или поставите пречицу у подешавањима."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Разумем"
diff --git a/apps/browser/src/_locales/sv/messages.json b/apps/browser/src/_locales/sv/messages.json
index d62aa8e6496..67dadff95ae 100644
--- a/apps/browser/src/_locales/sv/messages.json
+++ b/apps/browser/src/_locales/sv/messages.json
@@ -2264,7 +2264,7 @@
"message": "Hur du fyller i automatiskt"
},
"autofillSelectInfoWithCommand": {
- "message": "Välj ett objekt från denna sida eller använd genvägen: $COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Välj ett objekt från den här sidan eller ange en genväg i inställningarna."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Förstått"
@@ -2527,11 +2527,11 @@
"description": "Text to show in overlay if there are no matching items"
},
"newItem": {
- "message": "New item",
+ "message": "Nytt objekt",
"description": "Button text to display in overlay when there are no matching items"
},
"addNewVaultItem": {
- "message": "Add new vault item",
+ "message": "Lägg till nytt valvobjekt",
"description": "Screen reader text (aria-label) for new item button in overlay"
},
"bitwardenOverlayMenuAvailable": {
@@ -2554,7 +2554,7 @@
"message": "Turn on"
},
"ignore": {
- "message": "Ignore"
+ "message": "Ignorera"
},
"overrideBrowserAutoFillSettings": {
"message": "Override browser auto-fill settings",
diff --git a/apps/browser/src/_locales/tr/messages.json b/apps/browser/src/_locales/tr/messages.json
index 4253fa3b510..af6f2053972 100644
--- a/apps/browser/src/_locales/tr/messages.json
+++ b/apps/browser/src/_locales/tr/messages.json
@@ -658,10 +658,10 @@
"message": "Bir web sitesinde bir değişiklik tespit edildiğinde oturum açma şifresinin güncellenmesini isteyin. Oturum açmış tüm hesaplar için geçerlidir."
},
"enableUsePasskeys": {
- "message": "Ask to save and use passkeys"
+ "message": "Geçiş anahtarlarını kaydet ve kullan"
},
"usePasskeysDesc": {
- "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ "message": "Yeni geçiş anahtarlarını kaydetmek ve kasanızda saklanan geçiş anahtarlarıyla giriş yapmak için sor. Giriş yapmış tüm hesaplar için geçerlidir."
},
"notificationChangeDesc": {
"message": "Bu parolayı Bitwarden'da güncellemek ister misiniz?"
@@ -2264,7 +2264,7 @@
"message": "Otomatik doldurma nasıl yapılır?"
},
"autofillSelectInfoWithCommand": {
- "message": "Bu sayfadan bir kayıt seçin veya $COMMAND$ kısayolunu kullanın.",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "Bu sayfadan bir kayıt seçin veya ayarlardan bir kısayol ayarlayın."
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "Anladım"
diff --git a/apps/browser/src/_locales/uk/messages.json b/apps/browser/src/_locales/uk/messages.json
index 0f581ad4e92..295b51dc2fa 100644
--- a/apps/browser/src/_locales/uk/messages.json
+++ b/apps/browser/src/_locales/uk/messages.json
@@ -991,7 +991,7 @@
"message": "Середовище власного хостингу"
},
"selfHostedEnvironmentFooter": {
- "message": "Вкажіть основну URL-адресу Bitwarden на вашому сервері."
+ "message": "Вкажіть основну URL-адресу Bitwarden, встановленого на локальному хостингу."
},
"customEnvironment": {
"message": "Власне середовище"
diff --git a/apps/browser/src/_locales/zh_CN/messages.json b/apps/browser/src/_locales/zh_CN/messages.json
index a3f4c0043d0..6f3d57c77e7 100644
--- a/apps/browser/src/_locales/zh_CN/messages.json
+++ b/apps/browser/src/_locales/zh_CN/messages.json
@@ -620,7 +620,7 @@
"message": "在密码库中找不到匹配项目时询问添加一个。"
},
"addLoginNotificationDescAlt": {
- "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ "message": "如果在密码库中找不到项目,询问添加一个。适用于所有已登录的账户。"
},
"showCardsCurrentTab": {
"message": "在标签页上显示支付卡"
@@ -655,13 +655,13 @@
"message": "在网站上检测到更改时询问更新登录密码。"
},
"changedPasswordNotificationDescAlt": {
- "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ "message": "当在网站上检测到更改时,询问更新登录项目的密码。适用于所有已登录的账户。"
},
"enableUsePasskeys": {
- "message": "Ask to save and use passkeys"
+ "message": "询问保存和使用通行密钥"
},
"usePasskeysDesc": {
- "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ "message": "询问保存新的通行密钥或使用存储在密码库中的通行密钥登录。适用于所有已登录的账户。"
},
"notificationChangeDesc": {
"message": "是否要在 Bitwarden 中更新此密码?"
@@ -679,10 +679,10 @@
"message": "显示上下文菜单选项"
},
"contextMenuItemDesc": {
- "message": "使用辅助点击来访问密码生成和匹配的网站登录项目。 "
+ "message": "使用辅助点击来访问密码生成和匹配的网站登录项目。"
},
"contextMenuItemDescAlt": {
- "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ "message": "使用辅助点击来访问密码生成和匹配的网站登录项目。适用于所有已登录的账户。"
},
"defaultUriMatchDetection": {
"message": "默认 URI 匹配检测",
@@ -1021,7 +1021,7 @@
"message": "环境 URL 已保存"
},
"showAutoFillMenuOnFormFields": {
- "message": "在表单字段中显示自动填充菜单",
+ "message": "在表单字段上显示自动填充菜单",
"description": "Represents the message for allowing the user to enable the auto-fill overlay"
},
"showAutoFillMenuOnFormFieldsDescAlt": {
@@ -1032,7 +1032,7 @@
"description": "Overlay setting select option for disabling autofill overlay"
},
"autofillOverlayVisibilityOnFieldFocus": {
- "message": "当选中字段时 (焦点)",
+ "message": "选中字段时(焦点上)",
"description": "Overlay appearance select option for showing the field on focus of the input element"
},
"autofillOverlayVisibilityOnButtonClick": {
@@ -1700,7 +1700,7 @@
"message": "Bitwarden 将不会询问是否为这些域名保存登录信息。您必须刷新页面才能使更改生效。"
},
"excludedDomainsDescAlt": {
- "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ "message": "Bitwarden 不会询问保存所有已登录的账户的这些域名的登录信息。您必须刷新页面才能使更改生效。"
},
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ 不是一个有效的域名",
@@ -2264,7 +2264,7 @@
"message": "如何自动填充"
},
"autofillSelectInfoWithCommand": {
- "message": "从此页面选择一个项目,或使用快捷方式:$COMMAND$",
+ "message": "从此界面选择一个项目,使用快捷方式 $COMMAND$,或探索设置中的其他选项。",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "从此页面选择一个项目,或者在设置中设置一个快捷方式。"
+ "message": "从此界面选择一个项目,或探索设置中的其他选项。"
},
"gotIt": {
"message": "明白了"
@@ -2539,15 +2539,15 @@
"description": "Screen reader text for announcing when the overlay opens on the page"
},
"overrideBrowserAutofillTitle": {
- "message": "覆盖浏览器自动填充?",
+ "message": "覆盖浏览器自动填充吗?",
"description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
},
"overrideBrowserAutofillDescription": {
- "message": "离开此设置可能会在 Bitwarden 自动填充菜单和您的浏览器之间造成冲突。",
+ "message": "关闭此设置可能会导致 Bitwarden 自动填充菜单与浏览器菜单发生冲突。",
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
},
"overrideBrowserAutofillPrivacyRequiredDescription": {
- "message": "离开此设置可能会导致 Bitwarden 自动填充菜单和您的浏览器之间的冲突。打开此选项将重启Bitwarden扩展。",
+ "message": "关闭此设置可能会导致 Bitwarden 自动填充菜单与浏览器菜单发生冲突。打开此选项将重新启动 Bitwarden 扩展。",
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
},
"turnOn": {
@@ -2557,7 +2557,7 @@
"message": "忽略"
},
"overrideBrowserAutoFillSettings": {
- "message": "覆盖浏览器的自动填充设置?",
+ "message": "覆盖浏览器的自动填充设置",
"description": "Label for the setting that allows overriding the default browser autofill settings"
},
"extensionPrivacyPermissionNotGrantedTitle": {
diff --git a/apps/browser/src/_locales/zh_TW/messages.json b/apps/browser/src/_locales/zh_TW/messages.json
index 063fd8ca134..492d6aec22a 100644
--- a/apps/browser/src/_locales/zh_TW/messages.json
+++ b/apps/browser/src/_locales/zh_TW/messages.json
@@ -620,7 +620,7 @@
"message": "在密碼庫中找不到相符的項目時詢問是否新增項目。"
},
"addLoginNotificationDescAlt": {
- "message": "Ask to add an item if one isn't found in your vault. Applies to all logged in accounts."
+ "message": "如果在您的密碼庫中找不到項目,則詢問是否新增項目。適用於所有已登入的帳戶。"
},
"showCardsCurrentTab": {
"message": "於分頁頁面顯示支付卡"
@@ -655,13 +655,13 @@
"message": "偵測到網站密碼變更時,詢問是否更新登入資料密碼。"
},
"changedPasswordNotificationDescAlt": {
- "message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
+ "message": "當偵測到網站上的變更時,詢問是否更新登入的密碼。適用於所有已登入的帳戶。"
},
"enableUsePasskeys": {
- "message": "Ask to save and use passkeys"
+ "message": "詢問是否儲存並使用密碼金鑰"
},
"usePasskeysDesc": {
- "message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
+ "message": "詢問是否儲存新的密碼金鑰或使用儲存在您的密碼庫中的密碼金鑰登入。適用於所有已登入的帳戶。"
},
"notificationChangeDesc": {
"message": "是否要在 Bitwarden 中更新此密碼?"
@@ -679,10 +679,10 @@
"message": "顯示內容選單選項"
},
"contextMenuItemDesc": {
- "message": "使用輔助點選(右鍵選單)來存取密碼產生和匹配的網站登入項目。 "
+ "message": "使用輔助點選(右鍵選單)來存取密碼產生和符合的網站登入項目。 "
},
"contextMenuItemDescAlt": {
- "message": "Use a secondary click to access password generation and matching logins for the website. Applies to all logged in accounts."
+ "message": "使用右鍵點選來存取密碼產生和網站的符合登入資訊。適用於所有已登入的帳戶。"
},
"defaultUriMatchDetection": {
"message": "預設的 URI 一致性偵測",
@@ -698,7 +698,7 @@
"message": "變更應用程式的主題色彩。"
},
"themeDescAlt": {
- "message": "Change the application's color theme. Applies to all logged in accounts."
+ "message": "變更應用程式的主題色彩。適用於所有已登入的帳戶。"
},
"dark": {
"message": "深色",
@@ -1021,22 +1021,22 @@
"message": "環境 URL 已儲存"
},
"showAutoFillMenuOnFormFields": {
- "message": "Show auto-fill menu on form fields",
+ "message": "在表單欄位上顯示自動填入選單",
"description": "Represents the message for allowing the user to enable the auto-fill overlay"
},
"showAutoFillMenuOnFormFieldsDescAlt": {
- "message": "Applies to all logged in accounts."
+ "message": "適用於所有已登入的帳戶。"
},
"autofillOverlayVisibilityOff": {
- "message": "Off",
+ "message": "關閉",
"description": "Overlay setting select option for disabling autofill overlay"
},
"autofillOverlayVisibilityOnFieldFocus": {
- "message": "When field is selected (on focus)",
+ "message": "當欄位被選取時(在焦點上)",
"description": "Overlay appearance select option for showing the field on focus of the input element"
},
"autofillOverlayVisibilityOnButtonClick": {
- "message": "When auto-fill icon is selected",
+ "message": "當選取自動填入圖示時",
"description": "Overlay appearance select option for showing the field on click of the overlay icon"
},
"enableAutoFillOnPageLoad": {
@@ -1046,7 +1046,7 @@
"message": "網頁載入時如果偵測到登入表單,則執行自動填入。"
},
"experimentalFeature": {
- "message": "被入侵或不可信任的網站可不當利用頁面加載時的自動填入功能。"
+ "message": "被入侵或不可信任的網站可不當利用頁面載入時的自動填入功能。"
},
"learnMoreAboutAutofill": {
"message": "進一步瞭解「自動填入」功能"
@@ -1700,7 +1700,7 @@
"message": "Bitwarden 不會要求儲存這些網域的詳細登入資訊。必須重新整理頁面才能使變更生效。"
},
"excludedDomainsDescAlt": {
- "message": "Bitwarden will not ask to save login details for these domains for all logged in accounts. You must refresh the page for changes to take effect."
+ "message": "對於所有已登入的帳戶,Bitwarden 不會詢問是否儲存這些網域的登入資訊。您必須重新整理頁面以使變更生效。"
},
"excludedDomainsInvalidDomain": {
"message": "$DOMAIN$ 不是一個有效的網域",
@@ -1963,11 +1963,11 @@
"message": "選擇資料夾⋯"
},
"orgPermissionsUpdatedMustSetPassword": {
- "message": "Your organization permissions were updated, requiring you to set a master password.",
+ "message": "您的組織權限已更新,需要您設定主密碼。",
"description": "Used as a card title description on the set password page to explain why the user is there"
},
"orgRequiresYouToSetPassword": {
- "message": "Your organization requires you to set a master password.",
+ "message": "您的組織要求您設定主密碼。",
"description": "Used as a card title description on the set password page to explain why the user is there"
},
"hours": {
@@ -2258,13 +2258,13 @@
}
},
"autofillPageLoadPolicyActivated": {
- "message": "您的組織原則已啟用頁面加載時自動填入的功能。"
+ "message": "您的組織原則已啟用頁面載入時自動填入的功能。"
},
"howToAutofill": {
"message": "如何自動填入"
},
"autofillSelectInfoWithCommand": {
- "message": "從這個網頁選擇一個項目,或使用快速鍵:$COMMAND$",
+ "message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
"placeholders": {
"command": {
"content": "$1",
@@ -2273,7 +2273,7 @@
}
},
"autofillSelectInfoWithoutCommand": {
- "message": "從這個網頁選擇一個項目,或在設定中設定一個快速鍵。"
+ "message": "Select an item from this screen, or explore other options in settings."
},
"gotIt": {
"message": "我知道了"
@@ -2318,7 +2318,7 @@
"message": "記住這個裝置"
},
"uncheckIfPublicDevice": {
- "message": "若使用公用裝置,請勿選中"
+ "message": "若使用公用裝置,請勿勾選"
},
"approveFromYourOtherDevice": {
"message": "從其他裝置核准"
@@ -2483,11 +2483,11 @@
"message": "別名網域"
},
"passwordRepromptDisabledAutofillOnPageLoad": {
- "message": "使用主密碼重新提示的項目無法在頁面加載時自動填寫。已關閉頁面加載時的自動填入。",
+ "message": "使用主密碼重新提示的項目無法在頁面載入時自動填寫。已關閉頁面載入時的自動填入。",
"description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load."
},
"autofillOnPageLoadSetToDefault": {
- "message": "將頁面加載時的自動填入設置為使用默認設定。",
+ "message": "將頁面載入時的自動填入設定為使用預設設定。",
"description": "Toast message for informing the user that auto-fill on page load has been set to the default setting."
},
"turnOffMasterPasswordPromptToEditField": {
@@ -2495,77 +2495,77 @@
"description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item."
},
"bitwardenOverlayButton": {
- "message": "Bitwarden auto-fill menu button",
+ "message": "Bitwarden 自動填入選單按鈕",
"description": "Page title for the iframe containing the overlay button"
},
"toggleBitwardenVaultOverlay": {
- "message": "Toggle Bitwarden auto-fill menu",
+ "message": "切換 Bitwarden 自動填入選單",
"description": "Screen reader and tool tip label for the overlay button"
},
"bitwardenVault": {
- "message": "Bitwarden auto-fill menu",
+ "message": "Bitwarden 自動填入選單",
"description": "Page title in overlay"
},
"unlockYourAccountToViewMatchingLogins": {
- "message": "Unlock your account to view matching logins",
+ "message": "解鎖您的帳戶以查看符合的登入資訊",
"description": "Text to display in overlay when the account is locked."
},
"unlockAccount": {
- "message": "Unlock account",
+ "message": "解鎖帳號",
"description": "Button text to display in overlay when the account is locked."
},
"fillCredentialsFor": {
- "message": "Fill credentials for",
+ "message": "填入登入資訊給",
"description": "Screen reader text for when overlay item is in focused"
},
"partialUsername": {
- "message": "Partial username",
+ "message": "部分使用者名稱",
"description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
},
"noItemsToShow": {
- "message": "No items to show",
+ "message": "沒有項目可以顯示",
"description": "Text to show in overlay if there are no matching items"
},
"newItem": {
- "message": "New item",
+ "message": "新增項目",
"description": "Button text to display in overlay when there are no matching items"
},
"addNewVaultItem": {
- "message": "Add new vault item",
+ "message": "新增密碼庫項目",
"description": "Screen reader text (aria-label) for new item button in overlay"
},
"bitwardenOverlayMenuAvailable": {
- "message": "Bitwarden auto-fill menu available. Press the down arrow key to select.",
+ "message": "Bitwarden 自動填入選單可用。按下箭頭鍵來選擇。",
"description": "Screen reader text for announcing when the overlay opens on the page"
},
"overrideBrowserAutofillTitle": {
- "message": "Override browser auto-fill?",
+ "message": "覆蓋瀏覽器的自動填入?",
"description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
},
"overrideBrowserAutofillDescription": {
- "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s.",
+ "message": "關閉此設定可能會導致 Bitwarden 自動填入選單與您的瀏覽器產生衝突。",
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
},
"overrideBrowserAutofillPrivacyRequiredDescription": {
- "message": "Leaving this setting off may cause conflicts between the Bitwarden auto-fill menu and your browser’s. Turning this on will restart the Bitwarden extension.",
+ "message": "關閉此設定可能會導致 Bitwarden 自動填入選單與您的瀏覽器產生衝突。開啟此選項將會重新啟動 Bitwarden 擴充功能。",
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
},
"turnOn": {
- "message": "Turn on"
+ "message": "開啟"
},
"ignore": {
- "message": "Ignore"
+ "message": "忽略"
},
"overrideBrowserAutoFillSettings": {
- "message": "Override browser auto-fill settings",
+ "message": "覆蓋瀏覽器的自動填入設定",
"description": "Label for the setting that allows overriding the default browser autofill settings"
},
"extensionPrivacyPermissionNotGrantedTitle": {
- "message": "Unable to override browser auto-fill",
+ "message": "無法覆蓋瀏覽器的自動填入",
"description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
},
"extensionPrivacyPermissionNotGrantedDescription": {
- "message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
+ "message": "Bitwarden 必須取得擴充功能的隱私權限才能覆蓋瀏覽器的自動填入設定。",
"description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
},
"importData": {
@@ -2633,7 +2633,7 @@
"message": "選擇一個集合"
},
"importTargetHint": {
- "message": "如果您要將匯入檔案的内容移動到 $DESTINATION$,請選擇此選項",
+ "message": "如果您要將匯入檔案的內容移動到 $DESTINATION$,請選擇此選項",
"description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.",
"placeholders": {
"destination": {
@@ -2683,7 +2683,7 @@
"message": "密碼金鑰不會被複製"
},
"passkeyNotCopiedAlert": {
- "message": "密碼金鑰不會被複製到克隆的項目。 您想繼續克隆該項目嗎?"
+ "message": "密碼金鑰不會被複製到複製的項目。 您想繼續複製該項目嗎?"
},
"passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": {
"message": "發起站點需要驗證。對於沒有主密碼的帳戶,此功能尚未實現。"
@@ -2707,7 +2707,7 @@
"message": "儲存密碼金鑰"
},
"savePasskeyNewLogin": {
- "message": "儲存密碼金鑰作爲新的登入"
+ "message": "儲存密碼金鑰作為新的登入"
},
"choosePasskey": {
"message": "選擇一個用於儲存此密碼金鑰的登入項目"
@@ -2786,7 +2786,7 @@
"message": "從 CSV 匯入"
},
"lastPassTryAgainCheckEmail": {
- "message": "Try again or look for an email from LastPass to verify it's you."
+ "message": "請再嘗試一次,或檢查您的電子郵件以確認 LastPass 的驗證信。"
},
"collection": {
"message": "集合"
From 4c8193060d7b6d7e369ec55025f977469ae372a4 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon, 27 Nov 2023 12:51:09 +0100
Subject: [PATCH 29/30] Autosync the updated translations (#6973)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
---
apps/web/src/locales/af/messages.json | 11 +-
apps/web/src/locales/ar/messages.json | 11 +-
apps/web/src/locales/az/messages.json | 617 ++++++++++++-----------
apps/web/src/locales/be/messages.json | 9 +
apps/web/src/locales/bg/messages.json | 9 +
apps/web/src/locales/bn/messages.json | 11 +-
apps/web/src/locales/bs/messages.json | 11 +-
apps/web/src/locales/ca/messages.json | 9 +
apps/web/src/locales/cs/messages.json | 9 +
apps/web/src/locales/cy/messages.json | 11 +-
apps/web/src/locales/da/messages.json | 9 +
apps/web/src/locales/de/messages.json | 9 +
apps/web/src/locales/el/messages.json | 9 +
apps/web/src/locales/en_GB/messages.json | 9 +
apps/web/src/locales/en_IN/messages.json | 9 +
apps/web/src/locales/eo/messages.json | 9 +
apps/web/src/locales/es/messages.json | 9 +
apps/web/src/locales/et/messages.json | 9 +
apps/web/src/locales/eu/messages.json | 9 +
apps/web/src/locales/fa/messages.json | 9 +
apps/web/src/locales/fi/messages.json | 9 +
apps/web/src/locales/fil/messages.json | 9 +
apps/web/src/locales/fr/messages.json | 9 +
apps/web/src/locales/gl/messages.json | 11 +-
apps/web/src/locales/he/messages.json | 9 +
apps/web/src/locales/hi/messages.json | 11 +-
apps/web/src/locales/hr/messages.json | 9 +
apps/web/src/locales/hu/messages.json | 9 +
apps/web/src/locales/id/messages.json | 9 +
apps/web/src/locales/it/messages.json | 9 +
apps/web/src/locales/ja/messages.json | 9 +
apps/web/src/locales/ka/messages.json | 11 +-
apps/web/src/locales/km/messages.json | 11 +-
apps/web/src/locales/kn/messages.json | 9 +
apps/web/src/locales/ko/messages.json | 9 +
apps/web/src/locales/lv/messages.json | 15 +-
apps/web/src/locales/ml/messages.json | 9 +
apps/web/src/locales/mr/messages.json | 11 +-
apps/web/src/locales/my/messages.json | 11 +-
apps/web/src/locales/nb/messages.json | 9 +
apps/web/src/locales/ne/messages.json | 11 +-
apps/web/src/locales/nl/messages.json | 13 +-
apps/web/src/locales/nn/messages.json | 11 +-
apps/web/src/locales/or/messages.json | 11 +-
apps/web/src/locales/pl/messages.json | 9 +
apps/web/src/locales/pt_BR/messages.json | 9 +
apps/web/src/locales/pt_PT/messages.json | 9 +
apps/web/src/locales/ro/messages.json | 9 +
apps/web/src/locales/ru/messages.json | 9 +
apps/web/src/locales/si/messages.json | 11 +-
apps/web/src/locales/sk/messages.json | 9 +
apps/web/src/locales/sl/messages.json | 11 +-
apps/web/src/locales/sr/messages.json | 9 +
apps/web/src/locales/sr_CS/messages.json | 11 +-
apps/web/src/locales/sv/messages.json | 9 +
apps/web/src/locales/te/messages.json | 11 +-
apps/web/src/locales/th/messages.json | 11 +-
apps/web/src/locales/tr/messages.json | 9 +
apps/web/src/locales/uk/messages.json | 13 +-
apps/web/src/locales/vi/messages.json | 11 +-
apps/web/src/locales/zh_CN/messages.json | 11 +-
apps/web/src/locales/zh_TW/messages.json | 9 +
62 files changed, 890 insertions(+), 332 deletions(-)
diff --git a/apps/web/src/locales/af/messages.json b/apps/web/src/locales/af/messages.json
index 550c7c9aeba..82e0256fee5 100644
--- a/apps/web/src/locales/af/messages.json
+++ b/apps/web/src/locales/af/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Teken aan met hoofwagwoord"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/ar/messages.json b/apps/web/src/locales/ar/messages.json
index c2a8af12698..4ec94b8f946 100644
--- a/apps/web/src/locales/ar/messages.json
+++ b/apps/web/src/locales/ar/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "تسجيل الدخول باستخدام كلمة المرور الرئيسية"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/az/messages.json b/apps/web/src/locales/az/messages.json
index b95b82a9901..ea3cd9117b2 100644
--- a/apps/web/src/locales/az/messages.json
+++ b/apps/web/src/locales/az/messages.json
@@ -31,10 +31,10 @@
"message": "Yeni parol"
},
"passphrase": {
- "message": "Uzun ifadə"
+ "message": "Parol ifadəsi"
},
"notes": {
- "message": "Qeydlər"
+ "message": "Notlar"
},
"customFields": {
"message": "Özəl sahələr"
@@ -136,7 +136,7 @@
"message": "Son istifadə ili"
},
"authenticatorKeyTotp": {
- "message": "Kimlik təsdiqləyici açarı (TOTP)"
+ "message": "Kimlik doğrulayıcı açarı (TOTP)"
},
"folder": {
"message": "Qovluq"
@@ -148,7 +148,7 @@
"message": "Dəyər"
},
"dragToSort": {
- "message": "Sıralamaq üçün sürüşdürün"
+ "message": "Sıralamaq üçün sürüklə"
},
"cfTypeText": {
"message": "Mətn"
@@ -160,11 +160,11 @@
"message": "Boolean"
},
"cfTypeLinked": {
- "message": "Əlaqə yaradıldı",
+ "message": "Əlaqələndirildi",
"description": "This describes a field that is 'linked' (related) to another field."
},
"remove": {
- "message": "Çıxart"
+ "message": "Sil"
},
"unassigned": {
"message": "Təyin edilməyən"
@@ -216,14 +216,14 @@
"message": "Görünməni aç/bağla"
},
"toggleCollapse": {
- "message": "Yığcam etməni aç/bağla",
+ "message": "Yığcamlaşdırmanı aç/bağla",
"description": "Toggling an expand/collapse state."
},
"generatePassword": {
"message": "Parol yarat"
},
"checkPassword": {
- "message": "Parolunuzun oğurlanıb oğurlanmadığını yoxlayın."
+ "message": "Parolun ifşalanıb ifşalanmadığını yoxlayın."
},
"passwordExposed": {
"message": "Bu parol, məlumat pozuntularında $VALUE$ dəfə üzə çıxıb. Dəyişdirməyi məsləhət görürük.",
@@ -256,7 +256,7 @@
"message": "Sevimli"
},
"unfavorite": {
- "message": "Sevimlilərdən çıxart"
+ "message": "Sevimlilərdən sil"
},
"edit": {
"message": "Düzəliş et"
@@ -271,19 +271,19 @@
"message": "Sevimliləri axtar"
},
"searchLogin": {
- "message": "Girişlərdə axtar",
+ "message": "Giriş axtar",
"description": "Search Login type"
},
"searchCard": {
- "message": "Kartlarda axtar",
+ "message": "Kart axtar",
"description": "Search Card type"
},
"searchIdentity": {
- "message": "Kimliklərdə axtar",
+ "message": "Kimlik axtar",
"description": "Search Identity type"
},
"searchSecureNote": {
- "message": "Güvənli qeydlərdə axtar",
+ "message": "Güvənli not axtar",
"description": "Search Secure Note type"
},
"searchVault": {
@@ -293,10 +293,10 @@
"message": "Anbarımda axtar"
},
"searchOrganization": {
- "message": "Təşkilatda axtar"
+ "message": "Təşkilat axtar"
},
"searchMembers": {
- "message": "Üzvlərdə axtar"
+ "message": "Üzv axtar"
},
"searchGroups": {
"message": "Qrupları axtar"
@@ -332,7 +332,7 @@
"message": "Kimliklər"
},
"typeSecureNotePlural": {
- "message": "Güvənli qeydlər"
+ "message": "Güvənli notlar"
},
"folders": {
"message": "Qovluqlar"
@@ -515,7 +515,7 @@
"message": "Elementə düzəliş edildi"
},
"movedItemToOrg": {
- "message": "$ITEMNAME$ $ORGNAME$ şirkətinə daşınıldı",
+ "message": "$ITEMNAME$, $ORGNAME$ şirkətinə daşınıldı",
"placeholders": {
"itemname": {
"content": "$1",
@@ -606,11 +606,20 @@
"message": "Cihazla giriş et"
},
"loginWithDeviceEnabledNote": {
- "message": "Cihazla giriş etmə, Bitwarden tətbiqinin tənzimləmələrində quraşdırılmalıdır. Başqa bir seçimə ehtiyacınız var?"
+ "message": "Cihazla giriş, Bitwarden tətbiqinin ayarlarında qurulmalıdır. Başqa bir seçimə ehtiyacınız var?"
},
"loginWithMasterPassword": {
"message": "Ana parolla giriş et"
},
+ "readingPasskeyLoading": {
+ "message": "Keçid açarı oxunur..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Bu pəncərəni açıq saxlayın və brauzerinizdən gələn sorğuları izləyin."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Fərqli bir giriş üsulu istifadə edin"
+ },
"loginWithPasskey": {
"message": "Parolla giriş et"
},
@@ -729,10 +738,10 @@
"message": "Ana parol"
},
"masterPassDesc": {
- "message": "Ana parol, anbarınıza müraciət etmək üçün istifadə edəcəyiniz şifrədir. Ana parolu yadda saxlamaq çox vacibdir. Unutsanız, parolu bərpa etməyin heç bir yolu yoxdur."
+ "message": "Ana parol, anbarınıza müraciət etmək üçün istifadə edəcəyiniz paroldur. Ana parolu yadda saxlamaq çox vacibdir. Unutsanız, parolu geri qaytarmağın heç bir yolu yoxdur."
},
"masterPassImportant": {
- "message": "Unutsanız, Ana parollar bərpa edilə bilməz!"
+ "message": "Unutsanız, ana parolunuz geri qaytarıla bilməz!"
},
"masterPassHintDesc": {
"message": "Ana parol məsləhəti, unutduğunuz parolu xatırlamağınıza kömək edir."
@@ -747,7 +756,7 @@
"message": "Ana parol məsləhəti"
},
"settings": {
- "message": "Tənzimləmələr"
+ "message": "Ayarlar"
},
"passwordHint": {
"message": "Parol məsləhəti"
@@ -781,7 +790,7 @@
}
},
"masterPassDoesntMatch": {
- "message": "Ana parol təsdiqləməsi uyğun gəlmir."
+ "message": "Ana parolun təsdiqi uyğun gəlmir."
},
"newAccountCreated": {
"message": "Yeni hesabınız yaradıldı! İndi giriş edə bilərsiniz."
@@ -796,13 +805,13 @@
"message": "Gözlənilməz bir səhv baş verdi."
},
"expirationDateError": {
- "message": "Zəhmət olmasa gələcəkdə son istifadə tarixi seçin."
+ "message": "Lütfən gələcəkdə son istifadə tarixi seçin."
},
"emailAddress": {
"message": "E-poçt ünvanı"
},
"yourVaultIsLocked": {
- "message": "Anbarınız kilidlənib. Davam etmək üçün ana parolunuzu təsdiqləyin."
+ "message": "Anbarınız kilidlənib. Davam etmək üçün ana parolunuzu doğrulayın."
},
"uuid": {
"message": "UUID"
@@ -827,7 +836,7 @@
"message": "Yararsız ana parol"
},
"invalidFilePassword": {
- "message": "Yararsız fayl parolu, zəhmət olmasa xaricə köçürmə faylını yaradarkən daxil etdiyiniz parolu istifadə edin."
+ "message": "Yararsız fayl parolu, lütfən xaricə köçürmə faylını yaradarkən daxil etdiyiniz parolu istifadə edin."
},
"lockNow": {
"message": "İndi kilidlə"
@@ -872,10 +881,10 @@
}
},
"enterVerificationCodeApp": {
- "message": "Kimlik təsdiqləyici tətbiqindən 6 rəqəmli təsdiqləmə kodunu daxil edin."
+ "message": "Kimlik doğrulayıcı tətbiqindən 6 rəqəmli doğrulama kodunu daxil edin."
},
"enterVerificationCodeEmail": {
- "message": "$EMAIL$ ünvanına göndərilən e-poçtdakı 6 rəqəmli təsdiqləmə kodunu daxil edin.",
+ "message": "$EMAIL$ ünvanına göndərilən e-poçtdakı 6 rəqəmli doğrulama kodunu daxil edin.",
"placeholders": {
"email": {
"content": "$1",
@@ -884,7 +893,7 @@
}
},
"verificationCodeEmailSent": {
- "message": "Təsdiqləmə poçtu $EMAIL$ ünvanına göndərildi.",
+ "message": "Doğrulama poçtu $EMAIL$ ünvanına göndərildi.",
"placeholders": {
"email": {
"content": "$1",
@@ -896,7 +905,7 @@
"message": "Məni xatırla"
},
"sendVerificationCodeEmailAgain": {
- "message": "Təsdiqləmə kodu olan e-poçtu yenidən göndər"
+ "message": "Doğrulama kodu olan e-poçtu yenidən göndər"
},
"useAnotherTwoStepMethod": {
"message": "Başqa bir iki addımlı giriş üsulu istifadə edin"
@@ -905,31 +914,31 @@
"message": "\"YubiKey\"i kompüterinizin USB portuna taxın, daha sonra düyməsinə toxunun."
},
"insertU2f": {
- "message": "Güvənlik açarını kompüterinizin USB portun taxın. Düyməsi varsa toxunun."
+ "message": "Güvənlik açarını kompüterinizin USB portuna taxın. Düyməsi varsa toxunun."
},
"loginUnavailable": {
"message": "Giriş edilə bilmir"
},
"noTwoStepProviders": {
- "message": "Bu hesabda iki addımlı giriş tənzimləməsi var, ancaq, konfiqurasiya edilmiş iki addımlı provayderlərin heç biri bu veb brauzer tərəfindən dəstəklənmir."
+ "message": "Bu hesabın iki addımlı giriş özəlliyi qurulub, ancaq, konfiqurasiya edilmiş iki addımlı provayderlərin heç biri bu brauzer tərəfindən dəstəklənmir."
},
"noTwoStepProviders2": {
- "message": "Zəhmət olmasa (Chrome kimi) dəstəklənən bir veb brauzer istifadə edin və/və ya veb brauzerlərə (kimlik təsdiqləyici tətbiq kimi) daha yaxşı dəstəklənən provayderlər əlavə edin."
+ "message": "Lütfən (Chrome kimi) dəstəklənən bir veb brauzer istifadə edin və/və ya veb brauzerlərə (kimlik doğrulayıcı tətbiq kimi) daha yaxşı dəstəklənən provayderlər əlavə edin."
},
"twoStepOptions": {
"message": "İki addımlı giriş seçimləri"
},
"recoveryCodeDesc": {
- "message": "İki mərhələli təsdiqləmə provayderlərinə müraciəti itirmisiniz? Bərpa kodunuzu istifadə edərək hesabınızdakı bütün iki mərhələli provayderləri sıradan çıxara bilərsiniz."
+ "message": "İki addımlı giriş provayderlərinə müraciəti itirmisiniz? Hesabınızdakı bütün iki addımlı giriş provayderlərini söndürmək üçün geri qaytarma kodunuzu istifadə edin."
},
"recoveryCodeTitle": {
- "message": "Bərpa kodu"
+ "message": "Geri qaytarma kodu"
},
"authenticatorAppTitle": {
- "message": "Kimlik təsdiqləyici tətbiqi"
+ "message": "Kimlik doğrulayıcı tətbiqi"
},
"authenticatorAppDesc": {
- "message": "Vaxt əsaslı təsdiqləmə kodları yaratmaq üçün (Authy və ya Google Authenticator kimi) kimlik təsdiqləyici tətbiq istifadə edin.",
+ "message": "Vaxt əsaslı doğrulama kodları yaratmaq üçün (Authy və ya Google Authenticator kimi) kimlik doğrulayıcı tətbiq istifadə edin.",
"description": "'Authy' and 'Google Authenticator' are product names and should not be translated."
},
"yubiKeyTitle": {
@@ -939,11 +948,11 @@
"message": "Hesabınıza müraciət etmək üçün bir YubiKey istifadə edin. YubiKey 4 seriyası, 5 seriyası və NEO cihazları ilə işləyir."
},
"duoDesc": {
- "message": "Duo Security ilə təsdiqləmək üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
+ "message": "Duo Security ilə doğrulamaq üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
},
"duoOrganizationDesc": {
- "message": "Təşkilatınızını Duo Security ilə təsdiqləmək üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
+ "message": "Təşkilatınızını Duo Security ilə doğrulamaq üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F güvənlik açarını istifadə edin.",
"description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated."
},
"u2fDesc": {
@@ -965,7 +974,7 @@
"message": "E-poçt"
},
"emailDesc": {
- "message": "Təsdiqləmə kodları e-poçt ünvanınıza göndəriləcək."
+ "message": "Doğrulama kodları e-poçt ünvanınıza göndəriləcək."
},
"continue": {
"message": "Davam"
@@ -1033,10 +1042,10 @@
}
},
"verificationCodeTotp": {
- "message": "Təsdiqləmə kodu (TOTP)"
+ "message": "Doğrulama kodu (TOTP)"
},
"copyVerificationCode": {
- "message": "Təsdiqləmə kodunu kopyala"
+ "message": "Doğrulama kodunu kopyala"
},
"copyUuid": {
"message": "UUID-ni kopyala"
@@ -1045,16 +1054,16 @@
"message": "Xəbərdarlıq"
},
"confirmVaultExport": {
- "message": "Anbarın ixracını təsdiqləyin"
+ "message": "Anbarın xaricə köçürülməsini təsdiqlə"
},
"confirmSecretsExport": {
- "message": "Confirm secrets export"
+ "message": "Sirlərin xaricə köçürülməsini təsdiqlə"
},
"exportWarningDesc": {
"message": "Bu xaricə köçürmə, anbar verilənlərinizi şifrələnməmiş formatda ehtiva. Xaricə köçürülə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."
},
"exportSecretsWarningDesc": {
- "message": "This export contains your secrets data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it."
+ "message": "Xaricə köçürdüyünüz bu fayldakı sirr datalarını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."
@@ -1069,7 +1078,7 @@
"message": "Anbarı ixrac et"
},
"exportSecrets": {
- "message": "Export secrets"
+ "message": "Sirləri xaricə köçür"
},
"fileFormat": {
"message": "Fayl formatı"
@@ -1179,13 +1188,13 @@
"description": "To clear something out. Example: To clear browser history."
},
"accountUpdated": {
- "message": "Hesab güncəlləndi"
+ "message": "Hesab saxlanıldı"
},
"changeEmail": {
"message": "E-poçtu dəyişdir"
},
"changeEmailTwoFactorWarning": {
- "message": "Davam etmək, hesabınızın e-poçt ünvanını dəyişdirəcəkdir. İki faktorlu kimlik təsdiqləmə üçün istifadə olunan e-poçt ünvanını dəyişdirmir. Bu e-poçt ünvanını iki addımlı giriş tənzimləmələrində dəyişdirə bilərsiniz."
+ "message": "Davam etdikdə hesabınızın e-poçt ünvanı dəyişdiriləcək. Bu, iki addımlı kimlik doğrulama üçün istifadə olunan e-poçt ünvanını dəyişdirmir. Bu e-poçt ünvanını iki addımlı giriş ayarlarında dəyişdirə bilərsiniz."
},
"newEmail": {
"message": "Yeni e-poçt"
@@ -1194,7 +1203,7 @@
"message": "Kod"
},
"changeEmailDesc": {
- "message": "$EMAIL$ ünvanına təsdiqləmə kodu olan e-poçt göndərdik. Zəhmət olmasa e-poçt ünvan dəyişikliyini tamamlamaq üçün göndərdiyimiz kodu aşağıda daxil edin.",
+ "message": "$EMAIL$ ünvanına doğrulama kodu olan e-poçt göndərdik. Lütfən e-poçt ünvan dəyişikliyini tamamlamaq üçün göndərdiyimiz kodu aşağıda daxil edin.",
"placeholders": {
"email": {
"content": "$1",
@@ -1209,10 +1218,10 @@
"message": "E-poçt dəyişdirildi"
},
"logBackIn": {
- "message": "Zəhmət olmasa yenidən giriş edin."
+ "message": "Lütfən yenidən giriş edin."
},
"logBackInOthersToo": {
- "message": "Zəhmət olmasa yenidən giriş edin. Digər Bitwarden tətbiqlərini istifadə edirsinizsə, onlardan da çıxış edib təkrar giriş etməlisiniz."
+ "message": "Lütfən yenidən giriş edin. Digər Bitwarden tətbiqlərini istifadə edirsinizsə, onlardan da çıxış edib təkrar giriş etməlisiniz."
},
"changeMasterPassword": {
"message": "Ana parolu dəyişdir"
@@ -1230,7 +1239,7 @@
"message": "Yeni ana parolu təsdiqlə"
},
"encKeySettings": {
- "message": "Şifrələmə açarı tənzimləmələri"
+ "message": "Şifrələmə açarı ayarları"
},
"kdfAlgorithm": {
"message": "KDF Algoritmi"
@@ -1248,7 +1257,7 @@
}
},
"kdfIterationsWarning": {
- "message": "KDF iterasiyalarınızı çox yüksək tənzimləmək, yavaş və ya köhnə cihazlarda \"Bitwarden\"ə giriş edərkən (və ya kilidi açarkən) aşağı performansa səbəb ola bilər. Dəyəri $INCREMENT$ artımları ilə artırmağınızı və daha sonra bütün cihazlarınızda test etməyinizi məsləhət görürük.",
+ "message": "KDF iterasiyalarınızı çox yüksək ayarlamaq, yavaş və ya köhnə cihazlarda \"Bitwarden\"ə giriş edərkən (və ya kilidi açarkən) aşağı performansa səbəb ola bilər. Dəyəri $INCREMENT$ artımları ilə artırmağınızı və daha sonra bütün cihazlarınızda test etməyinizi məsləhət görürük.",
"placeholders": {
"increment": {
"content": "$1",
@@ -1261,7 +1270,7 @@
"description": "Memory refers to computer memory (RAM). MB is short for megabytes."
},
"argon2Warning": {
- "message": "KDF iterasiyalarınızı, yaddaşınızı və paralelizminizi çox yüksək tənzimləmək, daha yavaş və ya daha köhnə cihazlarda \"Bitwarden\"ə giriş edərkən (və ya kilidi açarkən) aşağı performansa səbəb ola bilər. Biz bunları fərdi olaraq kiçik artımlarla dəyişməyi, sonra bütün cihazlarınızı sınaqdan keçirməyi tövsiyə edirik."
+ "message": "KDF iterasiyalarınızı, yaddaşınızı və paralelizminizi çox yüksək ayarlamaq, daha yavaş və ya daha köhnə cihazlarda \"Bitwarden\"ə giriş edərkən (və ya kilidi açarkən) aşağı performansa səbəb ola bilər. Biz bunları fərdi olaraq kiçik artımlarla dəyişməyi, sonra bütün cihazlarınızı sınaqdan keçirməyi tövsiyə edirik."
},
"kdfParallelism": {
"message": "KDF paralelizm"
@@ -1273,7 +1282,7 @@
"message": "KDF-i dəyişdir"
},
"encKeySettingsChanged": {
- "message": "Şifrələmə açar tənzimləmələri dəyişdirildi"
+ "message": "Şifrələmə açarı ayarları dəyişdirildi"
},
"dangerZone": {
"message": "Təhlükəli zona"
@@ -1285,10 +1294,10 @@
"message": "Seansların səlahiyyətlərini götür"
},
"deauthorizeSessionsDesc": {
- "message": "Hesabınıza başqa cihazdan giriş edildiyi ilə bağlı şübhələnirsiniz? Daha əvvəl istifadə etdiyiniz bütün cihazların və ya kompüterlərin səlahiyyətini götürmək üçün aşağıdan davam edin. Əvvəllər ictimai bir kompüter istifadə etmisinizsə və ya sizin olmayan bir cihazda səhvən parolunuzu saxlamısınızsa, bu güvənlik addımını məsləhət görürük. Bu addım həmçinin daha əvvəl xatırlanan iki mərhələli giriş seanslarını da təmizləyəcək."
+ "message": "Hesabınıza başqa cihazdan giriş edildiyi ilə bağlı şübhələnirsiniz? Daha əvvəl istifadə etdiyiniz bütün cihazların və ya kompüterlərin səlahiyyətini götürmək üçün aşağıdan davam edin. Əvvəllər hər kəsə açıq bir kompüter istifadə etmisinizsə və ya sizin olmayan bir cihazda səhvən parolunuzu saxlamısınızsa, bu güvənlik addımını məsləhət görürük. Bu addım həmçinin daha əvvəl xatırlanan iki addımlı giriş seanslarını da təmizləyəcək."
},
"deauthorizeSessionsWarning": {
- "message": "Davam etsəniz, hazırkı seansınız bitəcək, təkrar giriş etməyiniz tələb olunacaq. Fəallaşdırılıbsa, iki mərhələli giriş üçün yenidən soruşulacaq. Digər cihazlardakı aktiv seanslar, bir saata qədər aktiv qalmağa davam edə bilər."
+ "message": "Davam etsəniz, hazırkı seansınız bitəcək, təkrar giriş etməyiniz tələb olunacaq. Fəallaşdırılıbsa, iki addımlı giriş üçün yenidən soruşulacaq. Digər cihazlardakı aktiv seanslar, bir saata qədər aktiv qalmağa davam edə bilər."
},
"sessionsDeauthorized": {
"message": "Bütün seansların səlahiyyəti götürüldü"
@@ -1342,7 +1351,7 @@
"message": "İdxal xətası"
},
"importErrorDesc": {
- "message": "İdxal etməyə çalışdığınız verilənlərlə bağlı problem var. Zəhmət olmasa mənbə faylınızda siyahılanan xətaları həll edib yenidən sınayın."
+ "message": "Daxilə köçürməyə çalışdığınız data ilə bağlı bir problem var. Lütfən mənbə faylınızda aşağıda sadalanan xətaları həll edib yenidən sınayın."
},
"importSuccess": {
"message": "Verilənlər anbarınıza uğurla idxal edildi."
@@ -1369,7 +1378,7 @@
}
},
"importFormatError": {
- "message": "Verilənlər doğru format edilməyib. Zəhmət olmasa idxal faylınızı yoxlayıb yenidən sınayın."
+ "message": "Data doğru format edilməyib. Lütfən daxilə köçürmə faylınızı yoxlayıb yenidən sınayın."
},
"importNothingError": {
"message": "Heç nə idxal edilmədi."
@@ -1437,7 +1446,7 @@
"message": "Veb anbar təcrübənizi özəlləşdirin."
},
"preferencesUpdated": {
- "message": "Tərcihlər güncəlləndi"
+ "message": "Tərcihlər saxlanıldı"
},
"language": {
"message": "Dil"
@@ -1498,7 +1507,7 @@
}
},
"domainsUpdated": {
- "message": "Domenlər güncəlləndi"
+ "message": "Domenlər saxlanıldı"
},
"twoStepLogin": {
"message": "İki addımlı giriş"
@@ -1523,13 +1532,13 @@
"message": "Duo üzərindən İki addımlı Girişi tətbiq etmək üçün aşağıdakı seçimləri istifadə edin."
},
"twoStepLoginOrganizationSsoDesc": {
- "message": "SSO quraşdırması etmisinizsə və ya etmək planınız varsa, İki mərhələli giriş, artıq Kimlik Provayderiniz vasitəsilə tətbiq edilmiş ola bilər."
+ "message": "SSO quraşdırması etmisinizsə və ya etmək planınız varsa, İki addımlı giriş, artıq Kimlik Provayderiniz vasitəsilə tətbiq edilmiş ola bilər."
},
"twoStepLoginRecoveryWarning": {
- "message": "İki mərhələli girişi fəallaşdırmaq, Bitwarden hesabınızı birdəfəlik kilidləyə bilər. Bərpa kodları, iki mərhələli giriş provayderinizi istifadə edə bilmədiyiniz hallarda (məs. cihazınızı itirəndə) hesabınıza müraciət etməyinizə icazə verər. Hesabınıza müraciəti itirsəniz, Bitwarden dəstəyi sizə kömək edə bilməyəcək. Bərpa kodunuzu bir yerə yazmağınızı və ya çap etməyinizi və onu etibarlı bir yerdə saxlamağı məsləhət görürük."
+ "message": "İki addımlı girişi qurmaq, Bitwarden hesabınızı birdəfəlik kilidləyə bilər. Geri qaytarma kodu, normal iki addımlı giriş provayderinizi artıq istifadə edə bilmədiyiniz hallarda (məs. cihazınızı itirəndə) hesabınıza müraciət etməyinizə imkan verir. Hesabınıza müraciəti itirsəniz, Bitwarden dəstəyi sizə kömək edə bilməyəcək. Geri qaytarma kodunuzu bir yerə yazmağınızı və ya çap etməyinizi və onu etibarlı bir yerdə saxlamağınızı məsləhət görürük."
},
"viewRecoveryCode": {
- "message": "Bərpa koduna bax"
+ "message": "Geri qaytarma koduna bax"
},
"providers": {
"message": "Provayderlər",
@@ -1576,19 +1585,19 @@
"message": "Müraciəti ləğv et"
},
"twoStepLoginProviderEnabled": {
- "message": "Bu iki mərhələli giriş provayderi hesabınızda fəallaşdırılıb."
+ "message": "Bu iki addımlı giriş provayderi hesabınızda fəallaşdırılıb."
},
"twoStepLoginAuthDesc": {
- "message": "İki mərhələli giriş tənzimləmələrini dəyişdirmək üçün ana parolu daxil edin."
+ "message": "İki addımlı giriş ayarlarını dəyişdirmək üçün ana parolunuzu daxil edin."
},
"twoStepAuthenticatorDesc": {
- "message": "Kimlik təsdiqləyici tətbiqi ilə iki mərhələli girişi quraşdırmaq üçün aşağıdakı addımları izləyin:"
+ "message": "Kimlik doğrulayıcı tətbiqi ilə iki addımlı girişi qurmaq üçün aşağıdakı addımları izləyin:"
},
"twoStepAuthenticatorDownloadApp": {
- "message": "İki mərhələli kimlik təsdiqləmə tətbiqi endirin"
+ "message": "İki addımlı kimlik doğrulayıcı tətbiqi endirin"
},
"twoStepAuthenticatorNeedApp": {
- "message": "İki mərhələli kimlik təsdiqləmə tətbiqi lazımdır? Aşağıdakılardan birini endirin"
+ "message": "İki addımlı kimlik doğrulayıcı tətbiqi lazımdır? Aşağıdakılardan birini endirin"
},
"iosDevices": {
"message": "iOS cihazları"
@@ -1600,25 +1609,25 @@
"message": "Windows cihazları"
},
"twoStepAuthenticatorAppsRecommended": {
- "message": "Bu tətbiqləri tövsiyə edirik, ancaq digər kimlik təsdiqləmə tətbiqlərini də işlədə bilərsiniz."
+ "message": "Bu tətbiqləri tövsiyə edirik, ancaq digər kimlik doğrulayıcı tətbiqlərini də işlədə bilərsiniz."
},
"twoStepAuthenticatorScanCode": {
- "message": "Bu QR kodunu kimlik təsdiqləyici tətbiqinizlə skan edin"
+ "message": "Bu QR kodunu kimlik doğrulayıcı tətbiqinizlə skan edin"
},
"key": {
"message": "Açar"
},
"twoStepAuthenticatorEnterCode": {
- "message": "Tətbiqdəki 6 rəqəmli təsdiqləmə kodunu daxil edin"
+ "message": "Tətbiqdəki 6 rəqəmli doğrulama kodunu daxil edin"
},
"twoStepAuthenticatorReaddDesc": {
- "message": "Başqa bir cihaza əlavə etmək lazım olsa, aşağıda kimlik təsdiqləmə tətbiqinizin tələb etdiyi QR kod (və ya açar) verilib."
+ "message": "Başqa bir cihaza əlavə etmək lazım olsa, aşağıda kimlik doğrulayıcı tətbiqinizin tələb etdiyi QR kod (və ya açar) verilib."
},
"twoStepDisableDesc": {
- "message": "Bu iki mərhələli giriş provayderini sıradan çıxartmaq istədiyinizə əminsiniz?"
+ "message": "Bu iki addımlı giriş provayderini sıradan çıxartmaq istədiyinizə əminsiniz?"
},
"twoStepDisabled": {
- "message": "İki mərhələli giriş provayderi sıradan çıxarıldı."
+ "message": "İki addımlı giriş provayderi sıradan çıxarıldı."
},
"twoFactorYubikeyAdd": {
"message": "Hesabınıza yeni bir YubiKey əlavə edin"
@@ -1636,10 +1645,10 @@
"message": "Formu saxla."
},
"twoFactorYubikeyWarning": {
- "message": "Platforma məhdudiyyətlərinə görə, YubiKeys bütün Bitwarden tətbiqlərində istifadə edilə bilmir. YubiKeys istifadə edilə bilməyəndə, hesabınıza müraciət edə bilməyiniz üçün başqa bir iki mərhələli giriş provayderini fəallaşdırmalısınız. Dəstəklənən platformalar:"
+ "message": "Platforma məhdudiyyətlərinə görə, YubiKeys bütün Bitwarden tətbiqlərində istifadə edilə bilmir. YubiKeys istifadə edilə bilməyəndə, hesabınıza müraciət edə bilməyiniz üçün başqa bir iki addımlı giriş provayderini fəallaşdırmalısınız. Dəstəklənən platformalar:"
},
"twoFactorYubikeySupportUsb": {
- "message": "Veb anbar, masaüstü tətbiqi, CLI və \"YubiKey\"inizi qəbul edə biləcək USB portuna sahib bir cihazdakı bütün brauzer genişləndirmələri."
+ "message": "Veb anbar, masaüstü tətbiqi, CLI və \"YubiKey\"inizi qəbul edə biləcək USB portuna sahib bir cihazdakı bütün brauzer uzantıları."
},
"twoFactorYubikeySupportMobile": {
"message": "Bir cihazda NFC özəlliyi olan mobil tətbiqlər və ya \"YubiKey\"inizi qəbul edə bilən data portu."
@@ -1693,19 +1702,19 @@
"message": "İnteqrasiya açarı"
},
"twoFactorDuoSecretKey": {
- "message": "Məxfi açar"
+ "message": "Sirr açarı"
},
"twoFactorDuoApiHostname": {
"message": "API Host adı"
},
"twoFactorEmailDesc": {
- "message": "E-poçt ilə iki mərhələli girişi quraşdırmaq üçün aşağıdakı addımları izləyin:"
+ "message": "E-poçt ilə iki addımlı girişi quraşdırmaq üçün aşağıdakı addımları izləyin:"
},
"twoFactorEmailEnterEmail": {
- "message": "Təsdiqləmə kodlarını almaq istədiyiniz e-poçtu daxil edin"
+ "message": "Doğrulama kodlarını almaq istədiyiniz e-poçtu daxil edin"
},
"twoFactorEmailEnterCode": {
- "message": "E-poçtdakı 6 rəqəmli təsdiqləmə kodunu daxil edin"
+ "message": "E-poçtdakı 6 rəqəmli doğrulama kodunu daxil edin"
},
"sendEmail": {
"message": "E-poçt göndər"
@@ -1738,31 +1747,31 @@
"message": "Formu saxla."
},
"twoFactorU2fWarning": {
- "message": "Platforma məhdudiyyətlərinə görə, FIDO U2F bütün Bitwarden tətbiqlərində istifadə edilə bilmir. FIDO U2F istifadə edilə bilməyəndə, hesabınıza müraciət edə bilməyiniz üçün başqa bir iki mərhələli giriş provayderini fəallaşdırmalısınız. Dəstəklənən platformalar:"
+ "message": "Platforma məhdudiyyətlərinə görə, FIDO U2F bütün Bitwarden tətbiqlərində istifadə edilə bilmir. FIDO U2F istifadə edilə bilməyəndə, hesabınıza müraciət edə bilməyiniz üçün başqa bir iki addımlı giriş provayderini fəallaşdırmalısınız. Dəstəklənən platformalar:"
},
"twoFactorU2fSupportWeb": {
- "message": "U2F özəlliyə sahib bir brauzer ilə masaüstü/dizüstü kompüterdə veb anbar və brauzer genişləndirmələri (FIDO U2F özəlliyinə sahib Chrome, Opera, Vivaldi və ya Firefox)."
+ "message": "U2F özəlliyə sahib bir brauzer ilə masaüstü/dizüstü kompüterdə veb anbar və brauzer uzantıları (FIDO U2F özəlliyinə sahib Chrome, Opera, Vivaldi və ya Firefox)."
},
"twoFactorU2fWaiting": {
"message": "Güvənlik açarındakı düyməyə toxunmağınız gözlənilir"
},
"twoFactorU2fClickSave": {
- "message": "İki mərhələli giriş üçün bu güvənlik açarını fəallaşdırmaq üçün \"Saxla\" düyməsinə klikləyin."
+ "message": "İki addımlı giriş üçün bu güvənlik açarını fəallaşdırmaq məqsədilə \"Saxla\" düyməsinə klikləyin."
},
"twoFactorU2fProblemReadingTryAgain": {
"message": "Güvənlik açarı oxunarkən problem yarandı. Yenidən sınayın."
},
"twoFactorWebAuthnWarning": {
- "message": "Platforma məhdudiyyətlərinə görə, WebAuthn bütün Bitwarden tətbiqlərində istifadə edilə bilmir. WebAuthn istifadə edilə bilməyəndə, hesabınıza müraciət edə bilməyiniz üçün başqa bir iki mərhələli giriş provayderini fəallaşdırmalısınız. Dəstəklənən platformalar:"
+ "message": "Platforma məhdudiyyətlərinə görə, WebAuthn bütün Bitwarden tətbiqlərində istifadə edilə bilmir. WebAuthn istifadə edilə bilməyəndə, hesabınıza müraciət edə bilməyiniz üçün başqa bir iki addımlı giriş provayderini fəallaşdırmalısınız. Dəstəklənən platformalar:"
},
"twoFactorWebAuthnSupportWeb": {
- "message": "WebAuthn özəlliyə sahib bir brauzer ilə masaüstü/dizüstü kompüterdə veb anbar və brauzer genişləndirmələri (FIDO U2F özəlliyinə sahib Chrome, Opera, Vivaldi və ya Firefox)."
+ "message": "WebAuthn özəlliyə sahib bir brauzer ilə masaüstü/dizüstü kompüterdə veb anbar və brauzer uzantıları (FIDO U2F özəlliyinə sahib Chrome, Opera, Vivaldi və ya Firefox)."
},
"twoFactorRecoveryYourCode": {
- "message": "Bitwarden iki mərhələli giriş bərpa kodunuz"
+ "message": "Bitwarden iki addımlı giriş üçün geri qaytarma kodunuz"
},
"twoFactorRecoveryNoCode": {
- "message": "Hələ ki, iki mərhələli griş provayderini fəallaşdırmadınız. İki mərhələli giriş provayderini faəllaşdırdıqdan sonra, bərpa kodunuz üçün buranı yoxlaya bilərsiniz."
+ "message": "Hələ ki, iki addımlı griş provayderini qurmamısınız. İki addımlı giriş provayderini qurduqdan sonra, geri qaytarma kodunuz üçün buranı yoxlaya bilərsiniz."
},
"printCode": {
"message": "Kodu çap et",
@@ -1801,16 +1810,16 @@
"message": "Anbarınızda güvənli olmayan URI-ə sahib element yoxdur."
},
"inactive2faReport": {
- "message": "Aktiv olmayan iki mərhələli giriş"
+ "message": "Aktiv olmayan iki addımlı giriş"
},
"inactive2faReportDesc": {
- "message": "İki mərhələli giriş, hesablarınıza bir qoruma qatı əlavə edir. Bu hesablar üçün Bitwarden Authenticator-u istifadə edərək \"İki mərhələli giriş\" özəlliyini işə salın və ya alternativ metod istifadə edin."
+ "message": "İki addımlı giriş, hesablarınıza bir qoruma qatı əlavə edir. Bu hesablar üçün Bitwarden Authenticator-u istifadə edərək \"İki addımlı giriş\" özəlliyini qurun və ya alternativ bir üsul istifadə edin."
},
"inactive2faFound": {
"message": "2FA olmayan hesablar tapıldı"
},
"inactive2faFoundDesc": {
- "message": "Anbarınızda (\"2fa.directory\"ə uyğun olaraq) iki mərhələli kimlik təsdiqləmə ilə konfiqurasiya edilmədiyini düşündüyümüz $COUNT$ veb sayt tapdıq. Bu hesabları daha çox qorumaq üçün iki mərhələli kimlik təsdiqləməsini fəallaşdırmalısınız.",
+ "message": "Anbarınızda (\"2fa.directory\"ə uyğun olaraq) iki addımlı kimlik doğrulama ilə konfiqurasiya edilmədiyini düşündüyümüz $COUNT$ veb sayt tapdıq. Bu hesabları daha çox qorumaq üçün iki addımlı girişi qurmalısınız.",
"placeholders": {
"count": {
"content": "$1",
@@ -1819,7 +1828,7 @@
}
},
"noInactive2fa": {
- "message": "Anbarınızda iki mərhələli kimlik təsdiqləmə konfiqurasiyası əskik olan heç bir veb sayt tapılmadı."
+ "message": "Anbarınızda iki addımlı giriş konfiqurasiyası əskik olan heç bir veb sayt tapılmadı."
},
"instructions": {
"message": "Təlimatlar"
@@ -1996,7 +2005,7 @@
"message": "Əlavə edilən kredit, ödəniş tam emal olunandan sonra hesabınızda görünəcək. Bəzi ödəniş metodları gecikir və emalı digərlərinə nisbətən daha uzun çəkə bilər."
},
"makeSureEnoughCredit": {
- "message": "Zəhmət olmasa bu satın alma üçün hesabınızda yetərli qədər kredit olduğuna əmin olun. Hesabınızda yetərli kredit yoxdursa, fərq üçün fayldakı ilkin ödəniş metodunuz istifadə edilir. Hesabınıza, faktura səhifəsindən kredit əlavə edə bilərsiniz."
+ "message": "Lütfən bu alış üçün hesabınızda yetərli qədər kredit olduğuna əmin olun. Hesabınızda yetərli kredit yoxdursa, fərq üçün fayldakı ilkin ödəniş metodunuz istifadə edilir. Hesabınıza, faktura səhifəsindən kredit əlavə edə bilərsiniz."
},
"creditAppliedDesc": {
"message": "Hesabınızın krediti, satın alma üçün istifadə oluna bilər. Əlçatan istənilən kredit, bu hesab üçün yaradılan fakturalara avtomatik tətbiq ediləcək."
@@ -2018,13 +2027,13 @@
"message": "YubiKey və Duo kimi mülkiyyətçi iki addımlı giriş seçimləri."
},
"premiumSignUpEmergency": {
- "message": "Fövqəladə vəziyyət müraciəti"
+ "message": "Fövqəladə hal müraciəti"
},
"premiumSignUpReports": {
"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ı."
},
"premiumSignUpTotp": {
- "message": "Anbarınızdakı hesablar üçün TOTP təsdiqləmə kodu (2FA) yaradıcısı."
+ "message": "Anbarınızdakı hesablar üçün TOTP doğrulama kodu (2FA) yaradıcısı."
},
"premiumSignUpSupport": {
"message": "Prioritet müştəri dəstəyi."
@@ -2329,7 +2338,7 @@
"message": "Öz-özünə sahiblik edən təşkilat yaratmaq üçün etibarlı bir lisenziya faylı yükləməlisiniz."
},
"accountEmailMustBeVerified": {
- "message": "Hesabınızın e-poçt ünvanı təsdiqlənməlidir."
+ "message": "Hesabınızın e-poçt ünvanı doğrulanmalıdır."
},
"newOrganizationDesc": {
"message": "Təşkilatlar, anbarınızın hissələrini başqaları ilə paylaşmağınıza, ailə, kiçik komanda və ya böyük şirkət kimi müəyyən bir varlıq üçün əlaqəli istifadəçiləri idarə etməyinizə icazə verir."
@@ -2490,7 +2499,7 @@
"message": "Qruplar ilə istifadəçi müraciətinə nəzarət et"
},
"syncUsersFromDirectory": {
- "message": "İstifadəçiləri və qrupları bir kataloqdan eyniləşdirin"
+ "message": "İstifadəçiləri və qrupları bir kataloqdan sinxronlaşdır"
},
"trackAuditLogs": {
"message": "İstifadəçi hərəkətlərini audit jurnalı ilə izləyin"
@@ -2685,7 +2694,7 @@
}
},
"userUsingTwoStep": {
- "message": "Bu istifadəçinin hesabını qorumaq üçün iki mərhələli giriş istifadə edilir."
+ "message": "Bu istifadəçinin hesabını qorumaq üçün iki addımlı giriş istifadə edilir."
},
"userAccessAllItems": {
"message": "Bu istifadəçi bütün elementlərə müraciət edə və onları dəyişdirə bilər."
@@ -2758,7 +2767,7 @@
"description": "Mobile app"
},
"extension": {
- "message": "Genişləndirmə",
+ "message": "Uzantı",
"description": "Browser extension/addon"
},
"desktop": {
@@ -2775,7 +2784,7 @@
"message": "Bitwarden Web anbarı"
},
"bitSecretsManager": {
- "message": "Bitwarden Secrets Manager"
+ "message": "Bitwarden Sirr Meneceri"
},
"loggedIn": {
"message": "Giriş edildi."
@@ -2784,19 +2793,19 @@
"message": "Hesab parolu dəyişdirildi."
},
"enabledUpdated2fa": {
- "message": "Fəal/güncəllənmiş iki mərhələli giriş."
+ "message": "İki addımlı giriş saxlanıldı"
},
"disabled2fa": {
- "message": "İki mərhələli giriş sıradan çıxarıldı."
+ "message": "İki addımlı giriş söndürüldü"
},
"recovered2fa": {
- "message": "İki mərhələli girişdən hesab bərpa edildi."
+ "message": "Hesab, iki addımlı girişdən geri qaytarıldı."
},
"failedLogin": {
"message": "Yanlış parol ilə giriş etmə cəhdi uğursuz oldu."
},
"failedLogin2fa": {
- "message": "Yanlış iki mərhələli giriş ilə giriş etmə cəhdi uğursuz oldu."
+ "message": "Yanlış iki addımlı giriş ilə giriş cəhdi uğursuz oldu."
},
"incorrectPassword": {
"message": "Yanlış parol"
@@ -2811,7 +2820,7 @@
"message": "Təşkilat anbarı ixrac edildi."
},
"editedOrgSettings": {
- "message": "Təşkilat tənzimləmələrinə düzəliş edildi."
+ "message": "Təşkilat ayarlarına düzəliş edildi."
},
"createdItemId": {
"message": "$ID$ elementi yaradıldı.",
@@ -3249,28 +3258,28 @@
"message": "Bitmə tarixi"
},
"verifyEmail": {
- "message": "E-poçtu təsdiqlə"
+ "message": "E-poçtu doğrula"
},
"verifyEmailDesc": {
- "message": "Bütün özəlliklərə müraciət etmək üçün e-poçt ünvanınızı təsdiqləməlisiniz."
+ "message": "Bütün özəlliklərə müraciətin kilidini açmaq üçün hesabınızın e-poçt ünvanını doğrulayın."
},
"verifyEmailFirst": {
- "message": "Əvvəlcə hesabınızın e-poçt ünvanı təsdiqlənməlidir."
+ "message": "Əvvəlcə hesabınızın e-poçt ünvanı doğrulanmalıdır."
},
"checkInboxForVerification": {
- "message": "Təsdiqləmə bağlantısı üçün e-poçt gələn qutunuzu yoxlayın."
+ "message": "Doğrulama keçidi üçün e-poçt gələn qutunuzu yoxlayın."
},
"emailVerified": {
- "message": "E-poçtunuz təsdiqləndi."
+ "message": "Hesab e-poçtu doğrulandı"
},
"emailVerifiedFailed": {
- "message": "E-poçtunuz təsdiqlənə bilmir. Yeni bir təsdiqləmə e-poçtu göndərməyə çalışın."
+ "message": "E-poçtunuz doğrulana bilmir. Yeni bir doğrulama e-poçtu göndərməyə çalışın."
},
"emailVerificationRequired": {
- "message": "E-poçt təsdiqləməsi tələb olunur"
+ "message": "E-poçtun doğrulanması tələb olunur"
},
"emailVerificationRequiredDesc": {
- "message": "Bu özəlliyi istifadə etmək üçün e-poçtunuzu təsdiqləməlisiniz."
+ "message": "Bu özəlliyi istifadə etmək üçün e-poçtunuzu doğrulamalısınız."
},
"updateBrowser": {
"message": "Brauzeri güncəllə"
@@ -3309,19 +3318,19 @@
"message": "E-poçtu xatırla"
},
"recoverAccountTwoStepDesc": {
- "message": "Hesabınıza normal iki mərhələli giriş metodları ilə müraciət edə bilmirsinizsə, hesabınızdakı bütün iki mərhələli provayderlərini sıradan çıxartmaq üçün iki mərhələli giriş bərpa kodunuzu istifadə edə bilərsiniz."
+ "message": "Hesabınıza normal iki addımlı giriş üsulları ilə müraciət edə bilmirsinizsə, hesabınızdakı bütün iki addımlı provayderləri söndürmək üçün iki addımlı giriş üzrə geri qaytarma kodunuzu istifadə edə bilərsiniz."
},
"recoverAccountTwoStep": {
- "message": "İki mərhələli giriş ilə hesabı bərpa edin"
+ "message": "İki addımlı giriş ilə hesabı geri qaytarın"
},
"twoStepRecoverDisabled": {
- "message": "İki mərhələli giriş, hesabınızda sıradan çıxarıldı."
+ "message": "İki addımlı giriş, hesabınızda söndürüldü."
},
"learnMore": {
"message": "Daha ətraflı"
},
"deleteRecoverDesc": {
- "message": "Hesabınızı bərpa etmək və silmək üçün e-poçtunuzu daxil edin."
+ "message": "Hesabınızı geri qaytarmaq və silmək üçün e-poçtunuzu aşağıda daxil edin."
},
"deleteRecoverEmailSent": {
"message": "Əgər hesabınız mövcuddursa, daha çox təlimat ehtiva edən bir e-poçt göndərəcəyik."
@@ -3339,7 +3348,7 @@
"message": "Təşkilatı sil"
},
"deletingOrganizationContentWarning": {
- "message": "$ORGANIZATION$ təşkilatının və bütün əlaqəli verilənlərinin silinməsini təsdiqləmək üçün ana parolu daxil edin. $ORGANIZATION$ anbar verilənləri bunları ehtiva edir:",
+ "message": "$ORGANIZATION$ təşkilatının və bütün əlaqəli datanın silinməsini təsdiqləmək üçün ana parolu daxil edin. $ORGANIZATION$ anbar dataları da daxildir:",
"placeholders": {
"organization": {
"content": "$1",
@@ -3366,13 +3375,13 @@
"message": "Təşkilat və əlaqəli bütün verilənləri silindi."
},
"organizationUpdated": {
- "message": "Təşkilat güncəlləndi"
+ "message": "Təşkilat saxlanıldı"
},
"taxInformation": {
"message": "Vergi məlumatı"
},
"taxInformationDesc": {
- "message": "ABŞ daxili müştərilə üçün, vergi tələblərini qarşılamaq üçün ZIP kod tələb olunur, digər ölkələr üçün ixtiyari olaraq fakturalarınızda görünməsi üçün vergi eyniləşdirmə nömrəsi (ƏDV/GST) və/və ya ünvanı qeyd edə bilərsiniz."
+ "message": "ABŞ daxili müştərilərə vergi tələblərini qarşılamaq üçün ZIP kod tələb olunur, digər ölkələr üçün ixtiyari olaraq fakturalarınızda görünməsi məqsədilə vergi identifikasiya nömrəsi (ƏDV/GST) və/və ya ünvanı qeyd edə bilərsiniz."
},
"billingPlan": {
"message": "Plan",
@@ -3383,7 +3392,7 @@
"description": "A billing plan/package. For example: Families, Teams, Enterprise, etc."
},
"changeBillingPlanUpgrade": {
- "message": "Aşağıdakı məlumatları qeyd edərək hesabınızı başqa bir plana yüksəldin. Zəhmət olmasa hesaba aktiv bir ödəniş metodu əlavə etdiyinizə əmin olun.",
+ "message": "Aşağıdakı məlumatları qeyd edərək hesabınızı başqa bir plana yüksəldin. Lütfən hesaba aktiv bir ödəniş metodu əlavə etdiyinizə əmin olun.",
"description": "A billing plan/package. For example: Families, Teams, Enterprise, etc."
},
"invoiceNumber": {
@@ -3403,19 +3412,19 @@
"message": "Fakturanı endir"
},
"verifyBankAccount": {
- "message": "Bank hesabını təsdiqlə"
+ "message": "Bank hesabını doğrula"
},
"verifyBankAccountDesc": {
- "message": "Bank hesabınıza iki ədəd mikro depozit qoyduq (görünməsi 1-2 iş günü çəkə bilər). Bankınızı təsdiqləmək üçün bu məbləğləri daxil edin."
+ "message": "Bank hesabınıza iki ədəd mikro depozit qoyduq (görünməsi 1-2 iş günü çəkə bilər). Bank hesabını doğrulamaq üçün bu məbləğləri daxil edin."
},
"verifyBankAccountInitialDesc": {
- "message": "Bank hesabı ilə ödəniş yalnız ABŞ-dakı müştərilə üçün əlçatandır. Bank hesabınızı təsdiqləməyiniz tələb olunacaq. Növbəti 1-2 iş günü ərzində iki ədəd mikro depozit qoyacağıq. Bank hesabınızı təsdiqləməyiniz üçün bu məbləğləri təşkilatınızın faktura səhifəsində daxil edin."
+ "message": "Bank hesabı ilə ödəniş yalnız ABŞ-dəki müştərilə üçün əlçatandır. Bank hesabınızı doğrulamağınız tələb olunacaq. Növbəti 1-2 iş günü ərzində iki ədəd mikro depozit qoyacağıq. Bank hesabınızı doğrulamaq üçün bu məbləğləri təşkilatınızın faktura səhifəsində daxil edin."
},
"verifyBankAccountFailureWarning": {
- "message": "Bank hesabınızın təsdiqlənməməsi, ödənişin edilməməsinə və abunəliyinizin sıradan çıxarılmasına səbəb olacaq."
+ "message": "Bank hesabınızın doğrulanmaması, ödənişin edilməməsinə və abunəliyinizin dayandırılmasına səbəb olacaq."
},
"verifiedBankAccount": {
- "message": "Bank hesabı təsdiqləndi."
+ "message": "Bank hesabı doğrulandı"
},
"bankAccount": {
"message": "Bank hesabı"
@@ -3456,7 +3465,7 @@
"message": "Abunəliyiniz üçün bir limit müəyyən edin. Bu limitə çatanda, yeni istifadəçiləri dəvət edə bilməyəcəksiniz."
},
"limitSmSubscriptionDesc": {
- "message": "Set a seat limit for your Secrets Manger subscription. Once this limit is reached, you will not be able to invite new members."
+ "message": "Sirr Menecerinə abunəliyiniz üçün bir limit müəyyən edin. Bu limitə çatanda, yeni istifadəçiləri dəvət edə bilməyəcəksiniz."
},
"maxSeatLimit": {
"message": "Maksimum yer limiti (ixtiyari)",
@@ -3495,13 +3504,13 @@
"message": "Abunəlik güncəlləndi"
},
"subscribedToSecretsManager": {
- "message": "Abunəlik güncəlləndi. Artıq \"Secrets Menecer\"ə müraciətiniz var."
+ "message": "Abunəlik güncəlləndi. Artıq \"Sirr Meneceri\"nə müraciətiniz var."
},
"additionalOptions": {
"message": "Əlavə seçimlər"
},
"additionalOptionsDesc": {
- "message": "Abunəliyin idarə edilməsi üzrə əlavə kömək üçün zəhmət olmasa Müştəri Dəstəyi ilə əlaqə saxlayın."
+ "message": "Abunəliyin idarə edilməsi üzrə əlavə kömək üçün lütfən Müştəri Dəstəyi ilə əlaqə saxlayın."
},
"subscriptionUserSeatsUnlimitedAutoscale": {
"message": "Abunəliyinizə edilən düzəlişlər, faktura cəminizdə nisbətli dəyişikliklərlə nəticələnəcək. Yeni dəvət edilən istifadəçilər abunəlik yerlərini aşsa, əlavə istifadəçilər üçün nisbətli ödəniş dərhal alınacaq."
@@ -3534,7 +3543,7 @@
}
},
"subscriptionFamiliesPlan": {
- "message": "Planınızı yüksəltmədən $COUNT$ istifadəçidən çoxunu dəvət edə bilməzsiniz. Zəhmət olmasa yüksəltmək üçün Müştəri Dəstəyi ilə əlaqə saxlayın.",
+ "message": "Planınızı yüksəltmədən $COUNT$ istifadəçidən çoxunu dəvət edə bilməzsiniz. Lütfən yüksəltmək üçün Müştəri Dəstəyi ilə əlaqə saxlayın.",
"placeholders": {
"count": {
"content": "$1",
@@ -3573,7 +3582,7 @@
"message": "İstifadəçi yerlərinin götürülməsi, növbəti faktura ödənişinizə kredit kimi görünəcək faktura cəminizdə dəyişikliklərə səbəb olacaq."
},
"adjustedSeats": {
- "message": "$AMOUNT$ istifadəçi yeri nizamlandı.",
+ "message": "$AMOUNT$ istifadəçi yeri ayarlandı.",
"placeholders": {
"amount": {
"content": "$1",
@@ -3591,7 +3600,7 @@
"message": "Daha yaxşı güvənlik təqdim etmək üçün şifrələmə sxemini dəyişdirdik. Ana parolunuzu aşağıda daxil edərək şifrələmə açarınızı güncəlləyin."
},
"updateEncryptionKeyWarning": {
- "message": "Şifrələmə açarını güncəllədikdən sonra, hazırda istifadə etdiyiniz (mobil tətbiq və ya brauzer genişləndirmələri kimi) bütün Bitwarden tətbiqlərində çıxış edib yenidən giriş etməlisiniz. Çıxış edib təkrar giriş etməmək (yeni şifrələmə açarının endirilməsi prosesi) verilənlərin zədələnməsi ilə nəticələnə bilər. Avtomatik olaraq çıxış etməyə çalışacağıq, bu gecikə bilər."
+ "message": "Şifrələmə açarını güncəllədikdən sonra, hazırda istifadə etdiyiniz (mobil tətbiq və ya brauzer uzantıları kimi) bütün Bitwarden tətbiqlərində çıxış edib yenidən giriş etməlisiniz. Çıxış edib təkrar giriş etməmək (yeni şifrələmə açarının endirilməsi prosesi) dataların zədələnməsi ilə nəticələnə bilər. Avtomatik olaraq çıxış etməyə çalışacağıq, bu gecikə bilər."
},
"updateEncryptionKeyExportWarning": {
"message": "Saxladığınız bütün şifrələmə ixracları da yararsız olacaq."
@@ -3687,7 +3696,7 @@
"message": "Dayandırılmış təşkilatlara müraciət edilə bilməz. Lütfən kömək üçün təşkilatınızın sahibi ilə əlaqə saxlayın."
},
"secretsCannotCreate": {
- "message": "Secrets cannot be created in suspended organizations. Please contact your organization owner for assistance."
+ "message": "Dayandırılmış təşkilatlarda sirlər yaradıla bilməz. Lütfən kömək üçün təşkilatınızın sahibi ilə əlaqə saxlayın."
},
"projectsCannotCreate": {
"message": "Layihələr dayandırılmış təşkilatlarda yaradıla bilməz. Lütfən kömək üçün təşkilatınızın sahibi ilə əlaqə saxlayın."
@@ -3762,11 +3771,11 @@
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"fingerprintEnsureIntegrityVerify": {
- "message": "Şifrələmə açarlarının bütövlüyünü təmin etmək üçün, davam etməzdən əvvəl istifadəçinin barmaq izi ifadəsini təsdiqləyin.",
+ "message": "Şifrələmə açarlarının bütövlüyünü təmin etmək üçün, davam etməzdən əvvəl istifadəçinin barmaq izi ifadəsini doğrulayın.",
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"fingerprintMatchInfo": {
- "message": "Zəhmət olmasa anbarınızın kilidinin açıq olduğuna və Barmaq izi ifadəsinin digər cihazla uyğunlaşdığına əmin olun."
+ "message": "Lütfən anbarınızın kilidinin açıq olduğuna və Barmaq izi ifadəsinin digər cihazla uyğunlaşdığına əmin olun."
},
"fingerprintPhraseHeader": {
"message": "Barmaq izi ifadəsi"
@@ -3783,7 +3792,7 @@
"message": "API açar"
},
"apiKeyDesc": {
- "message": "API açarınız Bitwarden ictimai API-sini təsdiqləmək üçün istifadə edilə bilər."
+ "message": "API açarınız Bitwarden hər kəsə açıq API-sində kimlik doğrulaması üçün istifadə edilə bilər."
},
"apiKeyRotateDesc": {
"message": "API açarı döndərmək, əvvəlki açarı yararsız edəcək. Hazırkı açarın artıq təhlükəsiz olmadığına inanırsınızsa, API açarınızı döndərə bilərsiniz."
@@ -3792,10 +3801,10 @@
"message": "API açarınızın təşkilata tam müraciəti var. Gizli saxlanılmalıdır."
},
"userApiKeyDesc": {
- "message": "API açarınız Bitwarden CLI-sini təsdiqləmək üçün istifadə edilə bilər."
+ "message": "API açarınız Bitwarden CLI-də kimlik doğrulaması üçün istifadə edilə bilər."
},
"userApiKeyWarning": {
- "message": "API açarınız, alternativ bir kimlik təsdiqləmə mexanizmidir. Gizli saxlanılmalıdır."
+ "message": "API açarınız, alternativ bir kimlik doğrulama mexanizmidir. Gizli saxlanılmalıdır."
},
"oauth2ClientCredentials": {
"message": "OAuth 2.0 müştəri məlumatları",
@@ -3811,7 +3820,7 @@
"message": "Ən azı bir kolleksiya seçməlisiniz."
},
"couldNotChargeCardPayInvoice": {
- "message": "Kartınızdan ödənişi ala bilmədik. Zəhmət olmasa aşağıda siyahılanan ödənilməmiş fakturanı göstərin və ödəyin."
+ "message": "Kartınızdan ödənişi ala bilmədik. Lütfən aşağıda sadalanan ödənilməmiş fakturanı göstərin və ödəyin."
},
"inAppPurchase": {
"message": "Tətbiq daxili satın alma"
@@ -3832,22 +3841,22 @@
"message": "Ana parol tələbləri"
},
"masterPassPolicyDesc": {
- "message": "Ana parol gücü üçün minimum tələbləri tənzimlə."
+ "message": "Ana parol gücü üçün tələbləri ayarla."
},
"twoStepLoginPolicyTitle": {
- "message": "İki mərhələli girişi tələb et"
+ "message": "İki addımlı girişi tələb et"
},
"twoStepLoginPolicyDesc": {
- "message": "İstifadəçilərin fərdi hesablarında \"iki mərhələli giriş\"i istifadə etmələrini məcburi et."
+ "message": "İstifadəçilərin \"iki addımlı giriş\"i qurmasını tələb et."
},
"twoStepLoginPolicyWarning": {
- "message": "Sahib və ya Administrator olmayan və fərdi hesablarında \"iki mərhələli giriş\"i fəallaşdırmayan təşkilat üzvləri təşkilatdan çıxarılacaq və dəyişiklik haqqında onları məlumatlandıran e-poçt göndəriləcək."
+ "message": "Sahib və ya Administrator olmayan və fərdi hesablarında \"iki addımlı giriş\"i fəallaşdırmayan təşkilat üzvləri təşkilatdan çıxarılacaq və dəyişiklik haqqında onları məlumatlandıran e-poçt göndəriləcək."
},
"twoStepLoginPolicyUserWarning": {
- "message": "İstifadəçi hesabında \"iki mərhələli giriş\"in fəallaşdırılmasını tələb edən təşkilatın üzvüsünüz. İki mərhələli giriş provayderlərinin hamısını sıradan çıxartsanız, bu təşkilatdan avtomatik olaraq çıxarılacaqsınız."
+ "message": "İstifadəçi hesabında \"iki addımlı giriş\"in qurulmasını tələb edən təşkilatın üzvüsünüz. İki addımlı giriş provayderlərinin hamısını söndürsəniz, bu təşkilatdan avtomatik olaraq çıxarılacaqsınız."
},
"passwordGeneratorPolicyDesc": {
- "message": "Parol yaradıcı konfiqurasiyası üçün minimum tələbləri tənzimləyin."
+ "message": "Parol yaradıcı üçün tələbləri ayarla."
},
"passwordGeneratorPolicyInEffect": {
"message": "Bir və ya daha çox təşkilat siyasətləri yaradıcı seçimlərinizə təsir edir."
@@ -3910,7 +3919,7 @@
"message": "Kilidli bir anbar, təkrar müraciət etmək üçün ana parolunuzu yenidən yazmağınızı tələb edir."
},
"vaultTimeoutActionLogOutDesc": {
- "message": "Çıxış edilmiş bir anbar, təkrar müraciət etmək üçün yenidən kimlik təsdiqləmə tələb edir."
+ "message": "Anbarınıza yenidən müraciət etmək üçün təkrar kimlik doğrulama tələb olunur."
},
"lock": {
"message": "Kilidlə",
@@ -3981,7 +3990,7 @@
}
},
"vaultTimeoutLogOutConfirmation": {
- "message": "Çıxış edəndə, anbarınıza bütün müraciətiniz dayanacaq və vaxt bitməsindən sonra onlayn kimlik təsdiqləməsi tələb olunacaq. Bu tənzimləməni istifadə etmək istədiyinizə əminsiniz?"
+ "message": "Çıxış edəndə, anbarınıza bütün müraciətiniz dayanacaq və vaxt bitməsindən sonra onlayn kimlik doğrulaması tələb olunacaq. Bu ayarı istifadə etmək istədiyinizə əminsiniz?"
},
"vaultTimeoutLogOutConfirmationTitle": {
"message": "Vaxt bitmə əməliyyat təsdiqi"
@@ -4002,7 +4011,7 @@
"message": "Vergi məlumatlarınız güncəlləndi."
},
"setMasterPassword": {
- "message": "Ana parolu tənzimlə"
+ "message": "Ana parolu ayarla"
},
"identifier": {
"message": "İdentifikator"
@@ -4011,13 +4020,13 @@
"message": "Təşkilat identifikatoru"
},
"ssoLogInWithOrgIdentifier": {
- "message": "Təşkilatınızın tək daxil olma portalını istifadə edərək giriş edin. Başlatmaq üçün zəhmət olmasa təşkilatınızın identifikatorunu daxil edin."
+ "message": "Təşkilatınızın tək daxil olma portalını istifadə edərək giriş edin. Başlatmaq üçün lütfən təşkilatınızın identifikatorunu daxil edin."
},
"enterpriseSingleSignOn": {
"message": "Müəssisə üçün tək daxil olma"
},
"ssoHandOff": {
- "message": "Bu vərəqi indi bağlayıb genişləndirmədə davam edə bilərsiniz."
+ "message": "Bu vərəqi indi bağlayıb uzantıda davam edə bilərsiniz."
},
"includeAllTeamsFeatures": {
"message": "Bütün komanda özəllikləri, əlavə olaraq:"
@@ -4038,13 +4047,13 @@
}
},
"includeSsoAuthentication": {
- "message": "SAML2.0 və OpenID Connect SSO Kimlik təsdiqləmə"
+ "message": "SAML2.0 və OpenID Connect vasitəsilə SSO Kimlik doğrulaması"
},
"includeEnterprisePolicies": {
"message": "Müəssisə siyasətləri"
},
"ssoValidationFailed": {
- "message": "SSO təsdiqləmə uğursuz oldu"
+ "message": "SSO doğrulaması uğursuz oldu"
},
"ssoIdentifierRequired": {
"message": "Təşkilat identifikatoru tələb olunur."
@@ -4072,13 +4081,13 @@
"message": "İstifadəçilərin digər təşkilatlara qoşulmasını məhdudlaşdırın."
},
"singleOrgBlockCreateMessage": {
- "message": "Hazırkı təşkilatınızın, bir neçə təşkilata qoşulmasına icazə verməyən bir siyasəti var. Zəhmət olmasa təşkilat adminləri ilə əlaqə saxlayın və ya fərqli bir Bitwarden hesabı ilə qeydiyyatdan keçin."
+ "message": "Hazırkı təşkilatınızın, bir neçə təşkilata qoşulmasına icazə verməyən bir siyasəti var. Lütfən təşkilat adminləri ilə əlaqə saxlayın və ya fərqli bir Bitwarden hesabı ilə qeydiyyatdan keçin."
},
"singleOrgPolicyWarning": {
"message": "Sahib və ya administrator olmayan və hal-hazırda başqa bir təşkilatın üzvü olan istifadəçilər təşkilatınızdan çıxarılacaq."
},
"requireSso": {
- "message": "Tək daxil olma kimlik təsdiqləməsi"
+ "message": "Tək daxil olma kimlik doğrulaması"
},
"requireSsoPolicyDesc": {
"message": "İstifadəçilərin müəssisə kimi \"tək daxil olma\" metodu ilə giriş etməsini məcburi edin."
@@ -4144,14 +4153,14 @@
"message": "Bitmə tarixi"
},
"expirationDateDesc": {
- "message": "Əgər tənzimlənsə, göstərilən tarix və vaxtda \"Send\"ə müraciət başa çatacaq.",
+ "message": "Əgər ayarlanıbsa, göstərilən tarix və vaxtda \"Send\"ə müraciət başa çatacaq.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"maxAccessCount": {
"message": "Maksimal müraciət sayı"
},
"maxAccessCountDesc": {
- "message": "Əgər tənzimlənsə, istifadəçilər maksimal müraciət sayına çatdıqdan sonra bu \"Send\"ə müraciət edə bilməyəcək.",
+ "message": "Əgər ayarlanıbsa, istifadəçilər maksimal müraciət sayına çatdıqdan sonra bu \"Send\"ə müraciət edə bilməyəcək.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"currentAccessCount": {
@@ -4213,7 +4222,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendProtectedPassword": {
- "message": "Bu \"Send\" şifrə ilə qorunur. Davam etmək üçün zəhmət olmasa aşağıda parolu yazın.",
+ "message": "Bu \"Send\" bir parolla qorunur. Davam etmək üçün lütfən aşağıda parolu yazın.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendProtectedPasswordDontKnow": {
@@ -4240,43 +4249,43 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"emergencyAccess": {
- "message": "Fövqəladə vəziyyət müraciəti"
+ "message": "Fövqəladə hal müraciəti"
},
"emergencyAccessDesc": {
- "message": "Etibar etdiyiniz şəxslərə fövqəladə vəziyyət müraciəti verin və ya idarə edin. Etibar etdiyiniz şəxslər, fövqəladə vəziyyətdə hesabınızı görmək və ya təhvil almaq üçün müraciət tələb edə bilər. Sıfır məlumat paylaşımının necə işlədiyi ilə bağlı daha ətraflı və təfsilatlı məlumat üçün kömək səhifəmizi ziyarət edin."
+ "message": "Güvəndiyiniz əlaqələr fövqəladə hal müraciəti verin və ya idarə edin. Güvəndiyiniz əlaqələr, fövqəladə halda hesabınızı Görmək və ya Təhvil almaq üçün müraciət tələb edə bilər. Sıfır məlumat paylaşımının necə işlədiyi ilə bağlı daha ətraflı və detallı məlumat üçün kömək səhifəmizi ziyarət edin."
},
"emergencyAccessOwnerWarning": {
- "message": "Bir və ya daha çox təşkilata sahiblik edirsiniz. Fövqəladə vəziyyət üçün təyin olunmuş şəxsə təhvil alma müraciəti versəniz, təhvil almadan sonra sahib olduğunuz bütün hüquqları istifadə edə bilər."
+ "message": "Bir və ya daha çox təşkilata sahiblik edirsiniz. Fövqəladə hal üçün təyin olunmuş şəxsə təhvil alma müraciəti versəniz, təhvil aldıqdan sonra sahib olduğunuz bütün hüquqları istifadə edə bilər."
},
"trustedEmergencyContacts": {
- "message": "Etibar edilən fövqəladə vəziyyət əlaqələri"
+ "message": "Güvənli fövqəladə hal əlaqələri"
},
"noTrustedContacts": {
- "message": "Hələ ki, heç bir fövqəladə vəziyyət əlaqəsi əlavə etmədiniz, başlamaq üçün etibar etdiyiniz bir əlaqəni dəvət edin."
+ "message": "Hələ ki, heç bir fövqəladə hal əlaqəsi əlavə etmədiniz, başlamaq üçün güvəndiyiniz bir əlaqəni dəvət edin."
},
"addEmergencyContact": {
- "message": "Fövqəladə vəziyyət əlaqəsi əlavə et"
+ "message": "Fövqəladə hal əlaqəsi əlavə et"
},
"designatedEmergencyContacts": {
- "message": "Fövqəladə vəziyyət əlaqəsi kimi təyin edildi"
+ "message": "Fövqəladə hal əlaqəsi kimi təyin edildi"
},
"noGrantedAccess": {
- "message": "Hələ ki, heç kimi fövqəladə vəziyyət əlaqəsi kimi təyin etmədiniz."
+ "message": "Hələ ki, heç kimi fövqəladə hal əlaqəsi kimi təyin etməmisiniz."
},
"inviteEmergencyContact": {
- "message": "Fövqəladə vəziyyət əlaqəsi üçün dəvət"
+ "message": "Fövqəladə hal əlaqəsi üçün dəvət"
},
"editEmergencyContact": {
- "message": "Fövqəladə vəziyyət əlaqəsinə düzəliş et"
+ "message": "Fövqəladə hal əlaqəsinə düzəliş et"
},
"inviteEmergencyContactDesc": {
- "message": "Aşağıda Bitwarden hesabının e-poçt ünvanını daxil edərək yeni bir fövqəladə vəziyyət əlaqəsini dəvət edə bilərsiniz. Əgər Bitwarden hesabı yoxdursa, yeni bir hesab yaratmaları üçün istək göndəriləcək."
+ "message": "Aşağıda Bitwarden hesabının e-poçt ünvanını daxil edərək yeni bir fövqəladə hal əlaqəsini dəvət edə bilərsiniz. Əgər Bitwarden hesabı yoxdursa, yeni bir hesab yaratmaları üçün istək göndəriləcək."
},
"emergencyAccessRecoveryInitiated": {
- "message": "Fövqəladə vəziyyət müraciəti başladıldı"
+ "message": "Fövqəladə hal müraciəti başladıldı"
},
"emergencyAccessRecoveryApproved": {
- "message": "Fövqəladə vəziyyət müraciəti təsdiqləndi"
+ "message": "Fövqəladə hal müraciəti təsdiqləndi"
},
"viewDesc": {
"message": "Anbarınızdakı bütün elementlərə baxa bilər."
@@ -4309,7 +4318,7 @@
"message": "Dəvət edilən istifadəçi."
},
"acceptEmergencyAccess": {
- "message": "Yuxarıdakı istifadəçi üçün fövqəladə vəziyyət zamanı əlaqə qurulacaq şəxs olaraq dəvət edildiniz. Dəvəti qəbul etmək üçün Bitwarden hesabına giriş etməli və ya yeni bir hesab yaratmalısınız."
+ "message": "Yuxarıdakı istifadəçi üçün fövqəladə hal zamanı əlaqə qurulacaq şəxs olaraq dəvət edildiniz. Dəvəti qəbul etmək üçün Bitwarden hesabına giriş etməli və ya yeni bir hesab yaratmalısınız."
},
"emergencyInviteAcceptFailed": {
"message": "Dəvət qəbul edilə bilmədi. İstifadəçidən yeni bir dəvət göndərməsini xahiş edin."
@@ -4324,13 +4333,13 @@
}
},
"emergencyInviteAcceptedDesc": {
- "message": "Kimliyiniz təsdiqləndikdən sonra bu istifadəçi üçün fövqəladə vəziyyət seçimlərinə müraciət edə bilərsiniz. Bu baş verəndə sizə bir e-poçt göndərəcəyik."
+ "message": "Kimliyiniz təsdiqləndikdən sonra bu istifadəçiyə aid fövqəladə hal seçimlərinə müraciət edə bilərsiniz. Bu baş verəndə sizə bir e-poçt göndərəcəyik."
},
"requestAccess": {
"message": "Müraciət tələb et"
},
"requestAccessConfirmation": {
- "message": "Fövqəladə vəziyyət müraciəti üçün tələb göndərmək istədiyinizə əminsiniz? İstifadəçi tələbi əllə qəbul etdikdən və ya $WAITTIME$ gün keçdikdən sonra müraciət təmin ediləcək.",
+ "message": "Fövqəladə hal müraciəti üçün tələb göndərmək istədiyinizə əminsiniz? İstifadəçi tələbi əllə qəbul etdikdən və ya $WAITTIME$ gün keçdikdən sonra müraciət təmin ediləcək.",
"placeholders": {
"waittime": {
"content": "$1",
@@ -4339,7 +4348,7 @@
}
},
"requestSent": {
- "message": "$USER$ istifadəçisinə fövqəladə vəziyyət müraciəti göndərildi. Davam etmək mümkün olanda, sizi e-poçtla məlumatlandıracağıq.",
+ "message": "$USER$ istifadəçisinə fövqəladə hal müraciəti göndərildi. Davam etmək mümkün olanda, sizi e-poçtla məlumatlandıracağıq.",
"placeholders": {
"user": {
"content": "$1",
@@ -4354,7 +4363,7 @@
"message": "Rədd et"
},
"approveAccessConfirmation": {
- "message": "Fövqəladə vəziyyət müraciətini təsdiqləmək istədiyinizə əminsiniz? Bu, $USER$ istifadəçisinə hesabınızda $ACTION$ əməliyyatlarını icra etmə icazəsi verəcək.",
+ "message": "Fövqəladə hal müraciətini təsdiqləmək istədiyinizə əminsiniz? Bu, $USER$ istifadəçisinə hesabınızda $ACTION$ əməliyyatlarını icra etmə icazəsi verəcək.",
"placeholders": {
"user": {
"content": "$1",
@@ -4367,10 +4376,10 @@
}
},
"emergencyApproved": {
- "message": "Fövqəladə vəziyyət müraciəti təsdiqləndi."
+ "message": "Fövqəladə hal müraciəti təsdiqləndi"
},
"emergencyRejected": {
- "message": "Fövqəladə vəziyyət müraciəti rədd edildi"
+ "message": "Fövqəladə hal müraciəti rədd edildi"
},
"passwordResetFor": {
"message": "$USER$ üçün parol sıfırlandı. Artıq yeni parol ilə giriş edə bilərsiniz.",
@@ -4416,7 +4425,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendOptionsPolicyDesc": {
- "message": "\"Send\" yaratma və düzəliş etmə üçün seçimləri tənzimləyin.",
+ "message": "\"Send\" yaratma və düzəliş etmə seçimlərini ayarla.",
"description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendOptionsExemption": {
@@ -4527,7 +4536,7 @@
"message": "İstifadəçiləri idarə et"
},
"manageAccountRecovery": {
- "message": "Hesab bərpasını idarə et"
+ "message": "Hesab geri qaytarılmasını idarə et"
},
"disableRequiredError": {
"message": "Bu siyasətin sıradan çıxarıla bilməsi üçün $POLICYNAME$ siyasətini əllə sıradan çıxartmalısınız.",
@@ -4644,28 +4653,28 @@
"message": "Silinmə və son istifadə tarixlərini saxlayarkən xəta baş verdi."
},
"webAuthnFallbackMsg": {
- "message": "2FA-nı təsdiqləmək üçün zəhmət olmasa aşağıdakı düyməyə klikləyin."
+ "message": "2FA-nı doğrulamaq üçün lütfən aşağıdakı düyməyə klikləyin."
},
"webAuthnAuthenticate": {
- "message": "WebAuthn təsdiqləmə"
+ "message": "WebAuthn kimlik doğrulama"
},
"webAuthnNotSupported": {
"message": "WebAuthn bu brauzerdə dəstəklənmir."
},
"webAuthnSuccess": {
- "message": "WebAuthn uğurla təsdiqləndi! Bu vərəqi bağlaya bilərsiniz."
+ "message": "WebAuthn kimliyi doğrulaması uğurlu oldu! Bu vərəqi bağlaya bilərsiniz."
},
"hintEqualsPassword": {
"message": "Parol məsləhəti, parolunuzla eyni ola bilməz."
},
"enrollAccountRecovery": {
- "message": "Hesab bərpasında qeydiyyatdan keçin"
+ "message": "Hesab geri qaytarılmasına yazıl"
},
"enrolledAccountRecovery": {
- "message": "Hesab bərpasında qeydiyyatdan keçildi"
+ "message": "Hesab geri qaytarılmasına yazıldınız"
},
"withdrawAccountRecovery": {
- "message": "Hesab bərpasından çəkil"
+ "message": "Hesab geri qaytarılması üzrə razılığı geri götür"
},
"enrollPasswordResetSuccess": {
"message": "Qeydiyyat uğurludur!"
@@ -4674,7 +4683,7 @@
"message": "Çıxma uğurludur!"
},
"eventEnrollAccountRecovery": {
- "message": "$ID$ istifadəçisi hesab bərpasında qeydiyyatdan keçdi.",
+ "message": "$ID$ istifadəçisi hesab geri qaytarılmasına yazıldı.",
"placeholders": {
"id": {
"content": "$1",
@@ -4683,7 +4692,7 @@
}
},
"eventWithdrawAccountRecovery": {
- "message": "$ID$ istifadəçisi hesab bərpasından çəkildi.",
+ "message": "$ID$ istifadəçisi hesab geri qaytarılmasından ayrıldı.",
"placeholders": {
"id": {
"content": "$1",
@@ -4743,13 +4752,13 @@
"message": "Qeydiyyat, təşkilat administratorlarına ana parolunuzu dəyişdirmə icazəsi verəcək. Qeydiyyatdan keçmək istədiyinizə əminsiniz?"
},
"accountRecoveryPolicy": {
- "message": "Hesab bərpa idarəsi"
+ "message": "Hesab geri qaytarma administrasiyası"
},
"accountRecoveryPolicyDesc": {
- "message": "Şifrələmə üsuluna əsasən, ana parollar və güvənilən cihazlar unudulduqda və ya itirildikdə hesabları bərpa edin."
+ "message": "Şifrələmə üsuluna əsasən, ana parollar və güvənilən cihazlar unudulduqda və ya itirildikdə hesabları geri qaytarın."
},
"accountRecoveryPolicyWarning": {
- "message": "Ana parolları olan mövcud hesablar, administratorların öz hesablarını bərpa edə bilməsindən əvvəl üzvlərin öz-özünə yazılmalarını tələb edəcək. Avto-yazılma, yeni üzvlər üçün hesab bərpasını işə salacaq."
+ "message": "Ana parolları olan mövcud hesablar, administratorların öz hesablarını geri qaytara bilməsi üçün üzvlərin öz-özünə yazılmalarını tələb edəcək. Avto-yazılma, yeni üzvlər üçün hesabın geri qaytarılmasını işə salacaq."
},
"accountRecoverySingleOrgRequirementDesc": {
"message": "Bu siyasət aktivləşdirilməzdən əvvəl, \"Tək təşkilat\" Müəssisə siyasəti işə salınmalıdır."
@@ -4782,7 +4791,7 @@
"message": "Ana parol təsdiqi"
},
"passwordConfirmationDesc": {
- "message": "Bu əməliyyat qorumalıdır, davam etmək üçün zəhmət olmasa kimliyinizi təsdiqləmək üçün ana parolunuzu təkrar daxil edin."
+ "message": "Bu əməliyyat qorumalıdır, davam etmək üçün lütfən kimliyinizi doğrulamaq məqsədilə ana parolunuzu yenidən daxil edin."
},
"reinviteSelected": {
"message": "Dəvətləri yenidən göndər"
@@ -4857,7 +4866,7 @@
"message": "Xəta"
},
"accountRecoveryManageUsers": {
- "message": "\"Hesab bərpasını idarə et\" icazəsi ilə birgə \"İstifadəçiləri idarə et\"ə icazə verilməlidir"
+ "message": "İdarə edilən istifadəçilərə həm də \"Hesab geri qaytarılmasını idarə et\" icazəsi verilməlidir"
},
"setupProvider": {
"message": "Provayder quraşdırması"
@@ -4866,7 +4875,7 @@
"message": "Yeni bir provayder quraşdırılması üçün dəvət edildiniz. Davam etmək üçün yeni bir Bitwarden hesabı açın və ya mövcud hesaba giriş edin."
},
"setupProviderDesc": {
- "message": "Provayderin quraşdırılmasını tamamlamaq üçün zəhmət olmasa aşağıdakı məlumatları daxil edin. Sual yaranarsa, müştəri dəstəyi ilə əlaqə saxlayın."
+ "message": "Provayderin quraşdırılmasını tamamlamaq üçün lütfən aşağıdakı məlumatları daxil edin. Sual yaranarsa, müştəri dəstəyi ilə əlaqə saxlayın."
},
"providerName": {
"message": "Provayder adı"
@@ -5028,7 +5037,7 @@
}
},
"vaultTimeoutPolicyWithActionInEffect": {
- "message": "Təşkilatınızın siyasətləri, anbarınızın vaxt bitişinə təsir edir. Anbar vaxt bitişi üçün icazə verilən maksimum vaxt $HOURS$ saat $MINUTES$ dəqiqədir. Anbar vaxt bitişi əməliyyatı $ACTION$ olaraq tənzimləndi.",
+ "message": "Təşkilatınızın siyasətləri, anbarınızın vaxt bitişinə təsir edir. Anbar vaxt bitişi üçün icazə verilən maksimum vaxt $HOURS$ saat $MINUTES$ dəqiqədir. Anbar vaxt bitişi əməliyyatı $ACTION$ olaraq ayarlandı.",
"placeholders": {
"hours": {
"content": "$1",
@@ -5045,7 +5054,7 @@
}
},
"vaultTimeoutActionPolicyInEffect": {
- "message": "Təşkilatınızın siyasətləri, anbar vaxt bitişi əməliyyatınızı $ACTION$ olaraq tənzimlədi.",
+ "message": "Təşkilatınızın siyasətləri, anbar vaxt bitişi əməliyyatınızı $ACTION$ olaraq ayarladı.",
"placeholders": {
"action": {
"content": "$1",
@@ -5057,7 +5066,7 @@
"message": "Özəl vaxt"
},
"vaultTimeoutToLarge": {
- "message": "Anbar vaxt bitişi, təşkilatınız tərəfindən tənzimlənən məhdudiyyətləri aşır."
+ "message": "Anbar vaxt bitişi, təşkilatınız tərəfindən ayarlanan məhdudiyyətləri aşır."
},
"vaultCustomTimeoutMinimum": {
"message": "Minimum özəl bitmə vaxtı 1 dəqiqədir."
@@ -5081,7 +5090,7 @@
"message": "Avto-doldurmanı aktivləşdir"
},
"activateAutofillPolicyDesc": {
- "message": "Bütün mövcud və yeni üzvlər üçün brauzer genişləndirməsindəki səhifə yüklənəndə avto-doldurmanı tənzimləməsini aktivləşdirin."
+ "message": "Bütün mövcud və yeni üzvlər üçün brauzer uzantısında səhifə yüklənəndə avto-doldurmanı ayarını aktivləşdirin."
},
"experimentalFeature": {
"message": "Təhlükəli və ya güvənilməyən veb saytlar, səhifə yüklənərkən avto-doldurmanı istifadə edə bilər."
@@ -5141,10 +5150,10 @@
"message": "Əlavə/Özəl ad tələb növləri (vergüllə ayrıldı)"
},
"acrValues": {
- "message": "Tələb edilən kimlik təsdiqləmə kontekst istinad dəyərləri (acr_values)"
+ "message": "Tələb edilən kimlik doğrulama kontekst sinifi istinad dəyərləri"
},
"expectedReturnAcrValue": {
- "message": "Cavab olaraq gözlənilən \"acr\" tələb dəyəri (acr təsdiqləməsi)"
+ "message": "Cavab olaraq gözlənilən \"acr\" tələb dəyəri"
},
"spEntityId": {
"message": "SP Varlıq Kimliyi"
@@ -5171,7 +5180,7 @@
"message": "İddiaların imzalanmasını istəyir"
},
"spValidateCertificates": {
- "message": "Sertifikatları təsdiqlə"
+ "message": "Sertifikatları doğrula"
},
"idpEntityId": {
"message": "Varlıq kimliyi"
@@ -5192,13 +5201,13 @@
"message": "Gedən imzalama alqoritmi"
},
"idpAllowUnsolicitedAuthnResponse": {
- "message": "İstənilməyən kimlik təsdiqləmə cavabına icazə ver"
+ "message": "İstənilməyən kimlik doğrulama cavabına icazə ver"
},
"idpAllowOutboundLogoutRequests": {
"message": "Gedən çıxış tələblərinə icazə ver"
},
"idpSignAuthenticationRequests": {
- "message": "Kimlik təsdiqləmə tələblərini imzala"
+ "message": "Kimlik doğrulama tələblərini imzala"
},
"ssoSettingsSaved": {
"message": "Tək daxil olma konfiqurasiyası saxlanıldı."
@@ -5222,7 +5231,7 @@
"message": "Ailə sirləri üçün paylaşılan kolleksiyalar"
},
"badToken": {
- "message": "Bağlantı artıq etibarlı deyil. Zəhmət olmasa sponsorun təklifi yenidən göndərməsini təmin edin."
+ "message": "Bağlantı artıq etibarlı deyil. Lütfən sponsorun təklifi yenidən göndərməsini təmin edin."
},
"reclaimedFreePlan": {
"message": "Geri alınmış ödənişsiz plan"
@@ -5249,7 +5258,7 @@
"message": "Sizə ödənişsiz bir Bitwarden Ailələr Planı Təşkilatı təklif edildi. Davam etmək üçün, təklifi alan hesaba giriş etməlisiniz."
},
"sponsoredFamiliesAcceptFailed": {
- "message": "Təklif qəbul edilə bilmir. Zəhmət olmasa müəssisə hesabınızdan təklif e-poçtunu təkrar göndərib yenidən sınayın."
+ "message": "Təklif qəbul edilə bilmir. Lütfən müəssisə hesabınızdan təklif e-poçtunu təkrar göndərib yenidən sınayın."
},
"sponsoredFamiliesAcceptFailedShort": {
"message": "Təklif qəbul edilə bilmir. $DESCRIPTION$",
@@ -5324,7 +5333,7 @@
"message": "Açar Bağlayıcı URL-si"
},
"sendVerificationCode": {
- "message": "E-poçtunuza bir təsdiqləmə kodu göndərin"
+ "message": "Doğrulama kodunu e-poçtunuza göndərin"
},
"sendCode": {
"message": "Kod göndər"
@@ -5333,16 +5342,16 @@
"message": "Kod göndərildi"
},
"verificationCode": {
- "message": "Təsdiqləmə kodu"
+ "message": "Doğrulama kodu"
},
"confirmIdentity": {
"message": "Davam etmək üçün kimliyinizi təsdiqləyin."
},
"verificationCodeRequired": {
- "message": "Təsdiq kodu lazımdır."
+ "message": "Doğrulama kodu tələb olunur."
},
"invalidVerificationCode": {
- "message": "Yararsız təsdiqləmə kodu"
+ "message": "Yararsız doğrulama kodu"
},
"convertOrganizationEncryptionDesc": {
"message": "$ORGANIZATION$, öz-özünə sahiblik edən açar serveri ilə SSO istifadə edir. Bu təşkilatın üzvlərinin giriş etməsi üçün artıq ana parol tələb edilməyəcək.",
@@ -5363,17 +5372,17 @@
"message": "Ana parol silindi."
},
"allowSso": {
- "message": "SSO kimlik təsdiqləməsinə icazə ver"
+ "message": "SSO kimlik doğrulamasına icazə ver"
},
"allowSsoDesc": {
- "message": "Qurulduqdan sonra, konfiqurasiyanız saxlanılacaq və üzvləriniz, Kimlik Provayderi üçün kimlik məlumatlarını istifadə edərək kimliklərini təsdiqləyə biləcək."
+ "message": "Qurulduqdan sonra, konfiqurasiyanız saxlanılacaq və üzvlər, Kimlik Provayderi kimlik məlumatlarını istifadə edərək kimliklərini doğrulaya biləcək."
},
"ssoPolicyHelpStart": {
"message": "Bütün üzvlərin SSO ilə",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Use the require single-sign-on authentication policy to require all members to log in with SSO.'"
},
"ssoPolicyHelpAnchor": {
- "message": "tək daxil olma kimlik təsdiqləmə siyasətini tələb et",
+ "message": "tək daxil olma kimlik doğrulama siyasətini tələb et",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Use the require single-sign-on authentication policy to require all members to log in with SSO.'"
},
"ssoPolicyHelpEnd": {
@@ -5384,7 +5393,7 @@
"message": "Üzv şifrə açma seçimləri"
},
"memberDecryptionPassDesc": {
- "message": "Kimlik təsdiqləndikdən sonra üzvlər, Ana Parollarını istifadə edərək anbar verilənlərinin şifrələrini aça biləcək."
+ "message": "Kimlik doğrulandıqdan sonra üzvlər, Ana Parollarını istifadə edərək anbar datalarının şifrələrini aça biləcək."
},
"keyConnector": {
"message": "Açar Bağlayıcı"
@@ -5394,7 +5403,7 @@
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Connect login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their master passwords to decrypt vault data. The require SSO authentication and single organization policies are required to set up Key Connector decryption. Contact Bitwarden Support for set up assistance.'"
},
"memberDecryptionKeyConnectorDescLink": {
- "message": "SSO kimlik təsdiqləməsi və tək təşkilat siyasətləri tələb olunur",
+ "message": "SSO kimlik doğrulaması və tək təşkilat siyasətləri tələb olunur",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Connect login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their master passwords to decrypt vault data. The require SSO authentication and single organization policies are required to set up Key Connector decryption. Contact Bitwarden Support for set up assistance.'"
},
"memberDecryptionKeyConnectorDescEnd": {
@@ -5423,7 +5432,7 @@
"message": "Açar Bağlayıcıya daşındı"
},
"paymentSponsored": {
- "message": "Zəhmət olmasa təşkilatla əlaqələndirmək üçün bir ödəniş metodu təqdim edin. Narahat olmayın, əlavə özəllikləri seçmədiyiniz və ya sponsorluğunuz bitmədiyi müddətcə sizdən heç bir ödəniş tutulmayacaq. "
+ "message": "Lütfən təşkilatla əlaqələndirmək üçün bir ödəniş metodu təqdim edin. Narahat olmayın, əlavə özəllikləri seçmədiyiniz və ya sponsorluğunuz bitmədiyi müddətcə sizdən heç bir ödəniş tutulmayacaq. "
},
"orgCreatedSponsorshipInvalid": {
"message": "Sponsorluq təklifinin müddəti bitdi. 7 günlük sınaq müddətinin sonunda ödəniş tutulmaması üçün yaratdığınız təşkilatı silə bilərsiniz. Əks halda, təşkilatı olduğu kimi saxlamaq və faktura məsuliyyətini öz üzərinizə götürmək üçün bu istəyi bağlaya bilərsiniz."
@@ -5453,22 +5462,22 @@
"message": "ÖDƏNİŞSİZ sponsorluq"
},
"viewBillingSyncToken": {
- "message": "Faktura eyniləşdirmə tokeninə bax"
+ "message": "Faktura sinxr tokeninə bax"
},
"generateBillingSyncToken": {
- "message": "Faktura eyniləşdirmə tokenini yarat"
+ "message": "Faktura sinxr tokenini yarat"
},
"copyPasteBillingSync": {
- "message": "Bu tokeni kopyalayın və öz-özünə sahiblik edən təşkilatınızın Faktura eyniləşdirmə tənzimləmələrində yapışdırın."
+ "message": "Bu tokeni kopyalayın və öz-özünə sahiblik edən təşkilatınızın Faktura sinxr ayarlarında yapışdırın."
},
"billingSyncCanAccess": {
- "message": "Faktura eyniləşdirmə tokeniniz, bu təşkilatın abunəlik tənzimləmələrinə müraciət edə və düzəliş edə bilər."
+ "message": "Faktura sinxr tokeniniz, bu təşkilatın abunəlik ayarlarına müraciət edə və düzəliş edə bilər."
},
"manageBillingSync": {
- "message": "Faktura eyniləşdirməni idarə et"
+ "message": "Faktura sinxr idarə et"
},
"setUpBillingSync": {
- "message": "Faktura eyniləşdirməni quraşdır"
+ "message": "Faktura sinxr quraşdır"
},
"generateToken": {
"message": "Token yarat"
@@ -5477,28 +5486,28 @@
"message": "Tokeni döndər"
},
"rotateBillingSyncTokenWarning": {
- "message": "Davam etsəniz, öz-özünə sahiblik edən serverinizdəki faktura eyniləşdirməni təkrar quraşdırmalı olacaqsınız."
+ "message": "Davam etsəniz, öz-özünə sahiblik edən serverinizdəki faktura sinxr təkrar quraşdırmalı olacaqsınız."
},
"rotateBillingSyncTokenTitle": {
- "message": "Faktura eyniləşdirmə tokenini döndərmək, əvvəlki tokeni yararsız edəcək."
+ "message": "Faktura sinxr tokenini döndərmək, əvvəlki tokeni yararsız edəcək."
},
"selfHostingTitle": {
"message": "Öz-özünə sahiblik etmə"
},
"selfHostingEnterpriseOrganizationSectionCopy": {
- "message": "Təşkilatınızı öz serverinizdə quraşdırmaq üçün lisenziya faylınızı yükləməlisiniz. Öz-özünə sahiblik edən təşkilatınız üçün ödənişsiz ailələr planlarını və qabaqcıl faktura özəlliklərini dəstəkləmək üçün, faktura eyniləşdirməsini quraşdırmalısınız."
+ "message": "Təşkilatınızı öz serverinizdə quraşdırmaq üçün lisenziya faylınızı yükləməlisiniz. Öz-özünə sahiblik edən təşkilatınız üçün ödənişsiz ailələr planlarını və qabaqcıl faktura özəlliklərini dəstəkləmək üçün, faktura sinxr quraşdırmalısınız."
},
"billingSyncApiKeyRotated": {
"message": "Token döndərildi."
},
"billingSyncDesc": {
- "message": "Faktura eyniləşdirmə, öz-özünə sahiblik edən Bitwarden-inizi Bitwarden bulud serveri ilə əlaqələndirərək ailələr üçün Ödənişsiz Ailələr planını və qabaqcıl faktura özəllilərini təmin edir."
+ "message": "Faktura sinxr, öz-özünə sahiblik edən Bitwarden-inizi Bitwarden bulud serveri ilə əlaqələndirərək ailələr üçün Ödənişsiz Ailələr planını və qabaqcıl faktura özəlliklərini təmin edir."
},
"billingSyncKeyDesc": {
- "message": "Bu forumu tamamlamaq üçün bulud təşkilatınızın abunəlik tənzimləmələrindən Faktura eyniləşdirmə tokeni tələb olunur."
+ "message": "Bu forumu tamamlamaq üçün bulud təşkilatınızın abunəlik ayarlarından Faktura sinxr tokeni tələb olunur."
},
"billingSyncKey": {
- "message": "Faktura eyniləşdirmə tokeni"
+ "message": "Faktura sinxr tokeni"
},
"active": {
"message": "Aktiv"
@@ -5507,13 +5516,13 @@
"message": "Qeyri-aktiv"
},
"sentAwaitingSync": {
- "message": "Göndərildi (eyniləşdirmə gözlənilir)"
+ "message": "Göndərildi (sinxr gözlənilir)"
},
"sent": {
"message": "Göndərildi"
},
"requestRemoved": {
- "message": "Çıxarıldı (eyniləşdirmə gözlənilir)"
+ "message": "Silindi (sinxr gözlənilir)"
},
"requested": {
"message": "Tələb edildi"
@@ -5577,7 +5586,7 @@
"message": "Vergüllə ayırın."
},
"sessionTimeout": {
- "message": "Seansınızın vaxtı bitdi. Zəhmət olmasa geri qayıdıb yenidən giriş etməyə cəhd edin."
+ "message": "Seansınızın vaxtı bitdi. Lütfən geri qayıdıb yenidən giriş etməyə cəhd edin."
},
"exportingPersonalVaultTitle": {
"message": "Şəxsi anbarın ixracı"
@@ -5638,7 +5647,7 @@
}
},
"accountSettings": {
- "message": "Hesab tənzimləmələri"
+ "message": "Hesab ayarları"
},
"generator": {
"message": "Yaradıcı"
@@ -5697,7 +5706,7 @@
}
},
"awaitingSyncSingular": {
- "message": "Token $DAYS$ gün əvvəl döndərildi. Öz-özünə sahiblik edən təşkilat tənzimləmələrinizdə faktura eyniləşdirmə tokenini güncəlləyin.",
+ "message": "Token $DAYS$ gün əvvəl döndərildi. Öz-özünə sahiblik edən təşkilat ayarlarınızda faktura sinxr tokenini güncəlləyin.",
"placeholders": {
"days": {
"content": "$1",
@@ -5706,7 +5715,7 @@
}
},
"awaitingSyncPlural": {
- "message": "Token $DAYS$ gün əvvəl döndərildi. Öz-özünə sahiblik edən təşkilat tənzimləmələrinizdə faktura eyniləşdirmə tokenini güncəlləyin.",
+ "message": "Token $DAYS$ gün əvvəl döndərildi. Öz-özünə sahiblik edən təşkilat ayarlarınızda faktura sinxr tokenini güncəlləyin.",
"placeholders": {
"days": {
"content": "$1",
@@ -5715,11 +5724,11 @@
}
},
"lastSync": {
- "message": "Son eyniləşdirmə",
+ "message": "Son sinxr",
"description": "Used as a prefix to indicate the last time a sync occured. Example \"Last sync 1968-11-16 00:00:00\""
},
"sponsorshipsSynced": {
- "message": "Öz-özünə sahiblik edən sponsorluq eyniləşdirildi."
+ "message": "Öz-özünə sahiblik edən sponsorluq sinxronlaşdırıldı."
},
"billingManagedByProvider": {
"message": "$PROVIDER$ tərəfindən idarə olunur",
@@ -5731,7 +5740,7 @@
}
},
"billingContactProviderForAssistance": {
- "message": "Əlavə yardım üçün zəhmət olmasa onlara müraciət edin",
+ "message": "Əlavə yardım üçün lütfən onlara müraciət edin",
"description": "This text is displayed if an organization's billing is managed by a Provider. It tells the user to contact the Provider for assistance."
},
"forwardedEmail": {
@@ -5748,19 +5757,19 @@
"message": "API müraciət tokeni"
},
"deviceVerification": {
- "message": "Cihaz təsdiqləməsi"
+ "message": "Cihaz doğrulaması"
},
"enableDeviceVerification": {
- "message": "Cihaz təsdiqləməsini fəallaşdır"
+ "message": "Cihaz doğrulamasını işə sal"
},
"deviceVerificationDesc": {
- "message": "Fəal olduqda, tanınmayan bir cihazdan giriş edərkən e-poçt ünvanınıza təsdiqləmə kodları göndərilir"
+ "message": "Tanınmayan bir cihazdan giriş edərkən doğrulama kodları e-poçt ünvanınıza göndərilir"
},
"updatedDeviceVerification": {
- "message": "Cihaz təsdiqləməsi güncəlləndi"
+ "message": "Güncəllənmiş cihaz doğrulaması"
},
"areYouSureYouWantToEnableDeviceVerificationTheVerificationCodeEmailsWillArriveAtX": {
- "message": "Cihaz təsdiqləməsini fəallaşdırmaq istədiyinizə əminsiniz? Təsdiqləmə kodları $EMAIL$ ünvanına göndəriləcək",
+ "message": "Cihaz doğrulamasını işə salmaq istədiyinizə əminsiniz? Doğrulama kodları $EMAIL$ ünvanına göndəriləcək",
"placeholders": {
"email": {
"content": "$1",
@@ -5776,7 +5785,7 @@
"description": "The text, 'SCIM', is an acronymn and should not be translated."
},
"scimDescription": {
- "message": "SCIM təmin etmə vasitəsilə tərcih etdiyiniz kimlik təsdiqləmə provayderləri ilə istifadəçiləri və qrupları avtomatik təmin edin",
+ "message": "SCIM təmin etmə vasitəsilə tərcih etdiyiniz kimlik doğrulama provayderləri ilə istifadəçiləri və qrupları avtomatik təmin edin",
"description": "the text, 'SCIM', is an acronymn and should not be translated."
},
"scimEnabledCheckboxDesc": {
@@ -5784,7 +5793,7 @@
"description": "the text, 'SCIM', is an acronymn and should not be translated."
},
"scimEnabledCheckboxDescHelpText": {
- "message": "URL və SCIM API açarını konfiqurasiya edərək tərcih etdiyiniz kimlik təsdiqləmə provayderini quraşdırın",
+ "message": "URL və SCIM API açarını konfiqurasiya edərək tərcih etdiyiniz kimlik provayderini qurun",
"description": "the text, 'SCIM', is an acronymn and should not be translated."
},
"scimApiKeyHelperText": {
@@ -5822,7 +5831,7 @@
"description": "the text, 'SCIM' and 'API', are acronymns and should not be translated."
},
"scimSettingsSaved": {
- "message": "SCIM tənzimləmələri uğurla saxlanıldı",
+ "message": "SCIM ayarları saxlanıldı",
"description": "the text, 'SCIM', is an acronymn and should not be translated."
},
"inputRequired": {
@@ -6191,7 +6200,7 @@
"description": "Warns that deleting secrets can have consequences on integrations"
},
"softDeletesSuccessToast": {
- "message": "\"Sirr\"lər tullantı qutusuna göndərildi",
+ "message": "Sirlər tullantı qutusuna göndərildi",
"description": "Notifies that the selected secrets have been moved to the trash"
},
"hardDeleteSecretConfirmation": {
@@ -6224,7 +6233,7 @@
"description": "Notifies that a service account has been updated"
},
"newSaSelectAccess": {
- "message": "Layihələri və ya \"Sirr\"ləri yazın və ya seçin",
+ "message": "Layihələri və ya sirləri yazın və ya seçin",
"description": "Instructions for selecting projects or secrets for a new service account"
},
"newSaTypeToFilter": {
@@ -6288,7 +6297,7 @@
"description": "Empty state to be displayed when there are no projects to display in the list."
},
"projectsNoItemsMessage": {
- "message": "\"Sirr\"ləri təşkil etməyə başlamaq üçün yeni bir layihə əlavə edin.",
+ "message": "Sirləri təşkil etməyə başlamaq üçün yeni bir layihə əlavə edin.",
"description": "Message to be displayed when there are no projects to display in the list."
},
"smConfirmationRequired": {
@@ -6464,7 +6473,7 @@
"message": "Bu üzv, bütün elementlərə müraciət edə və onları dəyişdirə bilər."
},
"domainVerification": {
- "message": "Domen təsdiqləməsi"
+ "message": "Domen doğrulaması"
},
"newDomain": {
"message": "Yeni domen"
@@ -6476,10 +6485,10 @@
"message": "Bir domenin bağlantı qurması, üzvlərin SSO ilə Giriş etməsi əsnasında SSO identifikatorunu ötürməsinə icazə verir."
},
"verifyDomain": {
- "message": "Domeni təsdiqlə"
+ "message": "Domeni doğrula"
},
"reverifyDomain": {
- "message": "Domeni yenidən təsdiqlə"
+ "message": "Domeni yenidən doğrula"
},
"copyDnsTxtRecord": {
"message": "DNS TXT qeydini kopyala"
@@ -6491,16 +6500,16 @@
"message": "TXT qeydini DNS Provayderinizə kopyalayıb yapışdırın."
},
"domainNameInputHint": {
- "message": "Nümunə: mydomain.com. Alt domenlərin təsdiqlənməsi üçün ayrıca girişlər tələb olunur."
+ "message": "Nümunə: mydomain.com. Alt domenlərin doğrulanması üçün ayrıca girişlər tələb olunur."
},
"automaticDomainVerification": {
- "message": "Avtomatik Domen Təsdiqləməsi"
+ "message": "Avtomatik Domen Doğrulaması"
},
"automaticDomainVerificationProcess": {
- "message": "Bitwarden, ilk 72 saat ərzində domeni 3 dəfə təsdiqləməyə çalışacaq. Əgər domen təsdiqlənə bilməsə, \"host\"unuzdakı DNS qeydini yoxlayıb əllə təsdiqləyin. Domen təsdiqlənməsə, 7 gün ərzində təşkilatınızdan silinəcək"
+ "message": "Bitwarden, ilk 72 saat ərzində domeni 3 dəfə doğrulamağa çalışacaq. Əgər domen doğrulana bilməsə, \"host\"unuzdakı DNS qeydini yoxlayıb əllə doğrulayın. Domen doğrulanmasa, 7 gün ərzində təşkilatınızdan silinəcək"
},
"invalidDomainNameMessage": {
- "message": "Giriş, yararlı bir format deyil. Format: mydomain.com. Alt domenlərin təsdiqlənməsi üçün ayrıca girişlər tələb olunur."
+ "message": "Giriş, yararlı bir format deyil. Format: mydomain.com. Alt domenlərin doğrulanması üçün ayrıca girişlər tələb olunur."
},
"removeDomain": {
"message": "Domeni sil"
@@ -6515,7 +6524,7 @@
"message": "Domen saxlanıldı"
},
"domainVerified": {
- "message": "Domen təsdiqləndi"
+ "message": "Domen doğrulandı"
},
"duplicateDomainError": {
"message": "Eyni domeni iki dəfə tələb edə bilməzsiniz."
@@ -6530,7 +6539,7 @@
}
},
"domainNotVerified": {
- "message": "$DOMAIN$ təsdiqlənmədi. DNS qeydinizi yoxlayın.",
+ "message": "$DOMAIN$ doğrulanmadı. DNS qeydinizi yoxlayın.",
"placeholders": {
"DOMAIN": {
"content": "$1",
@@ -6539,10 +6548,10 @@
}
},
"domainStatusVerified": {
- "message": "Təsdiqləndi"
+ "message": "Doğrulandı"
},
"domainStatusUnverified": {
- "message": "Təsdiqlənmədi"
+ "message": "Doğrulanmadı"
},
"domainNameTh": {
"message": "Ad"
@@ -6578,7 +6587,7 @@
}
},
"domainVerifiedEvent": {
- "message": "$DOMAIN$ təsdiqləndi",
+ "message": "$DOMAIN$ doğrulandı",
"placeholders": {
"DOMAIN": {
"content": "$1",
@@ -6587,7 +6596,7 @@
}
},
"domainNotVerifiedEvent": {
- "message": "$DOMAIN$ təsdiqlənmədi",
+ "message": "$DOMAIN$ doğrulanmadı",
"placeholders": {
"DOMAIN": {
"content": "$1",
@@ -6608,7 +6617,7 @@
"message": "Qrupları seç"
},
"userPermissionOverrideHelper": {
- "message": "Bir üzv üçün tənzimlənən icazələr, həmin üzvün qrupu tərəfindən tənzimlənən icazələri əvəz edəcək"
+ "message": "Bir üzv üçün ayarlanan icazələr, həmin üzvün qrupu tərəfindən ayarlanan icazələri əvəz edəcək"
},
"noMembersOrGroupsAdded": {
"message": "Heç bir üzv və ya qrup əlavə edilmədi"
@@ -6695,10 +6704,10 @@
"message": "Məlumatı xaricə köçür"
},
"exportingOrganizationSecretDataTitle": {
- "message": "Təşkilat Gizli Məlumatlarının xaricə köçürülməsi"
+ "message": "Təşkilatın Sirr Datasını xaricə köçürmə"
},
"exportingOrganizationSecretDataDescription": {
- "message": "Yalnız $ORGANIZATION$ ilə əlaqəli Secrets Manager məlumatları xaricə köçürüləcək. Digər məhsullardakı və ya digər təşkilatlardan olan elementlər daxil edilmir.",
+ "message": "Yalnız $ORGANIZATION$ ilə əlaqəli Sirr Meneceri məlumatları xaricə köçürüləcək. Digər məhsullardakı və ya digər təşkilatlardan olan elementlər daxil edilmir.",
"placeholders": {
"ORGANIZATION": {
"content": "$1",
@@ -6797,22 +6806,22 @@
"message": "Aşağı KDF iterasiyaları"
},
"updateLowKdfIterationsDesc": {
- "message": "Yeni güvənlik tövsiyələrini qarşılamaq və hesab qorumasını təkmilləşdirmək üçün şifrələmə tənzimləmələrinizi güncəlləyin."
+ "message": "Yeni güvənlik tövsiyələrini qarşılamaq və hesab qorumasını təkmilləşdirmək üçün şifrələmə ayarlarınızı güncəlləyin."
},
"changeKdfLoggedOutWarning": {
- "message": "Proses, bütün aktiv seanslardan çıxış etməyinizi təmin edəcək. Təkrar giriş etməyiniz və iki mərhələli giriş quraşdırmasını tamamlamağınız lazımdır. Məlumat itkisinin qarşısını almaq üçün şifrələmə tənzimləmələrinizi dəyişdirməzdən əvvəl anbarınızı xaricə köçürməyinizi tövsiyə edirik."
+ "message": "Proses, bütün aktiv seanslardan çıxış etməyinizi təmin edəcək. Təkrar giriş etməyiniz və iki addımlı giriş quraşdırmasını tamamlamağınız lazımdır. Məlumat itkisinin qarşısını almaq üçün şifrələmə ayarlarınızı dəyişdirməzdən əvvəl anbarınızı xaricə köçürməyinizi tövsiyə edirik."
},
"secretsManager": {
- "message": "Secrets Manager"
+ "message": "Sirr Meneceri"
},
"secretsManagerBeta": {
- "message": "Secrets Manager Beta"
+ "message": "Sirr Meneceri Beta"
},
"secretsManagerAccessDescription": {
- "message": "\"Secrets Manager\"ə istifadəçi müraciətini aktivləşdir."
+ "message": "\"Sirr Meneceri\"nə istifadəçi müraciətini aktivləşdir."
},
"userAccessSecretsManagerGA": {
- "message": "Bu istifadəçi \"Secrets Manager\"ə müraciət edə bilər"
+ "message": "Bu istifadəçi \"Sirr Meneceri\"nə müraciət edə bilər"
},
"important": {
"message": "Vacib:"
@@ -6869,10 +6878,10 @@
"description": "Link to a downloadable resource. This will be used as part of a larger phrase. Example: Download the Secrets Manager CLI"
},
"smCLI": {
- "message": "Secrets Manager CLI"
+ "message": "Sirr Meneceri CLI"
},
"importSecrets": {
- "message": "\"Sirr\"ləri daxilə köçür"
+ "message": "Sirləri daxilə köçür"
},
"getStarted": {
"message": "Başla"
@@ -6891,10 +6900,10 @@
}
},
"restoreSecret": {
- "message": "\"Sirr\"i bərpa et"
+ "message": "Sirri bərpa et"
},
"restoreSecrets": {
- "message": "\"Sirr\"ləri bərpa et"
+ "message": "Sirləri bərpa et"
},
"restoreSecretPrompt": {
"message": "Bu sirri bərpa etmək istədiyinizə əminsiniz?"
@@ -6912,10 +6921,10 @@
"message": "Seçim tələb olunur."
},
"secretsManagerSubscriptionDesc": {
- "message": "Beta proqramı əsnasında \"Secret Manager\"ə təşkilat müraciətini ödənişsiz işə salın. İstifadəçilərə, Üzvlərdə Betaya müraciət icazəsi verilə bilər."
+ "message": "Beta proqramı zamanı təşkilatın \"Sirr Meneceri\"nə müraciətini ödənişsiz olaraq işə salın. İstifadəçilərə, Üzvlərdə Betaya müraciət icazəsi verilə bilər."
},
"secretsManagerEnable": {
- "message": "\"Secrets Manager Beta\"nı fəallaşdır"
+ "message": "\"Sirr Meneceri Beta\"nı fəallaşdır"
},
"saPeopleWarningTitle": {
"message": "Müraciət tokenləri hələ də əlçatandır"
@@ -6982,7 +6991,7 @@
"message": "Bu özəllik ödənişsiz təşkilatlar üçün əlçatmazdır. Yüksəltmək üçün təşkilatınızın sahibi ilə əlaqə saxlayın."
},
"smProjectSecretsNoItemsNoAccess": {
- "message": "Contact your organization's admin to manage secrets for this project.",
+ "message": "Bu layihənin sirlərini idarə etmək üçün təşkilatınızın admini ilə əlaqə saxlayın.",
"description": "The message shown to the user under a project's secrets tab when the user only has read access to the project."
},
"enforceOnLoginDesc": {
@@ -7003,7 +7012,7 @@
"description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects."
},
"updateKdfSettings": {
- "message": "KDF tənzimləmələrini güncəllə"
+ "message": "KDF ayarlarını güncəllə"
},
"loginInitiated": {
"message": "Giriş başladıldı"
@@ -7033,7 +7042,7 @@
"message": "Güvənli cihazlar"
},
"memberDecryptionOptionTdeDescriptionPartOne": {
- "message": "Kimlik təsdiqləndikdən sonra üzvlər, cihazlarından saxlanılan açarı istifadə edərək anbar verilənlərinin şifrələrini aça biləcək",
+ "message": "Kimlik doğrulandıqdan sonra üzvlər, cihazlarından saxlanılan açarı istifadə edərək anbar datasının şifrələrini aça biləcək",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy, SSO Required policy, and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescriptionLinkOne": {
@@ -7041,7 +7050,7 @@
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy, SSO required policy, and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescriptionPartTwo": {
- "message": "siyasət,",
+ "message": "siyasəti,",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy, SSO required policy, and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescriptionLinkTwo": {
@@ -7049,15 +7058,15 @@
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy, SSO required policy, and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescriptionPartThree": {
- "message": "siyasət və",
+ "message": "siyasəti və",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy, SSO required policy, and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescriptionLinkThree": {
- "message": "hesab bərpa administrasiyası",
+ "message": "hesab geri qaytarma administrasiyası",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy, SSO required policy, and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"memberDecryptionOptionTdeDescriptionPartFour": {
- "message": "bu seçim istifadə edildikdə avto-qeydiyyat ilə işə salınacaq.",
+ "message": "bu seçim istifadə edildikdə avto-yazılma ilə işə salınacaq.",
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Once authenticated, members will decrypt vault data using a key stored on their device. The single organization policy, SSO required policy, and account recovery administration policy with automatic enrollment will turn on when this option is used.'"
},
"orgPermissionsUpdatedMustSetPassword": {
@@ -7078,24 +7087,24 @@
}
},
"recoverAccount": {
- "message": "Hesabı bərpa et"
+ "message": "Hesabı geri qaytar"
},
"updatedTempPassword": {
- "message": "İstifadəçi, hesab bərpası vasitəsilə verilən bir parolu güncəllədi."
+ "message": "İstifadəçi, hesab geri qaytarılması vasitəsilə verilən bir parolu güncəllədi."
},
"activatedAccessToSecretsManager": {
- "message": "\"Secrets Manager\"ə müraciət aktivləşdirildi",
+ "message": "\"Sirr Meneceri\"nə müraciət aktivləşdirildi",
"description": "Confirmation message that one or more users gained access to Secrets Manager"
},
"activateAccess": {
"message": "Müraciəti aktivləşdir"
},
"bulkEnableSecretsManagerDescription": {
- "message": "Grant the following members access to Secrets Manager. The role granted in the Password Manager will apply to Secrets Manager.",
+ "message": "Aşağıdakı üzvlər üçün \"Sirr Meneceri\"nə müraciət icazəsi verin. \"Parol Meneceri\"ndə verilmiş rol, \"Sirr Meneceri\"nə də aiddir.",
"description": "This description is shown to an admin when they are attempting to add more users to Secrets Manager."
},
"activateSecretsManager": {
- "message": "\"Secrets Manager\"i aktivləşdir"
+ "message": "\"Sirr Meneceri\"ni aktivləşdir"
},
"yourOrganizationsFingerprint": {
"message": "Təşkilatınızın barmaq izi ifadəsi",
@@ -7105,7 +7114,7 @@
"message": "Cihaz təsdiqləri"
},
"deviceApprovalsDesc": {
- "message": "Approve login requests below to allow the requesting member to finish logging in. Unapproved requests expire after 1 week. Verify the member’s information before approving."
+ "message": "Tələb olunan üzvün girişini bitirməyinə imkan vermək üçün aşağıdakı giriş tələblərini təsdiqləyin. Təsdiqlənməyən tələblərin etibarlılığı 1 həftəyə bitir. Təsdiqləməzdən əvvəl üzvün məlumatlarını doğrulayın."
},
"deviceInfo": {
"message": "Cihaz məlumatı"
@@ -7141,7 +7150,7 @@
"message": "Hesabın ana parolu yoxdur"
},
"removeOrgUserNoMasterPasswordDesc": {
- "message": "Onlar üçün ana parol tənzimləmədən $USER$ silinməsi, tam hesablarına müraciəti məhdudlaşdıra bilər. Davam etmək istədiyinizə əminsiniz?",
+ "message": "$USER$ istifadəçisini onun üçün ana parol ayarlamadan silmək, hesablarına tam müraciəti məhdudlaşdıra bilər. Davam etmək istədiyinizə əminsiniz?",
"placeholders": {
"user": {
"content": "$1",
@@ -7153,7 +7162,7 @@
"message": "Ana parol yoxdur"
},
"removeMembersWithoutMasterPasswordWarning": {
- "message": "Ana parolu olmayan üzvləri onlar üçün parol tənzimləmədən silmək, tam hesablarına müraciəti məhdudlaşdıra bilər."
+ "message": "Ana parolu olmayan üzvlərin onlar üçün parol ayarlamadan silinməsi, hesablarına tam müraciəti məhdudlaşdıra bilər."
},
"approvedAuthRequest": {
"message": "$ID$ üçün təsdiqlənmiş cihaz.",
@@ -7230,7 +7239,7 @@
"message": "İstifadəçiləri dəvət et"
},
"secretsManagerForPlan": {
- "message": "Secrets Manager for $PLAN$",
+ "message": "$PLAN$ üçün Sirr Meneceri",
"placeholders": {
"plan": {
"content": "$1",
@@ -7239,19 +7248,19 @@
}
},
"secretsManagerForPlanDesc": {
- "message": "For engineering and DevOps teams to manage secrets throughout the software development lifecycle."
+ "message": "Mühəndislik və DevOps komandalarının proqram təminatının inkişaf dövrü boyunca sirləri idarə etmək üçün."
},
"free2PersonOrganization": {
"message": "Ödənişsiz 2 nəfərlik Təşkilatlar"
},
"unlimitedSecrets": {
- "message": "Unlimited secrets"
+ "message": "Limitsiz sirr"
},
"unlimitedProjects": {
"message": "Limitsiz layihə"
},
"projectsIncluded": {
- "message": "$COUNT$ layihə quraşdırıldı",
+ "message": "$COUNT$ layihə daxildir",
"placeholders": {
"count": {
"content": "$1",
@@ -7260,7 +7269,7 @@
}
},
"serviceAccountsIncluded": {
- "message": "$COUNT$ xidmət hesabı daxil edildi",
+ "message": "$COUNT$ xidmət hesabı daxildir",
"placeholders": {
"count": {
"content": "$1",
@@ -7278,10 +7287,10 @@
}
},
"subscribeToSecretsManager": {
- "message": "\"Secrets Manager\"ə abunə ol"
+ "message": "\"Sirr Meneceri\"nə abunə ol"
},
"addSecretsManagerUpgradeDesc": {
- "message": "Add Secrets Manager to your upgraded plan to maintain access to any secrets created with your previous plan."
+ "message": "Əvvəlki planınızla yaradılan bütün sirlərə müraciəti davam etdirmək üçün \"Sirr Meneceri\"ni yüksəldilmiş planınıza əlavə edin."
},
"additionalServiceAccounts": {
"message": "Əlavə xidmət hesabları"
@@ -7296,7 +7305,7 @@
}
},
"addAdditionalServiceAccounts": {
- "message": "Aylıq $COST$ qiymətinə əlavə xidmət hesablarını əlavə edə bilərsiniz.",
+ "message": "Aylıq $COST$ qarşılığında əlavə xidmət hesablarını əlavə edə bilərsiniz.",
"placeholders": {
"cost": {
"content": "$1",
@@ -7320,7 +7329,7 @@
"message": "Parol Meneceri plan qiyməti"
},
"secretsManagerPlanPrice": {
- "message": "Secrets Manager plan price"
+ "message": "Sirr Meneceri plan qiyməti"
},
"passwordManager": {
"message": "Parol Meneceri"
@@ -7344,7 +7353,7 @@
"message": "Giriş edildi!"
},
"smBetaEndedDesc": {
- "message": "The Secrets Manager Beta ended $BETA_ENDING_DATE$. You have $DAYS$ days left to add Secrets Manager to your paid subscription and maintain access to Secrets Manager data. Contact Customer Success to add Secrets Manager to your subscription.",
+ "message": "Sirr Meneceri Beta $BETA_ENDING_DATE$ tarixində bitir. \"Sirr Meneceri\"ni ödənişli abunəliyinizə əlavə etmək və Sirr Meneceri datalarına müraciəti davam etdirmək üçün $DAYS$ gününüz qaldı. \"Sirr Meneceri\"ni abunəliyinizə əlavə etmək üçün Müştəri Uğuru ilə əlaqə saxlayın.",
"placeholders": {
"beta_ending_date": {
"content": "$1",
@@ -7357,7 +7366,7 @@
}
},
"betaEnding": {
- "message": "Beta Sonu"
+ "message": "Beta bitir"
},
"beta": {
"message": "Beta"
@@ -7381,7 +7390,7 @@
"message": "Özəl faktura əks olunmur. Son faktura üçün "
},
"customBillingEnd": {
- "message": " səhifəni ziyarət edin."
+ "message": " səhifəsini ziyarət edin."
},
"managePermissionRequired": {
"message": "Ən azı bir üzv və ya qrup idarə edə bilmə icazəsinə sahib olmalıdır."
@@ -7400,18 +7409,18 @@
"description": "This is followed a by a hyperlink to the help website."
},
"projectAccessUpdated": {
- "message": "Project access updated"
+ "message": "Layihə müraciəti güncəlləndi"
},
"unexpectedErrorSend": {
"message": "Bu Send yüklənərkən gözlənilməz bir xəta baş verdi. Daha sonra yenidən sınayın."
},
"seatLimitReached": {
- "message": "Oturacaq limitinə çatıldı"
+ "message": "Yer limitinə çatıldı"
},
"contactYourProvider": {
- "message": "Əlavə oturacaq satın almaq üçün provayderinizlə əlaqə saxlayın."
+ "message": "Əlavə yer satın almaq üçün provayderinizlə əlaqə saxlayın."
},
"seatLimitReachedContactYourProvider": {
- "message": "Oturacaq limitinə çatıldı. Əlavə oturacaq satın almaq üçün provayderinizlə əlaqə saxlayın."
+ "message": "Yer limitinə çatıldı. Əlavə yer satın almaq üçün provayderinizlə əlaqə saxlayın."
}
}
diff --git a/apps/web/src/locales/be/messages.json b/apps/web/src/locales/be/messages.json
index af4be9e9294..16457e721fe 100644
--- a/apps/web/src/locales/be/messages.json
+++ b/apps/web/src/locales/be/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Увайсці з асноўным паролем"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/bg/messages.json b/apps/web/src/locales/bg/messages.json
index 16c8ae49ad3..08e384f2fab 100644
--- a/apps/web/src/locales/bg/messages.json
+++ b/apps/web/src/locales/bg/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Вписване с главната парола"
},
+ "readingPasskeyLoading": {
+ "message": "Прочитане на секретния ключ…"
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Дръжте този прозорец отворен и следвайте инструкциите в браузъра си."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Използване на друг метод на вписване"
+ },
"loginWithPasskey": {
"message": "Вписване със секретен ключ"
},
diff --git a/apps/web/src/locales/bn/messages.json b/apps/web/src/locales/bn/messages.json
index 9af488c3c06..d2d239d4b83 100644
--- a/apps/web/src/locales/bn/messages.json
+++ b/apps/web/src/locales/bn/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/bs/messages.json b/apps/web/src/locales/bs/messages.json
index c4634a34aee..ab3f28e5db3 100644
--- a/apps/web/src/locales/bs/messages.json
+++ b/apps/web/src/locales/bs/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/ca/messages.json b/apps/web/src/locales/ca/messages.json
index a84da9282dd..bfaa176d7eb 100644
--- a/apps/web/src/locales/ca/messages.json
+++ b/apps/web/src/locales/ca/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Inici de sessió amb contrasenya mestra"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Inicieu sessió amb la clau de pas"
},
diff --git a/apps/web/src/locales/cs/messages.json b/apps/web/src/locales/cs/messages.json
index 06cc22040c1..70151d83690 100644
--- a/apps/web/src/locales/cs/messages.json
+++ b/apps/web/src/locales/cs/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Přihlásit se pomocí hlavního hesla"
},
+ "readingPasskeyLoading": {
+ "message": "Načítání přístupového klíče..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Ponechte toto okno otevřené a postupujte podle dotazů z Vašeho prohlížeče."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Použít jinou metodu přihlášení"
+ },
"loginWithPasskey": {
"message": "Přihlásit se pomocí přístupového klíče"
},
diff --git a/apps/web/src/locales/cy/messages.json b/apps/web/src/locales/cy/messages.json
index ce42d30279a..d1308515d25 100644
--- a/apps/web/src/locales/cy/messages.json
+++ b/apps/web/src/locales/cy/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/da/messages.json b/apps/web/src/locales/da/messages.json
index b95fbfdae9e..db4220e3bb9 100644
--- a/apps/web/src/locales/da/messages.json
+++ b/apps/web/src/locales/da/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log ind med hovedadgangskode"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log ind med adgangsnøgle"
},
diff --git a/apps/web/src/locales/de/messages.json b/apps/web/src/locales/de/messages.json
index b704ed44393..338e98f5e6f 100644
--- a/apps/web/src/locales/de/messages.json
+++ b/apps/web/src/locales/de/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Mit Master-Passwort anmelden"
},
+ "readingPasskeyLoading": {
+ "message": "Lese Passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Behalte dieses Fenster geöffnet und folge den Anweisungen deines Browsers."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Eine andere Anmeldemethode verwenden"
+ },
"loginWithPasskey": {
"message": "Mit Passkey anmelden"
},
diff --git a/apps/web/src/locales/el/messages.json b/apps/web/src/locales/el/messages.json
index 44450c4f917..e2f164d68fb 100644
--- a/apps/web/src/locales/el/messages.json
+++ b/apps/web/src/locales/el/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Συνδεθείτε με τον κύριο κωδικό πρόσβασης"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/en_GB/messages.json b/apps/web/src/locales/en_GB/messages.json
index 3418a5dea8d..53ff858cf7b 100644
--- a/apps/web/src/locales/en_GB/messages.json
+++ b/apps/web/src/locales/en_GB/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/en_IN/messages.json b/apps/web/src/locales/en_IN/messages.json
index 129613e94fa..618485c43df 100644
--- a/apps/web/src/locales/en_IN/messages.json
+++ b/apps/web/src/locales/en_IN/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/eo/messages.json b/apps/web/src/locales/eo/messages.json
index fa09843e3ec..67820fe52d7 100644
--- a/apps/web/src/locales/eo/messages.json
+++ b/apps/web/src/locales/eo/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Saluti kun la ĉefpasvorto"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/es/messages.json b/apps/web/src/locales/es/messages.json
index 860803f3133..e498d679dc1 100644
--- a/apps/web/src/locales/es/messages.json
+++ b/apps/web/src/locales/es/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Iniciar sesión con contraseña maestra"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/et/messages.json b/apps/web/src/locales/et/messages.json
index fd8c79eb1db..ec75f79be65 100644
--- a/apps/web/src/locales/et/messages.json
+++ b/apps/web/src/locales/et/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Logi sisse ülemparooliga"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/eu/messages.json b/apps/web/src/locales/eu/messages.json
index 85bfdb2ed2d..b848f1d18e0 100644
--- a/apps/web/src/locales/eu/messages.json
+++ b/apps/web/src/locales/eu/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Hasi saioa pasahitz nagusiarekin"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/fa/messages.json b/apps/web/src/locales/fa/messages.json
index 0bc4e61e35d..9cc6e517bbe 100644
--- a/apps/web/src/locales/fa/messages.json
+++ b/apps/web/src/locales/fa/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "با کلمه عبور اصلی وارد شوید"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "با کلید عبور وارد شوید"
},
diff --git a/apps/web/src/locales/fi/messages.json b/apps/web/src/locales/fi/messages.json
index 9450bd659dd..5989aa8dc88 100644
--- a/apps/web/src/locales/fi/messages.json
+++ b/apps/web/src/locales/fi/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Kirjaudu pääsalasanalla"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Kirjaudu suojausavaimella"
},
diff --git a/apps/web/src/locales/fil/messages.json b/apps/web/src/locales/fil/messages.json
index ccab05deaf3..474d2a3ff41 100644
--- a/apps/web/src/locales/fil/messages.json
+++ b/apps/web/src/locales/fil/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Mag-log in gamit ang master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/fr/messages.json b/apps/web/src/locales/fr/messages.json
index 1aa7659f64f..2d8d5ba24aa 100644
--- a/apps/web/src/locales/fr/messages.json
+++ b/apps/web/src/locales/fr/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Se connecter avec le mot de passe principal"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Se connecter avec la clé d'accès"
},
diff --git a/apps/web/src/locales/gl/messages.json b/apps/web/src/locales/gl/messages.json
index ce42d30279a..d1308515d25 100644
--- a/apps/web/src/locales/gl/messages.json
+++ b/apps/web/src/locales/gl/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/he/messages.json b/apps/web/src/locales/he/messages.json
index 9891b917073..a06e37707dc 100644
--- a/apps/web/src/locales/he/messages.json
+++ b/apps/web/src/locales/he/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/hi/messages.json b/apps/web/src/locales/hi/messages.json
index cae7d04c617..7cd4d4be6bf 100644
--- a/apps/web/src/locales/hi/messages.json
+++ b/apps/web/src/locales/hi/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/hr/messages.json b/apps/web/src/locales/hr/messages.json
index f10717c54e4..67aafbd2737 100644
--- a/apps/web/src/locales/hr/messages.json
+++ b/apps/web/src/locales/hr/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Prijava glavnom lozinkom"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Prijava pristupnim ključem"
},
diff --git a/apps/web/src/locales/hu/messages.json b/apps/web/src/locales/hu/messages.json
index 3939a406589..6378bea7889 100644
--- a/apps/web/src/locales/hu/messages.json
+++ b/apps/web/src/locales/hu/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Bejelentkezés mesterjelszóval"
},
+ "readingPasskeyLoading": {
+ "message": "Jelszó beolvasása..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Tartsuk nyitva ezt az ablakot és kövessük a böngésző utasításait."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Más bejelentkezési mód használata"
+ },
"loginWithPasskey": {
"message": "Bejelentkezés jelszóval"
},
diff --git a/apps/web/src/locales/id/messages.json b/apps/web/src/locales/id/messages.json
index 3ced061b3d6..fc0c3b51bcc 100644
--- a/apps/web/src/locales/id/messages.json
+++ b/apps/web/src/locales/id/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Masuk dengan kata sandi utama"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/it/messages.json b/apps/web/src/locales/it/messages.json
index a755496ae36..d138895c2de 100644
--- a/apps/web/src/locales/it/messages.json
+++ b/apps/web/src/locales/it/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Accedi con password principale"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Accedi con passkey"
},
diff --git a/apps/web/src/locales/ja/messages.json b/apps/web/src/locales/ja/messages.json
index 480905fc255..36f233a33a1 100644
--- a/apps/web/src/locales/ja/messages.json
+++ b/apps/web/src/locales/ja/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "マスターパスワードでログイン"
},
+ "readingPasskeyLoading": {
+ "message": "パスキーを読み込み中..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "このウィンドウを開いたままにして、ブラウザの指示に従ってください。"
+ },
+ "useADifferentLogInMethod": {
+ "message": "別のログイン方法を使用する"
+ },
"loginWithPasskey": {
"message": "パスキー でログイン"
},
diff --git a/apps/web/src/locales/ka/messages.json b/apps/web/src/locales/ka/messages.json
index 9a99b861f40..4c651d74bd7 100644
--- a/apps/web/src/locales/ka/messages.json
+++ b/apps/web/src/locales/ka/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "ავტორიზაცია მთავარი პაროლით"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/km/messages.json b/apps/web/src/locales/km/messages.json
index ce42d30279a..d1308515d25 100644
--- a/apps/web/src/locales/km/messages.json
+++ b/apps/web/src/locales/km/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/kn/messages.json b/apps/web/src/locales/kn/messages.json
index 711c041e6ba..3a2c7ddac55 100644
--- a/apps/web/src/locales/kn/messages.json
+++ b/apps/web/src/locales/kn/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/ko/messages.json b/apps/web/src/locales/ko/messages.json
index 62c3c1d9bf8..ec86415f4bf 100644
--- a/apps/web/src/locales/ko/messages.json
+++ b/apps/web/src/locales/ko/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "마스터 비밀번호로 로그인"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/lv/messages.json b/apps/web/src/locales/lv/messages.json
index 37997204006..9ae26793d95 100644
--- a/apps/web/src/locales/lv/messages.json
+++ b/apps/web/src/locales/lv/messages.json
@@ -402,7 +402,7 @@
"message": "Vienums"
},
"ex": {
- "message": "piem.",
+ "message": "piem.,",
"description": "Short abbreviation for 'example'."
},
"other": {
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Pieteikties ar galveno paroli"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Pieteikties ar piekļuves atslēgu"
},
@@ -4952,7 +4961,7 @@
}
},
"providerIsDisabled": {
- "message": "Sniedzējs ir atspējots."
+ "message": "Sniedzējs ir atspējots"
},
"providerUpdated": {
"message": "Sniedzējs atjaunināts"
@@ -5663,7 +5672,7 @@
"description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com"
},
"plusAddressedEmailDesc": {
- "message": "Izmantot e-pasta pakalpojuma nodrošinātāja apakšadresēšanas spējas."
+ "message": "Izmantot e-pasta nodrošinātāja apakšadresēšanas spējas."
},
"catchallEmail": {
"message": "Visu tveroša e-pasta adrese"
diff --git a/apps/web/src/locales/ml/messages.json b/apps/web/src/locales/ml/messages.json
index d535a5232c4..50590959b24 100644
--- a/apps/web/src/locales/ml/messages.json
+++ b/apps/web/src/locales/ml/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/mr/messages.json b/apps/web/src/locales/mr/messages.json
index ce42d30279a..d1308515d25 100644
--- a/apps/web/src/locales/mr/messages.json
+++ b/apps/web/src/locales/mr/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/my/messages.json b/apps/web/src/locales/my/messages.json
index ce42d30279a..d1308515d25 100644
--- a/apps/web/src/locales/my/messages.json
+++ b/apps/web/src/locales/my/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/nb/messages.json b/apps/web/src/locales/nb/messages.json
index 541af380f93..4528868edb4 100644
--- a/apps/web/src/locales/nb/messages.json
+++ b/apps/web/src/locales/nb/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Logg på med hovedpassord"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/ne/messages.json b/apps/web/src/locales/ne/messages.json
index 88e8b2191a2..9bc24b17a83 100644
--- a/apps/web/src/locales/ne/messages.json
+++ b/apps/web/src/locales/ne/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/nl/messages.json b/apps/web/src/locales/nl/messages.json
index 3bb4d5bacc3..6bd7a4a8822 100644
--- a/apps/web/src/locales/nl/messages.json
+++ b/apps/web/src/locales/nl/messages.json
@@ -611,14 +611,23 @@
"loginWithMasterPassword": {
"message": "Inloggen met je hoofdwachtwoord"
},
+ "readingPasskeyLoading": {
+ "message": "Passkey uitlezen..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Houd dit venster open en volg de aanwijzingen van je browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Gebruik een andere loginmethode"
+ },
"loginWithPasskey": {
"message": "Inloggen met passkey"
},
"invalidPasskeyPleaseTryAgain": {
- "message": "Ongeldige Passkey. Probeer het opnieuw."
+ "message": "Ongeldige passkey. Probeer het opnieuw."
},
"twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
- "message": "2FA voor Passkeys is niet ondersteund. Werk de app bij om in te loggen."
+ "message": "2FA voor passkeys is niet ondersteund. Werk de app bij om in te loggen."
},
"loginWithPasskeyInfo": {
"message": "Gebruik een gegenereerde passkey die je automatisch inlogt zonder wachtwoord. Biometrie, zoals gezichtsherkenning of vingerafdruk, of een andere FIDO2-beveiligingsmethode controleren je identiteit."
diff --git a/apps/web/src/locales/nn/messages.json b/apps/web/src/locales/nn/messages.json
index 852256bda1a..9b1cb1be38c 100644
--- a/apps/web/src/locales/nn/messages.json
+++ b/apps/web/src/locales/nn/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/or/messages.json b/apps/web/src/locales/or/messages.json
index ce42d30279a..d1308515d25 100644
--- a/apps/web/src/locales/or/messages.json
+++ b/apps/web/src/locales/or/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/pl/messages.json b/apps/web/src/locales/pl/messages.json
index b6cc6396e4d..58bfdc05499 100644
--- a/apps/web/src/locales/pl/messages.json
+++ b/apps/web/src/locales/pl/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Logowanie hasłem głównym"
},
+ "readingPasskeyLoading": {
+ "message": "Odczytywanie passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Pozostaw to okno otwarte i postępuj zgodnie z instrukcjami z przeglądarki."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Użyj innej metody logowania"
+ },
"loginWithPasskey": {
"message": "Zaloguj się za pomocą passkey"
},
diff --git a/apps/web/src/locales/pt_BR/messages.json b/apps/web/src/locales/pt_BR/messages.json
index eccec91dd43..7d0c9d3f63c 100644
--- a/apps/web/src/locales/pt_BR/messages.json
+++ b/apps/web/src/locales/pt_BR/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Entrar com senha mestra"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Iniciar sessão com a chave de acesso"
},
diff --git a/apps/web/src/locales/pt_PT/messages.json b/apps/web/src/locales/pt_PT/messages.json
index 94cb66ad34c..e93f90f971e 100644
--- a/apps/web/src/locales/pt_PT/messages.json
+++ b/apps/web/src/locales/pt_PT/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Iniciar sessão com a palavra-passe mestra"
},
+ "readingPasskeyLoading": {
+ "message": "A ler chave de acesso..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Mantenha esta janela aberta e siga as indicações do seu navegador."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Utilizar um método de início de sessão diferente"
+ },
"loginWithPasskey": {
"message": "Iniciar sessão com a chave de acesso"
},
diff --git a/apps/web/src/locales/ro/messages.json b/apps/web/src/locales/ro/messages.json
index f09e7c03cc4..de04dca1a74 100644
--- a/apps/web/src/locales/ro/messages.json
+++ b/apps/web/src/locales/ro/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Autentificați-vă cu parola principală"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/ru/messages.json b/apps/web/src/locales/ru/messages.json
index 3d231053f46..d7d91b80ce6 100644
--- a/apps/web/src/locales/ru/messages.json
+++ b/apps/web/src/locales/ru/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Войти с мастер-паролем"
},
+ "readingPasskeyLoading": {
+ "message": "Чтение ключа доступа..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Не закрывайте это окно и следуйте запросам браузера."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Использовать другой способ авторизации"
+ },
"loginWithPasskey": {
"message": "Войти с ключом доступа"
},
diff --git a/apps/web/src/locales/si/messages.json b/apps/web/src/locales/si/messages.json
index f61eb9298c6..466cca39a9b 100644
--- a/apps/web/src/locales/si/messages.json
+++ b/apps/web/src/locales/si/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/sk/messages.json b/apps/web/src/locales/sk/messages.json
index 4fb76c43c39..3640ca8e72a 100644
--- a/apps/web/src/locales/sk/messages.json
+++ b/apps/web/src/locales/sk/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Prihlásenie pomocou hlavného hesla"
},
+ "readingPasskeyLoading": {
+ "message": "Načítava sa prístupový kľúč..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Ponechajte toto okno otvorené a nasledujte pokyny vášho prehliadača."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Použiť iný spôsob prihlásenia"
+ },
"loginWithPasskey": {
"message": "Prihlásiť sa s prístupovým kľúčom"
},
diff --git a/apps/web/src/locales/sl/messages.json b/apps/web/src/locales/sl/messages.json
index 59660921956..b9024942acc 100644
--- a/apps/web/src/locales/sl/messages.json
+++ b/apps/web/src/locales/sl/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Prijava z glavnim geslom"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/sr/messages.json b/apps/web/src/locales/sr/messages.json
index 3f772b8c8d9..c2708ee0ddc 100644
--- a/apps/web/src/locales/sr/messages.json
+++ b/apps/web/src/locales/sr/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Пријавите се са главном лозинком"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Пријавите се са приступачним кључем"
},
diff --git a/apps/web/src/locales/sr_CS/messages.json b/apps/web/src/locales/sr_CS/messages.json
index 598581ce92c..184b3263b0c 100644
--- a/apps/web/src/locales/sr_CS/messages.json
+++ b/apps/web/src/locales/sr_CS/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/sv/messages.json b/apps/web/src/locales/sv/messages.json
index 101a709f6a1..515f005f7d1 100644
--- a/apps/web/src/locales/sv/messages.json
+++ b/apps/web/src/locales/sv/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Logga in med huvudlösenord"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
diff --git a/apps/web/src/locales/te/messages.json b/apps/web/src/locales/te/messages.json
index ce42d30279a..d1308515d25 100644
--- a/apps/web/src/locales/te/messages.json
+++ b/apps/web/src/locales/te/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Log in with master password"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/th/messages.json b/apps/web/src/locales/th/messages.json
index 6440c620b77..917a1781ad2 100644
--- a/apps/web/src/locales/th/messages.json
+++ b/apps/web/src/locales/th/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "เข้าสู่ระบบด้วยรหัสผ่านหลัก"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/tr/messages.json b/apps/web/src/locales/tr/messages.json
index a117b8e459f..b81efd176b3 100644
--- a/apps/web/src/locales/tr/messages.json
+++ b/apps/web/src/locales/tr/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Ana parola ile giriş yap"
},
+ "readingPasskeyLoading": {
+ "message": "Geçiş anahtarı okunuyor..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Bu pencereyi açık tutun ve tarayıcınızdan gelen talimatları izleyin."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Farklı bir oturum açma yöntemi kullanın"
+ },
"loginWithPasskey": {
"message": "Geçiş anahtarıyla giriş yap"
},
diff --git a/apps/web/src/locales/uk/messages.json b/apps/web/src/locales/uk/messages.json
index f4beff74863..8e492ab5f5e 100644
--- a/apps/web/src/locales/uk/messages.json
+++ b/apps/web/src/locales/uk/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Увійти з головним паролем"
},
+ "readingPasskeyLoading": {
+ "message": "Читання ключа доступу..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Не закривайте це вікно та дотримуйтесь підказок у браузері."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Використати інший спосіб входу"
+ },
"loginWithPasskey": {
"message": "Увійти з ключем доступу"
},
@@ -2326,7 +2335,7 @@
"message": "Щоб оновити обліковий запис до Premium, вам необхідно вивантажити дійсний файл ліцензії."
},
"uploadLicenseFileOrg": {
- "message": "Для створення організації, розміщеної на локальному хостингу, вам необхідно вивантажити дійсний файл ліцензії."
+ "message": "Для створення організації з локальним хостингом вам необхідно вивантажити дійсний файл ліцензії."
},
"accountEmailMustBeVerified": {
"message": "Необхідно підтвердити адресу електронної пошти вашого облікового запису."
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "Попереднє розміщення (необов'язково)"
+ "message": "Локальний хостинг (необов'язково)"
},
"usersGetPremium": {
"message": "Користувачі отримують доступ до можливостей Premium"
diff --git a/apps/web/src/locales/vi/messages.json b/apps/web/src/locales/vi/messages.json
index b10ae872645..6bc78ec0315 100644
--- a/apps/web/src/locales/vi/messages.json
+++ b/apps/web/src/locales/vi/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "Đăng nhập bằng mật khẩu chính"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "Log in with passkey"
},
@@ -2481,7 +2490,7 @@
}
},
"onPremHostingOptional": {
- "message": "On-premise hosting (optional)"
+ "message": "On-premises hosting (optional)"
},
"usersGetPremium": {
"message": "Users get access to Premium features"
diff --git a/apps/web/src/locales/zh_CN/messages.json b/apps/web/src/locales/zh_CN/messages.json
index 384a55e3d84..98e20e40025 100644
--- a/apps/web/src/locales/zh_CN/messages.json
+++ b/apps/web/src/locales/zh_CN/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "使用主密码登录"
},
+ "readingPasskeyLoading": {
+ "message": "正在读取通行密钥..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "保持此窗口打开然后按照浏览器的提示操作。"
+ },
+ "useADifferentLogInMethod": {
+ "message": "使用不同的登录方式"
+ },
"loginWithPasskey": {
"message": "使用通行密钥登录"
},
@@ -618,7 +627,7 @@
"message": "通行密钥无效。请重试。"
},
"twoFactorForPasskeysNotSupportedOnClientUpdateToLogIn": {
- "message": "2FA for passkeys is not supported. Update the app to log in."
+ "message": "不支持通行密钥 2FA。请更新 App 以登录。"
},
"loginWithPasskeyInfo": {
"message": "使用已生成的通行密钥,无需密码即可自动登录。生物识别(例如面部识别或指纹)或其他 FIDO2 安全方法将用于验证您的身份。"
diff --git a/apps/web/src/locales/zh_TW/messages.json b/apps/web/src/locales/zh_TW/messages.json
index 038c3be77df..84e66528c66 100644
--- a/apps/web/src/locales/zh_TW/messages.json
+++ b/apps/web/src/locales/zh_TW/messages.json
@@ -611,6 +611,15 @@
"loginWithMasterPassword": {
"message": "使用主密碼登入"
},
+ "readingPasskeyLoading": {
+ "message": "Reading passkey..."
+ },
+ "readingPasskeyLoadingInfo": {
+ "message": "Keep this window open and follow prompts from your browser."
+ },
+ "useADifferentLogInMethod": {
+ "message": "Use a different log in method"
+ },
"loginWithPasskey": {
"message": "使用密碼金鑰登入"
},
From 61ca0e893e66f2995f94b3a98068cc0fdf185142 Mon Sep 17 00:00:00 2001
From: Andreas Coroiu
Date: Mon, 27 Nov 2023 13:14:33 +0100
Subject: [PATCH 30/30] [PM-4830] Fix unsafe origin source (#6884)
* feat: add inscure types and remove the insecure fields from the page-script
* feat: securely set variables in content-script
* chore: clean up comments
---
.../src/vault/fido2/content/content-script.ts | 29 +++++++++++++++++--
.../vault/fido2/content/messaging/message.ts | 24 +++++++++++++--
.../src/vault/fido2/content/page-script.ts | 27 ++---------------
.../browser/src/vault/fido2/webauthn-utils.ts | 19 +++++-------
4 files changed, 59 insertions(+), 40 deletions(-)
diff --git a/apps/browser/src/vault/fido2/content/content-script.ts b/apps/browser/src/vault/fido2/content/content-script.ts
index bcd32fc1731..96af5a6e647 100644
--- a/apps/browser/src/vault/fido2/content/content-script.ts
+++ b/apps/browser/src/vault/fido2/content/content-script.ts
@@ -1,3 +1,8 @@
+import {
+ AssertCredentialParams,
+ CreateCredentialParams,
+} from "@bitwarden/common/vault/abstractions/fido2/fido2-client.service.abstraction";
+
import { Message, MessageType } from "./messaging/message";
import { Messenger } from "./messaging/messenger";
@@ -40,6 +45,14 @@ async function hasActiveUser() {
return activeUserStorageValue[activeUserIdKey] !== undefined;
}
+function isSameOriginWithAncestors() {
+ try {
+ return window.self === window.top;
+ } catch {
+ return false;
+ }
+}
+
function initializeFido2ContentScript() {
const s = document.createElement("script");
s.src = chrome.runtime.getURL("content/fido2/page-script.js");
@@ -58,10 +71,16 @@ function initializeFido2ContentScript() {
if (message.type === MessageType.CredentialCreationRequest) {
return new Promise((resolve, reject) => {
+ const data: CreateCredentialParams = {
+ ...message.data,
+ origin: window.location.origin,
+ sameOriginWithAncestors: isSameOriginWithAncestors(),
+ };
+
chrome.runtime.sendMessage(
{
command: "fido2RegisterCredentialRequest",
- data: message.data,
+ data,
requestId: requestId,
},
(response) => {
@@ -80,10 +99,16 @@ function initializeFido2ContentScript() {
if (message.type === MessageType.CredentialGetRequest) {
return new Promise((resolve, reject) => {
+ const data: AssertCredentialParams = {
+ ...message.data,
+ origin: window.location.origin,
+ sameOriginWithAncestors: isSameOriginWithAncestors(),
+ };
+
chrome.runtime.sendMessage(
{
command: "fido2GetCredentialRequest",
- data: message.data,
+ data,
requestId: requestId,
},
(response) => {
diff --git a/apps/browser/src/vault/fido2/content/messaging/message.ts b/apps/browser/src/vault/fido2/content/messaging/message.ts
index 01a19a1f8a4..e516dd9b37a 100644
--- a/apps/browser/src/vault/fido2/content/messaging/message.ts
+++ b/apps/browser/src/vault/fido2/content/messaging/message.ts
@@ -15,9 +15,19 @@ export enum MessageType {
ErrorResponse,
}
+/**
+ * The params provided by the page-script are created in an insecure environemnt and
+ * should not be trusted. This type is used to ensure that the content-script does not
+ * trust the `origin` or `sameOriginWithAncestors` params.
+ */
+export type InsecureCreateCredentialParams = Omit<
+ CreateCredentialParams,
+ "origin" | "sameOriginWithAncestors"
+>;
+
export type CredentialCreationRequest = {
type: MessageType.CredentialCreationRequest;
- data: CreateCredentialParams;
+ data: InsecureCreateCredentialParams;
};
export type CredentialCreationResponse = {
@@ -25,9 +35,19 @@ export type CredentialCreationResponse = {
result?: CreateCredentialResult;
};
+/**
+ * The params provided by the page-script are created in an insecure environemnt and
+ * should not be trusted. This type is used to ensure that the content-script does not
+ * trust the `origin` or `sameOriginWithAncestors` params.
+ */
+export type InsecureAssertCredentialParams = Omit<
+ AssertCredentialParams,
+ "origin" | "sameOriginWithAncestors"
+>;
+
export type CredentialGetRequest = {
type: MessageType.CredentialGetRequest;
- data: AssertCredentialParams;
+ data: InsecureAssertCredentialParams;
};
export type CredentialGetResponse = {
diff --git a/apps/browser/src/vault/fido2/content/page-script.ts b/apps/browser/src/vault/fido2/content/page-script.ts
index e64fb926175..2071dbb1495 100644
--- a/apps/browser/src/vault/fido2/content/page-script.ts
+++ b/apps/browser/src/vault/fido2/content/page-script.ts
@@ -52,16 +52,7 @@ const browserCredentials = {
get: navigator.credentials.get.bind(navigator.credentials) as typeof navigator.credentials.get,
};
-const messenger = Messenger.forDOMCommunication(window);
-
-function isSameOriginWithAncestors() {
- try {
- return window.self === window.top;
- } catch {
- return false;
- }
-}
-
+const messenger = ((window as any).messenger = Messenger.forDOMCommunication(window));
navigator.credentials.create = async (
options?: CredentialCreationOptions,
abortController?: AbortController
@@ -76,17 +67,10 @@ navigator.credentials.create = async (
(options?.publicKey?.authenticatorSelection.authenticatorAttachment !== "platform" &&
browserNativeWebauthnSupport);
try {
- const isNotIframe = isSameOriginWithAncestors();
-
const response = await messenger.request(
{
type: MessageType.CredentialCreationRequest,
- data: WebauthnUtils.mapCredentialCreationOptions(
- options,
- window.location.origin,
- isNotIframe,
- fallbackSupported
- ),
+ data: WebauthnUtils.mapCredentialCreationOptions(options, fallbackSupported),
},
abortController
);
@@ -124,12 +108,7 @@ navigator.credentials.get = async (
const response = await messenger.request(
{
type: MessageType.CredentialGetRequest,
- data: WebauthnUtils.mapCredentialRequestOptions(
- options,
- window.location.origin,
- true,
- fallbackSupported
- ),
+ data: WebauthnUtils.mapCredentialRequestOptions(options, fallbackSupported),
},
abortController
);
diff --git a/apps/browser/src/vault/fido2/webauthn-utils.ts b/apps/browser/src/vault/fido2/webauthn-utils.ts
index b747825e9c8..a26c56ea570 100644
--- a/apps/browser/src/vault/fido2/webauthn-utils.ts
+++ b/apps/browser/src/vault/fido2/webauthn-utils.ts
@@ -1,18 +1,19 @@
import {
- CreateCredentialParams,
CreateCredentialResult,
- AssertCredentialParams,
AssertCredentialResult,
} from "@bitwarden/common/vault/abstractions/fido2/fido2-client.service.abstraction";
import { Fido2Utils } from "@bitwarden/common/vault/services/fido2/fido2-utils";
+import {
+ InsecureAssertCredentialParams,
+ InsecureCreateCredentialParams,
+} from "./content/messaging/message";
+
export class WebauthnUtils {
static mapCredentialCreationOptions(
options: CredentialCreationOptions,
- origin: string,
- sameOriginWithAncestors: boolean,
fallbackSupported: boolean
- ): CreateCredentialParams {
+ ): InsecureCreateCredentialParams {
const keyOptions = options.publicKey;
if (keyOptions == undefined) {
@@ -20,7 +21,6 @@ export class WebauthnUtils {
}
return {
- origin,
attestation: keyOptions.attestation,
authenticatorSelection: {
requireResidentKey: keyOptions.authenticatorSelection?.requireResidentKey,
@@ -48,7 +48,6 @@ export class WebauthnUtils {
name: keyOptions.user.name,
},
timeout: keyOptions.timeout,
- sameOriginWithAncestors,
fallbackSupported,
};
}
@@ -93,10 +92,8 @@ export class WebauthnUtils {
static mapCredentialRequestOptions(
options: CredentialRequestOptions,
- origin: string,
- sameOriginWithAncestors: boolean,
fallbackSupported: boolean
- ): AssertCredentialParams {
+ ): InsecureAssertCredentialParams {
const keyOptions = options.publicKey;
if (keyOptions == undefined) {
@@ -104,14 +101,12 @@ export class WebauthnUtils {
}
return {
- origin,
allowedCredentialIds:
keyOptions.allowCredentials?.map((c) => Fido2Utils.bufferToString(c.id)) ?? [],
challenge: Fido2Utils.bufferToString(keyOptions.challenge),
rpId: keyOptions.rpId,
userVerification: keyOptions.userVerification,
timeout: keyOptions.timeout,
- sameOriginWithAncestors,
fallbackSupported,
};
}