<?xml version="1.0" encoding="UTF-8"?>
<!-- This file contains definitions of strings that are distribution specific.
These strings will not be translated and only english versions will
be available for now. -->

<grit base_dir="." latest_public_release="0" current_release="1"
      source_lang_id="en" enc_check="möl">
  <outputs>
    <output filename="grit/chromium_strings.h" type="rc_header">
      <emit emit_type='prepend'></emit>
    </output>
    <output filename="chromium_strings_am.pak" type="data_package" lang="am" />
    <output filename="chromium_strings_ar.pak" type="data_package" lang="ar" />
    <if expr="use_third_party_translations">
      <output filename="chromium_strings_ast.pak" type="data_package" lang="ast" />
    </if>
    <output filename="chromium_strings_bg.pak" type="data_package" lang="bg" />
    <output filename="chromium_strings_bn.pak" type="data_package" lang="bn" />
    <if expr="use_third_party_translations">
      <output filename="chromium_strings_bs.pak" type="data_package" lang="bs" />
    </if>
    <output filename="chromium_strings_ca.pak" type="data_package" lang="ca" />
    <if expr="use_third_party_translations">
      <output filename="chromium_strings_ca@valencia.pak" type="data_package" lang="ca@valencia" />
    </if>
    <output filename="chromium_strings_cs.pak" type="data_package" lang="cs" />
    <output filename="chromium_strings_da.pak" type="data_package" lang="da" />
    <output filename="chromium_strings_de.pak" type="data_package" lang="de" />
    <output filename="chromium_strings_el.pak" type="data_package" lang="el" />
    <if expr="use_third_party_translations">
      <output filename="chromium_strings_en-AU.pak" type="data_package" lang="en-AU" />
    </if>
    <output filename="chromium_strings_en-GB.pak" type="data_package" lang="en-GB" />
    <output filename="chromium_strings_en-US.pak" type="data_package" lang="en" />
    <if expr="use_third_party_translations">
      <output filename="chromium_strings_eo.pak" type="data_package" lang="eo" />
    </if>
    <output filename="chromium_strings_es.pak" type="data_package" lang="es" />
    <if expr="is_ios">
      <!-- iOS uses es-MX for es-419 -->
      <output filename="chromium_strings_es-MX.pak" type="data_package" lang="es-419" />
    </if>
    <if expr="not is_ios">
      <output filename="chromium_strings_es-419.pak" type="data_package" lang="es-419" />
    </if>
    <output filename="chromium_strings_et.pak" type="data_package" lang="et" />
    <if expr="use_third_party_translations">
      <output filename="chromium_strings_eu.pak" type="data_package" lang="eu" />
    </if>
    <output filename="chromium_strings_fa.pak" type="data_package" lang="fa" />
    <output filename="chromium_strings_fake-bidi.pak" type="data_package" lang="fake-bidi" />
    <output filename="chromium_strings_fi.pak" type="data_package" lang="fi" />
    <output filename="chromium_strings_fil.pak" type="data_package" lang="fil" />
    <output filename="chromium_strings_fr.pak" type="data_package" lang="fr" />
    <if expr="use_third_party_translations">
      <output filename="chromium_strings_gl.pak" type="data_package" lang="gl" />
    </if>
    <output filename="chromium_strings_gu.pak" type="data_package" lang="gu" />
    <output filename="chromium_strings_he.pak" type="data_package" lang="he" />
    <output filename="chromium_strings_hi.pak" type="data_package" lang="hi" />
    <output filename="chromium_strings_hr.pak" type="data_package" lang="hr" />
    <output filename="chromium_strings_hu.pak" type="data_package" lang="hu" />
    <if expr="use_third_party_translations">
      <output filename="chromium_strings_hy.pak" type="data_package" lang="hy" />
      <output filename="chromium_strings_ia.pak" type="data_package" lang="ia" />
    </if>
    <output filename="chromium_strings_id.pak" type="data_package" lang="id" />
    <output filename="chromium_strings_it.pak" type="data_package" lang="it" />
    <output filename="chromium_strings_ja.pak" type="data_package" lang="ja" />
    <if expr="use_third_party_translations">
      <output filename="chromium_strings_ka.pak" type="data_package" lang="ka" />
    </if>
    <output filename="chromium_strings_kn.pak" type="data_package" lang="kn" />
    <output filename="chromium_strings_ko.pak" type="data_package" lang="ko" />
    <if expr="use_third_party_translations">
      <output filename="chromium_strings_ku.pak" type="data_package" lang="ku" />
      <output filename="chromium_strings_kw.pak" type="data_package" lang="kw" />
    </if>
    <output filename="chromium_strings_lt.pak" type="data_package" lang="lt" />
    <output filename="chromium_strings_lv.pak" type="data_package" lang="lv" />
    <output filename="chromium_strings_ml.pak" type="data_package" lang="ml" />
    <output filename="chromium_strings_mr.pak" type="data_package" lang="mr" />
    <output filename="chromium_strings_ms.pak" type="data_package" lang="ms" />
    <output filename="chromium_strings_nl.pak" type="data_package" lang="nl" />
    <output filename="chromium_strings_nb.pak" type="data_package" lang="no" />
    <!-- 'no' for Norwegian Bokmål. It should be 'nb'. -->
    <output filename="chromium_strings_pl.pak" type="data_package" lang="pl" />
    <if expr="is_ios">
      <!-- iOS uses pt for pt-BR -->
      <output filename="chromium_strings_pt.pak" type="data_package" lang="pt-BR" />
    </if>
    <if expr="not is_ios">
      <output filename="chromium_strings_pt-BR.pak" type="data_package" lang="pt-BR" />
    </if>
    <output filename="chromium_strings_pt-PT.pak" type="data_package" lang="pt-PT" />
    <output filename="chromium_strings_ro.pak" type="data_package" lang="ro" />
    <output filename="chromium_strings_ru.pak" type="data_package" lang="ru" />
    <output filename="chromium_strings_sk.pak" type="data_package" lang="sk" />
    <output filename="chromium_strings_sl.pak" type="data_package" lang="sl" />
    <output filename="chromium_strings_sr.pak" type="data_package" lang="sr" />
    <output filename="chromium_strings_sv.pak" type="data_package" lang="sv" />
    <output filename="chromium_strings_sw.pak" type="data_package" lang="sw" />
    <output filename="chromium_strings_ta.pak" type="data_package" lang="ta" />
    <output filename="chromium_strings_te.pak" type="data_package" lang="te" />
    <output filename="chromium_strings_th.pak" type="data_package" lang="th" />
    <output filename="chromium_strings_tr.pak" type="data_package" lang="tr" />
    <if expr="use_third_party_translations">
      <output filename="chromium_strings_ug.pak" type="data_package" lang="ug" />
    </if>
    <output filename="chromium_strings_uk.pak" type="data_package" lang="uk" />
    <output filename="chromium_strings_vi.pak" type="data_package" lang="vi" />
    <output filename="chromium_strings_zh-CN.pak" type="data_package" lang="zh-CN" />
    <output filename="chromium_strings_zh-TW.pak" type="data_package" lang="zh-TW" />
  </outputs>
  <translations>
    <if expr="not use_third_party_translations">
      <file path="resources/chromium_strings_am.xtb" lang="am" />
      <file path="resources/chromium_strings_ar.xtb" lang="ar" />
      <file path="resources/chromium_strings_bg.xtb" lang="bg" />
      <file path="resources/chromium_strings_bn.xtb" lang="bn" />
      <file path="resources/chromium_strings_ca.xtb" lang="ca" />
      <file path="resources/chromium_strings_cs.xtb" lang="cs" />
      <file path="resources/chromium_strings_da.xtb" lang="da" />
      <file path="resources/chromium_strings_de.xtb" lang="de" />
      <file path="resources/chromium_strings_el.xtb" lang="el" />
      <file path="resources/chromium_strings_en-GB.xtb" lang="en-GB" />
      <file path="resources/chromium_strings_es.xtb" lang="es" />
      <file path="resources/chromium_strings_es-419.xtb" lang="es-419" />
      <file path="resources/chromium_strings_et.xtb" lang="et" />
      <file path="resources/chromium_strings_fa.xtb" lang="fa" />
      <file path="resources/chromium_strings_fi.xtb" lang="fi" />
      <file path="resources/chromium_strings_fil.xtb" lang="fil" />
      <file path="resources/chromium_strings_fr.xtb" lang="fr" />
      <file path="resources/chromium_strings_gu.xtb" lang="gu" />
      <file path="resources/chromium_strings_hi.xtb" lang="hi" />
      <file path="resources/chromium_strings_hr.xtb" lang="hr" />
      <file path="resources/chromium_strings_hu.xtb" lang="hu" />
      <file path="resources/chromium_strings_id.xtb" lang="id" />
      <file path="resources/chromium_strings_it.xtb" lang="it" />
      <!-- The translation console uses 'iw' for Hebrew, but we use 'he'. -->
      <file path="resources/chromium_strings_iw.xtb" lang="he" />
      <file path="resources/chromium_strings_ja.xtb" lang="ja" />
      <file path="resources/chromium_strings_kn.xtb" lang="kn" />
      <file path="resources/chromium_strings_ko.xtb" lang="ko" />
      <file path="resources/chromium_strings_lt.xtb" lang="lt" />
      <file path="resources/chromium_strings_lv.xtb" lang="lv" />
      <file path="resources/chromium_strings_ml.xtb" lang="ml" />
      <file path="resources/chromium_strings_mr.xtb" lang="mr" />
      <file path="resources/chromium_strings_ms.xtb" lang="ms" />
      <file path="resources/chromium_strings_nl.xtb" lang="nl" />
      <file path="resources/chromium_strings_no.xtb" lang="no" />
      <file path="resources/chromium_strings_pl.xtb" lang="pl" />
      <file path="resources/chromium_strings_pt-BR.xtb" lang="pt-BR" />
      <file path="resources/chromium_strings_pt-PT.xtb" lang="pt-PT" />
      <file path="resources/chromium_strings_ro.xtb" lang="ro" />
      <file path="resources/chromium_strings_ru.xtb" lang="ru" />
      <file path="resources/chromium_strings_sk.xtb" lang="sk" />
      <file path="resources/chromium_strings_sl.xtb" lang="sl" />
      <file path="resources/chromium_strings_sr.xtb" lang="sr" />
      <file path="resources/chromium_strings_sv.xtb" lang="sv" />
      <file path="resources/chromium_strings_sw.xtb" lang="sw" />
      <file path="resources/chromium_strings_ta.xtb" lang="ta" />
      <file path="resources/chromium_strings_te.xtb" lang="te" />
      <file path="resources/chromium_strings_th.xtb" lang="th" />
      <file path="resources/chromium_strings_tr.xtb" lang="tr" />
      <file path="resources/chromium_strings_uk.xtb" lang="uk" />
      <file path="resources/chromium_strings_vi.xtb" lang="vi" />
      <file path="resources/chromium_strings_zh-CN.xtb" lang="zh-CN" />
      <file path="resources/chromium_strings_zh-TW.xtb" lang="zh-TW" />
    </if>
    <if expr="use_third_party_translations">
      <file path="../../third_party/launchpad_translations/chromium_strings_ast.xtb" lang="ast" />
      <file path="../../third_party/launchpad_translations/chromium_strings_bg.xtb" lang="bg" />
      <file path="../../third_party/launchpad_translations/chromium_strings_bs.xtb" lang="bs" />
      <file path="../../third_party/launchpad_translations/chromium_strings_ca.xtb" lang="ca" />
      <file path="../../third_party/launchpad_translations/chromium_strings_ca-valencia.xtb" lang="ca@valencia" />
      <file path="../../third_party/launchpad_translations/chromium_strings_cs.xtb" lang="cs" />
      <file path="../../third_party/launchpad_translations/chromium_strings_da.xtb" lang="da" />
      <file path="../../third_party/launchpad_translations/chromium_strings_de.xtb" lang="de" />
      <file path="../../third_party/launchpad_translations/chromium_strings_en-AU.xtb" lang="en-AU" />
      <file path="../../third_party/launchpad_translations/chromium_strings_eo.xtb" lang="eo" />
      <file path="../../third_party/launchpad_translations/chromium_strings_es.xtb" lang="es" />
      <file path="../../third_party/launchpad_translations/chromium_strings_et.xtb" lang="et" />
      <file path="../../third_party/launchpad_translations/chromium_strings_eu.xtb" lang="eu" />
      <file path="../../third_party/launchpad_translations/chromium_strings_fi.xtb" lang="fi" />
      <file path="../../third_party/launchpad_translations/chromium_strings_fr.xtb" lang="fr" />
      <file path="../../third_party/launchpad_translations/chromium_strings_gl.xtb" lang="gl" />
      <file path="../../third_party/launchpad_translations/chromium_strings_he.xtb" lang="he" />
      <file path="../../third_party/launchpad_translations/chromium_strings_hy.xtb" lang="hy" />
      <file path="../../third_party/launchpad_translations/chromium_strings_ia.xtb" lang="ia" />
      <file path="../../third_party/launchpad_translations/chromium_strings_id.xtb" lang="id" />
      <file path="../../third_party/launchpad_translations/chromium_strings_it.xtb" lang="it" />
      <file path="../../third_party/launchpad_translations/chromium_strings_ja.xtb" lang="ja" />
      <file path="../../third_party/launchpad_translations/chromium_strings_ka.xtb" lang="ka" />
      <file path="../../third_party/launchpad_translations/chromium_strings_ku.xtb" lang="ku" />
      <file path="../../third_party/launchpad_translations/chromium_strings_kw.xtb" lang="kw" />
      <file path="../../third_party/launchpad_translations/chromium_strings_lt.xtb" lang="lt" />
      <file path="../../third_party/launchpad_translations/chromium_strings_ms.xtb" lang="ms" />
      <file path="../../third_party/launchpad_translations/chromium_strings_nl.xtb" lang="nl" />
      <file path="../../third_party/launchpad_translations/chromium_strings_no.xtb" lang="no" />
      <file path="../../third_party/launchpad_translations/chromium_strings_pt-BR.xtb" lang="pt-BR" />
      <file path="../../third_party/launchpad_translations/chromium_strings_ru.xtb" lang="ru" />
      <file path="../../third_party/launchpad_translations/chromium_strings_sl.xtb" lang="sl" />
      <file path="../../third_party/launchpad_translations/chromium_strings_sr.xtb" lang="sr" />
      <file path="../../third_party/launchpad_translations/chromium_strings_sv.xtb" lang="sv" />
      <file path="../../third_party/launchpad_translations/chromium_strings_ug.xtb" lang="ug" />
      <file path="../../third_party/launchpad_translations/chromium_strings_vi.xtb" lang="vi" />
      <file path="../../third_party/launchpad_translations/chromium_strings_zh-CN.xtb" lang="zh-CN" />
      <file path="../../third_party/launchpad_translations/chromium_strings_zh-TW.xtb" lang="zh-TW" />
    </if>
  </translations>
  <release seq="1" allow_pseudo="false">
    <messages fallback_to_english="true">
      <message name="IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_TITLE" desc="Title of the disconnect managed profile dialog.">
        Delete managed Chromium user
      </message>
      <message name="IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_TEXT" desc="Message explaining to the user what will happen if they disconnect the managed profile.">
        You are signed in with a managed account which is controlled by an administrator. If you disconnect from this account, this Chromium user and all associated Chromium data, such as apps, bookmarks, history, passwords, and other settings will be removed from this computer.
      </message>
      <message name="IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_OK_BUTTON_LABEL" desc="The text to display on the button to confirm deleting the Chromium user profile.">
        Delete Chromium user
      </message>
      <message name="IDS_PRODUCT_NAME" desc="The Chrome application name">
        Chromium
      </message>
      <message name="IDS_SHORT_PRODUCT_NAME" desc="The Chrome application short name.">
        Chromium
      </message>
      <message name="IDS_SHORT_PRODUCT_NAME_LOWER" desc="The Chrome application short name all lowercase">
        chromium
      </message>
      <message name="IDS_SXS_SHORTCUT_NAME" desc="The Chrome short cut name for SxS channel">
        Chromium
      </message>
      <message name="IDS_PRODUCT_DESCRIPTION" desc="Browser description">
        Chromium is a web browser that runs webpages and applications with lightning speed. It's fast, stable, and easy to use. Browse the web more safely with malware and phishing protection built into Chromium.
      </message>
      <message name="IDS_APP_LAUNCHER_PRODUCT_DESCRIPTION" desc="App Launcher description">
        Chromium App Launcher is a standalone platform for Chromium apps.
      </message>
      <if expr="chromeos">
        <message name="IDS_PRODUCT_OS_NAME" desc="The Chrome OS application name">
          Chromium OS
        </message>
        <message name="IDS_SHORT_PRODUCT_OS_NAME" desc="The Chrome OS application short name">
          Chromium OS
        </message>
      </if>
      <if expr="is_win">
        <message name="IDS_PRODUCT_APP_LAUNCHER_NAME" desc="The Chrome App Launcher application name">
          Chromium App Launcher
        </message>
        <message name="IDS_WIN8_INFOBAR_DESKTOP_RESTART_FOR_APP_LIST"
                 desc="Infobar message to restart chrome in desktop mode to display the App Launcher. Aplies to Windows 8 only">
          To use the app launcher, you must relaunch Chromium on the desktop.
        </message>
        <message name="IDS_WIN8_INFOBAR_DESKTOP_RESTART_FOR_PACKAGED_APP"
                 desc="Infobar message to restart chrome in desktop mode to launch a Chrome Packaged App. Aplies to Windows 8 only">
          To use Chrome apps, you must relaunch Chromium on the desktop.
        </message>
        <message name="IDS_WIN8_INFOBAR_DESKTOP_RESTART_TO_LAUNCH_APPS_YES_BUTTON"
             desc="Infobar button 'yes' text to confirm that the user does wish to switch to desktop mode to use Chrome Apps">
          Relaunch Chromium
        </message>
        <message name="IDS_PRODUCT_BINARIES_NAME" desc="The Chrome Binaries application name">
          Chromium Binaries
        </message>
        <message name="IDS_CHROME_FRAME_TURNDOWN_LEARN_MORE_URL" desc="Link to knowledge-base article about Chromium Frame's turndown">
          http://support.google.com/chrome/?p=ib_chromeframe
        </message>
        <message name="IDS_CHROME_FRAME_TURNDOWN_TEXT_IE_OLDER" desc="Text of Chromium Frame turndown prompt for IE 6, 7, and 8">
          This site is using the Chromium Frame plug-in which will soon be unsupported. Please uninstall it and upgrade to a modern browser.
        </message>
        <message name="IDS_CHROME_FRAME_TURNDOWN_TEXT_IE_NEWER" desc="Text of Chromium Frame turndown prompt for IE 9 and 10">
          This site is using the Chromium Frame plug-in that will soon be unsupported. Please uninstall it and download a compatible browser.
        </message>
        <message name="IDS_SHORTCUT_NEW_WINDOW" desc="The text label of the New window shortcut context menu entry as of Windows 8">
          New window
        </message>
      </if>
      <message name="IDS_CERT_ERROR_COMMON_NAME_INVALID_EXTRA_INFO_2" desc="2nd paragraph of extra information for an unsafe common name in an X509 certificate">
        In this case, the address listed in the certificate does not match the address of the website your browser tried to go to. One possible reason for this is that your communications are being intercepted by an attacker who is presenting a certificate for a different website, which would cause a mismatch. Another possible reason is that the server is set up to return the same certificate for multiple websites, including the one you are attempting to visit, even though that certificate is not valid for all of those websites. Chromium can say for sure that you reached &lt;strong&gt;<ph name="DOMAIN2">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but cannot verify that that is the same site as &lt;strong&gt;<ph name="DOMAIN">$2<ex>www.paypal.com</ex></ph>&lt;/strong&gt; which you intended to reach. If you proceed, Chromium will not check for any further name mismatches.
      </message>
      <message name="IDS_CERT_ERROR_EXPIRED_DETAILS" desc="Details for an expired X509 certificate">
        You attempted to reach &lt;strong&gt;<ph name="DOMAIN">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but the server presented an expired certificate. No information is available to indicate whether that certificate has been compromised since its expiration. This means Chromium cannot guarantee that you are communicating with &lt;strong&gt;<ph name="DOMAIN2">$2<ex>paypal.com</ex></ph>&lt;/strong&gt; and not an attacker. Your computer's clock is currently set to <ph name="CURRENT_TIME">$3<ex>Monday, July 18th, 2012 12:31PM</ex></ph>. Does that look right? If not, you should correct the error and refresh this page.
      </message>
      <message name="IDS_CERT_ERROR_NOT_YET_VALID_DETAILS" desc="Details for an X509 certificate that is not yet valid">
        You attempted to reach &lt;strong&gt;<ph name="DOMAIN">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but the server presented a certificate that is not yet valid. No information is available to indicate whether that certificate can be trusted. Chromium cannot reliably guarantee that you are communicating with &lt;strong&gt;<ph name="DOMAIN2">$2<ex>paypal.com</ex></ph>&lt;/strong&gt; and not an attacker. Your computer's clock is currently set to <ph name="CURRENT_TIME">$3<ex>Monday, July 18th, 2012 12:31PM</ex></ph>. Does that look right? If not, you should correct your system's clock and then refresh this page.
      </message>
      <if expr="is_ios">
        <message name="IDS_CERT_ERROR_AUTHORITY_INVALID_DETAILS" desc="Details for an X509 certificate with an invalid authority">
          You attempted to reach &lt;strong&gt;<ph
