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

DO NOT MODIFY.

This file is generated by
third_party/libaddressinput/chromium/tools/update-strings.py from
src/third_party/libaddressinput/src/cpp/res/messages.grdp. Submit modifications
to the upstream library at https://github.com/googlei18n/libaddressinput.

-->
<!--
Copyright (C) 2013 Google Inc.

Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<grit-part>
  <message
      name="IDS_LIBADDRESSINPUT_COUNTRY_OR_REGION_LABEL"
      desc="A country or a political region (Countries like the United States or
            regions like Hong Kong or Macao, or places like Taiwan, where
            whether it is a country or not is a politically sensitive
            question).">
    Country / Region
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_LOCALITY_LABEL"
      desc="E.g., New York City.">
    City
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_POST_TOWN"
      desc="The name of a town through
            which postal deliveries are routed, present in UK addresses.
            See: http://en.wikipedia.org/wiki/Post_town">
    Post Town
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_SUBURB"
      desc="Smaller part of a city used in some addresses in countries like New
            Zealand to give a more specific location in a postal address.">
    Suburb
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_VILLAGE_TOWNSHIP"
      desc="A unit used in postal addresses in Malaysia, which is smaller than the
            city/town, and represents a village, township, or precinct.">
    Village / Township
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_ADDRESS_LINE_1_LABEL"
      desc="E.g., 18th Street, Unit 3.">
    Street address
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_PIN_CODE_LABEL"
      desc="PIN (Postal Index Number) Code. Values are numeric. Used in India.">
    PIN code
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_POSTAL_CODE_LABEL"
      desc="Postal Code. Values are frequently alphanumeric. Used in countries
            such as Switzerland.">
    Postal code
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_ZIP_CODE_LABEL"
      desc="ZIP code. Values are frequently alphanumeric. Used in countries such
            as the US.">
    ZIP code
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_AREA"
      desc="Administrative Area for Hong Kong (e.g., Kowloon).">
    Area
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_COUNTY"
      desc="Administrative Area for United Kingdoms (e.g. York) or for the
            United States (e.g. Orange County).">
    County
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_DEPARTMENT"
      desc="Administrative Area for Nicaragua (e.g., Boaco) or France.">
    Department
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_DISTRICT"
      desc="Administrative Area for Nauru Central Pacific (e.g., Aiwo district),
            or area of a town (a neighbourhood/suburb) used for addresses in
            Korea and China.">
    District
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_DO_SI"
      desc="Administrative Area for Korea (e.g., Gyeonggi-do or Busan-si).">
    Do/Si
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_EMIRATE"
      desc="Administrative Area for United Arab Emirates (e.g., Abu Dhabi).">
    Emirate
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_ISLAND"
      desc="Administrative Area for certain countries (e.g., Bahama's Cat
            Island).">
    Island
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_OBLAST"
      desc="Administrative Area for certain countries (e.g., Russia's
            Leningrad).">
    Oblast
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_PARISH"
      desc="Administrative Area for certain countries (e.g., Andorra's
            Canillo).">
    Parish
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_PREFECTURE"
      desc="Administrative Area for Japan (e.g., Hokkaido).">
    Prefecture
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_PROVINCE"
      desc="Administrative Area for certain countries (e.g., France's
            Champagne).">
    Province
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_STATE"
      desc="Administrative Area for certain countries (e.g., US' California).">
    State
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_ORGANIZATION_LABEL"
      desc="Label for the field of organization, firm, company, or institution
            in an address. Examples of values in this field: Google,
            Department of Transportation, University of Cambridge.">
    Organization
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_RECIPIENT_LABEL"
      desc="Label for the field for a person's name in an address.">
    Name
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_NEIGHBORHOOD"
      desc="Label for a neighborhood, shown as part of an address input form.">
    Neighborhood
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_MISSING_REQUIRED_FIELD"
      desc="Error message shown with a UI field when it is a required field and
            the user has not filled it out.">
    You can't leave this empty.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_MISSING_REQUIRED_POSTAL_CODE_EXAMPLE_AND_URL"
      desc="Error message shown with the postal code field when it is a required
            field and the user has not filled it out, providing an example
            postal code and a link to this country's postal service that a user
            can use to look up their postal code.">
    You must provide a postal code, for example <ph name="EXAMPLE">$1<ex>90291</ex></ph>. Don't know your postal code? Find it out <ph name="BEGIN_LINK">$2</ph>here<ph name="END_LINK">$3</ph>.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_MISSING_REQUIRED_POSTAL_CODE_EXAMPLE"
      desc="Error message shown with the postal code field when it is a required
            field and the user has not filled it out, providing an example
            postal code.">
    You must provide a postal code, for example <ph name="EXAMPLE">$1<ex>90291</ex></ph>.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_MISSING_REQUIRED_ZIP_CODE_EXAMPLE_AND_URL"
      desc="Error message shown with the ZIP code field when it is a required
            field and the user has not filled it out, providing an example ZIP
            code and a link to this country's postal service that a user can use
            to look up their ZIP code. This is specifically for countries using
            ZIP codes instead of Postal codes, such as America.">
    You must provide a ZIP code, for example <ph name="EXAMPLE">$1<ex>90291</ex></ph>. Don't know your ZIP code? Find it out <ph name="BEGIN_LINK">$2</ph>here<ph name="END_LINK">$3</ph>.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_MISSING_REQUIRED_ZIP_CODE_EXAMPLE"
      desc="Error message shown with the ZIP code field when it is a required
            field and the user has not filled it out, providing an example ZIP
            code.">
    You must provide a ZIP code, for example <ph name="EXAMPLE">$1<ex>90291</ex></ph>.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_UNKNOWN_VALUE"
      desc="Occurs when the user fills out the wrong value for an address field.
            For example, this would be shown when putting 'Cupertino' in United
            States' State field.">
    <ph name="FIELD_VALUE">$1<ex>Cupertino</ex></ph> is not recognized as a known value for this field.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_POSTAL_CODE_EXAMPLE_AND_URL"
      desc="Occurs when the user fills out a postal code that does not conform
            to the country's postal code format. For example, this would be
            shown when using '80' as a Swiss postal code, which is normally 4
            digits long. Provides an example postal code and a link to this
            country's postal service that a user can use to look up their postal
            code.">
    This postal code format is not recognized. Example of a valid postal code: <ph name="EXAMPLE">$1<ex>90291</ex></ph>. Don't know your postal code? Find it out <ph name="BEGIN_LINK">$2</ph>here<ph name="END_LINK">$3</ph>.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_POSTAL_CODE_EXAMPLE"
      desc="Occurs when the user fills out a postal code that does not conform
            to the country's postal code format. For example, this would be
            shown when using '80' as a Swiss postal code, which is normally 4
            digits long. Provides an example postal code.">
    This postal code format is not recognized. Example of a valid postal code: <ph name="EXAMPLE">$1<ex>90291</ex></ph>.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_POSTAL_CODE"
      desc="Occurs when the user fills out a postal code that does not conform
            to the country's postal code format. For example, this would be
            shown when using '80' as a Swiss postal code, which is normally 4
            digits long.">
    This postal code format is not recognized.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_ZIP_CODE_EXAMPLE_AND_URL"
      desc="Occurs when the user fills out a ZIP code that does not conform to
            the country's ZIP code format. For example, this would be shown when
            using '901' as a ZIP code for the United States. Provides an example
            ZIP code and a link to this country's postal service that a user can
            use to look up their ZIP code.">
    This ZIP code format is not recognized. Example of a valid ZIP code: <ph name="EXAMPLE">$1<ex>90291</ex></ph>. Don't know your ZIP code? Find it out <ph name="BEGIN_LINK">$2</ph>here<ph name="END_LINK">$3</ph>.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_ZIP_CODE_EXAMPLE"
      desc="Occurs when the user fills out a ZIP code that does not conform to
            the country's ZIP code format. For example, this would be shown when
            using '901' as a ZIP code for the United States. Provides an example
            ZIP code.">
    This ZIP code format is not recognized. Example of a valid ZIP code: <ph name="EXAMPLE">$1<ex>90291</ex></ph>.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_ZIP"
      desc="Occurs when the user fills out a ZIP code that does not conform to
            the country's ZIP code format. For example, this would be shown when
            using '901' as a ZIP code for the United States.">
    This ZIP code format is not recognized.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_MISMATCHING_VALUE_POSTAL_CODE_URL"
      desc="Occurs when the user fills out the wrong postal code for a certain
      location. For example, this would be shown when using Z3Z 2Y7 for
      Alberta, Canada. Provides a link to this country's postal service
      that a user can use to look up their postal code.">
    This postal code does not appear to match the rest of this address. Don't know your postal code? Find it out <ph name="BEGIN_LINK">$1</ph>here<ph name="END_LINK">$2</ph>.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_MISMATCHING_VALUE_POSTAL_CODE"
      desc="Occurs when the user fills out the wrong postal code for a certain
      location. For example, this would be shown when using Z3Z 2Y7 for
      Alberta, Canada.">
    This postal code does not appear to match the rest of this address.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_MISMATCHING_VALUE_ZIP_URL"
      desc="Occurs when the user fills out the wrong ZIP code for a certain
      location. For example, this would be shown when using 10001 for
      Arizona state. Provides a link to this country's postal service that
      a user can use to look up their ZIP code.">
    This ZIP code does not appear to match the rest of this address. Don't know your ZIP code? Find it out <ph name="BEGIN_LINK">$1</ph>here<ph name="END_LINK">$2</ph>.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_MISMATCHING_VALUE_ZIP"
      desc="Occurs when the user fills out the wrong ZIP code for a certain
      location. For example, this would be shown when using 10001 for
      Arizona state.">
    This ZIP code does not appear to match the rest of this address.
  </message>
  <message
      name="IDS_LIBADDRESSINPUT_PO_BOX_FORBIDDEN_VALUE"
      desc="Occurs when the user fills out a P.O. box as part of a physical
      address.">
    This address line appears to contain a post office box. Please use a street or building address.
  </message>
</grit-part>
