public function get_country_locale()
{
if (empty($this->locale)) {
// Locale information used by the checkout
$this->locale = apply_filters('woocommerce_get_country_locale', array('AE' => array('postcode' => array('required' => false, 'hidden' => true)), 'AF' => array('state' => array('required' => false)), 'AT' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'AU' => array('city' => array('label' => __('Suburb', 'woocommerce')), 'postcode' => array('label' => __('Postcode', 'woocommerce')), 'state' => array('label' => __('State', 'woocommerce'))), 'AX' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'BD' => array('postcode' => array('required' => false), 'state' => array('label' => __('District', 'woocommerce'))), 'BE' => array('postcode_before_city' => true, 'state' => array('required' => false, 'label' => __('Province', 'woocommerce'))), 'BI' => array('state' => array('required' => false)), 'BO' => array('postcode' => array('required' => false, 'hidden' => true)), 'BS' => array('postcode' => array('required' => false, 'hidden' => true)), 'CA' => array('state' => array('label' => __('Province', 'woocommerce'))), 'CH' => array('postcode_before_city' => true, 'state' => array('label' => __('Canton', 'woocommerce'), 'required' => false)), 'CL' => array('city' => array('required' => true), 'postcode' => array('required' => false), 'state' => array('label' => __('Region', 'woocommerce'))), 'CN' => array('state' => array('label' => __('Province', 'woocommerce'))), 'CO' => array('postcode' => array('required' => false)), 'CZ' => array('state' => array('required' => false)), 'DE' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'DK' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'EE' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'FI' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'FR' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'HK' => array('postcode' => array('required' => false), 'city' => array('label' => __('Town / District', 'woocommerce')), 'state' => array('label' => __('Region', 'woocommerce'))), 'HU' => array('state' => array('label' => __('County', 'woocommerce'))), 'ID' => array('state' => array('label' => __('Province', 'woocommerce'))), 'IE' => array('postcode' => array('required' => false, 'label' => __('Eircode', 'woocommerce')), 'state' => array('label' => __('County', 'woocommerce'))), 'IS' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'IL' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'IT' => array('postcode_before_city' => true, 'state' => array('required' => true, 'label' => __('Province', 'woocommerce'))), 'JP' => array('state' => array('label' => __('Prefecture', 'woocommerce'))), 'KR' => array('state' => array('required' => false)), 'NL' => array('postcode_before_city' => true, 'state' => array('required' => false, 'label' => __('Province', 'woocommerce'))), 'NZ' => array('postcode' => array('label' => __('Postcode', 'woocommerce')), 'state' => array('required' => false, 'label' => __('Region', 'woocommerce'))), 'NO' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'NP' => array('state' => array('label' => __('State / Zone', 'woocommerce')), 'postcode' => array('required' => false)), 'PL' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'PT' => array('state' => array('required' => false)), 'RO' => array('state' => array('required' => false)), 'SG' => array('state' => array('required' => false)), 'SK' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'SI' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'ES' => array('postcode_before_city' => true, 'state' => array('label' => __('Province', 'woocommerce'))), 'LI' => array('postcode_before_city' => true, 'state' => array('label' => __('Municipality', 'woocommerce'), 'required' => false)), 'LK' => array('state' => array('required' => false)), 'SE' => array('postcode_before_city' => true, 'state' => array('required' => false)), 'TR' => array('postcode_before_city' => true, 'state' => array('label' => __('Province', 'woocommerce'))), 'US' => array('postcode' => array('label' => __('ZIP', 'woocommerce')), 'state' => array('label' => __('State', 'woocommerce'))), 'GB' => array('postcode' => array('label' => __('Postcode', 'woocommerce')), 'state' => array('label' => __('County', 'woocommerce'), 'required' => false)), 'VN' => array('postcode_before_city' => true, 'state' => array('required' => false), 'postcode' => array('required' => false, 'hidden' => false), 'address_2' => array('required' => false, 'hidden' => true)), 'WS' => array('postcode' => array('required' => false, 'hidden' => true)), 'ZA' => array('state' => array('label' => __('Province', 'woocommerce'))), 'ZW' => array('postcode' => array('required' => false, 'hidden' => true))));
$this->locale = array_intersect_key($this->locale, array_merge($this->get_allowed_countries(), $this->get_shipping_countries()));
// Default Locale Can be filtered to override fields in get_address_fields().
// Countries with no specific locale will use default.
$this->locale['default'] = apply_filters('woocommerce_get_country_locale_default', $this->get_default_address_fields());
// Filter default AND shop base locales to allow overides via a single function. These will be used when changing countries on the checkout
if (!isset($this->locale[$this->get_base_country()])) {
$this->locale[$this->get_base_country()] = $this->locale['default'];
}
$this->locale['default'] = apply_filters('woocommerce_get_country_locale_base', $this->locale['default']);
$this->locale[$this->get_base_country()] = apply_filters('woocommerce_get_country_locale_base', $this->locale[$this->get_base_country()]);
}
return $this->locale;
}