name="DOMAIN">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but the server presented a certificate issued by an entity that is not trusted by Chromium. This may mean that the server has generated its own security credentials, which Chromium cannot rely on for identity information, or an attacker may be trying to intercept your communications.
        </message>
      </if>
      <if expr="not is_ios">
        <message name="IDS_CERT_ERROR_AUTHORITY_INVALID_DETAILS" desc="Details for an X509 certificate with an invalid authority">
          You attempted to reach &lt;strong&gt;<ph name="DOMAIN">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but the server presented a certificate issued by an entity that is not trusted by your computer's operating system. This may mean that the server has generated its own security credentials, which Chromium cannot rely on for identity information, or an attacker may be trying to intercept your communications.
        </message>
      </if>
      <message name="IDS_CERT_ERROR_CONTAINS_ERRORS_DETAILS" desc="Details of the error page for an X509 certificate that contains errors">
        You attempted to reach &lt;strong&gt;<ph name="DOMAIN">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but the certificate that the server presented contains errors. Chromium cannot use a certificate with errors and cannot validate the identity of the site that you have attempted to connect to.
      </message>
      <message name="IDS_TASK_MANAGER_TITLE" desc="The title of the Task Manager window">
        Task Manager - Chromium
      </message>
      <message name="IDS_SESSION_CRASHED_VIEW_MESSAGE" desc="Message shown when the last session didn't exit cleanly.">
        Chromium didn't shut down correctly. To reopen the pages you had open, click Restore.
      </message>
      <!-- Browser Window Title Format -->
      <message name="IDS_BROWSER_WINDOW_TITLE_FORMAT" desc="The format for titles displayed in tabs and popup windows">
        <ph name="PAGE_TITLE">$1<ex>Google</ex></ph> - Chromium
      </message>
      <if expr="not chromeos">
        <message name="IDS_GET_HELP_USING_CHROME" desc="Text of the button which takes the user to the Chrome help page.">
          Get help with using Chromium
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_GET_HELP_USING_CHROME" desc="Text of the button which takes the user to the Chrome help page.">
          Get help with using Chromium OS
        </message>
      </if>
      <message name="IDS_ABOUT_VERSION_COMPANY_NAME" desc="Company name on the about pages">
        The Chromium Authors
      </message>
      <message name="IDS_ABOUT_VERSION_COPYRIGHT" desc="Copyright information on the about pages">
        Copyright <ph name="YEAR">$1</ph> The Chromium Authors. All rights reserved.
      </message>
      <message name="IDS_ABOUT_VERSION_LICENSE" desc="The label below the copyright message, containing the URLs.">
        Chromium is made possible by the <ph name="BEGIN_LINK_CHROMIUM">&lt;a target="_blank" href="$1"&gt;</ph>Chromium<ph name="END_LINK_CHROMIUM">&lt;/a&gt;</ph> open source project and other <ph name="BEGIN_LINK_OSS">&lt;a target="_blank" href="$2"&gt;</ph>open source software<ph name="END_LINK_OSS">&lt;/a&gt;</ph>.
      </message>
      <if expr="chromeos">
        <message name="IDS_ABOUT_CROS_VERSION_LICENSE" desc="Additional text displayed beneath the Chromium open source URLs for Chrome OS.">
          Chromium OS is made possible by additional <ph name="BEGIN_LINK_CROS_OSS">&lt;a target="_blank" href="$1"&gt;</ph>open source software<ph name="END_LINK_CROS_OSS">&lt;/a&gt;</ph>.
        </message>
      </if>
      <message name="IDS_ABOUT_TERMS_OF_SERVICE" desc="The terms of service label in the About box.">
        Not used in Chromium. Placeholder to keep resource maps in sync. It expects one argument: $1.
      </message>
      <if expr="is_macosx">
        <!-- Mac 32-bit deprecation -->
        <message name="IDS_MAC_32_BIT_OBSOLETE_SOON" desc="A message displayed on an at-launch infobar and About (Help) page warning the user that the computer they are using is about to become unsupported.">
          This computer will soon stop receiving Chromium updates because its hardware is no longer supported.
        </message>
        <message name="IDS_MAC_32_BIT_OBSOLETE_NOW" desc="A message displayed on an at-launch infobar and About (Help) page warning the user that the computer they are using is no longer supported.">
          This computer will no longer receive Chromium updates because its hardware is no longer supported.
        </message>
      </if>
      <if expr="is_win">
        <!-- Windows non-SSE2 deprecation -->
        <message name="IDS_WIN_SSE_OBSOLETE_NOW" desc="A message displayed on an at-launch infobar and About (Help) page warning the user that the computer they are using is no longer supported.">
          This computer will no longer receive Chromium updates because its hardware is no longer supported.
        </message>
      </if>
      <message name="IDS_ACCNAME_APP" desc="The accessible name for the app menu.">
        Chromium
      </message>
      <message name="IDS_ACCNAME_TOOLBAR" desc="The accessible name for the application's toolbar.">
        Chromium Toolbar
      </message>
      <!-- Hung Browser Detector -->
      <message name="IDS_BROWSER_HUNGBROWSER_MESSAGE" desc="Content of the dialog box shown when the browser is hung">
        Chromium is unresponsive. Relaunch now?
      </message>
      <message name="IDS_IMPORT_PROGRESS_INFO" desc="Explanatory text for the importing progress dialog">
        Chromium is now importing the following items from <ph name="BROWSER_COMPONENT">$1<ex>History</ex></ph>:
      </message>
      <message name="IDS_IMPORT_FIND_YOUR_BOOKMARKS" desc="Helpful reminder for where to find imported bookmarks">
        Find your bookmarks in the Chromium menu or on the bookmarks bar.
      </message>
      <message name="IDS_IMPORTER_LOCK_TEXT" desc="The message to be displayed on dialog">
        Sadly, your Mozilla Firefox settings are not available while that browser is running. To import those settings to Chromium, save your work and close all Firefox windows. Then click Continue.
      </message>
      <!-- Uninstall messages -->
      <if expr="is_win">
        <message name="IDS_UNINSTALL_CLOSE_APP" desc="Message to user when uninstall detects other app instance running">
          Please close all Chromium windows and try again.
        </message>
        <message name="IDS_UNINSTALL_CLOSE_APP_IMMERSIVE" desc="Message to user when uninstall detects other app instance running, possibly in the Windows 8 immersive mode">
          Please close all Chromium windows (including those in Windows 8 mode) and try again.
        </message>
      </if>
      <message name="IDS_UNINSTALL_VERIFY" desc="Message to confirm user wants to uninstall">
        Are you sure you want to uninstall Chromium?
      </message>
      <message name="IDS_UNINSTALL_CHROME" desc="The text of the shortcut in the Start Menu for uninstalling chrome.">
        Uninstall Chromium
      </message>
      <message name="IDS_UNINSTALL_APP_LAUNCHER" desc="The text of the shortcut in the Start Menu for uninstalling App Launcher.">
        Uninstall Chromium App Launcher
      </message>
      <message name="IDS_FIRSTRUN_DLG_TITLE" desc="Dialog title for first-run dialog">
        Welcome to Chromium
      </message>
      <message name="IDS_FIRSTRUN_DLG_OK" desc="Text for OK button on first-run dialog">
        Start Chromium
      </message>
      <message name="IDS_FR_CUSTOMIZE_DEFAULT_BROWSER" desc="Default browser checkbox label">
        Make Chromium the default browser
      </message>
      <if expr="chromeos">
        <message name="IDS_NEW_TAB_CHROME_WELCOME_PAGE_TITLE"
                 desc="Title for the hard-coded thumbnail that represents the Chromium OS Welcome page. This is used on the NTP when there aren't enough thumbnails to show.">
          Get Started with Chromium OS
        </message>
      </if>
      <if expr="is_ios">
        <message name="IDS_NEW_TAB_CHROME_WELCOME_PAGE_TITLE"
                 desc="Title for the hard-coded thumbnail that represents the Google Chrome Welcome page.  This is used on the NTP when there aren't enough thumbnails to show. [Length: 14em]">
          Welcome
        </message>
      </if>
      <if expr="not chromeos and not is_ios">
        <message name="IDS_NEW_TAB_CHROME_WELCOME_PAGE_TITLE"
                 desc="Title for the hard-coded thumbnail that represents the Google Chrome Welcome page.  This is used on the NTP when there aren't enough thumbnails to show.">
          Welcome to Chromium
        </message>
      </if>
      <if expr="not chromeos">
        <message name="IDS_EXTERNAL_PROTOCOL_INFORMATION" desc="General information about what Chrome is trying to do when opening this external protocol">
          Chromium needs to launch an external application to handle <ph name="SCHEME">$1<ex>acrobat:</ex></ph> links. The link requested is <ph name="PROTOLINK">$2<ex>acrobat:yourpdf</ex></ph>.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_EXTERNAL_PROTOCOL_INFORMATION" desc="General information about what Chrome is trying to do when opening this external protocol">
          Chromium OS does not support launching an external application to handle <ph name="SCHEME">$1<ex>acrobat:</ex></ph> links. The link requested is <ph name="PROTOLINK">$2<ex>acrobat:yourpdf</ex></ph>.
        </message>
      </if>
      <!-- Strings used to warn that an OS is not supported -->
      <message name="IDS_UNSUPPORTED_OS_PRE_WIN_XP" desc="The text used to warn the user that Windows pre-XP is not supported">
        Chromium requires Windows XP or later. Some features may not work.
      </message>
      <message name="IDS_UNSUPPORTED_OS" desc="The text used to warn the user that current OS is not supported">
        Chromium does not support <ph name="OS_NAME">$1<ex>Windows 2000</ex></ph>.
      </message>
      <if expr="not chromeos">
        <message name="IDS_OPTIONS_RELAUNCH_REQUIRED" desc="The message displayed for an option that requires a relaunch to take effect. This appears in a message box if an option is changed that requires a relaunch.">
          Please close all Chromium windows and relaunch Chromium for this change to take effect.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_OPTIONS_RELAUNCH_REQUIRED" desc="The message displayed for an option that requires a relaunch to take effect. This appears in a message box if an option is changed that requires a relaunch.">
          Please sign out and sign in again for this change to take effect.
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_STATUS_TRAY_KEEP_CHROME_RUNNING_IN_BACKGROUND" desc="In Title Case: The checkbox in the status tray context menu that controls whether chrome keeps running in the background after the last window is closed">
          Let Chromium Run In The Background
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_STATUS_TRAY_KEEP_CHROME_RUNNING_IN_BACKGROUND" desc="The checkbox in the status tray context menu that controls whether chrome keeps running in the background after the last window is closed">
          Let Chromium run in the background
        </message>
      </if>
      <message name="IDS_OPTIONS_SYSTEM_ENABLE_BACKGROUND_MODE" desc="The label of the check-box that enables background mode">
        Continue running background apps when Chromium is closed
      </message>
      <message name="IDS_OPTIONS_SYSTEM_ENABLE_HARDWARE_ACCELERATION_MODE" desc="The label of the check-box that enables hardware acceleration mode">
        Use hardware acceleration when available
      </message>
      <message name="IDS_OPTIONS_SYSTEM_ENABLE_HARDWARE_ACCELERATION_MODE_RESTART" desc="The restart string after changing hardware acceleration mode">
        (requires Chromium <ph name="BEGIN_BUTTON">&lt;button id="gpu-mode-reset-restart-button" type="button" class="link-button standalone-link-button"&gt;</ph>restart<ph name="END_BUTTON">&lt;/button&gt;</ph>)
      </message>
      <message name="IDS_CANT_WRITE_USER_DIRECTORY_SUMMARY" desc="Summary of problem displayed in dialog when we can't create a directory for this user.">
