<?xml version="1.0" encoding="utf-8"?>
<grit-part>

   <!-- Translate Info Bar -->
  <message name="IDS_TRANSLATE_INFOBAR_OPTIONS" desc="Text to show for the translate infobar options menu button">
    Options
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_LANG" desc="Text for the menu item to never translate the specified language">
    Never translate <ph name="language">$1<ex>French</ex></ph>
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_SITE" desc="Text for the menu item to never translate the current site">
    Never translate this site
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_OPTIONS_ALWAYS" desc="Text for the menu item to always translate from one language to another">
    Always translate <ph name="original_language">$1<ex>French</ex></ph> to <ph name="target_language">$2<ex>German</ex></ph>
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_OPTIONS_REPORT_ERROR" desc="Text for the menu item for reporting the page's language was not correctly detected">
    Not in <ph name="original_language">$1<ex>French</ex></ph>? Report this error
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_OPTIONS_ABOUT" desc="Text for the menu item for information about Google Translate">
    About Google Translate
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_BEFORE_MESSAGE" desc="Message that page is in specified language and ask if should translate">
    This page is in<ph name="original_language">$1<ex>French</ex></ph>Would you like to translate it?
  </message>
  <if expr="is_ios">
    <message name="IDS_TRANSLATE_INFOBAR_BEFORE_MESSAGE_IOS" desc="Text to display on the translate infobar to offer a translate. [Length: 200em] [iOS only]">
      This page is in <ph name="SOURCE_LANGUAGE">$1<ex>English</ex></ph>. Translate it to <ph name="TARGET_LANGUAGE">$2<ex>French</ex></ph>?
    </message>
  </if>
  <if expr="is_android">
    <message name="IDS_TRANSLATE_INFOBAR_BEFORE_MESSAGE_MOBILE" desc="Mobile: Message that page is in specified language and ask if should translate.">
      Translate from <ph name="original_language">$1<ex>French</ex></ph> to <ph name="target_language">$2<ex>English</ex></ph>?
    </message>
  </if>
  <message name="IDS_TRANSLATE_INFOBAR_ACCEPT" desc="Text to show for the translate infobar button to accept translation.">
    Translate
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_DENY" desc="Text to show for the translate infobar button to deny translation.">
    Nope
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_NEVER_TRANSLATE" desc="Button label shown to never translate a specific language in the translate infobar">
    Never translate <ph name="language">$1<ex>French</ex></ph>
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_ALWAYS_TRANSLATE" desc="Button label shown to always translate a specific language in the translate infobar">
    Always translate <ph name="language">$1<ex>English</ex></ph>
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_TRANSLATING_TO" desc="Text shown when page is currently being translated by servers">
    Translating page to <ph name="language">$1<ex>English</ex></ph>...
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_AFTER_MESSAGE" desc="Message that page has been translated from one language to another">
    This page has been translated from<ph name="original_language">$1<ex>French</ex></ph>to<ph name="language_language">$2<ex>German</ex></ph>
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_AFTER_MESSAGE_AUTODETERMINED_SOURCE_LANGUAGE" desc="Message that page has been translated to another with server side auto language detection">
    This page has been translated to <ph name="target_language">$1<ex>German</ex></ph>
  </message>
  <if expr="is_android">
  <message name="IDS_TRANSLATE_INFOBAR_AFTER_MESSAGE_MOBILE" desc="Mobile: Message that page has been translated from one language to another">
    This page has been translated to <ph name="target_language">$1<ex>German</ex></ph>
  </message>
  </if>
  <message name="IDS_TRANSLATE_INFOBAR_REVERT" desc="Text to show for translate infobar to revert translation of translated page">
    Show original
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_RETRY" desc="Text to show for translate infobar to retry translation of page">
    Try again
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_ERROR_CANT_CONNECT" desc="Error message to show for translate infobar when unable to connec to translate server">
    The translation failed because of a problem with the network connection.
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_ERROR_CANT_TRANSLATE" desc="Error message to show for translate infobar when translate server is unable to translate page">
    The translation failed because of a server error.
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_UNKNOWN_PAGE_LANGUAGE" desc="Error message to show for translate infobar when the page language could not be determined.">
    The translation failed because the page's language could not be determined.
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_ERROR_SAME_LANGUAGE" desc="Error message to show for translate infobar when the original and target languages are identical">
    The translation failed because the page is already in <ph name="language">$1<ex>English</ex></ph>.
  </message>
  <message name="IDS_TRANSLATE_INFOBAR_UNSUPPORTED_PAGE_LANGUAGE" desc="Error message shown when the translate server translated the page and returned the page was in a language the browser does not know.">
    This page has been translated from an unknown language to <ph name="language_language">$1<ex>English</ex></ph>
  </message>
  <if expr="is_android">
  <message name="IDS_TRANSLATE_INFOBAR_ERROR_MOBILE" desc="Mobile: Translate Error message">
    The translation to <ph name="target_language">$1<ex>German</ex></ph> failed.
  </message>
  </if>

</grit-part>
