Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,6 @@
"TheMasterPasswordIsThePasswordYouUseToAccessYourVault" = "The master password is the password you use to access your vault.";
"MasterPasswordHint" = "Master password hint";
"NewMasterPasswordHint" = "New master password hint";
"MasterPasswordLengthValMessageX" = "Master password must be at least %1$@ characters long.";
"MinNumbers" = "Minimum numbers";
"MinSpecial" = "Minimum special";
"MoreSettings" = "More settings";
Expand Down Expand Up @@ -389,7 +388,6 @@
"AllItems" = "All items";
"CheckingPassword" = "Checking passwordโ€ฆ";
"CheckPassword" = "Check if password has been exposed.";
"PasswordExposed" = "This password has been exposed %1$@ time(s) in data breaches. You should change it.";
"PasswordSafe" = "This password was not found in any known data breaches. It should be safe to use.";
"IdentityName" = "Identity name";
"Value" = "Value";
Expand Down Expand Up @@ -675,7 +673,6 @@
"ConfirmLogIn" = "Confirm login";
"DenyLogIn" = "Deny login";
"JustNow" = "Just now";
"XMinutesAgo" = "%1$@ minutes ago";
"LogInAccepted" = "Login confirmed";
"LogInDenied" = "Login denied";
"ApproveLoginRequests" = "Approve login requests";
Expand Down Expand Up @@ -824,10 +821,6 @@
"SessionTimeout" = "Session timeout";
"SessionTimeoutAction" = "Session timeout action";
"AccountFingerprintPhrase" = "Account fingerprint phrase";
"OneHourAndOneMinute" = "One hour and one minute";
"OneHourAndXMinute" = "One hour and %1$@ minutes";
"XHoursAndOneMinute" = "%1$@ hours and one minute";
"XHoursAndYMinutes" = "%1$@ hours and %2$@ minutes";
"PasskeyManagementExplanationLong" = "Use Bitwarden to save new passkeys and log in with passkeys stored in your vault.";
"AutofillServicesExplanationLong" = "The Android Autofill Framework is used to assist in filling login information into other apps on your device.";
"UseInlineAutofillExplanationLong" = "Use inline autofill if your selected keyboard supports it. Otherwise, use the default overlay.";
Expand Down Expand Up @@ -962,7 +955,6 @@
"BitwardenCannotResetALostOrForgottenMasterPassword" = "Bitwarden cannot reset a lost or forgotten master password.";
"LearnAboutWaysToPreventAccountLockout" = "Learn about ways to prevent account lockout";
"WhatMakesAPasswordStrong" = "What makes a password strong?";
"XCharacters" = "%1$@ Characters";
"RemoveMasterPasswordMessage" = "%1$@ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.";
"RestartRegistration" = "Restart registration";
"ExpiredLink" = "Expired link";
Expand Down Expand Up @@ -1155,7 +1147,6 @@
"GeneratePassphrase" = "Generate passphrase";
"AllowUniversalClipboard" = "Allow Universal Clipboard";
"UseUniversalClipboardToCopyDescriptionLong" = "Use Universal Clipboard to copy here and paste on other devices signed in with the same Apple ID.";
"YourPINMustBeAtLeastXCharactersDescriptionLong" = "Your PIN must be at least %1$@ characters. Your PIN settings will be reset if you ever fully log out of the application.";
"RemoveMasterPasswordMessage" = "%1$@ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.";
"RemoveMasterPasswordConfirmDomain" = "A master password is no longer required for members of the following organization. Please confirm the domain below with your organization administrator.";
"ConfirmKeyConnectorDomain" = "Confirm Key Connector domain";
Expand Down
98 changes: 83 additions & 15 deletions BitwardenResources/Localizations/en.lproj/Localizable.stringsdict
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,57 @@
<string>Bitwarden could not decrypt %d vault items</string>
</dict>
</dict>
<!-- A message indicating the minimum length of a master password in characters. -->
<key>MasterPasswordMustBeAtLeastXCharactersLong</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Master password must be at least %#@characters@ long.</string>
<key>characters</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d character</string>
<key>other</key>
<string>%d characters</string>
</dict>
</dict>
<!-- A warning if we have determined that a password has been exposed in a data breach. -->
<key>ThisPasswordHasBeenExposedXTimesDescriptionLong</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>This password has been exposed %#@times@ in data breaches. You should change it.</string>
<key>times</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d time</string>
<key>other</key>
<string>%d times</string>
</dict>
</dict>
<!-- A number of characters, as in letters/numbers/punctuation. For example, the minimum number of characters when creating a password. -->
<key>XCharacters</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@characters@</string>
<key>characters</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d character</string>
<key>other</key>
<string>%d characters</string>
</dict>
</dict>
<!-- A number of days, used in menu selections. For example, the number of days to keep a send before deletion. -->
<key>XDays</key>
<dict>
Expand All @@ -36,28 +87,28 @@
<string>%d days</string>
</dict>
</dict>
<!-- A number of items, used in headers' voiceover to indicate how many items are in a section. -->
<key>XItems</key>
<!-- A number of hours, used in menu selections. For example, how long to log events in the flight recorder. -->
<key>XHours</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@items@</string>
<key>items</key>
<string>%#@hours@</string>
<key>hours</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d item</string>
<string>%d hour</string>
<key>other</key>
<string>%d items</string>
<string>%d hours</string>
</dict>
</dict>
<!-- Message indicating a number of items were successfully imported in the Credential Exchange flow. -->
<key>XItemsSuccessfullyImported</key>
<!-- A number of items, used in headers' voiceover to indicate how many items are in a section. -->
<key>XItems</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@items@ successfully imported</string>
<string>%#@items@</string>
<key>items</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
Expand All @@ -70,21 +121,21 @@
<string>%d items</string>
</dict>
</dict>
<!-- A number of hours, used in menu selections. For example, how long to log events in the flight recorder. -->
<key>XHours</key>
<!-- Message indicating a number of items were successfully imported in the Credential Exchange flow. -->
<key>XItemsSuccessfullyImported</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@hours@</string>
<key>hours</key>
<string>%#@items@ successfully imported</string>
<key>items</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d hour</string>
<string>%d item</string>
<key>other</key>
<string>%d hours</string>
<string>%d items</string>
</dict>
</dict>
<!-- A number of minutes, used in menu selections. For example, the amount of time to keep the vault unlocked after being unlocked. -->
Expand Down Expand Up @@ -138,5 +189,22 @@
<string>%d weeks</string>
</dict>
</dict>
<!-- A message indicating the minimum length of a PIN in characters. -->
<key>YourPINMustBeAtLeastXCharactersDescriptionLong</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Your PIN must be at least %#@characters@. Your PIN settings will be reset if you ever fully log out of the application.</string>
<key>characters</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d character</string>
<key>other</key>
<string>%d characters</string>
</dict>
</dict>
</dict>
</plist>
2 changes: 1 addition & 1 deletion BitwardenShared/UI/Auth/Extensions/AlertAuthTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ class AlertAuthTests: BitwardenTestCase { // swiftlint:disable:this type_body_le
func test_passwordExposedAlert() {
let subject = Alert.dataBreachesCountAlert(count: 1)

XCTAssertEqual(subject.title, Localizations.passwordExposed(1))
XCTAssertEqual(subject.title, Localizations.thisPasswordHasBeenExposedXTimesDescriptionLong(1))
XCTAssertEqual(subject.alertActions.count, 1)
XCTAssertEqual(subject.alertActions[0].title, Localizations.ok)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ extension Alert {
static var passwordIsTooShort: Alert {
Alert(
title: Localizations.anErrorHasOccurred,
message: Localizations.masterPasswordLengthValMessageX(Constants.minimumPasswordCharacters),
message: Localizations.masterPasswordMustBeAtLeastXCharactersLong(Constants.minimumPasswordCharacters),
alertActions: [
AlertAction(title: Localizations.ok, style: .default),
],
Expand Down Expand Up @@ -155,7 +155,7 @@ extension Alert {
static func dataBreachesCountAlert(count: Int) -> Alert {
if count >= 1 {
Alert(
title: Localizations.passwordExposed(count),
title: Localizations.thisPasswordHasBeenExposedXTimesDescriptionLong(count),
message: nil,
alertActions: [
AlertAction(title: Localizations.ok, style: .default),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -812,7 +812,7 @@ class AddEditItemProcessorTests: BitwardenTestCase {
XCTAssertEqual(client.requests.count, 1)
XCTAssertEqual(client.requests[0].url, URL(string: "https://api.pwnedpasswords.com/range/e6b6a"))
XCTAssertEqual(coordinator.alertShown.last, Alert(
title: Localizations.passwordExposed(1957),
title: Localizations.thisPasswordHasBeenExposedXTimesDescriptionLong(1957),
message: nil,
alertActions: [
AlertAction(title: Localizations.ok, style: .default),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -442,7 +442,7 @@ class ViewItemProcessorTests: BitwardenTestCase { // swiftlint:disable:this type
XCTAssertEqual(client.requests.count, 1)
XCTAssertEqual(client.requests[0].url, URL(string: "https://api.pwnedpasswords.com/range/e6b6a"))
XCTAssertEqual(coordinator.alertShown.last, Alert(
title: Localizations.passwordExposed(1957),
title: Localizations.thisPasswordHasBeenExposedXTimesDescriptionLong(1957),
message: nil,
alertActions: [
AlertAction(title: Localizations.ok, style: .default),
Expand Down
Loading