forked from a64f7bb4-7358-4778-9fbe-3b882c34cc1d/v1
258 lines
8.4 KiB
PHP
258 lines
8.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* A number of issues were found in Google's dataset and reported at.
|
|
* https://github.com/googlei18n/libaddressinput/issues
|
|
* Since Google has been slow to resolve them, the library maintains its own
|
|
* list of customizations, in PHP format for easier contribution.
|
|
*/
|
|
|
|
/**
|
|
* Returns the address format customizations for the provided country code.
|
|
*/
|
|
function get_address_format_customizations($countryCode) {
|
|
$formatCustomizations = [];
|
|
// Replace the postal code pattern.
|
|
// https://github.com/google/libaddressinput/issues/207
|
|
$formatCustomizations['BH'] = [
|
|
'postal_code_pattern' => '(?:^|\b)(?:1[0-2]|[1-9])\d{2}(?:$|\b)',
|
|
];
|
|
// Make the locality required.
|
|
$formatCustomizations['CO'] = [
|
|
'required_fields' => [
|
|
'addressLine1',
|
|
'locality',
|
|
'administrativeArea',
|
|
],
|
|
];
|
|
// Switch %organization and %recipient.
|
|
// https://github.com/googlei18n/libaddressinput/issues/83
|
|
$formatCustomizations['DE'] = [
|
|
'format' => '%organization\n%givenName %familyName\n%addressLine1\n%addressLine2\n%postalCode %locality',
|
|
];
|
|
// Revert the removal of %sortingCode.
|
|
// https://github.com/google/libaddressinput/issues/177
|
|
$formatCustomizations['FR'] = [
|
|
'format' => '%organization\n%givenName %familyName\n%addressLine1\n%addressLine2\n%postalCode %locality %sortingCode',
|
|
];
|
|
// Make the postal codes required, add administrative area fields (EE, LT).
|
|
// https://github.com/googlei18n/libaddressinput/issues/64
|
|
$formatCustomizations['EE'] = [
|
|
'format' => '%givenName %familyName\n%organization\n%addressLine1\n%addressLine2\n%postalCode %locality %administrativeArea',
|
|
'required_fields' => [
|
|
'addressLine1',
|
|
'locality',
|
|
'postalCode',
|
|
],
|
|
'administrative_area_type' => 'county',
|
|
];
|
|
// Revert the removal of %locality.
|
|
// https://github.com/google/libaddressinput/issues/177
|
|
$formatCustomizations['JP'] = [
|
|
'format' => '%familyName %givenName\n%organization\n%addressLine1\n%addressLine2\n%locality, %administrativeArea\n%postalCode',
|
|
'local_format' => '〒%postalCode\n%administrativeArea%locality\n%addressLine1\n%addressLine2\n%organization\n%familyName %givenName',
|
|
];
|
|
$formatCustomizations['LT'] = [
|
|
'format' => '%organization\n%givenName %familyName\n%addressLine1\n%addressLine2\n%postalCode %locality %administrativeArea',
|
|
'required_fields' => [
|
|
'addressLine1',
|
|
'locality',
|
|
'postalCode',
|
|
],
|
|
'administrative_area_type' => 'county',
|
|
];
|
|
$formatCustomizations['LV'] = [
|
|
'required_fields' => [
|
|
'addressLine1',
|
|
'locality',
|
|
'postalCode',
|
|
],
|
|
];
|
|
|
|
return isset($formatCustomizations[$countryCode]) ? $formatCustomizations[$countryCode] : [];
|
|
}
|
|
|
|
/**
|
|
* Returns the subdivision customizations for the provided group.
|
|
*/
|
|
function get_subdivision_customizations($group) {
|
|
// Adds Colombian subdivisions
|
|
// https://github.com/googlei18n/libaddressinput/issues/135
|
|
$subdivisionCustomizations['CO'] = [
|
|
'_add' => [
|
|
'DC', 'AMA', 'ANT', 'ARA', 'ATL', 'BOL', 'BOY',
|
|
'CAL', 'CAQ', 'CAS', 'CAU', 'CES', 'COR', 'CUN',
|
|
'CHO', 'GUA', 'GUV', 'HUI', 'LAG', 'MAG', 'MET',
|
|
'NAR', 'NSA', 'PUT', 'QUI', 'RIS', 'SAP', 'SAN',
|
|
'SUC', 'TOL', 'VAC', 'VAU', 'VID',
|
|
],
|
|
'DC' => [
|
|
'name' => 'Distrito Capital de Bogotá',
|
|
'iso_code' => 'CO-DC',
|
|
'postal_code_pattern' => '11\d{4}',
|
|
],
|
|
'AMA' => [
|
|
'name' => 'Amazonas',
|
|
'iso_code' => 'CO-AMA',
|
|
'postal_code_pattern' => '91\d{4}',
|
|
],
|
|
'ANT' => [
|
|
'name' => 'Antioquia',
|
|
'iso_code' => 'CO-ANT',
|
|
'postal_code_pattern' => '05\d{4}',
|
|
],
|
|
'ARA' => [
|
|
'name' => 'Arauca',
|
|
'iso_code' => 'CO-ARA',
|
|
'postal_code_pattern' => '81\d{4}',
|
|
],
|
|
'ATL' => [
|
|
'name' => 'Atlántico',
|
|
'iso_code' => 'CO-ATL',
|
|
'postal_code_pattern' => '08\d{4}',
|
|
],
|
|
'BOL' => [
|
|
'name' => 'Bolívar',
|
|
'iso_code' => 'CO-BOL',
|
|
'postal_code_pattern' => '13\d{4}',
|
|
],
|
|
'BOY' => [
|
|
'name' => 'Boyacá',
|
|
'iso_code' => 'CO-BOY',
|
|
'postal_code_pattern' => '15\d{4}',
|
|
],
|
|
'CAL' => [
|
|
'name' => 'Caldas',
|
|
'iso_code' => 'CO-CAL',
|
|
'postal_code_pattern' => '17\d{4}',
|
|
],
|
|
'CAQ' => [
|
|
'name' => 'Caquetá',
|
|
'iso_code' => 'CO-CAQ',
|
|
'postal_code_pattern' => '18\d{4}',
|
|
],
|
|
'CAS' => [
|
|
'name' => 'Casanare',
|
|
'iso_code' => 'CO-CAS',
|
|
'postal_code_pattern' => '85\d{4}',
|
|
],
|
|
'CAU' => [
|
|
'name' => 'Cauca',
|
|
'iso_code' => 'CO-CAU',
|
|
'postal_code_pattern' => '19\d{4}',
|
|
],
|
|
'CES' => [
|
|
'name' => 'Cesar',
|
|
'iso_code' => 'CO-CES',
|
|
'postal_code_pattern' => '20\d{4}',
|
|
],
|
|
'COR' => [
|
|
'name' => 'Córdoba',
|
|
'iso_code' => 'CO-COR',
|
|
'postal_code_pattern' => '23\d{4}',
|
|
],
|
|
'CUN' => [
|
|
'name' => 'Cundinamarca',
|
|
'iso_code' => 'CO-CUN',
|
|
'postal_code_pattern' => '25\d{4}',
|
|
],
|
|
'CHO' => [
|
|
'name' => 'Chocó',
|
|
'iso_code' => 'CO-CHO',
|
|
'postal_code_pattern' => '27\d{4}',
|
|
],
|
|
'GUA' => [
|
|
'name' => 'Guanía',
|
|
'iso_code' => 'CO-GUA',
|
|
'postal_code_pattern' => '94\d{4}',
|
|
],
|
|
'GUV' => [
|
|
'name' => 'Guaviare',
|
|
'iso_code' => 'CO-GUV',
|
|
'postal_code_pattern' => '95\d{4}',
|
|
],
|
|
'HUI' => [
|
|
'name' => 'Huila',
|
|
'iso_code' => 'CO-HUI',
|
|
'postal_code_pattern' => '41\d{4}',
|
|
],
|
|
'LAG' => [
|
|
'name' => 'La Guajira',
|
|
'iso_code' => 'CO-LAG',
|
|
'postal_code_pattern' => '44\d{4}',
|
|
],
|
|
'MAG' => [
|
|
'name' => 'Magdalena',
|
|
'iso_code' => 'CO-MAG',
|
|
'postal_code_pattern' => '47\d{4}',
|
|
],
|
|
'MET' => [
|
|
'name' => 'Meta',
|
|
'iso_code' => 'CO-MET',
|
|
'postal_code_pattern' => '50\d{4}',
|
|
],
|
|
'NAR' => [
|
|
'name' => 'Nariño',
|
|
'iso_code' => 'CO-NAR',
|
|
'postal_code_pattern' => '52\d{4}',
|
|
],
|
|
'NSA' => [
|
|
'name' => 'Norte de Santander',
|
|
'iso_code' => 'CO-NSA',
|
|
'postal_code_pattern' => '54\d{4}',
|
|
],
|
|
'PUT' => [
|
|
'name' => 'Putumayo',
|
|
'iso_code' => 'CO-PUT',
|
|
'postal_code_pattern' => '86\d{4}',
|
|
],
|
|
'QUI' => [
|
|
'name' => 'Quindío',
|
|
'iso_code' => 'CO-QUI',
|
|
'postal_code_pattern' => '63\d{4}',
|
|
],
|
|
'RIS' => [
|
|
'name' => 'Risaralda',
|
|
'iso_code' => 'CO-RIS',
|
|
'postal_code_pattern' => '66\d{4}',
|
|
],
|
|
'SAP' => [
|
|
'name' => 'San Andrés, Providencia y Santa Catalina',
|
|
'iso_code' => 'CO-SAP',
|
|
'postal_code_pattern' => '88\d{4}',
|
|
],
|
|
'SAN' => [
|
|
'name' => 'Santander',
|
|
'iso_code' => 'CO-SAN',
|
|
'postal_code_pattern' => '68\d{4}',
|
|
],
|
|
'SUC' => [
|
|
'name' => 'Sucre',
|
|
'iso_code' => 'CO-SUC',
|
|
'postal_code_pattern' => '70\d{4}',
|
|
],
|
|
'TOL' => [
|
|
'name' => 'Tolima',
|
|
'iso_code' => 'CO-TOL',
|
|
'postal_code_pattern' => '73\d{4}',
|
|
],
|
|
'VAC' => [
|
|
'name' => 'Valle del Cauca',
|
|
'iso_code' => 'CO-VAC',
|
|
'postal_code_pattern' => '76\d{4}',
|
|
],
|
|
'VAU' => [
|
|
'name' => 'Vaupés',
|
|
'iso_code' => 'CO-VAU',
|
|
'postal_code_pattern' => '97\d{4}',
|
|
],
|
|
'VID' => [
|
|
'name' => 'Vichada',
|
|
'iso_code' => 'CO-VID',
|
|
'postal_code_pattern' => '99\d{4}',
|
|
],
|
|
];
|
|
|
|
return isset($subdivisionCustomizations[$group]) ? $subdivisionCustomizations[$group] : [];
|
|
}
|