Chromium cannot read and write to its data directory:

<ph name="USER_DATA_DIRECTORY">$1<ex>C:\Documents and Settings\devint\Local Settings\Application Data\Google\Chrome</ex></ph>
      </message>
      <message name="IDS_EULA_CHECKBOX_ENABLE_LOGGING" desc="The label of the checkbox to enable/disable crash and user metrics logging">
        Optional: Help make Chromium better by automatically sending usage statistics and crash reports to Google.
      </message>
      <message name="IDS_PROFILE_TOO_NEW_ERROR" desc="Error displayed on startup when the profile is from a newer version of the product and can not be read">
Your profile can not be used because it is from a newer version of Chromium.

Some features may be unavailable. Please specify a different profile directory or use a newer version of Chromium.
      </message>
      <message name="IDS_PREFERENCES_UNREADABLE_ERROR" desc="Error displayed on startup when user preferences file can not be read">
Your preferences can not be read.

Some features may be unavailable and changes to preferences won't be saved.
      </message>
      <message name="IDS_PREFERENCES_CORRUPT_ERROR" desc="Error displayed on startup when user preferences file can not be read">
Your preferences file is corrupt or invalid.

Chromium is unable to recover your settings.
      </message>
      <!-- Crash Recovery Dialog -->
      <message name="IDS_CRASH_RECOVERY_TITLE" desc="Title of dialog shown when the browser crashes.">
        Chromium
      </message>
      <message name="IDS_CRASH_RECOVERY_CONTENT" desc="Text content telling the user the browser has crashed.">
        Whoa! Chromium has crashed. Relaunch now?
      </message>
      <if expr="not is_android">
        <message name="IDS_PASSWORD_MANAGER_SAVE_PASSWORD_PROMPT" desc="Info bar message to save a password">
          Do you want Chromium to save your password?
        </message>
      </if>
      <if expr="is_android">
        <message name="IDS_PASSWORD_MANAGER_SAVE_PASSWORD_PROMPT" desc="Mobile: Info bar message to save a password">
          Do you want Chromium to save your password for this site?
        </message>
      </if>
      <if expr="is_macosx">
        <message name="IDS_PASSWORDS_PAGE_AUTHENTICATION_PROMPT" desc="Text for the dialog box that prompts the user for their OS account password before revealing plaintext passwords on the password page.">
          Chromium is trying to show passwords.
        </message>
      </if>
      <if expr="is_win">
        <message name="IDS_PASSWORDS_PAGE_AUTHENTICATION_PROMPT" desc="Text for the dialog box that prompts the user for their OS account password before revealing plaintext passwords on the password page.">
          Chromium is trying to show passwords. Type your Windows password to allow this.
        </message>
      </if>
      <message name="IDS_MACHINE_LEVEL_INSTALL_CONFLICT" desc="Error message to display when user tries to run user level Chromium even though machine level Chromium is already installed.">
        An administrator has installed Chromium on this system, and it is available for all users. The system-level Chromium will replace your user-level installation now.
      </message>
      <message name="IDS_INSTALL_HIGHER_VERSION" desc="Error displayed when higher version already exists.">
        This computer already has a more recent version of Chromium. If the software is not working, please uninstall Chromium and try again.
      </message>
      <message name="IDS_INSTALL_HIGHER_VERSION_APP_LAUNCHER" desc="Error displayed when higher version of the Chromium App Launcher already exists.">
        This computer already has a more recent version of the Chromium components. Please use a more recent installer.
      </message>
      <message name="IDS_INSTALL_FAILED" desc="Error displayed if installation fails due to some unknown error.">
        Installation failed due to unspecified error. If Chromium is currently running, please close it and try again.
      </message>
      <message name="IDS_SAME_VERSION_REPAIR_FAILED" desc="Error displayed if installation fails due to Chrome running.">
        Can not install the same Chromium version that is currently running. Please close Chromium and try again.
      </message>
      <message name="IDS_SETUP_PATCH_FAILED" desc="Error message when setup.exe fails to patch itself.">
        Installation failed due to unspecified error. Please download Chromium again.
      </message>
      <message name="IDS_INSTALL_OS_NOT_SUPPORTED" desc="Error displayed if OS is not supported">
        Chromium requires Windows Vista or Windows XP with SP2 or higher.
      </message>
      <message name="IDS_INSTALL_OS_ERROR" desc="Error displayed when any Windows API call fails and we do not have more specific information.">
        An operating system error occurred during installation. Please download Chromium again.
      </message>
      <message name="IDS_INSTALL_TEMP_DIR_FAILED" desc="Error displayed when we fail to create temporary directory during installation.">
        The installer couldn't create a temporary directory. Please check for free disk space and permission to install software.
      </message>
      <message name="IDS_INSTALL_UNCOMPRESSION_FAILED" desc="Error when when we can not uncompress installation archive.">
        The installer failed to uncompress archive. Please download Chromium again.
      </message>
      <message name="IDS_INSTALL_INVALID_ARCHIVE" desc="Error displayed when we can not open the installation archive.">
        The installer archive is corrupted or invalid. Please download Chromium again.
      </message>
      <message name="IDS_INSTALL_INSUFFICIENT_RIGHTS" desc="Error displayed when a non admin user tries to attempt system level install/uninstall.">
        You do not have appropriate rights for system-level install. Try running the installer again as Administrator.
      </message>
      <message name="IDS_INSTALL_NO_PRODUCTS_TO_UPDATE" desc="Error displayed if the installer is not provided one or more products to install/update.">
        No installation of Chromium found to update.
      </message>
      <message name="IDS_UNINSTALL_COMPLETE" desc="Text displayed on dialog that is shown when uninstall is complete and no reboot is required.">
        Uninstallation complete.
      </message>
      <message name="IDS_INSTALL_DIR_IN_USE" desc="Error during install if Chromium version is missing from registry but the installation directory exists and can not be deleted.">
        Chromium installation directory seems to be in use. Please reboot your computer and try again.
      </message>
      <message name="IDS_INSTALL_MULTI_INSTALLATION_EXISTS" desc="Error during install if a multi-install Chromium is present, thereby preventing the installation of a single-install Chromium.">
        A conflicting installation of Chromium was found on the system. Please uninstall it and try again.
      </message>
      <message name="IDS_INSTALL_INCONSISTENT_UPDATE_POLICY" desc="This message does not apply to Chromium.">
      </message>
      <!-- Options Dialog -->
      <message name="IDS_OPTIONS_IMPROVE_BROWSING_EXPERIENCE" desc="The text in the options panel that describes how we use web services to improve browsing experience.">
        Chromium may use web services to improve your browsing experience.
      </message>
      <message name="IDS_IMPORT_BOOKMARKS" desc="Explanatory text for the importing progress dialog when importing a bookmarks.html file from the bookmark manager">
        Chromium is now importing Favorites/Bookmarks.
      </message>
      <message name="IDS_OEM_MAIN_SHORTCUT_NAME" desc="Name of the desktop shortcut to start the application for OEM pre-installations.">
        Internet Browser
      </message>
      <message name="IDS_SHORTCUT_TOOLTIP" desc="Text for the hover-on tooltip for the Chromium shortcuts.">
        Access the Internet
      </message>
      <message name="IDS_APP_LAUNCHER_SHORTCUT_TOOLTIP" desc="Text for the hover-on tooltip for the App Launcher shortcut.">
        Launch Chromium apps
      </message>
      <message name="IDS_UNINSTALL_DELETE_PROFILE" desc="Text to show user to ask whether to delete all the profile data also during uninstallation.">
        Also delete your browsing data?
      </message>
      <message name="IDS_UNINSTALL_SET_DEFAULT_BROWSER" desc="Text to ask whether to set another browser as default when Chromium is uninstalled.">
        Change default browser to:
      </message>
      <message name="IDS_UNINSTALL_BUTTON_TEXT" desc="Label for uninstall button on Uninstall confirmation dialog.">
        Uninstall
      </message>
      <message name="IDS_DEFAULT_BROWSER_INFOBAR_SHORT_TEXT" desc="More compact text to show in the default browser query infobar.">
        Chromium isn't your default browser.
      </message>
      <if expr="chromeos">
        <message name="IDS_SYNC_OVERVIEW" desc="Chrome OS: The message that appears in the options dialog when sync has not been set up by the user.">
          Set up Sync to save your personalized browser features to the web and access them from Chromium on any computer.
        </message>
      </if>
      <!-- Try Chrome Toast Dialog -->
      <message name="IDS_TRY_TOAST_HEADING" desc="Top line of the try-chrome-again dialog">
        There is a new version of Chromium available.
      </message>
      <message name="IDS_TRY_TOAST_HEADING2" desc="Top line of the try-chrome-again dialog">
        There's a new version of Chromium available, and it's faster than ever.
      </message>
      <message name="IDS_TRY_TOAST_HEADING3" desc="Top line of the try-chrome-again dialog">
        There's a new, safer version of Chromium available.
      </message>
      <message name="IDS_TRY_TOAST_HEADING4" desc="Top line of the try-chrome-again dialog">
        Chromium has been updated, but you haven't used it for at least 30 days.
      </message>
      <message name="IDS_TRY_TOAST_HEADING_SKYPE" desc="Top line of the try-chrome-again dialog">
        Chromium lets you click a phone number on the web and call it with Skype!
      </message>
      <message name="IDS_TRY_TOAST_TRY_OPT" desc="First option radio button on the dialog to try chrome">
        Try it out, it's already installed
      </message>
      <message name="IDS_TRY_TOAST_CANCEL" desc="Try chrome again dialog Cancel button">
        Don't bug me
      </message>
      <message name="IDS_TRY_TOAST_WHY" desc="Text of the url link that explains why this dialog is being shown">
        Why am I seeing this?
      </message>
      <!-- about:conflicts strings -->
      <message name="IDS_CONFLICTS_CHECK_PAGE_TITLE_LONG" desc="The long title on the compatibility page">
        Modules loaded into Chromium
      </message>
      <message name="IDS_CONFLICTS_CHECK_WARNING_CONFIRMED" desc="Warning label on the compatibility page">
        This module is known to conflict with Chromium.
      </message>
      <message name="IDS_CONFLICTS_CHECK_WARNING_SUSPECTED" desc="Warning label on the compatibility page">
        A module with the same name has been known to conflict with Chromium.
      </message>
      <!-- chrome://crashes strings -->
      <message name="IDS_CRASHES_DISABLED_MESSAGE" desc="The explanatory message for chrome://crashes when crash reporting is disabled">
        Crash reporting is not available in Chromium.
      </message>
      <!-- Page Info bubble -->
      <message name="IDS_PAGE_INFO_INTERNAL_PAGE" desc="Message to display in the page info bubble when the page you are on is a chrome:// page or about:something.">
        You are viewing a secure Chromium page.
      </message>
      <!-- Print Preview -->
      <message name="IDS_PRINT_PREVIEW_NO_PLUGIN" desc="Message to display when the PDF viewer is missing.">
        Chromium does not include the PDF viewer which is required for Print Preview to function.
      </message>

      <!-- Download Shelf Items -->
      <message name="IDS_DOWNLOAD_STATUS_CRX_INSTALL_RUNNING"
               desc="Message shown when a CRX has been downloaded and is being unpacked.">
        Adding to Chromium...
      </message>

      <message name="IDS_PROMPT_DOWNLOAD_CHANGES_SETTINGS"
               desc="Message shown on the download shelf when the download is known to change settings in the browser in a malicious way.">
        <ph name="FILE_NAME">$1<ex>bla.exe</ex></ph> makes settings changes similar to some malware, so Chromium has blocked it.
      </message>

      <message name="IDS_PROMPT_MALICIOUS_DOWNLOAD_URL"
         desc="Message shown to the user to validate the download when the download url is classified to lead to malware by the safebrowsing database.">
        This file is malicious, and Chromium has blocked it.
      </message>
      <message name="IDS_PROMPT_MALICIOUS_DOWNLOAD_CONTENT"
         desc="Message shown to the user to validate the download when the download content is classified to lead to malware by safebrowsing.">
        <ph name="FILE_NAME">$1<ex>malware.exe</ex></ph> is malicious, and Chromium has blocked it.
      </message>

      <!-- Remove in-progress downloads confirmation dialog -->
      <message name="IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION" desc="Explanation of the dialog asking for user confirmation to close the browser when one download is in progress.">
        A download is currently in progress. Do you want to exit Chromium and cancel the download?
      </message>
      <message name="IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_EXPLANATION" desc="Explanation of the dialog asking for user confirmation to close the browser when multiple downloads are in progress.">
        Downloads are currently in progress. Do you want to exit Chromium and cancel the downloads?
      </message>
      <message name="IDS_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL" desc="Button text for OKing to close the browser when one or more downloads are in progress.">
        Yes, exit Chromium
      </message>

      <!-- "Create application shortcuts" dialog -->
      <if expr="is_posix and not is_macosx and not is_ios">
        <message name="IDS_CREATE_SHORTCUTS_ERROR_LABEL" desc="Contents of the main label in the error dialog box when creating an application shortcut failed for unknown reasons.">
          Chromium could not create an application shortcut.
        </message>
      </if>

      <!-- Autolaunch infobar -->
      <message name="IDS_AUTO_LAUNCH_INFOBAR_TEXT" desc="The text to show in the infobar when Chromium was automatically launched on startup">
        Chromium is configured to automatically launch when you start your computer.
      </message>

      <!-- about:flags -->
      <if expr="not chromeos">
        <message name="IDS_FLAGS_RELAUNCH_NOTICE" desc="Notifies the user that he needs to relaunch Chromium. Shown next to a button that says 'Relaunch Now'.">
          Your changes will take effect the next time you relaunch Chromium.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_FLAGS_RELAUNCH_NOTICE" desc="Notifies the user that he needs to restart Chromium OS. Shown next to a button that says 'Restart Now'.">
          Your changes will take effect the next time you restart your device.
        </message>
      </if>

      <!-- Obsolete System info bar -->
      <message name="IDS_SYSTEM_OBSOLETE_MESSAGE" desc="Message shown when your OS is no longer supported. This message is followed by a 'Learn more' link.">
         Chromium has stopped updating and no longer supports this version of your operating system.
      </message>

      <!-- Google API keys info bar -->
      <message name="IDS_MISSING_GOOGLE_API_KEYS" desc="Message shown when Google API keys are missing. This message is followed by a 'Learn more' link.">
        Google API keys are missing. Some functionality of Chromium will be disabled.
      </message>

      <!-- about:memory -->
      <if expr="not is_android">
        <message name="IDS_MEMORY_USAGE_SUMMARY_DESC" desc="Describes the browser summary table in the about memory page, which shows memory usage for Chromium and any other active browsers." translateable="false">
