<?xml version="1.0" encoding="UTF-8"?>

<grit base_dir="." latest_public_release="0" current_release="1"
      output_all_resource_defines="false" enc_check="möl" source_lang_id="en">
  <outputs>
    <output filename="remoting/base/string_resources.h" type="rc_header">
      <emit emit_type="prepend"/>
    </output>

    <output filename="remoting/resources/am.pak" lang="am" type="data_package"/>
    <output filename="remoting/resources/ar.pak" lang="ar" type="data_package"/>
    <output filename="remoting/resources/bg.pak" lang="bg" type="data_package"/>
    <output filename="remoting/resources/bn.pak" lang="bn" type="data_package"/>
    <output filename="remoting/resources/ca.pak" lang="ca" type="data_package"/>
    <output filename="remoting/resources/cs.pak" lang="cs" type="data_package"/>
    <output filename="remoting/resources/da.pak" lang="da" type="data_package"/>
    <output filename="remoting/resources/de.pak" lang="de" type="data_package"/>
    <output filename="remoting/resources/el.pak" lang="el" type="data_package"/>
    <output filename="remoting/resources/en-GB.pak" lang="en-GB" type="data_package"/>
    <if expr="chromeos">
      <output filename="remoting/resources/en-US.pak" lang="en" type="data_package"/>
    </if>
    <output filename="remoting/resources/en.pak" lang="en" type="data_package"/>
    <if expr="is_ios">
      <!-- iOS uses es-MX for es-419 -->
      <output filename="remoting/resources/es-MX.pak" lang="es-419" type="data_package"/>
    </if>
    <if expr="not is_ios">
      <output filename="remoting/resources/es-419.pak" lang="es-419" type="data_package"/>
    </if>
    <output filename="remoting/resources/es.pak" lang="es" type="data_package"/>
    <output filename="remoting/resources/et.pak" lang="et" type="data_package"/>
    <output filename="remoting/resources/fa.pak" lang="fa" type="data_package"/>
    <if expr="not is_ios or not _official_build">
      <!-- The fake-bidi locale isn't accepted by the app store. -->
      <output filename="remoting/resources/fake-bidi.pak" lang="fake-bidi" type="data_package"/>
    </if>
    <output filename="remoting/resources/fi.pak" lang="fi" type="data_package"/>
    <output filename="remoting/resources/fil.pak" lang="fil" type="data_package"/>
    <output filename="remoting/resources/fr.pak" lang="fr" type="data_package"/>
    <output filename="remoting/resources/gu.pak" lang="gu" type="data_package"/>
    <output filename="remoting/resources/he.pak" lang="he" type="data_package"/>
    <output filename="remoting/resources/hi.pak" lang="hi" type="data_package"/>
    <output filename="remoting/resources/hr.pak" lang="hr" type="data_package"/>
    <output filename="remoting/resources/hu.pak" lang="hu" type="data_package"/>
    <output filename="remoting/resources/id.pak" lang="id" type="data_package"/>
    <output filename="remoting/resources/it.pak" lang="it" type="data_package"/>
    <output filename="remoting/resources/ja.pak" lang="ja" type="data_package"/>
    <output filename="remoting/resources/kn.pak" lang="kn" type="data_package"/>
    <output filename="remoting/resources/ko.pak" lang="ko" type="data_package"/>
    <output filename="remoting/resources/lt.pak" lang="lt" type="data_package"/>
    <output filename="remoting/resources/lv.pak" lang="lv" type="data_package"/>
    <output filename="remoting/resources/ml.pak" lang="ml" type="data_package"/>
    <output filename="remoting/resources/mr.pak" lang="mr" type="data_package"/>
    <output filename="remoting/resources/ms.pak" lang="ms" type="data_package"/>
    <!-- The translation console uses 'no' for Norwegian (Bokmål), but we use 'nb'. -->
    <output filename="remoting/resources/nb.pak" lang="no" type="data_package"/>
    <output filename="remoting/resources/nl.pak" lang="nl" type="data_package"/>
    <output filename="remoting/resources/pl.pak" lang="pl" type="data_package"/>
    <if expr="is_ios">
      <!-- iOS uses pt for pt-BR -->
      <output filename="remoting/resources/pt.pak" lang="pt-BR" type="data_package"/>
    </if>
    <if expr="not is_ios">
      <output filename="remoting/resources/pt-BR.pak" lang="pt-BR" type="data_package"/>
    </if>
    <output filename="remoting/resources/pt-PT.pak" lang="pt-PT" type="data_package"/>
    <output filename="remoting/resources/ro.pak" lang="ro" type="data_package"/>
    <output filename="remoting/resources/ru.pak" lang="ru" type="data_package"/>
    <output filename="remoting/resources/sk.pak" lang="sk" type="data_package"/>
    <output filename="remoting/resources/sl.pak" lang="sl" type="data_package"/>
    <output filename="remoting/resources/sr.pak" lang="sr" type="data_package"/>
    <output filename="remoting/resources/sv.pak" lang="sv" type="data_package"/>
    <output filename="remoting/resources/sw.pak" lang="sw" type="data_package"/>
    <output filename="remoting/resources/ta.pak" lang="ta" type="data_package"/>
    <output filename="remoting/resources/te.pak" lang="te" type="data_package"/>
    <output filename="remoting/resources/th.pak" lang="th" type="data_package"/>
    <output filename="remoting/resources/tr.pak" lang="tr" type="data_package"/>
    <output filename="remoting/resources/uk.pak" lang="uk" type="data_package"/>
    <output filename="remoting/resources/vi.pak" lang="vi" type="data_package"/>
    <output filename="remoting/resources/zh-CN.pak" lang="zh-CN" type="data_package"/>
    <output filename="remoting/resources/zh-TW.pak" lang="zh-TW" type="data_package"/>

    <output filename="remoting/webapp/_locales/am/messages.json" lang="am" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/ar/messages.json" lang="ar" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/bg/messages.json" lang="bg" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/bn/messages.json" lang="bn" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/ca/messages.json" lang="ca" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/cs/messages.json" lang="cs" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/da/messages.json" lang="da" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/de/messages.json" lang="de" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/fa/messages.json" lang="fa" type="chrome_messages_json"/>
    <if expr="not is_ios or not _official_build">
      <!-- The fake-bidi locale isn't accepted by the app store. -->
      <output filename="remoting/webapp/_locales/fake_bidi/messages.json" lang="fake-bidi" type="chrome_messages_json"/>
    </if>
    <output filename="remoting/webapp/_locales/el/messages.json" lang="el" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/en/messages.json" lang="en" type="chrome_messages_json"/>
    <if expr="chromeos">
      <!-- lang="en-US" will create an empty json file. -->
      <output filename="remoting/webapp/_locales/en_US/messages.json" lang="en" type="chrome_messages_json"/>
    </if>
    <output filename="remoting/webapp/_locales/en_GB/messages.json" lang="en-GB" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/es/messages.json" lang="es" type="chrome_messages_json"/>
    <if expr="is_ios">
      <!-- iOS uses es-MX for es-419 -->
      <output filename="remoting/webapp/_locales/es_MX/messages.json" lang="es-419" type="chrome_messages_json"/>
    </if>
    <if expr="not is_ios">
      <output filename="remoting/webapp/_locales/es_419/messages.json" lang="es-419" type="chrome_messages_json"/>
    </if>
    <output filename="remoting/webapp/_locales/et/messages.json" lang="et" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/fi/messages.json" lang="fi" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/fil/messages.json" lang="fil" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/fr/messages.json" lang="fr" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/gu/messages.json" lang="gu" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/he/messages.json" lang="he" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/hi/messages.json" lang="hi" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/hr/messages.json" lang="hr" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/hu/messages.json" lang="hu" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/id/messages.json" lang="id" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/it/messages.json" lang="it" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/ja/messages.json" lang="ja" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/kn/messages.json" lang="kn" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/ko/messages.json" lang="ko" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/lt/messages.json" lang="lt" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/lv/messages.json" lang="lv" type="chrome_messages_json"/>
    <!-- The translation console uses 'no' for Norwegian (Bokmål), but Chrome uses 'nb'. -->
    <output filename="remoting/webapp/_locales/ml/messages.json" lang="ml" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/mr/messages.json" lang="mr" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/ms/messages.json" lang="ms" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/nb/messages.json" lang="no" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/nl/messages.json" lang="nl" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/pl/messages.json" lang="pl" type="chrome_messages_json"/>
    <if expr="is_ios">
      <!-- iOS uses pt for pt-BR -->
      <output filename="remoting/webapp/_locales/pt/messages.json" lang="pt-BR" type="chrome_messages_json"/>
    </if>
    <if expr="not is_ios">
      <output filename="remoting/webapp/_locales/pt_BR/messages.json" lang="pt-BR" type="chrome_messages_json"/>
    </if>
    <output filename="remoting/webapp/_locales/pt_PT/messages.json" lang="pt-PT" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/ro/messages.json" lang="ro" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/ru/messages.json" lang="ru" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/sk/messages.json" lang="sk" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/sl/messages.json" lang="sl" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/sr/messages.json" lang="sr" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/sv/messages.json" lang="sv" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/sw/messages.json" lang="sw" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/ta/messages.json" lang="ta" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/te/messages.json" lang="te" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/th/messages.json" lang="th" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/tr/messages.json" lang="tr" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/uk/messages.json" lang="uk" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/vi/messages.json" lang="vi" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/zh_CN/messages.json" lang="zh-CN" type="chrome_messages_json"/>
    <output filename="remoting/webapp/_locales/zh_TW/messages.json" lang="zh-TW" type="chrome_messages_json"/>

    <if expr="is_android">
      <output filename="remoting/android/res/values-am/remoting_strings.xml" lang="am" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-ar/remoting_strings.xml" lang="ar" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-bg/remoting_strings.xml" lang="bg" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-ca/remoting_strings.xml" lang="ca" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-cs/remoting_strings.xml" lang="cs" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-da/remoting_strings.xml" lang="da" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-de/remoting_strings.xml" lang="de" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-el/remoting_strings.xml" lang="el" type="android" context="android_java"/>
      <output filename="remoting/android/res/values/remoting_strings.xml" lang="en" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-en-rGB/remoting_strings.xml" lang="en-GB" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-es/remoting_strings.xml" lang="es" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-es-rUS/remoting_strings.xml" lang="es-419" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-fa/remoting_strings.xml" lang="fa" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-fi/remoting_strings.xml" lang="fi" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-tl/remoting_strings.xml" lang="fil" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-fr/remoting_strings.xml" lang="fr" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-hi/remoting_strings.xml" lang="hi" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-hr/remoting_strings.xml" lang="hr" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-hu/remoting_strings.xml" lang="hu" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-in/remoting_strings.xml" lang="id" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-it/remoting_strings.xml" lang="it" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-iw/remoting_strings.xml" lang="he" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-ja/remoting_strings.xml" lang="ja" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-ko/remoting_strings.xml" lang="ko" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-lt/remoting_strings.xml" lang="lt" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-lv/remoting_strings.xml" lang="lv" type="android" context="android_java"/>
    <!-- The translation console uses 'no' for Norwegian (Bokmål), but Android uses 'nb'. -->
      <output filename="remoting/android/res/values-nb/remoting_strings.xml" lang="no" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-nl/remoting_strings.xml" lang="nl" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-pl/remoting_strings.xml" lang="pl" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-pt-rBR/remoting_strings.xml" lang="pt-BR" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-pt-rPT/remoting_strings.xml" lang="pt-PT" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-ro/remoting_strings.xml" lang="ro" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-ru/remoting_strings.xml" lang="ru" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-sk/remoting_strings.xml" lang="sk" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-sl/remoting_strings.xml" lang="sl" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-sr/remoting_strings.xml" lang="sr" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-sv/remoting_strings.xml" lang="sv" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-sw/remoting_strings.xml" lang="sw" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-th/remoting_strings.xml" lang="th" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-tr/remoting_strings.xml" lang="tr" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-uk/remoting_strings.xml" lang="uk" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-vi/remoting_strings.xml" lang="vi" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-zh-rCN/remoting_strings.xml" lang="zh-CN" type="android" context="android_java"/>
      <output filename="remoting/android/res/values-zh-rTW/remoting_strings.xml" lang="zh-TW" type="android" context="android_java"/>
    </if>

  </outputs>
  <translations>
    <file lang="am" path="remoting_strings_am.xtb"/>
    <file lang="ar" path="remoting_strings_ar.xtb"/>
    <file lang="bg" path="remoting_strings_bg.xtb"/>
    <file lang="bn" path="remoting_strings_bn.xtb"/>
    <file lang="ca" path="remoting_strings_ca.xtb"/>
    <file lang="cs" path="remoting_strings_cs.xtb"/>
    <file lang="da" path="remoting_strings_da.xtb"/>
    <file lang="de" path="remoting_strings_de.xtb"/>
    <file lang="el" path="remoting_strings_el.xtb"/>
    <file lang="en-GB" path="remoting_strings_en-GB.xtb"/>
    <file lang="es" path="remoting_strings_es.xtb"/>
    <file lang="es-419" path="remoting_strings_es-419.xtb"/>
    <file lang="et" path="remoting_strings_et.xtb"/>
    <file lang="fa" path="remoting_strings_fa.xtb"/>
    <file lang="fi" path="remoting_strings_fi.xtb"/>
    <file lang="fil" path="remoting_strings_fil.xtb"/>
    <file lang="fr" path="remoting_strings_fr.xtb"/>
    <file lang="gu" path="remoting_strings_gu.xtb"/>
    <!-- The translation console uses 'iw' for Hebrew, but we use 'he'. -->
    <file lang="he" path="remoting_strings_iw.xtb"/>
    <file lang="hi" path="remoting_strings_hi.xtb"/>
    <file lang="hr" path="remoting_strings_hr.xtb"/>
    <file lang="hu" path="remoting_strings_hu.xtb"/>
    <file lang="id" path="remoting_strings_id.xtb"/>
    <file lang="it" path="remoting_strings_it.xtb"/>
    <file lang="ja" path="remoting_strings_ja.xtb"/>
    <file lang="kn" path="remoting_strings_kn.xtb"/>
    <file lang="ko" path="remoting_strings_ko.xtb"/>
    <file lang="lt" path="remoting_strings_lt.xtb"/>
    <file lang="lv" path="remoting_strings_lv.xtb"/>
    <file lang="ml" path="remoting_strings_ml.xtb"/>
    <file lang="mr" path="remoting_strings_mr.xtb"/>
    <file lang="ms" path="remoting_strings_ms.xtb"/>
    <file lang="no" path="remoting_strings_no.xtb"/>
    <file lang="nl" path="remoting_strings_nl.xtb"/>
    <file lang="pl" path="remoting_strings_pl.xtb"/>
    <file lang="pt-BR" path="remoting_strings_pt-BR.xtb"/>
    <file lang="pt-PT" path="remoting_strings_pt-PT.xtb"/>
    <file lang="ro" path="remoting_strings_ro.xtb"/>
    <file lang="ru" path="remoting_strings_ru.xtb"/>
    <file lang="sk" path="remoting_strings_sk.xtb"/>
    <file lang="sl" path="remoting_strings_sl.xtb"/>
    <file lang="sr" path="remoting_strings_sr.xtb"/>
    <file lang="sv" path="remoting_strings_sv.xtb"/>
    <file lang="sw" path="remoting_strings_sw.xtb"/>
    <file lang="ta" path="remoting_strings_ta.xtb"/>
    <file lang="te" path="remoting_strings_te.xtb"/>
    <file lang="th" path="remoting_strings_th.xtb"/>
    <file lang="tr" path="remoting_strings_tr.xtb"/>
    <file lang="uk" path="remoting_strings_uk.xtb"/>
    <file lang="vi" path="remoting_strings_vi.xtb"/>
    <file lang="zh-CN" path="remoting_strings_zh-CN.xtb"/>
    <file lang="zh-TW" path="remoting_strings_zh-TW.xtb"/>
  </translations>
  <release allow_pseudo="false" seq="1">
    <messages fallback_to_english="true">

      <if expr="_google_chrome">
        <if expr="is_android or is_ios">
          <message desc="Message shown in popup dialog on Android when there are no Google accounts on the device" name="IDS_NOACCOUNTS_MESSAGE" formatter_data="android_java">
          To use Chrome Remote Desktop, you'll need to add a Google Account to your device.
          </message>
          <message desc="The product name, as displayed on Android devices. Ideally this would be 'Chrome Remote Desktop', but that name is too long to be displayed in the Android Launcher. Try to keep the translation below 16 characters if possible." name="IDS_PRODUCT_NAME_ANDROID" formatter_data="android_java">
            Remote Desktop
          </message>
          <message desc="The product name, as displayed on iOS devices. Ideally this would be 'Chrome Remote Desktop', but the iOS launcher can only show about 10 characters without being clipped. Event 'Remote Desktop' will be shown as 'Remote De...'. Try to keep the translation as short as possible." name="IDS_IOS_DISPLAY_NAME">
            Remote Desktop
          </message>
        </if>  <!-- is_android or is_ios -->

        <message desc="Message shown when the Chrome Remote Desktop client tab is closed while a connection is active." name="IDS_CLOSE_PROMPT">
          Leaving this page will end your Chrome Remote Desktop session.
        </message>
        <message desc="Confirmation prompt shown when a user needs to authenticate against a third party, explaining the need to authorize the Chrome Remote Desktop app to access the authentication URL." name="IDS_DESCRIPTION_THIRD_PARTY_AUTH">
          The remote host requires you to authenticate to a third-party website. To continue, you must grant Chrome Remote Desktop additional permissions to access this address:
        </message>
        <message desc="Description for the home screen. This is shown when the app starts up, above buttons to share or connect." name="IDS_DESCRIPTION_HOME">
          Chrome Remote Desktop allows you to securely share your computer over the Web. Both users must be running the Chrome Remote Desktop app, which can be found at <ph name="URL">$1<ex>&lt;a href=http://chrome.google.com/remotedesktop&gt;chrome.google.com/remotedesktop&lt;/a&gt;</ex></ph>.
        </message>
        <message desc="Error displayed if authentication fails. This can be caused by stale credentials, in which logging out of the web-app and retrying can fix the problem." name="IDS_ERROR_AUTHENTICATION_FAILED" formatter_data="android_java">
          Authentication failed. Please sign in to Chrome again.
        </message>
        <message desc="Error displayed when the computer has a policy that only users in a particular domain may use it as a Chrome Remote Desktop host, but a user in a different domain is trying to use it as a Chrome Remote Desktop host. The Chrome Remote Desktop host allows a user to connect to their computer remotely (it 'hosts' a connection from a remote computer)." name="IDS_ERROR_INVALID_HOST_DOMAIN">
          Policy settings do not permit sharing this computer as a Chrome Remote Desktop host. Contact your system administrator for assistance.
        </message>
        <message desc="Error displayed when an operation is attempted that requires a signed-in user, but no-one is currently signed in." name="IDS_ERROR_NOT_AUTHENTICATED">
          You are not signed in to Chrome. Please sign in and try again.
        </message>
        <message desc="Message displayed when the current computer is accepting remote connections." name="IDS_HOME_DAEMON_ACTIVE_MESSAGE">
          You may securely access this computer using Chrome Remote Desktop.
        </message>
        <message desc="Message displayed when the current computer is not accepting remote connections, instructing the user how to enable them." name="IDS_HOME_DAEMON_START_MESSAGE">
          You must enable remote connections if you want to use Chrome Remote Desktop to access this computer.
        </message>
        <message desc="Message displayed to the user if there are no hosts registered to their account, informing them how to set up a host on another computer." name="IDS_HOST_LIST_EMPTY_HOSTING_SUPPORTED">
          To enable remote connections to a different computer, install Chrome Remote Desktop there and click “<ph name="BUTTON_NAME">$1<ex>Enable remote connections</ex></ph>”.
        </message>
        <message desc="Message displayed to the user if there are no hosts registered to their account, informing them how to set up a host on another computer." name="IDS_HOST_LIST_EMPTY_HOSTING_UNSUPPORTED">
          You have no computers registered. To enable remote connections to a computer, install Chrome Remote Desktop there and click “<ph name="BUTTON_NAME">$1<ex>Enable remote connections</ex></ph>”.
        </message>
        <message desc="Message displayed to the user if there are no hosts registered to their account.  If the user has previously signed-in to the v1 app with an account other than their profile, they will lose access to all their hosts once they upgrade to the v2 app.  This message informs them to sign in to the chrome with that account and re-install Chromoting." name="IDS_HOST_LIST_EMPTY_V2_MIGRATION">
          You have previously signed in as <ph name="USER_NAME">$1<ex>John Doe</ex></ph> (<ph name="USER_EMAIL">$2<ex>john.doe@gmail.com</ex></ph>).  To access your computers in that account, <ph name="LINK_BEGIN">$3<ex>&lt;a href="https://support.google.com/chrome/answer/2364824?hl=en"&gt;</ex></ph>sign in to Google Chrome<ph name="LINK_END">$4<ex>&lt;/a&gt;</ex></ph> with that account and re-install Chrome Remote Desktop.
        </message>
        <message desc="Message displayed next to the checkbox that the user can select to allow crash dump collection and reporting." name="IDS_HOST_SETUP_CRASH_REPORTING_MESSAGE">
          Help us improve Chrome Remote Desktop by allowing us to collect usage statistics and crash reports.
        </message>
        <message desc="Title of the dialog used to download and install the Chrome Remote Desktop host component. The Chrome Remote Desktop host allows a user to connect to their computer remotely (it 'hosts' a connection from a remote computer)." name="IDS_INSTALLER_DOWNLOAD">
          Download Chrome Remote Desktop Host Installer
        </message>
        <message desc="Message shown to inform the user that the product is governed by Google's terms of service and to include a link to view them. The Chrome Remote Desktop host allows a user to connect to their computer remotely (it 'hosts' a connection from a remote computer)." name="IDS_HOST_SETUP_TERMS_OF_SERVICE">
          By downloading the Chrome Remote Desktop Host Installer, you are agreeing to the Google <ph name="LINK_BEGIN">$1<ex>&lt;a href="http://www.google.com/intl/en/policies/terms"&gt;</ex></ph>Terms of Service<ph name="LINK_END">$4<ex>&lt;/a&gt;</ex></ph>.
        </message>
        <message desc="Message shown when user is asked to manually install the Host components. The Chrome Remote Desktop host allows a user to connect to their computer remotely (it 'hosts' a connection from a remote computer)." name="IDS_HOST_SETUP_INSTALL">
          Chrome is downloading the Chrome Remote Desktop Host installer.  Once the download is complete, please run the installer before continuing.
        </message>
        <message desc="Message displayed when the client or host has disconnected." name="IDS_MESSAGE_SESSION_FINISHED">
          Your Chrome Remote Desktop session has ended.
        </message>
        <message desc="The product name. Displayed in various Chrome pages, including the New Tab page, and displayed prominently on the app's main page." name="IDS_PRODUCT_NAME">
          Chrome Remote Desktop
        </message>
        <message desc="The product name. Displayed in various Chrome pages, including the New Tab page, and displayed prominently on the app's main page." name="IDS_PRODUCT_NAME_APP_STREAMING">
          Chrome App Streaming
        </message>
        <message desc="Message displayed at the bottom of the client connect dialog if Chrome Remote Desktop is running in the wrong start-up mode." name="IDS_WARNING_NOT_WINDOWED">
          NOTE: To ensure that all keyboard shortcuts are available, you can configure Chrome Remote Desktop to ‘Open as window’.
        </message>
        <message desc="Error message displayed if the user tries to connect to a computer running out-of-date Me2Me host software." name="IDS_HOST_NEEDS_UPDATE_TITLE">
          Chrome Remote Desktop on <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph> is out-of-date and needs to be updated.
        </message>
        <message name="IDS_COMPANY_NAME" desc="The company name specified in the version information of each Chrome Remote Desktop Host executable.">
          Google Inc.
        </message>
        <message name="IDS_COPYRIGHT" desc="The copyright message specified in the version information of each Chrome Remote Desktop Host executable. It should be updated every year.">
          Copyright 2013 Google Inc. All Rights Reserved.
        </message>
        <message name="IDS_DISPLAY_SERVICE_NAME" desc="The name of the Windows service installed by Chrome Remote Desktop.">
          Chrome Remote Desktop Service
        </message>
        <message name="IDS_SERVICE_DESCRIPTION" desc="The description of the Windows service installed by Chrome Remote Desktop.">
          This service enables incoming connections from Chrome Remote Desktop clients.
        </message>
        <message name="IDS_CONTROLLER_NAME" desc="The name of the component to be elevated shown on the UAC prompt when enabling or disabling Chrome Remote Desktop Host. The Chrome Remote Desktop host allows a user to connect to their computer remotely (it 'hosts' a connection from a remote computer).">
          Chrome Remote Desktop Host Controller
        </message>
        <message name="IDS_VERIFY_PIN_DIALOG_MESSAGE" desc="The message displayed by the PIN verification dialog.">
          Please confirm your account and PIN below to allow access by Chrome Remote Desktop.
        </message>
        <message name="IDS_MAC_UNINSTALLER_BUNDLE_NAME" desc="The bundle name specified in the property list of Chrome Remote Desktop Host Uninstaller bundle on MacOS. The Chrome Remote Desktop host allows a user to connect to their computer remotely (it 'hosts' a connection from a remote computer).">
          Chrome Remote Desktop Host Uninstaller
        </message>
        <message desc="Error displayed when the local computer is configured badly." name="IDS_ERROR_POLICY">
          There is an error with the policy settings for Chrome Remote Desktop. Contact your system administrator for assistance.
        </message>
      </if>  <!-- _google_chrome -->

      <if expr="not _google_chrome">
        <if expr="is_android or is_ios">
          <message desc="Message shown in popup dialog on Android when there are no Google accounts on the device" name="IDS_NOACCOUNTS_MESSAGE" formatter_data="android_java">
            To use Chromoting, you'll need to add a Google Account to your device.
          </message>
          <message desc="The product name, as displayed on Android devices. Try to keep the translation below 16 characters if possible." name="IDS_PRODUCT_NAME_ANDROID" formatter_data="android_java">
            Chromoting
          </message>
          <message desc="The product name, as displayed on iOS devices. Try to keep the translation below 10 characters if possible." name="IDS_IOS_DISPLAY_NAME">
            Chromoting
          </message>
        </if>  <!-- is_android or is_ios -->

        <message desc="Message shown when the Chromoting client tab is closed while a connection is active." name="IDS_CLOSE_PROMPT">
          Leaving this page will end your Chromoting session.
        </message>
        <message desc="Confirmation prompt shown when a user needs to authenticate against a third party, explaining the need to authorize the Chromoting app to access the authentication URL." name="IDS_DESCRIPTION_THIRD_PARTY_AUTH">
          The remote host requires you to authenticate to a third-party website. To continue, you must grant Chromoting additional permissions to access this address:
        </message>
        <message desc="Description for the home screen. This is shown when the app starts up, above buttons to share or connect." name="IDS_DESCRIPTION_HOME">
          Chromoting allows you to securely share your computer over the Web. Both users must be running the Chromoting app, which can be found at <ph name="URL">$1<ex>&lt;a href=http://chrome.google.com/remotedesktop&gt;chrome.google.com/remotedesktop&lt;/a&gt;</ex></ph>.
        </message>
        <message desc="Error displayed if authentication fails. This can be caused by stale credentials, in which logging out of the web-app and retrying can fix the problem." name="IDS_ERROR_AUTHENTICATION_FAILED" formatter_data="android_java">
          Authentication failed. Please sign in to Chromium again.
        </message>
        <message desc="Error displayed when the computer has a policy that only users in a particular domain may use it as a Chromoting host, but a user in a different domain is trying to use it as a Chromoting host. The Chromoting host allows a user to connect to their computer remotely (it 'hosts' a connection from a remote computer)." name="IDS_ERROR_INVALID_HOST_DOMAIN">
          Policy settings do not permit sharing this computer as a Chromoting host. Contact your system administrator for assistance.
        </message>
        <message desc="Error displayed when an operation is attempted that requires a signed-in user, but no-one is currently signed in." name="IDS_ERROR_NOT_AUTHENTICATED">
          You are not signed in to Chromium. Please sign in and try again.
        </message>
        <message desc="Message displayed when the current computer is accepting remote connections." name="IDS_HOME_DAEMON_ACTIVE_MESSAGE">
          You may securely access this computer using Chromoting.
        </message>
        <message desc="Message displayed when the current computer is not accepting remote connections, instructing the user how to enable them." name="IDS_HOME_DAEMON_START_MESSAGE">
          You must enable remote connections if you want to use Chromoting to access this computer.
        </message>
        <message desc="Message displayed to the user if there are no hosts registered to their account, informing them how to set up a host on another computer." name="IDS_HOST_LIST_EMPTY_HOSTING_SUPPORTED">
          To enable remote connections to a different computer, install Chromoting there and click “<ph name="BUTTON_NAME">$1<ex>Enable remote connections</ex></ph>”.
        </message>
        <message desc="Message displayed to the user if there are no hosts registered to their account, informing them how to set up a host on another computer." name="IDS_HOST_LIST_EMPTY_HOSTING_UNSUPPORTED">
          You have no computers registered. To enable remote connections to a computer, install Chromoting there and click “<ph name="BUTTON_NAME">$1<ex>Enable remote connections</ex></ph>”.
        </message>
        <message desc="Message displayed to the user if there are no hosts registered to their account.  If the user has previously signed-in to the v1 app with an account other than their profile, they will lose access to all their hosts once they upgrade to the v2 app.  This message informs them to sign in to the chrome with that account and re-install Chromoting." name="IDS_HOST_LIST_EMPTY_V2_MIGRATION">
          You have previously signed in as <ph name="USER_NAME">$1<ex>John Doe</ex></ph> (<ph name="USER_EMAIL">$2<ex>john.doe@gmail.com</ex></ph>).  To access your computers in that account, <ph name="LINK_BEGIN">$3<ex>&lt;a href="https://support.google.com/chrome/answer/2364824?hl=en"&gt;</ex></ph>sign in to Chromium<ph name="LINK_END">$4<ex>&lt;/a&gt;</ex></ph> with that account and re-install Chromoting.
        </message>
        <message desc="Message displayed next to the checkbox that the user can select to allow crash dump collection and reporting." name="IDS_HOST_SETUP_CRASH_REPORTING_MESSAGE">
          Help us improve Chromoting by allowing us to collect usage statistics and crash reports.
        </message>
        <message desc="Title of the dialog used to download and install the Chromoting host component. The Chromoting host allows a user to connect to their computer remotely (it 'hosts' a connection from a remote computer)." name="IDS_INSTALLER_DOWNLOAD">
          Download Chromoting Host Installer
        </message>
        <message desc="Message shown to inform the user that the product is governed by Google's terms of service and to include a link to view them." name="IDS_HOST_SETUP_TERMS_OF_SERVICE">
          By downloading the Chromoting Host Installer, you are agreeing to the Google <ph name="LINK_BEGIN">$1<ex>&lt;a href="http://www.google.com/intl/en/policies/terms"&gt;</ex></ph>Terms of Service<ph name="LINK_END">$4<ex>&lt;/a&gt;</ex></ph>.
        </message>
        <message desc="Message shown when user is asked to manually install the Host components." name="IDS_HOST_SETUP_INSTALL">
          Chrome is downloading the Chromoting Host installer.  Once the download is complete, please run the installer before continuing.
        </message>
        <message desc="Message displayed when the client or host has disconnected." name="IDS_MESSAGE_SESSION_FINISHED">
          Your Chromoting session has ended.
        </message>
        <message desc="The product name. Displayed in various Chrome pages, including the New Tab page, and displayed prominently on the app's main page." name="IDS_PRODUCT_NAME">
          Chromoting
        </message>
        <message desc="The product name. Displayed in various Chrome pages, including the New Tab page, and displayed prominently on the app's main page." name="IDS_PRODUCT_NAME_APP_STREAMING">
          Chromium App Streaming
        </message>
        <message desc="Message displayed at the bottom of the client connect dialog if Chromoting is running in the wrong start-up mode." name="IDS_WARNING_NOT_WINDOWED">
          NOTE: To ensure that all keyboard shortcuts are available, you can configure Chromoting to ‘Open as window’.
        </message>
        <message desc="Error message displayed if the user tries to connect to a computer running out-of-date Me2Me host software." name="IDS_HOST_NEEDS_UPDATE_TITLE">
          Chromoting on <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph> is out-of-date and needs to be updated.
        </message>
        <message name="IDS_COMPANY_NAME" desc="The company name specified in the version information of each Chromoting Host executable.">
          The Chromium Authors
        </message>
        <message name="IDS_COPYRIGHT" desc="The copyright message specified in the version information of each Chromoting Host executable. It should be updated every year.">
          Copyright 2013 The Chromium Authors. All Rights Reserved.
        </message>
        <message name="IDS_DISPLAY_SERVICE_NAME" desc="The name of the Windows service installed by Chromoting.">
          Chromoting Service
        </message>
        <message name="IDS_SERVICE_DESCRIPTION" desc="The description of the Windows service installed by Chromoting.">
          This service enables incoming connections from Chromoting clients.
        </message>
        <message name="IDS_CONTROLLER_NAME" desc="The name of the component to be elevated shown on the UAC prompt when enabling or disabling Chromoting Host.">
          Chromoting Host Controller
        </message>
        <message name="IDS_VERIFY_PIN_DIALOG_MESSAGE" desc="The message displayed by the PIN verification dialog.">
          Please confirm your account and PIN below to allow access by Chromoting.
        </message>
        <message name="IDS_MAC_UNINSTALLER_BUNDLE_NAME" desc="The bundle name specified in the property list of Chromoting Host Uninstaller bundle on MacOS.">
          Chromoting Host Uninstaller
        </message>
        <message desc="Error displayed when the local computer is configured badly." name="IDS_ERROR_POLICY">
          There is an error with the policy settings for Chrome Remote Desktop. Contact your system administrator for assistance.
        </message>
      </if>  <!-- not _google_chrome -->

      <message desc="Error that is shown on the client side when incompatible Chrome Remote Desktop versions are installed on host and client." name="IDS_ERROR_INCOMPATIBLE_PROTOCOL" formatter_data="android_java">
        An incompatible protocol version was detected. Please make sure that you have the latest version of the software installed on both computers and try again.
      </message>
      <message desc="Text shown when the app first starts, or if the access token is invalidated, explaining the need to authorize the Chromoting app before use." name="IDS_DESCRIPTION_AUTHORIZE">
        To continue you must first grant extended access permissions to your computer. You only have to do this once.
      </message>
      <message desc="Error displayed if the client plugin are missing or if they could not be loaded." name="IDS_ERROR_BAD_PLUGIN_VERSION">
        Some required components are missing. Please make sure you have installed the latest version of the software and try again.
      </message>
      <message desc="Error displayed if the client plugin fails to load." name="IDS_ERROR_MISSING_PLUGIN">
        Some required components are missing. Please make sure you're running the latest version of Chrome and try again.
      </message>
      <message desc="Error displayed if the client plugin crashes." name="IDS_ERROR_NACL_PLUGIN_CRASHED">
        A required component has stopped working. Please report this problem to the developers.
      </message>
      <message desc="Error displayed if Native Client is not enabled." name="IDS_ERROR_NACL_DISABLED">
        Some required components are missing. Please go to chrome://plugins and make sure Native Client is enabled.
      </message>
      <message desc="Message shown if the user is not authorized to perform the requested action." name="IDS_ERROR_NOT_AUTHORIZED">
        You do not have permission to perform that action.
      </message>
      <message desc="Message shown if the user is is trying to modify an object that does not exist." name="IDS_ERROR_NOT_FOUND">
        The requested object does not exist.
      </message>
      <!-- The following strings are AppRemoting-specific -->
      <message desc="Message shown if the user is not authorized to run the app." name="IDS_ERROR_APP_NOT_AUTHORIZED">
        You do not have permission to run this application.
      </message>
      <message desc="Menu option to toggle the debugging stats." name="IDS_SHOW_STATS">
        Show statistics
      </message>
      <message desc="Menu option to toggle the debugging stats, including a summary of the current connection quality." name="IDS_SHOW_STATS_WITH_RTT">
        Show statistics (connection: <ph name="QUALITY">$1<ex>Good</ex></ph>)
      </message>
      <message desc="Indicates a 'good' quality connection." name="IDS_CONNECTION_QUALITY_GOOD">
        Good
      </message>
      <message desc="Indicates a 'fair' quality connection." name="IDS_CONNECTION_QUALITY_FAIR">
        Fair
      </message>
      <message desc="Indicates a 'poor' quality connection." name="IDS_CONNECTION_QUALITY_POOR">
        Poor
      </message>
      <message desc="Menu option to submit feedback about the product." name="IDS_SEND_FEEDBACK">
        Report an issue…
      </message>
      <message desc="Title for the dialog prompting the user to consent to their email address being included as part of their feedback." name="IDS_FEEDBACK_CONSENT_TITLE">
        Report an issue
      </message>
      <message desc="Text asking the user for consent to their email address being included as part of their feedback." name="IDS_FEEDBACK_CONSENT_EMAIL">
        To allow us to contact you for further information, your email address will be included in any feedback you submit.
      </message>
      <message desc="Text asking the user to choose a category for their feedback." name="IDS_FEEDBACK_CATEGORY_INSTRUCTIONS">
        To help us solve your problem, please tell us what went wrong:
      </message>
      <message desc="The initial 'category', indicating that the user must select something to continue." name="IDS_FEEDBACK_CATEGORY_SELECT">
        Select…
      </message>
      <message desc="Category indicating that the user is having problems launching the application." name="IDS_FEEDBACK_CATEGORY_APP_LAUNCH">
        I can't open the application.
      </message>
      <message desc="Category indicating that the application is running too slowly." name="IDS_FEEDBACK_CATEGORY_APP_PERFORMANCE">
        The application is too slow.
      </message>
      <message desc="Category indicating that the user is having keyboard or mouse issues." name="IDS_FEEDBACK_CATEGORY_INPUT">
        I'm having problems with my keyboard or mouse.
      </message>
      <message desc="Category indicating that the user is having problems with Google Drive not uploading their files." name="IDS_FEEDBACK_CATEGORY_DRIVE_UPLOAD">
        I can't see my saved files on-line in Google Drive.
      </message>
      <message desc="Category indicating that the user is having problems with Google Drive not downloading their files." name="IDS_FEEDBACK_CATEGORY_DRIVE_DOWNLOAD">
        I can't open my Google Drive files.
      </message>
      <message desc="Category indicating that the user is having a problem not covered by any of the common categories." name="IDS_FEEDBACK_CATEGORY_OTHER">
        Something else.
      </message>
      <message desc="Title for the submenu item containing a list of windows opened by the remote app." name="IDS_WINDOWS_SUBMENU_TITLE">
        Windows
      </message>
      <message desc="Checkbox allowing the user to request that their virtual machine be rebooted if it becomes unconnectable." name="IDS_FEEDBACK_ABANDON_HOST">
        Reset the application. You will lose any unsaved work.
      </message>
      <message desc="Checkbox allowing the user to request that logs be included in their feedback." name="IDS_FEEDBACK_INCLUDE_LOGS">
        Include application logs to help us resolve your problem (logs may include private information).
      </message>
      <message desc="Link allowing the user to get additional information." name="IDS_LEARN_MORE">
        Learn more.
      </message>
      <message desc="Detailed privacy information for the feedback feature." name="IDS_FEEDBACK_PRIVACY_INFORMATION1">
        Application logs may include private information, including your identity (email address) and the names and properties of files and folders in Google Drive.
      </message>
      <message desc="Detailed privacy information for the feedback feature." name="IDS_FEEDBACK_PRIVACY_INFORMATION2">
        This information is used only for diagnosing the problem you are reporting, is available only to someone investigating your report, and is retained for no more than 30 days.
      </message>
      <message desc="Error message displayed if the reset attempt fails." name="IDS_FEEDBACK_ABANDON_FAILED">
        Could not reset the application. You can still send a bug report.
      </message>
      <message desc="Title for the submenu item containing a list of windows opened by the remote app." name="IDS_KEYBOARD_LAYOUTS_SUBMENU_TITLE">
        Keyboard layouts
      </message>
      <message desc="Title for the connection error dialog." name="IDS_CONNECTION_FAILED">
        Connection failed
      </message>
      <message desc="Warning shown if the platform does not support transparency." name="IDS_NO_TRANSPARENCY_WARNING">
        Desktop integration is not supported on this platform. You can still use the application, but the user experience will be degraded.
      </message>
      <message desc="Message shown if the user has been idle for a long time, informing them that their session will be disconnected shortly." name="IDS_IDLE_TIMEOUT_WARNING">
        Your <ph name="APPLICATION_NAME">$1<ex>SampleApp Streaming</ex></ph> session has been inactive for a while and will be disconnected shortly.
      </message>
      <message desc="Button to allow the user to indicate that they are still using the service" name="IDS_IDLE_CONTINUE">
        Continue
      </message>
      <message desc="Button to allow the user to indicate that they are no longer using the service." name="IDS_IDLE_DISCONNECT">
        Disconnect now
      </message>
      <message desc="Button to restart the app after the connection is dropped." name="IDS_RESTART_BUTTON">
        Restart now
      </message>
      <message desc="Message show to the user when the connection is dropped." name="IDS_ERROR_CONNECTION_DROPPED">
        A network error occurred. We will restart the app when your device is on-line again.
      </message>

      <if expr="is_android or is_ios">
        <message desc="Button to show or hide the on-screen keyboard." name="IDS_SHOW_HIDE_KEYBOARD" formatter_data="android_java">
          Show/hide keyboard.
        </message>
        <message desc="Button to show the on-screen keyboard." name="IDS_SHOW_KEYBOARD">
          Show keyboard
        </message>
        <message desc="Button to show the on-screen keyboard." name="IDS_HIDE_KEYBOARD">
          Hide keyboard
        </message>
        <message desc="Menu item to select the Touch input mode. In this mode, there is no visible mouse pointer and the user must tap on the screen to simulate a left-click." name="IDS_SELECT_TOUCH_MODE" formatter_data="android_java">
          Touch mode
        </message>
        <message desc="Menu item to select the Trackpad input mode. In this mode, the mouse cursor is visible and the screen acts as a laptop's trackpad." name="IDS_SELECT_TRACKPAD_MODE" formatter_data="android_java">
          Trackpad mode
        </message>
        <message desc="Message displayed in the Android application if the user has not set up any computers for remote access." name="IDS_HOST_LIST_EMPTY_ANDROID" formatter_data="android_java">
          There's nothing to connect to
        </message>
        <message desc="Instruction displayed in the Android application if the user has not set up any computers for remote access. It appears after some larger text which states that the user has no computers to connect to." name="IDS_HOST_LIST_EMPTY_INSTRUCTIONS_ANDROID" formatter_data="android_java">
          You need to first set up your computer for remote access
        </message>
        <message desc="This button appears below some text which explains that the user needs to set up a computer for remote access. When a user activates the button, they are taken to a web page that explains how to set up a Chromoting host." name="IDS_HOST_SETUP_LINK_ANDROID" formatter_data="android_java">
          Learn how
        </message>
        <message desc="Title of the authentication dialog" name="IDS_TITLE_AUTHENTICATE" formatter_data="android_java">
          Authenticate to host
        </message>
        <message desc="Android application menu item for sending product feedback to the developers" name="IDS_ACTIONBAR_SEND_FEEDBACK" formatter_data="android_java">
          Send Feedback
        </message>
        <message desc="Title displayed in the action-bar for the Android Help screen" name="IDS_ACTIONBAR_HELP_TITLE" formatter_data="android_java">
          Help
        </message>
        <message desc="Android application menu item for showing the Help screen" name="IDS_ACTIONBAR_HELP" formatter_data="android_java">
          Help
        </message>
        <message desc="Android action-bar menu item for viewing the Play Store page for the application" name="IDS_ACTIONBAR_PLAY_STORE" formatter_data="android_java">
          View in Google Play Store
        </message>
        <message desc="Label for the button on the Android popup dialog that is shown when there are no Google accounts on the device. Pressing this button launches the Android system screen for adding a new Google account to the device." name="IDS_NOACCOUNTS_ADD_ACCOUNT" formatter_data="android_java">
          Add account
        </message>
        <message desc="Button which appears below the user's current account name. Pressing it brings up an account-chooser dialog." name="IDS_CHANGE_ACCOUNT" formatter_data="android_java">
          Change account
        </message>
        <message desc="Error that is shown if a network error occurs, including the case where the device is off-line." name="IDS_ERROR_NETWORK_ERROR" formatter_data="android_java">
          A network error occurred. Please check that your device is on-line and try again.
        </message>
        <message desc="Text shown in tooltip when user touches an offline host on the device." name="IDS_HOST_OFFLINE_TOOLTIP" formatter_data="android_java">
          Host is offline.
        </message>
        <message name="IDS_MOBILE_NETWORK_WARNING" desc="Message shown in an alert dialog that warns the user that they are trying to connect to a device over mobile network.">
          Data charges may apply when connecting to a device over mobile network. Do you want to continue?
        </message>
        <message name="IDS_THIRD_PARTY_AUTH_NOT_SUPPORTED" desc="Error message shown when the user attempts to connect to a remote device under third party authentication, which is currently unsupported by the client.">
          This device is not supported by this client because it requires third party authentication.
        </message>

