diff options
-rw-r--r-- | build/share/xml/iso-codes/iso_3166.xml | 1703 | ||||
-rw-r--r-- | build/share/xml/iso-codes/iso_639.xml | 2169 | ||||
-rw-r--r-- | config.h | 1 | ||||
-rw-r--r-- | dep-x64/deps-x64.txt | 1 | ||||
-rw-r--r-- | dep-x86/deps-x86.txt | 1 | ||||
-rw-r--r-- | src/fe-gtk/makefile.mak | 2 | ||||
-rw-r--r-- | src/fe-gtk/sexy-iso-codes.c | 301 | ||||
-rw-r--r-- | src/fe-gtk/sexy-iso-codes.h | 37 | ||||
-rw-r--r-- | src/fe-gtk/sexy-marshal.c | 129 | ||||
-rw-r--r-- | src/fe-gtk/sexy-marshal.h | 28 | ||||
-rw-r--r-- | src/fe-gtk/sexy-spell-entry.c | 27 | ||||
-rw-r--r-- | src/makeinc.skel.mak | 2 |
12 files changed, 4379 insertions, 22 deletions
diff --git a/build/share/xml/iso-codes/iso_3166.xml b/build/share/xml/iso-codes/iso_3166.xml new file mode 100644 index 00000000..77c72eb2 --- /dev/null +++ b/build/share/xml/iso-codes/iso_3166.xml @@ -0,0 +1,1703 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!-- +This file gives a list of all countries in the ISO 3166 +standard, and is used to provide translations via gettext + +Copyright (C) 2002, 2004, 2006 Alastair McKinstry <mckinstry@computer.org> +Copyright (C) 2004 Andreas Jochens <aj@andaco.de> +Copyright (C) 2004, 2007 Christian Perrier <bubulle@debian.org> +Copyright (C) 2005, 2006, 2007 Tobias Quathamer <toddy@debian.org> + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this file; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Source: <http://www.iso.org/iso/country_codes> +--> + +<!DOCTYPE iso_3166_entries [ + <!ELEMENT iso_3166_entries (iso_3166_entry+, iso_3166_3_entry*)> + <!ELEMENT iso_3166_entry EMPTY> + <!ATTLIST iso_3166_entry + alpha_2_code CDATA #REQUIRED + alpha_3_code CDATA #REQUIRED + numeric_code CDATA #REQUIRED + common_name CDATA #IMPLIED + name CDATA #REQUIRED + official_name CDATA #IMPLIED + > + <!ELEMENT iso_3166_3_entry EMPTY> + <!ATTLIST iso_3166_3_entry + alpha_4_code CDATA #REQUIRED + alpha_3_code CDATA #REQUIRED + numeric_code CDATA #IMPLIED + date_withdrawn CDATA #IMPLIED + names CDATA #REQUIRED + comment CDATA #IMPLIED + > +]> + +<iso_3166_entries> + <iso_3166_entry + alpha_2_code="AF" + alpha_3_code="AFG" + numeric_code="004" + name="Afghanistan" + official_name="Islamic Republic of Afghanistan" /> + <iso_3166_entry + alpha_2_code="AX" + alpha_3_code="ALA" + numeric_code="248" + name="Åland Islands" /> + <iso_3166_entry + alpha_2_code="AL" + alpha_3_code="ALB" + numeric_code="008" + name="Albania" + official_name="Republic of Albania" /> + <iso_3166_entry + alpha_2_code="DZ" + alpha_3_code="DZA" + numeric_code="012" + name="Algeria" + official_name="People's Democratic Republic of Algeria" /> + <iso_3166_entry + alpha_2_code="AS" + alpha_3_code="ASM" + numeric_code="016" + name="American Samoa" /> + <iso_3166_entry + alpha_2_code="AD" + alpha_3_code="AND" + numeric_code="020" + name="Andorra" + official_name="Principality of Andorra" /> + <iso_3166_entry + alpha_2_code="AO" + alpha_3_code="AGO" + numeric_code="024" + name="Angola" + official_name="Republic of Angola" /> + <iso_3166_entry + alpha_2_code="AI" + alpha_3_code="AIA" + numeric_code="660" + name="Anguilla" /> + <iso_3166_entry + alpha_2_code="AQ" + alpha_3_code="ATA" + numeric_code="010" + name="Antarctica" /> + <iso_3166_entry + alpha_2_code="AG" + alpha_3_code="ATG" + numeric_code="028" + name="Antigua and Barbuda" /> + <iso_3166_entry + alpha_2_code="AR" + alpha_3_code="ARG" + numeric_code="032" + name="Argentina" + official_name="Argentine Republic" /> + <iso_3166_entry + alpha_2_code="AM" + alpha_3_code="ARM" + numeric_code="051" + name="Armenia" + official_name="Republic of Armenia" /> + <iso_3166_entry + alpha_2_code="AW" + alpha_3_code="ABW" + numeric_code="533" + name="Aruba" /> + <iso_3166_entry + alpha_2_code="AU" + alpha_3_code="AUS" + numeric_code="036" + name="Australia" /> + <iso_3166_entry + alpha_2_code="AT" + alpha_3_code="AUT" + numeric_code="040" + name="Austria" + official_name="Republic of Austria" /> + <iso_3166_entry + alpha_2_code="AZ" + alpha_3_code="AZE" + numeric_code="031" + name="Azerbaijan" + official_name="Republic of Azerbaijan" /> + <iso_3166_entry + alpha_2_code="BS" + alpha_3_code="BHS" + numeric_code="044" + name="Bahamas" + official_name="Commonwealth of the Bahamas" /> + <iso_3166_entry + alpha_2_code="BH" + alpha_3_code="BHR" + numeric_code="048" + name="Bahrain" + official_name="Kingdom of Bahrain" /> + <iso_3166_entry + alpha_2_code="BD" + alpha_3_code="BGD" + numeric_code="050" + name="Bangladesh" + official_name="People's Republic of Bangladesh" /> + <iso_3166_entry + alpha_2_code="BB" + alpha_3_code="BRB" + numeric_code="052" + name="Barbados" /> + <iso_3166_entry + alpha_2_code="BY" + alpha_3_code="BLR" + numeric_code="112" + name="Belarus" + official_name="Republic of Belarus" /> + <iso_3166_entry + alpha_2_code="BE" + alpha_3_code="BEL" + numeric_code="056" + name="Belgium" + official_name="Kingdom of Belgium" /> + <iso_3166_entry + alpha_2_code="BZ" + alpha_3_code="BLZ" + numeric_code="084" + name="Belize" /> + <iso_3166_entry + alpha_2_code="BJ" + alpha_3_code="BEN" + numeric_code="204" + name="Benin" + official_name="Republic of Benin" /> + <iso_3166_entry + alpha_2_code="BM" + alpha_3_code="BMU" + numeric_code="060" + name="Bermuda" /> + <iso_3166_entry + alpha_2_code="BT" + alpha_3_code="BTN" + numeric_code="064" + name="Bhutan" + official_name="Kingdom of Bhutan" /> + <iso_3166_entry + alpha_2_code="BO" + alpha_3_code="BOL" + numeric_code="068" + common_name="Bolivia" + name="Bolivia, Plurinational State of" + official_name="Plurinational State of Bolivia" /> + <iso_3166_entry + alpha_2_code="BQ" + alpha_3_code="BES" + numeric_code="535" + name="Bonaire, Sint Eustatius and Saba" + official_name="Bonaire, Sint Eustatius and Saba" /> + <iso_3166_entry + alpha_2_code="BA" + alpha_3_code="BIH" + numeric_code="070" + name="Bosnia and Herzegovina" + official_name="Republic of Bosnia and Herzegovina" /> + <iso_3166_entry + alpha_2_code="BW" + alpha_3_code="BWA" + numeric_code="072" + name="Botswana" + official_name="Republic of Botswana" /> + <iso_3166_entry + alpha_2_code="BV" + alpha_3_code="BVT" + numeric_code="074" + name="Bouvet Island" /> + <iso_3166_entry + alpha_2_code="BR" + alpha_3_code="BRA" + numeric_code="076" + name="Brazil" + official_name="Federative Republic of Brazil" /> + <iso_3166_entry + alpha_2_code="IO" + alpha_3_code="IOT" + numeric_code="086" + name="British Indian Ocean Territory" /> + <iso_3166_entry + alpha_2_code="BN" + alpha_3_code="BRN" + numeric_code="096" + name="Brunei Darussalam" /> + <iso_3166_entry + alpha_2_code="BG" + alpha_3_code="BGR" + numeric_code="100" + name="Bulgaria" + official_name="Republic of Bulgaria" /> + <iso_3166_entry + alpha_2_code="BF" + alpha_3_code="BFA" + numeric_code="854" + name="Burkina Faso" /> + <iso_3166_entry + alpha_2_code="BI" + alpha_3_code="BDI" + numeric_code="108" + name="Burundi" + official_name="Republic of Burundi" /> + <iso_3166_entry + alpha_2_code="KH" + alpha_3_code="KHM" + numeric_code="116" + name="Cambodia" + official_name="Kingdom of Cambodia" /> + <iso_3166_entry + alpha_2_code="CM" + alpha_3_code="CMR" + numeric_code="120" + name="Cameroon" + official_name="Republic of Cameroon" /> + <iso_3166_entry + alpha_2_code="CA" + alpha_3_code="CAN" + numeric_code="124" + name="Canada" /> + <iso_3166_entry + alpha_2_code="CV" + alpha_3_code="CPV" + numeric_code="132" + name="Cape Verde" + official_name="Republic of Cape Verde" /> + <iso_3166_entry + alpha_2_code="KY" + alpha_3_code="CYM" + numeric_code="136" + name="Cayman Islands" /> + <iso_3166_entry + alpha_2_code="CF" + alpha_3_code="CAF" + numeric_code="140" + name="Central African Republic" /> + <iso_3166_entry + alpha_2_code="TD" + alpha_3_code="TCD" + numeric_code="148" + name="Chad" + official_name="Republic of Chad" /> + <iso_3166_entry + alpha_2_code="CL" + alpha_3_code="CHL" + numeric_code="152" + name="Chile" + official_name="Republic of Chile" /> + <iso_3166_entry + alpha_2_code="CN" + alpha_3_code="CHN" + numeric_code="156" + name="China" + official_name="People's Republic of China" /> + <iso_3166_entry + alpha_2_code="CX" + alpha_3_code="CXR" + numeric_code="162" + name="Christmas Island" /> + <iso_3166_entry + alpha_2_code="CC" + alpha_3_code="CCK" + numeric_code="166" + name="Cocos (Keeling) Islands" /> + <iso_3166_entry + alpha_2_code="CO" + alpha_3_code="COL" + numeric_code="170" + name="Colombia" + official_name="Republic of Colombia" /> + <iso_3166_entry + alpha_2_code="KM" + alpha_3_code="COM" + numeric_code="174" + name="Comoros" + official_name="Union of the Comoros" /> + <iso_3166_entry + alpha_2_code="CG" + alpha_3_code="COG" + numeric_code="178" + name="Congo" + official_name="Republic of the Congo" /> + <iso_3166_entry + alpha_2_code="CD" + alpha_3_code="COD" + numeric_code="180" + name="Congo, The Democratic Republic of the" /> + <iso_3166_entry + alpha_2_code="CK" + alpha_3_code="COK" + numeric_code="184" + name="Cook Islands" /> + <iso_3166_entry + alpha_2_code="CR" + alpha_3_code="CRI" + numeric_code="188" + name="Costa Rica" + official_name="Republic of Costa Rica" /> + <iso_3166_entry + alpha_2_code="CI" + alpha_3_code="CIV" + numeric_code="384" + name="Côte d'Ivoire" + official_name="Republic of Côte d'Ivoire" /> + <iso_3166_entry + alpha_2_code="HR" + alpha_3_code="HRV" + numeric_code="191" + name="Croatia" + official_name="Republic of Croatia" /> + <iso_3166_entry + alpha_2_code="CU" + alpha_3_code="CUB" + numeric_code="192" + name="Cuba" + official_name="Republic of Cuba" /> + <iso_3166_entry + alpha_2_code="CW" + alpha_3_code="CUW" + numeric_code="531" + name="Curaçao" + official_name="Curaçao" /> + <iso_3166_entry + alpha_2_code="CY" + alpha_3_code="CYP" + numeric_code="196" + name="Cyprus" + official_name="Republic of Cyprus" /> + <iso_3166_entry + alpha_2_code="CZ" + alpha_3_code="CZE" + numeric_code="203" + name="Czech Republic" /> + <iso_3166_entry + alpha_2_code="DK" + alpha_3_code="DNK" + numeric_code="208" + name="Denmark" + official_name="Kingdom of Denmark" /> + <iso_3166_entry + alpha_2_code="DJ" + alpha_3_code="DJI" + numeric_code="262" + name="Djibouti" + official_name="Republic of Djibouti" /> + <iso_3166_entry + alpha_2_code="DM" + alpha_3_code="DMA" + numeric_code="212" + name="Dominica" + official_name="Commonwealth of Dominica" /> + <iso_3166_entry + alpha_2_code="DO" + alpha_3_code="DOM" + numeric_code="214" + name="Dominican Republic" /> + <iso_3166_entry + alpha_2_code="EC" + alpha_3_code="ECU" + numeric_code="218" + name="Ecuador" + official_name="Republic of Ecuador" /> + <iso_3166_entry + alpha_2_code="EG" + alpha_3_code="EGY" + numeric_code="818" + name="Egypt" + official_name="Arab Republic of Egypt" /> + <iso_3166_entry + alpha_2_code="SV" + alpha_3_code="SLV" + numeric_code="222" + name="El Salvador" + official_name="Republic of El Salvador" /> + <iso_3166_entry + alpha_2_code="GQ" + alpha_3_code="GNQ" + numeric_code="226" + name="Equatorial Guinea" + official_name="Republic of Equatorial Guinea" /> + <iso_3166_entry + alpha_2_code="ER" + alpha_3_code="ERI" + numeric_code="232" + name="Eritrea" /> + <iso_3166_entry + alpha_2_code="EE" + alpha_3_code="EST" + numeric_code="233" + name="Estonia" + official_name="Republic of Estonia" /> + <iso_3166_entry + alpha_2_code="ET" + alpha_3_code="ETH" + numeric_code="231" + name="Ethiopia" + official_name="Federal Democratic Republic of Ethiopia" /> + <iso_3166_entry + alpha_2_code="FK" + alpha_3_code="FLK" + numeric_code="238" + name="Falkland Islands (Malvinas)" /> + <iso_3166_entry + alpha_2_code="FO" + alpha_3_code="FRO" + numeric_code="234" + name="Faroe Islands" /> + <iso_3166_entry + alpha_2_code="FJ" + alpha_3_code="FJI" + numeric_code="242" + name="Fiji" + official_name="Republic of Fiji" /> + <iso_3166_entry + alpha_2_code="FI" + alpha_3_code="FIN" + numeric_code="246" + name="Finland" + official_name="Republic of Finland" /> + <iso_3166_entry + alpha_2_code="FR" + alpha_3_code="FRA" + numeric_code="250" + name="France" + official_name="French Republic" /> + <iso_3166_entry + alpha_2_code="GF" + alpha_3_code="GUF" + numeric_code="254" + name="French Guiana" /> + <iso_3166_entry + alpha_2_code="PF" + alpha_3_code="PYF" + numeric_code="258" + name="French Polynesia" /> + <iso_3166_entry + alpha_2_code="TF" + alpha_3_code="ATF" + numeric_code="260" + name="French Southern Territories" /> + <iso_3166_entry + alpha_2_code="GA" + alpha_3_code="GAB" + numeric_code="266" + name="Gabon" + official_name="Gabonese Republic" /> + <iso_3166_entry + alpha_2_code="GM" + alpha_3_code="GMB" + numeric_code="270" + name="Gambia" + official_name="Republic of the Gambia" /> + <iso_3166_entry + alpha_2_code="GE" + alpha_3_code="GEO" + numeric_code="268" + name="Georgia" /> + <iso_3166_entry + alpha_2_code="DE" + alpha_3_code="DEU" + numeric_code="276" + name="Germany" + official_name="Federal Republic of Germany" /> + <iso_3166_entry + alpha_2_code="GH" + alpha_3_code="GHA" + numeric_code="288" + name="Ghana" + official_name="Republic of Ghana" /> + <iso_3166_entry + alpha_2_code="GI" + alpha_3_code="GIB" + numeric_code="292" + name="Gibraltar" /> + <iso_3166_entry + alpha_2_code="GR" + alpha_3_code="GRC" + numeric_code="300" + name="Greece" + official_name="Hellenic Republic" /> + <iso_3166_entry + alpha_2_code="GL" + alpha_3_code="GRL" + numeric_code="304" + name="Greenland" /> + <iso_3166_entry + alpha_2_code="GD" + alpha_3_code="GRD" + numeric_code="308" + name="Grenada" /> + <iso_3166_entry + alpha_2_code="GP" + alpha_3_code="GLP" + numeric_code="312" + name="Guadeloupe" /> + <iso_3166_entry + alpha_2_code="GU" + alpha_3_code="GUM" + numeric_code="316" + name="Guam" /> + <iso_3166_entry + alpha_2_code="GT" + alpha_3_code="GTM" + numeric_code="320" + name="Guatemala" + official_name="Republic of Guatemala" /> + <iso_3166_entry + alpha_2_code="GG" + alpha_3_code="GGY" + numeric_code="831" + name="Guernsey" /> + <iso_3166_entry + alpha_2_code="GN" + alpha_3_code="GIN" + numeric_code="324" + name="Guinea" + official_name="Republic of Guinea" /> + <iso_3166_entry + alpha_2_code="GW" + alpha_3_code="GNB" + numeric_code="624" + name="Guinea-Bissau" + official_name="Republic of Guinea-Bissau" /> + <iso_3166_entry + alpha_2_code="GY" + alpha_3_code="GUY" + numeric_code="328" + name="Guyana" + official_name="Republic of Guyana" /> + <iso_3166_entry + alpha_2_code="HT" + alpha_3_code="HTI" + numeric_code="332" + name="Haiti" + official_name="Republic of Haiti" /> + <iso_3166_entry + alpha_2_code="HM" + alpha_3_code="HMD" + numeric_code="334" + name="Heard Island and McDonald Islands" /> + <iso_3166_entry + alpha_2_code="VA" + alpha_3_code="VAT" + numeric_code="336" + name="Holy See (Vatican City State)" /> + <iso_3166_entry + alpha_2_code="HN" + alpha_3_code="HND" + numeric_code="340" + name="Honduras" + official_name="Republic of Honduras" /> + <iso_3166_entry + alpha_2_code="HK" + alpha_3_code="HKG" + numeric_code="344" + name="Hong Kong" + official_name="Hong Kong Special Administrative Region of China" /> + <iso_3166_entry + alpha_2_code="HU" + alpha_3_code="HUN" + numeric_code="348" + name="Hungary" + official_name="Republic of Hungary" /> + <iso_3166_entry + alpha_2_code="IS" + alpha_3_code="ISL" + numeric_code="352" + name="Iceland" + official_name="Republic of Iceland" /> + <iso_3166_entry + alpha_2_code="IN" + alpha_3_code="IND" + numeric_code="356" + name="India" + official_name="Republic of India" /> + <iso_3166_entry + alpha_2_code="ID" + alpha_3_code="IDN" + numeric_code="360" + name="Indonesia" + official_name="Republic of Indonesia" /> + <iso_3166_entry + alpha_2_code="IR" + alpha_3_code="IRN" + numeric_code="364" + name="Iran, Islamic Republic of" + official_name="Islamic Republic of Iran" /> + <iso_3166_entry + alpha_2_code="IQ" + alpha_3_code="IRQ" + numeric_code="368" + name="Iraq" + official_name="Republic of Iraq" /> + <iso_3166_entry + alpha_2_code="IE" + alpha_3_code="IRL" + numeric_code="372" + name="Ireland" /> + <iso_3166_entry + alpha_2_code="IM" + alpha_3_code="IMN" + numeric_code="833" + name="Isle of Man" /> + <iso_3166_entry + alpha_2_code="IL" + alpha_3_code="ISR" + numeric_code="376" + name="Israel" + official_name="State of Israel" /> + <iso_3166_entry + alpha_2_code="IT" + alpha_3_code="ITA" + numeric_code="380" + name="Italy" + official_name="Italian Republic" /> + <iso_3166_entry + alpha_2_code="JM" + alpha_3_code="JAM" + numeric_code="388" + name="Jamaica" /> + <iso_3166_entry + alpha_2_code="JP" + alpha_3_code="JPN" + numeric_code="392" + name="Japan" /> + <iso_3166_entry + alpha_2_code="JE" + alpha_3_code="JEY" + numeric_code="832" + name="Jersey" /> + <iso_3166_entry + alpha_2_code="JO" + alpha_3_code="JOR" + numeric_code="400" + name="Jordan" + official_name="Hashemite Kingdom of Jordan" /> + <iso_3166_entry + alpha_2_code="KZ" + alpha_3_code="KAZ" + numeric_code="398" + name="Kazakhstan" + official_name="Republic of Kazakhstan" /> + <iso_3166_entry + alpha_2_code="KE" + alpha_3_code="KEN" + numeric_code="404" + name="Kenya" + official_name="Republic of Kenya" /> + <iso_3166_entry + alpha_2_code="KI" + alpha_3_code="KIR" + numeric_code="296" + name="Kiribati" + official_name="Republic of Kiribati" /> + <iso_3166_entry + alpha_2_code="KP" + alpha_3_code="PRK" + numeric_code="408" + name="Korea, Democratic People's Republic of" + official_name="Democratic People's Republic of Korea" /> + <iso_3166_entry + alpha_2_code="KR" + alpha_3_code="KOR" + numeric_code="410" + name="Korea, Republic of" /> + <iso_3166_entry + alpha_2_code="KW" + alpha_3_code="KWT" + numeric_code="414" + name="Kuwait" + official_name="State of Kuwait" /> + <iso_3166_entry + alpha_2_code="KG" + alpha_3_code="KGZ" + numeric_code="417" + name="Kyrgyzstan" + official_name="Kyrgyz Republic" /> + <iso_3166_entry + alpha_2_code="LA" + alpha_3_code="LAO" + numeric_code="418" + name="Lao People's Democratic Republic" /> + <iso_3166_entry + alpha_2_code="LV" + alpha_3_code="LVA" + numeric_code="428" + name="Latvia" + official_name="Republic of Latvia" /> + <iso_3166_entry + alpha_2_code="LB" + alpha_3_code="LBN" + numeric_code="422" + name="Lebanon" + official_name="Lebanese Republic" /> + <iso_3166_entry + alpha_2_code="LS" + alpha_3_code="LSO" + numeric_code="426" + name="Lesotho" + official_name="Kingdom of Lesotho" /> + <iso_3166_entry + alpha_2_code="LR" + alpha_3_code="LBR" + numeric_code="430" + name="Liberia" + official_name="Republic of Liberia" /> + <iso_3166_entry + alpha_2_code="LY" + alpha_3_code="LBY" + numeric_code="434" + common_name="Libya" + name="Libyan Arab Jamahiriya" + official_name="Socialist People's Libyan Arab Jamahiriya" /> + <iso_3166_entry + alpha_2_code="LI" + alpha_3_code="LIE" + numeric_code="438" + name="Liechtenstein" + official_name="Principality of Liechtenstein" /> + <iso_3166_entry + alpha_2_code="LT" + alpha_3_code="LTU" + numeric_code="440" + name="Lithuania" + official_name="Republic of Lithuania" /> + <iso_3166_entry + alpha_2_code="LU" + alpha_3_code="LUX" + numeric_code="442" + name="Luxembourg" + official_name="Grand Duchy of Luxembourg" /> + <iso_3166_entry + alpha_2_code="MO" + alpha_3_code="MAC" + numeric_code="446" + name="Macao" + official_name="Macao Special Administrative Region of China" /> + <iso_3166_entry + alpha_2_code="MK" + alpha_3_code="MKD" + numeric_code="807" + name="Macedonia, Republic of" + official_name="The Former Yugoslav Republic of Macedonia" /> + <iso_3166_entry + alpha_2_code="MG" + alpha_3_code="MDG" + numeric_code="450" + name="Madagascar" + official_name="Republic of Madagascar" /> + <iso_3166_entry + alpha_2_code="MW" + alpha_3_code="MWI" + numeric_code="454" + name="Malawi" + official_name="Republic of Malawi" /> + <iso_3166_entry + alpha_2_code="MY" + alpha_3_code="MYS" + numeric_code="458" + name="Malaysia" /> + <iso_3166_entry + alpha_2_code="MV" + alpha_3_code="MDV" + numeric_code="462" + name="Maldives" + official_name="Republic of Maldives" /> + <iso_3166_entry + alpha_2_code="ML" + alpha_3_code="MLI" + numeric_code="466" + name="Mali" + official_name="Republic of Mali" /> + <iso_3166_entry + alpha_2_code="MT" + alpha_3_code="MLT" + numeric_code="470" + name="Malta" + official_name="Republic of Malta" /> + <iso_3166_entry + alpha_2_code="MH" + alpha_3_code="MHL" + numeric_code="584" + name="Marshall Islands" + official_name="Republic of the Marshall Islands" /> + <iso_3166_entry + alpha_2_code="MQ" + alpha_3_code="MTQ" + numeric_code="474" + name="Martinique" /> + <iso_3166_entry + alpha_2_code="MR" + alpha_3_code="MRT" + numeric_code="478" + name="Mauritania" + official_name="Islamic Republic of Mauritania" /> + <iso_3166_entry + alpha_2_code="MU" + alpha_3_code="MUS" + numeric_code="480" + name="Mauritius" + official_name="Republic of Mauritius" /> + <iso_3166_entry + alpha_2_code="YT" + alpha_3_code="MYT" + numeric_code="175" + name="Mayotte" /> + <iso_3166_entry + alpha_2_code="MX" + alpha_3_code="MEX" + numeric_code="484" + name="Mexico" + official_name="United Mexican States" /> + <iso_3166_entry + alpha_2_code="FM" + alpha_3_code="FSM" + numeric_code="583" + name="Micronesia, Federated States of" + official_name="Federated States of Micronesia" /> + <iso_3166_entry + alpha_2_code="MD" + alpha_3_code="MDA" + numeric_code="498" + common_name="Moldova" + name="Moldova, Republic of" + official_name="Republic of Moldova" /> + <iso_3166_entry + alpha_2_code="MC" + alpha_3_code="MCO" + numeric_code="492" + name="Monaco" + official_name="Principality of Monaco" /> + <iso_3166_entry + alpha_2_code="MN" + alpha_3_code="MNG" + numeric_code="496" + name="Mongolia" /> + <iso_3166_entry + alpha_2_code="ME" + alpha_3_code="MNE" + numeric_code="499" + name="Montenegro" + official_name="Montenegro" /> + <iso_3166_entry + alpha_2_code="MS" + alpha_3_code="MSR" + numeric_code="500" + name="Montserrat" /> + <iso_3166_entry + alpha_2_code="MA" + alpha_3_code="MAR" + numeric_code="504" + name="Morocco" + official_name="Kingdom of Morocco" /> + <iso_3166_entry + alpha_2_code="MZ" + alpha_3_code="MOZ" + numeric_code="508" + name="Mozambique" + official_name="Republic of Mozambique" /> + <iso_3166_entry + alpha_2_code="MM" + alpha_3_code="MMR" + numeric_code="104" + name="Myanmar" + official_name="Republic of Myanmar" /> + <iso_3166_entry + alpha_2_code="NA" + alpha_3_code="NAM" + numeric_code="516" + name="Namibia" + official_name="Republic of Namibia" /> + <iso_3166_entry + alpha_2_code="NR" + alpha_3_code="NRU" + numeric_code="520" + name="Nauru" + official_name="Republic of Nauru" /> + <iso_3166_entry + alpha_2_code="NP" + alpha_3_code="NPL" + numeric_code="524" + name="Nepal" + official_name="Federal Democratic Republic of Nepal" /> + <iso_3166_entry + alpha_2_code="NL" + alpha_3_code="NLD" + numeric_code="528" + name="Netherlands" + official_name="Kingdom of the Netherlands" /> + <iso_3166_entry + alpha_2_code="NC" + alpha_3_code="NCL" + numeric_code="540" + name="New Caledonia" /> + <iso_3166_entry + alpha_2_code="NZ" + alpha_3_code="NZL" + numeric_code="554" + name="New Zealand" /> + <iso_3166_entry + alpha_2_code="NI" + alpha_3_code="NIC" + numeric_code="558" + name="Nicaragua" + official_name="Republic of Nicaragua" /> + <iso_3166_entry + alpha_2_code="NE" + alpha_3_code="NER" + numeric_code="562" + name="Niger" + official_name="Republic of the Niger" /> + <iso_3166_entry + alpha_2_code="NG" + alpha_3_code="NGA" + numeric_code="566" + name="Nigeria" + official_name="Federal Republic of Nigeria" /> + <iso_3166_entry + alpha_2_code="NU" + alpha_3_code="NIU" + numeric_code="570" + name="Niue" + official_name="Niue" /> + <iso_3166_entry + alpha_2_code="NF" + alpha_3_code="NFK" + numeric_code="574" + name="Norfolk Island" /> + <iso_3166_entry + alpha_2_code="MP" + alpha_3_code="MNP" + numeric_code="580" + name="Northern Mariana Islands" + official_name="Commonwealth of the Northern Mariana Islands" /> + <iso_3166_entry + alpha_2_code="NO" + alpha_3_code="NOR" + numeric_code="578" + name="Norway" + official_name="Kingdom of Norway" /> + <iso_3166_entry + alpha_2_code="OM" + alpha_3_code="OMN" + numeric_code="512" + name="Oman" + official_name="Sultanate of Oman" /> + <iso_3166_entry + alpha_2_code="PK" + alpha_3_code="PAK" + numeric_code="586" + name="Pakistan" + official_name="Islamic Republic of Pakistan" /> + <iso_3166_entry + alpha_2_code="PW" + alpha_3_code="PLW" + numeric_code="585" + name="Palau" + official_name="Republic of Palau" /> + <iso_3166_entry + alpha_2_code="PS" + alpha_3_code="PSE" + numeric_code="275" + name="Palestinian Territory, Occupied" + official_name="Occupied Palestinian Territory" /> + <iso_3166_entry + alpha_2_code="PA" + alpha_3_code="PAN" + numeric_code="591" + name="Panama" + official_name="Republic of Panama" /> + <iso_3166_entry + alpha_2_code="PG" + alpha_3_code="PNG" + numeric_code="598" + name="Papua New Guinea" /> + <iso_3166_entry + alpha_2_code="PY" + alpha_3_code="PRY" + numeric_code="600" + name="Paraguay" + official_name="Republic of Paraguay" /> + <iso_3166_entry + alpha_2_code="PE" + alpha_3_code="PER" + numeric_code="604" + name="Peru" + official_name="Republic of Peru" /> + <iso_3166_entry + alpha_2_code="PH" + alpha_3_code="PHL" + numeric_code="608" + name="Philippines" + official_name="Republic of the Philippines" /> + <iso_3166_entry + alpha_2_code="PN" + alpha_3_code="PCN" + numeric_code="612" + name="Pitcairn" /> + <iso_3166_entry + alpha_2_code="PL" + alpha_3_code="POL" + numeric_code="616" + name="Poland" + official_name="Republic of Poland" /> + <iso_3166_entry + alpha_2_code="PT" + alpha_3_code="PRT" + numeric_code="620" + name="Portugal" + official_name="Portuguese Republic" /> + <iso_3166_entry + alpha_2_code="PR" + alpha_3_code="PRI" + numeric_code="630" + name="Puerto Rico" /> + <iso_3166_entry + alpha_2_code="QA" + alpha_3_code="QAT" + numeric_code="634" + name="Qatar" + official_name="State of Qatar" /> + <iso_3166_entry + alpha_2_code="RE" + alpha_3_code="REU" + numeric_code="638" + name="Reunion" /> + <iso_3166_entry + alpha_2_code="RO" + alpha_3_code="ROU" + numeric_code="642" + name="Romania" /> + <iso_3166_entry + alpha_2_code="RU" + alpha_3_code="RUS" + numeric_code="643" + name="Russian Federation" /> + <iso_3166_entry + alpha_2_code="RW" + alpha_3_code="RWA" + numeric_code="646" + name="Rwanda" + official_name="Rwandese Republic" /> + <iso_3166_entry + alpha_2_code="BL" + alpha_3_code="BLM" + numeric_code="652" + name="Saint Barthélemy" /> + <iso_3166_entry + alpha_2_code="SH" + alpha_3_code="SHN" + numeric_code="654" + name="Saint Helena, Ascension and Tristan da Cunha" /> + <iso_3166_entry + alpha_2_code="KN" + alpha_3_code="KNA" + numeric_code="659" + name="Saint Kitts and Nevis" /> + <iso_3166_entry + alpha_2_code="LC" + alpha_3_code="LCA" + numeric_code="662" + name="Saint Lucia" /> + <iso_3166_entry + alpha_2_code="MF" + alpha_3_code="MAF" + numeric_code="663" + name="Saint Martin (French part)" /> + <iso_3166_entry + alpha_2_code="PM" + alpha_3_code="SPM" + numeric_code="666" + name="Saint Pierre and Miquelon" /> + <iso_3166_entry + alpha_2_code="VC" + alpha_3_code="VCT" + numeric_code="670" + name="Saint Vincent and the Grenadines" /> + <iso_3166_entry + alpha_2_code="WS" + alpha_3_code="WSM" + numeric_code="882" + name="Samoa" + official_name="Independent State of Samoa" /> + <iso_3166_entry + alpha_2_code="SM" + alpha_3_code="SMR" + numeric_code="674" + name="San Marino" + official_name="Republic of San Marino" /> + <iso_3166_entry + alpha_2_code="ST" + alpha_3_code="STP" + numeric_code="678" + name="Sao Tome and Principe" + official_name="Democratic Republic of Sao Tome and Principe" /> + <iso_3166_entry + alpha_2_code="SA" + alpha_3_code="SAU" + numeric_code="682" + name="Saudi Arabia" + official_name="Kingdom of Saudi Arabia" /> + <iso_3166_entry + alpha_2_code="SN" + alpha_3_code="SEN" + numeric_code="686" + name="Senegal" + official_name="Republic of Senegal" /> + <iso_3166_entry + alpha_2_code="RS" + alpha_3_code="SRB" + numeric_code="688" + name="Serbia" + official_name="Republic of Serbia" /> + <iso_3166_entry + alpha_2_code="SC" + alpha_3_code="SYC" + numeric_code="690" + name="Seychelles" + official_name="Republic of Seychelles" /> + <iso_3166_entry + alpha_2_code="SL" + alpha_3_code="SLE" + numeric_code="694" + name="Sierra Leone" + official_name="Republic of Sierra Leone" /> + <iso_3166_entry + alpha_2_code="SG" + alpha_3_code="SGP" + numeric_code="702" + name="Singapore" + official_name="Republic of Singapore" /> + <iso_3166_entry + alpha_2_code="SX" + alpha_3_code="SXM" + numeric_code="702" + name="Sint Maarten" + official_name="Sint Maarten (Dutch part)" /> + <iso_3166_entry + alpha_2_code="SK" + alpha_3_code="SVK" + numeric_code="703" + name="Slovakia" + official_name="Slovak Republic" /> + <iso_3166_entry + alpha_2_code="SI" + alpha_3_code="SVN" + numeric_code="705" + name="Slovenia" + official_name="Republic of Slovenia" /> + <iso_3166_entry + alpha_2_code="SB" + alpha_3_code="SLB" + numeric_code="090" + name="Solomon Islands" /> + <iso_3166_entry + alpha_2_code="SO" + alpha_3_code="SOM" + numeric_code="706" + name="Somalia" + official_name="Somali Republic" /> + <iso_3166_entry + alpha_2_code="ZA" + alpha_3_code="ZAF" + numeric_code="710" + name="South Africa" + official_name="Republic of South Africa" /> + <iso_3166_entry + alpha_2_code="GS" + alpha_3_code="SGS" + numeric_code="239" + name="South Georgia and the South Sandwich Islands" /> + <iso_3166_entry + alpha_2_code="ES" + alpha_3_code="ESP" + numeric_code="724" + name="Spain" + official_name="Kingdom of Spain" /> + <iso_3166_entry + alpha_2_code="LK" + alpha_3_code="LKA" + numeric_code="144" + name="Sri Lanka" + official_name="Democratic Socialist Republic of Sri Lanka" /> + <iso_3166_entry + alpha_2_code="SD" + alpha_3_code="SDN" + numeric_code="736" + name="Sudan" + official_name="Republic of the Sudan" /> + <iso_3166_entry + alpha_2_code="SR" + alpha_3_code="SUR" + numeric_code="740" + name="Suriname" + official_name="Republic of Suriname" /> + <iso_3166_entry + alpha_2_code="SJ" + alpha_3_code="SJM" + numeric_code="744" + name="Svalbard and Jan Mayen" /> + <iso_3166_entry + alpha_2_code="SZ" + alpha_3_code="SWZ" + numeric_code="748" + name="Swaziland" + official_name="Kingdom of Swaziland" /> + <iso_3166_entry + alpha_2_code="SE" + alpha_3_code="SWE" + numeric_code="752" + name="Sweden" + official_name="Kingdom of Sweden" /> + <iso_3166_entry + alpha_2_code="CH" + alpha_3_code="CHE" + numeric_code="756" + name="Switzerland" + official_name="Swiss Confederation" /> + <iso_3166_entry + alpha_2_code="SY" + alpha_3_code="SYR" + numeric_code="760" + name="Syrian Arab Republic" /> + <iso_3166_entry + alpha_2_code="TW" + alpha_3_code="TWN" + numeric_code="158" + common_name="Taiwan" + name="Taiwan, Province of China" + official_name="Taiwan, Province of China" /> + <iso_3166_entry + alpha_2_code="TJ" + alpha_3_code="TJK" + numeric_code="762" + name="Tajikistan" + official_name="Republic of Tajikistan" /> + <iso_3166_entry + alpha_2_code="TZ" + alpha_3_code="TZA" + numeric_code="834" + name="Tanzania, United Republic of" + official_name="United Republic of Tanzania" /> + <iso_3166_entry + alpha_2_code="TH" + alpha_3_code="THA" + numeric_code="764" + name="Thailand" + official_name="Kingdom of Thailand" /> + <iso_3166_entry + alpha_2_code="TL" + alpha_3_code="TLS" + numeric_code="626" + name="Timor-Leste" + official_name="Democratic Republic of Timor-Leste" /> + <iso_3166_entry + alpha_2_code="TG" + alpha_3_code="TGO" + numeric_code="768" + name="Togo" + official_name="Togolese Republic" /> + <iso_3166_entry + alpha_2_code="TK" + alpha_3_code="TKL" + numeric_code="772" + name="Tokelau" /> + <iso_3166_entry + alpha_2_code="TO" + alpha_3_code="TON" + numeric_code="776" + name="Tonga" + official_name="Kingdom of Tonga" /> + <iso_3166_entry + alpha_2_code="TT" + alpha_3_code="TTO" + numeric_code="780" + name="Trinidad and Tobago" + official_name="Republic of Trinidad and Tobago" /> + <iso_3166_entry + alpha_2_code="TN" + alpha_3_code="TUN" + numeric_code="788" + name="Tunisia" + official_name="Republic of Tunisia" /> + <iso_3166_entry + alpha_2_code="TR" + alpha_3_code="TUR" + numeric_code="792" + name="Turkey" + official_name="Republic of Turkey" /> + <iso_3166_entry + alpha_2_code="TM" + alpha_3_code="TKM" + numeric_code="795" + name="Turkmenistan" /> + <iso_3166_entry + alpha_2_code="TC" + alpha_3_code="TCA" + numeric_code="796" + name="Turks and Caicos Islands" /> + <iso_3166_entry + alpha_2_code="TV" + alpha_3_code="TUV" + numeric_code="798" + name="Tuvalu" /> + <iso_3166_entry + alpha_2_code="UG" + alpha_3_code="UGA" + numeric_code="800" + name="Uganda" + official_name="Republic of Uganda" /> + <iso_3166_entry + alpha_2_code="UA" + alpha_3_code="UKR" + numeric_code="804" + name="Ukraine" /> + <iso_3166_entry + alpha_2_code="AE" + alpha_3_code="ARE" + numeric_code="784" + name="United Arab Emirates" /> + <iso_3166_entry + alpha_2_code="GB" + alpha_3_code="GBR" + numeric_code="826" + name="United Kingdom" + official_name="United Kingdom of Great Britain and Northern Ireland" /> + <iso_3166_entry + alpha_2_code="US" + alpha_3_code="USA" + numeric_code="840" + name="United States" + official_name="United States of America" /> + <iso_3166_entry + alpha_2_code="UM" + alpha_3_code="UMI" + numeric_code="581" + name="United States Minor Outlying Islands" /> + <iso_3166_entry + alpha_2_code="UY" + alpha_3_code="URY" + numeric_code="858" + name="Uruguay" + official_name="Eastern Republic of Uruguay" /> + <iso_3166_entry + alpha_2_code="UZ" + alpha_3_code="UZB" + numeric_code="860" + name="Uzbekistan" + official_name="Republic of Uzbekistan" /> + <iso_3166_entry + alpha_2_code="VU" + alpha_3_code="VUT" + numeric_code="548" + name="Vanuatu" + official_name="Republic of Vanuatu" /> + <iso_3166_entry + alpha_2_code="VE" + alpha_3_code="VEN" + numeric_code="862" + common_name="Venezuela" + name="Venezuela, Bolivarian republic of" + official_name="Bolivarian Republic of Venezuela" /> + <iso_3166_entry + alpha_2_code="VN" + alpha_3_code="VNM" + numeric_code="704" + name="Viet Nam" + official_name="Socialist Republic of Viet Nam" /> + <!-- FIXME CHECK OFFICIAL NAME --> + <iso_3166_entry + alpha_2_code="VG" + alpha_3_code="VGB" + numeric_code="092" + name="Virgin Islands, British" + official_name="British Virgin Islands" /> + <iso_3166_entry + alpha_2_code="VI" + alpha_3_code="VIR" + numeric_code="850" + name="Virgin Islands, U.S." + official_name="Virgin Islands of the United States" /> + <iso_3166_entry + alpha_2_code="WF" + alpha_3_code="WLF" + numeric_code="876" + name="Wallis and Futuna" /> + <iso_3166_entry + alpha_2_code="EH" + alpha_3_code="ESH" + numeric_code="732" + name="Western Sahara" /> + <iso_3166_entry + alpha_2_code="YE" + alpha_3_code="YEM" + numeric_code="887" + name="Yemen" + official_name="Republic of Yemen" /> + <iso_3166_entry + alpha_2_code="ZM" + alpha_3_code="ZMB" + numeric_code="894" + name="Zambia" + official_name="Republic of Zambia" /> + <iso_3166_entry + alpha_2_code="ZW" + alpha_3_code="ZWE" + numeric_code="716" + name="Zimbabwe" + official_name="Republic of Zimbabwe" /> + <iso_3166_3_entry + alpha_4_code="BQAQ" + alpha_3_code="ATB" + date_withdrawn="1979" + names="British Antarctic Territory" /> + <iso_3166_3_entry + alpha_4_code="BUMM" + alpha_3_code="BUR" + numeric_code="104" + date_withdrawn="1989-12-05" + names="Burma, Socialist Republic of the Union of" /> + <iso_3166_3_entry + alpha_4_code="BYAA" + alpha_3_code="BYS" + numeric_code="112" + date_withdrawn="1992-06-15" + names="Byelorussian SSR Soviet Socialist Republic" /> + <iso_3166_3_entry + alpha_4_code="CTKI" + alpha_3_code="CTE" + numeric_code="128" + date_withdrawn="1984" + names="Canton and Enderbury Islands" /> + <iso_3166_3_entry + alpha_4_code="CSHH" + alpha_3_code="CSK" + numeric_code="200" + date_withdrawn="1993-06-15" + names="Czechoslovakia, Czechoslovak Socialist Republic" /> + <iso_3166_3_entry + alpha_4_code="DYBJ" + alpha_3_code="DHY" + numeric_code="204" + date_withdrawn="1977" + names="Dahomey" /> + <iso_3166_3_entry + alpha_4_code="NQAQ" + alpha_3_code="ATN" + numeric_code="216" + date_withdrawn="1983" + names="Dronning Maud Land" /> + <iso_3166_3_entry + alpha_4_code="TPTL" + alpha_3_code="TMP" + numeric_code="626" + date_withdrawn="2002-05-20" + names="East Timor" + comment="was Portuguese Timor" /> + <iso_3166_3_entry + alpha_4_code="ET" + alpha_3_code="ETH" + numeric_code="230" + date_withdrawn="1993-07-16" + names="Ethiopia" /> + <iso_3166_3_entry + alpha_4_code="FXFR" + alpha_3_code="FXX" + numeric_code="249" + date_withdrawn="1997-07-14" + names="France, Metropolitan" /> + <iso_3166_3_entry + alpha_4_code="AIDJ" + alpha_3_code="AFI" + numeric_code="262" + date_withdrawn="1977" + names="French Afars and Issas" /> + <iso_3166_3_entry + alpha_4_code="FQHH" + alpha_3_code="ATF" + date_withdrawn="1979" + names="French Southern and Antarctic Territories" + comment="now split between AQ and TF" /> + <iso_3166_3_entry + alpha_4_code="DDDE" + alpha_3_code="DDR" + numeric_code="278" + date_withdrawn="1990-10-30" + names="German Democratic Republic" /> + <iso_3166_3_entry + alpha_4_code="DE" + alpha_3_code="DEU" + numeric_code="280" + date_withdrawn="1990-10-30" + names="Germany, Federal Republic of" /> + <iso_3166_3_entry + alpha_4_code="GEHH" + alpha_3_code="GEL" + numeric_code="296" + date_withdrawn="1979" + names="Gilbert and Ellice Islands" + comment="now split into Kiribati and Tuvalu" /> + <iso_3166_3_entry + alpha_4_code="JTUM" + alpha_3_code="JTN" + numeric_code="396" + date_withdrawn="1986" + names="Johnston Island" /> + <iso_3166_3_entry + alpha_4_code="MIUM" + alpha_3_code="MID" + numeric_code="488" + date_withdrawn="1986" + names="Midway Islands" /> + <iso_3166_3_entry + alpha_4_code="AN" + alpha_3_code="ANT" + numeric_code="532" + date_withdrawn="1993-07-12" + names="Netherlands Antilles" /> + <iso_3166_3_entry + alpha_4_code="NTHH" + alpha_3_code="NTZ" + numeric_code="536" + date_withdrawn="1993-07-12" + names="Neutral Zone" + comment="formerly between Saudi Arabia and Iraq" /> + <iso_3166_3_entry + alpha_4_code="NHVU" + alpha_3_code="NHB" + numeric_code="548" + date_withdrawn="1980" + names="New Hebrides" /> + <iso_3166_3_entry + alpha_4_code="PCHH" + alpha_3_code="PCI" + numeric_code="582" + date_withdrawn="1986" + names="Pacific Islands (trust territory)" + comment="divided into FM, MH, MP, and PW" /> + <iso_3166_3_entry + alpha_4_code="PA" + alpha_3_code="PAN" + numeric_code="590" + date_withdrawn="1993-07-22" + names="Panama, Republic of" /> + <iso_3166_3_entry + alpha_4_code="PZPA" + alpha_3_code="PCZ" + date_withdrawn="1980" + names="Panama Canal Zone" /> + <iso_3166_3_entry + alpha_4_code="RO" + alpha_3_code="ROM" + numeric_code="642" + date_withdrawn="2002-02-01" + names="Romania, Socialist Republic of" /> + <iso_3166_3_entry + alpha_4_code="KN" + alpha_3_code="KNA" + numeric_code="658" + date_withdrawn="1988" + names="St. Kitts-Nevis-Anguilla" + comment="now St. Kitts and Nevis and Anguilla" /> + <iso_3166_3_entry + alpha_4_code="CSXX" + alpha_3_code="SCG" + numeric_code="891" + date_withdrawn="2006-06-05" + names="Serbia and Montenegro" /> + <iso_3166_3_entry + alpha_4_code="SKIN" + alpha_3_code="SKM" + date_withdrawn="1975" + names="Sikkim" /> + <iso_3166_3_entry + alpha_4_code="RHZW" + alpha_3_code="RHO" + numeric_code="716" + date_withdrawn="1980" + names="Southern Rhodesia" /> + <iso_3166_3_entry + alpha_4_code="EH" + alpha_3_code="ESH" + numeric_code="732" + date_withdrawn="1988" + names="Spanish Sahara" + comment="now Western Sahara" /> + <iso_3166_3_entry + alpha_4_code="PUUM" + alpha_3_code="PUS" + numeric_code="849" + date_withdrawn="1986" + names="US Miscellaneous Pacific Islands" /> + <iso_3166_3_entry + alpha_4_code="SUHH" + alpha_3_code="SUN" + numeric_code="810" + date_withdrawn="1992-08-30" + names="USSR, Union of Soviet Socialist Republics" /> + <iso_3166_3_entry + alpha_4_code="HVBF" + alpha_3_code="HVO" + numeric_code="854" + date_withdrawn="1984" + names="Upper Volta, Republic of" /> + <iso_3166_3_entry + alpha_4_code="VA" + alpha_3_code="VAT" + numeric_code="336" + date_withdrawn="1996-04-03" + names="Vatican City State (Holy See)" /> + <iso_3166_3_entry + alpha_4_code="VDVN" + alpha_3_code="VDR" + date_withdrawn="1977" + names="Viet-Nam, Democratic Republic of" /> + <iso_3166_3_entry + alpha_4_code="WKUM" + alpha_3_code="WAK" + numeric_code="872" + date_withdrawn="1986" + names="Wake Island" /> + <iso_3166_3_entry + alpha_4_code="YDYE" + alpha_3_code="YMD" + numeric_code="720" + date_withdrawn="1990-08-14" + names="Yemen, Democratic, People's Democratic Republic of" /> + <iso_3166_3_entry + alpha_4_code="YE" + alpha_3_code="YEM" + numeric_code="891" + date_withdrawn="1990-08-14" + names="Yemen, Yemen Arab Republic" /> + <iso_3166_3_entry + alpha_4_code="YUCS" + alpha_3_code="YUG" + numeric_code="891" + date_withdrawn="1993-07-28" + names="Yugoslavia, Socialist Federal Republic of" /> + <iso_3166_3_entry + alpha_4_code="ZRCD" + alpha_3_code="ZAR" + numeric_code="180" + date_withdrawn="1997-07-14" + names="Zaire, Republic of" /> +</iso_3166_entries> diff --git a/build/share/xml/iso-codes/iso_639.xml b/build/share/xml/iso-codes/iso_639.xml new file mode 100644 index 00000000..02fa01fb --- /dev/null +++ b/build/share/xml/iso-codes/iso_639.xml @@ -0,0 +1,2169 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!-- +This file gives a list of all languages in the ISO 639 +standard, and is used to provide translations via gettext + +Copyright (C) 2004-2006 Alastair McKinstry <mckinstry@computer.org> +Copyright (C) 2004-2009 Christian Perrier <bubulle@debian.org> +Copyright (C) 2005-2008 Tobias Quathamer <toddy@debian.org> + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this file; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Source: <http://www.loc.gov/standards/iso639-2/> +--> + +<!DOCTYPE iso_639_entries [ + <!ELEMENT iso_639_entries (iso_639_entry+)> + <!ELEMENT iso_639_entry EMPTY> + <!ATTLIST iso_639_entry + iso_639_2B_code CDATA #REQUIRED + iso_639_2T_code CDATA #REQUIRED + iso_639_1_code CDATA #IMPLIED + name CDATA #REQUIRED + > +]> + +<iso_639_entries> + <iso_639_entry + iso_639_2B_code="aar" + iso_639_2T_code="aar" + iso_639_1_code="aa" + name="Afar" /> + <iso_639_entry + iso_639_2B_code="abk" + iso_639_2T_code="abk" + iso_639_1_code="ab" + name="Abkhazian" /> + <iso_639_entry + iso_639_2B_code="ace" + iso_639_2T_code="ace" + name="Achinese" /> + <iso_639_entry + iso_639_2B_code="ach" + iso_639_2T_code="ach" + name="Acoli" /> + <iso_639_entry + iso_639_2B_code="ada" + iso_639_2T_code="ada" + name="Adangme" /> + <iso_639_entry + iso_639_2B_code="ady" + iso_639_2T_code="ady" + name="Adyghe; Adygei" /> + <iso_639_entry + iso_639_2B_code="afa" + iso_639_2T_code="afa" + name="Afro-Asiatic languages" /> + <iso_639_entry + iso_639_2B_code="afh" + iso_639_2T_code="afh" + name="Afrihili" /> + <iso_639_entry + iso_639_2B_code="afr" + iso_639_2T_code="afr" + iso_639_1_code="af" + name="Afrikaans" /> + <iso_639_entry + iso_639_2B_code="ain" + iso_639_2T_code="ain" + name="Ainu" /> + <iso_639_entry + iso_639_2B_code="aka" + iso_639_2T_code="aka" + iso_639_1_code="ak" + name="Akan" /> + <iso_639_entry + iso_639_2B_code="akk" + iso_639_2T_code="akk" + name="Akkadian" /> + <iso_639_entry + iso_639_2B_code="alb" + iso_639_2T_code="sqi" + iso_639_1_code="sq" + name="Albanian" /> + <iso_639_entry + iso_639_2B_code="ale" + iso_639_2T_code="ale" + name="Aleut" /> + <iso_639_entry + iso_639_2B_code="alg" + iso_639_2T_code="alg" + name="Algonquian languages" /> + <iso_639_entry + iso_639_2B_code="alt" + iso_639_2T_code="alt" + name="Southern Altai" /> + <iso_639_entry + iso_639_2B_code="amh" + iso_639_2T_code="amh" + iso_639_1_code="am" + name="Amharic" /> + <iso_639_entry + iso_639_2B_code="ang" + iso_639_2T_code="ang" + name="English, Old (ca. 450-1100)" /> + <iso_639_entry + iso_639_2B_code="anp" + iso_639_2T_code="anp" + name="Angika" /> + <iso_639_entry + iso_639_2B_code="apa" + iso_639_2T_code="apa" + name="Apache languages" /> + <iso_639_entry + iso_639_2B_code="ara" + iso_639_2T_code="ara" + iso_639_1_code="ar" + name="Arabic" /> + <iso_639_entry + iso_639_2B_code="arc" + iso_639_2T_code="arc" + name="Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)" /> + <iso_639_entry + iso_639_2B_code="arg" + iso_639_2T_code="arg" + iso_639_1_code="an" + name="Aragonese" /> + <iso_639_entry + iso_639_2B_code="arm" + iso_639_2T_code="hye" + iso_639_1_code="hy" + name="Armenian" /> + <iso_639_entry + iso_639_2B_code="arn" + iso_639_2T_code="arn" + name="Mapudungun; Mapuche" /> + <iso_639_entry + iso_639_2B_code="arp" + iso_639_2T_code="arp" + name="Arapaho" /> + <iso_639_entry + iso_639_2B_code="art" + iso_639_2T_code="art" + name="Artificial languages" /> + <iso_639_entry + iso_639_2B_code="arw" + iso_639_2T_code="arw" + name="Arawak" /> + <iso_639_entry + iso_639_2B_code="asm" + iso_639_2T_code="asm" + iso_639_1_code="as" + name="Assamese" /> + <iso_639_entry + iso_639_2B_code="ast" + iso_639_2T_code="ast" + name="Asturian; Bable; Leonese; Asturleonese" /> + <iso_639_entry + iso_639_2B_code="ath" + iso_639_2T_code="ath" + name="Athapascan languages" /> + <iso_639_entry + iso_639_2B_code="aus" + iso_639_2T_code="aus" + name="Australian languages" /> + <iso_639_entry + iso_639_2B_code="ava" + iso_639_2T_code="ava" + iso_639_1_code="av" + name="Avaric" /> + <iso_639_entry + iso_639_2B_code="ave" + iso_639_2T_code="ave" + iso_639_1_code="ae" + name="Avestan" /> + <iso_639_entry + iso_639_2B_code="awa" + iso_639_2T_code="awa" + name="Awadhi" /> + <iso_639_entry + iso_639_2B_code="aym" + iso_639_2T_code="aym" + iso_639_1_code="ay" + name="Aymara" /> + <iso_639_entry + iso_639_2B_code="aze" + iso_639_2T_code="aze" + iso_639_1_code="az" + name="Azerbaijani" /> + <iso_639_entry + iso_639_2B_code="bad" + iso_639_2T_code="bad" + name="Banda languages" /> + <iso_639_entry + iso_639_2B_code="bai" + iso_639_2T_code="bai" + name="Bamileke languages" /> + <iso_639_entry + iso_639_2B_code="bak" + iso_639_2T_code="bak" + iso_639_1_code="ba" + name="Bashkir" /> + <iso_639_entry + iso_639_2B_code="bal" + iso_639_2T_code="bal" + name="Baluchi" /> + <iso_639_entry + iso_639_2B_code="bam" + iso_639_2T_code="bam" + iso_639_1_code="bm" + name="Bambara" /> + <iso_639_entry + iso_639_2B_code="ban" + iso_639_2T_code="ban" + name="Balinese" /> + <iso_639_entry + iso_639_2B_code="baq" + iso_639_2T_code="eus" + iso_639_1_code="eu" + name="Basque" /> + <iso_639_entry + iso_639_2B_code="bas" + iso_639_2T_code="bas" + name="Basa" /> + <iso_639_entry + iso_639_2B_code="bat" + iso_639_2T_code="bat" + name="Baltic languages" /> + <iso_639_entry + iso_639_2B_code="bej" + iso_639_2T_code="bej" + name="Beja; Bedawiyet" /> + <iso_639_entry + iso_639_2B_code="bel" + iso_639_2T_code="bel" + iso_639_1_code="be" + name="Belarusian" /> + <iso_639_entry + iso_639_2B_code="bem" + iso_639_2T_code="bem" + name="Bemba" /> + <iso_639_entry + iso_639_2B_code="ben" + iso_639_2T_code="ben" + iso_639_1_code="bn" + name="Bengali" /> + <iso_639_entry + iso_639_2B_code="ber" + iso_639_2T_code="ber" + name="Berber languages" /> + <iso_639_entry + iso_639_2B_code="bho" + iso_639_2T_code="bho" + name="Bhojpuri" /> + <iso_639_entry + iso_639_2B_code="bih" + iso_639_2T_code="bih" + iso_639_1_code="bh" + name="Bihari languages" /> + <iso_639_entry + iso_639_2B_code="bik" + iso_639_2T_code="bik" + name="Bikol" /> + <iso_639_entry + iso_639_2B_code="bin" + iso_639_2T_code="bin" + name="Bini; Edo" /> + <iso_639_entry + iso_639_2B_code="bis" + iso_639_2T_code="bis" + iso_639_1_code="bi" + name="Bislama" /> + <iso_639_entry + iso_639_2B_code="bla" + iso_639_2T_code="bla" + name="Siksika" /> + <iso_639_entry + iso_639_2B_code="bnt" + iso_639_2T_code="bnt" + name="Bantu languages" /> + <iso_639_entry + iso_639_2B_code="bos" + iso_639_2T_code="bos" + iso_639_1_code="bs" + name="Bosnian" /> + <iso_639_entry + iso_639_2B_code="bra" + iso_639_2T_code="bra" + name="Braj" /> + <iso_639_entry + iso_639_2B_code="bre" + iso_639_2T_code="bre" + iso_639_1_code="br" + name="Breton" /> + <iso_639_entry + iso_639_2B_code="btk" + iso_639_2T_code="btk" + name="Batak languages" /> + <iso_639_entry + iso_639_2B_code="bua" + iso_639_2T_code="bua" + name="Buriat" /> + <iso_639_entry + iso_639_2B_code="bug" + iso_639_2T_code="bug" + name="Buginese" /> + <iso_639_entry + iso_639_2B_code="bul" + iso_639_2T_code="bul" + iso_639_1_code="bg" + name="Bulgarian" /> + <iso_639_entry + iso_639_2B_code="bur" + iso_639_2T_code="mya" + iso_639_1_code="my" + name="Burmese" /> + <iso_639_entry + iso_639_2B_code="byn" + iso_639_2T_code="byn" + name="Blin; Bilin" /> + <iso_639_entry + iso_639_2B_code="cad" + iso_639_2T_code="cad" + name="Caddo" /> + <iso_639_entry + iso_639_2B_code="cai" + iso_639_2T_code="cai" + name="Central American Indian languages" /> + <iso_639_entry + iso_639_2B_code="car" + iso_639_2T_code="car" + name="Galibi Carib" /> + <iso_639_entry + iso_639_2B_code="cat" + iso_639_2T_code="cat" + iso_639_1_code="ca" + name="Catalan; Valencian" /> + <iso_639_entry + iso_639_2B_code="cau" + iso_639_2T_code="cau" + name="Caucasian languages" /> + <iso_639_entry + iso_639_2B_code="ceb" + iso_639_2T_code="ceb" + name="Cebuano" /> + <iso_639_entry + iso_639_2B_code="cel" + iso_639_2T_code="cel" + name="Celtic languages" /> + <iso_639_entry + iso_639_2B_code="cha" + iso_639_2T_code="cha" + iso_639_1_code="ch" + name="Chamorro" /> + <iso_639_entry + iso_639_2B_code="chb" + iso_639_2T_code="chb" + name="Chibcha" /> + <iso_639_entry + iso_639_2B_code="che" + iso_639_2T_code="che" + iso_639_1_code="ce" + name="Chechen" /> + <iso_639_entry + iso_639_2B_code="chg" + iso_639_2T_code="chg" + name="Chagatai" /> + <iso_639_entry + iso_639_2B_code="chi" + iso_639_2T_code="zho" + iso_639_1_code="zh" + name="Chinese" /> + <iso_639_entry + iso_639_2B_code="chk" + iso_639_2T_code="chk" + name="Chuukese" /> + <iso_639_entry + iso_639_2B_code="chm" + iso_639_2T_code="chm" + name="Mari" /> + <iso_639_entry + iso_639_2B_code="chn" + iso_639_2T_code="chn" + name="Chinook jargon" /> + <iso_639_entry + iso_639_2B_code="cho" + iso_639_2T_code="cho" + name="Choctaw" /> + <iso_639_entry + iso_639_2B_code="chp" + iso_639_2T_code="chp" + name="Chipewyan; Dene Suline" /> + <iso_639_entry + iso_639_2B_code="chr" + iso_639_2T_code="chr" + name="Cherokee" /> + <iso_639_entry + iso_639_2B_code="chu" + iso_639_2T_code="chu" + iso_639_1_code="cu" + name="Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic" /> + <iso_639_entry + iso_639_2B_code="chv" + iso_639_2T_code="chv" + iso_639_1_code="cv" + name="Chuvash" /> + <iso_639_entry + iso_639_2B_code="chy" + iso_639_2T_code="chy" + name="Cheyenne" /> + <iso_639_entry + iso_639_2B_code="cmc" + iso_639_2T_code="cmc" + name="Chamic languages" /> + <iso_639_entry + iso_639_2B_code="cop" + iso_639_2T_code="cop" + name="Coptic" /> + <iso_639_entry + iso_639_2B_code="cor" + iso_639_2T_code="cor" + iso_639_1_code="kw" + name="Cornish" /> + <iso_639_entry + iso_639_2B_code="cos" + iso_639_2T_code="cos" + iso_639_1_code="co" + name="Corsican" /> + <iso_639_entry + iso_639_2B_code="cpe" + iso_639_2T_code="cpe" + name="Creoles and pidgins, English based" /> + <iso_639_entry + iso_639_2B_code="cpf" + iso_639_2T_code="cpf" + name="Creoles and pidgins, French-based" /> + <iso_639_entry + iso_639_2B_code="cpp" + iso_639_2T_code="cpp" + name="Creoles and pidgins, Portuguese-based" /> + <iso_639_entry + iso_639_2B_code="cre" + iso_639_2T_code="cre" + iso_639_1_code="cr" + name="Cree" /> + <iso_639_entry + iso_639_2B_code="crh" + iso_639_2T_code="crh" + name="Crimean Tatar; Crimean Turkish" /> + <iso_639_entry + iso_639_2B_code="crp" + iso_639_2T_code="crp" + name="Creoles and pidgins" /> + <iso_639_entry + iso_639_2B_code="csb" + iso_639_2T_code="csb" + name="Kashubian" /> + <iso_639_entry + iso_639_2B_code="cus" + iso_639_2T_code="cus" + name="Cushitic languages" /> + <iso_639_entry + iso_639_2B_code="cze" + iso_639_2T_code="ces" + iso_639_1_code="cs" + name="Czech" /> + <iso_639_entry + iso_639_2B_code="dak" + iso_639_2T_code="dak" + name="Dakota" /> + <iso_639_entry + iso_639_2B_code="dan" + iso_639_2T_code="dan" + iso_639_1_code="da" + name="Danish" /> + <iso_639_entry + iso_639_2B_code="dar" + iso_639_2T_code="dar" + name="Dargwa" /> + <iso_639_entry + iso_639_2B_code="day" + iso_639_2T_code="day" + name="Land Dayak languages" /> + <iso_639_entry + iso_639_2B_code="del" + iso_639_2T_code="del" + name="Delaware" /> + <iso_639_entry + iso_639_2B_code="den" + iso_639_2T_code="den" + name="Slave (Athapascan)" /> + <iso_639_entry + iso_639_2B_code="dgr" + iso_639_2T_code="dgr" + name="Dogrib" /> + <iso_639_entry + iso_639_2B_code="din" + iso_639_2T_code="din" + name="Dinka" /> + <iso_639_entry + iso_639_2B_code="div" + iso_639_2T_code="div" + iso_639_1_code="dv" + name="Divehi; Dhivehi; Maldivian" /> + <iso_639_entry + iso_639_2B_code="doi" + iso_639_2T_code="doi" + name="Dogri" /> + <iso_639_entry + iso_639_2B_code="dra" + iso_639_2T_code="dra" + name="Dravidian languages" /> + <iso_639_entry + iso_639_2B_code="dsb" + iso_639_2T_code="dsb" + name="Lower Sorbian" /> + <iso_639_entry + iso_639_2B_code="dua" + iso_639_2T_code="dua" + name="Duala" /> + <iso_639_entry + iso_639_2B_code="dum" + iso_639_2T_code="dum" + name="Dutch, Middle (ca. 1050-1350)" /> + <iso_639_entry + iso_639_2B_code="dut" + iso_639_2T_code="nld" + iso_639_1_code="nl" + name="Dutch; Flemish" /> + <iso_639_entry + iso_639_2B_code="dyu" + iso_639_2T_code="dyu" + name="Dyula" /> + <iso_639_entry + iso_639_2B_code="dzo" + iso_639_2T_code="dzo" + iso_639_1_code="dz" + name="Dzongkha" /> + <iso_639_entry + iso_639_2B_code="efi" + iso_639_2T_code="efi" + name="Efik" /> + <iso_639_entry + iso_639_2B_code="egy" + iso_639_2T_code="egy" + name="Egyptian (Ancient)" /> + <iso_639_entry + iso_639_2B_code="eka" + iso_639_2T_code="eka" + name="Ekajuk" /> + <iso_639_entry + iso_639_2B_code="elx" + iso_639_2T_code="elx" + name="Elamite" /> + <iso_639_entry + iso_639_2B_code="eng" + iso_639_2T_code="eng" + iso_639_1_code="en" + name="English" /> + <iso_639_entry + iso_639_2B_code="enm" + iso_639_2T_code="enm" + name="English, Middle (1100-1500)" /> + <iso_639_entry + iso_639_2B_code="epo" + iso_639_2T_code="epo" + iso_639_1_code="eo" + name="Esperanto" /> + <iso_639_entry + iso_639_2B_code="est" + iso_639_2T_code="est" + iso_639_1_code="et" + name="Estonian" /> + <iso_639_entry + iso_639_2B_code="ewe" + iso_639_2T_code="ewe" + iso_639_1_code="ee" + name="Ewe" /> + <iso_639_entry + iso_639_2B_code="ewo" + iso_639_2T_code="ewo" + name="Ewondo" /> + <iso_639_entry + iso_639_2B_code="fan" + iso_639_2T_code="fan" + name="Fang" /> + <iso_639_entry + iso_639_2B_code="fao" + iso_639_2T_code="fao" + iso_639_1_code="fo" + name="Faroese" /> + <iso_639_entry + iso_639_2B_code="fat" + iso_639_2T_code="fat" + name="Fanti" /> + <iso_639_entry + iso_639_2B_code="fij" + iso_639_2T_code="fij" + iso_639_1_code="fj" + name="Fijian" /> + <iso_639_entry + iso_639_2B_code="fil" + iso_639_2T_code="fil" + name="Filipino; Pilipino" /> + <iso_639_entry + iso_639_2B_code="fin" + iso_639_2T_code="fin" + iso_639_1_code="fi" + name="Finnish" /> + <iso_639_entry + iso_639_2B_code="fiu" + iso_639_2T_code="fiu" + name="Finno-Ugrian languages" /> + <iso_639_entry + iso_639_2B_code="fon" + iso_639_2T_code="fon" + name="Fon" /> + <iso_639_entry + iso_639_2B_code="fre" + iso_639_2T_code="fra" + iso_639_1_code="fr" + name="French" /> + <iso_639_entry + iso_639_2B_code="frm" + iso_639_2T_code="frm" + name="French, Middle (ca. 1400-1600)" /> + <iso_639_entry + iso_639_2B_code="fro" + iso_639_2T_code="fro" + name="French, Old (842-ca. 1400)" /> + <iso_639_entry + iso_639_2B_code="frr" + iso_639_2T_code="frr" + name="Northern Frisian" /> + <iso_639_entry + iso_639_2B_code="frs" + iso_639_2T_code="frs" + name="Eastern Frisian" /> + <iso_639_entry + iso_639_2B_code="fry" + iso_639_2T_code="fry" + iso_639_1_code="fy" + name="Western Frisian" /> + <iso_639_entry + iso_639_2B_code="ful" + iso_639_2T_code="ful" + iso_639_1_code="ff" + name="Fulah" /> + <iso_639_entry + iso_639_2B_code="fur" + iso_639_2T_code="fur" + name="Friulian" /> + <iso_639_entry + iso_639_2B_code="gaa" + iso_639_2T_code="gaa" + name="Ga" /> + <iso_639_entry + iso_639_2B_code="gay" + iso_639_2T_code="gay" + name="Gayo" /> + <iso_639_entry + iso_639_2B_code="gba" + iso_639_2T_code="gba" + name="Gbaya" /> + <iso_639_entry + iso_639_2B_code="gem" + iso_639_2T_code="gem" + name="Germanic languages" /> + <iso_639_entry + iso_639_2B_code="geo" + iso_639_2T_code="kat" + iso_639_1_code="ka" + name="Georgian" /> + <iso_639_entry + iso_639_2B_code="ger" + iso_639_2T_code="deu" + iso_639_1_code="de" + name="German" /> + <iso_639_entry + iso_639_2B_code="gez" + iso_639_2T_code="gez" + name="Geez" /> + <iso_639_entry + iso_639_2B_code="gil" + iso_639_2T_code="gil" + name="Gilbertese" /> + <iso_639_entry + iso_639_2B_code="gla" + iso_639_2T_code="gla" + iso_639_1_code="gd" + name="Gaelic; Scottish Gaelic" /> + <iso_639_entry + iso_639_2B_code="gle" + iso_639_2T_code="gle" + iso_639_1_code="ga" + name="Irish" /> + <iso_639_entry + iso_639_2B_code="glg" + iso_639_2T_code="glg" + iso_639_1_code="gl" + name="Galician" /> + <iso_639_entry + iso_639_2B_code="glv" + iso_639_2T_code="glv" + iso_639_1_code="gv" + name="Manx" /> + <iso_639_entry + iso_639_2B_code="gmh" + iso_639_2T_code="gmh" + name="German, Middle High (ca. 1050-1500)" /> + <iso_639_entry + iso_639_2B_code="goh" + iso_639_2T_code="goh" + name="German, Old High (ca. 750-1050)" /> + <iso_639_entry + iso_639_2B_code="gon" + iso_639_2T_code="gon" + name="Gondi" /> + <iso_639_entry + iso_639_2B_code="gor" + iso_639_2T_code="gor" + name="Gorontalo" /> + <iso_639_entry + iso_639_2B_code="got" + iso_639_2T_code="got" + name="Gothic" /> + <iso_639_entry + iso_639_2B_code="grb" + iso_639_2T_code="grb" + name="Grebo" /> + <iso_639_entry + iso_639_2B_code="grc" + iso_639_2T_code="grc" + name="Greek, Ancient (to 1453)" /> + <iso_639_entry + iso_639_2B_code="gre" + iso_639_2T_code="ell" + iso_639_1_code="el" + name="Greek, Modern (1453-)" /> + <iso_639_entry + iso_639_2B_code="grn" + iso_639_2T_code="grn" + iso_639_1_code="gn" + name="Guarani" /> + <iso_639_entry + iso_639_2B_code="gsw" + iso_639_2T_code="gsw" + name="Swiss German; Alemannic; Alsatian" /> + <iso_639_entry + iso_639_2B_code="guj" + iso_639_2T_code="guj" + iso_639_1_code="gu" + name="Gujarati" /> + <iso_639_entry + iso_639_2B_code="gwi" + iso_639_2T_code="gwi" + name="Gwich'in" /> + <iso_639_entry + iso_639_2B_code="hai" + iso_639_2T_code="hai" + name="Haida" /> + <iso_639_entry + iso_639_2B_code="hat" + iso_639_2T_code="hat" + iso_639_1_code="ht" + name="Haitian; Haitian Creole" /> + <iso_639_entry + iso_639_2B_code="hau" + iso_639_2T_code="hau" + iso_639_1_code="ha" + name="Hausa" /> + <iso_639_entry + iso_639_2B_code="haw" + iso_639_2T_code="haw" + name="Hawaiian" /> + <iso_639_entry + iso_639_2B_code="heb" + iso_639_2T_code="heb" + iso_639_1_code="he" + name="Hebrew" /> + <iso_639_entry + iso_639_2B_code="her" + iso_639_2T_code="her" + iso_639_1_code="hz" + name="Herero" /> + <iso_639_entry + iso_639_2B_code="hil" + iso_639_2T_code="hil" + name="Hiligaynon" /> + <iso_639_entry + iso_639_2B_code="him" + iso_639_2T_code="him" + name="Himachali languages; Western Pahari languages" /> + <iso_639_entry + iso_639_2B_code="hin" + iso_639_2T_code="hin" + iso_639_1_code="hi" + name="Hindi" /> + <iso_639_entry + iso_639_2B_code="hit" + iso_639_2T_code="hit" + name="Hittite" /> + <iso_639_entry + iso_639_2B_code="hmn" + iso_639_2T_code="hmn" + name="Hmong; Mong" /> + <iso_639_entry + iso_639_2B_code="hmo" + iso_639_2T_code="hmo" + iso_639_1_code="ho" + name="Hiri Motu" /> + <iso_639_entry + iso_639_2B_code="hrv" + iso_639_2T_code="hrv" + iso_639_1_code="hr" + name="Croatian" /> + <iso_639_entry + iso_639_2B_code="hsb" + iso_639_2T_code="hsb" + name="Upper Sorbian" /> + <iso_639_entry + iso_639_2B_code="hun" + iso_639_2T_code="hun" + iso_639_1_code="hu" + name="Hungarian" /> + <iso_639_entry + iso_639_2B_code="hup" + iso_639_2T_code="hup" + name="Hupa" /> + <iso_639_entry + iso_639_2B_code="iba" + iso_639_2T_code="iba" + name="Iban" /> + <iso_639_entry + iso_639_2B_code="ibo" + iso_639_2T_code="ibo" + iso_639_1_code="ig" + name="Igbo" /> + <iso_639_entry + iso_639_2B_code="ice" + iso_639_2T_code="isl" + iso_639_1_code="is" + name="Icelandic" /> + <iso_639_entry + iso_639_2B_code="ido" + iso_639_2T_code="ido" + iso_639_1_code="io" + name="Ido" /> + <iso_639_entry + iso_639_2B_code="iii" + iso_639_2T_code="iii" + iso_639_1_code="ii" + name="Sichuan Yi; Nuosu" /> + <iso_639_entry + iso_639_2B_code="ijo" + iso_639_2T_code="ijo" + name="Ijo languages" /> + <iso_639_entry + iso_639_2B_code="iku" + iso_639_2T_code="iku" + iso_639_1_code="iu" + name="Inuktitut" /> + <iso_639_entry + iso_639_2B_code="ile" + iso_639_2T_code="ile" + iso_639_1_code="ie" + name="Interlingue; Occidental" /> + <iso_639_entry + iso_639_2B_code="ilo" + iso_639_2T_code="ilo" + name="Iloko" /> + <iso_639_entry + iso_639_2B_code="ina" + iso_639_2T_code="ina" + iso_639_1_code="ia" + name="Interlingua (International Auxiliary Language Association)" /> + <iso_639_entry + iso_639_2B_code="inc" + iso_639_2T_code="inc" + name="Indic languages" /> + <iso_639_entry + iso_639_2B_code="ind" + iso_639_2T_code="ind" + iso_639_1_code="id" + name="Indonesian" /> + <iso_639_entry + iso_639_2B_code="ine" + iso_639_2T_code="ine" + name="Indo-European languages" /> + <iso_639_entry + iso_639_2B_code="inh" + iso_639_2T_code="inh" + name="Ingush" /> + <iso_639_entry + iso_639_2B_code="ipk" + iso_639_2T_code="ipk" + iso_639_1_code="ik" + name="Inupiaq" /> + <iso_639_entry + iso_639_2B_code="ira" + iso_639_2T_code="ira" + name="Iranian languages" /> + <iso_639_entry + iso_639_2B_code="iro" + iso_639_2T_code="iro" + name="Iroquoian languages" /> + <iso_639_entry + iso_639_2B_code="ita" + iso_639_2T_code="ita" + iso_639_1_code="it" + name="Italian" /> + <iso_639_entry + iso_639_2B_code="jav" + iso_639_2T_code="jav" + iso_639_1_code="jv" + name="Javanese" /> + <iso_639_entry + iso_639_2B_code="jbo" + iso_639_2T_code="jbo" + name="Lojban" /> + <iso_639_entry + iso_639_2B_code="jpn" + iso_639_2T_code="jpn" + iso_639_1_code="ja" + name="Japanese" /> + <iso_639_entry + iso_639_2B_code="jpr" + iso_639_2T_code="jpr" + name="Judeo-Persian" /> + <iso_639_entry + iso_639_2B_code="jrb" + iso_639_2T_code="jrb" + name="Judeo-Arabic" /> + <iso_639_entry + iso_639_2B_code="kaa" + iso_639_2T_code="kaa" + name="Kara-Kalpak" /> + <iso_639_entry + iso_639_2B_code="kab" + iso_639_2T_code="kab" + name="Kabyle" /> + <iso_639_entry + iso_639_2B_code="kac" + iso_639_2T_code="kac" + name="Kachin; Jingpho" /> + <iso_639_entry + iso_639_2B_code="kal" + iso_639_2T_code="kal" + iso_639_1_code="kl" + name="Kalaallisut; Greenlandic" /> + <iso_639_entry + iso_639_2B_code="kam" + iso_639_2T_code="kam" + name="Kamba" /> + <iso_639_entry + iso_639_2B_code="kan" + iso_639_2T_code="kan" + iso_639_1_code="kn" + name="Kannada" /> + <iso_639_entry + iso_639_2B_code="kar" + iso_639_2T_code="kar" + name="Karen languages" /> + <iso_639_entry + iso_639_2B_code="kas" + iso_639_2T_code="kas" + iso_639_1_code="ks" + name="Kashmiri" /> + <iso_639_entry + iso_639_2B_code="kau" + iso_639_2T_code="kau" + iso_639_1_code="kr" + name="Kanuri" /> + <iso_639_entry + iso_639_2B_code="kaw" + iso_639_2T_code="kaw" + name="Kawi" /> + <iso_639_entry + iso_639_2B_code="kaz" + iso_639_2T_code="kaz" + iso_639_1_code="kk" + name="Kazakh" /> + <iso_639_entry + iso_639_2B_code="kbd" + iso_639_2T_code="kbd" + name="Kabardian" /> + <iso_639_entry + iso_639_2B_code="kha" + iso_639_2T_code="kha" + name="Khasi" /> + <iso_639_entry + iso_639_2B_code="khi" + iso_639_2T_code="khi" + name="Khoisan languages" /> + <iso_639_entry + iso_639_2B_code="khm" + iso_639_2T_code="khm" + iso_639_1_code="km" + name="Central Khmer" /> + <iso_639_entry + iso_639_2B_code="kho" + iso_639_2T_code="kho" + name="Khotanese;Sakan" /> + <iso_639_entry + iso_639_2B_code="kik" + iso_639_2T_code="kik" + iso_639_1_code="ki" + name="Kikuyu; Gikuyu" /> + <iso_639_entry + iso_639_2B_code="kin" + iso_639_2T_code="kin" + iso_639_1_code="rw" + name="Kinyarwanda" /> + <iso_639_entry + iso_639_2B_code="kir" + iso_639_2T_code="kir" + iso_639_1_code="ky" + name="Kirghiz; Kyrgyz" /> + <iso_639_entry + iso_639_2B_code="kmb" + iso_639_2T_code="kmb" + name="Kimbundu" /> + <iso_639_entry + iso_639_2B_code="kok" + iso_639_2T_code="kok" + name="Konkani" /> + <iso_639_entry + iso_639_2B_code="kom" + iso_639_2T_code="kom" + iso_639_1_code="kv" + name="Komi" /> + <iso_639_entry + iso_639_2B_code="kon" + iso_639_2T_code="kon" + iso_639_1_code="kg" + name="Kongo" /> + <iso_639_entry + iso_639_2B_code="kor" + iso_639_2T_code="kor" + iso_639_1_code="ko" + name="Korean" /> + <iso_639_entry + iso_639_2B_code="kos" + iso_639_2T_code="kos" + name="Kosraean" /> + <iso_639_entry + iso_639_2B_code="kpe" + iso_639_2T_code="kpe" + name="Kpelle" /> + <iso_639_entry + iso_639_2B_code="krc" + iso_639_2T_code="krc" + name="Karachay-Balkar" /> + <iso_639_entry + iso_639_2B_code="krl" + iso_639_2T_code="krl" + name="Karelian" /> + <iso_639_entry + iso_639_2B_code="kro" + iso_639_2T_code="kro" + name="Kru languages" /> + <iso_639_entry + iso_639_2B_code="kru" + iso_639_2T_code="kru" + name="Kurukh" /> + <iso_639_entry + iso_639_2B_code="kua" + iso_639_2T_code="kua" + iso_639_1_code="kj" + name="Kuanyama; Kwanyama" /> + <iso_639_entry + iso_639_2B_code="kum" + iso_639_2T_code="kum" + name="Kumyk" /> + <iso_639_entry + iso_639_2B_code="kur" + iso_639_2T_code="kur" + iso_639_1_code="ku" + name="Kurdish" /> + <iso_639_entry + iso_639_2B_code="kut" + iso_639_2T_code="kut" + name="Kutenai" /> + <iso_639_entry + iso_639_2B_code="lad" + iso_639_2T_code="lad" + name="Ladino" /> + <iso_639_entry + iso_639_2B_code="lah" + iso_639_2T_code="lah" + name="Lahnda" /> + <iso_639_entry + iso_639_2B_code="lam" + iso_639_2T_code="lam" + name="Lamba" /> + <iso_639_entry + iso_639_2B_code="lao" + iso_639_2T_code="lao" + iso_639_1_code="lo" + name="Lao" /> + <iso_639_entry + iso_639_2B_code="lat" + iso_639_2T_code="lat" + iso_639_1_code="la" + name="Latin" /> + <iso_639_entry + iso_639_2B_code="lav" + iso_639_2T_code="lav" + iso_639_1_code="lv" + name="Latvian" /> + <iso_639_entry + iso_639_2B_code="lez" + iso_639_2T_code="lez" + name="Lezghian" /> + <iso_639_entry + iso_639_2B_code="lim" + iso_639_2T_code="lim" + iso_639_1_code="li" + name="Limburgan; Limburger; Limburgish" /> + <iso_639_entry + iso_639_2B_code="lin" + iso_639_2T_code="lin" + iso_639_1_code="ln" + name="Lingala" /> + <iso_639_entry + iso_639_2B_code="lit" + iso_639_2T_code="lit" + iso_639_1_code="lt" + name="Lithuanian" /> + <iso_639_entry + iso_639_2B_code="lol" + iso_639_2T_code="lol" + name="Mongo" /> + <iso_639_entry + iso_639_2B_code="loz" + iso_639_2T_code="loz" + name="Lozi" /> + <iso_639_entry + iso_639_2B_code="ltz" + iso_639_2T_code="ltz" + iso_639_1_code="lb" + name="Luxembourgish; Letzeburgesch" /> + <iso_639_entry + iso_639_2B_code="lua" + iso_639_2T_code="lua" + name="Luba-Lulua" /> + <iso_639_entry + iso_639_2B_code="lub" + iso_639_2T_code="lub" + iso_639_1_code="lu" + name="Luba-Katanga" /> + <iso_639_entry + iso_639_2B_code="lug" + iso_639_2T_code="lug" + iso_639_1_code="lg" + name="Ganda" /> + <iso_639_entry + iso_639_2B_code="lui" + iso_639_2T_code="lui" + name="Luiseno" /> + <iso_639_entry + iso_639_2B_code="lun" + iso_639_2T_code="lun" + name="Lunda" /> + <iso_639_entry + iso_639_2B_code="luo" + iso_639_2T_code="luo" + name="Luo (Kenya and Tanzania)" /> + <iso_639_entry + iso_639_2B_code="lus" + iso_639_2T_code="lus" + name="Lushai" /> + <iso_639_entry + iso_639_2B_code="mac" + iso_639_2T_code="mkd" + iso_639_1_code="mk" + name="Macedonian" /> + <iso_639_entry + iso_639_2B_code="mad" + iso_639_2T_code="mad" + name="Madurese" /> + <iso_639_entry + iso_639_2B_code="mag" + iso_639_2T_code="mag" + name="Magahi" /> + <iso_639_entry + iso_639_2B_code="mah" + iso_639_2T_code="mah" + iso_639_1_code="mh" + name="Marshallese" /> + <iso_639_entry + iso_639_2B_code="mai" + iso_639_2T_code="mai" + name="Maithili" /> + <iso_639_entry + iso_639_2B_code="mak" + iso_639_2T_code="mak" + name="Makasar" /> + <iso_639_entry + iso_639_2B_code="mal" + iso_639_2T_code="mal" + iso_639_1_code="ml" + name="Malayalam" /> + <iso_639_entry + iso_639_2B_code="man" + iso_639_2T_code="man" + name="Mandingo" /> + <iso_639_entry + iso_639_2B_code="mao" + iso_639_2T_code="mri" + iso_639_1_code="mi" + name="Maori" /> + <iso_639_entry + iso_639_2B_code="map" + iso_639_2T_code="map" + name="Austronesian languages" /> + <iso_639_entry + iso_639_2B_code="mar" + iso_639_2T_code="mar" + iso_639_1_code="mr" + name="Marathi" /> + <iso_639_entry + iso_639_2B_code="mas" + iso_639_2T_code="mas" + name="Masai" /> + <iso_639_entry + iso_639_2B_code="may" + iso_639_2T_code="msa" + iso_639_1_code="ms" + name="Malay" /> + <iso_639_entry + iso_639_2B_code="mdf" + iso_639_2T_code="mdf" + name="Moksha" /> + <iso_639_entry + iso_639_2B_code="mdr" + iso_639_2T_code="mdr" + name="Mandar" /> + <iso_639_entry + iso_639_2B_code="men" + iso_639_2T_code="men" + name="Mende" /> + <iso_639_entry + iso_639_2B_code="mga" + iso_639_2T_code="mga" + name="Irish, Middle (900-1200)" /> + <iso_639_entry + iso_639_2B_code="mic" + iso_639_2T_code="mic" + name="Mi'kmaq; Micmac" /> + <iso_639_entry + iso_639_2B_code="min" + iso_639_2T_code="min" + name="Minangkabau" /> + <iso_639_entry + iso_639_2B_code="mis" + iso_639_2T_code="mis" + name="Uncoded languages" /> + <iso_639_entry + iso_639_2B_code="mkh" + iso_639_2T_code="mkh" + name="Mon-Khmer languages" /> + <iso_639_entry + iso_639_2B_code="mlg" + iso_639_2T_code="mlg" + iso_639_1_code="mg" + name="Malagasy" /> + <iso_639_entry + iso_639_2B_code="mlt" + iso_639_2T_code="mlt" + iso_639_1_code="mt" + name="Maltese" /> + <iso_639_entry + iso_639_2B_code="mnc" + iso_639_2T_code="mnc" + name="Manchu" /> + <iso_639_entry + iso_639_2B_code="mni" + iso_639_2T_code="mni" + name="Manipuri" /> + <iso_639_entry + iso_639_2B_code="mno" + iso_639_2T_code="mno" + name="Manobo languages" /> + <iso_639_entry + iso_639_2B_code="moh" + iso_639_2T_code="moh" + name="Mohawk" /> + <iso_639_entry + iso_639_2B_code="mol" + iso_639_2T_code="mol" + iso_639_1_code="mo" + name="Moldavian; Moldovan" /> + <iso_639_entry + iso_639_2B_code="mon" + iso_639_2T_code="mon" + iso_639_1_code="mn" + name="Mongolian" /> + <iso_639_entry + iso_639_2B_code="mos" + iso_639_2T_code="mos" + name="Mossi" /> + <iso_639_entry + iso_639_2B_code="mul" + iso_639_2T_code="mul" + name="Multiple languages" /> + <iso_639_entry + iso_639_2B_code="mun" + iso_639_2T_code="mun" + name="Munda languages" /> + <iso_639_entry + iso_639_2B_code="mus" + iso_639_2T_code="mus" + name="Creek" /> + <iso_639_entry + iso_639_2B_code="mwl" + iso_639_2T_code="mwl" + name="Mirandese" /> + <iso_639_entry + iso_639_2B_code="mwr" + iso_639_2T_code="mwr" + name="Marwari" /> + <iso_639_entry + iso_639_2B_code="myn" + iso_639_2T_code="myn" + name="Mayan languages" /> + <iso_639_entry + iso_639_2B_code="myv" + iso_639_2T_code="myv" + name="Erzya" /> + <iso_639_entry + iso_639_2B_code="nah" + iso_639_2T_code="nah" + name="Nahuatl languages" /> + <iso_639_entry + iso_639_2B_code="nai" + iso_639_2T_code="nai" + name="North American Indian languages" /> + <iso_639_entry + iso_639_2B_code="nap" + iso_639_2T_code="nap" + name="Neapolitan" /> + <iso_639_entry + iso_639_2B_code="nau" + iso_639_2T_code="nau" + iso_639_1_code="na" + name="Nauru" /> + <iso_639_entry + iso_639_2B_code="nav" + iso_639_2T_code="nav" + iso_639_1_code="nv" + name="Navajo; Navaho" /> + <iso_639_entry + iso_639_2B_code="nbl" + iso_639_2T_code="nbl" + iso_639_1_code="nr" + name="Ndebele, South; South Ndebele" /> + <iso_639_entry + iso_639_2B_code="nde" + iso_639_2T_code="nde" + iso_639_1_code="nd" + name="Ndebele, North; North Ndebele" /> + <iso_639_entry + iso_639_2B_code="ndo" + iso_639_2T_code="ndo" + iso_639_1_code="ng" + name="Ndonga" /> + <iso_639_entry + iso_639_2B_code="nds" + iso_639_2T_code="nds" + name="Low German; Low Saxon; German, Low; Saxon, Low" /> + <iso_639_entry + iso_639_2B_code="nep" + iso_639_2T_code="nep" + iso_639_1_code="ne" + name="Nepali" /> + <iso_639_entry + iso_639_2B_code="new" + iso_639_2T_code="new" + name="Nepal Bhasa; Newari" /> + <iso_639_entry + iso_639_2B_code="nia" + iso_639_2T_code="nia" + name="Nias" /> + <iso_639_entry + iso_639_2B_code="nic" + iso_639_2T_code="nic" + name="Niger-Kordofanian languages" /> + <iso_639_entry + iso_639_2B_code="niu" + iso_639_2T_code="niu" + name="Niuean" /> + <iso_639_entry + iso_639_2B_code="nno" + iso_639_2T_code="nno" + iso_639_1_code="nn" + name="Norwegian Nynorsk; Nynorsk, Norwegian" /> + <iso_639_entry + iso_639_2B_code="nob" + iso_639_2T_code="nob" + iso_639_1_code="nb" + name="Bokmål, Norwegian; Norwegian Bokmål" /> + <iso_639_entry + iso_639_2B_code="nog" + iso_639_2T_code="nog" + name="Nogai" /> + <iso_639_entry + iso_639_2B_code="non" + iso_639_2T_code="non" + name="Norse, Old" /> + <iso_639_entry + iso_639_2B_code="nor" + iso_639_2T_code="nor" + iso_639_1_code="no" + name="Norwegian" /> + <iso_639_entry + iso_639_2B_code="nqo" + iso_639_2T_code="nqo" + name="N'Ko" /> + <iso_639_entry + iso_639_2B_code="nso" + iso_639_2T_code="nso" + name="Pedi; Sepedi; Northern Sotho" /> + <iso_639_entry + iso_639_2B_code="nub" + iso_639_2T_code="nub" + name="Nubian languages" /> + <iso_639_entry + iso_639_2B_code="nwc" + iso_639_2T_code="nwc" + name="Classical Newari; Old Newari; Classical Nepal Bhasa" /> + <iso_639_entry + iso_639_2B_code="nya" + iso_639_2T_code="nya" + iso_639_1_code="ny" + name="Chichewa; Chewa; Nyanja" /> + <iso_639_entry + iso_639_2B_code="nym" + iso_639_2T_code="nym" + name="Nyamwezi" /> + <iso_639_entry + iso_639_2B_code="nyn" + iso_639_2T_code="nyn" + name="Nyankole" /> + <iso_639_entry + iso_639_2B_code="nyo" + iso_639_2T_code="nyo" + name="Nyoro" /> + <iso_639_entry + iso_639_2B_code="nzi" + iso_639_2T_code="nzi" + name="Nzima" /> + <iso_639_entry + iso_639_2B_code="oci" + iso_639_2T_code="oci" + iso_639_1_code="oc" + name="Occitan (post 1500)" /> + <iso_639_entry + iso_639_2B_code="oji" + iso_639_2T_code="oji" + iso_639_1_code="oj" + name="Ojibwa" /> + <iso_639_entry + iso_639_2B_code="ori" + iso_639_2T_code="ori" + iso_639_1_code="or" + name="Oriya" /> + <iso_639_entry + iso_639_2B_code="orm" + iso_639_2T_code="orm" + iso_639_1_code="om" + name="Oromo" /> + <iso_639_entry + iso_639_2B_code="osa" + iso_639_2T_code="osa" + name="Osage" /> + <iso_639_entry + iso_639_2B_code="oss" + iso_639_2T_code="oss" + iso_639_1_code="os" + name="Ossetian; Ossetic" /> + <iso_639_entry + iso_639_2B_code="ota" + iso_639_2T_code="ota" + name="Turkish, Ottoman (1500-1928)" /> + <iso_639_entry + iso_639_2B_code="oto" + iso_639_2T_code="oto" + name="Otomian languages" /> + <iso_639_entry + iso_639_2B_code="paa" + iso_639_2T_code="paa" + name="Papuan languages" /> + <iso_639_entry + iso_639_2B_code="pag" + iso_639_2T_code="pag" + name="Pangasinan" /> + <iso_639_entry + iso_639_2B_code="pal" + iso_639_2T_code="pal" + name="Pahlavi" /> + <iso_639_entry + iso_639_2B_code="pam" + iso_639_2T_code="pam" + name="Pampanga; Kapampangan" /> + <iso_639_entry + iso_639_2B_code="pan" + iso_639_2T_code="pan" + iso_639_1_code="pa" + name="Panjabi; Punjabi" /> + <iso_639_entry + iso_639_2B_code="pap" + iso_639_2T_code="pap" + name="Papiamento" /> + <iso_639_entry + iso_639_2B_code="pau" + iso_639_2T_code="pau" + name="Palauan" /> + <iso_639_entry + iso_639_2B_code="peo" + iso_639_2T_code="peo" + name="Persian, Old (ca. 600-400 B.C.)" /> + <iso_639_entry + iso_639_2B_code="per" + iso_639_2T_code="fas" + iso_639_1_code="fa" + name="Persian" /> + <iso_639_entry + iso_639_2B_code="phi" + iso_639_2T_code="phi" + name="Philippine languages" /> + <iso_639_entry + iso_639_2B_code="phn" + iso_639_2T_code="phn" + name="Phoenician" /> + <iso_639_entry + iso_639_2B_code="pli" + iso_639_2T_code="pli" + iso_639_1_code="pi" + name="Pali" /> + <iso_639_entry + iso_639_2B_code="pol" + iso_639_2T_code="pol" + iso_639_1_code="pl" + name="Polish" /> + <iso_639_entry + iso_639_2B_code="pon" + iso_639_2T_code="pon" + name="Pohnpeian" /> + <iso_639_entry + iso_639_2B_code="por" + iso_639_2T_code="por" + iso_639_1_code="pt" + name="Portuguese" /> + <iso_639_entry + iso_639_2B_code="pra" + iso_639_2T_code="pra" + name="Prakrit languages" /> + <iso_639_entry + iso_639_2B_code="pro" + iso_639_2T_code="pro" + name="Provençal, Old (to 1500); Occitan, Old (to 1500)" /> + <iso_639_entry + iso_639_2B_code="pus" + iso_639_2T_code="pus" + iso_639_1_code="ps" + name="Pushto; Pashto" /> + <iso_639_entry + iso_639_2B_code="qaa-qtz" + iso_639_2T_code="qaa-qtz" + name="Reserved for local use" /> + <iso_639_entry + iso_639_2B_code="que" + iso_639_2T_code="que" + iso_639_1_code="qu" + name="Quechua" /> + <iso_639_entry + iso_639_2B_code="raj" + iso_639_2T_code="raj" + name="Rajasthani" /> + <iso_639_entry + iso_639_2B_code="rap" + iso_639_2T_code="rap" + name="Rapanui" /> + <iso_639_entry + iso_639_2B_code="rar" + iso_639_2T_code="rar" + name="Rarotongan; Cook Islands Maori" /> + <iso_639_entry + iso_639_2B_code="roa" + iso_639_2T_code="roa" + name="Romance languages" /> + <iso_639_entry + iso_639_2B_code="roh" + iso_639_2T_code="roh" + iso_639_1_code="rm" + name="Romansh" /> + <iso_639_entry + iso_639_2B_code="rom" + iso_639_2T_code="rom" + name="Romany" /> + <iso_639_entry + iso_639_2B_code="rum" + iso_639_2T_code="ron" + iso_639_1_code="ro" + name="Romanian" /> + <iso_639_entry + iso_639_2B_code="run" + iso_639_2T_code="run" + iso_639_1_code="rn" + name="Rundi" /> + <iso_639_entry + iso_639_2B_code="rup" + iso_639_2T_code="rup" + name="Aromanian; Arumanian; Macedo-Romanian" /> + <iso_639_entry + iso_639_2B_code="rus" + iso_639_2T_code="rus" + iso_639_1_code="ru" + name="Russian" /> + <iso_639_entry + iso_639_2B_code="sad" + iso_639_2T_code="sad" + name="Sandawe" /> + <iso_639_entry + iso_639_2B_code="sag" + iso_639_2T_code="sag" + iso_639_1_code="sg" + name="Sango" /> + <iso_639_entry + iso_639_2B_code="sah" + iso_639_2T_code="sah" + name="Yakut" /> + <iso_639_entry + iso_639_2B_code="sai" + iso_639_2T_code="sai" + name="South American Indian languages" /> + <iso_639_entry + iso_639_2B_code="sal" + iso_639_2T_code="sal" + name="Salishan languages" /> + <iso_639_entry + iso_639_2B_code="sam" + iso_639_2T_code="sam" + name="Samaritan Aramaic" /> + <iso_639_entry + iso_639_2B_code="san" + iso_639_2T_code="san" + iso_639_1_code="sa" + name="Sanskrit" /> + <iso_639_entry + iso_639_2B_code="sas" + iso_639_2T_code="sas" + name="Sasak" /> + <iso_639_entry + iso_639_2B_code="sat" + iso_639_2T_code="sat" + name="Santali" /> + <iso_639_entry + iso_639_2B_code="scn" + iso_639_2T_code="scn" + name="Sicilian" /> + <iso_639_entry + iso_639_2B_code="sco" + iso_639_2T_code="sco" + name="Scots" /> + <iso_639_entry + iso_639_2B_code="sel" + iso_639_2T_code="sel" + name="Selkup" /> + <iso_639_entry + iso_639_2B_code="sem" + iso_639_2T_code="sem" + name="Semitic languages" /> + <iso_639_entry + iso_639_2B_code="sga" + iso_639_2T_code="sga" + name="Irish, Old (to 900)" /> + <iso_639_entry + iso_639_2B_code="sgn" + iso_639_2T_code="sgn" + name="Sign Languages" /> + <iso_639_entry + iso_639_2B_code="shn" + iso_639_2T_code="shn" + name="Shan" /> + <iso_639_entry + iso_639_2B_code="sid" + iso_639_2T_code="sid" + name="Sidamo" /> + <iso_639_entry + iso_639_2B_code="sin" + iso_639_2T_code="sin" + iso_639_1_code="si" + name="Sinhala; Sinhalese" /> + <iso_639_entry + iso_639_2B_code="sio" + iso_639_2T_code="sio" + name="Siouan languages" /> + <iso_639_entry + iso_639_2B_code="sit" + iso_639_2T_code="sit" + name="Sino-Tibetan languages" /> + <iso_639_entry + iso_639_2B_code="sla" + iso_639_2T_code="sla" + name="Slavic languages" /> + <iso_639_entry + iso_639_2B_code="slo" + iso_639_2T_code="slk" + iso_639_1_code="sk" + name="Slovak" /> + <iso_639_entry + iso_639_2B_code="slv" + iso_639_2T_code="slv" + iso_639_1_code="sl" + name="Slovenian" /> + <iso_639_entry + iso_639_2B_code="sma" + iso_639_2T_code="sma" + name="Southern Sami" /> + <iso_639_entry + iso_639_2B_code="sme" + iso_639_2T_code="sme" + iso_639_1_code="se" + name="Northern Sami" /> + <iso_639_entry + iso_639_2B_code="smi" + iso_639_2T_code="smi" + name="Sami languages" /> + <iso_639_entry + iso_639_2B_code="smj" + iso_639_2T_code="smj" + name="Lule Sami" /> + <iso_639_entry + iso_639_2B_code="smn" + iso_639_2T_code="smn" + name="Inari Sami" /> + <iso_639_entry + iso_639_2B_code="smo" + iso_639_2T_code="smo" + iso_639_1_code="sm" + name="Samoan" /> + <iso_639_entry + iso_639_2B_code="sms" + iso_639_2T_code="sms" + name="Skolt Sami" /> + <iso_639_entry + iso_639_2B_code="sna" + iso_639_2T_code="sna" + iso_639_1_code="sn" + name="Shona" /> + <iso_639_entry + iso_639_2B_code="snd" + iso_639_2T_code="snd" + iso_639_1_code="sd" + name="Sindhi" /> + <iso_639_entry + iso_639_2B_code="snk" + iso_639_2T_code="snk" + name="Soninke" /> + <iso_639_entry + iso_639_2B_code="sog" + iso_639_2T_code="sog" + name="Sogdian" /> + <iso_639_entry + iso_639_2B_code="som" + iso_639_2T_code="som" + iso_639_1_code="so" + name="Somali" /> + <iso_639_entry + iso_639_2B_code="son" + iso_639_2T_code="son" + name="Songhai languages" /> + <iso_639_entry + iso_639_2B_code="sot" + iso_639_2T_code="sot" + iso_639_1_code="st" + name="Sotho, Southern" /> + <iso_639_entry + iso_639_2B_code="spa" + iso_639_2T_code="spa" + iso_639_1_code="es" + name="Spanish; Castilian" /> + <iso_639_entry + iso_639_2B_code="srd" + iso_639_2T_code="srd" + iso_639_1_code="sc" + name="Sardinian" /> + <iso_639_entry + iso_639_2B_code="srn" + iso_639_2T_code="srn" + name="Sranan Tongo" /> + <iso_639_entry + iso_639_2B_code="srp" + iso_639_2T_code="srp" + iso_639_1_code="sr" + name="Serbian" /> + <iso_639_entry + iso_639_2B_code="srr" + iso_639_2T_code="srr" + name="Serer" /> + <iso_639_entry + iso_639_2B_code="ssa" + iso_639_2T_code="ssa" + name="Nilo-Saharan languages" /> + <iso_639_entry + iso_639_2B_code="ssw" + iso_639_2T_code="ssw" + iso_639_1_code="ss" + name="Swati" /> + <iso_639_entry + iso_639_2B_code="suk" + iso_639_2T_code="suk" + name="Sukuma" /> + <iso_639_entry + iso_639_2B_code="sun" + iso_639_2T_code="sun" + iso_639_1_code="su" + name="Sundanese" /> + <iso_639_entry + iso_639_2B_code="sus" + iso_639_2T_code="sus" + name="Susu" /> + <iso_639_entry + iso_639_2B_code="sux" + iso_639_2T_code="sux" + name="Sumerian" /> + <iso_639_entry + iso_639_2B_code="swa" + iso_639_2T_code="swa" + iso_639_1_code="sw" + name="Swahili" /> + <iso_639_entry + iso_639_2B_code="swe" + iso_639_2T_code="swe" + iso_639_1_code="sv" + name="Swedish" /> + <iso_639_entry + iso_639_2B_code="syc" + iso_639_2T_code="syc" + name="Classical Syriac" /> + <iso_639_entry + iso_639_2B_code="syr" + iso_639_2T_code="syr" + name="Syriac" /> + <iso_639_entry + iso_639_2B_code="tah" + iso_639_2T_code="tah" + iso_639_1_code="ty" + name="Tahitian" /> + <iso_639_entry + iso_639_2B_code="tai" + iso_639_2T_code="tai" + name="Tai languages" /> + <iso_639_entry + iso_639_2B_code="tam" + iso_639_2T_code="tam" + iso_639_1_code="ta" + name="Tamil" /> + <iso_639_entry + iso_639_2B_code="tat" + iso_639_2T_code="tat" + iso_639_1_code="tt" + name="Tatar" /> + <iso_639_entry + iso_639_2B_code="tel" + iso_639_2T_code="tel" + iso_639_1_code="te" + name="Telugu" /> + <iso_639_entry + iso_639_2B_code="tem" + iso_639_2T_code="tem" + name="Timne" /> + <iso_639_entry + iso_639_2B_code="ter" + iso_639_2T_code="ter" + name="Tereno" /> + <iso_639_entry + iso_639_2B_code="tet" + iso_639_2T_code="tet" + name="Tetum" /> + <iso_639_entry + iso_639_2B_code="tgk" + iso_639_2T_code="tgk" + iso_639_1_code="tg" + name="Tajik" /> + <iso_639_entry + iso_639_2B_code="tgl" + iso_639_2T_code="tgl" + iso_639_1_code="tl" + name="Tagalog" /> + <iso_639_entry + iso_639_2B_code="tha" + iso_639_2T_code="tha" + iso_639_1_code="th" + name="Thai" /> + <iso_639_entry + iso_639_2B_code="tib" + iso_639_2T_code="bod" + iso_639_1_code="bo" + name="Tibetan" /> + <iso_639_entry + iso_639_2B_code="tig" + iso_639_2T_code="tig" + name="Tigre" /> + <iso_639_entry + iso_639_2B_code="tir" + iso_639_2T_code="tir" + iso_639_1_code="ti" + name="Tigrinya" /> + <iso_639_entry + iso_639_2B_code="tiv" + iso_639_2T_code="tiv" + name="Tiv" /> + <iso_639_entry + iso_639_2B_code="tkl" + iso_639_2T_code="tkl" + name="Tokelau" /> + <iso_639_entry + iso_639_2B_code="tlh" + iso_639_2T_code="tlh" + name="Klingon; tlhIngan-Hol" /> + <iso_639_entry + iso_639_2B_code="tli" + iso_639_2T_code="tli" + name="Tlingit" /> + <iso_639_entry + iso_639_2B_code="tmh" + iso_639_2T_code="tmh" + name="Tamashek" /> + <iso_639_entry + iso_639_2B_code="tog" + iso_639_2T_code="tog" + name="Tonga (Nyasa)" /> + <iso_639_entry + iso_639_2B_code="ton" + iso_639_2T_code="ton" + iso_639_1_code="to" + name="Tonga (Tonga Islands)" /> + <iso_639_entry + iso_639_2B_code="tpi" + iso_639_2T_code="tpi" + name="Tok Pisin" /> + <iso_639_entry + iso_639_2B_code="tsi" + iso_639_2T_code="tsi" + name="Tsimshian" /> + <iso_639_entry + iso_639_2B_code="tsn" + iso_639_2T_code="tsn" + iso_639_1_code="tn" + name="Tswana" /> + <iso_639_entry + iso_639_2B_code="tso" + iso_639_2T_code="tso" + iso_639_1_code="ts" + name="Tsonga" /> + <iso_639_entry + iso_639_2B_code="tuk" + iso_639_2T_code="tuk" + iso_639_1_code="tk" + name="Turkmen" /> + <iso_639_entry + iso_639_2B_code="tum" + iso_639_2T_code="tum" + name="Tumbuka" /> + <iso_639_entry + iso_639_2B_code="tup" + iso_639_2T_code="tup" + name="Tupi languages" /> + <iso_639_entry + iso_639_2B_code="tur" + iso_639_2T_code="tur" + iso_639_1_code="tr" + name="Turkish" /> + <iso_639_entry + iso_639_2B_code="tut" + iso_639_2T_code="tut" + name="Altaic languages" /> + <iso_639_entry + iso_639_2B_code="tvl" + iso_639_2T_code="tvl" + name="Tuvalu" /> + <iso_639_entry + iso_639_2B_code="twi" + iso_639_2T_code="twi" + iso_639_1_code="tw" + name="Twi" /> + <iso_639_entry + iso_639_2B_code="tyv" + iso_639_2T_code="tyv" + name="Tuvinian" /> + <iso_639_entry + iso_639_2B_code="udm" + iso_639_2T_code="udm" + name="Udmurt" /> + <iso_639_entry + iso_639_2B_code="uga" + iso_639_2T_code="uga" + name="Ugaritic" /> + <iso_639_entry + iso_639_2B_code="uig" + iso_639_2T_code="uig" + iso_639_1_code="ug" + name="Uighur; Uyghur" /> + <iso_639_entry + iso_639_2B_code="ukr" + iso_639_2T_code="ukr" + iso_639_1_code="uk" + name="Ukrainian" /> + <iso_639_entry + iso_639_2B_code="umb" + iso_639_2T_code="umb" + name="Umbundu" /> + <iso_639_entry + iso_639_2B_code="und" + iso_639_2T_code="und" + name="Undetermined" /> + <iso_639_entry + iso_639_2B_code="urd" + iso_639_2T_code="urd" + iso_639_1_code="ur" + name="Urdu" /> + <iso_639_entry + iso_639_2B_code="uzb" + iso_639_2T_code="uzb" + iso_639_1_code="uz" + name="Uzbek" /> + <iso_639_entry + iso_639_2B_code="vai" + iso_639_2T_code="vai" + name="Vai" /> + <iso_639_entry + iso_639_2B_code="ven" + iso_639_2T_code="ven" + iso_639_1_code="ve" + name="Venda" /> + <iso_639_entry + iso_639_2B_code="vie" + iso_639_2T_code="vie" + iso_639_1_code="vi" + name="Vietnamese" /> + <iso_639_entry + iso_639_2B_code="vol" + iso_639_2T_code="vol" + iso_639_1_code="vo" + name="Volapük" /> + <iso_639_entry + iso_639_2B_code="vot" + iso_639_2T_code="vot" + name="Votic" /> + <iso_639_entry + iso_639_2B_code="wak" + iso_639_2T_code="wak" + name="Wakashan languages" /> + <iso_639_entry + iso_639_2B_code="wal" + iso_639_2T_code="wal" + name="Wolaitta; Wolaytta" /> + <iso_639_entry + iso_639_2B_code="war" + iso_639_2T_code="war" + name="Waray" /> + <iso_639_entry + iso_639_2B_code="was" + iso_639_2T_code="was" + name="Washo" /> + <iso_639_entry + iso_639_2B_code="wel" + iso_639_2T_code="cym" + iso_639_1_code="cy" + name="Welsh" /> + <iso_639_entry + iso_639_2B_code="wen" + iso_639_2T_code="wen" + name="Sorbian languages" /> + <iso_639_entry + iso_639_2B_code="wln" + iso_639_2T_code="wln" + iso_639_1_code="wa" + name="Walloon" /> + <iso_639_entry + iso_639_2B_code="wol" + iso_639_2T_code="wol" + iso_639_1_code="wo" + name="Wolof" /> + <iso_639_entry + iso_639_2B_code="xal" + iso_639_2T_code="xal" + name="Kalmyk; Oirat" /> + <iso_639_entry + iso_639_2B_code="xho" + iso_639_2T_code="xho" + iso_639_1_code="xh" + name="Xhosa" /> + <iso_639_entry + iso_639_2B_code="yao" + iso_639_2T_code="yao" + name="Yao" /> + <iso_639_entry + iso_639_2B_code="yap" + iso_639_2T_code="yap" + name="Yapese" /> + <iso_639_entry + iso_639_2B_code="yid" + iso_639_2T_code="yid" + iso_639_1_code="yi" + name="Yiddish" /> + <iso_639_entry + iso_639_2B_code="yor" + iso_639_2T_code="yor" + iso_639_1_code="yo" + name="Yoruba" /> + <iso_639_entry + iso_639_2B_code="ypk" + iso_639_2T_code="ypk" + name="Yupik languages" /> + <iso_639_entry + iso_639_2B_code="zap" + iso_639_2T_code="zap" + name="Zapotec" /> + <iso_639_entry + iso_639_2B_code="zbl" + iso_639_2T_code="zbl" + name="Blissymbols; Blissymbolics; Bliss" /> + <iso_639_entry + iso_639_2B_code="zen" + iso_639_2T_code="zen" + name="Zenaga" /> + <iso_639_entry + iso_639_2B_code="zha" + iso_639_2T_code="zha" + iso_639_1_code="za" + name="Zhuang; Chuang" /> + <iso_639_entry + iso_639_2B_code="znd" + iso_639_2T_code="znd" + name="Zande languages" /> + <iso_639_entry + iso_639_2B_code="zul" + iso_639_2T_code="zul" + iso_639_1_code="zu" + name="Zulu" /> + <iso_639_entry + iso_639_2B_code="zun" + iso_639_2T_code="zun" + name="Zuni" /> + <iso_639_entry + iso_639_2B_code="zxx" + iso_639_2T_code="zxx" + name="No linguistic content; Not applicable" /> + <iso_639_entry + iso_639_2B_code="zza" + iso_639_2T_code="zza" + name="Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki" /> +</iso_639_entries> diff --git a/config.h b/config.h index fdd277d9..56689133 100644 --- a/config.h +++ b/config.h @@ -3,6 +3,7 @@ #define USE_GMODULE #define USE_PLUGIN #define USE_LIBSEXY +#define HAVE_ISO_CODES #define PACKAGE_NAME "xchat" #define PACKAGE_VERSION "1496-4" #define XCHAT_RELEASE "2.8.8" diff --git a/dep-x64/deps-x64.txt b/dep-x64/deps-x64.txt index 6461b9bd..769e7634 100644 --- a/dep-x64/deps-x64.txt +++ b/dep-x64/deps-x64.txt @@ -19,3 +19,4 @@ http://ftp.gnome.org/pub/gnome/binaries/win64/pango/1.28/pango-dev_1.28.3-1_win6 http://xchat-wdk.googlecode.com/files/Enchant-WDK%201.6.0-2%20x64.7z http://xchat-wdk.googlecode.com/files/Lua-WDK%205.1.4-2-2%20x64.7z http://xchat-wdk.googlecode.com/files/OpenSSL-WDK%201.0.0d%20x64.7z +http://xchat-wdk.googlecode.com/files/LibXML-WDK%202.7.8%20x64.7z diff --git a/dep-x86/deps-x86.txt b/dep-x86/deps-x86.txt index d0d2db0f..02fcf172 100644 --- a/dep-x86/deps-x86.txt +++ b/dep-x86/deps-x86.txt @@ -21,3 +21,4 @@ http://xchat-wdk.googlecode.com/files/Lua-WDK%205.1.4-2-2%20x86.7z http://xchat-wdk.googlecode.com/files/OpenSSL-WDK%201.0.0d%20x86.7z http://xchat-wdk.googlecode.com/files/myspell-20101001.7z http://xchat-wdk.googlecode.com/files/gettext-tools-0.17-msgfmt.zip +http://xchat-wdk.googlecode.com/files/LibXML-WDK%202.7.8%20x86.7z diff --git a/src/fe-gtk/makefile.mak b/src/fe-gtk/makefile.mak index f210181a..27922405 100644 --- a/src/fe-gtk/makefile.mak +++ b/src/fe-gtk/makefile.mak @@ -25,6 +25,8 @@ rawlog.obj \ search.obj \ servlistgui.obj \ setup.obj \ +sexy-iso-codes.obj \ +sexy-marshal.obj \ sexy-spell-entry.obj \ textgui.obj \ urlgrab.obj \ diff --git a/src/fe-gtk/sexy-iso-codes.c b/src/fe-gtk/sexy-iso-codes.c new file mode 100644 index 00000000..3477cc30 --- /dev/null +++ b/src/fe-gtk/sexy-iso-codes.c @@ -0,0 +1,301 @@ +/* + * Copyright (C) 2005 Nathan Fredrickson + * Borrowed from Galeon, renamed, and simplified to only use iso-codes with no + * fallback method. + * + * Copyright (C) 2004 Christian Persch + * Copyright (C) 2004 Crispin Flowerday + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#include "../../config.h" + +#include "sexy-iso-codes.h" + +#include <glib/gi18n.h> + +#include <string.h> + +#include <libxml/xmlreader.h> + +static GHashTable *iso_639_table = NULL; +static GHashTable *iso_3166_table = NULL; + +#define ISO_639_DOMAIN "iso_639" +#define ISO_3166_DOMAIN "iso_3166" + +#ifdef HAVE_ISO_CODES + +#define ISOCODESLOCALEDIR "/share/locale" + +static void +read_iso_639_entry (xmlTextReaderPtr reader, + GHashTable *table) +{ + xmlChar *code, *name; + + code = xmlTextReaderGetAttribute (reader, (const xmlChar *) "iso_639_1_code"); + name = xmlTextReaderGetAttribute (reader, (const xmlChar *) "name"); + + /* Get iso-639-2 code */ + if (code == NULL || code[0] == '\0') + { + xmlFree (code); + /* FIXME: use the 2T or 2B code? */ + code = xmlTextReaderGetAttribute (reader, (const xmlChar *) "iso_639_2T_code"); + } + + if (code != NULL && code[0] != '\0' && name != NULL && name[0] != '\0') + { + g_hash_table_insert (table, code, name); + } + else + { + xmlFree (code); + xmlFree (name); + } +} + +static void +read_iso_3166_entry (xmlTextReaderPtr reader, + GHashTable *table) +{ + xmlChar *code, *name; + + code = xmlTextReaderGetAttribute (reader, (const xmlChar *) "alpha_2_code"); + name = xmlTextReaderGetAttribute (reader, (const xmlChar *) "name"); + + if (code != NULL && code[0] != '\0' && name != NULL && name[0] != '\0') + { + char *lcode; + + lcode = g_ascii_strdown ((char *) code, -1); + xmlFree (code); + + g_hash_table_insert (table, lcode, name); + } + else + { + xmlFree (code); + xmlFree (name); + } + +} + +typedef enum +{ + STATE_START, + STATE_STOP, + STATE_ENTRIES, +} ParserState; + +static gboolean +load_iso_entries (int iso, + GFunc read_entry_func, + gpointer user_data) +{ + xmlTextReaderPtr reader; + ParserState state = STATE_START; + xmlChar iso_entries[32], iso_entry[32]; + char *filename; + int ret = -1; + + filename = g_strdup_printf (".\\share\\xml\\iso-codes\\iso_%d.xml", iso); + reader = xmlNewTextReaderFilename (filename); + if (reader == NULL) goto out; + + xmlStrPrintf (iso_entries, sizeof (iso_entries), + (xmlChar *)"iso_%d_entries", iso); + xmlStrPrintf (iso_entry, sizeof (iso_entry), + (xmlChar *)"iso_%d_entry", iso); + + ret = xmlTextReaderRead (reader); + + while (ret == 1) + { + const xmlChar *tag; + xmlReaderTypes type; + + tag = xmlTextReaderConstName (reader); + type = xmlTextReaderNodeType (reader); + + if (state == STATE_ENTRIES && + type == XML_READER_TYPE_ELEMENT && + xmlStrEqual (tag, iso_entry)) + { + read_entry_func (reader, user_data); + } + else if (state == STATE_START && + type == XML_READER_TYPE_ELEMENT && + xmlStrEqual (tag, iso_entries)) + { + state = STATE_ENTRIES; + } + else if (state == STATE_ENTRIES && + type == XML_READER_TYPE_END_ELEMENT && + xmlStrEqual (tag, iso_entries)) + { + state = STATE_STOP; + } + else if (type == XML_READER_TYPE_SIGNIFICANT_WHITESPACE || + type == XML_READER_TYPE_WHITESPACE || + type == XML_READER_TYPE_TEXT || + type == XML_READER_TYPE_COMMENT) + { + /* eat it */ + } + else + { + /* ignore it */ + } + + ret = xmlTextReaderRead (reader); + } + + xmlFreeTextReader (reader); + +out: + if (ret < 0 || state != STATE_STOP) + { + /* This is not critical, we will fallback to our own code */ + g_free (filename); + return FALSE; + } + + g_free (filename); + + return TRUE; +} + +#endif /* HAVE_ISO_CODES */ + + +static void +ensure_iso_codes_initialised (void) +{ + static gboolean initialised = FALSE; + + if (initialised == TRUE) + { + return; + } + initialised = TRUE; + +#if defined (ENABLE_NLS) && defined (HAVE_ISO_CODES) + bindtextdomain (ISO_639_DOMAIN, ISOCODESLOCALEDIR); + bind_textdomain_codeset (ISO_639_DOMAIN, "UTF-8"); + + bindtextdomain(ISO_3166_DOMAIN, ISOCODESLOCALEDIR); + bind_textdomain_codeset (ISO_3166_DOMAIN, "UTF-8"); +#endif + + iso_639_table = g_hash_table_new_full (g_str_hash, g_str_equal, + (GDestroyNotify) xmlFree, + (GDestroyNotify) xmlFree); + + iso_3166_table = g_hash_table_new_full (g_str_hash, g_str_equal, + (GDestroyNotify) g_free, + (GDestroyNotify) xmlFree); + +#ifdef HAVE_ISO_CODES + load_iso_entries (639, (GFunc) read_iso_639_entry, iso_639_table); + load_iso_entries (3166, (GFunc) read_iso_3166_entry, iso_3166_table); +#endif +} + + +static char * +get_iso_name_for_lang_code (const char *code) +{ + char **str; + char *name = NULL; + const char *langname, *localename; + int len; + + str = g_strsplit (code, "_", -1); + + /* count the entries */ + for (len = 0; str[len]; len++ ) /* empty */; + + g_return_val_if_fail (len != 0, NULL); + + langname = (const char *) g_hash_table_lookup (iso_639_table, str[0]); + + if (len == 1 && langname != NULL) + { + name = g_strdup (dgettext (ISO_639_DOMAIN, langname)); + } + else if (len == 2 && langname != NULL) + { + localename = (const char *) g_hash_table_lookup (iso_3166_table, str[1]); + + if (localename != NULL) + { + /* translators: the first %s is the language name, and the + * second %s is the locale name. Example: + * "French (France) + * + * Also: The text before the "|" is context to help you decide on + * the correct translation. You MUST OMIT it in the translated string. + */ + name = g_strdup_printf (Q_("language|%s (%s)"), + dgettext (ISO_639_DOMAIN, langname), + dgettext (ISO_3166_DOMAIN, localename)); + } + else + { + name = g_strdup_printf (Q_("language|%s (%s)"), + dgettext (ISO_639_DOMAIN, langname), str[1]); + } + } + + g_strfreev (str); + + return name; +} + +/** + * gtkspell_iso_codes_lookup_name_for_code: + * @code: A language code, e.g. en_CA + * + * Looks up a name to display to the user for a language code, + * this might use the iso-codes package if support was compiled + * in, and it is available + * + * Returns: the UTF-8 string to display to the user, or NULL if + * a name for the code could not be found + */ +char * +gtkspell_iso_codes_lookup_name_for_code (const char *code) +{ + char * lcode; + char * ret; + + g_return_val_if_fail (code != NULL, NULL); + + ensure_iso_codes_initialised (); + + lcode = g_ascii_strdown (code, -1); + + ret = get_iso_name_for_lang_code (lcode); + + g_free (lcode); + + return ret; +} + diff --git a/src/fe-gtk/sexy-iso-codes.h b/src/fe-gtk/sexy-iso-codes.h new file mode 100644 index 00000000..e5f37162 --- /dev/null +++ b/src/fe-gtk/sexy-iso-codes.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2005 Nathan Fredrickson + * Borrowed from Galeon, renamed, and simplified to only use iso-codes with no + * fallback method. + * + * Copyright (C) 2004 Christian Persch + * Copyright (C) 2004 Crispin Flowerday + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#ifndef GTKSPELL_ISO_CODES_H +#define GTKSPELL_ISO_CODES_H + +#include <glib.h> + +G_BEGIN_DECLS + +char * gtkspell_iso_codes_lookup_name_for_code (const char *code); + +G_END_DECLS + +#endif diff --git a/src/fe-gtk/sexy-marshal.c b/src/fe-gtk/sexy-marshal.c new file mode 100644 index 00000000..10a629f2 --- /dev/null +++ b/src/fe-gtk/sexy-marshal.c @@ -0,0 +1,129 @@ + +#include <glib-object.h> + + +#ifdef G_ENABLE_DEBUG +#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) +#define g_marshal_value_peek_char(v) g_value_get_char (v) +#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) +#define g_marshal_value_peek_int(v) g_value_get_int (v) +#define g_marshal_value_peek_uint(v) g_value_get_uint (v) +#define g_marshal_value_peek_long(v) g_value_get_long (v) +#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v) +#define g_marshal_value_peek_int64(v) g_value_get_int64 (v) +#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v) +#define g_marshal_value_peek_enum(v) g_value_get_enum (v) +#define g_marshal_value_peek_flags(v) g_value_get_flags (v) +#define g_marshal_value_peek_float(v) g_value_get_float (v) +#define g_marshal_value_peek_double(v) g_value_get_double (v) +#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v) +#define g_marshal_value_peek_param(v) g_value_get_param (v) +#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v) +#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v) +#define g_marshal_value_peek_object(v) g_value_get_object (v) +#else /* !G_ENABLE_DEBUG */ +/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. + * Do not access GValues directly in your code. Instead, use the + * g_value_get_*() functions + */ +#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int +#define g_marshal_value_peek_char(v) (v)->data[0].v_int +#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint +#define g_marshal_value_peek_int(v) (v)->data[0].v_int +#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint +#define g_marshal_value_peek_long(v) (v)->data[0].v_long +#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong +#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64 +#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64 +#define g_marshal_value_peek_enum(v) (v)->data[0].v_long +#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong +#define g_marshal_value_peek_float(v) (v)->data[0].v_float +#define g_marshal_value_peek_double(v) (v)->data[0].v_double +#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer +#endif /* !G_ENABLE_DEBUG */ + + +/* BOOLEAN:STRING (./marshal.list:1) */ +void +sexy_marshal_BOOLEAN__STRING (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data) +{ + typedef gboolean (*GMarshalFunc_BOOLEAN__STRING) (gpointer data1, + gpointer arg_1, + gpointer data2); + register GMarshalFunc_BOOLEAN__STRING callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + gboolean v_return; + + g_return_if_fail (return_value != NULL); + g_return_if_fail (n_param_values == 2); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_BOOLEAN__STRING) (marshal_data ? marshal_data : cc->callback); + + v_return = callback (data1, + g_marshal_value_peek_string (param_values + 1), + data2); + + g_value_set_boolean (return_value, v_return); +} + +/* OBJECT:OBJECT,OBJECT (./marshal.list:2) */ +void +sexy_marshal_OBJECT__OBJECT_OBJECT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data) +{ + typedef GObject* (*GMarshalFunc_OBJECT__OBJECT_OBJECT) (gpointer data1, + gpointer arg_1, + gpointer arg_2, + gpointer data2); + register GMarshalFunc_OBJECT__OBJECT_OBJECT callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + GObject* v_return; + + g_return_if_fail (return_value != NULL); + g_return_if_fail (n_param_values == 3); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_OBJECT__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback); + + v_return = callback (data1, + g_marshal_value_peek_object (param_values + 1), + g_marshal_value_peek_object (param_values + 2), + data2); + + g_value_take_object (return_value, v_return); +} + diff --git a/src/fe-gtk/sexy-marshal.h b/src/fe-gtk/sexy-marshal.h new file mode 100644 index 00000000..f41eccbe --- /dev/null +++ b/src/fe-gtk/sexy-marshal.h @@ -0,0 +1,28 @@ + +#ifndef __sexy_marshal_MARSHAL_H__ +#define __sexy_marshal_MARSHAL_H__ + +#include <glib-object.h> + +G_BEGIN_DECLS + +/* BOOLEAN:STRING (./marshal.list:1) */ +extern void sexy_marshal_BOOLEAN__STRING (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); + +/* OBJECT:OBJECT,OBJECT (./marshal.list:2) */ +extern void sexy_marshal_OBJECT__OBJECT_OBJECT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); + +G_END_DECLS + +#endif /* __sexy_marshal_MARSHAL_H__ */ + diff --git a/src/fe-gtk/sexy-spell-entry.c b/src/fe-gtk/sexy-spell-entry.c index 6bc4f0b5..4977a567 100644 --- a/src/fe-gtk/sexy-spell-entry.c +++ b/src/fe-gtk/sexy-spell-entry.c @@ -30,8 +30,8 @@ #include <glib/gi18n.h> #include <sys/types.h> #include <sys/stat.h> -/*#include "gtkspell-iso-codes.h" -#include "sexy-marshal.h"*/ +#include "sexy-iso-codes.h" +#include "sexy-marshal.h" #include "typedef.h" @@ -211,14 +211,14 @@ sexy_spell_entry_class_init(SexySpellEntryClass *klass) * Returns: %FALSE to indicate that the word should be marked as * correct. */ -/* signals[WORD_CHECK] = g_signal_new("word_check", + signals[WORD_CHECK] = g_signal_new("word_check", G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(SexySpellEntryClass, word_check), (GSignalAccumulator) spell_accumulator, NULL, sexy_marshal_BOOLEAN__STRING, G_TYPE_BOOLEAN, - 1, G_TYPE_STRING);*/ + 1, G_TYPE_STRING); } static void @@ -495,10 +495,6 @@ build_spelling_menu(SexySpellEntry *entry, const gchar *word) if (entry->priv->dict_list == NULL) return topmenu; -#if 1 - dict = (struct EnchantDict *) entry->priv->dict_list->data; - build_suggestion_menu(entry, topmenu, dict, word); -#else /* Suggestions */ if (g_slist_length(entry->priv->dict_list) == 1) { dict = (struct EnchantDict *) entry->priv->dict_list->data; @@ -527,7 +523,6 @@ build_spelling_menu(SexySpellEntry *entry, const gchar *word) build_suggestion_menu(entry, menu, dict, word); } } -#endif /* Separator */ mi = gtk_separator_menu_item_new (); @@ -541,11 +536,6 @@ build_spelling_menu(SexySpellEntry *entry, const gchar *word) gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU)); -#if 1 - dict = (struct EnchantDict *) entry->priv->dict_list->data; - g_object_set_data(G_OBJECT(mi), "enchant-dict", dict); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(add_to_dictionary), entry); -#else if (g_slist_length(entry->priv->dict_list) == 1) { dict = (struct EnchantDict *) entry->priv->dict_list->data; g_object_set_data(G_OBJECT(mi), "enchant-dict", dict); @@ -577,7 +567,6 @@ build_spelling_menu(SexySpellEntry *entry, const gchar *word) gtk_menu_shell_append(GTK_MENU_SHELL(menu), submi); } } -#endif gtk_widget_show_all(mi); gtk_menu_shell_append(GTK_MENU_SHELL(topmenu), mi); @@ -759,11 +748,7 @@ word_misspelled(SexySpellEntry *entry, int start, int end) g_strlcpy(word, text + start, end - start + 1); -#if 0 g_signal_emit(entry, signals[WORD_CHECK], 0, word, &ret); -#else - ret = default_word_check (entry, word); -#endif g_free(word); return ret; @@ -1121,8 +1106,8 @@ gchar * sexy_spell_entry_get_language_name(const SexySpellEntry *entry, const gchar *lang) { - /*if (have_enchant) - return gtkspell_iso_codes_lookup_name_for_code(lang);*/ + if (have_enchant) + return gtkspell_iso_codes_lookup_name_for_code(lang); return NULL; } diff --git a/src/makeinc.skel.mak b/src/makeinc.skel.mak index ad737b38..ec14b34a 100644 --- a/src/makeinc.skel.mak +++ b/src/makeinc.skel.mak @@ -9,7 +9,7 @@ LIBS = $(LIBS) gdi32.lib shell32.lib user32.lib advapi32.lib imm32.lib ole32.lib GLIB = /I$(DEV)\include\glib-2.0 /I$(DEV)\lib\glib-2.0\include GTK = /I$(DEV)\include\gtk-2.0 /I$(DEV)\lib\gtk-2.0\include /I$(DEV)\include\atk-1.0 /I$(DEV)\include\cairo /I$(DEV)\include\pango-1.0 /I$(DEV)\include\gdk-pixbuf-2.0 -LIBS = $(LIBS) /libpath:$(DEV)\lib gtk-win32-2.0.lib gdk-win32-2.0.lib atk-1.0.lib gio-2.0.lib gdk_pixbuf-2.0.lib pangowin32-1.0.lib pangocairo-1.0.lib pango-1.0.lib cairo.lib gobject-2.0.lib gmodule-2.0.lib glib-2.0.lib intl.lib +LIBS = $(LIBS) /libpath:$(DEV)\lib gtk-win32-2.0.lib gdk-win32-2.0.lib atk-1.0.lib gio-2.0.lib gdk_pixbuf-2.0.lib pangowin32-1.0.lib pangocairo-1.0.lib pango-1.0.lib cairo.lib gobject-2.0.lib gmodule-2.0.lib glib-2.0.lib intl.lib libxml2.lib LUALIB = lua51 LUAOUTPUT = xclua.dll |