Summary of memory used by currently active browsers. For browsers which use multiple processes, memory reflects aggregate memory used across all browser processes.

For Chromium, processes used to display diagnostics information (such as this "about:memory") are excluded.
        </message>
      </if>
      <if expr="is_android">
        <message name="IDS_MEMORY_USAGE_SUMMARY_DESC" desc="Describes the browser summary table in the about memory page, which shows memory usage for Chromium." translateable="false">
Summary of memory used by Chromium. Since Chromium uses multiple processes, memory reflects aggregate memory used across all browser processes.

For Chromium, processes used to display diagnostics information (such as this "about:memory") are excluded.
        </message>
      </if>

      <!-- About Chrome page -->
      <if expr="not chromeos">
        <message name="IDS_UPGRADE_SUCCESSFUL_RELAUNCH" desc="Status label: Successfully updated Chromium">
          Nearly up-to-date! Relaunch Chromium to finish updating.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPGRADE_SUCCESSFUL_RELAUNCH" desc="Status label: Successfully updated Chromium OS">
          Nearly up-to-date! Restart your device to finish updating.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPGRADE_SUCCESSFUL_CHANNEL_SWITCH" desc="Status label: Channel was successfully switched on Chromium OS">
          Channel changed. Restart your device to apply changes.
        </message>
      </if>
      <if expr="not chromeos">
        <message name="IDS_UPGRADE_UP_TO_DATE" desc="Status label: Already up to date (Chromium)">
          Chromium is up to date.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPGRADE_UP_TO_DATE" desc="Status label: Already up to date (Chromium OS)">
          Your device is up to date.
        </message>
      </if>
      <if expr="not chromeos">
        <message name="IDS_UPGRADE_UPDATING" desc="Status label: Updating Chromium">
          Updating Chromium...
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPGRADE_UPDATING" desc="Status label: Updating Chromium OS">
          Updating your device...
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPGRADE_UPDATING_CHANNEL_SWITCH" desc="Status label: Updating Chromium OS to a specified channel">
          Updating your device to <ph name="CHANNEL_NAME">$1<ex>stable</ex></ph> channel...
        </message>
      </if>

      <!-- iOS Upgrade available info bar-->
      <if expr="is_ios">
        <message name="IDS_UPGRADE_AVAILABLE" desc="Text to inform the user of the presence of a new version of the application">
          Chromium just got better! A new version is available.
        </message>
        <message name="IDS_UPGRADE_AVAILABLE_BUTTON" desc="Diplayed on a button the user can use to upgrade the a more recent version of the application. [Length: 10em]">
          Update
        </message>
      </if>

      <!-- Extension/App install prompt -->
      <message name="IDS_EXTENSION_INLINE_INSTALL_PROMPT_TITLE" desc="Titlebar of the extension or app inline installation prompt window">
        Add to Chromium
      </message>

      <!-- Extension installed bubble -->
      <if expr="enable_extensions">
        <message name="IDS_EXTENSION_INSTALLED_HEADING" desc="First line in the content area of the extension installed bubble. Instructs that the extension was installed.">
          <ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph> has been added to Chromium.
        </message>
        <message name="IDS_EXTENSION_INSTALLED_SIGNIN_PROMO_LINK" desc="The first part of the sign-in promo paragraph. This part will be converted to a link and will get more text appended to it (see IDS_EXTENSION_INSTALLED_SIGNIN_PROMO). Keep this text short.">
          Sign in to Chromium
        </message>
      </if>

      <!-- chrome://settings/extensions page -->
      <message name="IDS_EXTENSIONS_INCOGNITO_WARNING" desc="Warns the user that Chromium cannot prevent extensions from recording history in incognito mode. Displayed in extensions management UI after an extension is selected to be run in incognito mode.">
        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>Warning:<ph name="END_BOLD">&lt;/b&gt;</ph> Chromium cannot prevent extensions from recording your browsing history. To disable this extension in incognito mode, unselect this option.
      </message>
      <message name="IDS_EXTENSIONS_UNINSTALL" desc="The link for uninstalling extensions.">
        Remove from Chromium
      </message>

      <if expr="enable_extensions">
        <message name="IDS_EXTENSIONS_SUSPICIOUS_DISABLED_BODY" desc="Body of the dialog shown when suspicious extensions have been disabled">
          To make Chromium safer, we disabled some extensions that aren't listed in the <ph name="IDS_EXTENSION_WEB_STORE_TITLE">$1<ex>Chrome Web Store</ex></ph> and may have been added without your knowledge.
        </message>
      </if>

      <!-- Main Chrome menu -->
      <message name="IDS_APPMENU_TOOLTIP" desc="The tooltip to show for the browser menu">
        Customize and control Chromium
      </message>

      <if expr="use_titlecase and not chromeos">
        <message name="IDS_ABOUT" desc="In Title Case: The text label of the About Chrome menu item">
          About &amp;Chromium
        </message>
        <message name="IDS_UPDATE_NOW" desc="In Title Case: The text label of the Update Chrome Now menu item">
          Update &amp;Chromium
        </message>
      </if>
      <if expr="not use_titlecase and not chromeos">
        <message name="IDS_ABOUT" desc="The text label of the About Chrome menu item">
          About &amp;Chromium
        </message>
        <message name="IDS_UPDATE_NOW" desc="The text label of the Update Chrome Now menu item">
          Update &amp;Chromium
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_ABOUT" desc="The text label of the About Chrome OS menu item">
          About &amp;Chromium OS
        </message>
        <message name="IDS_UPDATE_NOW" desc="The text label of the Update Chrome OS Now menu item">
          Update &amp;Chromium OS
        </message>
      </if>

      <if expr="is_macosx">
        <message name="IDS_APP_MENU_PRODUCT_NAME" desc="The application's short name, used for the Mac's application menu, activity monitor, etc. This should be less than 16 characters. Example: Chrome, not Google Chrome.">
          Chromium
        </message>
        <message name="IDS_HELPER_NAME" desc="The helper application's name.  Should contain the Chrome application name (IDS_PRODUCT_NAME). Example: Google Chrome Helper.">
          Chromium Helper
        </message>
        <message name="IDS_SHORT_HELPER_NAME" desc="The helper application's short name, used for the Mac's application menu, activity monitor, etc. Example: Chrome Helper, not Google Chrome Helper.">
          Chromium Helper
        </message>
      </if>

      <!-- Chrome sign-in page -->
      <message name="IDS_CHROME_SIGNIN_TITLE" desc="Title on the about:chrome-signin page">
        Chromium
      </message>

      <!-- Tutorial card in the avatar menu bubble -->
      <message name="IDS_PROFILES_SIGNIN_TUTORIAL_CONTENT_HEADER" desc="Header line of the tutorial card in the avatar menu bubble view for a signed-in user.">
        Welcome to your Chromium. Check back here to:
      </message>
      <message name="IDS_PROFILES_SIGNIN_TUTORIAL_CONTENT_TEXT" desc="The bulleted content of the tutorial card in the avatar menu bubble view for a signed-in user.">
        • Switch between people
