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

<!-- This file contains definitions of resources that will be translated for
each locale. Specifically, these are UI strings that are used by webkit that
need to be translated for each locale.-->

<!-- Some of these strings and string descriptions were taken from
WebKit/win/WebCoreLocalizedStrings.cpp so we include the original license
below:

/*
 * Copyright (C) 2007 Apple Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 */
-->

<grit base_dir="." latest_public_release="0" current_release="1"
      source_lang_id="en" enc_check="möl">
  <outputs>
    <!-- TODO add each of your output files.  Modify the three below, and add
    your own for your various languages.  See the user's guide
    (http://wiki/Main/GritUsersGuide) for more details.
    Note that all output references are relative to the output directory
    which is specified at build time. -->
    <output filename="grit/webkit_strings.h" type="rc_header">
      <emit emit_type='prepend'></emit>
    </output>
    <output filename="webkit_strings_am.rc" type="rc_all" lang="am" />
    <output filename="webkit_strings_ar.rc" type="rc_all" lang="ar" />
    <output filename="webkit_strings_bg.rc" type="rc_all" lang="bg" />
    <output filename="webkit_strings_bn.rc" type="rc_all" lang="bn" />
    <output filename="webkit_strings_ca.rc" type="rc_all" lang="ca" />
    <output filename="webkit_strings_cs.rc" type="rc_all" lang="cs" />
    <output filename="webkit_strings_da.rc" type="rc_all" lang="da" />
    <output filename="webkit_strings_de.rc" type="rc_all" lang="de" />
    <output filename="webkit_strings_el.rc" type="rc_all" lang="el" />
    <output filename="webkit_strings_en-GB.rc" type="rc_all" lang="en-GB" />
    <output filename="webkit_strings_en-US.rc" type="rc_all" lang="en" />
    <output filename="webkit_strings_es.rc" type="rc_all" lang="es" />
    <output filename="webkit_strings_es-419.rc" type="rc_all" lang="es-419" />
    <output filename="webkit_strings_et.rc" type="rc_all" lang="et" />
    <output filename="webkit_strings_fa.rc" type="rc_all" lang="fa" />
    <output filename="webkit_strings_fi.rc" type="rc_all" lang="fi" />
    <output filename="webkit_strings_fil.rc" type="rc_all" lang="fil" />
    <output filename="webkit_strings_fr.rc" type="rc_all" lang="fr" />
    <output filename="webkit_strings_gu.rc" type="rc_all" lang="gu" />
    <output filename="webkit_strings_he.rc" type="rc_all" lang="he" />
    <output filename="webkit_strings_hi.rc" type="rc_all" lang="hi" />
    <output filename="webkit_strings_hr.rc" type="rc_all" lang="hr" />
    <output filename="webkit_strings_hu.rc" type="rc_all" lang="hu" />
    <output filename="webkit_strings_id.rc" type="rc_all" lang="id" />
    <output filename="webkit_strings_it.rc" type="rc_all" lang="it" />
    <output filename="webkit_strings_ja.rc" type="rc_all" lang="ja" />
    <output filename="webkit_strings_kn.rc" type="rc_all" lang="kn" />
    <output filename="webkit_strings_ko.rc" type="rc_all" lang="ko" />
    <output filename="webkit_strings_lt.rc" type="rc_all" lang="lt" />
    <output filename="webkit_strings_lv.rc" type="rc_all" lang="lv" />
    <output filename="webkit_strings_ml.rc" type="rc_all" lang="ml" />
    <output filename="webkit_strings_mr.rc" type="rc_all" lang="mr" />
    <output filename="webkit_strings_nl.rc" type="rc_all" lang="nl" />
    <!-- The translation console uses 'no' for Norwegian Bokmål. It should
         be 'nb'. -->
    <output filename="webkit_strings_nb.rc" type="rc_all" lang="no" />
    <output filename="webkit_strings_pl.rc" type="rc_all" lang="pl" />
    <output filename="webkit_strings_pt-BR.rc" type="rc_all" lang="pt-BR" />
    <output filename="webkit_strings_pt-PT.rc" type="rc_all" lang="pt-PT" />
    <output filename="webkit_strings_ro.rc" type="rc_all" lang="ro" />
    <output filename="webkit_strings_ru.rc" type="rc_all" lang="ru" />
    <output filename="webkit_strings_sk.rc" type="rc_all" lang="sk" />
    <output filename="webkit_strings_sl.rc" type="rc_all" lang="sl" />
    <output filename="webkit_strings_sr.rc" type="rc_all" lang="sr" />
    <output filename="webkit_strings_sv.rc" type="rc_all" lang="sv" />
    <output filename="webkit_strings_sw.rc" type="rc_all" lang="sw" />
    <output filename="webkit_strings_ta.rc" type="rc_all" lang="ta" />
    <output filename="webkit_strings_te.rc" type="rc_all" lang="te" />
    <output filename="webkit_strings_th.rc" type="rc_all" lang="th" />
    <output filename="webkit_strings_tr.rc" type="rc_all" lang="tr" />
    <output filename="webkit_strings_uk.rc" type="rc_all" lang="uk" />
    <output filename="webkit_strings_vi.rc" type="rc_all" lang="vi" />
    <output filename="webkit_strings_zh-CN.rc" type="rc_all" lang="zh-CN" />
    <output filename="webkit_strings_zh-TW.rc" type="rc_all" lang="zh-TW" />

    <output filename="webkit_strings_am.pak" type="data_package" lang="am" />
    <output filename="webkit_strings_ar.pak" type="data_package" lang="ar" />
    <if expr="pp_ifdef('use_third_party_translations')">
      <output filename="webkit_strings_ast.pak" type="data_package" lang="ast" />
    </if>
    <output filename="webkit_strings_bg.pak" type="data_package" lang="bg" />
    <output filename="webkit_strings_bn.pak" type="data_package" lang="bn" />
    <output filename="webkit_strings_ca.pak" type="data_package" lang="ca" />
    <output filename="webkit_strings_cs.pak" type="data_package" lang="cs" />
    <output filename="webkit_strings_da.pak" type="data_package" lang="da" />
    <output filename="webkit_strings_de.pak" type="data_package" lang="de" />
    <output filename="webkit_strings_el.pak" type="data_package" lang="el" />
    <output filename="webkit_strings_en-GB.pak" type="data_package" lang="en-GB" />
    <output filename="webkit_strings_en-US.pak" type="data_package" lang="en" />
    <output filename="webkit_strings_es.pak" type="data_package" lang="es" />
    <output filename="webkit_strings_es-419.pak" type="data_package" lang="es-419" />
    <output filename="webkit_strings_et.pak" type="data_package" lang="et" />
    <if expr="pp_ifdef('use_third_party_translations')">
      <output filename="webkit_strings_eu.pak" type="data_package" lang="eu" />
    </if>
    <output filename="webkit_strings_fa.pak" type="data_package" lang="fa" />
    <output filename="webkit_strings_fi.pak" type="data_package" lang="fi" />
    <output filename="webkit_strings_fil.pak" type="data_package" lang="fil" />
    <output filename="webkit_strings_fr.pak" type="data_package" lang="fr" />
    <if expr="pp_ifdef('use_third_party_translations')">
      <output filename="webkit_strings_gl.pak" type="data_package" lang="gl" />
    </if>
    <output filename="webkit_strings_gu.pak" type="data_package" lang="gu" />
    <output filename="webkit_strings_he.pak" type="data_package" lang="he" />
    <output filename="webkit_strings_hi.pak" type="data_package" lang="hi" />
    <output filename="webkit_strings_hr.pak" type="data_package" lang="hr" />
    <output filename="webkit_strings_hu.pak" type="data_package" lang="hu" />
    <output filename="webkit_strings_id.pak" type="data_package" lang="id" />
    <output filename="webkit_strings_it.pak" type="data_package" lang="it" />
    <output filename="webkit_strings_ja.pak" type="data_package" lang="ja" />
    <if expr="pp_ifdef('use_third_party_translations')">
      <output filename="webkit_strings_ka.pak" type="data_package" lang="ka" />
    </if>
    <output filename="webkit_strings_kn.pak" type="data_package" lang="kn" />
    <output filename="webkit_strings_ko.pak" type="data_package" lang="ko" />
    <if expr="pp_ifdef('use_third_party_translations')">
      <output filename="webkit_strings_ku.pak" type="data_package" lang="ku" />
    </if>
    <output filename="webkit_strings_lt.pak" type="data_package" lang="lt" />
    <output filename="webkit_strings_lv.pak" type="data_package" lang="lv" />
    <output filename="webkit_strings_ml.pak" type="data_package" lang="ml" />
    <output filename="webkit_strings_mr.pak" type="data_package" lang="mr" />
    <output filename="webkit_strings_nl.pak" type="data_package" lang="nl" />
    <!-- The translation console uses 'no' for Norwegian Bokmål. It should
         be 'nb'. -->
    <output filename="webkit_strings_nb.pak" type="data_package" lang="no" />
    <output filename="webkit_strings_pl.pak" type="data_package" lang="pl" />
    <output filename="webkit_strings_pt-BR.pak" type="data_package" lang="pt-BR" />
    <output filename="webkit_strings_pt-PT.pak" type="data_package" lang="pt-PT" />
    <output filename="webkit_strings_ro.pak" type="data_package" lang="ro" />
    <output filename="webkit_strings_ru.pak" type="data_package" lang="ru" />
    <output filename="webkit_strings_sk.pak" type="data_package" lang="sk" />
    <output filename="webkit_strings_sl.pak" type="data_package" lang="sl" />
    <output filename="webkit_strings_sr.pak" type="data_package" lang="sr" />
    <output filename="webkit_strings_sv.pak" type="data_package" lang="sv" />
    <output filename="webkit_strings_sw.pak" type="data_package" lang="sw" />
    <output filename="webkit_strings_ta.pak" type="data_package" lang="ta" />
    <output filename="webkit_strings_te.pak" type="data_package" lang="te" />
    <output filename="webkit_strings_th.pak" type="data_package" lang="th" />
    <output filename="webkit_strings_tr.pak" type="data_package" lang="tr" />
    <if expr="pp_ifdef('use_third_party_translations')">
      <output filename="webkit_strings_ug.pak" type="data_package" lang="ug" />
    </if>
    <output filename="webkit_strings_uk.pak" type="data_package" lang="uk" />
    <output filename="webkit_strings_vi.pak" type="data_package" lang="vi" />
    <output filename="webkit_strings_zh-CN.pak" type="data_package" lang="zh-CN" />
    <output filename="webkit_strings_zh-TW.pak" type="data_package" lang="zh-TW" />
  </outputs>
  <translations>
    <file path="resources/webkit_strings_am.xtb" lang="am" />
    <file path="resources/webkit_strings_ar.xtb" lang="ar" />
    <file path="../../third_party/launchpad_translations/webkit_strings_ast.xtb" lang="ast" />
    <file path="resources/webkit_strings_bg.xtb" lang="bg" />
    <file path="resources/webkit_strings_bn.xtb" lang="bn" />
    <file path="resources/webkit_strings_ca.xtb" lang="ca" />
    <file path="resources/webkit_strings_cs.xtb" lang="cs" />
    <file path="resources/webkit_strings_da.xtb" lang="da" />
    <file path="resources/webkit_strings_de.xtb" lang="de" />
    <file path="resources/webkit_strings_el.xtb" lang="el" />
    <file path="resources/webkit_strings_en-GB.xtb" lang="en-GB" />
    <file path="resources/webkit_strings_es.xtb" lang="es" />
    <file path="resources/webkit_strings_es-419.xtb" lang="es-419" />
    <file path="resources/webkit_strings_et.xtb" lang="et" />
    <file path="../../third_party/launchpad_translations/webkit_strings_eu.xtb" lang="eu" />
    <file path="resources/webkit_strings_fa.xtb" lang="fa" />
    <file path="resources/webkit_strings_fi.xtb" lang="fi" />
    <file path="resources/webkit_strings_fil.xtb" lang="fil" />
    <file path="resources/webkit_strings_fr.xtb" lang="fr" />
    <file path="../../third_party/launchpad_translations/webkit_strings_gl.xtb" lang="gl" />
    <file path="resources/webkit_strings_gu.xtb" lang="gu" />
    <file path="resources/webkit_strings_hi.xtb" lang="hi" />
    <file path="resources/webkit_strings_hr.xtb" lang="hr" />
    <file path="resources/webkit_strings_hu.xtb" lang="hu" />
    <file path="resources/webkit_strings_id.xtb" lang="id" />
    <file path="resources/webkit_strings_it.xtb" lang="it" />
    <!-- The translation console uses 'iw' for Hebrew, but we use 'he'. -->
    <file path="resources/webkit_strings_iw.xtb" lang="he" />
    <file path="resources/webkit_strings_ja.xtb" lang="ja" />
    <file path="../../third_party/launchpad_translations/webkit_strings_ka.xtb" lang="ka" />
    <file path="resources/webkit_strings_kn.xtb" lang="kn" />
    <file path="resources/webkit_strings_ko.xtb" lang="ko" />
    <file path="../../third_party/launchpad_translations/webkit_strings_ku.xtb" lang="ku" />
    <file path="resources/webkit_strings_lt.xtb" lang="lt" />
    <file path="resources/webkit_strings_lv.xtb" lang="lv" />
    <file path="resources/webkit_strings_ml.xtb" lang="ml" />
    <file path="resources/webkit_strings_mr.xtb" lang="mr" />
    <file path="resources/webkit_strings_nl.xtb" lang="nl" />
    <file path="resources/webkit_strings_no.xtb" lang="no" />
    <file path="resources/webkit_strings_pl.xtb" lang="pl" />
    <file path="resources/webkit_strings_pt-BR.xtb" lang="pt-BR" />
    <file path="resources/webkit_strings_pt-PT.xtb" lang="pt-PT" />
    <file path="resources/webkit_strings_ro.xtb" lang="ro" />
    <file path="resources/webkit_strings_ru.xtb" lang="ru" />
    <file path="resources/webkit_strings_sk.xtb" lang="sk" />
    <file path="resources/webkit_strings_sl.xtb" lang="sl" />
    <file path="resources/webkit_strings_sr.xtb" lang="sr" />
    <file path="resources/webkit_strings_sv.xtb" lang="sv" />
    <file path="resources/webkit_strings_sw.xtb" lang="sw" />
    <file path="resources/webkit_strings_ta.xtb" lang="ta" />
    <file path="resources/webkit_strings_te.xtb" lang="te" />
    <file path="resources/webkit_strings_th.xtb" lang="th" />
    <file path="resources/webkit_strings_tr.xtb" lang="tr" />
    <file path="../../third_party/launchpad_translations/webkit_strings_ug.xtb" lang="ug" />
    <file path="resources/webkit_strings_uk.xtb" lang="uk" />
    <file path="resources/webkit_strings_vi.xtb" lang="vi" />
    <file path="resources/webkit_strings_zh-CN.xtb" lang="zh-CN" />
    <file path="resources/webkit_strings_zh-TW.xtb" lang="zh-TW" />
  </translations>
  <release seq="1" allow_pseudo="false">
    <messages fallback_to_english="true">
      <!-- TODO add all of your "string table" messages here.  Remember to
      change nontranslateable parts of the messages into placeholders (using the
      <ph> element).  You can also use the 'grit add' tool to help you identify
      nontranslateable parts and create placeholders for them. -->

      <message name="IDS_SEARCHABLE_INDEX_INTRO" desc="Text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'.">
        This is a searchable index. Enter search keywords: '''
      </message>
      <message name="IDS_FORM_SUBMIT_LABEL" desc="Default label for Submit buttons in forms on web pages.">
        Submit
      </message>
      <message name="IDS_FORM_INPUT_ALT" desc="alt text for &lt;input&gt; elements with no alt, title, or value">
        Submit
      </message>
      <message name="IDS_FORM_RESET_LABEL" desc="default label for Reset buttons in forms on web pages">
        Reset
      </message>
      <message name="IDS_FORM_FILE_BUTTON_LABEL" desc="title for file button used in HTML forms">
        Choose File
      </message>
      <message name="IDS_FORM_FILE_NO_FILE_LABEL" desc="text to display in file button used in HTML forms when no file is selected">
        No file chosen
      </message>
      <message name="IDS_FORM_FILE_NO_FILE_DRAG_LABEL" desc="text to display in file button used in HTML forms when no file is selected to indicate that files can be dragged onto the file button">
        Drag file here
      </message>
      <message name="IDS_FORM_FILE_MULTIPLE_UPLOAD" desc="text to display next to file buttons in HTML forms when 2 or more files are selected for uploading. This is not used for a case that just 1 file is selected.">
        <ph name="NUMBER_OF_FILES">$1<ex>3</ex></ph> files
      </message>

      <message name="IDS_RECENT_SEARCHES_NONE" desc="Label for only item in menu that appears when clicking on the search field image, when no searches have been performed">
        No recent searches
      </message>
      <message name="IDS_RECENT_SEARCHES" desc="label for first item in the menu that appears when clicking on the search field image, used as embedded menu title">
        Recent Searches
      </message>
      <message name="IDS_RECENT_SEARCHES_CLEAR" desc="menu item in Recent Searches menu that empties menu's contents">
        Clear Recent Searches
      </message>

      <message name="IDS_IMAGE_TITLE_FOR_FILENAME" desc="window title for a standalone image (uses mutiplication symbol, not x)">
        <ph name="FILENAME">%s<ex>My Cool Image.gif</ex></ph><ph name="WIDTH">%d<ex>400</ex></ph>×<ph name="HEIGHT">%d<ex>600</ex></ph>
      </message>

      <message name="IDS_AX_ROLE_WEB_AREA" desc="accessibility role description for web area">
        HTML content
      </message>
      <message name="IDS_AX_ROLE_LINK" desc="accessibility role description for link">
        link
      </message>
      <message name="IDS_AX_ROLE_LIST_MARKER" desc="accessibility role description for list marker">
        list marker
      </message>
      <message name="IDS_AX_ROLE_IMAGE_MAP" desc="accessibility role description for image map">
        image map
      </message>
      <message name="IDS_AX_ROLE_HEADING" desc="accessibility role description for headings">
        heading
      </message>

      <message name="IDS_AX_BUTTON_ACTION_VERB" desc="Verb stating the action that will occur when a button is pressed, as used by accessibility.">
        press
      </message>
      <message name="IDS_AX_RADIO_BUTTON_ACTION_VERB" desc="Verb stating the action that will occur when a radio button is clicked, as used by accessibility.">
        select
      </message>
      <message name="IDS_AX_TEXT_FIELD_ACTION_VERB" desc="Verb stating the action that will occur when a text field is selected, as used by accessibility.">
        activate
      </message>
      <message name="IDS_AX_CHECKED_CHECK_BOX_ACTION_VERB" desc="Verb stating the action that will occur when a checked checkbox is clicked, as used by accessibility.">
        uncheck
      </message>
      <message name="IDS_AX_UNCHECKED_CHECK_BOX_ACTION_VERB" desc="Verb stating the action that will occur when an unchecked checkbox is clicked, as used by accessibility.">
        check
      </message>
      <message name="IDS_AX_LINK_ACTION_VERB" desc="Verb stating the action that will occur when a link is clicked, as used by accessibility.">
        jump
      </message>

      <message name="IDS_KEYGEN_HIGH_GRADE_KEY" desc="High-grade cryptographic key size menu item">
        2048 (High Grade)
      </message>
      <message name="IDS_KEYGEN_MED_GRADE_KEY" desc="Medium-grade cryptographic key size menu item">
        1024 (Medium Grade)
      </message>

      <message name="IDS_FORM_VALIDATION_VALUE_MISSING_MULTIPLE_FILE" desc="Heading or short sentence shown when a file upload control in a web page requires one or more files selected, but the user didn't specify any files.">
        Please select one or more files.
      </message>
      <message name="IDS_FORM_VALIDATION_TYPE_MISMATCH" desc="Heading or short sentence shown when a form control in a web page requires specific type such as email address or URL, but the specified value does not comform to the type.">
        Invalid value.
      </message>
      <message name="IDS_FORM_VALIDATION_TYPE_MISMATCH_MULTIPLE_EMAIL" desc="Heading or short sentence shown there is a field which accepts multiple e-mail addresses and a user specified a value which is not a comma-separated e-mail addresses.">
        Please enter a comma separated list of email addresses.
      </message>
      <message name="IDS_FORM_VALIDATION_RANGE_UNDERFLOW" desc="Heading or short sentence shown when a form control value in a web page needs to be larger than or equal to a minimum value specified by the page author, but a user specified a too small value.">
        Value must be greater than or equal to <ph name="MINIMUM">$1<ex>0</ex></ph>.
      </message>
      <message name="IDS_FORM_VALIDATION_RANGE_OVERFLOW" desc="Heading or short sentence shown when a form control value in a web page needs to be smaller than or equal to a maximum value specified by the page author, but a user specified a too large value.">
        Value must be less than or equal to <ph name="MAXIMUM">$1<ex>100</ex></ph>.
      </message>
      <message name="IDS_FORM_VALIDATION_STEP_MISMATCH" desc="Heading or short sentence shown when a form control value in a web page should be aligned to a step value specified by the page author, but a user speficified non-aligned value. e.g. A number type field, minimum value is 0, and step value is 4. If A user-specified value is not a multiple of 4, this warning message is shown.">
        Invalid value.
      </message>

<!-- The following IDS_FORM_VALIDATION_* messages were taken from Mozilla's dom.properties file.

# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 2001
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#   Mitch <mstoltz@netscape.com> (original author)
#   Ehsan Akhgari <ehsan.akhgari@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either of the GNU General Public License Version 2 or later (the "GPL"),
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
-->
      <message name="IDS_FORM_VALIDATION_VALUE_MISSING" desc="Heading or short sentence shown when a text form control in a web page requires a value, but the user didn't specify any value.">
        Please fill out this field.
      </message>
      <message name="IDS_FORM_VALIDATION_VALUE_MISSING_CHECKBOX" desc="Heading or short sentence shown when a checkbox control in a web page requires to be checked, but the user didn't check it.">
        Please check this box if you want to proceed.
      </message>
      <message name="IDS_FORM_VALIDATION_VALUE_MISSING_FILE" desc="Heading or short sentence shown when a file upload control in a web page requires a file selected, but the user didn't specify any file.">
        Please select a file.
      </message>
      <message name="IDS_FORM_VALIDATION_VALUE_MISSING_RADIO" desc="Heading or short sentence shown when a radio button of a radio button group in a web page requires to be selected, but the user selected nothing.">
        Please select one of these options.
      </message>
      <message name="IDS_FORM_VALIDATION_VALUE_MISSING_SELECT" desc="Heading or short sentence shown when a value of a menu-list control in a web page requires to be selected, but the user selected nothing.">
        Please select an item in the list.
      </message>
      <message name="IDS_FORM_VALIDATION_TYPE_MISMATCH_EMAIL" desc="Heading or short sentence shown when there is an email field in a form and a user specified a value which doesn't look like an e-mail address.">
        Please enter an email address.
      </message>
      <message name="IDS_FORM_VALIDATION_TYPE_MISMATCH_URL" desc="Heading or short sentence shown when there is a URL field in a form and a user specified a value which doesn't look like a URL.">
        Please enter a URL.
      </message>
      <message name="IDS_FORM_VALIDATION_PATTERN_MISMATCH" desc="Heading or short sentence shown when a form control value needs to satisfy a pattern specified by the page author, but a user specified unmatched value.">
        Please match the requested format.
      </message>
      <message name="IDS_FORM_VALIDATION_TOO_LONG" desc="Heading or short sentence shown when a form control in a web page needs to be shoter than a length specified by the page author, but a user specified long value.">
        Please shorten this text to <ph name="MAX_CHARACTERS">$2<ex>100</ex></ph> characters or less (you are currently using <ph name="CURRENT_LENGTH">$1<ex>101</ex></ph> characters).
      </message>

      <message name="IDS_DEFAULT_PLUGIN_GET_PLUGIN_MSG" desc="Message displayed by the default plugin in its main window">
        <ph name="PLUGIN">$1<ex>Realplayer</ex></ph> plug-in is not installed.
      </message>

      <message name="IDS_DEFAULT_PLUGIN_GET_PLUGIN_MSG_NO_PLUGIN_NAME" desc="Message displayed by the default plugin in its main window when we don't know the plugin name">
        The required plug-in is not installed.
      </message>

      <message name="IDS_DEFAULT_PLUGIN_GET_PLUGIN_MSG_PLUGIN_FINDER_DISABLED" desc="Message displayed by the default plugin in its main window when the plugin finder has been disabled by a policy.">
        Installing plug-ins has been disabled.
      </message>

      <message name="IDS_DEFAULT_PLUGIN_GET_PLUGIN_MSG_2" desc="Second Message displayed by the default plugin in its main window">
        Click here to download plug-in
      </message>

      <message name="IDS_DEFAULT_PLUGIN_REFRESH_PLUGIN_MSG" desc="Message displayed by the default plugin to refresh the window after installing the required plugin">
        After installing the plug-in, click here to refresh
      </message>

      <message name="IDS_DEFAULT_PLUGIN_NO_PLUGIN_AVAILABLE_MSG" desc="Message displayed by the default plugin when no plugin was found for the page.">
        No plug-in available to display this content.
      </message>

      <message name="IDS_DEFAULT_PLUGIN_DOWNLOADING_PLUGIN_MSG" desc="Message displayed by the default plugin when a download has been initiated for the third party plugin.">
        Downloading plug-in...
      </message>
      
      <message name="IDS_DEFAULT_PLUGIN_GET_THE_PLUGIN_BTN_MSG" desc="Message displayed by the default plugin on the button which the user should click to fetch the plugin.">
        Get Plug-in
      </message>

      <message name="IDS_DEFAULT_PLUGIN_CANCEL_PLUGIN_DOWNLOAD_MSG" desc="Message displayed by the default plugin on the button which the user should click to cancel the plugin download.">
        Cancel
      </message>

      <message name="IDS_DEFAULT_PLUGIN_CONFIRMATION_DIALOG_TITLE" desc="Default plugin confirmation dialog title.">
        <ph name="PLUGIN">$1<ex>Realplayer</ex></ph> plug-in needed
      </message>

      <message name="IDS_DEFAULT_PLUGIN_CONFIRMATION_DIALOG_TITLE_NO_PLUGIN_NAME" desc="Default plugin confirmation dialog title when we don't know the plugin name">
        Additional plug-in needed
      </message>

      <message name="IDS_DEFAULT_PLUGIN_USER_OPTION_MSG" desc="Message displayed by the default plugin in the install dialog indicating information on the user action.">
        Please confirm that you would like to install the <ph name="PLUGIN">$1<ex>realplayer</ex></ph> plug-in. You should only install plug-ins that you trust.
      </message>
      <message name="IDS_DEFAULT_PLUGIN_USER_OPTION_MSG_NO_PLUGIN_NAME" desc="Message displayed by the default plugin in the install dialog indicating information on the user action when we don't know the plugin name">
        Please confirm that you would like to install this plug-in. You should only install plug-ins that you trust.
      </message>

      <message name="IDS_DEFAULT_PLUGIN_USE_OPTION_CONFIRM" desc="Button to confirm installation of plugin">
        Install
      </message>
      <message name="IDS_DEFAULT_PLUGIN_USE_OPTION_CANCEL" desc="Button to cancel installation of plugin">
        Cancel
      </message>
      
      <message name="IDS_DEFAULT_PLUGIN_DOWNLOAD_FAILED_MSG" desc="Message displayed by the default plugin when download is failed.">
        Failed to install plug-in from <ph name="URL">$1<ex>http://www.google.com/blablah.exe</ex></ph>
      </message>

      <message name="IDS_DEFAULT_PLUGIN_INSTALLATION_FAILED_MSG" desc="Message displayed by the default plugin when installation is failed.">
        Plug-in installation failed
      </message>

      <message name="IDS_PDF_NEED_PASSWORD" desc="A message asking the user for a password to open a PDF file.">
        This document is password protected.  Please enter a password.
      </message>

      <message name="IDS_PDF_PAGE_LOADING" desc="A message displayed on the PDF page while page is loading.">
        Loading...
      </message>

      <message name="IDS_PDF_LOADING_PROGRESS" desc="A message displayed on the PDF control to indicate loading progress.">
        Loading document: <ph name="PAGE_NUMBER">%d<ex>3</ex></ph>/<ph name="NUMBER_OF_PAGES">%d<ex>15</ex></ph> pages...
      </message>

      <message name="IDS_PDF_PAGE_LOAD_FAILED" desc="A message displayed on the PDF control to indicate that the PDF document failed to load.">
        Failed to load PDF document
      </message>

      <message name="IDS_PDF_PROGRESS_LOADING" desc="A message displayed on the progress control over PDF page during document loading.">
        Loading
      </message>
      
    </messages>
  </release>
</grit>
