<?xml version="1.0" encoding="utf-8"?>
<grit-part>
  <if expr="use_titlecase">
    <message name="IDS_LEAK_CHECK_CREDENTIALS" desc="The text of the OK button in the dialog for credentials leaked on multiple sites.">
      Check Passwords
    </message>
  </if>
  <if expr="not use_titlecase">
    <message name="IDS_LEAK_CHECK_CREDENTIALS" desc="The text of the OK button in the dialog for credentials leaked on multiple sites.">
      Check passwords
    </message>
  </if>
  <message name="IDS_CREDENTIAL_LEAK_CHANGE_AUTOMATICALLY" desc="The text of the OK button in the credential leak dialog when Chrome is offering to automatically change the user's password.">
    Change automatically
  </message>
  <message name="IDS_CREDENTIAL_LEAK_TITLE_CHANGE" desc="The title of the credential leak dialog when the user should change the password now.">
    Change your password
  </message>
  <message name="IDS_CREDENTIAL_LEAK_TITLE_CHANGE_AUTOMATICALLY" desc="The title of the credential leak dialog when the user should change the password now, and Chrome is offering to do so automatically.">
    Change your password now
  </message>
  <message name="IDS_CREDENTIAL_LEAK_TITLE_CHECK" desc="The title of the credential leak dialog when the user should check all passwords on passwords.google.com.">
    Check your passwords
  </message>
  <message name="IDS_CREDENTIAL_LEAK_TITLE_CHECK_GPM" desc="The title of the credential leak dialog when the user should check all passwords on Google Password Manager.">
    Check your saved passwords
  </message>
  <message name="IDS_CREDENTIAL_LEAK_CHECK_PASSWORDS_MESSAGE" desc="The text that is used in credential leak detection dialog when the leaked credentials are saved and used on multiple sites. The leaked credentials may have been leaked by the current website, some other third-party website or even a third-party app used by the user. It could also be coincidental reuse of a trivial password used by some other users in the world and exposed in a public leak.">
    Chrome found the password you just used in a data breach. To secure your accounts, we recommend checking your saved passwords.
  </message>
  <message name="IDS_CREDENTIAL_LEAK_CHANGE_PASSWORD_MESSAGE" desc="The text that is used in credential leak detection dialog when the leaked credentials are not saved for other sites. The leaked credentials may have been leaked by the current website, some other third-party website or even a third-party app used by the user. It could also be coincidental reuse of a trivial password used by some other users in the world and exposed in a public leak.">
    Chrome found the password you just used in a data breach. We recommend changing this password now.
  </message>
  <message name="IDS_CREDENTIAL_LEAK_CHANGE_PASSWORD_AUTOMATICALLY_MESSAGE" desc="The text that is used in credential leak detection dialog when Chrome can offer to automatically change the leaked password. The leaked credentials may have been leaked by the current website, some other third-party website or even a third-party app used by the user. It could also be coincidental reuse of a trivial password used by some other users in the world and exposed in a public leak.">
    Chrome found the password you just used in a data breach. Your Google Assistant can change your password automatically.
  </message>
  <message name="IDS_CREDENTIAL_LEAK_CHANGE_AND_CHECK_PASSWORDS_MESSAGE" desc="The text that is used in credential leak detection dialog when the leaked credentials were not saved but used on multiple sites. The leaked credentials may have been leaked by the current website, some other third-party website or even a third-party app used by the user. It could also be coincidental reuse of a trivial password used by some other users in the world and exposed in a public leak.">
    Chrome found the password you just used in a data breach. To secure your accounts, we recommend changing it now and then checking your saved passwords.
  </message>
  <message name="IDS_CREDENTIAL_LEAK_CHANGE_PASSWORD_AUTOMATICALLY_MESSAGE_GPM" desc="The text that is used in credential leak detection dialog when Chrome can offer to automatically change the leaked password. The leaked credentials may have been leaked by the current website, some other third-party website or even a third-party app used by the user. It could also be coincidental reuse of a trivial password used by some other users in the world and exposed in a public leak. Google Password Manager updated phrasing.">
    The password you just used was found in a data breach. Your Google Assistant can change your password automatically.
  </message>
  <message name="IDS_CREDENTIAL_LEAK_CHECK_PASSWORDS_MESSAGE_GPM_BRANDED" desc="The text that is used in credential leak detection dialog when the leaked credentials are saved and used on multiple sites. The leaked credentials may have been leaked by the current website, some other third-party website or even a third-party app used by the user. It could also be coincidental reuse of a trivial password used by some other users in the world and exposed in a public leak. Google Password Manager updated phrasing, branded.">
    The password you just used was found in a data breach. To secure your accounts, Google Password Manager recommends checking your saved passwords.
  </message>
  <message name="IDS_CREDENTIAL_LEAK_CHANGE_PASSWORD_MESSAGE_GPM_BRANDED" desc="The text that is used in credential leak detection dialog when the leaked credentials are not saved for other sites. The leaked credentials may have been leaked by the current website, some other third-party website or even a third-party app used by the user. It could also be coincidental reuse of a trivial password used by some other users in the world and exposed in a public leak. Google Password Manager updated phrasing, branded.">
    The password you just used was found in a data breach. Google Password Manager recommends changing this password now.
  </message>
  <message name="IDS_CREDENTIAL_LEAK_CHANGE_AND_CHECK_PASSWORDS_MESSAGE_GPM_BRANDED" desc="The text that is used in credential leak detection dialog when the leaked credentials were not saved but used on multiple sites. The leaked credentials may have been leaked by the current website, some other third-party website or even a third-party app used by the user. It could also be coincidental reuse of a trivial password used by some other users in the world and exposed in a public leak. Google Password Manager updated phrasing, branded.">
    The password you just used was found in a data breach. To secure your accounts, Google Password Manager recommends changing it now and checking your saved passwords.
  </message>
  <message name="IDS_CREDENTIAL_LEAK_CHECK_PASSWORDS_MESSAGE_GPM_NON_BRANDED" desc="The text that is used in credential leak detection dialog when the leaked credentials are saved and used on multiple sites. The leaked credentials may have been leaked by the current website, some other third-party website or even a third-party app used by the user. It could also be coincidental reuse of a trivial password used by some other users in the world and exposed in a public leak. Google Password Manager updated phrasing, non branded.">
    The password you just used was found in a data breach. To secure your accounts, Password Manager recommends checking your saved passwords.
  </message>
  <message name="IDS_CREDENTIAL_LEAK_CHANGE_PASSWORD_MESSAGE_GPM_NON_BRANDED" desc="The text that is used in credential leak detection dialog when the leaked credentials are not saved for other sites. The leaked credentials may have been leaked by the current website, some other third-party website or even a third-party app used by the user. It could also be coincidental reuse of a trivial password used by some other users in the world and exposed in a public leak. Google Password Manager updated phrasing, non branded.">
    The password you just used was found in a data breach. Password Manager recommends changing this password now.
  </message>
  <message name="IDS_CREDENTIAL_LEAK_CHANGE_AND_CHECK_PASSWORDS_MESSAGE_GPM_NON_BRANDED" desc="The text that is used in credential leak detection dialog when the leaked credentials were not saved but used on multiple sites. The leaked credentials may have been leaked by the current website, some other third-party website or even a third-party app used by the user. It could also be coincidental reuse of a trivial password used by some other users in the world and exposed in a public leak. Google Password Manager updated phrasing, non branded.">
    The password you just used was found in a data breach. To secure your accounts, Password Manager recommends changing it now and then checking your saved passwords.
  </message>
  <if expr="is_ios">
    <message name="IDS_IOS_SUGGEST_PASSWORD" desc="Button title in the keyboard accessory bar to show a dialog with a generated password. [Length: 20em] [iOS only]">
      Suggest Password...
    </message>
  </if>
  <message name="IDS_PASSWORD_MANAGER_LEAK_HELP_MESSAGE" desc="The text is shown in a popup that explains to the user why they are seeing a warning about leaked passwords. This is a stand-alone string and the only content of the popup dialog.">
    Chrome periodically checks your passwords against lists that have been published online. When doing this, your passwords and usernames are encrypted, so they can’t be read by anyone, including Google.
  </message>
  <message name="IDS_MANAGE_PASSWORDS_AUTO_SIGNIN_TITLE" desc="The title of the auto-signin toast.">
    Signing in as <ph name="username">$1<ex>chef@google.com</ex></ph>
  </message>
  <message name="IDS_PASSWORD_MANAGER_EMPTY_LOGIN" desc="A placeholder for the 'Manage Passwords' bubble's empty username label">
    No username
  </message>
  <message name="IDS_PASSWORD_MANAGER_OPT_INTO_ACCOUNT_STORE" desc="A menu item allowing signed-in users to opt into using account-stored passwords.">
    Use passwords saved in your Google Account
  </message>
  <message name="IDS_PASSWORD_MANAGER_RE_SIGNIN_ACCOUNT_STORE" desc="A menu item informing signed-out users to sign-in again to use account-stored passwords.">
    Sign in to use passwords saved in your Google Account
  </message>
  <message name="IDS_PASSWORD_MANAGER_NO_ACCOUNT_STORE_MATCHES" desc="The menu item indicating that the account store doesn't contain passwords for the current site.">
    No matching passwords. Show all saved passwords.
  </message>
  <if expr="not use_titlecase">
    <message name="IDS_PASSWORD_MANAGER_MANAGE_PASSWORDS" desc="The menu item in the password field drop down that opens the list of saved passwords.">
      Manage passwords…
    </message>
    <message name="IDS_PASSWORD_MANAGER_GENERATE_PASSWORD" desc="The menu item in the password field drop down that starts the password generation flow.">
      Suggest strong password…
    </message>
  </if>
  <if expr="use_titlecase">
    <message name="IDS_PASSWORD_MANAGER_MANAGE_PASSWORDS" desc="The menu item in the password field drop down that opens the list of saved passwords.">
      Manage Passwords…
    </message>
    <message name="IDS_PASSWORD_MANAGER_GENERATE_PASSWORD" desc="The menu item in the password field drop down that starts the password generation flow.">
      Suggest Strong Password…
    </message>
  </if>
  <message name="IDS_PASSWORD_MANAGER_EXCEPTIONS_TAB_TITLE" desc="Title for 'Never saved' tab">
    Never saved
  </message>
  <message name="IDS_PASSWORD_MANAGER_SHOW_PASSWORDS_TAB_TITLE" desc="Title for 'Saved passwords' tab">
    Saved passwords
  </message>
  <message name="IDS_PASSWORD_MANAGER_SMART_LOCK" desc="The brand name of the password manager for the title of the save password bubble when a user is signed in.">
    Google Smart Lock
  </message>
  <message name="IDS_PASSWORD_MANAGER_DEFAULT_EXPORT_FILENAME" desc="Chrome suggests this file name when user chooses to export their passwords saved with Chrome.">
    Chrome Passwords
  </message>
  <message name="IDS_PASSWORD_MANAGER_PASSWORD_FOR_ACCOUNT" desc="Voice over text read if the user focuses a drop down entry to fill a password for a given account.">
    Password for <ph name="username">$1<ex>chef@google.com</ex></ph>
  </message>
</grit-part>