• Lock your Chromium stuff
• Manage your Google Accounts
      </message>

      <!-- Sync Promo New Tab Page bubble strings -->
      <message name="IDS_SYNC_PROMO_NTP_BUBBLE_MESSAGE_NEW" desc="The body of the sync promo NTP bubble.">
        Now that you're signed in, you can get your tabs, bookmarks and other Chromium stuff across your laptop, phone and tablet. You will also receive more relevant suggestions and features on Google services.
      </message>

      <!-- One click sign-in infobar -->
      <if expr="not chromeos">
        <!-- New one-click sign-in dialog contents for SAML support -->
        <message name="IDS_ONE_CLICK_SIGNIN_DIALOG_TITLE_NEW" desc="The title of the modal dialog window that opens when the user chooses to use one click sign-in.">
          You're signed in to Chromium!
        </message>
        <message name="IDS_ONE_CLICK_SIGNIN_DIALOG_MESSAGE_NEW" desc="The message of the one click sign-in dialog.">
          You're signed in as <ph name="USER_EMAIL_ADDRESS">$1<ex>foo@gmail.com</ex></ph>. Now you can access your bookmarks, history, and other settings on all your signed in devices.
        </message>
        <message name="IDS_ONE_CLICK_SIGNIN_BUBBLE_MESSAGE_FULL" desc="The entire message of the one click sign-in bubble.">
          You're now signed in to Chromium! Your bookmarks, history, and other settings will be synced to your Google Account.
        </message>
        <message name="IDS_ONE_CLICK_SIGNIN_BUBBLE_MESSAGE_NEW" desc="The body of the sync promo NTP bubble.">
          Now that you're signed in, you can get your tabs, bookmarks and other Chromium stuff across your laptop, phone and tablet. You will also receive more relevant suggestions and features on Google services.
        </message>
        <message name="IDS_ONE_CLICK_SIGNIN_BUBBLE_SYNC_DISABLED_MESSAGE" desc="The body of the sign-in bubble, when sync has been disabled.">
          You're now signed in to Chromium! Sync is disabled by your administrator.
        </message>
        <message name="IDS_SYNC_WRONG_EMAIL" desc="Message shown when sync setup failed due to the user entering the wrong email address for sign-in.">
          You were signed in to Chromium as <ph name="USER_EMAIL_ADDRESS">$1<ex>foo@gmail.com</ex></ph>. Please use the same account to sign in again.
        </message>
        <message name="IDS_ONE_CLICK_SIGNIN_CONFIRM_EMAIL_DIALOG_MESSAGE" desc="Error message to display when setting up sync for a second time and the user name is different from the previous user name.">
          Someone previously signed in to Chromium on this computer as <ph name="ACCOUNT_EMAIL_LAST">$1<ex>user@example.com</ex></ph>. If that isn't your account, create a new Chromium user to keep your information separate.

