Commit 64fef129 authored by Matthias Körber's avatar Matthias Körber Committed by Commit Bot

[Autofill] Remove unused state and zip labels.

Change-Id: I864ed31fc58647698e51122b2fee14b26e457117
Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1147800
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2529395
Commit-Queue: Christoph Schwering <schwering@google.com>
Reviewed-by: default avatarChristoph Schwering <schwering@google.com>
Cr-Commit-Position: refs/heads/master@{#826223}
parent ac21d86a
......@@ -37,20 +37,16 @@ AutofillCountry::AutofillCountry(const std::string& country_code,
// If there is no entry in the |CountryDataMap| for the
// |country_code_for_country_data| use the country code derived from the
// locale. This reverts to US.
country_data_map->HasCountryData(country_code_)
country_data_map->HasRequiredFieldsForAddressImport(country_code_)
? country_code_
: CountryCodeForLocale(locale);
// Acquire the country address data.
const CountryData& data = country_data_map->GetCountryData(country_code_);
required_fields_for_address_import_ =
country_data_map->GetRequiredFieldsForAddressImport(country_code_);
// Translate the country name by the supplied local.
name_ = l10n_util::GetDisplayNameForCountry(country_code_, locale);
// Get the localized strings associate with the address fields.
postal_code_label_ = l10n_util::GetStringUTF16(data.postal_code_label_id);
state_label_ = l10n_util::GetStringUTF16(data.state_label_id);
address_required_fields_ = data.address_required_fields;
}
AutofillCountry::~AutofillCountry() {}
......@@ -82,10 +78,7 @@ AutofillCountry::AutofillCountry(const std::string& country_code,
const base::string16& name,
const base::string16& postal_code_label,
const base::string16& state_label)
: country_code_(country_code),
name_(name),
postal_code_label_(postal_code_label),
state_label_(state_label) {}
: country_code_(country_code), name_(name) {}
// Prints a formatted log of a |AutofillCountry| to a |LogBuffer|.
LogBuffer& operator<<(LogBuffer& buffer, const AutofillCountry& country) {
......@@ -97,8 +90,6 @@ LogBuffer& operator<<(LogBuffer& buffer, const AutofillCountry& country) {
buffer << Tr{} << "State required:" << country.requires_state();
buffer << Tr{} << "Zip required:" << country.requires_zip();
buffer << Tr{} << "City required:" << country.requires_city();
buffer << Tr{} << "State label:" << country.state_label();
buffer << Tr{} << "Postal code label:" << country.postal_code_label();
buffer << CTag{"table"};
buffer << CTag{"div"};
buffer << CTag{};
......
......@@ -31,33 +31,32 @@ class AutofillCountry {
const std::string& country_code() const { return country_code_; }
const base::string16& name() const { return name_; }
const base::string16& postal_code_label() const { return postal_code_label_; }
const base::string16& state_label() const { return state_label_; }
// City is expected in a complete address for this country.
bool requires_city() const {
return (address_required_fields_ & ADDRESS_REQUIRES_CITY) != 0;
return (required_fields_for_address_import_ & ADDRESS_REQUIRES_CITY) != 0;
}
// State is expected in a complete address for this country.
bool requires_state() const {
return (address_required_fields_ & ADDRESS_REQUIRES_STATE) != 0;
return (required_fields_for_address_import_ & ADDRESS_REQUIRES_STATE) != 0;
}
// Zip is expected in a complete address for this country.
bool requires_zip() const {
return (address_required_fields_ & ADDRESS_REQUIRES_ZIP) != 0;
return (required_fields_for_address_import_ & ADDRESS_REQUIRES_ZIP) != 0;
}
// An address line1 is expected in a complete address for this country.
bool requires_line1() const {
return (address_required_fields_ & ADDRESS_REQUIRES_LINE1) != 0;
return (required_fields_for_address_import_ & ADDRESS_REQUIRES_LINE1) != 0;
}
// True if a complete address is expected to either contain a state or a ZIP
// code. Not true if the address explicitly needs both.
bool requires_zip_or_state() const {
return (address_required_fields_ & ADDRESS_REQUIRES_ZIP_OR_STATE) != 0;
return (required_fields_for_address_import_ &
ADDRESS_REQUIRES_ZIP_OR_STATE) != 0;
}
private:
......@@ -72,14 +71,8 @@ class AutofillCountry {
// The country's name, localized to the app locale.
base::string16 name_;
// The localized label for the postal code (or zip code) field.
base::string16 postal_code_label_;
// The localized label for the state (or province, district, etc.) field.
base::string16 state_label_;
// Address requirement field codes for the country.
AddressRequiredFields address_required_fields_;
// Required fields for an address import for the country.
RequiredFieldsForAddressImport required_fields_for_address_import_;
DISALLOW_COPY_AND_ASSIGN(AutofillCountry);
};
......
......@@ -24,8 +24,6 @@ TEST(AutofillCountryTest, AutofillCountry) {
AutofillCountry united_states_en("US", "en_US");
EXPECT_EQ("US", united_states_en.country_code());
EXPECT_EQ(ASCIIToUTF16("United States"), united_states_en.name());
EXPECT_EQ(ASCIIToUTF16("ZIP code"), united_states_en.postal_code_label());
EXPECT_EQ(ASCIIToUTF16("State"), united_states_en.state_label());
AutofillCountry united_states_es("US", "es");
EXPECT_EQ("US", united_states_es.country_code());
......@@ -39,8 +37,6 @@ TEST(AutofillCountryTest, AutofillCountry) {
AutofillCountry canada_en("CA", "en_US");
EXPECT_EQ("CA", canada_en.country_code());
EXPECT_EQ(ASCIIToUTF16("Canada"), canada_en.name());
EXPECT_EQ(ASCIIToUTF16("Postal code"), canada_en.postal_code_label());
EXPECT_EQ(ASCIIToUTF16("Province"), canada_en.state_label());
AutofillCountry canada_hu("CA", "hu");
EXPECT_EQ("CA", canada_hu.country_code());
......@@ -124,7 +120,7 @@ TEST(AutofillCountryTest, AliasMappingsForCountryData) {
CountryDataMap* country_data_map = CountryDataMap::GetInstance();
// There should be country data for the "GB".
EXPECT_TRUE(country_data_map->HasCountryData("GB"));
EXPECT_TRUE(country_data_map->HasRequiredFieldsForAddressImport("GB"));
// Check the correctness of the alias definitions.
EXPECT_TRUE(country_data_map->HasCountryCodeAlias("UK"));
......
......@@ -14,9 +14,9 @@
namespace autofill {
namespace {
struct StaticCountryData {
struct StaticCountryAddressImportRequirementsData {
char country_code[3];
CountryData country_data;
RequiredFieldsForAddressImport address_import_field_requirements;
};
// Alias definitions record for CountryData requests. A request for
......@@ -30,783 +30,284 @@ struct StaticCountryCodeAliasData {
// Alias definitions.
const StaticCountryCodeAliasData kCountryCodeAliases[] = {{"UK", "GB"}};
// Maps country codes to localized label string identifiers. Keep this sorted
// Maps country codes to address import requirements. Keep this sorted
// by country code.
// This list is comprized of countries appearing in both
// //third_party/icu/source/data/region/en.txt and
// //third_party/libaddressinput/src/cpp/src/region_data_constants.cc.
const StaticCountryData kCountryData[] = {
// clang-format off
{"AC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"AD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PARISH,
ADDRESS_REQUIRES_LINE1 } },
{"AE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_EMIRATE,
ADDRESS_REQUIRES_LINE1_STATE } },
{"AF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"AG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1 } },
{"AI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"AL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"AM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"AO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"AQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"AR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"AS", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"AT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"AU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"AW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"AX", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"AZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"BA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"BB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PARISH,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"BD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"BE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"BF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"BG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"BH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"BI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"BJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"BL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"BM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"BN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"BO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"BQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"BR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"BS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"BT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"BV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"BW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"BY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"BZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"CA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"CC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"CD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"CF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"CG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"CH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"CI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"CK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"CL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"CM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"CN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"CO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"CR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"CS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1 } },
{"CV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"CW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"CX", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"CY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"CZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"DE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"DJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"DK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"DM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"DO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"DZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"EC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"EE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"EG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"EH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"ER", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"ES", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"ET", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"FI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"FJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"FK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"FM", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"FO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"FR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"GB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_COUNTY,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"GE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"GI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1 } },
{"GL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"GN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"GR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GU", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"HK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_AREA,
ADDRESS_REQUIRES_LINE1_STATE } },
{"HM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"HN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"HR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"HT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"HU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"ID", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"IE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_COUNTY,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"IL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"IM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"IN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"IO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"IQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"IR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"IS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"IT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"JE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"JM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PARISH,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"JO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"JP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PREFECTURE,
ADDRESS_REQUIRES_LINE1_STATE_ZIP } },
{"KE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"KG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"KH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"KI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"KM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"KN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"KP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"KR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"KW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"KY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_STATE } },
{"KZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"LA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"LI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"MA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"ME", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MH", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"MK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"ML", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"MM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"MO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1 } },
{"MP", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"MQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"MS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"MT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"MX", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"NA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"NG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"NI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_DEPARTMENT,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"NL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_DISTRICT,
ADDRESS_REQUIRES_LINE1_STATE } },
{"NU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"NZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"OM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"PE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"PF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"PG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"PH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"PK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PR", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"PT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PW", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"PY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"QA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"RE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"RO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"RS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"RU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"RW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"SA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"SC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"SE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_ZIP } },
{"SH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"SM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_ZIP } },
{"SN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"SR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"SS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"ST", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"SV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"SX", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"SZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"TA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"TD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"TJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"TK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"TN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"TO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"TT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"TW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_COUNTY,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"TZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"UA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"UG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"UM", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"US", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"UY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"UZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"VA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"VC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"VE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"VG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1 } },
{"VI", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"VN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"VU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"WF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"WS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"XK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"YE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"YT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"ZA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"ZM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"ZW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
// clang-format on
const StaticCountryAddressImportRequirementsData
kCountryAddressImportRequirementsData[] = {
{"AC", ADDRESS_REQUIRES_LINE1_CITY},
{"AD", ADDRESS_REQUIRES_LINE1},
{"AE", ADDRESS_REQUIRES_LINE1_STATE},
{"AF", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"AG", ADDRESS_REQUIRES_LINE1},
{"AI", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"AL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"AM", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"AO", ADDRESS_REQUIRES_LINE1_CITY},
{"AQ", ADDRESS_REQUIRES_LINE1_CITY},
{"AR", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"AS", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"AT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"AU", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"AW", ADDRESS_REQUIRES_LINE1_CITY},
{"AX", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"AZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BB", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"BD", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BF", ADDRESS_REQUIRES_LINE1_CITY},
{"BG", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BH", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BI", ADDRESS_REQUIRES_LINE1_CITY},
{"BJ", ADDRESS_REQUIRES_LINE1_CITY},
{"BL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BN", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BO", ADDRESS_REQUIRES_LINE1_CITY},
{"BQ", ADDRESS_REQUIRES_LINE1_CITY},
{"BR", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"BS", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"BT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BV", ADDRESS_REQUIRES_LINE1_CITY},
{"BW", ADDRESS_REQUIRES_LINE1_CITY},
{"BY", ADDRESS_REQUIRES_LINE1_CITY},
{"BZ", ADDRESS_REQUIRES_LINE1_CITY},
{"CA", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CC", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CD", ADDRESS_REQUIRES_LINE1_CITY},
{"CF", ADDRESS_REQUIRES_LINE1_CITY},
{"CG", ADDRESS_REQUIRES_LINE1_CITY},
{"CH", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CI", ADDRESS_REQUIRES_LINE1_CITY},
{"CK", ADDRESS_REQUIRES_LINE1_CITY},
{"CL", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CM", ADDRESS_REQUIRES_LINE1_CITY},
{"CN", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CO", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CR", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CS", ADDRESS_REQUIRES_LINE1},
{"CV", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CW", ADDRESS_REQUIRES_LINE1_CITY},
{"CX", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CY", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"DE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"DJ", ADDRESS_REQUIRES_LINE1_CITY},
{"DK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"DM", ADDRESS_REQUIRES_LINE1_CITY},
{"DO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"DZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"EC", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"EE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"EG", ADDRESS_REQUIRES_LINE1_CITY},
{"EH", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"ER", ADDRESS_REQUIRES_LINE1_CITY},
{"ES", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"ET", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"FI", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"FJ", ADDRESS_REQUIRES_LINE1_CITY},
{"FK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"FM", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"FO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"FR", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GA", ADDRESS_REQUIRES_LINE1_CITY},
{"GB", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GD", ADDRESS_REQUIRES_LINE1_CITY},
{"GE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GF", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GG", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GH", ADDRESS_REQUIRES_LINE1_CITY},
{"GI", ADDRESS_REQUIRES_LINE1},
{"GL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GM", ADDRESS_REQUIRES_LINE1_CITY},
{"GN", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GP", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GQ", ADDRESS_REQUIRES_LINE1_CITY},
{"GR", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GS", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GU", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GW", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GY", ADDRESS_REQUIRES_LINE1_CITY},
{"HK", ADDRESS_REQUIRES_LINE1_STATE},
{"HM", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"HN", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"HR", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"HT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"HU", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"ID", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"IE", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"IL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"IM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"IN", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"IO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"IQ", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"IR", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"IS", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"IT", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"JE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"JM", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"JO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"JP", ADDRESS_REQUIRES_LINE1_STATE_ZIP},
{"KE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"KG", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"KH", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"KI", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"KM", ADDRESS_REQUIRES_LINE1_CITY},
{"KN", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"KP", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"KR", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"KW", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"KY", ADDRESS_REQUIRES_LINE1_STATE},
{"KZ", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"LA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"LB", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"LC", ADDRESS_REQUIRES_LINE1_CITY},
{"LI", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"LK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"LR", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"LS", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"LT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"LU", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"LV", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"LY", ADDRESS_REQUIRES_LINE1_CITY},
{"MA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MC", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MD", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"ME", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MF", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MG", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MH", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"MK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"ML", ADDRESS_REQUIRES_LINE1_CITY},
{"MM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MN", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"MO", ADDRESS_REQUIRES_LINE1},
{"MP", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"MQ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MR", ADDRESS_REQUIRES_LINE1_CITY},
{"MS", ADDRESS_REQUIRES_LINE1_CITY},
{"MT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MU", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MV", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MW", ADDRESS_REQUIRES_LINE1_CITY},
{"MX", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MY", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"MZ", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"NA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"NC", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"NE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"NF", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"NG", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"NI", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"NL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"NO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"NP", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"NR", ADDRESS_REQUIRES_LINE1_STATE},
{"NU", ADDRESS_REQUIRES_LINE1_CITY},
{"NZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"OM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"PA", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"PE", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"PF", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"PG", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"PH", ADDRESS_REQUIRES_LINE1_CITY},
{"PK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"PL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"PM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"PN", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"PR", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"PS", ADDRESS_REQUIRES_LINE1_CITY},
{"PT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"PW", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"PY", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"QA", ADDRESS_REQUIRES_LINE1_CITY},
{"RE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"RO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"RS", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"RU", ADDRESS_REQUIRES_LINE1_CITY},
{"RW", ADDRESS_REQUIRES_LINE1_CITY},
{"SA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"SB", ADDRESS_REQUIRES_LINE1_CITY},
{"SC", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"SE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"SG", ADDRESS_REQUIRES_LINE1_ZIP},
{"SH", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"SI", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"SJ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"SK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"SL", ADDRESS_REQUIRES_LINE1_CITY},
{"SM", ADDRESS_REQUIRES_LINE1_ZIP},
{"SN", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"SO", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"SR", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"SS", ADDRESS_REQUIRES_LINE1_CITY},
{"ST", ADDRESS_REQUIRES_LINE1_CITY},
{"SV", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"SX", ADDRESS_REQUIRES_LINE1_CITY},
{"SZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"TA", ADDRESS_REQUIRES_LINE1_CITY},
{"TC", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"TD", ADDRESS_REQUIRES_LINE1_CITY},
{"TF", ADDRESS_REQUIRES_LINE1_CITY},
{"TG", ADDRESS_REQUIRES_LINE1_CITY},
{"TH", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"TJ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"TK", ADDRESS_REQUIRES_LINE1_CITY},
{"TL", ADDRESS_REQUIRES_LINE1_CITY},
{"TM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"TN", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"TO", ADDRESS_REQUIRES_LINE1_CITY},
{"TR", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"TT", ADDRESS_REQUIRES_LINE1_CITY},
{"TV", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"TW", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"TZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"UA", ADDRESS_REQUIRES_LINE1_CITY},
{"UG", ADDRESS_REQUIRES_LINE1_CITY},
{"UM", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"US", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"UY", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"UZ", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"VA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"VC", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"VE", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"VG", ADDRESS_REQUIRES_LINE1},
{"VI", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"VN", ADDRESS_REQUIRES_LINE1_CITY},
{"VU", ADDRESS_REQUIRES_LINE1_CITY},
{"WF", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"WS", ADDRESS_REQUIRES_LINE1_CITY},
{"XK", ADDRESS_REQUIRES_LINE1_CITY},
{"YE", ADDRESS_REQUIRES_LINE1_CITY},
{"YT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"ZA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"ZM", ADDRESS_REQUIRES_LINE1_CITY},
{"ZW", ADDRESS_REQUIRES_LINE1_CITY},
};
// GetCountryCodes and GetCountryData compute the data for CountryDataMap
// based on |kCountryData|.
// based on |kCountryAddressImportRequirementsData|.
std::vector<std::string> GetCountryCodes() {
std::vector<std::string> country_codes;
country_codes.reserve(base::size(kCountryData));
for (const auto& static_data : kCountryData) {
country_codes.reserve(base::size(kCountryAddressImportRequirementsData));
for (const auto& static_data : kCountryAddressImportRequirementsData) {
country_codes.push_back(static_data.country_code);
}
return country_codes;
}
std::map<std::string, CountryData> GetCountryDataMap() {
std::map<std::string, CountryData> country_data;
std::map<std::string, RequiredFieldsForAddressImport> GetCountryDataMap() {
std::map<std::string, RequiredFieldsForAddressImport> import_requirements;
// Add all the countries we have explicit data for.
for (const auto& static_data : kCountryData) {
country_data.insert(
std::make_pair(static_data.country_code, static_data.country_data));
for (const auto& static_data : kCountryAddressImportRequirementsData) {
import_requirements.insert(
import_requirements.end(),
std::make_pair(static_data.country_code,
static_data.address_import_field_requirements));
}
// Add any other countries that ICU knows about, falling back to default data
......@@ -814,14 +315,13 @@ std::map<std::string, CountryData> GetCountryDataMap() {
for (const char* const* country_pointer = icu::Locale::getISOCountries();
*country_pointer; ++country_pointer) {
std::string country_code = *country_pointer;
if (!country_data.count(country_code)) {
CountryData data = {IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE};
country_data.insert(
std::make_pair(std::move(country_code), std::move(data)));
if (!import_requirements.count(country_code)) {
import_requirements.insert(std::make_pair(
std::move(country_code),
RequiredFieldsForAddressImport::ADDRESS_REQUIREMENTS_UNKNOWN));
}
}
return country_data;
return import_requirements;
}
std::map<std::string, std::string> GetCountryCodeAliasMap() {
......@@ -844,23 +344,25 @@ CountryDataMap* CountryDataMap::GetInstance() {
}
CountryDataMap::CountryDataMap()
: country_data_(GetCountryDataMap()),
: required_fields_for_address_import_map_(GetCountryDataMap()),
country_code_aliases_(GetCountryCodeAliasMap()),
country_codes_(GetCountryCodes()) {}
CountryDataMap::~CountryDataMap() = default;
bool CountryDataMap::HasCountryData(const std::string& country_code) const {
return country_data_.count(country_code) > 0;
bool CountryDataMap::HasRequiredFieldsForAddressImport(
const std::string& country_code) const {
return required_fields_for_address_import_map_.count(country_code) > 0;
}
const CountryData& CountryDataMap::GetCountryData(
RequiredFieldsForAddressImport
CountryDataMap::GetRequiredFieldsForAddressImport(
const std::string& country_code) const {
auto lookup = country_data_.find(country_code);
if (lookup != country_data_.end())
auto lookup = required_fields_for_address_import_map_.find(country_code);
if (lookup != required_fields_for_address_import_map_.end())
return lookup->second;
// If there is no entry for country_code return the entry for the US.
return country_data_.find("US")->second;
return required_fields_for_address_import_map_.find("US")->second;
}
bool CountryDataMap::HasCountryCodeAlias(
......@@ -872,7 +374,7 @@ const std::string CountryDataMap::GetCountryCodeForAlias(
const std::string& country_code_alias) const {
auto lookup = country_code_aliases_.find(country_code_alias);
if (lookup != country_code_aliases_.end()) {
DCHECK(HasCountryData(lookup->second));
DCHECK(HasRequiredFieldsForAddressImport(lookup->second));
return lookup->second;
}
return std::string();
......
......@@ -20,7 +20,7 @@ namespace autofill {
// The minimal required fields for an address to be complete for a given
// country.
enum AddressRequiredFields {
enum RequiredFieldsForAddressImport {
ADDRESS_REQUIRES_CITY = 1 << 0,
ADDRESS_REQUIRES_STATE = 1 << 1,
ADDRESS_REQUIRES_ZIP = 1 << 2,
......@@ -52,19 +52,6 @@ enum AddressRequiredFields {
ADDRESS_REQUIREMENTS_UNKNOWN = ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP,
};
// This struct describes the address format typical for a particular country.
struct CountryData {
// Resource identifier for the string used to denote postal codes.
int postal_code_label_id;
// Resource identifier for the string used to denote the major subdivision
// below the "country" level.
int state_label_id;
// The required parts of the address.
AddressRequiredFields address_required_fields;
};
// A singleton class that encapsulates a map from country codes to country data.
class CountryDataMap {
public:
......@@ -72,7 +59,7 @@ class CountryDataMap {
// Returns true if a |CountryData| entry for the supplied |country_code|
// exists.
bool HasCountryData(const std::string& country_code) const;
bool HasRequiredFieldsForAddressImport(const std::string& country_code) const;
// Returns true if there is a country code alias for |country_code|.
bool HasCountryCodeAlias(const std::string& country_code_alias) const;
......@@ -82,9 +69,10 @@ class CountryDataMap {
const std::string GetCountryCodeForAlias(
const std::string& country_code_alias) const;
// Lookup the |CountryData| for the supplied |country_code|. If no entry
// exists, return the data for the US as a best guess.
const CountryData& GetCountryData(const std::string& country_code) const;
// Lookup the |RequiredFieldForAddressImport| for the supplied |country_code|.
// If no entry exists, return requirements for the US as a best guess.
RequiredFieldsForAddressImport GetRequiredFieldsForAddressImport(
const std::string& country_code) const;
// Return a constant reference to a vector of all country codes.
const std::vector<std::string>& country_codes() { return country_codes_; }
......@@ -94,7 +82,8 @@ class CountryDataMap {
~CountryDataMap();
friend struct base::DefaultSingletonTraits<CountryDataMap>;
const std::map<std::string, CountryData> country_data_;
const std::map<std::string, RequiredFieldsForAddressImport>
required_fields_for_address_import_map_;
const std::map<std::string, std::string> country_code_aliases_;
const std::vector<std::string> country_codes_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment