<?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="pp_ifdef('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="pp_ifdef('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="pp_ifdef('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="pp_ifdef('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="pp_ifdef('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="pp_ifdef('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="pp_ifdef('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="pp_ifdef('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="pp_ifdef('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="pp_ifdef('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="pp_ifdef('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 pp_ifdef('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="pp_ifdef('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_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="pp_ifdef('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_FRAME_NAME" desc="The Chrome Frame application name">
          Chromium Frame
        </message>
        <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_VERSIONMISMATCH_HEADER">
          Chromium Frame Update.
        </message>
        <message name="IDS_VERSIONMISMATCH">
          Chromium Frame has been updated. Please relaunch your browser. Chromium version: <ph name="TODO_0001">%ls<ex>TODO</ex></ph>, Chromium Frame version: <ph name="TODO_0002">%ls<ex>TODO</ex></ph>
        </message>
        <message name="IDS_VERSIONUNKNOWN">
          Unknown version.
        </message>
        <message name="IDS_CHROME_FRAME_MENU_ABOUT" desc="About Chrome Frame label">
          About Chromium Frame...
        </message>
        <message name="IDS_CHROME_FRAME_READY_MODE_LEARN_MORE_URL" desc="Link to knowledge-base article about Chromium Frame Ready Mode">
          http://www.google.com/support/chrome/bin/answer.py?hl=[GRITLANGCODE]&amp;answer=161796
        </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 pp_ifdef('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="pp_ifdef('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="pp_ifdef('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>
      <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="pp_ifdef('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 pp_ifdef('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 pp_ifdef('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="pp_ifdef('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 pp_ifdef('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="pp_ifdef('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="pp_ifdef('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 pp_ifdef('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>
      <message name="IDS_CANT_WRITE_USER_DIRECTORY_EXIT_BUTTON" desc="Text on button of dialog that closes Chrome if we can't create a directory for this user.">
        Exit Chromium
      </message>
      <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_HIGHER_VERSION_CF" desc="Error displayed when higher version already exists.">
        This computer already has a more recent version of Chromium Frame. If the software is not working, please uninstall Chromium Frame and try again.
      </message>
      <message name="IDS_INSTALL_HIGHER_VERSION_CB_CF" desc="Error displayed when higher version of Chromium and Chromium Frame already exists">
        This computer already has a more recent version of Chromium and Chromium Frame. If the software is not working, please uninstall both Chromium and Chromium Frame and try again.
      </message>
      <message name="IDS_INSTALL_SYSTEM_LEVEL_EXISTS" desc="Error displayed during user level install if system level Chromium Frame is already installed.">
        Chromium Frame is already installed and available to all users of this computer. If you want to install Chromium Frame at the user level, you must first uninstall the system-level version installed by an administrator.
      </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_SAME_VERSION_REPAIR_FAILED_CF" desc="Error displayed if installation fails due to Chrome running.">
        Can not install the same Chromium Frame version that is currently running. Please close Chromium Frame 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 or Chromium Frame 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_NON_MULTI_INSTALLATION_EXISTS" desc="Error during install if a single-install Chromium or Chromium Frame is present, thereby preventing the installation of a multi-install Chromium or Chromium Frame.">
        A conflicting installation of Chromium or Chromium Frame was found on the system. Please uninstall it and try again.
      </message>
      <message name="IDS_INSTALL_MULTI_INSTALLATION_EXISTS" desc="Error during install if a multi-install Chromium or Chromium Frame is present, thereby preventing the installation of a single-install Chromium or Chromium Frame.">
        A conflicting installation of Chromium or Chromium Frame was found on the system. Please uninstall it and try again.
      </message>
      <message name="IDS_INSTALL_READY_MODE_REQUIRES_CHROME" desc="Chrome Frame in ready mode requires Chrome.">
        Invalid arguments. Chromium Frame cannot be installed in ready mode without also installing Chromium.
      </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="pp_ifdef('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 pp_ifdef('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="pp_ifdef('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 pp_ifdef('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="pp_ifdef('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="pp_ifdef('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 pp_ifdef('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="pp_ifdef('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 pp_ifdef('chromeos')">
        <message name="IDS_UPGRADE_UPDATING" desc="Status label: Updating Chromium">
          Updating Chromium...
        </message>
      </if>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_UPGRADE_UPDATING" desc="Status label: Updating Chromium OS">
          Updating your device...
        </message>
      </if>
      <if expr="pp_ifdef('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 -->
      <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>

      <!-- 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>

      <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>

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

      <if expr="pp_ifdef('use_titlecase') and not pp_ifdef('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 pp_ifdef('use_titlecase') and not pp_ifdef('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="pp_ifdef('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>

      <!-- 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 pp_ifdef('chromeos')">
        <!-- New one-click signin 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" desc="The body of the sync promo NTP 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 signin 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 -->
      <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 into 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>

      <!-- Enterprise sign-in dialog (new-style) -->
      <!-- TODO(dconnelly): remove "new-style" once the old dialog is gone. -->
      <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>

      <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 pp_ifdef('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="pp_ifdef('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 -->
      <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 into Chromium to use apps. This allows Chromium to sync your apps, bookmarks, history, passwords and other settings across devices.
      </message>

      <!-- 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="pp_ifdef('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="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>

      <!-- 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 -->
      <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>

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