From 970ebe078461c07805e513c09ce525abb9d78c97 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Thu, 6 Jul 2006 22:52:50 +0000 Subject: [PATCH] - include US states from sbox - methods to translate between country-code and -name - methods to return a translated country-list --- phpgwapi/inc/class.country.inc.php | 719 +++++++++++++++++------------ 1 file changed, 436 insertions(+), 283 deletions(-) diff --git a/phpgwapi/inc/class.country.inc.php b/phpgwapi/inc/class.country.inc.php index aa8ad7681e..643e89d04a 100755 --- a/phpgwapi/inc/class.country.inc.php +++ b/phpgwapi/inc/class.country.inc.php @@ -1,291 +1,444 @@ * - * -------------------------------------------- * - * This program is free software; you can redistribute it and/or modify it * - * under the terms of the GNU General Public License as published by the * - * Free Software Foundation; either version 2 of the License, or (at your * - * option) any later version. * - \**************************************************************************/ +/**************************************************************************\ +* eGroupWare - Country Codes * +* http://www.egroupware.org * +* Written by Mark Peters * +* -------------------------------------------- * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU General Public License as published by the * +* Free Software Foundation; either version 2 of the License, or (at your * +* option) any later version. * +\**************************************************************************/ - /* $Id$ */ +/* $Id$ */ + +/** + * 2-digit ISO 3166 Country codes + * + * http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html + */ +class country +{ + /** + * array with 2-letter iso-3166 country-code => country-name pairs + * + * @var array + */ + var $country_array = array( + 'AF' => 'AFGHANISTAN', + 'AL' => 'ALBANIA', + 'DZ' => 'ALGERIA', + 'AS' => 'AMERICAN SAMOA', + 'AD' => 'ANDORRA', + 'AO' => 'ANGOLA', + 'AI' => 'ANGUILLA', + 'AQ' => 'ANTARCTICA', + 'AG' => 'ANTIGUA AND BARBUDA', + 'AR' => 'ARGENTINA', + 'AM' => 'ARMENIA', + 'AW' => 'ARUBA', + 'AU' => 'AUSTRALIA', + 'AT' => 'AUSTRIA', + 'AZ' => 'AZERBAIJAN', + 'BS' => 'BAHAMAS', + 'BH' => 'BAHRAIN', + 'BD' => 'BANGLADESH', + 'BB' => 'BARBADOS', + 'BY' => 'BELARUS', + 'BE' => 'BELGIUM', + 'BZ' => 'BELIZE', + 'BJ' => 'BENIN', + 'BM' => 'BERMUDA', + 'BT' => 'BHUTAN', + 'BO' => 'BOLIVIA', + 'BA' => 'BOSNIA AND HERZEGOVINA', + 'BW' => 'BOTSWANA', + 'BV' => 'BOUVET ISLAND', + 'BR' => 'BRAZIL', + 'IO' => 'BRITISH INDIAN OCEAN TERRITORY', + 'BN' => 'BRUNEI DARUSSALAM', + 'BG' => 'BULGARIA', + 'BF' => 'BURKINA FASO', + 'BI' => 'BURUNDI', + 'KH' => 'CAMBODIA', + 'CM' => 'CAMEROON', + 'CA' => 'CANADA', + 'CV' => 'CAPE VERDE', + 'KY' => 'CAYMAN ISLANDS', + 'CF' => 'CENTRAL AFRICAN REPUBLIC', + 'TD' => 'CHAD', + 'CL' => 'CHILE', + 'CN' => 'CHINA', + 'CX' => 'CHRISTMAS ISLAND', + 'CC' => 'COCOS (KEELING) ISLANDS', + 'CO' => 'COLOMBIA', + 'KM' => 'COMOROS', + 'CG' => 'CONGO', + 'CD' => 'CONGO, THE DEMOCRATIC REPUBLIC OF THE', + 'CK' => 'COOK ISLANDS', + 'CR' => 'COSTA RICA', + 'CI' => 'COTE D IVOIRE', + 'HR' => 'CROATIA', + 'CU' => 'CUBA', + 'CY' => 'CYPRUS', + 'CZ' => 'CZECH REPUBLIC', + 'DK' => 'DENMARK', + 'DJ' => 'DJIBOUTI', + 'DM' => 'DOMINICA', + 'DO' => 'DOMINICAN REPUBLIC', + 'TP' => 'EAST TIMOR', + 'EC' => 'ECUADOR', + 'EG' => 'EGYPT', + 'SV' => 'EL SALVADOR', + 'GQ' => 'EQUATORIAL GUINEA', + 'ER' => 'ERITREA', + 'EE' => 'ESTONIA', + 'ET' => 'ETHIOPIA', + 'FK' => 'FALKLAND ISLANDS (MALVINAS)', + 'FO' => 'FAROE ISLANDS', + 'FJ' => 'FIJI', + 'FI' => 'FINLAND', + 'FR' => 'FRANCE', + 'GF' => 'FRENCH GUIANA', + 'PF' => 'FRENCH POLYNESIA', + 'TF' => 'FRENCH SOUTHERN TERRITORIES', + 'GA' => 'GABON', + 'GM' => 'GAMBIA', + 'GE' => 'GEORGIA', + 'DE' => 'GERMANY', + 'GH' => 'GHANA', + 'GI' => 'GIBRALTAR', + 'GR' => 'GREECE', + 'GL' => 'GREENLAND', + 'GD' => 'GRENADA', + 'GP' => 'GUADELOUPE', + 'GU' => 'GUAM', + 'GT' => 'GUATEMALA', + 'GN' => 'GUINEA', + 'GW' => 'GUINEA-BISSAU', + 'GY' => 'GUYANA', + 'HT' => 'HAITI', + 'HM' => 'HEARD ISLAND AND MCDONALD ISLANDS', + 'VA' => 'HOLY SEE (VATICAN CITY STATE)', + 'HN' => 'HONDURAS', + 'HK' => 'HONG KONG', + 'HU' => 'HUNGARY', + 'IS' => 'ICELAND', + 'IN' => 'INDIA', + 'ID' => 'INDONESIA', + 'IR' => 'IRAN, ISLAMIC REPUBLIC OF', + 'IQ' => 'IRAQ', + 'IE' => 'IRELAND', + 'IL' => 'ISRAEL', + 'IT' => 'ITALY', + 'JM' => 'JAMAICA', + 'JP' => 'JAPAN', + 'JO' => 'JORDAN', + 'KZ' => 'KAZAKSTAN', + 'KE' => 'KENYA', + 'KI' => 'KIRIBATI', + 'KP' => 'KOREA DEMOCRATIC PEOPLES REPUBLIC OF', + 'KR' => 'KOREA REPUBLIC OF', + 'KW' => 'KUWAIT', + 'KG' => 'KYRGYZSTAN', + 'LA' => 'LAO PEOPLES DEMOCRATIC REPUBLIC', + 'LV' => 'LATVIA', + 'LB' => 'LEBANON', + 'LS' => 'LESOTHO', + 'LR' => 'LIBERIA', + 'LY' => 'LIBYAN ARAB JAMAHIRIYA', + 'LI' => 'LIECHTENSTEIN', + 'LT' => 'LITHUANIA', + 'LU' => 'LUXEMBOURG', + 'MO' => 'MACAU', + 'MK' => 'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF', + 'MG' => 'MADAGASCAR', + 'MW' => 'MALAWI', + 'MY' => 'MALAYSIA', + 'MV' => 'MALDIVES', + 'ML' => 'MALI', + 'MT' => 'MALTA', + 'MH' => 'MARSHALL ISLANDS', + 'MQ' => 'MARTINIQUE', + 'MR' => 'MAURITANIA', + 'MU' => 'MAURITIUS', + 'YT' => 'MAYOTTE', + 'MX' => 'MEXICO', + 'FM' => 'MICRONESIA, FEDERATED STATES OF', + 'MD' => 'MOLDOVA, REPUBLIC OF', + 'MC' => 'MONACO', + 'MN' => 'MONGOLIA', + 'MS' => 'MONTSERRAT', + 'MA' => 'MOROCCO', + 'MZ' => 'MOZAMBIQUE', + 'MM' => 'MYANMAR', + 'NA' => 'NAMIBIA', + 'NR' => 'NAURU', + 'NP' => 'NEPAL', + 'NL' => 'NETHERLANDS', + 'AN' => 'NETHERLANDS ANTILLES', + 'NC' => 'NEW CALEDONIA', + 'NZ' => 'NEW ZEALAND', + 'NI' => 'NICARAGUA', + 'NE' => 'NIGER', + 'NG' => 'NIGERIA', + 'NU' => 'NIUE', + 'NF' => 'NORFOLK ISLAND', + 'MP' => 'NORTHERN MARIANA ISLANDS', + 'NO' => 'NORWAY', + 'OM' => 'OMAN', + 'PK' => 'PAKISTAN', + 'PW' => 'PALAU', + 'PS' => 'PALESTINIAN TERRITORY, OCCUPIED', + 'PA' => 'PANAMA', + 'PG' => 'PAPUA NEW GUINEA', + 'PY' => 'PARAGUAY', + 'PE' => 'PERU', + 'PH' => 'PHILIPPINES', + 'PN' => 'PITCAIRN', + 'PL' => 'POLAND', + 'PT' => 'PORTUGAL', + 'PR' => 'PUERTO RICO', + 'QA' => 'QATAR', + 'RE' => 'REUNION', + 'RO' => 'ROMANIA', + 'RU' => 'RUSSIAN FEDERATION', + 'RW' => 'RWANDA', + 'SH' => 'SAINT HELENA', + 'KN' => 'SAINT KITTS AND NEVIS', + 'LC' => 'SAINT LUCIA', + 'PM' => 'SAINT PIERRE AND MIQUELON', + 'VC' => 'SAINT VINCENT AND THE GRENADINES', + 'WS' => 'SAMOA', + 'SM' => 'SAN MARINO', + 'ST' => 'SAO TOME AND PRINCIPE', + 'SA' => 'SAUDI ARABIA', + 'SN' => 'SENEGAL', + 'SC' => 'SEYCHELLES', + 'SL' => 'SIERRA LEONE', + 'SG' => 'SINGAPORE', + 'SK' => 'SLOVAKIA', + 'SI' => 'SLOVENIA', + 'SB' => 'SOLOMON ISLANDS', + 'SO' => 'SOMALIA', + 'ZA' => 'SOUTH AFRICA', + 'GS' => 'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS', + 'ES' => 'SPAIN', + 'LK' => 'SRI LANKA', + 'SD' => 'SUDAN', + 'SR' => 'SURINAME', + 'SJ' => 'SVALBARD AND JAN MAYEN', + 'SZ' => 'SWAZILAND', + 'SE' => 'SWEDEN', + 'CH' => 'SWITZERLAND', + 'SY' => 'SYRIAN ARAB REPUBLIC', + 'TW' => 'TAIWAN', + 'TJ' => 'TAJIKISTAN', + 'TZ' => 'TANZANIA, UNITED REPUBLIC OF', + 'TH' => 'THAILAND', + 'TG' => 'TOGO', + 'TK' => 'TOKELAU', + 'TO' => 'TONGA', + 'TT' => 'TRINIDAD AND TOBAGO', + 'TN' => 'TUNISIA', + 'TR' => 'TURKEY', + 'TM' => 'TURKMENISTAN', + 'TC' => 'TURKS AND CAICOS ISLANDS', + 'TV' => 'TUVALU', + 'UG' => 'UGANDA', + 'UA' => 'UKRAINE', + 'AE' => 'UNITED ARAB EMIRATES', + 'GB' => 'UNITED KINGDOM', + 'US' => 'UNITED STATES', + 'UM' => 'UNITED STATES MINOR OUTLYING ISLANDS', + 'UY' => 'URUGUAY', + 'UZ' => 'UZBEKISTAN', + 'VU' => 'VANUATU', + 'VE' => 'VENEZUELA', + 'VN' => 'VIET NAM', + 'VG' => 'VIRGIN ISLANDS, BRITISH', + 'VI' => 'VIRGIN ISLANDS, U.S.', + 'WF' => 'WALLIS AND FUTUNA', + 'EH' => 'WESTERN SAHARA', + 'YE' => 'YEMEN', + 'YU' => 'YUGOSLAVIA', + 'ZM' => 'ZAMBIA', + 'ZW' => 'ZIMBABWE' + ); + /** + * translated list, set by country::_translate + * + * @var array + */ + var $countries_translated; + /** + * List of US states as 2-letter code => name pairs + * + * @var array + */ + var $us_states_array = array( + '--' => 'non US', + 'AL' => 'Alabama', + 'AK' => 'Alaska', + 'AZ' => 'Arizona', + 'AR' => 'Arkansas', + 'CA' => 'California', + 'CO' => 'Colorado', + 'CT' => 'Connecticut', + 'DE' => 'Delaware', + 'DC' => 'District of Columbia', + 'FL' => 'Florida', + 'GA' => 'Georgia', + 'HI' => 'Hawaii', + 'ID' => 'Idaho', + 'IL' => 'Illinois', + 'IN' => 'Indiana', + 'IA' => 'Iowa', + 'KS' => 'Kansas', + 'KY' => 'Kentucky', + 'LA' => 'Louisiana', + 'ME' => 'Maine', + 'MD' => 'Maryland', + 'MA' => 'Massachusetts', + 'MI' => 'Michigan', + 'MN' => 'Minnesota', + 'MO' => 'Missouri', + 'MS' => 'Mississippi', + 'MT' => 'Montana', + 'NC' => 'North Carolina', + 'ND' => 'Noth Dakota', + 'NE' => 'Nebraska', + 'NH' => 'New Hampshire', + 'NJ' => 'New Jersey', + 'NM' => 'New Mexico', + 'NV' => 'Nevada', + 'NY' => 'New York', + 'OH' => 'Ohio', + 'OK' => 'Oklahoma', + 'OR' => 'Oregon', + 'PA' => 'Pennsylvania', + 'RI' => 'Rhode Island', + 'SC' => 'South Carolina', + 'SD' => 'South Dakota', + 'TN' => 'Tennessee', + 'TX' => 'Texas', + 'UT' => 'Utah', + 'VA' => 'Virginia', + 'VT' => 'Vermont', + 'WA' => 'Washington', + 'WI' => 'Wisconsin', + 'WV' => 'West Virginia', + 'WY' => 'Wyoming' + ); /** - * 2-digit ISO 3166 Country codes + * Get list of US states * - * http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html + * @return array with code => name pairs */ - class country + function us_states() { - var $country_array; - - function country() - { - $this->country_array = array( - ' ' => 'Select One', - 'AF' => 'AFGHANISTAN', - 'AL' => 'ALBANIA', - 'DZ' => 'ALGERIA', - 'AS' => 'AMERICAN SAMOA', - 'AD' => 'ANDORRA', - 'AO' => 'ANGOLA', - 'AI' => 'ANGUILLA', - 'AQ' => 'ANTARCTICA', - 'AG' => 'ANTIGUA AND BARBUDA', - 'AR' => 'ARGENTINA', - 'AM' => 'ARMENIA', - 'AW' => 'ARUBA', - 'AU' => 'AUSTRALIA', - 'AT' => 'AUSTRIA', - 'AZ' => 'AZERBAIJAN', - 'BS' => 'BAHAMAS', - 'BH' => 'BAHRAIN', - 'BD' => 'BANGLADESH', - 'BB' => 'BARBADOS', - 'BY' => 'BELARUS', - 'BE' => 'BELGIUM', - 'BZ' => 'BELIZE', - 'BJ' => 'BENIN', - 'BM' => 'BERMUDA', - 'BT' => 'BHUTAN', - 'BO' => 'BOLIVIA', - 'BA' => 'BOSNIA AND HERZEGOVINA', - 'BW' => 'BOTSWANA', - 'BV' => 'BOUVET ISLAND', - 'BR' => 'BRAZIL', - 'IO' => 'BRITISH INDIAN OCEAN TERRITORY', - 'BN' => 'BRUNEI DARUSSALAM', - 'BG' => 'BULGARIA', - 'BF' => 'BURKINA FASO', - 'BI' => 'BURUNDI', - 'KH' => 'CAMBODIA', - 'CM' => 'CAMEROON', - 'CA' => 'CANADA', - 'CV' => 'CAPE VERDE', - 'KY' => 'CAYMAN ISLANDS', - 'CF' => 'CENTRAL AFRICAN REPUBLIC', - 'TD' => 'CHAD', - 'CL' => 'CHILE', - 'CN' => 'CHINA', - 'CX' => 'CHRISTMAS ISLAND', - 'CC' => 'COCOS (KEELING) ISLANDS', - 'CO' => 'COLOMBIA', - 'KM' => 'COMOROS', - 'CG' => 'CONGO', - 'CD' => 'CONGO, THE DEMOCRATIC REPUBLIC OF THE', - 'CK' => 'COOK ISLANDS', - 'CR' => 'COSTA RICA', - 'CI' => 'COTE D IVOIRE', - 'HR' => 'CROATIA', - 'CU' => 'CUBA', - 'CY' => 'CYPRUS', - 'CZ' => 'CZECH REPUBLIC', - 'DK' => 'DENMARK', - 'DJ' => 'DJIBOUTI', - 'DM' => 'DOMINICA', - 'DO' => 'DOMINICAN REPUBLIC', - 'TP' => 'EAST TIMOR', - 'EC' => 'ECUADOR', - 'EG' => 'EGYPT', - 'SV' => 'EL SALVADOR', - 'GQ' => 'EQUATORIAL GUINEA', - 'ER' => 'ERITREA', - 'EE' => 'ESTONIA', - 'ET' => 'ETHIOPIA', - 'FK' => 'FALKLAND ISLANDS (MALVINAS)', - 'FO' => 'FAROE ISLANDS', - 'FJ' => 'FIJI', - 'FI' => 'FINLAND', - 'FR' => 'FRANCE', - 'GF' => 'FRENCH GUIANA', - 'PF' => 'FRENCH POLYNESIA', - 'TF' => 'FRENCH SOUTHERN TERRITORIES', - 'GA' => 'GABON', - 'GM' => 'GAMBIA', - 'GE' => 'GEORGIA', - 'DE' => 'GERMANY', - 'GH' => 'GHANA', - 'GI' => 'GIBRALTAR', - 'GR' => 'GREECE', - 'GL' => 'GREENLAND', - 'GD' => 'GRENADA', - 'GP' => 'GUADELOUPE', - 'GU' => 'GUAM', - 'GT' => 'GUATEMALA', - 'GN' => 'GUINEA', - 'GW' => 'GUINEA-BISSAU', - 'GY' => 'GUYANA', - 'HT' => 'HAITI', - 'HM' => 'HEARD ISLAND AND MCDONALD ISLANDS', - 'VA' => 'HOLY SEE (VATICAN CITY STATE)', - 'HN' => 'HONDURAS', - 'HK' => 'HONG KONG', - 'HU' => 'HUNGARY', - 'IS' => 'ICELAND', - 'IN' => 'INDIA', - 'ID' => 'INDONESIA', - 'IR' => 'IRAN, ISLAMIC REPUBLIC OF', - 'IQ' => 'IRAQ', - 'IE' => 'IRELAND', - 'IL' => 'ISRAEL', - 'IT' => 'ITALY', - 'JM' => 'JAMAICA', - 'JP' => 'JAPAN', - 'JO' => 'JORDAN', - 'KZ' => 'KAZAKSTAN', - 'KE' => 'KENYA', - 'KI' => 'KIRIBATI', - 'KP' => 'KOREA DEMOCRATIC PEOPLES REPUBLIC OF', - 'KR' => 'KOREA REPUBLIC OF', - 'KW' => 'KUWAIT', - 'KG' => 'KYRGYZSTAN', - 'LA' => 'LAO PEOPLES DEMOCRATIC REPUBLIC', - 'LV' => 'LATVIA', - 'LB' => 'LEBANON', - 'LS' => 'LESOTHO', - 'LR' => 'LIBERIA', - 'LY' => 'LIBYAN ARAB JAMAHIRIYA', - 'LI' => 'LIECHTENSTEIN', - 'LT' => 'LITHUANIA', - 'LU' => 'LUXEMBOURG', - 'MO' => 'MACAU', - 'MK' => 'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF', - 'MG' => 'MADAGASCAR', - 'MW' => 'MALAWI', - 'MY' => 'MALAYSIA', - 'MV' => 'MALDIVES', - 'ML' => 'MALI', - 'MT' => 'MALTA', - 'MH' => 'MARSHALL ISLANDS', - 'MQ' => 'MARTINIQUE', - 'MR' => 'MAURITANIA', - 'MU' => 'MAURITIUS', - 'YT' => 'MAYOTTE', - 'MX' => 'MEXICO', - 'FM' => 'MICRONESIA, FEDERATED STATES OF', - 'MD' => 'MOLDOVA, REPUBLIC OF', - 'MC' => 'MONACO', - 'MN' => 'MONGOLIA', - 'MS' => 'MONTSERRAT', - 'MA' => 'MOROCCO', - 'MZ' => 'MOZAMBIQUE', - 'MM' => 'MYANMAR', - 'NA' => 'NAMIBIA', - 'NR' => 'NAURU', - 'NP' => 'NEPAL', - 'NL' => 'NETHERLANDS', - 'AN' => 'NETHERLANDS ANTILLES', - 'NC' => 'NEW CALEDONIA', - 'NZ' => 'NEW ZEALAND', - 'NI' => 'NICARAGUA', - 'NE' => 'NIGER', - 'NG' => 'NIGERIA', - 'NU' => 'NIUE', - 'NF' => 'NORFOLK ISLAND', - 'MP' => 'NORTHERN MARIANA ISLANDS', - 'NO' => 'NORWAY', - 'OM' => 'OMAN', - 'PK' => 'PAKISTAN', - 'PW' => 'PALAU', - 'PS' => 'PALESTINIAN TERRITORY, OCCUPIED', - 'PA' => 'PANAMA', - 'PG' => 'PAPUA NEW GUINEA', - 'PY' => 'PARAGUAY', - 'PE' => 'PERU', - 'PH' => 'PHILIPPINES', - 'PN' => 'PITCAIRN', - 'PL' => 'POLAND', - 'PT' => 'PORTUGAL', - 'PR' => 'PUERTO RICO', - 'QA' => 'QATAR', - 'RE' => 'REUNION', - 'RO' => 'ROMANIA', - 'RU' => 'RUSSIAN FEDERATION', - 'RW' => 'RWANDA', - 'SH' => 'SAINT HELENA', - 'KN' => 'SAINT KITTS AND NEVIS', - 'LC' => 'SAINT LUCIA', - 'PM' => 'SAINT PIERRE AND MIQUELON', - 'VC' => 'SAINT VINCENT AND THE GRENADINES', - 'WS' => 'SAMOA', - 'SM' => 'SAN MARINO', - 'ST' => 'SAO TOME AND PRINCIPE', - 'SA' => 'SAUDI ARABIA', - 'SN' => 'SENEGAL', - 'SC' => 'SEYCHELLES', - 'SL' => 'SIERRA LEONE', - 'SG' => 'SINGAPORE', - 'SK' => 'SLOVAKIA', - 'SI' => 'SLOVENIA', - 'SB' => 'SOLOMON ISLANDS', - 'SO' => 'SOMALIA', - 'ZA' => 'SOUTH AFRICA', - 'GS' => 'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS', - 'ES' => 'SPAIN', - 'LK' => 'SRI LANKA', - 'SD' => 'SUDAN', - 'SR' => 'SURINAME', - 'SJ' => 'SVALBARD AND JAN MAYEN', - 'SZ' => 'SWAZILAND', - 'SE' => 'SWEDEN', - 'CH' => 'SWITZERLAND', - 'SY' => 'SYRIAN ARAB REPUBLIC', - 'TW' => 'TAIWAN', - 'TJ' => 'TAJIKISTAN', - 'TZ' => 'TANZANIA, UNITED REPUBLIC OF', - 'TH' => 'THAILAND', - 'TG' => 'TOGO', - 'TK' => 'TOKELAU', - 'TO' => 'TONGA', - 'TT' => 'TRINIDAD AND TOBAGO', - 'TN' => 'TUNISIA', - 'TR' => 'TURKEY', - 'TM' => 'TURKMENISTAN', - 'TC' => 'TURKS AND CAICOS ISLANDS', - 'TV' => 'TUVALU', - 'UG' => 'UGANDA', - 'UA' => 'UKRAINE', - 'AE' => 'UNITED ARAB EMIRATES', - 'GB' => 'UNITED KINGDOM', - 'US' => 'UNITED STATES', - 'UM' => 'UNITED STATES MINOR OUTLYING ISLANDS', - 'UY' => 'URUGUAY', - 'UZ' => 'UZBEKISTAN', - 'VU' => 'VANUATU', - 'VE' => 'VENEZUELA', - 'VN' => 'VIET NAM', - 'VG' => 'VIRGIN ISLANDS, BRITISH', - 'VI' => 'VIRGIN ISLANDS, U.S.', - 'WF' => 'WALLIS AND FUTUNA', - 'EH' => 'WESTERN SAHARA', - 'YE' => 'YEMEN', - 'YU' => 'YUGOSLAVIA', - 'ZM' => 'ZAMBIA', - 'ZW' => 'ZIMBABWE' - ); - } - - function form_select($selected,$name='') - { - if($name=='') - { - $name = 'country'; - } - $str = ''."\n"; - return $str; - } - - function get_full_name($selected) - { - return($this->country_array[$selected]); - } + return $this->us_states_array; } -?> + + /** + * Selectbox for country-selection + * + * @deprecated use html::select with country_array + * @param string $selected 2-letter iso country-code + * @param string $name='country' + * @return string + */ + function form_select($code,$name='country') + { + if (!is_object($GLOBALS['egw']->html)) + { + $GLOBALS['egw']->html =& CreateObject('phpgwapi.html'); + } + return $GLOBALS['egw']->html->select($name,strtoupper($code),$this->country_array); + } + + /** + * Get country-name from the 2-letter iso code + * + * @param string $selected 2-letter iso country-code + * @param boolean $translated=true use translated name or english + * @return string + */ + function get_full_name($code,$translated=true) + { + if ($translated) + { + if (!$this->countries_translated) $this->_translate_countries(); + + return $this->countries_translated[strtoupper($code)]; + } + return $this->country_array[strtoupper($code)]; + } + + /** + * Get the 2-letter code for a given country name + * + * @param string $name + * @return string 2-letter code or $name if no code found + */ + function country_code($name) + { + // search case-insensitive all translations for the english phrase of given country $name + // we do that to catch all possible cases of translations + if (($name_en = $GLOBALS['egw']->translation->get_message_id($name,'common'))) + { + $name = strtoupper($name_en); + } + if (($code = array_search(strtoupper($name),$this->country_array)) !== false) + { + return $code; + } + if (!$this->countries_translated) $this->_translate_countries(); + + if (($code = array_search(strtoupper($name),$this->countries_translated)) !== false || + ($code = array_search($name,$this->countries_translated)) !== false) + { + return $code; + } + return $name; + } + + /** + * Get list of country names + * + * @param boolean $translated=true use translated names or english + * @return array with 2-letter code => name pairs + */ + function countries($translated=true) + { + if ($translated) + { + $this->_translate_countries(); + + return $this->countries_translated; + } + return $this->country_array; + } + + /** + * Fill and sort the translated countries array + * + * @internal + */ + function _translate_countries() + { + if ($this->countries_translated) return; + + $this->countries_translated = $this->country_array; + // try to translate them and sort alphabetic + foreach($this->countries_translated as $k => $name) + { + if (($translated = lang($name)) != $name.'*') + { + $this->countries_translated[$k] = $translated; + } + } + asort($this->countries_translated); + } +}