Signing in anyway will merge Chromium information like bookmarks, history, and other settings to <ph name="ACCOUNT_EMAIL_NEW">$2<ex>user@example.com</ex></ph>.
        </message>
      </if>

      <!-- Enterprise sign-in profile linking -->
      <if expr="not is_android">
        <message name="IDS_ENTERPRISE_SIGNIN_TITLE" desc="The title of the dialog to confirm linking the browser profile with the signed-in enterprise account">
          Important information regarding your Chromium data
        </message>
        <message name="IDS_ENTERPRISE_SIGNIN_EXPLANATION" desc="The warning message displayed to an enterprise user about to link their profile to their Google account. This message is followed by a 'Learn more' link.">
          You are signing in with a managed account and giving its administrator control over your Chromium profile. Your Chromium data, such as your apps, bookmarks, history, passwords, and other settings will become permanently tied to <ph name="USER_NAME">$1<ex>pat@example.com</ex></ph>. You will be able to delete this data via the Google Accounts Dashboard, but you will not be able to associate this data with another account.
        </message>
        <message name="IDS_ENTERPRISE_SIGNIN_CREATE_NEW_PROFILE_MESSAGE" desc="The text of the prompt to create a new profile after signing in to an enterprise account">
          If you prefer to keep your existing Chromium data separate, you can create a new Chromium user for <ph name="USER_NAME">$1<ex>pat@example.com</ex></ph>.
        </message>
        <message name="IDS_ENTERPRISE_SIGNIN_CONTINUE" desc="Text of the button to link the current profile with the signed-in enterprise account">
          Link my Chromium data to this account
        </message>
      </if>

      <!-- Enterprise sign-in dialog (new-style) -->
      <!-- TODO(dconnelly): remove "new-style" once the old dialog is gone. -->
      <if expr="toolkit_views or is_macosx">
        <message name="IDS_ENTERPRISE_SIGNIN_TITLE_NEW_STYLE" desc="The title of the dialog to confirm linking the browser profile with the signed-in enterprise account">
          Link your Chromium data to this account?
        </message>
        <message name="IDS_ENTERPRISE_SIGNIN_EXPLANATION_WITHOUT_PROFILE_CREATION_NEW_STYLE" desc="The warning message displayed to an enterprise user about to link their profile to their Google account. This message is followed by a 'Learn more' link.">
          You are signing in with a managed account and giving its administrator control over your Chromium profile. Your Chromium data, such as your apps, bookmarks, history, passwords, and other settings will become permanently tied to <ph name="USER_NAME">$1<ex>pat@example.com</ex></ph>. You will be able to delete this data via the Google Accounts Dashboard, but you will not be able to associate this data with another account. <ph name="LEARN_MORE">$2<ex>Learn more</ex></ph>
        </message>
        <message name="IDS_ENTERPRISE_SIGNIN_EXPLANATION_WITH_PROFILE_CREATION_NEW_STYLE" desc="The warning message displayed to an enterprise user about to link their profile to their Google account. Additionally notifies the user that they can create a new profile instead. This message is followed by a 'Learn more' link.">
          You are signing in with a managed account and giving its administrator control over your Chromium profile. Your Chromium data, such as your apps, bookmarks, history, passwords, and other settings will become permanently tied to <ph name="USER_NAME">$1<ex>pat@example.com</ex></ph>. You will be able to delete this data via the Google Accounts Dashboard, but you will not be able to associate this data with another account. You can optionally create a new profile to keep your existing Chromium data separate. <ph name="LEARN_MORE">$2<ex>Learn more</ex></ph>
        </message>
      </if>

      <!-- Sync/sign-in error messages -->
      <if expr="not chromeos">
        <message name="IDS_SYNC_PASSPHRASE_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sync error bubble view when the user needs to update their sync passphrase.">
          Chromium could not sync your data. Please update your Sync passphrase.
        </message>
        <message name="IDS_SYNC_SIGN_IN_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error bubble view when the user's sign-in credentials are out of date.">
          Chromium could not sync your data because your account sign-in details are out of date.
        </message>
        <message name="IDS_SYNC_UNAVAILABLE_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error bubble view when sync is not available for their domain.">
          Chromium could not sync your data because Sync is not available for your domain.
        </message>
        <message name="IDS_SYNC_OTHER_SIGN_IN_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error bubble view when there's an error signing in.">
          Chromium could not sync your data due to an error signing in.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_SYNC_PASSPHRASE_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sync error bubble view when the user needs to update their sync passphrase.">
          Chromium OS could not sync your data. Please update your Sync passphrase.
        </message>
        <message name="IDS_SYNC_SIGN_IN_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error notification when the user's sign-in credentials are out of date.">
          Chromium OS could not sync your data because your account sign-in details are out of date.
        </message>
        <message name="IDS_SYNC_UNAVAILABLE_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error notification when sync is not available for their domain.">
          Chromium OS could not sync your data because Sync is not available for your domain.
        </message>
        <message name="IDS_SYNC_OTHER_SIGN_IN_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error notification when there's an error signing in.">
          Chromium OS could not sync your data due to an error signing in.
        </message>
      </if>

      <message name="IDS_OPTIONS_PASSWORDS_MAC_WARNING" desc="The warning for OS X that passwords are shared across profiles in the keychain.">
        On Mac, passwords are saved to your Keychain and may be accessed or synced by other Chromium users sharing this OS X account.
      </message>

      <message name="IDS_AUTOFILL_CC_INFOBAR_TEXT" desc="Text to show in the Autofill credit card request infobar.">
        Do you want Chromium to save this credit card information for completing web forms?
      </message>
      <message name="IDS_AUTOFILL_DIALOG_SAVE_LOCALLY_CHECKBOX" desc="Checkbox that controls whether info the user types into the autofill dialog is saved by chrome.">
        Save details in Chromium
      </message>
      <message name="IDS_AUTOFILL_DIALOG_SAVE_LOCALLY_TOOLTIP" desc="Tooltip which explains function of checkbox that controls whether info the user types into the autofill dialog is saved by chrome.">
        Chromium will securely store your information so you don't need to type it in again, but you will still need to verify your card's security code for future payments.
      </message>
      <message name="IDS_AUTOFILL_NEW_CREDIT_CARD_BUBBLE_TITLE" desc="Title text of the new credit card bubble informing a user their billing information has been saved in chrome.">
        Your billing details have been saved in Chromium.
      </message>
      <message name="IDS_AUTOFILL_WALLET_UPGRADE_CHROME_ERROR" desc="Text explaining that user must upgrade Chrome to use Wallet.">
        You must upgrade Chromium to use Google Wallet [<ph name="ERROR_CODE">$1<ex>54</ex></ph>].
      </message>

      <!-- Network Error Pages -->
      <message name="IDS_ERRORPAGES_SUGGESTION_NETWORK_PREDICTION_BODY" desc="When a page fails to load, sometimes we suggest disabling predicting network actions.  These are details below a header.">
        Go to
        the Chromium menu &gt;
        <ph name="SETTINGS_TITLE">&lt;span jscontent="settingsTitle"&gt;&lt;/span&gt;<ex>Settings</ex></ph>
        &gt;
        <ph name="ADVANCED_TITLE">&lt;span jscontent="advancedTitle"&gt;&lt;/span&gt;<ex>Under the Hood</ex></ph>
        and deselect &quot;<ph name="NO_PREFETCH_DESCRIPTION">&lt;span jscontent="noNetworkPredictionTitle"&gt;&lt;/span&gt;<ex>Predict network actions to improve page load performance</ex></ph>.&quot;
        If this does not resolve the issue, we recommend selecting this option
        again for improved performance.
      </message>
      <message name="IDS_ERRORPAGES_SUGGESTION_FIREWALL_CONFIG_HEADER" desc="When a webpage fails to load, in some cases we suggest reconfiguring the firewall.  This is a header above some details.">
        Allow Chromium to access the network in your firewall or antivirus
        settings.
      </message>
      <if expr="is_macosx">
        <message name="IDS_ERRORPAGES_SUGGESTION_PROXY_DISABLE_PLATFORM" desc="Mac OSX instructions for disabling use of a proxy server.">
          Go to
          Applications &gt; System Preferences &gt; Network &gt; Advanced &gt; Proxies
          and deselect any proxies that have been selected.
        </message>
      </if>
      <if expr="is_android or is_ios">
        <message name="IDS_ERRORPAGES_SUGGESTION_PROXY_DISABLE_PLATFORM" desc="Instructions for disabling use of a proxy server (leave empty for Android and iOS).">
        </message>
      </if>
      <if expr="not chromeos and is_posix and not is_macosx and not is_android and not is_ios">
        <message name="IDS_ERRORPAGES_SUGGESTION_PROXY_DISABLE_PLATFORM" desc="Linux instructions for disabling use of a proxy server.">
          Go to
          the Chromium menu &gt;
          <ph name="SETTINGS_TITLE">&lt;span jscontent="settingsTitle"&gt;&lt;/span&gt;<ex>Settings</ex></ph>
          &gt;
          <ph name="ADVANCED_TITLE">&lt;span jscontent="advancedTitle"&gt;&lt;/span&gt;<ex>Under the Hood</ex></ph>
          &gt;
          <ph name="PROXIES_TITLE">&lt;span jscontent="proxyTitle"&gt;&lt;/span&gt;<ex>Change proxy settings...</ex></ph>
          and make sure your configuration is set to &quot;no proxy&quot; or &quot;direct.&quot;
        </message>
      </if>
      <if expr="is_win">
        <message name="IDS_ERRORPAGES_SUGGESTION_PROXY_DISABLE_PLATFORM" desc="Windows instructions for disabling use of a proxy server.">
          Go to
          the Chromium menu &gt;
          <ph name="SETTINGS_TITLE">&lt;span jscontent="settingsTitle"&gt;&lt;/span&gt;<ex>Settings</ex></ph>
          &gt;
          <ph name="ADVANCED_TITLE">&lt;span jscontent="advancedTitle"&gt;&lt;/span&gt;<ex>Under the Hood</ex></ph>
          &gt;
          <ph name="PROXIES_TITLE">&lt;span jscontent="proxyTitle"&gt;&lt;/span&gt;<ex>Change proxy settings...</ex></ph>
          &gt;
          LAN Settings
          and deselect the &quot;Use a proxy server for your LAN&quot; checkbox.
        </message>
      </if>

      <!-- Chrome OS keyboard overlay-->
      <if expr="chromeos">
        <message name="IDS_KEYBOARD_OVERLAY_SHOW_WRENCH_MENU" desc="The text in the keyboard overlay to explain the shortcut that opens the main Chrome menu.">
          Show the Chromium menu
        </message>
      </if>

      <!-- App list -->
      <if expr="enable_app_list">
        <message name="IDS_APP_LIST_SHORTCUT_NAME" desc="Name for the Chromium App List to appear in the taskbar and in any shortcuts to it.">
          Chromium App Launcher
        </message>
        <message name="IDS_APP_LIST_SHORTCUT_NAME_CANARY" desc="Name for the Chromium App List to appear in the taskbar and in any shortcuts to it.">
          Chromium App Launcher
        </message>
        <message name="IDS_APP_LIST_SIGNIN_HEADING" desc="Heading for when the launcher needs to sign in.">
          Sign in to Chromium
        </message>
        <message name="IDS_APP_LIST_SIGNIN_TEXT" desc="Text for when the launcher needs to sign in.">
          You need to be signed in to Chromium to use apps. This allows Chromium to sync your apps, bookmarks, history, passwords and other settings across devices.
        </message>
      </if>

      <!-- App shortcuts -->
      <message name="IDS_APP_SHORTCUTS_SUBDIR_NAME" desc="Name for the Chromium Apps Start Menu folder name.">
        Chromium Apps
      </message>
      <message name="IDS_APP_SHORTCUTS_SUBDIR_NAME_CANARY" desc="Name for the Chrome Apps Start Menu folder name.">
        Chromium Apps
      </message>

      <!-- Chrome Conflicts bubble -->
      <if expr="is_win">
        <message name="IDS_OPTIONS_CONFLICTING_MODULE" desc="Shown in a bubble when a conflict has been detected.">
          Software running on your computer is incompatible with Chromium.
        </message>
      </if>

      <!-- Chrome OS OOBE Terms of Service screen-->
      <if expr="chromeos">
        <message name="IDS_TERMS_OF_SERVICE_SCREEN_SUBHEADING" desc="Subheading at the top of the Terms of Service screen.">
          <ph name="DOMAIN">$1<ex>example.com</ex></ph> requires that you read and accept the following Terms of Service before using this device. These terms do not expand, modify or limit the Chromium OS Terms.
        </message>
      </if>

      <!-- Chrome Notifications center -->
      <if expr="enable_notifications">
        <if expr="is_win">
          <message name="IDS_MESSAGE_CENTER_BALLOON_TITLE" desc="Title of the first run notification ballon describing the notification center.">
            Chromium Notification Center
          </message>
          <message name="IDS_MESSAGE_CENTER_BALLOON_TEXT" desc="Body text for the the first run notification ballon describing the notification center.">
            You can see all your notifications from Chromium apps, extensions, and websites here.
          </message>
        </if>
        <message name="IDS_MESSAGE_CENTER_TOOLTIP" desc="Tooltip for notification tray icon without unread notifications">
          Chromium - Notifications
        </message>
        <message name="IDS_MESSAGE_CENTER_TOOLTIP_UNREAD" desc="Tooltip for notification tray icon with unread notifications">
          Chromium - Notifications (<ph name="QUANTITY">$1<ex>3</ex></ph> unread)
        </message>
      </if>

      <!-- MediaStream capture status tray icon -->
      <message name="IDS_MEDIA_STREAM_STATUS_TRAY_TEXT_AUDIO_AND_VIDEO" desc="Tool tip for the capture status tray icon when microphone and camera are being used">
        Chromium is using your camera and microphone.
      </message>
      <message name="IDS_MEDIA_STREAM_STATUS_TRAY_TEXT_AUDIO_ONLY" desc="Tool tip for the capture status tray icon when microphone is being used">
        Chromium is using your microphone.
      </message>
      <message name="IDS_MEDIA_STREAM_STATUS_TRAY_TEXT_VIDEO_ONLY" desc="Tool tip for the capture status tray icon when camera is being used">
        Chromium is using your camera.
      </message>

      <!-- ProcessSingleton -->
      <if expr="is_linux">
        <message name="IDS_PROFILE_IN_USE_LINUX" desc="Message shown when the browser cannot start because the profile is in use on a different host.">
          The profile appears to be in use by another Chromium process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>). Chromium has locked the profile so that it doesn't get corrupted. If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chromium.
        </message>
      </if>

      <!-- Mac First-run dialog messages -->
      <if expr="is_macosx">
        <message name="IDS_FIRSTRUN_DLG_MAC_SET_DEFAULT_BROWSER_LABEL" desc="Label for checkbox that sets the default browser">
          Set Chromium as your default browser
        </message>
      </if>

      <!-- chrome://settings. Android uses native UI for settings -->
      <if expr="not is_android">
        <message name="IDS_AUTOLAUNCH_TEXT" desc="The text displayed in settings to explain whether Chromium is set to auto-launch on startup or not.">
          Launch Chromium automatically when your computer starts
        </message>
        <message name="IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT" desc="The label of the 'Use Chromium as default' browser button">
          Make Chromium the default browser
        </message>
      </if>

      <!-- Toast experiment. -->
      <message name="IDS_TRY_TOAST_SET_DEFAULT" desc="Text of the checkbox to make Chromium the default browser">
        Make Chromium the default browser
      </message>

      <!-- User manager tutorial -->
      <if expr="not is_android and not is_ios and not chromeos">
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_INTRO_TITLE" desc="Title of the tutorial introduction slide">
          Chromium just got better
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_INTRO_TEXT" desc="Main text of the tutorial introduction slide">
          Now it's easier to use Chromium with your Google Account and on shared computers.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_YOUR_CHROME_TITLE" desc="Title of the slide about personalizing the browser">
          This is your Chromium
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_YOUR_CHROME_TEXT" desc="Main text of the slide about personalizing the browser">
          Your web, bookmarks, and other Chromium stuff live here.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_GUEST_TEXT" desc="Main text of the guest user slide">
          Guests can use Chromium without leaving anything behind.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_FRIENDS_TEXT" desc="Main text of the friends and family slide">
          If you share a computer, friends and family can browse separately and set up Chromium just the way they want.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_OUTRO_TEXT" desc="Main text of the tutorial completion slide">
          Click your name to open Chromium and start browsing.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_OUTRO_ADD_USER" desc="Text of the add a new user button">
          Add yourself to Chromium
        </message>
      </if>

      <!-- chrome://ntp -->
      <if expr="not is_android">
        <message name="IDS_NEW_TAB_OTR_EXTENSIONS_MESSAGE"
                 desc="Explanation in a new OTR window that extensions have been disabled while in OTR.">
          Because Chromium does not control how extensions handle your personal data, all extensions have been disabled for incognito windows. You can reenable them individually in the
          <ph name="BEGIN_LINK">&lt;a href="$1"&gt;</ph>extensions manager<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
        </message>
      </if>

    </messages>
  </release>
</grit>