<!-- Play Store listings text. These Android-specific strings are not marked
     with formatter_data="android_java" since they are used only for the Play
     Store listings, and should not be bundled in the APK.
-->
        <message name="IDS_PLAY_STORE_TITLE" desc="Play Store title of the Chrome Remote Desktop app for Android. If needed to meet the 30-char limit, please translate just 'Remote Desktop' instead. [CHAR-LIMIT=30] [NAME=play_store_title]" meaning="Title used in Play Store">
          Chrome Remote Desktop
        </message>
        <message name="IDS_PLAY_STORE_TAGLINE" desc="Play Store tagline for the Chrome Remote Desktop app for Android. [CHAR-LIMIT=80] [NAME=play_store_tagline]">
          Securely access your computers from your Android device.
        </message>
        <message name="IDS_PLAY_STORE_DESCRIPTION" desc="Play Store description of the Chrome Remote Desktop app for Android. [CHAR-LIMIT=4000] [NAME=play_store_description]">
Securely access your computers from your Android device.

• On each of your computers, set up remote access using the Chrome Remote Desktop app from Chrome Web Store: https://chrome.google.com/remotedesktop
• On your Android device, open the app and tap on any of your online computers to connect.

For information about privacy, please see the Google Privacy Policy (http://goo.gl/SyrVzj) and the Chrome Privacy Policy (http://goo.gl/0uXE5d).
        </message>
        <message name="IDS_PLAY_STORE_DESCRIPTION_ALTERNATE" desc="Play Store description of the Chrome Remote Desktop app for Android. [CHAR-LIMIT=4000] [NAME=play_store_description_alternate]">
Securely access your computers from your Android device.

• On each of your computers, set up remote access using the Chrome Remote Desktop app from Chrome Web Store: https://chrome.google.com/remotedesktop
• On your Android device, open the app and tap on any of your online computers to connect.

Remote computers with non US-English keyboards may receive incorrect text input. Support for other keyboard layouts is coming soon!

For information about privacy, please see the Google Privacy Policy (http://goo.gl/SyrVzj) and the Chrome Privacy Policy (http://goo.gl/0uXE5d).
        </message>
        <message name="IDS_PLAY_STORE_CHANGES" desc="List of what's changed in this release of Chrome Remote Desktop for Android. [CHAR-LIMIT=500] [NAME=play_store_changes]">
• Added support for Android 8.0 Oreo.
        </message>

        <!-- iOS App Store metadata text. Won't be bundled into the app. -->
        <message name="IDS_APP_STORE_TITLE" desc="App Store title of the Chrome Remote Desktop app for iOS. If needed to meet the 30-char limit, please translate just 'Remote Desktop' instead. [CHAR-LIMIT=30] [NAME=app_store_title]" meaning="Title used in App Store">
          Chrome Remote Desktop
        </message>
        <message name="IDS_APP_STORE_KEYWORDS" desc="App Store keywords (to be used to search for the app) for the Chrome Remote Desktop app for iOS. Separate keywords with newline. [NAME=app_store_keywords]">
Chrome
Remote
Desktop
Access
Support
Computer
PC
        </message>
        <message name="IDS_APP_STORE_DESCRIPTION" desc="App Store description of the Chrome Remote Desktop app for iOS. [CHAR-LIMIT=4000] [NAME=app_store_description]">
Securely access your computer from your iOS device. It's fast, simple and free.

• Download the Chrome Remote Desktop app from the Chrome WebStore on the computer you want to access remotely.
• Install Chrome Remote Desktop software and follow the instructions to complete setup.
• On your iOS device, open the app and tap on any of your online computers to connect.
        </message>
        <message name="IDS_APP_STORE_CHANGES" desc="List of what's changed in this release of Chrome Remote Desktop for iOS. [CHAR-LIMIT=500] [NAME=app_store_changes]">
• New look and feel.
• Improved performance, responsiveness and reliability.
• Support for playing audio from Windows or Linux computers.
        </message>
      </if>  <!-- is_android or is_ios -->

      <if expr="is_ios">
        <message desc="Initial screen's title, welcoming the user." name="IDS_WELCOME">
          Welcome
        </message>
        <message desc="Initial screen's subtitle, with a short description of the app" name="IDS_SHORT_DESCRIPTION">
          Access your computer securely over the Internet
        </message>
      </if> <!-- is_ios -->

      <message desc="Title for a list of devices that an be accessed remotely." name="IDS_REMOTE_DEVICES_TITLE">
        Remote devices
      </message>
      <message desc="Subtitle shown in the host list when host is online." name ="IDS_HOST_ONLINE_SUBTITLE">
        Online
      </message>
      <message desc="Subtitle shown in the host list when host is offline, and for which no last-online status is available." name="IDS_HOST_OFFLINE_SUBTITLE">
        Offline
      </message>
      <message desc="Subtitle shown in the host list when host is offline. Indicates when host was last seen online." name="IDS_LAST_ONLINE_SUBTITLE">
        Last online: <ph name="DATE">$1<ex>1/6/13</ex></ph>
      </message>
      <message desc="Title for the button that brings up a settings menu." name="IDS_SETTINGS_BUTTON">
        Settings
      </message>
      <message desc="Title for the button that moves the floating action button to the other left side of the screen." name="IDS_MOVE_FAB_LEFT_BUTTON">
        Dock Left
      </message>
      <message desc="Title for the button that moves the floating action button to the right side of the screen." name="IDS_MOVE_FAB_RIGHT_BUTTON">
        Dock Right
      </message>
      <message desc="Short placeholder text on a text box to prompt the user to enter the PIN." name="IDS_ENTER_PIN">
        Enter PIN
      </message>
      <message desc="Text displayed while the client is connecting to a host" name="IDS_CONNECTING_TO_HOST_MESSAGE">
        Connecting to <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph>
      </message>
      <message desc="Text displayed when the client is successfully connected to a host" name="IDS_CONNECTED_TO_HOST_MESSAGE">
        Connected to <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph>
      </message>
      <message desc="Text displayed when the client's connection to a host is closed" name="IDS_CONNECTION_CLOSED_FOR_HOST_MESSAGE">
        Connection closed for <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph>
      </message>
      <message desc="Text displayed when the client failed to connect to a host" name="IDS_ERROR_CONNECTING_TO_HOST_MESSAGE">
        Error connecting to <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph>
      </message>
      <message desc="Title for an options menu for configuring how the remote host screen should be displayed in the window." name="IDS_DISPLAY_OPTIONS">
        Display options
      </message>
      <message desc="Title for an options menu for configuring how mouse inputs should be injected to the remote host." name="IDS_MOUSE_OPTIONS">
        Mouse options
      </message>
      <message desc="Title for an options menu for configuring how keyboard inputs should be injected to the remote host." name="IDS_KEYBOARD_OPTIONS">
        Keyboard options
      </message>
      <message desc="Title for the support menu with options like FAQs and Help Center." name="IDS_SUPPORT_MENU">
        Support
      </message>
      <message desc="Title for the button that brings up the help center page." name="IDS_HELP_CENTER">
        Help Center
      </message>
      <message desc="Title for the button that brings up the frequently asked questions page." name="IDS_FAQS">
        FAQs
      </message>
      <message desc="Subtitle (description) of the option controlling whether or not the remote desktop is scaled down if it is too large to fit in the window." name="IDS_SHRINK_TO_FIT_SUBTITLE">
        Keep whole remote desktop visible
      </message>
      <message desc="Subtitle (description) of the option controlling whether or not the remote desktop is resized to match the window size as closely as possible." name="IDS_RESIZE_TO_CLIENT_SUBTITLE">
        Update remote resolution to match window
      </message>
      <message desc="Subtitle (description) for the touch mode. In this mode, there is no visible mouse pointer and the user must tap on the screen to simulate a left-click." name="IDS_TOUCH_MODE_DESCRIPTION">
        Screen acts like a touch screen
      </message>
      <message desc="Subtitle (description) for the trackpad mode. In this mode, In this mode, the mouse cursor is visible and the screen acts as a laptop's trackpad." name="IDS_TRACKPAD_MODE_DESCRIPTION">
        Screen acts like a trackpad
      </message>

      <!-- This is a verbatim transcription for the description. See also IDS_REMEMBER_PIN. -->
      <message desc="Check-box displayed when the user enters their PIN to connect to a host, avoiding the need to enter the PIN each time." name="IDS_REMEMBER_PIN_ON_THIS_DEVICE">
        Remember my PIN on this device.
      </message>

      <message desc="Title for the instructions for setting up a remote host. Shown when the user has no host available." name="IDS_HOST_SETUP_TITLE">
        Welcome to Chrome Remote Desktop
      </message>
      <message desc="Step 1 to set up a computer to be remotely accessible." name="IDS_HOST_SETUP_STEP_1">On the computer you want to access remotely, open Chrome and visit <ph name="INSTALLATION_LINK">$1<ex>google.com/remotedesktop</ex></ph></message>
      <message desc="Step 2 to set up a computer to be remotely accessible." name="IDS_HOST_SETUP_STEP_2">Install Chrome Remote Desktop software and follow the instructions to complete setup</message>
      <message desc="Step 3 to set up a computer to be remotely accessible." name="IDS_HOST_SETUP_STEP_3">After setup is complete, you'll be able to access the computer from this page by entering the PIN or access code</message>
      <message desc="Label for a button for sending the user an email with link and instructions for setting up a computer for remote access." name="IDS_EMAIL_LINKS_AND_INSTRUCTIONS">
        Email these instructions
      </message>

      <message desc="Message being spoken for accessibility when the user is just connected to the remote device." name="IDS_HOST_CONNECTED_ANNOUNCEMENT">
        You are connected to your remote device. To open the menu, please tap the screen with four fingers.
      </message>

      <message desc="Label for the access code entry box. This is where the client user enters the code that permits access to the host." name="IDS_ACCESS_CODE">
        Access code
      </message>
      <message desc="Text displayed when the access code is due to time out within 30 seconds." name="IDS_ACCESS_CODE_TIMER">
        This access code will expire in <ph name="TIMEOUT">$1<ex>0:30</ex></ph>
      </message>
      <message desc="In the connection history dialog, clicking this button shows all recent connections unfiltered." name="IDS_ALL_CONNECTIONS">
        All connections
      </message>
      <message desc="Label next to the PIN entry edit box. The user must enter a PIN before enabling remote access to their computer." name="IDS_ASK_PIN_DIALOG_LABEL">
        PIN
      </message>
      <message desc="Label next to the PIN confirmation edit box. The user must enter a PIN before enabling remote access to their computer." name="IDS_ASK_PIN_DIALOG_CONFIRM_LABEL">
        Re-type PIN
      </message>
      <message desc="Label for general-purpose Cancel buttons." name="IDS_CANCEL" formatter_data="android_java">
        Cancel
      </message>
      <message desc="In the connection history dialog, clicking this button will delete the connection history." name="IDS_CLEAR_HISTORY">
        Clear history
      </message>
      <message desc="Label for general-purpose Close buttons." name="IDS_CLOSE" formatter_data="android_java">
        Close
      </message>
      <message desc="Label for the connect button. Clicking this button will start the Chrome Remote Desktop session if the access code is correct." name="IDS_CONNECT_BUTTON" formatter_data="android_java">
        Connect
      </message>
      <message desc="Label for the connect button for hosts running an out-of-date version of the Me2Me host software. The user clicks this button to acknowledge the message but continue with the connection anyway." name="IDS_CONNECT_ANYWAY">
        Connect anyway
      </message>
      <message desc="Confirmation prompt shown when a user attempts to delete a Me2Me host from their host list." name="IDS_CONFIRM_HOST_DELETE">
        Are you sure you want to disable remote connections to <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph>? If you change your mind, you'll need to visit that computer to re-enable connections.
      </message>
      <message desc="Confirmation prompt shown when a user attempts remove or deactivate a machine from the list of their remotely-accessible machines." name="IDS_CONFIRM_HOST_DELETE_ANDROID" formatter_data="android_java">
        Are you sure you want to disable remote connections to <ph name="HOSTNAME">%1$s<ex>My Linux desktop</ex></ph>?
      </message>
      <message desc="Column header in the connection history table showing the email address of the client end of the connection (the initiator) which may be this or another computer." name="IDS_CONNECTION_FROM_HEADER">
        From
      </message>
      <message desc="Title for the connection history dialog. This dialog shows recent connections made to and from this computer" name="IDS_CONNECTION_HISTORY_TITLE">
        Connection History
      </message>
      <message desc="Column header in the connection history table showing the email address of the host end of the connection (the connectee) which may be this or another computer." name="IDS_CONNECTION_TO_HEADER">
        To
      </message>
      <message desc="Label for the continue button on the pre-authorization page. Clicking this button takes the user to the standard Google Accounts authorization page." name="IDS_CONTINUE_BUTTON">
        Continue
      </message>
      <message desc="Message displayed when the session has lasted longer than five minutes, explaining that the host computer is being shared and asking whether or not the user wants to continue sharing it." name="IDS_CONTINUE_PROMPT">
        You are currently sharing this machine with another user. Do you want to continue sharing?
      </message>
      <message desc="Description for the client app. This is shown to the client user above the access code entry box before the connection is started. Note that the 'Share Now' quote should be copied verbatim from the corresponding translation." name="IDS_DESCRIPTION_CONNECT">
        Ask the user whose computer you wish to access to click “<ph name="SHARE">$1<ex>Share</ex></ph>” and give you the access code.
      </message>
      <message desc="Label for the 'yes' response to the dialog asking the user to confirm whether or not they want to disable remote access to a host." name="IDS_DISABLE_HOST">
        Disable
      </message>
      <message desc="Label for the client-side disconnect button. Clicking this button disconnects oneself from the host." name="IDS_DISCONNECT_MYSELF_BUTTON" formatter_data="android_java">
        Disconnect
      </message>
      <message desc="Column header in the connection history table showing the length of time for which a connection was active, if available." name="IDS_DURATION_HEADER">
        Duration
      </message>
      <message desc="Error that is shown on the client side when the host is blocking all connections due to failed authentication attempts." name="IDS_ERROR_HOST_OVERLOAD" formatter_data="android_java">
        Connections to the remote computer are temporarily blocked because somebody was trying to connect to it with an invalid PIN. Please try again later.
      </message>
      <message desc="Error that is shown on the client side after the host has terminated connection that lasted more than maximum allowed duration." name="IDS_ERROR_MAX_SESSION_LENGTH" formatter_data="android_java">
        The remote session has expired.
      </message>
      <message desc="Error that is shown on the client side the host has failed to accept the connection due to a configuration issue." name="IDS_ERROR_HOST_CONFIGURATION_ERROR" formatter_data="android_java">
        The remote computer has failed to initialize the session. If problem persist please try to configure the host again.
      </message>

      <message desc="Error that is shown on the client side when we don't get a response from the host." name="IDS_ERROR_HOST_IS_OFFLINE" formatter_data="android_java">
        The remote computer is not responding to connection requests. Please verify that it is online and try again.
      </message>
      <message desc="Error displayed if an invalid access code is entered." name="IDS_ERROR_INVALID_ACCESS_CODE" formatter_data="android_java">
        The access code is invalid. Please try again.
      </message>
      <message desc="Error displayed if the host security policies do not allow connections from client." name="IDS_ERROR_INVALID_ACCOUNT" formatter_data="android_java">
        Security policies on the remote computer do not allow connections from your account.
      </message>
      <message desc="Error displayed when the host is online, but we are unable to connect to it due to network configuration." name="IDS_ERROR_P2P_FAILURE" formatter_data="android_java">
        Unable to reach the host. This is probably due to the configuration of the network you are using.
      </message>
      <message desc="Error displayed when the host is online, but we are unable to connect to it due to network configuration." name="IDS_ERROR_NETWORK_FAILURE">
        Could not connect to the network. Please check that your device is on-line.
      </message>
      <message desc="Error displayed when the service returns a 503 error. Such errors are usually temporary, and resolve themselves in about 30 seconds." name="IDS_ERROR_SERVICE_UNAVAILABLE">
        The service is temporarily unavailable. Please try again later.
      </message>
      <message desc="Error displayed when the user's oauth token is invalid." name="IDS_ERROR_OAUTH_TOKEN_INVALID">
        There was an issue authenticating, please login again.
      </message>
      <message desc="Error displayed in situations where things go wrong in ways not anticipated by the developers. There is typically no user-workaround to suggest, other than reporting the error so that we can investigate further." name="IDS_ERROR_UNEXPECTED" formatter_data="android_java">
        An unexpected error occurred. Please report this problem to the developers.
      </message>
      <message desc="Text displayed while a client is connecting to a host, but before the connection is established." name="IDS_FOOTER_CONNECTING" formatter_data="android_java">
        Connecting…
      </message>
      <message desc="Footer text displayed at the host after an access code has been generated, but before a client connects." name="IDS_FOOTER_WAITING">
        waiting for connection…
      </message>
      <message desc="Menu option for toggle full-screen mode." name="IDS_FULL_SCREEN" formatter_data="android_java">
        Full screen
      </message>
      <message desc="Icon to leave full-screen mode." name="IDS_EXIT_FULL_SCREEN">
        Exit full screen
      </message>
      <message desc="Tool-tip for the window's close icon." name="IDS_CLOSE_WINDOW">
        Close window
      </message>
      <message desc="Tool-tip for the window's maximize icon." name="IDS_MAXIMIZE_WINDOW">
        Maximize window
      </message>
      <message desc="Tool-tip for the window's minimize icon." name="IDS_MINIMIZE_WINDOW">
        Minimize window
      </message>
      <message desc="Tool-tip for the window's restore icon." name="IDS_RESTORE_WINDOW">
        Restore window
      </message>
      <message desc="Tool-tip for the window's options menu icon." name="IDS_OPTIONS_MENU">
        Options
      </message>
      <message desc="Button displayed underneath explanatory text for app features. Clicking causes the text, infographic and the button itself to be replaced by the actual UI for that feature." name="IDS_GET_STARTED">
        Get started
      </message>
      <message desc="Help link, displayed in the top-left (assuming ltr layout) corner of the main screen. Clicking this takes the user to our FAQ." name="IDS_HELP">
        Help
      </message>
      <message desc="Credits link, displayed in the top-left (assuming ltr layout) corner of the main screen. Clicking this takes the user to our acknowledgements screen." name="IDS_CREDITS" formatter_data="android_java">
        Credits
      </message>
      <message desc="Clicking this button starts the desktop access process." name="IDS_HOME_ACCESS_BUTTON">
        Access
      </message>
      <message desc="Description of the 'access' or 'client' functionality, displayed next to a button that instigates an access operation." name="IDS_HOME_ACCESS_DESCRIPTION">
        See and control a shared computer.
      </message>
      <message desc="Hyperlink displayed immediately after the message indicating that the current computer is accepting remote connectins. Clicking this link allows the user to change the PIN (personal identification number) for accessing this host." name="IDS_HOME_DAEMON_CHANGE_PIN_LINK">
        Change PIN
      </message>
      <message desc="Button displayed when the current computer is accepting remote connections. Clicking this button causes it to stop accepting remote connections." name="IDS_HOME_DAEMON_STOP_BUTTON">
        Disable remote connections
      </message>
      <message desc="Button displayed when the current computer is not accepting remote connections. Clicking this button causes it to start accepting remote connections." name="IDS_HOME_DAEMON_START_BUTTON">
        Enable remote connections
      </message>
      <message desc="Message displayed in the application to indicate that this computer is remotely accessible, but only from a different account than the one that the user is currently signed in as." name="IDS_HOME_DAEMON_HOST_ENABLED_OTHER_ACCOUNT">
        This computer is currently shared under a different account.
      </message>
      <message desc="Explanatory text displayed when the user enables remote access or changes the PIN." name="IDS_HOST_SETUP_DIALOG_DESCRIPTION">
        To protect access to this computer, please choose a PIN of <ph name="BOLD_START">$1<ex>&lt;b&gt;</ex></ph>at least six digits<ph name="BOLD_END">$2<ex>&lt;/b&gt;</ex></ph>. This PIN will be required when connecting from another location.
      </message>
      <message desc="Message shown when host service fails to start when enabling the host on local computer." name="IDS_HOST_SETUP_HOST_FAILED">
        Failed to start remote access service.
      </message>
      <message desc="Message shown when user has attempted to continue past the manual install dialog, but the Host components are not yet installed." name="IDS_HOST_SETUP_INSTALL_PENDING">
        Please run the installer before continuing.
      </message>
      <message desc="Message shown when host registration fails when enabling the host on local computer." name="IDS_ERROR_HOST_REGISTRATION_FAILED">
        Failed to register this computer.
      </message>
      <message desc="Message shown after access to local computer has been enabled successfully." name="IDS_HOST_SETUP_STARTED">
        Remote connections for this computer have been enabled.
      </message>
      <message desc="Instructions to the user to ask them to disable power management for the computer in order to be able to connect to it." name="IDS_HOST_SETUP_STARTED_DISABLE_SLEEP">
        Please check your computer's power management settings and ensure that it is not configured to sleep when idle.
      </message>
      <message desc="Message shown when local machine is being registered in the directory and when starting the host." name="IDS_HOST_SETUP_STARTING">
        Enabling remote connections for this computer…
      </message>
      <message desc="Message shown after we've failed to stop the host." name="IDS_HOST_SETUP_STOP_FAILED">
        Failed to disable remote access to this computer. Please try again later.
      </message>
      <message desc="Message shown after host has been stopped." name="IDS_HOST_SETUP_STOPPED">
        Remote connections for this computer have been disabled.
      </message>
      <message desc="Message shown when host is being stopped on the local machine." name="IDS_HOST_SETUP_STOPPING">
        Disabling remote connections for this computer…
      </message>
      <message desc="Message shown after changing PIN for the local computer." name="IDS_HOST_SETUP_UPDATED_PIN">
        Your PIN has been updated.
      </message>
      <message desc="Message shown while changing PIN for the local computer." name="IDS_HOST_SETUP_UPDATING_PIN">
        The PIN for this computer is being updated…
      </message>
      <message desc="Message shown we fail to update PIN for the local computer." name="IDS_HOST_SETUP_UPDATE_PIN_FAILED">
        Failed to update the PIN. Please try again later.
      </message>
      <message desc="Clicking this button starts the desktop sharing process." name="IDS_HOME_SHARE_BUTTON">
        Share
      </message>
      <message desc="Description of the 'share' or 'host' functionality, displayed next to a button that instigates a share operation." name="IDS_HOME_SHARE_DESCRIPTION">
        Share this computer for another user to see and control.
      </message>
      <message desc="Text displayed below the description of the 'share' or 'host' functionality on an unsupported platform." name="IDS_HOME_SHARE_DESCRIPTION_UNSUPPORTED">
        (this feature is not yet available for your computer)
      </message>
      <message desc="In the connection history dialog, clicking this button shows only recent connections to this computer." name="IDS_INCOMING_CONNECTIONS">
        To this computer
      </message>
      <message desc="Instructions shown above the access code when it is ready to be conveyed to the client." name="IDS_INSTRUCTIONS_SHARE_ABOVE">
        To begin sharing your desktop, give the access code below to the person who will be assisting you.
      </message>
      <message desc="Instructions shown below the access code when it is ready to be conveyed to the client." name="IDS_INSTRUCTIONS_SHARE_BELOW">
        Once they enter the code, you will be prompted to accept the connection and begin the sharing session.
      </message>
      <message desc="Instructions shown when the local user must accept or reject the incoming connection request."  name="IDS_INSTRUCTIONS_SHARE_PROMPT">
        Please select '<ph name="SHARE">$1<ex>Share</ex></ph>' on the connection dialog box to complete the process.
      </message>
      <message desc="An error message displayed if the user enters an invalid PIN while setting up a host." name="IDS_INVALID_PIN">
        Please enter a PIN consisting of six or more digits.
      </message>
      <message desc="Description of the 'IT2Me' remote support functionality, displayed until the user clicks a 'get started' button, at which point it is replaced by the actual UI for that functionality." name="IDS_IT2ME_FIRST_RUN">
        User-to-user screen sharing, perfect for remote technical support.
      </message>
      <message desc="String displayed in front of the host when a connection is active informing the client user who they are connected to." name="IDS_LABEL_CONNECTED">
        Connected:
      </message>
      <message desc="Description of the 'Me2Me' remote access functionality, displayed until the user clicks a 'get started' button, at which point it is replaced by the actual UI for that functionality." name="IDS_ME2ME_FIRST_RUN">
        Access your own computer from anywhere.
      </message>
      <message desc="Text shown while generating an access code." name="IDS_MESSAGE_GENERATING">
        Generating access code…
      </message>
      <message desc="Message shown on the host computer while a session is active informing them who is connected." name="IDS_MESSAGE_SHARED">
        Your desktop is currently shared with <ph name="USER">$1<ex>user@domain.com</ex></ph>.
      </message>
      <message desc="Sub-title for the one-time authorization step. Displayed after the product name and separated by a chevron." name="IDS_MODE_AUTHORIZE">
        Authorize
      </message>
      <message desc="Sub-title for the remote assistance section of the UI, which contains buttons to share this computer or to connect to another computer, both on a one-off basis." name="IDS_MODE_IT2ME">
        Remote Assistance
      </message>
      <message desc="Sub-title for the remote access section of the UI, which contains a list of currently-shared hosts and a button to enable this computer for long-term sharing." name="IDS_MODE_ME2ME" formatter_data="android_java">
        My Computers
      </message>
      <message desc="Label for general-purpose OK buttons." name="IDS_OK">
        OK
      </message>
      <if expr="is_android">
        <!-- Android uses a different format for placeholder -->
        <message desc="Message that is spoken (for accessibility) whenever the user selects an account from a list displayed in the application." name="IDS_LOG_IN_ACCOUNT_ACCESSIBILITY_DESCRIPTION" formatter_data="android_java" meaning="Spoken message">
          Signed in as <ph name="EMAIL_ADDRESS">%1$s<ex>test@gmail.com</ex></ph>.
        </message>
        <message desc="This string represents a host status line, which is shown below the host name for offline hosts.  The status line consists of 1) a host offline status (i.e. a specific 'Host failed to read the policy.' or 'Invalid host owner.' or a generic 'Host if offline.') and 2) statement when the host was last seen online (i.e. 'Last seen online 20 minutes ago.')."
                 name="IDS_HOST_STATUS_LINE" formatter_data="android_java">
          <ph name="OPTIONAL_OFFLINE_REASON">%2$s<ex>Host failed to read the policy.</ex></ph>  Last seen online <ph name="RELATIVE_TIMESTAMP">%1$s<ex>yesterday</ex></ph>.
        </message>
        <message desc="Content description (used for accessibility) of a host icon representing an offline host."
                 name="IDS_HOST_ICON_OFFLINE_DESCRIPTION" formatter_data="android_java">
          Offline.
        </message>
      </if>
      <if expr="not is_android">
        <message desc="Short message being popped up whenever the user selects an account from a list displayed in the application." name="IDS_LOG_IN_ACCOUNT_DESCRIPTION" meaning="UI element">
          Signed in as <ph name="EMAIL_ADDRESS">$1<ex>test@gmail.com</ex></ph>.
        </message>
        <message desc="Modified version of the host name shown for hosts that are not currently accessible and for which no last-online status is available." name="IDS_OFFLINE">
          <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph> (offline)
        </message>
        <message desc="Modified version of the host name shown for hosts that are not currently accessible." name="IDS_LAST_ONLINE">
          <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph> (last online <ph name="DATE_OR_TIME">$2<ex>1/6/2013 or 11:23:32 AM</ex></ph>)
        </message>
      </if>
      <message desc="Error message indicating that the host is offline, because the host failed to initialize (i.e. failed to generate a host certificate, run out of memory early during startup, failed to set up inter-process communication, etc.)."
               name="IDS_OFFLINE_REASON_INITIALIZATION_FAILED" formatter_data="android_java">
        Host initialization failed.
      </message>
      <message desc="Error message indicating that the host is offline, because the host configuration is invalid."
               name="IDS_OFFLINE_REASON_INVALID_HOST_CONFIGURATION" formatter_data="android_java">
        Invalid host configuration.
      </message>
      <message desc="Error message indicating that the host is offline, because the host configuration specifies a host id that is not found in the Chrome Remote Desktop Directory service (possibly because the host entry was deleted by the user)."
               name="IDS_OFFLINE_REASON_INVALID_HOST_ID" formatter_data="android_java">
        Invalid host id.
      </message>
      <message desc="Error message indicating that the host is offline, because the host configuration specifies an OAuth credential that is rejected when the host tries to authenticate itself to Chrome Remote Desktop Directory service."
               name="IDS_OFFLINE_REASON_INVALID_OAUTH_CREDENTIALS" formatter_data="android_java">
        Host is configured with invalid OAuth credentials.
      </message>
      <message desc="Error message indicating that the host is offline, because the host is owned by a user from a domain different than the domain mandated by RemoteAccessHostDomainList policy."
               name="IDS_OFFLINE_REASON_INVALID_HOST_DOMAIN" formatter_data="android_java">
        Invalid host owner domain.
      </message>
      <message desc="Error message indicating that the host is offline, because RemoteAccessHostRequireCurtain policy requires curtain mode, which is not supported when 'launchd' runs an instance of the host at the console login screen on a Mac."
               name="IDS_OFFLINE_REASON_LOGIN_SCREEN_NOT_SUPPORTED" formatter_data="android_java">
        Host running at the console logic screen has shutdown to support curtain mode by switching to a host running in a user-specific session.
      </message>
      <message desc="Error message indicating that the host is offline, because the host policy was unreadable (unparseable, inaccessible, mistyped or malformed)."
               name="IDS_OFFLINE_REASON_POLICY_READ_ERROR" formatter_data="android_java">
        Host failed to read the policy.
      </message>
      <message desc="Error message indicating that the host is temporarily offline, because the host is restarting due to a policy change."
               name="IDS_OFFLINE_REASON_POLICY_CHANGE_REQUIRES_RESTART" formatter_data="android_java">
        Host is restarting, to take into account a policy change.
      </message>
      <message desc="Error message indicating that the host is offline, because another process has requested the host to shut down (via a SIGTERM signal)."
               name="IDS_OFFLINE_REASON_SUCCESS_EXIT" formatter_data="android_java">
        Host has shut down.
      </message>
      <message desc="Error message indicating that the host is offline, because RemoteAccessHostMatchUsername policy is enabled and there is a mismatch between the name of the local user (that the host is associated with) and the name of the Google account registered as the host owner (i.e. 'johndoe' if the host is owned by 'johndoe@example.com' Google account)"
               name="IDS_OFFLINE_REASON_USERNAME_MISMATCH" formatter_data="android_java">
        Invalid host owner.
      </message>
      <message desc="Error message indicating that the host is offline because the X server keeps dying."
               name="IDS_OFFLINE_REASON_X_SERVER_RETRIES_EXCEEDED" formatter_data="android_java">
        X server crashed or failed to start.
      </message>
      <message desc="Error message indicating that the host is offline because the session script keeps dying."
               name="IDS_OFFLINE_REASON_SESSION_RETRIES_EXCEEDED" formatter_data="android_java">
        Session crashed or failed to start. If ~/.chrome-remote-desktop-session exists on the remote computer, make sure it starts a long-running foreground process such as a desktop environment or window manager.
      </message>
      <message desc="Error message indicating that the host is offline because the host keeps dying."
               name="IDS_OFFLINE_REASON_HOST_RETRIES_EXCEEDED" formatter_data="android_java">
        Host crashed or failed to start.
      </message>
      <if expr="is_android">
        <message desc="Description of why host is offline, when client gets a host-offline-reason it doesn't recognize."
                 name="IDS_OFFLINE_REASON_UNKNOWN" formatter_data="android_java">
          Unrecognized host error: <ph name="HOST_OFFLINE_REASON">%1$s<ex>EXIT_CODE_FROM_HOST_NEWER_THAN_CLIENT</ex></ph>.
        </message>
      </if>
      <if expr="not is_android">
        <message desc="Description of why host is offline, when client gets a host-offline-reason it doesn't recognize."
                 name="IDS_OFFLINE_REASON_UNKNOWN">
          Unrecognized host error: <ph name="HOST_OFFLINE_REASON">$1<ex>EXIT_CODE_FROM_HOST_NEWER_THAN_CLIENT</ex></ph>.
        </message>
      </if>
      <message desc="Modified version of the host name shown for hosts that are running an out-of-date version of the Me2Me host software." name="IDS_UPDATE_REQUIRED">
        <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph> (out-of-date)
      </message>
      <message desc="Explanatory text displayed if the user tries to connect to a computer running out-of-date Me2Me host software." name="IDS_HOST_NEEDS_UPDATE_DETAIL">
        Software updates usually happen automatically, but can fail in some rare cases. Updating the software should take no more than a few minutes and can be done while connected to your computer remotely.
      </message>
      <message desc="In the connection history dialog, clicking this button shows only recent connections from this computer." name="IDS_OUTGOING_CONNECTIONS">
        From this computer
      </message>
      <message desc="Label for the PIN entry box." name="IDS_PIN">
        PIN
      </message>
      <message desc="Message displayed to the user asking them to enter a PIN for the host they are connecting to." name="IDS_PIN_MESSAGE">
        Please enter your PIN for <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph>.
      </message>
      <message desc="Message displayed to the user asking them to enter a PIN for the host they are connecting to." name="IDS_PIN_MESSAGE_ANDROID" formatter_data="android_java">
        Please enter your PIN for the remote computer.
      </message>
      <message desc="Error message displayed to the user if they enter different PINs in the boxes marked 'PIN' and 'retype PIN'." name="IDS_PINS_NOT_EQUAL">
        Please enter the same PIN in both boxes.
      </message>
      <message desc="Web-app description. Displayed in Chrome's extensions page. KEEP THIS TO 132 CHARACTERS OR LESS, as this is a hard limit imposed by Chrome Web Store." name="IDS_PRODUCT_DESCRIPTION">
        Access other computers or allow another user to access your computer securely over the Internet.
      </message>
      <message desc="Label for button to reconnect to the previous Me2Me host. This button appears on the 'session-finished' page." name="IDS_RECONNECT">
        Reconnect
      </message>
      <message desc="Button for enabling or disabling the 'resize-to-client' functionality, whereby the host desktop is resized to match the client size as closely as possible." name="IDS_RESIZE_TO_CLIENT">
        Resize desktop to fit
      </message>
      <message desc="Label for button to retry connecting to a Me2Me host, after failing to connect to that host. This button appears on the 'session-finished' page." name="IDS_RETRY">
        Retry
      </message>
      <message desc="Tool-bar button used to access the Full-screen and shrink-to-fit features ('screen' in this context refers to the fact that the options are related to how the remote screen is displayed)." name="IDS_SCREEN_OPTIONS">
        Screen options
      </message>
      <message desc="Label for the client-side menu button that sends a Ctrl-Alt-Del sequence to the host. Clicking this button behaves as if Ctrl, Alt and Del were pressed and then released at the host." name="IDS_SEND_CTRL_ALT_DEL" formatter_data="android_java">
        Send Ctrl-Alt-Del
      </message>
      <message desc="Tool-bar button used to access buttons for pressing and releasing keys or sequences of keys that might not otherwise be available. For example, Ctrl-Alt-Del, which if pressed at a client would take effect there, rather than being sent to the host as the user expected." name="IDS_SEND_KEYS">
        Send keys
      </message>
      <message desc="Label for the client-side menu button that sends a PrtScn key press to the host. The 'PrtScn' abbreviation (as typically printed on the keycap on English keyboards) is preferred over 'Print Screen', to make it clearer that this refers to the physical PrtScn key, and not the OS-specific keyboard shortcut for the screen capture functionality." name="IDS_SEND_PRINT_SCREEN">
        Send PrtScn
      </message>
      <message desc="Label for the client-side menu button that toggles whether or not the right-hand Ctrl key is used to send the Windows/Command key." name="IDS_MAP_RIGHT_CTRL_TO_META">
        Use right Ctrl for Win key (⌘ on Mac)
      </message>
      <message desc="Menu option for enabling shrink-to-fit. When clicked, the remote desktop will be scaled down so that it fits in the browser window." name="IDS_SHRINK_TO_FIT">
        Shrink to fit
      </message>
      <message desc="Sign in button, visible if the user's authentication token is corrupt, in which case the user has to sign in (authenticate) to the app again." name="IDS_SIGN_IN_BUTTON">
        Sign in
      </message>
      <message desc="Sign out button, visible if the user has authenticated. Clicking this clears authentication credentials and returns the web-app to the initial 'unauthenticated' state." name="IDS_SIGN_OUT_BUTTON">
        Sign out
      </message>
      <message desc="Label for the 'stop sharing' button on the host-side. Clicking this button disconnects the client." name="IDS_STOP_SHARING_BUTTON">
        Stop Sharing
      </message>
      <message desc="Column header in the connection history table showing the time and date of a connection." name="IDS_TIME_HEADER">
        Time
      </message>
      <message desc="The tool-tip shown when the user hovers over an on-line host. Clicking the host will initiate a connection to it." name="IDS_TOOLTIP_CONNECT">
        Connect to <ph name="HOSTNAME">$1<ex>My Linux desktop</ex></ph>
      </message>
      <message desc="The tool-tip shown when the user hovers over the 'delete host' button. Clicking this button removes the host from the list and disables connections to it." name="IDS_TOOLTIP_DELETE">
        Disable remote connections to this computer
      </message>
      <message desc="The tool-tip shown when the user hovers over the 'refresh host list' button. Clicking this button reloads the host list without reloading the app." name="IDS_TOOLTIP_REFRESH" formatter_data="android_java">
        Refresh the list of hosts
      </message>
      <message desc="The tool-tip shown when the user hovers over the 'rename host' button. Clicking this button allows the host name to be edited in-place." name="IDS_TOOLTIP_RENAME">
        Edit computer name
      </message>
      <message desc="Message displayed at the bottom of the host screen if local policy dictates that NAT traversal is disabled, meaning that connections outside the local network will not work." name="IDS_WARNING_NAT_DISABLED">
        NOTE: Policy settings permit connections only between computers within your network.
      </message>
      <message desc="Link to learn more detailed information on a topic." name="IDS_LEARN_HOW">
        Learn how.
      </message>
      <message desc="Help link displayed when the user enables the host on this computer. Clicking this link opens a page that explains why this operation is safe. This string appears in a UI with limited horizontal space. Please try to keep translations no more than about 30 characters." name="IDS_WHY_IS_THIS_SAFE">
        Why is this safe?
      </message>
      <message desc="Check-box displayed when the user enters their PIN to connect to a host allowing them to 'pair' the client and host, avoiding the need to enter the PIN each time." name="IDS_REMEMBER_PIN" formatter_data="android_java">
        Don't ask for a PIN again when connecting to this host from this device.
      </message>
      <message name="IDS_REMOTING_CORE_DESCRIPTION" desc="The file description specified in the version information of remoting_core.dll.">
        Core Library
      </message>
      <message name="IDS_REMOTING_DESKTOP_DESCRIPTION" desc="The file description specified in the version information of remoting_desktop.exe.">
        Desktop Integration Process
      </message>
      <message name="IDS_REMOTING_HOST_DESCRIPTION" desc="The file description specified in the version information of remoting_host.exe.">
        Host Process
      </message>
      <message name="IDS_REMOTING_NATIVE_MESSAGING_HOST_DESCRIPTION" desc="The file description specified in the version information of remoting_native_messaging_host.exe.">
        Native messaging host for remoting host management
      </message>
      <message name="IDS_REMOTING_REMOTE_ASSISTANCE_HOST_DESCRIPTION" desc="The file description specified in the version information of remote_assistance_host.exe.">
        Native messaging host for remote assistance
      </message>
      <message name="IDS_REMOTING_REMOTE_SECURITY_KEY_DESCRIPTION" desc="The file description specified in the version information of remote_security_key.exe.">
        Security Key Remoting Process
      </message>
      <message name="IDS_REMOTING_HOST_COMMAND_DESCRIPTION" desc="The file description specified in the version information of remoting_host_command.exe. The Chrome Remote Desktop host allows a user to connect to their computer remotely (it 'hosts' a connection from a remote computer).">
        Application to issue commands to Chrome remote desktop host.
      </message>
      <message name="IDS_REMOTING_START_HOST_DESCRIPTION" desc="The file description specified in the version information of remoting_start_host.exe.">
        Host Provisioning Utility
      </message>
      <message name="IDS_VERIFY_PIN_DIALOG_EMAIL_LABEL" desc="The message displayed by the PIN verification dialog.">
        Account
      </message>
      <message name="IDS_HOST_CATEGORY" desc="Name of the message category assigned to all messages written to the EventLog by Chromoting Host.">
        Host
      </message>
      <message name="IDS_HOST_CLIENT_CONNECTED" desc="The message reported to the EventLog by Chromoting Host every time a client connects.">
        Client connected: <ph name="CLIENT_USERNAME">%1<ex>client@email.com</ex></ph>.
      </message>
      <message name="IDS_HOST_CLIENT_DISCONNECTED" desc="The message reported to the EventLog by Chromoting Host every time a client disconnects.">
        Client disconnected: <ph name="CLIENT_USERNAME">%1<ex>client@email.com</ex></ph>.
      </message>
      <message name="IDS_HOST_CLIENT_ACCESS_DENIED" desc="The message reported to the EventLog by Chromoting Host every time the host denies access to a client.">
        Access denied for client: <ph name="CLIENT_USERNAME">%1<ex>client@email.com</ex></ph>.
      </message>
      <message name="IDS_HOST_CLIENT_ROUTING_CHANGED" desc="The message reported to the EventLog by Chromoting Host every time a channel (a logical connection) between the client and the host is established. Multiple channels can be multiplexed over the same underlying protocol connection. The IP addresses and connection type of the underlying connection are reported. The channel and connection types are reported as opaque strings which should not be translated.">
        Channel IP for client: <ph name="CLIENT_GAIA_IDENTIFIER">%1<ex>client@email.com/TalkGadgetABCDABCD</ex></ph> ip='<ph name="CLIENT_IP_ADDRESS_AND_PORT">%2<ex>127.0.0.1:1000</ex></ph>' host_ip='<ph name="HOST_IP_ADDRESS_AND_PORT">%3<ex>127.0.0.1:2000</ex></ph>' channel='<ph name="CHANNEL_TYPE">%4<ex>mux</ex></ph>' connection='<ph name="CONNECTION_TYPE">%5<ex>direct</ex></ph>'.
      </message>
      <message name="IDS_HOST_STARTED" desc="The message reported to the EventLog by Chromoting Host every time it is started.">
        Host started for user: <ph name="HOST_USERNAME">%1<ex>host@email.com</ex></ph>.
      </message>
      <message name="IDS_HOST_STOPPED" desc="The message reported to the EventLog by Chromoting Host every time it is stopped.">
        Host stopped.
      </message>
      <message desc="Link to allow a host's paired clients to be viewed or edited." name="IDS_HOME_DAEMON_MANAGE_PAIRINGS">
        View/edit
      </message>
      <message desc="This text is used on a button or context-menu or similar control. When chosen or pressed, it deletes a selected item from a list." meaning="Delete an item from a list." name="IDS_DELETE_LIST_ITEM" formatter_data="android_java">
        Delete
      </message>
      <message desc="Link to delete a specific paired client." name="IDS_DELETE_PAIRED_CLIENT">
        Delete
      </message>
      <message desc="Link to delete all paired clients." name="IDS_DELETE_ALL_PAIRED_CLIENTS">
        Delete all
      </message>
      <message desc="Message displayed in the paired client manager dialog when all paired clients have been deleted." name="IDS_NO_PAIRED_CLIENTS">
        All paired clients have been deleted.
      </message>
      <message desc="Message displayed when the current computer has been paired with one or more clients, allowing them to connect without needing a PIN." name="IDS_HOME_DAEMON_PAIRED_MESSAGE">
        This computer is configured to allow one or more clients to connect without entering a PIN.
      </message>
      <message desc="Message displayed above the list of paired clients, explaining its purpose." name="IDS_PAIRED_CLIENTS_INTRODUCTION">
        The following clients have been paired with this computer and can connect without supplying a PIN. You can revoke this permission at any time, either individually, or for all clients.
      </message>
      <message desc="Table header for the dates at which clients were paired." name="IDS_PAIRED_CLIENT_DATE">
        Pairing date
      </message>
      <message desc="Table header for the names of paired clients." name="IDS_PAIRED_CLIENT_NAME">
        Client
      </message>
      <message desc="Text shown while a background operation is in progress." name="IDS_WORKING">
        Working…
      </message>
      <message desc="Menu option to toggle the visibility of connection statistics." name="IDS_TOGGLE_STATS">
        Show statistics
      </message>
      <message desc="Menu option to open a new window." name="IDS_NEW_WINDOW">
        New window…
      </message>
      <message desc="Label for the Feedback button displayed in the Android Help screen. Pressing this button causes the Feedback screen to be shown." name="IDS_ACTIONBAR_FEEDBACK" formatter_data="android_java">
        Feedback
      </message>
      <message desc="Label for the menu button displayed on the Android toolbar. Pressing this button will open a drawer with a list of menu options." name="IDS_ACTIONBAR_MENU" formatter_data="android_java">
        Menu
      </message>
      <message desc="Label for button to accept remote assistance.  This button appears in the Hangouts confirm dialog." name="IDS_HANGOUTS_CONFIRM_DIALOG_ACCEPT" >
        Accept
      </message>
      <message desc="Label for button to decline remote assistance.  This button appears in the Hangouts confirm dialog." name="IDS_HANGOUTS_CONFIRM_DIALOG_DECLINE" >
        Decline
      </message>
      <message desc="Message displayed before sharing computer in 'It2Me' mode." name="IDS_SHARE_CONFIRM_DIALOG_MESSAGE" >
        Would you like to share this computer for another user to see and control?
      </message>
      <message desc="Message displayed before sharing computer in 'It2Me' mode when the email of the remote user attempting to connect is known." name="IDS_SHARE_CONFIRM_DIALOG_MESSAGE_WITH_USERNAME" >
        Would you like to allow <ph name="CLIENT_USERNAME">{0}<ex>client@email.com</ex></ph> to see and control your computer?
      </message>
      <message desc="Label for the button to accept sharing the computer in 'It2Me' mode." meaning="Accept share request." name="IDS_SHARE_CONFIRM_DIALOG_CONFIRM" >
        Share
      </message>
      <message desc="Label for the button to decline sharing the computer in 'It2Me' mode." name="IDS_SHARE_CONFIRM_DIALOG_DECLINE" >
        Cancel
      </message>
      <message desc="Text shown in tooltip to inform the user that a setting is managed by domain policy." name="IDS_SETTING_MANAGED_BY_POLICY">
        This setting is managed by your domain policy.
      </message>
      <message desc="Platform-specific text indicating that a component is for the Windows OS." name="IDS_FOR_PLATFORM_WINDOWS">
        For Windows 7 and above
      </message>
      <message desc="Platform-specific text indicating that a component is for the Mac OS." name="IDS_FOR_PLATFORM_MAC">
        For Mac (OS X Mavericks 10.9 and above)
      </message>
      <message desc="Text for the button the user clicks to indicate that they agree to the terms of service and want to proceed with downloading the installer." name="IDS_ACCEPT_AND_INSTALL">
        Accept and Install
      </message>
      <message  name="IDS_WEBSITE_INVITE_BETA" desc="Invitation to early adopters to try the new version">
        Get a sneak peek at the new <ph name="LINK_BEGIN">$1<ex>&lt;a href=http://example.com&gt;</ex></ph>Chrome Remote Desktop web app<ph name="LINK_END">$2<ex>&lt;/a&gt;</ex></ph>. We'd love to hear your feedback.
      </message>
      <message  name="IDS_WEBSITE_INVITE_STABLE" desc="Invitation to all users to try the new version">
        Chrome Remote Desktop is now on the web! Check out our <ph name="LINK_BEGIN">$1<ex>&lt;a href=http://example.com&gt;</ex></ph>free web app<ph name="LINK_END">$2<ex>&lt;/a&gt;</ex></ph>.
      </message>
      <message  name="IDS_WEBSITE_INVITE_DEPRECATION_1" desc="Invitation to all users to try the new version">
        Chrome Remote Desktop is moving to a new home on the web. Try our <ph name="LINK_BEGIN">$1<ex>&lt;a href=http://example.com&gt;</ex></ph>web app<ph name="LINK_END">$2<ex>&lt;/a&gt;</ex></ph>—it's fast and free, with all the same features as before.
      </message>
      <message  name="IDS_WEBSITE_INVITE_DEPRECATION_2" desc="Requirement all users to try the new version">
        This app is no longer supported. To ensure you're getting the latest features and security updates, please use the <ph name="LINK_BEGIN">$1<ex>&lt;a href=http://example.com&gt;</ex></ph>Chrome Remote Desktop web app<ph name="LINK_END">$2<ex>&lt;/a&gt;</ex></ph>.
      </message>
      <if expr="is_macosx">
        <message name="IDS_HOST_AUTHENTICATION_PROMPT" desc="The prompt to be displayed in the authentication dialog when making changes to the system.  The system will add a sentence asking for an administrator's name and password.  Mac-only.">
          <ph name="PRODUCT_NAME">$1<ex>Chrome Remote Desktop</ex></ph> wants to make changes.
        </message>
      </if>
    </messages>
  </release>
</grit>
