From: Steffen Mueller Date: Wed, 21 Apr 2010 10:18:49 +0000 (+0200) Subject: Update Locale::Codes to 3.12 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f768f60b565004f735138c26b9a0823b95e9f470;p=p5sagit%2Fp5-mst-13.2.git Update Locale::Codes to 3.12 We're skipping inclusion of some files such as the unused Build.PL, INSTALL, etc. cpan/Locale-Codes/internal/* should probably also not be included in perl core. --- diff --git a/MANIFEST b/MANIFEST index 86b663e..520ed36 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1346,6 +1346,23 @@ cpan/List-Util/t/tainted.t Scalar::Util cpan/List-Util/t/weak.t Scalar::Util cpan/List-Util/XS.pp List::Util cpan/Locale-Codes/ChangeLog Locale::Codes +cpan/Locale-Codes/examples/README.examples Locale::Codes +cpan/Locale-Codes/internal/build.yaml Locale::Codes maintainer file +cpan/Locale-Codes/internal/data.country.pl Locale::Codes maintainer file +cpan/Locale-Codes/internal/data.currency.pl Locale::Codes maintainer file +cpan/Locale-Codes/internal/data.language.pl Locale::Codes maintainer file +cpan/Locale-Codes/internal/data.script.pl Locale::Codes maintainer file +cpan/Locale-Codes/internal/get_codes Locale::Codes maintainer file +cpan/Locale-Codes/internal/ispell.isp Locale::Codes maintainer file +cpan/Locale-Codes/internal/NOTES Locale::Codes maintainer file +cpan/Locale-Codes/internal/VERSION Locale::Codes maintainer file +cpan/Locale-Codes/lib/Locale/Codes/Changes.pod Locale::Codes documentation +cpan/Locale-Codes/lib/Locale/Codes/Country.pm Locale::Codes +cpan/Locale-Codes/lib/Locale/Codes/Currency.pm Locale::Codes +cpan/Locale-Codes/lib/Locale/Codes/Language.pm Locale::Codes +cpan/Locale-Codes/lib/Locale/Codes.pm Locale::Codes +cpan/Locale-Codes/lib/Locale/Codes.pod Locale::Codes documentation +cpan/Locale-Codes/lib/Locale/Codes/Script.pm Locale::Codes cpan/Locale-Codes/lib/Locale/Constants.pm Locale::Codes cpan/Locale-Codes/lib/Locale/Constants.pod Locale::Codes documentation cpan/Locale-Codes/lib/Locale/Country.pm Locale::Codes @@ -1356,16 +1373,21 @@ cpan/Locale-Codes/lib/Locale/Language.pm Locale::Codes cpan/Locale-Codes/lib/Locale/Language.pod Locale::Codes documentation cpan/Locale-Codes/lib/Locale/Script.pm Locale::Codes cpan/Locale-Codes/lib/Locale/Script.pod Locale::Codes documentation -cpan/Locale-Codes/Makefile.PL -cpan/Locale-Codes/README Locale::Codes -cpan/Locale-Codes/t/all.t See if Locale::Codes work -cpan/Locale-Codes/t/constants.t See if Locale::Codes work -cpan/Locale-Codes/t/country.t See if Locale::Codes work -cpan/Locale-Codes/t/currency.t See if Locale::Codes work -cpan/Locale-Codes/t/language.t See if Locale::Codes work -cpan/Locale-Codes/t/rename.t See if Locale::Codes work -cpan/Locale-Codes/t/script.t See if Locale::Codes work -cpan/Locale-Codes/t/uk.t See if Locale::Codes work +cpan/Locale-Codes/LICENSE Locale::Codes +cpan/Locale-Codes/README.first Locale::Codes +cpan/Locale-Codes/t/alias_code.t Locale::Codes tests +cpan/Locale-Codes/t/code2country.t Locale::Codes tests +cpan/Locale-Codes/t/code2currency.t Locale::Codes tests +cpan/Locale-Codes/t/code2language.t Locale::Codes tests +cpan/Locale-Codes/t/code2script.t Locale::Codes tests +cpan/Locale-Codes/t/country2code.t Locale::Codes tests +cpan/Locale-Codes/t/country_code2code.t Locale::Codes tests +cpan/Locale-Codes/t/country.t Locale::Codes tests +cpan/Locale-Codes/t/currency2code.t Locale::Codes tests +cpan/Locale-Codes/t/language2code.t Locale::Codes tests +cpan/Locale-Codes/t/language.t Locale::Codes tests +cpan/Locale-Codes/t/script2code.t Locale::Codes tests +cpan/Locale-Codes/t/testfunc.pl Locale::Codes tests cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm Locale::Simple cpan/Locale-Maketext-Simple/t/0-signature.t Locale::Simple tests cpan/Locale-Maketext-Simple/t/1-basic.t Locale::Simple tests diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index 475945f..98ad6c9 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -843,8 +843,9 @@ use File::Glob qw(:case); 'Locale-Codes' => { 'MAINTAINER' => 'sbeck', - 'DISTRIBUTION' => 'NEILB/Locale-Codes-2.07.tar.gz', + 'DISTRIBUTION' => 'SBECK/Locale-Codes-3.12.tar.gz', 'FILES' => q[cpan/Locale-Codes], + 'EXCLUDED' => [ qw{t/pod_coverage.t t/pod.t}, qr{^t/runtests} ], 'CPAN' => 1, 'UPSTREAM' => 'cpan', }, diff --git a/cpan/Locale-Codes/ChangeLog b/cpan/Locale-Codes/ChangeLog index c724b38..627bdcf 100644 --- a/cpan/Locale-Codes/ChangeLog +++ b/cpan/Locale-Codes/ChangeLog @@ -1,6 +1,74 @@ ChangeLog for Locale-Codes Distribution +As of 3.00, the codes are autogenerated from the standards. With each release, codes will +be re-generated and tested to see if any code changed. Any time there are any changes to +the codes, it will be flagged below with a change: NEW CODE(s). + +3.13 + +3.12 2010-04-06 sbeck + * NEW CODE(s) + * Renamed test.pl to testfunc.pl to avoid causing an error + when built as part of perl. + +3.11 2010-03-01 sbeck + * NEW CODE(s) + * Added the IANA domain names to Country + * Fixed a problem that produced warnings with perl 5.11.5. + Jerry D. Hedden + +3.10 2010-02-18 sbeck + * NEW CODE(s) + * Moved support files into the Locale::Codes namespace. + * The work done in each of the Locale::XXX modules was + virtually identical to each other. It has all + been moved to a central module and the + Locale::XXX moduels are now just wrappers. + * The XXX_code2code functions would return undef if the + same codeset were passed in for both the 2nd and + 3rd arguments. This doesn't make sense and has + been changed. + * Added all semi-private routines (except for the + couple that were already present): + rename_XXX + add_XXX + delete_XXX + add_XXX_alias + delete_XXX_alias + rename_XXX_code + add_XXX_code_alias + delete_XXX_code_alias + * Added "UK" alias. Steve Hay + +3.01 2010-02-15 sbeck + * Fixed Makefile.PL and Build.PL to install as core + modules. + +3.00 2010-02-10 sbeck + * NEW CODE(s) + * Took over maintenance of the code + * All codes and country names come from the official + standards + * code2country now returns the name of the country specified + in the standard (if the different standards refer + to the country by different variations in the name, + the results will differe based on the CODESET) + * Added code sets + FIPS 10 country codes + Alpha-3 and Term language codes + Numeric currency codes + * The rename_country funcion from 2.07 would guess the + CODESET (unlike all other functions which used + a default of LOCALE_CODE_ALPHA_2). The guess can + cause problems since (with the addition of FIPS) + codes may appear in different codesets for different + countries. The behavior has been changed to be + the same as other functions (default to + LOCALE_CODE_ALPHA_2). + * Dropped support for _alias_code + * Added language_code2code, currency_code2code + 2.07 2004-06-10 neilb * made $_ local in the initialisation code for each module change back-propagated from Perl distribution diff --git a/cpan/Locale-Codes/LICENSE b/cpan/Locale-Codes/LICENSE new file mode 100644 index 0000000..ae8dd20 --- /dev/null +++ b/cpan/Locale-Codes/LICENSE @@ -0,0 +1,3 @@ +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + diff --git a/cpan/Locale-Codes/Makefile.PL b/cpan/Locale-Codes/Makefile.PL deleted file mode 100644 index e1121eb..0000000 --- a/cpan/Locale-Codes/Makefile.PL +++ /dev/null @@ -1,10 +0,0 @@ -use strict; -use ExtUtils::MakeMaker; - -WriteMakefile ( - NAME => 'Locale-Codes', - DISTNAME => 'Locale-Codes', - VERSION => '2.07', - AUTHOR => 'Neil Bowers ', - ABSTRACT => 'modules for ISO codes identifying countries, languages, currencies, and scripts', -); diff --git a/cpan/Locale-Codes/README b/cpan/Locale-Codes/README deleted file mode 100644 index 9920aba..0000000 --- a/cpan/Locale-Codes/README +++ /dev/null @@ -1,49 +0,0 @@ - - Locale-Codes Distribution - v2.07 - -For changes in this release, please see the ChangeLog file. - -This distribution contains four Perl modules which can be used to process -ISO codes for identifying languages, countries, scripts, -and currencies & funds. - - Locale::Language - Two letter codes for language identification (ISO 639). - For example, 'en' is the code for 'English'. - - Locale::Country - Codes for country identification (ISO 3166). This module - supports the three different code sets defined by the - standard: alpha-2, alpha-3, and numeric codes. - For example, 'bo' is the code for 'Bolivia'. - - Locale::Currency - Three letter codes for currency and fund identification (ISO 4217). - For example, 'sek' is the code for 'Swedish Krona'. - - Locale::Script - Codes for script identification (ISO 15924). This module supports - the three different code sets defined by the standard: - alpha-2, alpha-3, and numeric codes. - -To install these modules, you should just have to run the following: - - % perl Makefile.PL - % make - % make test - % make install - -The modules are documented using pod. When you "make install", you -will get four man-pages: Locale::Language, Locale::Country, -Locale::Currency, Locale::Script. - -The first version of Locale::Currency was written by Michael Hennecke, -with modifications for inclusion by me. Kudos to Michael. - -Please let me know if you experience any problems with these modules, -or have any ideas for additions. - - -Neil Bowers - diff --git a/cpan/Locale-Codes/README.first b/cpan/Locale-Codes/README.first new file mode 100644 index 0000000..8609e5e --- /dev/null +++ b/cpan/Locale-Codes/README.first @@ -0,0 +1,54 @@ + + Locale-Codes Distribution + +For changes in this release, please refer to the Locale::Changes +man-page. + +For changes prior to 3.00, please see the ChangeLog file. + +This distribution contains Perl modules which can be used to process +ISO codes for identifying languages, countries, scripts, +and currencies & funds. + + Locale::Language + + Codes for language identification including ISO 639. + + For example, 'en' is the code for 'English'. + + Locale::Country + + Codes for country identification including ISO 3166 + and FIPS 10. + + For example, 'us' is the code for 'United States'. + + Locale::Currency + + Codes for currency and fund identification including + ISO 4217. + + For example, 'sek' is the code for 'Swedish Krona'. + + Locale::Script + + Codes for script identification including ISO 15924. + + For example, 'Phnx' is the code for 'Phoenician'. + +The modules are documented using pod. When you "make install", you +will get man-pages: Local::Codes and each of the modules listed above. + +The first version of Locale::Currency was written by Michael Hennecke, +with modifications by Neil Bowers for inclusion. + +The first versions of Locale::Language, Locale::Country, and Locale::Script +were written by Neil Bowers. + +Please let me know if you experience any problems with these modules, +or have any ideas for additions. + +Also, I plan on releasing a new version a couple of times a year to make +sure that all of the codes are current. If a code changes in any standard, +and you want a new release, just email me and I'll put out a new release. + diff --git a/cpan/Locale-Codes/examples/README.examples b/cpan/Locale-Codes/examples/README.examples new file mode 100644 index 0000000..faa94b9 --- /dev/null +++ b/cpan/Locale-Codes/examples/README.examples @@ -0,0 +1,96 @@ +Please refer to the ../t directory for examples of how to use this +module. + +The tests are organized fairly simply. In each .t file (except for +pod and pod_coverage) is a line of the form: + + test_Func(\&FUNC,$tests,$runtests,ARGS) + +FUNC is the name of one of the functions available in the module, +or some function defined in the test script which calls one or more +of the module functions. + +Also in the file are a series of tests organized as: + + $tests = " + TEST1 + + TEST2 + + ... + "; + +or + + $tests = [ + TEST1, + + TEST2, + + ... ]; + + +In the first case, a test is a list of strings, some of which are used +as arguments for the function being called, and some are expected results. +If the expected result is a simple scalar, each TEST may be a simple list +of space separated strings, the last of which is treated as the expected +output. + +For example, if the following line appears in the test script: + + test_Func(\&somefunc,$tests,$runtests); + +and one of the tests is: + + A B C + +then the following behavior is expected: + + somefunc(A,B) + => C + +The list of strings may also be given on separate lines as: + + A + B + C + +If the expected results are a list of values, then the arguments +to the function and the expected results are separated by a tilde (~). +So if the following behavior is expected: + + somefunc(A,B) + => (C,D) + +the test could be written in either of the following ways: + + A B ~ C D + + A + B + ~ + C + D + +In all cases, leading spaces are ignored. Also, the strings may include +spaces if (and only if) they are given one per line. + +Two special strings "_undef_" and "_blank_" may be included in the list +to have the values undef or "" repectively included as either an argument +or an expected return value. + + +In the second method of entering tests, tests are given as a list reference +with two values. The first is a list reference containing arguments, and +the second is a list reference containing the expected return value(s). The +expected values should be simple strings. + +So, a test could be entered as: + + [ [ qw(A B) ], + [ qw(C D) ] ] + +and be equivalent to: + + A B ~ C D + diff --git a/cpan/Locale-Codes/internal/NOTES b/cpan/Locale-Codes/internal/NOTES new file mode 100644 index 0000000..e3ecf5c --- /dev/null +++ b/cpan/Locale-Codes/internal/NOTES @@ -0,0 +1,64 @@ +The files in this directory are for primary use by me, the maintainer +of Locale::Codes to prepare a new release. + +There is no reason for an end user to need to do this. However, it +is documented for the sake of completeness, and to remind me of the +steps I need to do. + +It's also available in case someone ever chooses to fork the +module (though I hope that won't be necessary). + +######################################################################### +Before every release, spellcheck the documents: + + for i in `find lib -type f -name \*.pod` ;do + podspell $i > $i.txt + ispell -p internal/ispell.isp $i.txt + rm -f $i.txt $i.txt.bak + done + +######################################################################### +Get the newest codes: + + ./internal/get_codes -c + diff lib/Locale/Codes/Country.pm{.bak,} + + ./internal/get_codes -l + diff lib/Locale/Codes/Language.pm{.bak,} + + ./internal/get_codes -r + diff lib/Locale/Codes/Currency.pm{.bak,} + + ./internal/get_codes -s + diff lib/Locale/Codes/Script.pm{.bak,} + + ./internal/get_codes -C + rm lib/Locale/Codes/*.bak + +######################################################################### +Set the release version + + v=`cat internal/VERSION` + for i in \ + internal/get_codes \ + `find lib -name \*.pm` \ + ;do + sed -e "s,VERSION *=.*;,VERSION='$v';," $i > z + mv z $i + done + +######################################################################### +Update the history file with the date + +######################################################################### +Update the copyright + + y=`date '+%Y'` + for i in `find . -type f | xargs egrep -l 'Copyright \(c\) ....\-.... Sullivan Beck'` ;do + sed -e "s,\(Copyright (c) ....\)\-.... \(Sullivan Beck\),\1-$y \2," $i > z + mv z $i + done + +######################################################################### +Regenerate the MANIFEST, Build.PL, Makefile.PL +Run the kwalitee tests diff --git a/cpan/Locale-Codes/internal/VERSION b/cpan/Locale-Codes/internal/VERSION new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/cpan/Locale-Codes/internal/VERSION @@ -0,0 +1 @@ +3.12 diff --git a/cpan/Locale-Codes/internal/build.yaml b/cpan/Locale-Codes/internal/build.yaml new file mode 100644 index 0000000..fc5f8e8 --- /dev/null +++ b/cpan/Locale-Codes/internal/build.yaml @@ -0,0 +1,2 @@ +--- +core: 5.007003 diff --git a/cpan/Locale-Codes/internal/data.country.pl b/cpan/Locale-Codes/internal/data.country.pl new file mode 100644 index 0000000..4db889e --- /dev/null +++ b/cpan/Locale-Codes/internal/data.country.pl @@ -0,0 +1,416 @@ +#!/usr/bin/perl -w +# Copyright (c) 2010-2010 Sullivan Beck. All rights reserved. +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + +# This is used to match country names from one source with those from +# an existing source. +# +%country_alias = + ( + "Bahamas, The" => "Bahamas", + "Bolivia (Plurinational State of)" => "Bolivia, Plurinational State of", + "Bolivia" => "Bolivia, Plurinational State of", + "British Virgin Islands" => "Virgin Islands, British", + "Brunei" => "Brunei Darussalam", + "Burma" => "Myanmar", + "China, Hong Kong Special Administrative Region" => "Hong Kong", + "China, Macao Special Administrative Region" => "Macao", + "Cocos Islands" => "Cocos (Keeling) Islands", + "Congo (Brazzaville)" => "Congo", + "Democratic People's Republic of Korea" => "Korea, Democratic People's Republic of", + "Democratic Republic of the Congo" => "Congo, The Democratic Republic of the", + "East Timor" => "Timor-Leste", + "Faeroe Islands" => "Faroe Islands", + "Falkland Islands (Islas Malvinas)" => "Falkland Islands (Malvinas)", + "Federated States of Micronesia" => "Micronesia, Federated States of", + "French Southern and Antarctic Lands" => "French Southern Territories", + "Gambia, The" => "Gambia", + "Golan Heights (Israeli-occupied)" => "Syrian Arab Republic", + "Great Britain" => "United Kingdom", + "Holy See" => "Holy See (Vatican City State)", + "Hong Kong S.A.R." => "Hong Kong", + "Hong Kong Special Administrative Region of China" => "Hong Kong", + "Iran (Islamic Republic of)" => "Iran, Islamic Republic of", + "Iran" => "Iran, Islamic Republic of", + "Kazakstan" => "Kazakhstan", + "Keeling Islands" => "Cocos (Keeling) Islands", + "Libya" => "Libyan Arab Jamahiriya", + "Macao Special Administrative Region of China" => "Macao", + "Macau S.A.R" => "Macao", + "Macau S.A.R." => "Macao", + "Macedonia" => "Macedonia, The Former Yugoslav Republic of", + "Macedonia, Former Yugoslav Republic of" => "Macedonia, The Former Yugoslav Republic of", + "Micronesia (Federated States of)" => "Micronesia, Federated States of", + "North Korea" => "Korea, Democratic People's Republic of", + "Occupied Palestinian Territory" => "Palestinian Territory, Occupied", + "Pitcairn Island" => "Pitcairn", + "Pitcairn Islands" => "Pitcairn", + "Republic of Korea" => "Korea, Republic of", + "Republic of Moldova" => "Moldova, Republic of", + "Saint Helena" => "Saint Helena, Ascension and Tristan da Cunha", + "Saint-Barthelemy" => "Saint Barthelemy", + "Saint-Martin (French part)" => "Saint Martin", + "South Korea" => "Korea, Republic of", + "Svalbard and Jan Mayen Islands" => "Svalbard and Jan Mayen", + "Taiwan" => "Taiwan, Province of China", + "The Bahamas" => "Bahamas", + "The Democratic Republic of the Congo" => "Congo, The Democratic Republic of the", + "The Republic of the Congo" => "Congo", + "The former Yugoslav Republic of Macedonia" => "Macedonia, The Former Yugoslav Republic of", + "UK" => "United Kingdom", + "US" => "United States", + "USA" => "United States", + "United Kingdom of Great Britain and Northern Ireland" => "United Kingdom", + "United Republic of Tanzania" => "Tanzania, United Republic of", + "United States Virgin Islands" => "Virgin Islands, U.S.", + "United States of America" => "United States", + "Vatican City" => "Holy See (Vatican City State)", + "Venezuela (Bolivarian Republic of)" => "Venezuela, Bolivarian Republic of", + "Venezuela" => "Venezuela, Bolivarian Republic of", + "Vietnam" => "Viet Nam", + "Virgin Islands (UK)" => "Virgin Islands, British", + "Virgin Islands (US)" => "Virgin Islands, U.S.", + "Virgin Islands" => "Virgin Islands, U.S.", + "Wallis and Futuna Islands" => "Wallis and Futuna", + ); + +# From v. 2.xx: +# Zaire +# Serbia and Montenegro +# Yugoslavia +# Jan Mayen +# Svalbard + +################################################################################ +# ISO 3166-1 countries + +%country_iso_orig = + ( + "AFGHANISTAN" => "Afghanistan", + "ÅLAND ISLANDS" => "Aland Islands", + "ALBANIA" => "Albania", + "ALGERIA" => "Algeria", + "AMERICAN SAMOA" => "American Samoa", + "ANDORRA" => "Andorra", + "ANGOLA" => "Angola", + "ANGUILLA" => "Anguilla", + "ANTARCTICA" => "Antarctica", + "ANTIGUA AND BARBUDA" => "Antigua and Barbuda", + "ARGENTINA" => "Argentina", + "ARMENIA" => "Armenia", + "ARUBA" => "Aruba", + "AUSTRALIA" => "Australia", + "AUSTRIA" => "Austria", + "AZERBAIJAN" => "Azerbaijan", + "BAHAMAS" => "Bahamas", + "BAHRAIN" => "Bahrain", + "BANGLADESH" => "Bangladesh", + "BARBADOS" => "Barbados", + "BELARUS" => "Belarus", + "BELGIUM" => "Belgium", + "BELIZE" => "Belize", + "BENIN" => "Benin", + "BERMUDA" => "Bermuda", + "BHUTAN" => "Bhutan", + "BOLIVIA, PLURINATIONAL STATE OF" => "Bolivia, Plurinational State of", + "BOSNIA AND HERZEGOVINA" => "Bosnia and Herzegovina", + "BOTSWANA" => "Botswana", + "BOUVET ISLAND" => "Bouvet Island", + "BRAZIL" => "Brazil", + "BRITISH INDIAN OCEAN TERRITORY" => "British Indian Ocean Territory", + "BRUNEI DARUSSALAM" => "Brunei Darussalam", + "BULGARIA" => "Bulgaria", + "BURKINA FASO" => "Burkina Faso", + "BURUNDI" => "Burundi", + "CAMBODIA" => "Cambodia", + "CAMEROON" => "Cameroon", + "CANADA" => "Canada", + "CAPE VERDE" => "Cape Verde", + "CAYMAN ISLANDS" => "Cayman Islands", + "CENTRAL AFRICAN REPUBLIC" => "Central African Republic", + "CHAD" => "Chad", + "CHILE" => "Chile", + "CHINA" => "China", + "CHRISTMAS ISLAND" => "Christmas Island", + "COCOS (KEELING) ISLANDS" => "Cocos (Keeling) Islands", + "COLOMBIA" => "Colombia", + "COMOROS" => "Comoros", + "CONGO" => "Congo", + "CONGO, THE DEMOCRATIC REPUBLIC OF THE" => "Congo, The Democratic Republic of the", + "COOK ISLANDS" => "Cook Islands", + "COSTA RICA" => "Costa Rica", + "CÔTE D'IVOIRE" => "Cote d'Ivoire", + "CROATIA" => "Croatia", + "CUBA" => "Cuba", + "CYPRUS" => "Cyprus", + "CZECH REPUBLIC" => "Czech Republic", + "DENMARK" => "Denmark", + "DJIBOUTI" => "Djibouti", + "DOMINICA" => "Dominica", + "DOMINICAN REPUBLIC" => "Dominican Republic", + "ECUADOR" => "Ecuador", + "EGYPT" => "Egypt", + "EL SALVADOR" => "El Salvador", + "EQUATORIAL GUINEA" => "Equatorial Guinea", + "ERITREA" => "Eritrea", + "ESTONIA" => "Estonia", + "ETHIOPIA" => "Ethiopia", + "FALKLAND ISLANDS (MALVINAS)" => "Falkland Islands (Malvinas)", + "FAROE ISLANDS" => "Faroe Islands", + "FIJI" => "Fiji", + "FINLAND" => "Finland", + "FRANCE" => "France", + "FRENCH GUIANA" => "French Guiana", + "FRENCH POLYNESIA" => "French Polynesia", + "FRENCH SOUTHERN TERRITORIES" => "French Southern Territories", + "GABON" => "Gabon", + "GAMBIA" => "Gambia", + "GEORGIA" => "Georgia", + "GERMANY" => "Germany", + "GHANA" => "Ghana", + "GIBRALTAR" => "Gibraltar", + "GREECE" => "Greece", + "GREENLAND" => "Greenland", + "GRENADA" => "Grenada", + "GUADELOUPE" => "Guadeloupe", + "GUAM" => "Guam", + "GUATEMALA" => "Guatemala", + "GUERNSEY" => "Guernsey", + "GUINEA" => "Guinea", + "GUINEA-BISSAU" => "Guinea-Bissau", + "GUYANA" => "Guyana", + "HAITI" => "Haiti", + "HEARD ISLAND AND MCDONALD ISLANDS" => "Heard Island and Mcdonald Islands", + "HOLY SEE (VATICAN CITY STATE)" => "Holy See (Vatican City State)", + "HONDURAS" => "Honduras", + "HONG KONG" => "Hong Kong", + "HUNGARY" => "Hungary", + "ICELAND" => "Iceland", + "INDIA" => "India", + "INDONESIA" => "Indonesia", + "IRAN, ISLAMIC REPUBLIC OF" => "Iran, Islamic Republic of", + "IRAQ" => "Iraq", + "IRELAND" => "Ireland", + "ISLE OF MAN" => "Isle of Man", + "ISRAEL" => "Israel", + "ITALY" => "Italy", + "JAMAICA" => "Jamaica", + "JAPAN" => "Japan", + "JERSEY" => "Jersey", + "JORDAN" => "Jordan", + "KAZAKHSTAN" => "Kazakhstan", + "KENYA" => "Kenya", + "KIRIBATI" => "Kiribati", + "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF" => "Korea, Democratic People's Republic of", + "KOREA, REPUBLIC OF" => "Korea, Republic of", + "KUWAIT" => "Kuwait", + "KYRGYZSTAN" => "Kyrgyzstan", + "LAO PEOPLE'S DEMOCRATIC REPUBLIC" => "Lao People's Democratic Republic", + "LATVIA" => "Latvia", + "LEBANON" => "Lebanon", + "LESOTHO" => "Lesotho", + "LIBERIA" => "Liberia", + "LIBYAN ARAB JAMAHIRIYA" => "Libyan Arab Jamahiriya", + "LIECHTENSTEIN" => "Liechtenstein", + "LITHUANIA" => "Lithuania", + "LUXEMBOURG" => "Luxembourg", + "MACAO" => "Macao", + "MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF" => "Macedonia, The Former Yugoslav Republic of", + "MADAGASCAR" => "Madagascar", + "MALAWI" => "Malawi", + "MALAYSIA" => "Malaysia", + "MALDIVES" => "Maldives", + "MALI" => "Mali", + "MALTA" => "Malta", + "MARSHALL ISLANDS" => "Marshall Islands", + "MARTINIQUE" => "Martinique", + "MAURITANIA" => "Mauritania", + "MAURITIUS" => "Mauritius", + "MAYOTTE" => "Mayotte", + "MEXICO" => "Mexico", + "MICRONESIA, FEDERATED STATES OF" => "Micronesia, Federated States of", + "MOLDOVA, REPUBLIC OF" => "Moldova, Republic of", + "MONACO" => "Monaco", + "MONGOLIA" => "Mongolia", + "MONTENEGRO" => "Montenegro", + "MONTSERRAT" => "Montserrat", + "MOROCCO" => "Morocco", + "MOZAMBIQUE" => "Mozambique", + "MYANMAR" => "Myanmar", + "NAMIBIA" => "Namibia", + "NAURU" => "Nauru", + "NEPAL" => "Nepal", + "NETHERLANDS" => "Netherlands", + "NETHERLANDS ANTILLES" => "Netherlands Antilles", + "NEW CALEDONIA" => "New Caledonia", + "NEW ZEALAND" => "New Zealand", + "NICARAGUA" => "Nicaragua", + "NIGER" => "Niger", + "NIGERIA" => "Nigeria", + "NIUE" => "Niue", + "NORFOLK ISLAND" => "Norfolk Island", + "NORTHERN MARIANA ISLANDS" => "Northern Mariana Islands", + "NORWAY" => "Norway", + "OMAN" => "Oman", + "PAKISTAN" => "Pakistan", + "PALAU" => "Palau", + "PALESTINIAN TERRITORY, OCCUPIED" => "Palestinian Territory, Occupied", + "PANAMA" => "Panama", + "PAPUA NEW GUINEA" => "Papua New Guinea", + "PARAGUAY" => "Paraguay", + "PERU" => "Peru", + "PHILIPPINES" => "Philippines", + "PITCAIRN" => "Pitcairn", + "POLAND" => "Poland", + "PORTUGAL" => "Portugal", + "PUERTO RICO" => "Puerto Rico", + "QATAR" => "Qatar", + "RÉUNION" => "Reunion", + "ROMANIA" => "Romania", + "RUSSIAN FEDERATION" => "Russian Federation", + "RWANDA" => "Rwanda", + "SAINT BARTHÉLEMY" => "Saint Barthelemy", + "SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA" => "Saint Helena, Ascension and Tristan da Cunha", + "SAINT KITTS AND NEVIS" => "Saint Kitts and Nevis", + "SAINT LUCIA" => "Saint Lucia", + "SAINT MARTIN" => "Saint Martin", + "SAINT PIERRE AND MIQUELON" => "Saint Pierre and Miquelon", + "SAINT VINCENT AND THE GRENADINES" => "Saint Vincent and the Grenadines", + "SAMOA" => "Samoa", + "SAN MARINO" => "San Marino", + "SAO TOME AND PRINCIPE" => "Sao Tome and Principe", + "SAUDI ARABIA" => "Saudi Arabia", + "SENEGAL" => "Senegal", + "SERBIA" => "Serbia", + "SEYCHELLES" => "Seychelles", + "SIERRA LEONE" => "Sierra Leone", + "SINGAPORE" => "Singapore", + "SLOVAKIA" => "Slovakia", + "SLOVENIA" => "Slovenia", + "SOLOMON ISLANDS" => "Solomon Islands", + "SOMALIA" => "Somalia", + "SOUTH AFRICA" => "South Africa", + "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS" => "South Georgia and the South Sandwich Islands", + "SPAIN" => "Spain", + "SRI LANKA" => "Sri Lanka", + "SUDAN" => "Sudan", + "SURINAME" => "Suriname", + "SVALBARD AND JAN MAYEN" => "Svalbard and Jan Mayen", + "SWAZILAND" => "Swaziland", + "SWEDEN" => "Sweden", + "SWITZERLAND" => "Switzerland", + "SYRIAN ARAB REPUBLIC" => "Syrian Arab Republic", + "TAIWAN, PROVINCE OF CHINA" => "Taiwan, Province of China", + "TAJIKISTAN" => "Tajikistan", + "TANZANIA, UNITED REPUBLIC OF" => "Tanzania, United Republic of", + "THAILAND" => "Thailand", + "TIMOR-LESTE" => "Timor-Leste", + "TOGO" => "Togo", + "TOKELAU" => "Tokelau", + "TONGA" => "Tonga", + "TRINIDAD AND TOBAGO" => "Trinidad and Tobago", + "TUNISIA" => "Tunisia", + "TURKEY" => "Turkey", + "TURKMENISTAN" => "Turkmenistan", + "TURKS AND CAICOS ISLANDS" => "Turks and Caicos Islands", + "TUVALU" => "Tuvalu", + "UGANDA" => "Uganda", + "UKRAINE" => "Ukraine", + "UNITED ARAB EMIRATES" => "United Arab Emirates", + "UNITED KINGDOM" => "United Kingdom", + "UNITED STATES" => "United States", + "UNITED STATES MINOR OUTLYING ISLANDS" => "United States Minor Outlying Islands", + "URUGUAY" => "Uruguay", + "UZBEKISTAN" => "Uzbekistan", + "VANUATU" => "Vanuatu", + "VENEZUELA, BOLIVARIAN REPUBLIC OF" => "Venezuela, Bolivarian Republic of", + "VIET NAM" => "Viet Nam", + "VIRGIN ISLANDS, BRITISH" => "Virgin Islands, British", + "VIRGIN ISLANDS, U.S." => "Virgin Islands, U.S.", + "WALLIS AND FUTUNA" => "Wallis and Futuna", + "WESTERN SAHARA" => "Western Sahara", + "YEMEN" => "Yemen", + "ZAMBIA" => "Zambia", + "ZIMBABWE" => "Zimbabwe", + ); + +################################################################################ +# United Nations (source of alpha-3 and numeric codes) + +%country_un_orig = + ( + 'Åland Islands' => "Aland Islands", + 'Côte d'."'Ivoire" => "Cote d'Ivoire", + 'Réunion' => "Reunion", + 'Saint-Barthélemy' => "Saint-Barthelemy", + ); + +################################################################################ +# NGA (source of FIPS 10 codes) + +%country_nga_orig = + ( + ); + +%country_nga_ignore = + ( + "Golan Heights (Israeli-occupied)" => 1, + ); + +################################################################################ +# IANA (source of top level domains) + +%country_iana_orig = + ( + ); + +################################################################################ +# CIA World Factbook (checks for codes) + +%country_cia_orig = + ( + ); + +%country_cia_ignore = + ( + "Western Samoa" => 1, + "World" => 1, + "Zaire" => 1, + ); + +%country_cia_codes = + ( + "alpha2" => {"Gaza Strip" => "-", + "West Bank" => "-", + "Svalbard" => "-", + }, + "alpha3" => {"Gaza Strip" => "-", + "West Bank" => "-", + "Svalbard" => "-", + }, + "num" => {"Gaza Strip" => "-", + "West Bank" => "-", + "Svalbard" => "-", + }, + "fips" => { + }, + "dom" => {"Gaza Strip" => "-", + "West Bank" => "-", + "Svalbard" => "-", + }, + ); + +1; + +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: + diff --git a/cpan/Locale-Codes/internal/data.currency.pl b/cpan/Locale-Codes/internal/data.currency.pl new file mode 100644 index 0000000..0410143 --- /dev/null +++ b/cpan/Locale-Codes/internal/data.currency.pl @@ -0,0 +1,32 @@ +#!/usr/bin/perl -w +# Copyright (c) 2010-2010 Sullivan Beck. All rights reserved. +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + +%currency_alias = + ( + ); + +%currency_iso_orig = + ( + ); + +%currency_iso_ignore = + ( + "XTS" => 1, + "XXX" => 1, + ); + +1; + +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: + diff --git a/cpan/Locale-Codes/internal/data.language.pl b/cpan/Locale-Codes/internal/data.language.pl new file mode 100644 index 0000000..73eb08d --- /dev/null +++ b/cpan/Locale-Codes/internal/data.language.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl -w +# Copyright (c) 2010-2010 Sullivan Beck. All rights reserved. +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + +%language_alias = + ( + "Greek" => 'Greek, Modern (1453-)', + "Tonga" => 'Tonga (Tonga Islands)', + ); + +%language_iso_orig = + ( + "Bokm\x{e5}l, Norwegian; Norwegian Bokm\x{e5}l" + => 'Bokmal, Norwegian; Norwegian Bokmal', + "Occitan (post 1500); Proven\x{e7}al" + => 'Occitan (post 1500); Provencal', + "Proven\x{e7}al, Old (to 1500)" => 'Provencal, Old (to 1500)', + "Volap\x{fc}k" => 'Volapuk', + ); + +1; + +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: + diff --git a/cpan/Locale-Codes/internal/data.script.pl b/cpan/Locale-Codes/internal/data.script.pl new file mode 100644 index 0000000..d1554c3 --- /dev/null +++ b/cpan/Locale-Codes/internal/data.script.pl @@ -0,0 +1,41 @@ +#!/usr/bin/perl -w +# Copyright (c) 2010-2010 Sullivan Beck. All rights reserved. +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + +%script_alias = + ( + ); + +%script_iso_orig = + ( + "Ethiopic (Ge\x{2bb}ez)" => "Ethiopic (Geez)", + "Hangul (Hang\x{16d}l, Hangeul)" => "Hangul (Hangul, Hangeul)", + "Hanunoo (Hanun\x{f3}o)" => "Hanunoo (Hanunoo)", + "Lepcha (R\x{f3}ng)" => "Lepcha (Rong)", + "Nakhi Geba ('Na-'Khi \x{b2}Gg\x{14f}-\x{b9}baw, Naxi Geba)" => + "Nakhi Geba ('Na-'Khi Ggo-baw, Naxi Geba)", + "N\x{2019}Ko" => "N'Ko", + "Ol Chiki (Ol Cemet\x{2019}, Ol, Santali)" => + "Ol Chiki (Ol Cemet, Ol, Santali)", + ); + +%script_iso_ignore = + ( + "Zxxx" => 1, + "Zyyy" => 1, + "Zzzz" => 1, + ); +1; + +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: + diff --git a/cpan/Locale-Codes/internal/get_codes b/cpan/Locale-Codes/internal/get_codes new file mode 100755 index 0000000..29042aa --- /dev/null +++ b/cpan/Locale-Codes/internal/get_codes @@ -0,0 +1,1589 @@ +#!/usr/bin/perl -w +# Copyright (c) 2010-2010 Sullivan Beck. All rights reserved. +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + +############################################################################### +############################################################################### +# This script is used to automatically generate the Locale::Codes module +# which contain the actual codes. + +require 5.000000; +use YAML; +use IO::File; +use strict; +use warnings; +use Archive::Zip; + +use lib "./internal"; + +use vars qw($VERSION); +$VERSION='3.12'; + +use vars qw($DEBUG); +$DEBUG = 0; + +############################################################################### +# GLOBAL VARIABLES +############################################################################### + +# We need to create the following variables: +# +# %Country{COUNTRY_ID} => [ COUNTRY, COUNTRY, ... ] +# A list of all valid country names that +# correspond to a given COUNTRY_ID. +# The names are all real (i.e. correct +# spelling and capitalization). +# %CountryAlias{ALIAS} => [ COUNTRY_ID, I ] +# A hash of all aliases for a country. +# Aliases are all lowercase. +# %Code2CountryID{CODESET}{CODE} => [ COUNTRY_ID, I ] +# In a given CODESET, CODE corresponds to +# the I'th entry list of countries. +# %CountryID2Code{CODESET}{COUNTRY_ID} => CODE +# In the given CODESET, the COUNTRY_ID +# corresponds to the given CODE. + +use vars qw( $CountryID %Country %CountryAlias %Code2CountryID %CountryID2Code ); +use vars qw(%country_alias); + +$CountryID = "0001"; + +use vars qw( $ModDir $CountryModule ); + +$ModDir = "lib/Locale/Codes"; +$CountryModule = "Country"; + +# +# We'll first read data from the official ISO 3166. +# +# Data available consists only of the country names and 2-character +# codes. Country names include non-ASCII characters encoded in +# ISO-8859-1. Also, they're all uppercase! Every line in the file ends +# with one unprintable character. In other words, they're distributed +# in the most unfriendly fashion you could ask for! We'll store the +# first country for error checking. +# + +use vars qw($country_iso_url $country_iso_file $country_iso_1st); +use vars qw(%country_iso_orig); + +$country_iso_url = "http://www.iso.org/iso/list-en1-semic-3.txt"; +$country_iso_1st = "AFGHANISTAN"; +($country_iso_file) = $country_iso_url =~ m,/([^/]*)$,; + +# +# The UN Stats Division contains some (but not all) of the ISO 3166 +# 3-character codes and 3-digit codes. Since they are the maintainers +# of this data, this is an official source. +# + +use vars qw($country_un_url $country_un_file); +use vars qw(%country_un_orig); + +$country_un_url = "http://unstats.un.org/unsd/methods/m49/m49alpha.htm"; +($country_un_file) = $country_un_url =~ m,/([^/]*)$,; + +# +# The National Geospatial-Intelligence Agency is the official source +# for FIPS 10 codes. +# + +use vars qw($country_nga_url $country_nga_file); +use vars qw(%country_nga_orig %country_nga_ignore); + +$country_nga_url = "http://earth-info.nga.mil/gns/html/digraphs.htm"; +($country_nga_file) = $country_nga_url =~ m,/([^/]*)$,; + +# +# IANA domains +# + +use vars qw($country_iana_url $country_iana_file); +use vars qw(%country_iana_orig); + +$country_iana_url = "http://www.iana.org/domains/root/db/index.html"; +($country_iana_file) = $country_iana_url =~ m,/([^/]*)$,; + +# +# This is the CIA World Factbook, which is assumed to be a reliable +# source of this data. Due to the complexity of the data, we'll store +# the last country so we know when to stop. +# +# We have to force-override some codes. +# + +use vars qw($country_cia_url $country_cia_file $country_cia_last); +use vars qw(%country_cia_ignore %country_cia_orig %country_cia_codes); + +$country_cia_url = "https://www.cia.gov/library/publications/the-world-factbook/appendix/print_appendix-d.html"; +($country_cia_file) = $country_cia_url =~ m,/([^/]*)$,; +$country_cia_last = "Zimbabwe"; + +require "data.country.pl"; + +######################################## + +# We need to create the following variables: +# +# %Language{LANGUAGE_ID} => [ LANGUAGE, LANGUAGE, ... ] +# A list of all valid language names that +# correspond to a given LANGUAGE_ID. +# The names are all real (i.e. correct +# spelling and capitalization). +# %LanguageAlias{ALIAS} => [ LANGUAGE_ID, I ] +# A hash of all aliases for a language. +# Aliases are all lowercase. +# %Code2LanguageID{CODESET}{CODE} => [ LANGUAGE_ID, I ] +# In a given CODESET, CODE corresponds to +# the I'th entry in the list of languages. +# %LanguageID2Code{CODESET}{LANGUAGE_ID} => CODE +# In the given CODESET, the LANGUAGE_ID +# corresponds to the given CODE. + +use vars qw( $LanguageID %Language %LanguageAlias %Code2LanguageID %LanguageID2Code ); +use vars qw(%language_alias); + +$LanguageID = "0001"; + +use vars qw( $LanguageModule ); + +$LanguageModule = "Language"; + +# +# We'll first read data from the official ISO 639. +# +# Data available consists of the language names and 2-letter and +# 3-letter codes. Language names include non-ASCII characters encoded in +# UTF-8. And (amazingly enough) it's available in a field delimited file!!! +# + +use vars qw($language_iso_url $language_iso_file); +use vars qw(%language_iso_orig); + +$language_iso_url = "http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt"; +($language_iso_file) = $language_iso_url =~ m,/([^/]*)$,; + +require "data.language.pl"; + +######################################## + +# We need to create the following variables: +# +# %Currency{CURRENCY_ID} => [ CURRENCY, CURRENCY, ... ] +# A list of all valid currency names that +# correspond to a given CURRENCY_ID. +# The names are all real (i.e. correct +# spelling and capitalization). +# %CurrencyAlias{ALIAS} => [ CURRENCY_ID, I ] +# A hash of all aliases for a currency. +# Aliases are all lowercase. +# %Code2CurrencyID{CODESET}{CODE} => [ CURRENCY_ID, I ] +# In a given CODESET, CODE corresponds to +# the I'th entry in the list of currencies. +# %CurrencyID2Code{CODESET}{CURRENCY_ID} => CODE +# In the given CODESET, the CURRENCY_ID +# corresponds to the given CODE. + +use vars qw( $CurrencyID %Currency %CurrencyAlias %Code2CurrencyID %CurrencyID2Code ); +use vars qw(%currency_alias); + +$CurrencyID = "0001"; + +use vars qw( $CurrencyModule ); + +$CurrencyModule = "Currency"; + +# +# We'll first read data from the official ISO 4217. +# + +use vars qw($currency_iso_url $currency_iso_file $currency_iso_last); +use vars qw(%currency_iso_orig %currency_iso_ignore); + +$currency_iso_url = "http://www.iso.org/iso/support/currency_codes_list-1.htm"; +($currency_iso_file) = $currency_iso_url =~ m,/([^/]*)$,; +$currency_iso_last = "XXX"; + +require "data.currency.pl"; + +######################################## + +# We need to create the following variables: +# +# %Script{SCRIPT_ID} => [ SCRIPT, SCRIPT, ... ] +# A list of all valid script names that +# correspond to a given SCRIPT_ID. +# The names are all real (i.e. correct +# spelling and capitalization). +# %ScriptAlias{ALIAS} => [ SCRIPT_ID, I ] +# A hash of all aliases for a script. +# Aliases are all lowercase. +# %Code2ScriptID{CODESET}{CODE} => [ SCRIPT_ID, I ] +# In a given CODESET, CODE corresponds to +# the I'th entry in the list of scripts. +# %ScriptID2Code{CODESET}{SCRIPT_ID} => CODE +# In the given CODESET, the SCRIPT_ID +# corresponds to the given CODE. + +use vars qw( $ScriptID %Script %ScriptAlias %Code2ScriptID %ScriptID2Code ); +use vars qw(%script_alias); + +$ScriptID = "0001"; + +use vars qw( $ScriptModule ); + +$ScriptModule = "Script"; + +# +# We'll first read data from the official ISO 15924. +# +# Data available consists of the script names and 2-letter and +# 3-letter codes. Script names include non-ASCII characters encoded in +# UTF-8. And (amazingly enough) it's available in a field delimited file!!! +# + +use vars qw($script_iso_url $script_iso_file $script_iso_tmp); +use vars qw(%script_iso_orig %script_iso_ignore); + +$script_iso_url = "http://www.unicode.org/iso15924/iso15924.txt.zip"; +($script_iso_file) = $script_iso_url =~ m,/([^/]*)$,; +$script_iso_tmp = "iso15924.txt"; + +require "data.script.pl"; + +############################################################################### +# HELP +############################################################################### + +use vars qw($usage); +my $COM = $0; +$COM =~ s/^.*\///; + +$usage= + "usage: $COM OPTIONS + -h/--help : Print help. + + -a/--all : Do all steps + + -c/--country : Get the country codes + -l/--language : Get the language codes + -r/--currency : Get the currency codes + -s/--script : Get the script codes + -C/--clean : Clean up all temporary files +"; + +############################################################################### +# PARSE ARGUMENTS +############################################################################### + +my $do_all = 0; +my $do_country = 0; +my $do_language = 0; +my $do_currency = 0; +my $do_script = 0; +my $do_clean = 0; + +while ($_ = shift) { + + (print $usage), exit if ($_ eq "-h" || $_ eq "--help"); + + $do_all = 1, next if ($_ eq "-a" || $_ eq "--all"); + + $do_country = 1, next if ($_ eq "-c" || $_ eq "--country"); + $do_language = 1, next if ($_ eq "-l" || $_ eq "--language"); + $do_currency = 1, next if ($_ eq "-r" || $_ eq "--currency"); + $do_script = 1, next if ($_ eq "-s" || $_ eq "--script"); + $do_clean = 1, next if ($_ eq "-C" || $_ eq "--clean"); +} + +############################################################################ +# MAIN PROGRAM +############################################################################ + +do_country() if ($do_all || $do_country); +do_language() if ($do_all || $do_language); +do_currency() if ($do_all || $do_currency); +do_script() if ($do_all || $do_script); +do_clean() if ($do_all || $do_clean); + +############################################################################ +# DO_COUNTRY +############################################################################ + +sub do_country { + print "Country codes...\n"; + + do_country_iso(); + print_table("country") if ($DEBUG == 2); + + do_country_un(); + print_table("country") if ($DEBUG == 2); + + do_country_nga(); + print_table("country") if ($DEBUG == 2); + + do_country_iana(); + print_table("country") if ($DEBUG == 2); + + do_country_cia(); + print_table("country") if ($DEBUG == 2); + + # Go through all aliases to pick up any that haven't already been + # added (since some aliases are for human convenience rather than + # dealing with variations between codesets). + do_aliases("country"); + print_table("country") if ($DEBUG); + + write_module("country"); +} + +######################################## +sub do_country_iso { + + ### + ### The first set we'll do is the ISO 3166-1 2-character + ### codes. These country names must be adjusted (since they're all + ### uppercase). Also, the lines all end with some strange + ### unprintable character. + ### + + my $codeset = "alpha2"; + + system("wget -N -q $country_iso_url"); + my @in = `cat $country_iso_file`; + chomp(@in); + chop(@in); + + # File is a line of text followed by a blank line followed by the + # codes as ORIGNAME;CODE . + + if ($in[1] || $in[2] !~ /^$country_iso_1st;/) { + die "ERROR [iso]: country code file format changed!\n"; + } + + shift(@in); + shift(@in); + + foreach my $line (@in) { + if ($line !~ /^(.*);(.*)$/) { + die "ERROR [iso]: line invalid\n" . + " $line\n"; + } + my($country,$code) = ($1,$2); + $code = lc($code); + if (exists $country_iso_orig{$country}) { + $country = $country_iso_orig{$country}; + } else { + print "WARNING [iso]: unknown country: $country\n"; + next; + } + + my $countryID = $CountryID++; + + $Country{$countryID} = [ $country ]; + $CountryAlias{lc($country)} = [ $countryID, 0 ]; + $Code2CountryID{$codeset}{$code} = [ $countryID, 0 ]; + $CountryID2Code{$codeset}{$countryID} = $code; + } +} + +######################################## +sub do_country_un { + + print "\nINFO [un]: expect Channel Islands\n"; + + ### + ### The UN data contains most of the alpha-3 and numeric code sets. + ### + + system("wget -N -q $country_un_url"); + my @in = `cat $country_un_file`; + chomp(@in); + my $in = join("",@in); + + # Clean up some things that could cause problems in parsing: + + strip_tags(\$in,1,"br","p","strong","div"); + $in =~ s,\ , ,g; + $in =~ s,\s+, ,g; + + # Look for a table who's first row has the header: + # ISO ALPHA-3 code + + my $found = jump_to_row(\$in,"ISO ALPHA-3 code"); + if (! $found) { + die "ERROR [un]: country code file format changed!\n"; + } + + while (1) { + my @row = get_row("un",\$in); + last if (! @row); + + my($num,$country,$alpha3) = @row; + $alpha3 = lc($alpha3); + + if ($num) { + if ($num !~ /^\d+$/ || length($num) > 3) { + print "WARNING [un]: Invalid numeric code: $country => $num\n"; + next; + } + } + + if ($alpha3 && $alpha3 !~ /^[a-z][a-z][a-z]$/) { + print "WARNING [un]: Invalid alpha-3 code: $country => $alpha3\n"; + next; + } + + if (exists $country_un_orig{$country}) { + $country = $country_un_orig{$country}; + } + + my($err,$countryID,$i,$t) = get_countryID("un",$country); + next if ($err); + + if ($t eq "new") { + print "INFO [un]: new country: $alpha3/$num\t$country\n"; + } + + if ($num) { + $num = "0$num" while (length($num) < 3); + $Code2CountryID{"num"}{$num} = [ $countryID, $i ]; + $CountryID2Code{"num"}{$countryID} = $num; + } + + if ($alpha3) { + $Code2CountryID{"alpha3"}{$alpha3} = [ $countryID, $i ]; + $CountryID2Code{"alpha3"}{$countryID} = $alpha3; + } + } +} + +######################################## +sub do_country_nga { + + print "\nINFO [nga]: expect Serbia, Ashmore, Baker, Bassas, Clipperton,\n" . + " Coral, Europa, Gaza, Glorioso, Howland, Jan Mayen,\n" . + " Jarvis, Johnston, Juan, Kingman, Midway, Navassa, Palmyra,\n" . + " Paracel, Spratly, Svalbard, Tromelin, Wake, West\n"; + + ### + ### The NGA data contains the FIPS 10 codes + ### + + system("wget -N -q $country_nga_url"); + my @in = `cat $country_nga_file`; + chomp(@in); + my $in = join("",@in); + + # Clean up some things that could cause problems in parsing: + + strip_tags(\$in,1,"br","p","strong","div"); + $in =~ s,\Q[United States}\E,,; # A horrible typo in the HTML + $in =~ s,\ , ,g; + $in =~ s,Other:, ,g; + $in =~ s,\(see note[^\)]*\), ,g; + $in =~ s,\[[^\]]*\], ,g; + $in =~ s,\s+, ,g; + + # Look for a table who's first row has the header: + # SHORT FORM NAME + # and then a table with the header: + # Short Form Name + + foreach my $table ("SHORT FORM NAME","Short Form Name") { + my $found = jump_to_row(\$in,$table); + if (! $found) { + die "ERROR [nga]: country code file format changed!\n"; + } + + while (1) { + my @row = get_row("nga",\$in); + last if (! @row); + + my($short,$long,$code) = @row; + $code = uc($code); + next if ($code eq "N/A"); + next if (exists $country_nga_ignore{$short}); + + if ($code !~ /^[A-Z][A-Z]$/) { + print "WARNING [nga]: Invalid code: $short => $code\n"; + } + + if ($short eq "None") { + print "ERROR [nga]: no short definition: $code $long\n"; + next; + } + $long = "" if ($long eq "None"); + + if (exists $country_nga_orig{$short}) { + $short = $country_nga_orig{$short}; + } + if (exists $country_nga_orig{$long}) { + $long = $country_nga_orig{$long}; + } + + my($countryID,$i); + my($err,$c,$ii,$t) = get_countryID("nga",$short,1); + next if ($err); + + if ($t ne "new") { + ($countryID,$i) = ($c,$ii); + } else { + ($err,$c,$ii,$t) = get_countryID("nga",$long,1); + ($countryID,$i) = ($c,-1); + if ($t eq "new") { + print "INFO [nga]: new country: $code\t$short\n"; + } + } + + if ($countryID == -1) { + # New country + $countryID = $CountryID++; + $i = 0; + $Country{$countryID} = [ $short ]; + $CountryAlias{lc($short)} = [ $countryID, $i ]; + + } elsif ($i == -1) { + # $short is a new alias + push @{ $Country{$countryID} },$short; + $i = $#{ $Country{$countryID} }; + $CountryAlias{lc($short)} = [ $countryID, $i ]; + } + + if ($long && + ! exists $CountryAlias{lc($long)}) { + # $long is a new alias + push @{ $Country{$countryID} },$long; + $i = $#{ $Country{$countryID} }; + $CountryAlias{lc($long)} = [ $countryID, $i ]; + } + + $Code2CountryID{"fips"}{$code} = [ $countryID, $i ]; + $CountryID2Code{"fips"}{$countryID} = $code; + } + } +} + +######################################## +sub do_country_iana { + + print "\nINFO [iana]: expect Acension, European, Soviet, Portuguese\n"; + + ### + ### The IANA data contains the domain names + ### + + system("wget -N -q $country_iana_url"); + my @in = `cat $country_iana_file`; + chomp(@in); + my $in = join("",@in); + + # Clean up some things that could cause problems in parsing: + + strip_tags(\$in,1,"a"); + $in =~ s,\ , ,g; + $in =~ s,\(being phased out\), ,g; + $in =~ s,\s+, ,g; + + # Look for a table who's first row has the header: + # Sponsoring Organisation + + my $found = jump_to_row(\$in,"Sponsoring Organisation"); + if (! $found) { + die "ERROR [iana]: country code file format changed!\n"; + } + + while (1) { + my @row = get_row("iana",\$in); + last if (! @row); + + my($dom,$type,$country) = @row; + next unless ($type eq "country-code"); + $dom =~ s/^\.//; + $country =~ s, + # + # COUNTRY + # FIPS + # + # + # + # + # + # + #
ALPHA-2ALPHA-3NUMERIC
+ # + # ... + # + # ... + # + # + # After all of the "A" entries, a special table containing the headers + # is given again. + + while (1) { + + # + # Read the next entry + # + + my($country,$fips,$alpha2,$alpha3,$num,$stanag,$dom); + + my $found = jump_to_table(\$in); + if (! $found) { + print "ERROR [cia]: malformed file\n"; + last; + } + $country = get_entry(\$in); + if (! $country) { + # The first entry is empty if it's at the end of the entries + # for a given letter. + $found = jump_to_entry(\$in,"Entity"); + if (! $found) { + die "ERROR [cia]: country code file format changed!\n"; + } + next; + } + + if (exists $country_cia_orig{$country}) { + $country = $country_cia_orig{$country}; + } + + $fips = uc(get_entry(\$in)); + $found = jump_to_table(\$in); + if (! $found) { + print "ERROR [cia]: malformed file\n"; + last; + } + $alpha2 = lc(get_entry(\$in)); + $alpha3 = lc(get_entry(\$in)); + $num = get_entry(\$in); + $stanag = get_entry(\$in); + $dom = uc(get_entry(\$in)); + $dom =~ s/^\.//; + + next if (exists $country_cia_ignore{$country}); + + $alpha2 = $country_cia_codes{"alpha2"}{$country} + if (exists $country_cia_codes{"alpha2"}{$country}); + $alpha3 = $country_cia_codes{"alpha3"}{$country} + if (exists $country_cia_codes{"alpha3"}{$country}); + $num = $country_cia_codes{"num"}{$country} + if (exists $country_cia_codes{"num"}{$country}); + $fips = $country_cia_codes{"fips"}{$country} + if (exists $country_cia_codes{"fips"}{$country}); + $dom = $country_cia_codes{"dom"}{$country} + if (exists $country_cia_codes{"dom"}{$country}); + + # + # Get the countryID if the country or ANY of the codes match. + # + + my($err,$countryID,$i,$type) = get_countryID("cia",$country,1); + next if ($err); + + if ($countryID == -1 && $alpha2 ne "-") { + if (exists $Code2CountryID{"alpha2"}{$alpha2}) { + ($countryID,$i) = @{ $Code2CountryID{"alpha2"}{$alpha2} }; + } + } + + if ($countryID == -1 && $alpha3 ne "-") { + if (exists $Code2CountryID{"alpha3"}{$alpha3}) { + ($countryID,$i) = @{ $Code2CountryID{"alpha3"}{$alpha3} }; + } + } + + if ($countryID == -1 && $num ne "-") { + if (exists $Code2CountryID{"num"}{$num}) { + ($countryID,$i) = @{ $Code2CountryID{"num"}{$num} }; + } + } + + if ($countryID == -1 && $fips ne "-") { + if (exists $Code2CountryID{"fips"}{$fips}) { + ($countryID,$i) = @{ $Code2CountryID{"fips"}{$fips} }; + } + } + + if ($countryID == -1 && $dom ne "-") { + if (exists $Code2CountryID{"dom"}{$dom}) { + ($countryID,$i) = @{ $Code2CountryID{"dom"}{$dom} }; + } + } + + if ($countryID == -1) { + $countryID = $CountryID++; + $i = 0; + $Country{$countryID} = [ $country ]; + $CountryAlias{lc($country)} = [ $countryID, $i ]; + } + + # + # Now check that any previously defined values match the + # CIA data. + # + + if ($alpha2 ne "-") { + my $err = check_code("cia","alpha2",$alpha2,$country,$countryID); + next if ($err); + } + + if ($alpha3 ne "-") { + my $err = check_code("cia","alpha3",$alpha3,$country,$countryID); + next if ($err); + } + + if ($num ne "-") { + my $err = check_code("cia","num",$num,$country,$countryID); + next if ($err); + } + + if ($fips ne "-") { + my $err = check_code("cia","fips",$fips,$country,$countryID); + next if ($err); + } + + if ($dom ne "-") { + my $err = check_code("cia","dom",$dom,$country,$countryID); + next if ($err); + } + + last if ($country eq $country_cia_last); + } +} + +######################################## +sub check_code { + my($type,$codeset,$code,$country,$countryID) = @_; + + # Check to make sure that the code is defined. + + if (exists $Code2CountryID{$codeset}{$code}) { + return _check_code_exists($type,$codeset,$code,$country,$countryID); + } else { + return _check_code_new($type,$codeset,$code,$country,$countryID); + } +} + +sub _check_code_exists { + my($type,$codeset,$code,$country,$countryID) = @_; + + # Check the countryID for the code. It must be the same as the one + # passed in. + + my $old_countryID = $Code2CountryID{$codeset}{$code}[0]; + if ($countryID != $old_countryID) { + print "ERROR [$type]: countryID mismatch in code: [$codeset, $country, $code, $countryID != $old_countryID ]\n"; + return 1; + } + + # If the country is defined, it must be the same CountryID. If it + # is not, create a new alias. + + if (exists $CountryAlias{lc($country)}) { + + my $alt_countryID = $CountryAlias{lc($country)}[0]; + + if ($countryID != $alt_countryID) { + print "ERROR [$type]: countryID mismatch in country: [$codeset, $country, $code, $countryID != $alt_countryID ]\n"; + return 1; + } + + } else { + push @{ $Country{$countryID} },$country; + my $i = $#{ $Country{$countryID} }; + $CountryAlias{lc($country)} = [ $countryID, $i ]; + } +} + +# This is a new code. +sub _check_code_new { + my($type,$codeset,$code,$country,$countryID) = @_; + + print "INFO [$type]: New code: $codeset [$code] => $country\n"; + + # If this country name isn't defined, create it. + + my $i; + if (exists $CountryAlias{lc($country)}) { + $i = $CountryAlias{lc($country)}[1]; + } else { + push @{ $Country{$countryID} },$country; + $i = $#{ $Country{$countryID} }; + $CountryAlias{lc($country)} = [ $countryID, $i ]; + } + + # This country name is the canonical name for the code. + + $CountryID2Code{$codeset}{$countryID} = $code; + $Code2CountryID{$codeset}{$code} = [ $countryID, $i ]; + + return 0; +} + +######################################## +sub get_countryID { + my($type,$country,$no_create) = @_; + + my($countryID,$i,$t); + if (exists $CountryAlias{lc($country)}) { + # The country is the same name as one previously defined + ($countryID,$i) = @{ $CountryAlias{lc($country)} }; + $t = "same"; + + } elsif (exists $country_alias{$country}) { + # It's a new alias for an existing country + my $c = $country_alias{$country}; + if (! exists $CountryAlias{lc($c)}) { + print "WARNING [$type]: alias referenced before it is defined: $country => $c\n"; + return (1); + } + $countryID = $CountryAlias{lc($c)}[0]; + push @{ $Country{$countryID} },$country; + $i = $#{ $Country{$countryID} }; + $CountryAlias{lc($country)} = [ $countryID, $i ]; + $t = "alias"; + + } else { + # It's a new country. + if ($no_create) { + return(0,-1,-1,"new"); + } + $countryID = $CountryID++; + $i = 0; + $Country{$countryID} = [ $country ]; + $CountryAlias{lc($country)} = [ $countryID, $i ]; + $t = "new"; + } + + return(0,$countryID,$i,$t); +} + +############################################################################ +# DO_LANGUAGE +############################################################################ + +sub do_language { + print "Language codes...\n"; + + do_language_iso(); + print_table("language") if ($DEBUG == 2); + + # Go through all aliases to pick up any that haven't already been + # added (since some aliases are for human convenience rather than + # dealing with variations between codesets). + do_aliases("language"); + print_table("language") if ($DEBUG); + + write_module("language"); +} + +######################################## +sub do_language_iso { + ### + ### The first set we'll do is the ISO codes. + ### + + system("wget -N -q $language_iso_url"); + open(my $in,'<:encoding(utf8)',$language_iso_file); + my @in = <$in>; + close($in); + chomp(@in); + + # File is a set of lines of fields delimited by "|". Fields are: + # + # alpha3 + # term + # alpha2 + # English names (semicolon separated list) + # French name + + foreach my $line (@in) { + my($alpha3,$term,$alpha2,$english,$french) = split(/\|/,$line); + # The first line has some binary characters at the start. + if (length($alpha3)>3) { + $alpha3 = substr($alpha3,length($alpha3)-3); + } + + if (exists $language_iso_orig{$english}) { + $english = $language_iso_orig{$english}; + } + my $languageID = $LanguageID++; + my @language = split(/\s*;\s*/,$english); + + $Language{$languageID} = [ @language ]; + for (my $i=0; $i<=$#language; $i++) { + my $language = $language[$i]; + $LanguageAlias{lc($language)} = [ $languageID, $i ]; + } + + if ($alpha3) { + $Code2LanguageID{"alpha3"}{$alpha3} = [ $languageID, 0 ]; + $LanguageID2Code{"alpha3"}{$languageID} = $alpha3; + } + + if ($term) { + $Code2LanguageID{"term"}{$term} = [ $languageID, 0 ]; + $LanguageID2Code{"term"}{$languageID} = $term; + } + + if ($alpha2) { + $Code2LanguageID{"alpha2"}{$alpha2} = [ $languageID, 0 ]; + $LanguageID2Code{"alpha2"}{$languageID} = $alpha2; + } + } +} + +############################################################################ +# DO_CURRENCY +############################################################################ + +sub do_currency { + print "Currency codes...\n"; + + do_currency_iso(); + print_table("currency") if ($DEBUG == 2); + + # Go through all aliases to pick up any that haven't already been + # added (since some aliases are for human convenience rather than + # dealing with variations between codesets). + do_aliases("currency"); + print_table("currency") if ($DEBUG); + + write_module("currency"); +} + +######################################## +sub do_currency_iso { + ### + ### The first set we'll do is the ISO 4217 codes. + ### + + system("wget -N -q $currency_iso_url"); + my @in = `cat $currency_iso_file`; + chomp(@in); + my $in = join("",@in); + + # Clean up some things that could cause problems in parsing: + + strip_tags(\$in,1,"p","a","strong","div"); + $in =~ s,\ , ,g; + $in =~ s,†,,g; + $in =~ s,‡,,g; + $in =~ s,\s+, ,g; + + # Look for a table who's first row has the header: + # Entity + + my $found = jump_to_row(\$in,"Entity"); + if (! $found) { + die "ERROR [iso]: currency code file format changed!\n"; + } + + LINE: while (1) { + my @row = get_row("iso",\$in); + last if (! @row); + + my($ent,$currencies,$alphas,$nums) = @row; + $nums = "" if ($nums eq "Nil"); + next if (! $alphas && ! $nums); + + my(@currency,@num,@alpha,$done); + @currency = split(//,$currencies); + @num = split(//,$nums); + @alpha = split(//,$alphas); + + if ( ($nums && $#num != $#currency) || + ($alphas && $#alpha != $#currency) ) { + print "WARNING [iso]: Invalid line: $currencies => $alphas, $nums\n"; + next; + } + + for (my $i=0; $i<=$#currency; $i++) { + my $currency = $currency[$i]; + my $num = (@num ? $num[$i] : ""); + my $alpha = (@alpha ? $alpha[$i] : ""); + $done = 1 if ($alpha eq $currency_iso_last); + + if (exists $currency_iso_orig{$currency}) { + $currency = $currency_iso_orig{$currency}; + } + + if ($num) { + if ($num !~ /^\d+$/ || length($num) > 3) { + print "WARNING [iso]: Invalid numeric code: $currency => $num\n"; + next LINE; + } + } + + $alpha = uc($alpha); + if ($alpha && $alpha !~ /^[A-Z][A-Z][A-Z]$/) { + print "WARNING [iso]: Invalid alpha code: $currency => $alpha\n"; + next LINE; + } + + next if (exists $currency_iso_ignore{$alpha}); + + # There's a lot of duplication, so make sure that if this code + # exists, it is consistant. + + my $new = 1; + my @currencyID; + if (exists $Code2CurrencyID{"num"}{$num}) { + $new = 0; + my($currencyID,$i) = @{ $Code2CurrencyID{"num"}{$num} }; + push(@currencyID,$currencyID); + } + if (exists $Code2CurrencyID{"alpha"}{$alpha}) { + $new = 0; + my($currencyID,$i) = @{ $Code2CurrencyID{"alpha"}{$alpha} }; + push(@currencyID,$currencyID); + } + + if ($#currencyID == 1) { + if ($currencyID[0] != $currencyID[1]) { + print "WARNING [iso]: CurrencyID mismatch: $currency => $alpha,$num\n"; + next LINE; + } + } + + my $currencyID; + if ($new) { + $currencyID = $CurrencyID++; + $Currency{$currencyID} = [ $currency ]; + $CurrencyAlias{lc($currency)} = [ $currencyID, 0 ] + } else { + $currencyID = $currencyID[0]; + } + + if ($num) { + $num = "0$num" while (length($num) < 3); + $Code2CurrencyID{"num"}{$num} = [ $currencyID, 0 ]; + $CurrencyID2Code{"num"}{$currencyID} = $num; + } + + if ($alpha) { + $Code2CurrencyID{"alpha"}{$alpha} = [ $currencyID, 0 ]; + $CurrencyID2Code{"alpha"}{$currencyID} = $alpha; + } + + } + + last if ($done); + } +} + +############################################################################ +# DO_SCRIPT +############################################################################ + +sub do_script { + print "Script codes...\n"; + + do_script_iso(); + print_table("script") if ($DEBUG == 2); + + # Go through all aliases to pick up any that haven't already been + # added (since some aliases are for human convenience rather than + # dealing with variations between codesets). + do_aliases("script"); + print_table("script") if ($DEBUG); + + write_module("script"); +} + +######################################## +sub do_script_iso { + ### + ### The first set we'll do is the ISO 15924 codes. We + ### can get a zip file which contains the data. + ### + + system("wget -N -q $script_iso_url"); + my $zip = Archive::Zip->new($script_iso_file); + + my @members = grep(/^iso15924.*\.txt/,$zip->memberNames()); + if (@members != 1) { + die "ERROR [iso]: zip file changed format\n"; + } + my($file) = @members; + $zip->extractMember($file,$script_iso_tmp); + + # + # The zip file contains a series of lines in the form: + # alpha;numeric;english;... + # The data is in UTF-8. + # + # Every line has an unprintable character at the end. + # + + open(my $in,'<:encoding(utf8)',$script_iso_tmp); + my @in = <$in>; + close($in); + chomp(@in); + chop(@in); + + foreach my $line (@in) { + next if (! $line || $line =~ /^\043/); + my($alpha,$num,$script) = split(/;/,$line); + $alpha = ucfirst(lc($alpha)); + next if (exists $script_iso_ignore{$alpha}); + + if (exists $script_iso_orig{$script}) { + $script = $script_iso_orig{$script}; + } + my $scriptID = $ScriptID++; + + $Script{$scriptID} = [ $script ]; + $ScriptAlias{lc($script)} = [ $scriptID, 0 ]; + + $Code2ScriptID{"alpha"}{$alpha} = [ $scriptID, 0 ]; + $ScriptID2Code{"alpha"}{$scriptID} = $alpha; + + $Code2ScriptID{"num"}{$num} = [ $scriptID, 0 ]; + $ScriptID2Code{"num"}{$scriptID} = $num; + } +} + +############################################################################ +# PRINT_TABLE +############################################################################ + +sub _type_hashes { + my($caller) = @_; + + my ($type_alias,$TypeAlias,$Type,$TypeID2Code,$Code2TypeID); + + if ($caller eq "country") { + $type_alias = \%country_alias; + $TypeAlias = \%CountryAlias; + $Type = \%Country; + $TypeID2Code = \%CountryID2Code; + $Code2TypeID = \%Code2CountryID; + + } elsif ($caller eq "language") { + $type_alias = \%language_alias; + $TypeAlias = \%LanguageAlias; + $Type = \%Language; + $TypeID2Code = \%LanguageID2Code; + $Code2TypeID = \%Code2LanguageID; + + } elsif ($caller eq "currency") { + $type_alias = \%currency_alias; + $TypeAlias = \%CurrencyAlias; + $Type = \%Currency; + $TypeID2Code = \%CurrencyID2Code; + $Code2TypeID = \%Code2CurrencyID; + + } elsif ($caller eq "script") { + $type_alias = \%script_alias; + $TypeAlias = \%ScriptAlias; + $Type = \%Script; + $TypeID2Code = \%ScriptID2Code; + $Code2TypeID = \%Code2ScriptID; + } + + return($type_alias,$TypeAlias,$Type,$TypeID2Code,$Code2TypeID); +} + +sub print_table { + my($caller) = @_; + + my ($type_alias,$TypeAlias,$Type,$TypeID2Code,$Code2TypeID) + = _type_hashes($caller); + + foreach my $typeID (sort keys %$Type) { + my @type = @{ $$Type{$typeID} }; + my $i = 0; + + my $type = shift(@type); + if (length($type) < 40) { + $type .= " "x(40-length($type)); + } else { + $type = substr($type,0,40); + } + + print "${typeID}[$i] = $type "; + foreach my $codeset (keys %$Code2TypeID) { + my $field = ""; + if (exists $$TypeID2Code{$codeset}{$typeID}) { + my $code = $$TypeID2Code{$codeset}{$typeID}; + my($code_id,$code_i) = @{ $$Code2TypeID{$codeset}{$code} }; + $field = "$code [$code_id,$code_i]"; + $field .= " ERR" if ($code_id != $typeID); + } + $field = $field . " "x(18-length($field)); + print $field; + } + print "\n"; + foreach $type (@type) { + $i++; + if (length($type) > 40) { + $type = substr($type,0,40); + } + print " [$i] = $type\n"; + } + } +} + +############################################################################ +# DO_ALIASES +############################################################################ + +sub do_aliases { + my($caller) = @_; + + my ($type_alias,$TypeAlias,$Type,$TypeID2Code,$Code2TypeID) + = _type_hashes($caller); + + # Add remaining aliases. + + foreach my $alias (keys %$type_alias) { + my $type = $$type_alias{$alias}; + + next if (exists $$TypeAlias{lc($type)} && + exists $$TypeAlias{lc($alias)}); + + if (! exists $$TypeAlias{lc($type)} && + ! exists $$TypeAlias{lc($alias)}) { + print "WARNING: unused type in alias list: $type\n"; + print "WARNING: unused type in alias list: $alias\n"; + next; + } + + my ($typeID); + if (exists $$TypeAlias{lc($type)}) { + $typeID = $$TypeAlias{lc($type)}[0]; + $type = $alias; + } else { + $typeID = $$TypeAlias{lc($alias)}[0]; + } + + push @{ $$Type{$typeID} },$type; + my $i = $#{ $$Type{$typeID} }; + $$TypeAlias{lc($type)} = [ $typeID, $i ]; + } +} + +############################################################################ +# WRITE_MODULE +############################################################################ + +sub write_module { + my($type) = @_; + + my($module,%hashes,$id); + + if ($type eq "country") { + $module = $CountryModule; + %hashes = ("id2names" => "Country", + "alias2id" => "CountryAlias", + "code2id" => "Code2CountryID", + "id2code" => "CountryID2Code"); + $id = $CountryID; + } elsif ($type eq "language") { + $module = $LanguageModule; + %hashes = ("id2names" => "Language", + "alias2id" => "LanguageAlias", + "code2id" => "Code2LanguageID", + "id2code" => "LanguageID2Code"); + $id = $LanguageID; + } elsif ($type eq "currency") { + $module = $CurrencyModule; + %hashes = ("id2names" => "Currency", + "alias2id" => "CurrencyAlias", + "code2id" => "Code2CurrencyID", + "id2code" => "CurrencyID2Code"); + $id = $CurrencyID; + } elsif ($type eq "script") { + $module = $ScriptModule; + %hashes = ("id2names" => "Script", + "alias2id" => "ScriptAlias", + "code2id" => "Code2ScriptID", + "id2code" => "ScriptID2Code"); + $id = $ScriptID; + } + + my $file = "$ModDir/$module.pm"; + if (-f $file) { + system("mv $file $file.bak"); + } + + my $out = new IO::File; + $out->open(">$file"); + my $timestamp = `date`; + chomp($timestamp); + + my $podstr = '=pod'; # so the CPAN indexer won't treat this as a POD file + + print $out "package Locale::Codes::$module; + +# This file was automatically generated. Any changes to this file will +# be lost the next time 'get_codes' is run. +# Generated on: $timestamp + +$podstr + +=head1 NAME + +Locale::Codes::$module - $type codes for the Locale::$module module + +=head1 SYNOPSIS + +This module contains data used by the Locale::$module module. It is +not intended to be used directly, and contains no calleable routines. + +=head1 AUTHOR + +See Locale::Codes for full author history. + +Currently maintained by Sullivan Beck (sbeck\@cpan.org). + +=head1 COPYRIGHT + + Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 2001-2010 Neil Bowers + Copyright (c) 2010-2010 Sullivan Beck + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=cut + +use strict; +use warnings; +require 5.002; + +use vars qw(\$VERSION); +\$VERSION='3.12'; + +\$Locale::Codes::Data{'$type'}{'id'} = '$id'; + +"; + + foreach my $h qw(id2names alias2id code2id id2code) { + my $hash = $hashes{$h}; + print $out "\$Locale::Codes::Data{'$type'}{'$h'} = {\n"; + _write_hash($out,$hash); + + print $out "};\n\n"; + } + + print $out "1;\n"; + + $out->close(); +} + +sub _write_hash { + my($out,$hashname) = @_; + + no strict 'refs'; + my %hash = %$hashname; + use strict 'refs'; + _write_subhash($out,3,\%hash); +} + +sub _write_subhash { + my($out,$indent,$hashref) = @_; + + my %hash = %$hashref; + my $ind = " "x$indent; + + foreach my $key (sort keys %hash) { + my $val = $hash{$key}; + if (ref($val) eq "HASH") { + print $out "${ind}q($key) => {\n"; + _write_subhash($out,$indent+3,$val); + print $out "${ind} },\n"; + } elsif (ref($val) eq "ARRAY") { + print $out "${ind}q($key) => [\n"; + _write_sublist($out,$indent+3,$val); + print $out "${ind} ],\n"; + } else { + print $out "${ind}q($key) => q($val),\n"; + } + } +} + +sub _write_sublist { + my($out,$indent,$listref) = @_; + + my @list = @$listref; + my $ind = " "x$indent; + + foreach my $val (@list) { + if (ref($val) eq "HASH") { + print $out "${ind}{\n"; + _write_subhash($out,$indent+3,$val); + print $out "${ind}},\n"; + } elsif (ref($val) eq "ARRAY") { + print $out "${ind}[\n"; + _write_sublist($out,$indent+3,$val); + print $out "${ind}],\n"; + } else { + print $out "${ind}q($val),\n"; + } + } +} + +############################################################################ +# DO_CLEAN +############################################################################ + +sub do_clean { + print "Cleaning...\n"; + + system("rm -f $country_iso_file"); + system("rm -f $country_un_file"); + system("rm -f $country_nga_file"); + system("rm -f $country_cia_file"); + system("rm -f $country_iana_file"); + system("rm -f $language_iso_file"); + system("rm -f $currency_iso_file"); + system("rm -f $script_iso_file"); + system("rm -f $script_iso_tmp"); + system("rm -rf __MACOSX"); +} + +############################################################################ +# HTML SCRAPING +############################################################################ + +sub get_row { + my($type,$inref) = @_; + + return () if ($$inref !~ m,^\s*]*>,,) { + die "ERROR [$type]: malformed HTML\n"; + } + my $row = $1; + + if ($row =~ m,]*>\s*(.*?)\s*]*>,,) { + my $val = $2; + push(@row,$val); + } + + return @row; +} + +sub jump_to_row { + my($inref,$header) = @_; + + if ($$inref =~ s,(.*?)\Q$header\E(.*?)]*>(.*?)(?=]*>\s*\Q$value\E\s*),,) { + return 1; + } else { + return 0; + } +} + +sub jump_to_table { + my($inref) = @_; + + if ($$inref =~ s,(.*?)(?=]*>\s*(.*?)\s*]*>,,) { + return $1; + } + return ""; +} + +sub strip_tags { + my($inref,$close,@tags) = @_; + + foreach my $tag (@tags) { + if ($close) { + $$inref =~ s,]*>, ,g; + } else { + $$inref =~ s,<$tag[^>]*>, ,g; + } + } +} + +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/internal/ispell.isp b/cpan/Locale-Codes/internal/ispell.isp new file mode 100644 index 0000000..e76fe64 --- /dev/null +++ b/cpan/Locale-Codes/internal/ispell.isp @@ -0,0 +1,30 @@ +bo +bol +Bower's +bR +br +brb +Centre +CODESET +CODESETs +CPAN +CRE +EUR +Factbook +fi +fips +Geospatial +gf +heb +Hennecke +IANA +num +Phnx +Plurinational +terminologic +tv +uk +XTS +Zxxx +Zyyy +Zzzz diff --git a/cpan/Locale-Codes/lib/Locale/Codes.pm b/cpan/Locale-Codes/lib/Locale/Codes.pm new file mode 100644 index 0000000..82516b9 --- /dev/null +++ b/cpan/Locale-Codes/lib/Locale/Codes.pm @@ -0,0 +1,628 @@ +package Locale::Codes; +# Copyright (C) 2001 Canon Research Centre Europe (CRE). +# Copyright (C) 2002-2009 Neil Bowers +# Copyright (c) 2010-2010 Sullivan Beck +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + +use strict; +use warnings; +require 5.002; + +use Carp; + +#======================================================================= +# Public Global Variables +#======================================================================= + +# This module is not called directly... %Data is filled in by the +# calling modules. + +use vars qw($VERSION %Data); + +# $Data{ TYPE }{ code2id }{ CODESET } { CODE } = [ ID, I ] +# { id2code }{ CODESET } { ID } = CODE +# { id2names }{ ID } = [ NAME, NAME, ... ] +# { alias2id }{ NAME } = [ ID, I ] +# { id } = FIRST_UNUSED_ID +# { codealias }{ CODESET } { ALIAS } = CODE + +$VERSION='3.12'; + +#======================================================================= +# +# _code2name ( TYPE,CODE,CODESET ) +# +#======================================================================= + +sub _code2name { + my($type,$code,$codeset) = @_; + + $code = $Data{$type}{'codealias'}{$codeset}{$code} + if (exists $Data{$type}{'codealias'}{$codeset}{$code}); + + if (exists $Data{$type}{'code2id'}{$codeset} && + exists $Data{$type}{'code2id'}{$codeset}{$code}) { + my ($id,$i) = @{ $Data{$type}{'code2id'}{$codeset}{$code} }; + my $name = $Data{$type}{'id2names'}{$id}[$i]; + return $name; + } else { + #--------------------------------------------------------------- + # no such code! + #--------------------------------------------------------------- + return undef; + } +} + +#======================================================================= +# +# _name2code ( TYPE,NAME,CODESET ) +# +#======================================================================= + +sub _name2code { + my($type,$name,$codeset) = @_; + $name = "" if (! $name); + $name = lc($name); + + if (exists $Data{$type}{'alias2id'}{$name}) { + my $id = $Data{$type}{'alias2id'}{$name}[0]; + if (exists $Data{$type}{'id2code'}{$codeset}{$id}) { + return $Data{$type}{'id2code'}{$codeset}{$id}; + } + } + + #--------------------------------------------------------------- + # no such name! + #--------------------------------------------------------------- + return undef; + } + +#======================================================================= +# +# _code2code ( TYPE,CODE,CODESET ) +# +#======================================================================= + +sub _code2code { + my($type,$code,$inset,$outset) = @_; + + my $name = _code2name($type,$code,$inset); + my $outcode = _name2code($type,$name,$outset); + return $outcode; +} + +#======================================================================= +# +# _all_codes ( TYPE,CODESET ) +# +#======================================================================= + +sub _all_codes { + my($type,$codeset) = @_; + + if (! exists $Data{$type}{'code2id'}{$codeset}) { + return (); + } + my @codes = keys %{ $Data{$type}{'code2id'}{$codeset} }; + return (sort @codes); +} + +#======================================================================= +# +# _all_names ( TYPE,CODESET ) +# +#======================================================================= + +sub _all_names { + my($type,$codeset) = @_; + + my @codes = _all_codes($type,$codeset); + return () if (! @codes); + my @names; + + foreach my $code (@codes) { + my($id,$i) = @{ $Data{$type}{'code2id'}{$codeset}{$code} }; + my $name = $Data{$type}{'id2names'}{$id}[$i]; + push(@names,$name); + } + return (sort @names); +} + +#======================================================================= +# +# _rename ( TYPE,CODE,NAME,CODESET ) +# +# Change the official name for a code. The original is retained +# as an alias, but the new name will be returned if you lookup the +# name from code. +# +#======================================================================= + +sub _rename { + my($type,$code,$new_name,$codeset,$nowarn) = @_; + + if (! $codeset) { + carp "rename_$type(): unknown codeset\n" unless ($nowarn); + return 0; + } + + $code = $Data{$type}{'codealias'}{$codeset}{$code} + if (exists $Data{$type}{'codealias'}{$codeset}{$code}); + + # Check that $code exists in the codeset. + + my $id; + if (exists $Data{$type}{'code2id'}{$codeset}{$code}) { + $id = $Data{$type}{'code2id'}{$codeset}{$code}[0]; + } else { + carp "rename_$type(): unknown code: $code\n" unless ($nowarn); + return 0; + } + + # Cases: + # 1. Renaming to a name which exists with a different ID + # Error + # + # 2. Renaming to a name which exists with the same ID + # Just change code2id (I value) + # + # 3. Renaming to a new name + # Create a new alias + # Change code2id (I value) + + if (exists $Data{$type}{'alias2id'}{lc($new_name)}) { + # Existing name (case 1 and 2) + + my ($new_id,$i) = @{ $Data{$type}{'alias2id'}{lc($new_name)} }; + if ($new_id != $id) { + # Case 1 + carp "rename_$type(): rename to an existing $type not allowed\n" + unless ($nowarn); + return 0; + } + + # Case 2 + + $Data{$type}{'code2id'}{$codeset}{$code}[1] = $i; + + } else { + + # Case 3 + + push @{ $Data{$type}{'id2names'}{$id} },$new_name; + my $i = $#{ $Data{$type}{'id2names'}{$id} }; + $Data{$type}{'alias2id'}{lc($new_name)} = [ $id,$i ]; + $Data{$type}{'code2id'}{$codeset}{$code}[1] = $i; + } + + return 1; +} + +#======================================================================= +# +# _add_code ( TYPE,CODE,NAME,CODESET ) +# +# Add a new code to the codeset. Both CODE and NAME must be +# unused in the code set. +# +#======================================================================= + +sub _add_code { + my($type,$code,$name,$codeset,$nowarn) = @_; + + if (! $codeset) { + carp "add_$type(): unknown codeset\n" unless ($nowarn); + return 0; + } + + # Check that $code is unused. + + if (exists $Data{$type}{'code2id'}{$codeset}{$code} || + exists $Data{$type}{'codealias'}{$codeset}{$code}) { + carp "add_$type(): code already in use: $code\n" unless ($nowarn); + return 0; + } + + # Check to see that $name is unused in this code set. If it is + # used (but not in this code set), we'll use that ID. Otherwise, + # we'll need to get the next available ID. + + my ($id,$i); + if (exists $Data{$type}{'alias2id'}{lc($name)}) { + ($id,$i) = @{ $Data{$type}{'alias2id'}{lc($name)} }; + if (exists $Data{$type}{'id2code'}{$codeset}{$id}) { + carp "add_$type(): name already in use: $name\n" unless ($nowarn); + return 0; + } + + } else { + $id = $Data{$type}{'id'}++; + $i = 0; + $Data{$type}{'alias2id'}{lc($name)} = [ $id,$i ]; + $Data{$type}{'id2names'}{$id} = [ $name ]; + } + + # Add the new code + + $Data{$type}{'code2id'}{$codeset}{$code} = [ $id,$i ]; + $Data{$type}{'id2code'}{$codeset}{$id} = $code; + + return 1; +} + +#======================================================================= +# +# _delete_code ( TYPE,CODE,CODESET ) +# +# Delete a code from the codeset. +# +#======================================================================= + +sub _delete_code { + my($type,$code,$codeset,$nowarn) = @_; + + if (! $codeset) { + carp "delete_$type(): unknown codeset\n" unless ($nowarn); + return 0; + } + + $code = $Data{$type}{'codealias'}{$codeset}{$code} + if (exists $Data{$type}{'codealias'}{$codeset}{$code}); + + # Check that $code is valid. + + if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) { + carp "delete_$type(): code does not exist: $code\n" unless ($nowarn); + return 0; + } + + # Delete the code + + my $id = $Data{$type}{'code2id'}{$codeset}{$code}[0]; + delete $Data{$type}{'code2id'}{$codeset}{$code}; + delete $Data{$type}{'id2code'}{$codeset}{$id}; + + # Delete any aliases that are linked to this code + + foreach my $alias (keys %{ $Data{$type}{'codealias'}{$codeset} }) { + next if ($Data{$type}{'codealias'}{$codeset}{$alias} ne $code); + delete $Data{$type}{'codealias'}{$codeset}{$alias}; + } + + # If this ID is not used in any other codeset, delete it completely. + + foreach my $c (keys %{ $Data{$type}{'id2code'} }) { + return 1 if (exists $Data{$type}{'id2code'}{$c}{$id}); + } + + my @names = @{ $Data{$type}{'id2names'}{$id} }; + delete $Data{$type}{'id2names'}{$id}; + + foreach my $name (@names) { + delete $Data{$type}{'alias2id'}{lc($name)}; + } + + return 1; +} + +#======================================================================= +# +# _add_alias ( TYPE,NAME,NEW_NAME ) +# +# Add a new alias. NAME must exist, and NEW_NAME must be unused. +# +#======================================================================= + +sub _add_alias { + my($type,$name,$new_name,$nowarn) = @_; + + # Check that $name is used and $new_name is new. + + my($id); + if (exists $Data{$type}{'alias2id'}{lc($name)}) { + $id = $Data{$type}{'alias2id'}{lc($name)}[0]; + } else { + carp "add_${type}_alias(): name does not exist: $name\n" unless ($nowarn); + return 0; + } + + if (exists $Data{$type}{'alias2id'}{lc($new_name)}) { + carp "add_${type}_alias(): alias already in use: $new_name\n" unless ($nowarn); + return 0; + } + + # Add the new alias + + push @{ $Data{$type}{'id2names'}{$id} },$new_name; + my $i = $#{ $Data{$type}{'id2names'}{$id} }; + $Data{$type}{'alias2id'}{lc($new_name)} = [ $id,$i ]; + + return 1; +} + +#======================================================================= +# +# _delete_alias ( TYPE,NAME ) +# +# This deletes a name from the list of names used by an element. +# NAME must be used, but must NOT be the only name in the list. +# +# Any id2name that references this name will be changed to +# refer to the first name in the list. +# +#======================================================================= + +sub _delete_alias { + my($type,$name,$nowarn) = @_; + + # Check that $name is used. + + my($id,$i); + if (exists $Data{$type}{'alias2id'}{lc($name)}) { + ($id,$i) = @{ $Data{$type}{'alias2id'}{lc($name)} }; + } else { + carp "delete_${type}_alias(): name does not exist: $name\n" unless ($nowarn); + return 0; + } + + my $n = $#{ $Data{$type}{'id2names'}{$id} }; + if ($n == 1) { + carp "delete_${type}_alias(): only one name defined (use _delete_${type} instead)\n" + unless ($nowarn); + return 0; + } + + # Delete the alias. + + splice (@{ $Data{$type}{'id2names'}{$id} },$i,1); + delete $Data{$type}{'alias2id'}{lc($name)}; + + # Every element that refers to this ID: + # Ignore if I < $i + # Set to 0 if I = $i + # Decrement if I > $i + + foreach my $codeset (keys %{ $Data{'code2id'} }) { + foreach my $code (keys %{ $Data{'code2id'}{$codeset} }) { + my($jd,$j) = @{ $Data{'code2id'}{$codeset}{$code} }; + next if ($jd ne $id || + $j < $i); + if ($i == $j) { + $Data{'code2id'}{$codeset}{$code}[1] = 0; + } else { + $Data{'code2id'}{$codeset}{$code}[1]--; + } + } + } + + return 1; +} + +#======================================================================= +# +# _rename_code ( TYPE,CODE,NEW_CODE,CODESET ) +# +# Change the official code. The original is retained as an alias, but +# the new name will be returned if you lookup the code from name. +# +#======================================================================= + +sub _rename_code { + my($type,$code,$new_code,$codeset,$nowarn) = @_; + + if (! $codeset) { + carp "rename_$type(): unknown codeset\n" unless ($nowarn); + return 0; + } + + $code = $Data{$type}{'codealias'}{$codeset}{$code} + if (exists $Data{$type}{'codealias'}{$codeset}{$code}); + + # Check that $code exists in the codeset. + + if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) { + carp "rename_$type(): unknown code: $code\n" unless ($nowarn); + return 0; + } + + # Cases: + # 1. Renaming code to an existing alias of this code: + # Make the alias real and the code an alias + # + # 2. Renaming code to some other existing alias: + # Error + # + # 3. Renaming code to some other code: + # Error ( + # + # 4. Renaming code to a new code: + # Make code into an alias + # Replace code with new_code. + + if (exists $Data{$type}{'codealias'}{$codeset}{$new_code}) { + # Cases 1 and 2 + if ($Data{$type}{'codealias'}{$codeset}{$new_code} eq $code) { + # Case 1 + + delete $Data{$type}{'codealias'}{$codeset}{$new_code}; + + } else { + # Case 2 + carp "rename_$type(): new code already in use: $new_code\n" unless ($nowarn); + return 0; + } + + } elsif (exists $Data{$type}{'code2id'}{$codeset}{$new_code}) { + # Case 3 + carp "rename_$type(): new code already in use: $new_code\n" unless ($nowarn); + return 0; + } + + # Cases 1 and 4 + + $Data{$type}{'codealias'}{$codeset}{$code} = $new_code; + + my $id = $Data{$type}{'code2id'}{$codeset}{$code}[0]; + $Data{$type}{'code2id'}{$codeset}{$new_code} = $Data{$type}{'code2id'}{$codeset}{$code}; + delete $Data{$type}{'code2id'}{$codeset}{$code}; + + $Data{$type}{'id2code'}{$codeset}{$id} = $new_code; + + return 1; +} + +#======================================================================= +# +# _add_code_alias ( TYPE,CODE,NEW_CODE,CODESET ) +# +# Adds an alias for the code. +# +#======================================================================= + +sub _add_code_alias { + my($type,$code,$new_code,$codeset,$nowarn) = @_; + + if (! $codeset) { + carp "add_${type}_code_alias(): unknown codeset\n" unless ($nowarn); + return 0; + } + + $code = $Data{$type}{'codealias'}{$codeset}{$code} + if (exists $Data{$type}{'codealias'}{$codeset}{$code}); + + # Check that $code exists in the codeset and that $new_code + # does not exist. + + if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) { + carp "add_${type}_code_alias(): unknown code: $code\n" unless ($nowarn); + return 0; + } + + if (exists $Data{$type}{'code2id'}{$codeset}{$new_code} || + exists $Data{$type}{'codealias'}{$codeset}{$new_code}) { + carp "add_${type}_code_alias(): code already in use: $new_code\n" unless ($nowarn); + return 0; + } + + # Add the alias + + $Data{$type}{'codealias'}{$codeset}{$new_code} = $code; + + return 1; +} + +#======================================================================= +# +# _delete_code_alias ( TYPE,CODE,CODESET ) +# +# Deletes an alias for the code. +# +#======================================================================= + +sub _delete_code_alias { + my($type,$code,$codeset,$nowarn) = @_; + + if (! $codeset) { + carp "delete_${type}_code_alias(): unknown codeset\n" unless ($nowarn); + return 0; + } + + # Check that $code exists in the codeset as an alias. + + if (! exists $Data{$type}{'codealias'}{$codeset}{$code}) { + carp "delete_${type}_code_alias(): no alias defined: $code\n" unless ($nowarn); + return 0; + } + + # Delete the alias + + delete $Data{$type}{'codealias'}{$codeset}{$code}; + + return 1; +} + +#======================================================================= +# +# alias_code ( ALIAS => CODE [ , CODESET ] ) +# +# Add an alias for an existing code. If the CODESET isn't specified, +# then we use the default (currently the alpha-2 codeset). +# +# Locale::Country::alias_code('uk' => 'gb'); +# +#======================================================================= + +# sub alias_code { +# my $nowarn = 0; +# $nowarn = 1, pop if ($_[$#_] eq "nowarn"); +# my $alias = shift; +# my $code = shift; +# my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT; + +# return 0 if ($codeset !~ /^\d+$/); + +# if ($codeset == LOCALE_CODE_ALPHA_2) { +# $codeset = "alpha2"; +# $alias = lc($alias); +# } elsif ($codeset == LOCALE_CODE_ALPHA_3) { +# $codeset = "alpha3"; +# $alias = lc($alias); +# } elsif ($codeset == LOCALE_CODE_FIPS) { +# $codeset = "fips"; +# $alias = uc($alias); +# } elsif ($codeset == LOCALE_CODE_NUMERIC) { +# $codeset = "num"; +# return undef if ($alias =~ /\D/); +# $alias = sprintf("%.3d", $alias); +# } else { +# carp "rename_country(): unknown codeset\n" unless ($nowarn); +# return 0; +# } + +# # Check that $code exists in the codeset. + +# my ($id,$i); +# if (exists $Data{$type}{'code2id'}{$codeset}{$code}) { +# ($id,$i) = @{ $Data{$type}{'code2id'}{$codeset}{$code} }; +# } else { +# carp "alias_code: attempt to alias \"$alias\" to unknown country code \"$code\"\n" +# unless ($nowarn); +# return 0; +# } + +# # Cases: +# # The alias already exists. +# # Error +# # +# # It's new +# # Create a new entry in Code2CountryID +# # Replace the entiry in CountryID2Code +# # Regenerate %Codes + +# if (exists $Data{$type}{'code2id'}{$codeset}{$alias}) { +# carp "alias_code: attempt to alias \"$alias\" which is already in use\n" +# unless ($nowarn); +# return 0; +# } + +# $Data{$type}{'code2id'}{$codeset}{$alias} = [ $id, $i ]; +# $Data{$type}{'id2names'}ID2Code{$codeset}{$id} = $alias; + +# my @codes = keys %{ $Data{$type}{'code2id'}{$codeset} }; +# $Locale::CountryCodes::Codes{$codeset} = [ sort @codes ]; + +# return $alias; +# } + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/lib/Locale/Codes.pod b/cpan/Locale-Codes/lib/Locale/Codes.pod new file mode 100644 index 0000000..447aa4b --- /dev/null +++ b/cpan/Locale-Codes/lib/Locale/Codes.pod @@ -0,0 +1,540 @@ +=pod + +=head1 NAME + +Locale::Codes - a distribution of modules to handle locale codes + +=head1 DESCRIPTION + +B is a distribution containing a set of modules. The +modules each deal with different types of codes which identify parts +of the locale including languages, countries, currency, etc. + +Currently, the following modules are included: + +=over 4 + +=item B + +This includes support for country codes (such as those listed in ISO-3166) +to specify the country. + +=item B + +This includes support for language codes (such as those listed in ISO-639) +to specify the language. + +=item B + +This includes support for currency codes (such as those listed in ISO-4217) +to specify the currency. + +=item B + +This includes support for script codes (such as those listed in ISO-15924) +to specify the script. + +=back + +Each module can support an arbitrary number of code sets, and it it +not required that the relationship between these code sets be +one-to-one. For example, the Locale::Country module supports code +sets from ISO-3166 and the FIPS 10 standard, and they do not break the +world down into exactly the same sets of countries. This does not +cause any problem (though converting codes from ISO-3166 to FIPS or +back will not work except for countries that are one-to-one). + +All data in all of these modules comes directly from the original +standards (or as close to direct as possible), so it should be +up-to-date at the time of release. + +I plan on releasing a new version a couple of times a year to +incorporate any changes made in the standards. However, I don't always +know about changes that occur, so if any of the standards change, and +you want a new release sooner, just email me and I'll get one out. + +=head1 NEW CODE SETS + +I'm always open to suggestions for new code sets. + +In order for me to add a code set, I want the following criteria +to be met: + +=over 4 + +=item B + +If a code set is not general use, I'm not likely to spend the time +to add and support it. + +=item B + +I require an official (or at least, a NEARLY official) source where I +can get the data on a regular basis. + +Ideally, I'd only get data from an official source, but sometimes that +is not possible. For example the ISO standards are not typically +available for free, so I may have to get some of that data from +alternate sources that I'm confident are getting their data from the +official source. + +As an example, I get some country data from the CIA World +Factbook. Given the nature of the source, I'm sure they're updating +data from the official sources and I consider it "nearly" official. + +There are many 3rd party sites which maintain lists (many of which are +actually in a more convenient form than the official sites). +Unfortunately, I will reject most of them since I have no feel for how +"official" they are. + +=item B + +Obviously, the data must be free-of-charge. I'm not interested in +paying for the data (and I'm not interested in the overhead of having +someone else pay for the data for me). + +=item B + +The source of data must come from a source that I can reasonably expect +to exist for the foreseeable future since I will be extremely reluctant +to drop support for a data set once it's included. + +I am also reluctant to accept data sent to me by an individual. +Although I appreciate the offer, it is simply not practical to consider +an individual contribution as a reliable source of data. The source +should be an official agency of some sort. + +=back + +These requirements are open to discussion. If you have a code set +you'd like to see added, but which may not meet all of the above +requirements, feel free to email me and we'll discuss it. Depending +on circumstances, I may be willing to waive some of these criteria. + +=head1 COMMON ALIASES + +As of version 2.00, the modules supported common variants of names. + +For example, Locale::Country supports variant names for countries, and +a few of the most common ones are included in the data. The country +code for "United States" is "us", so: + + country2code('United States'); + => "us" + +Now the following will also return 'us': + + country2code('United States of America'); + country2code('USA'); + +Any number of common aliases may be included in the data, in addition +to the names that come directly from the standards. If you have a +common alias for a country, language, or any other of the types of +codes, let me know and I'll add it, with some restrictions. + +For example, the country name "North Korea" never appeared in any of +the official sources (instead, it was "Korea, North" or "Korea, +Democratic People's Republic of". I would honor a request to add an +alias "North Korea" since that's a very common way to specify the +country (please don't request this... I've already added it). + +On the other hand, a request to add Zaire as an alias for "Congo, The +Democratic Republic of" may not be honored. The country's official +name is not Zaire, so adding it as an alias violates the standard. +Zaire was kept as an alias in versions prior to 3.00, but it has been +removed. Other aliases (if any) which no longer appear in any standard +have also been removed. + +=head1 ROUTINES + +As of 3.10, the interface for all of the modules listed above are +identical (as a matter of fact, they are all just wrappers around a +central module which does all the real work). + +In order to maintain the documentation for the modules consistently, +the functions are all documented here, rather than in the documentation +for the separate modules. + +The name of the function depends on the module. For example, every module +contains a function "code2XXX" where XXX refers to the type of data +(country, language, currency, or script). So, the Locale::Country module +contains the function code2country, the Locale::Language module contains +the function code2language, etc. + +In all of the functions below, CODE refers to a code for one element in +the code set. For example, in the two-letter country codes from ISO 3166-1, +the code 'fi' is used to refer to the country Finland. CODE is always +case insensitive (though when a code is returned, it will always be in +the case as used in the standard), so 'fi', 'FI', and 'Fi' would all +be equivalent. + +CODESET refers to a constant specified in the documentation for each +module to label the various code sets. For example, in the +Locale::Language module, CODESET could be LOCALE_CODE_ALPHA_2 or +LOCALE_CODE_ALPHA_3 (among others). Most functions have a default one, +so they do not need to be specified. So the following calls are valid: + + code2country("fi"); + code2country("fi",LOCALE_CODE_ALPHA_2); + code2country("fin",LOCALE_CODE_ALPHA_3); + +Since LOCALE_CODE_ALPHA_2 is the default code set, the first two are +identical. + +=over 4 + +=item B + +=item B + +=item B + +=item B + +These functions take a code and returns a string which contains +the name of the element identified. If the code is not a valid +code in the CODESET specified then C will be returned. + +The name of the element is the name as specified in the standard, +and as a result, different variations of an element name may +be returned for different values of CODESET. + +For example, the B country code set defines the two-letter +code "bo" to be "Bolivia, Plurinational State of", whereas the +B code set defines the code 'bol' to be the country "Bolivia +(Plurinational State of)". So: + + code2country('bo',LOCALE_CODE_ALPHA_2); + => 'Bolivia, Plurinational State of' + + code2country('bol',LOCALE_CODE_ALPHA_3); + => 'Bolivia (Plurinational State of)' + +=item B + +=item B + +=item B + +=item B + +These functions takes the name of an element (or any of it's aliases) +and returns the code that corresponds to it, if it exists. If NAME +could not be identified as the name of one of the elements, then +C will be returned. + +The name is not case sensitive. Also, any known variation of a name +may be passed in. + +For example, even though the country name returned using +LOCALE_CODE_ALPHA_2 and LOCALE_CODE_ALPHA_3 country codes for Bolivia is different, +either country name may be passed in since for each code set, in addition to +the alias 'Bolivia'. So: + + country2code('Bolivia, Plurinational State of', + LOCALE_CODE_ALPHA_2); + => bo + + country2code('Bolivia (Plurinational State of)', + LOCALE_CODE_ALPHA_2); + => bo + + country2code('Bolivia',LOCALE_CODE_ALPHA_2); + => bo + +=item B + +=item B + +=item B + +=item B + +These functions takes a a code from one code set, and returns the +corresponding code from another code set. CODE must exists in the code +set specified by CODESET and must have a corresponding code in the +code set specified by CODESET2 or C will be returned. + +Both CODESETs must be explicitly entered. + + country_code2code('fin', LOCALE_CODE_ALPHA_3, + LOCALE_CODE_ALPHA_2); + => 'fi' + +=item B + +=item B + +=item B + +=item B + +These returns a list of all code in the code set. The codes will be +sorted. + +=item B + +=item B + +=item B + +=item B + +These return a list of all elements names for which there is a +corresponding code in the specified code set. + +The names returned are exactly as they are specified in the standard, +and are sorted. + +Since not all elements are listed in all code sets, the list of +elements may differ depending on the code set specified. + +=back + +=head1 SEMI-PRIVATE ROUTINES + +Additional semi-private routines which may be used to modify the +internal data are also available. Given their status, they aren't +exported, and so need to be called by prefixing the function name with +the package name. + +=over 4 + +=item B + +=item B + +=item B + +=item B + +These routines are used to change the official name of an element. At +that point, the name returned by the code2XXX routine would be +NEW_NAME instead of the name specified in the standard. + +The original name will remain as an alias. + +For example, the official country name for code 'gb' is 'United +Kingdom'. If you want to change that, you might call: + + Locale::Country::rename_country('gb', 'Great Britain'); + +This means that calling code2country('gb') will now return 'Great +Britain' instead of 'United Kingdom'. + +If any error occurs, a warning is issued and 0 is returned. An error +occurs if CODE doesn't exist in the specified code set, or if +NEW_NAME is already in use but for a different element. + +If the routine succeeds, 1 is returned. + +=item B + +=item B + +=item B + +=item B + +These routines are used to add a new code and name to the data. + +Both CODE and NAME must be unused in the data set or an error +occurs (though NAME may be used in a different data set). + +For example, to create the fictitious country named "Duchy of +Grand Fenwick" with codes "gf" and "fen", use the following: + + Locale::Country::add_country("fe","Duchy of Grand Fenwick", + LOCALE_CODE_ALPHA_2); + + Locale::Country::add_country("fen","Duchy of Grand Fenwick", + LOCALE_CODE_ALPHA_3); + +The return value is 1 on success, 0 on an error. + +=item B + +=item B + +=item B + +=item B + +These routines are used to delete a code from the data. + +CODE must refer to an existing code in the code set. + +The return value is 1 on success, 0 on an error. + +=item B + +=item B + +=item B + +=item B + +These routines are used to add a new alias to the data. They do +not alter the return value of the code2XXX function. + +NAME must be an existing element name, and NEW_NAME must +be unused or an error occurs. + +The return value is 1 on success, 0 on an error. + +=item B + +=item B + +=item B + +=item B + +These routines are used to delete an alias from the data. Once +removed, the element may not be referred to by NAME. + +NAME must be one of a list of at least two names that may be used to +specify an element. If the element may only be referred to by a single +name, you'll need to use the add_XXX_alias function to add a new alias +first, or the remove_XXX function to remove the element entirely. + +If the alias is used as the name in any code set, one of the other +names will be used instead. Predicting exactly which one will +be used requires you to know the order in which the standards +were read, which is not reliable, so you may want to use the +rename_XXX function to force one of the alternate names to be +used. + +The return value is 1 on success, 0 on an error. + +=item B + +=item B + +=item B + +=item B + +These routines are used to change the official code for an element. At +that point, the code returned by the XXX2code routine would be +NEW_CODE instead of the code specified in the standard. + +NEW_CODE may either be a code that is not in use, or it may be an +alias for CODE (in which case, CODE becomes and alias and NEW_CODE +becomes the "real" code). + +The original code is kept as an alias, so that the code2XXX routines +will work with either the code from the standard or the new code. + +However, the all_XXX_codes routine will only return the codes which +are considered "real" (which means that the list of codes will now +contain NEW_CODE, but will not contain CODE). + +=item B + +=item B + +=item B + +=item B + +These routines add an alias for the code. At that point, NEW_CODE and CODE +will both work in the code2XXX routines. However, the XXX2code routines will +still return the original code. + +=item B + +=item B + +=item B + +=item B + +These routines delete an alias for the code. + +These will only work if CODE is actually an alias. If it is the "real" +code, it will not be deleted. You will need to use the rename_XXX_code +function to switch the real code with one of the aliases, and then +delete the alias. + +=back + +=head1 KNOWN BUGS AND LIMITATIONS + +=over 4 + +=item B<*> + +Because each code set uses a slightly different list of elements, and +they are not necessarily one-to-one, there may be some confusion +about the relationship between codes from different code sets. + +For example, ISO 3166 assigns one code to the country "United States +Minor Outlying Islands", but the FIPS 10 codes give different codes +to different islands (Baker Island, Howland Island, etc.). + +This may cause some confusion... I've done the best that I could do +to minimize it. + +=item B<*> + +Currently all names must be all ASCII. I plan on relaxing that +limitation in the future. + +=back + +=head1 SEE ALSO + +=over 4 + +=item B + +Constants for Locale codes. + +=item B + +Codes for identification of countries. + +=item B + +Codes for identification of languages. + +=item B + +Codes for identification of scripts. + +=item B + +Codes for identification of currencies and funds. + +=back + +=head1 AUTHOR + +Locale::Country and Locale::Language were originally written by Neil +Bowers at the Canon Research Centre Europe (CRE). They maintained the +distribution from 1997 to 2001. + +Locale::Currency was originally written by Michael Hennecke. + +From 2001 to 2004, maintenance was continued by Neil Bowers. He +modified Locale::Currency for inclusion in the distribution. He also +added Locale::Constants and Locale::Script. + +From 2004-2009, the module was unmaintained. + +In 2010, maintenance was taken over by Sullivan Beck (sbeck@cpan.org) +with Neil Bower's permission. + +=head1 COPYRIGHT + + Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 2001 Michael Hennecke (Locale::Currency) + Copyright (c) 2001-2010 Neil Bowers + Copyright (c) 2010-2010 Sullivan Beck + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=cut + diff --git a/cpan/Locale-Codes/lib/Locale/Codes/Changes.pod b/cpan/Locale-Codes/lib/Locale/Codes/Changes.pod new file mode 100644 index 0000000..02694d9 --- /dev/null +++ b/cpan/Locale-Codes/lib/Locale/Codes/Changes.pod @@ -0,0 +1,171 @@ +=pod + +=head1 NAME + +Locale::Codes::Changes - details important changes after 2.07 + +=head1 3.10 + +=over 4 + +=item B + +In previous versions, passing in the same code set for both code set +arguments would automatically return undef. For example: + + country_code2code('bo',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2); + => undef + +This doesn't seem like reasonable behavior, so it has been changed +to allow the same code set: + + country_code2code('bo',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2); + => 'bo' + +Note that if an invalid code is passed in, undef will still be +returned: + + country_code2code('bol',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2); + => undef + +=item B + +Previous versions had only two semi-private routines: rename_country +and alias_code which had the ability to modify the internal data in +a couple very limited ways. It was requested (in an anonymous posting +by someone named Steve and also by Steve Hay) that better support +for modifying internal data, so a full set of routines were added. + +The full set of routines includes: + + rename_country + rename_language + rename_currency + rename_script + + add_country + add_language + add_currency + add_script + + delete_country + delete_language + delete_currency + delete_script + + add_country_alias + add_language_alias + add_currency_alias + add_script_alias + + delete_country_alias + delete_language_alias + delete_currency_alias + delete_script_alias + + rename_country_code + rename_language_code + rename_currency_code + rename_script_code + + add_country_code_alias + add_language_code_alias + add_currency_code_alias + add_script_code_alias + + delete_country_code_alias + delete_language_code_alias + delete_currency_code_alias + delete_script_code_alias + +=back + +=head1 3.00 + +=over 4 + +=item B + +From 1997 to 2004, Locale::Codes was maintained by Neil +Bowers. Unfortunately, no updates were made from June 2004 to January +2010. During that time, a number of changes have been made to the +standards since then, so the data included was out-of-date. + +I contacted Neil to get his permission to assume maintenance of +the module, and he kindly agreed. + +=item B + +All of the values returned by the various functions are now values +directly from the standards. This means that the values returned in +the 2.xx series are not necessarily the same as the values returned +here. + +As an example, the ISO 3166 standard which lists country codes refers +to the country associated with the code "bo" as "Bolivia, +Plurinational State of", so that is what is returned. In the 2.xx +series, "Bolivia" was returned. Also, the country names vary from one +standard to another. So the code "bol" which is maintained by the +United Nations returns the name of the country as "Bolivia +(Plurinational State of)". Some common aliases have been added, so you +can still request a code associated with a county name "Bolivia". + +Since the data comes from the standards, some "incorrect" values are +no longer supported. For example, 2.07 treated "Zaire" as an alias for +"Congo", but the country changed it's name, and "Zaire" is not in the +standard, so it has been dropped in 3.00. + +=item B + +I've added the following code sets: + + FIPS 10 country codes + Alpha-3 and Term language codes + Numeric currency codes + +=item B + +In 2.xx, Locale::Script assigned scripts to country codes, which is NOT +how it is done currently in the standards. It appears that an older version +of ISO 15924 did this, but I haven't found an old version to confirm +that, and in any case, that is not the case in the current standards. + +As a result, the Locale::Script module is completely incompatible with +the 2.xx version with respect to the types of codes it supports. None of +the old codes will work. + +=item B + +I've added in some functions which were "missing" previously (since there was +only one set of codes supported, the code2code functions didn't apply): + + language_code2code + currency_code2code + +so the interfaces for each type of codes are consistent. + +=item B + +In Locale::Country, _alias_code was an allowed, but deprecated function +which was documented to be supported in the 2.xx series. I've removed it. + +=back + +=head1 SEE ALSO + +Locale::Codes + +=head1 AUTHOR + +See Locale::Codes for full author history. + +Currently maintained by Sullivan Beck (sbeck@cpan.org). + +=head1 COPYRIGHT + + Copyright (c) 2010-2010 Sullivan Beck + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=cut diff --git a/cpan/Locale-Codes/lib/Locale/Codes/Country.pm b/cpan/Locale-Codes/lib/Locale/Codes/Country.pm new file mode 100644 index 0000000..49badc0 --- /dev/null +++ b/cpan/Locale-Codes/lib/Locale/Codes/Country.pm @@ -0,0 +1,9589 @@ +package Locale::Codes::Country; + +# This file was automatically generated. Any changes to this file will +# be lost the next time 'get_codes' is run. +# Generated on: Mon Apr 5 15:40:50 EDT 2010 + +=pod + +=head1 NAME + +Locale::Codes::Country - country codes for the Locale::Country module + +=head1 SYNOPSIS + +This module contains data used by the Locale::Country module. It is +not intended to be used directly, and contains no calleable routines. + +=head1 AUTHOR + +See Locale::Codes for full author history. + +Currently maintained by Sullivan Beck (sbeck@cpan.org). + +=head1 COPYRIGHT + + Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 2001-2010 Neil Bowers + Copyright (c) 2010-2010 Sullivan Beck + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=cut + +use strict; +use warnings; +require 5.002; + +use vars qw($VERSION); +$VERSION='3.12'; + +$Locale::Codes::Data{'country'}{'id'} = '0278'; + +$Locale::Codes::Data{'country'}{'id2names'} = { + q(0001) => [ + q(Afghanistan), + q(Islamic State of Afghanistan), + ], + q(0002) => [ + q(Aland Islands), + ], + q(0003) => [ + q(Albania), + q(Republic of Albania), + ], + q(0004) => [ + q(Algeria), + q(People's Democratic Republic of Algeria), + ], + q(0005) => [ + q(American Samoa), + q(Territory of American Samoa), + ], + q(0006) => [ + q(Andorra), + q(Principality of Andorra), + ], + q(0007) => [ + q(Angola), + q(Republic of Angola), + ], + q(0008) => [ + q(Anguilla), + ], + q(0009) => [ + q(Antarctica), + ], + q(0010) => [ + q(Antigua and Barbuda), + ], + q(0011) => [ + q(Argentina), + q(Argentine Republic), + ], + q(0012) => [ + q(Armenia), + q(Republic of Armenia), + ], + q(0013) => [ + q(Aruba), + ], + q(0014) => [ + q(Australia), + q(Commonwealth of Australia), + ], + q(0015) => [ + q(Austria), + q(Republic of Austria), + ], + q(0016) => [ + q(Azerbaijan), + q(Republic of Azerbaijan), + ], + q(0017) => [ + q(Bahamas), + q(Bahamas, The), + q(Commonwealth of the Bahamas), + q(The Bahamas), + ], + q(0018) => [ + q(Bahrain), + q(State of Bahrain), + ], + q(0019) => [ + q(Bangladesh), + q(People's Republic of Bangladesh), + ], + q(0020) => [ + q(Barbados), + ], + q(0021) => [ + q(Belarus), + q(Republic of Belarus), + ], + q(0022) => [ + q(Belgium), + q(Kingdom of Belgium), + ], + q(0023) => [ + q(Belize), + ], + q(0024) => [ + q(Benin), + q(Republic of Benin), + ], + q(0025) => [ + q(Bermuda), + ], + q(0026) => [ + q(Bhutan), + q(Kingdom of Bhutan), + ], + q(0027) => [ + q(Bolivia, Plurinational State of), + q(Bolivia (Plurinational State of)), + q(Bolivia), + q(Republic of Bolivia), + ], + q(0028) => [ + q(Bosnia and Herzegovina), + ], + q(0029) => [ + q(Botswana), + q(Republic of Botswana), + ], + q(0030) => [ + q(Bouvet Island), + ], + q(0031) => [ + q(Brazil), + q(Federative Republic of Brazil), + ], + q(0032) => [ + q(British Indian Ocean Territory), + ], + q(0033) => [ + q(Brunei Darussalam), + q(Brunei), + q(Negara Brunei Darussalam), + ], + q(0034) => [ + q(Bulgaria), + ], + q(0035) => [ + q(Burkina Faso), + ], + q(0036) => [ + q(Burundi), + q(Republic of Burundi), + ], + q(0037) => [ + q(Cambodia), + q(Kingdom of Cambodia), + ], + q(0038) => [ + q(Cameroon), + q(Republic of Cameroon), + ], + q(0039) => [ + q(Canada), + ], + q(0040) => [ + q(Cape Verde), + q(Republic of Cape Verde), + ], + q(0041) => [ + q(Cayman Islands), + ], + q(0042) => [ + q(Central African Republic), + ], + q(0043) => [ + q(Chad), + q(Republic of Chad), + ], + q(0044) => [ + q(Chile), + q(Republic of Chile), + ], + q(0045) => [ + q(China), + q(People's Republic of China), + ], + q(0046) => [ + q(Christmas Island), + q(Territory of Christmas Island), + ], + q(0047) => [ + q(Cocos (Keeling) Islands), + q(Territory of Cocos (Keeling) Islands), + q(Keeling Islands), + q(Cocos Islands), + ], + q(0048) => [ + q(Colombia), + q(Republic of Colombia), + ], + q(0049) => [ + q(Comoros), + q(Federal Islamic Republic of the Comoros), + ], + q(0050) => [ + q(Congo), + q(Congo (Brazzaville)), + q(Republic of the Congo), + q(Congo, Republic of the), + q(The Republic of the Congo), + ], + q(0051) => [ + q(Congo, The Democratic Republic of the), + q(Democratic Republic of the Congo), + q(Congo (Kinshasa)), + q(Congo, Democratic Republic of the), + q(The Democratic Republic of the Congo), + ], + q(0052) => [ + q(Cook Islands), + ], + q(0053) => [ + q(Costa Rica), + q(Republic of Costa Rica), + ], + q(0054) => [ + q(Cote d'Ivoire), + q(Republic of Cote D'Ivoire), + ], + q(0055) => [ + q(Croatia), + q(Republic of Croatia), + ], + q(0056) => [ + q(Cuba), + q(Republic of Cuba), + ], + q(0057) => [ + q(Cyprus), + q(Republic of Cyprus), + ], + q(0058) => [ + q(Czech Republic), + ], + q(0059) => [ + q(Denmark), + q(Kingdom of Denmark), + ], + q(0060) => [ + q(Djibouti), + q(Republic of Djibouti), + ], + q(0061) => [ + q(Dominica), + q(Commonwealth of Dominica), + ], + q(0062) => [ + q(Dominican Republic), + ], + q(0063) => [ + q(Ecuador), + q(Republic of Ecuador), + ], + q(0064) => [ + q(Egypt), + q(Arab Republic of Egypt), + ], + q(0065) => [ + q(El Salvador), + q(Republic of El Salvador), + ], + q(0066) => [ + q(Equatorial Guinea), + q(Republic of Equatorial Guinea), + ], + q(0067) => [ + q(Eritrea), + q(State of Eritrea), + ], + q(0068) => [ + q(Estonia), + q(Republic of Estonia), + ], + q(0069) => [ + q(Ethiopia), + q(Federal Democratic Republic of Ethiopia), + ], + q(0070) => [ + q(Falkland Islands (Malvinas)), + q(Falkland Islands (Islas Malvinas)), + ], + q(0071) => [ + q(Faroe Islands), + q(Faeroe Islands), + ], + q(0072) => [ + q(Fiji), + q(Republic of the Fiji Islands), + ], + q(0073) => [ + q(Finland), + q(Republic of Finland), + ], + q(0074) => [ + q(France), + q(French Republic), + ], + q(0075) => [ + q(French Guiana), + q(Department of Guiana), + ], + q(0076) => [ + q(French Polynesia), + q(Territory of French Polynesia), + ], + q(0077) => [ + q(French Southern Territories), + q(French Southern and Antarctic Lands), + q(Territory of the French Southern and Antarctic Lands), + ], + q(0078) => [ + q(Gabon), + q(Gabonese Republic), + ], + q(0079) => [ + q(Gambia), + q(Gambia, The), + q(Republic of the Gambia), + ], + q(0080) => [ + q(Georgia), + ], + q(0081) => [ + q(Germany), + q(Federal Republic of Germany), + ], + q(0082) => [ + q(Ghana), + q(Republic of Ghana), + ], + q(0083) => [ + q(Gibraltar), + ], + q(0084) => [ + q(Greece), + q(Hellenic Republic), + ], + q(0085) => [ + q(Greenland), + ], + q(0086) => [ + q(Grenada), + ], + q(0087) => [ + q(Guadeloupe), + q(Department of Guadeloupe), + ], + q(0088) => [ + q(Guam), + q(Territory of Guam), + ], + q(0089) => [ + q(Guatemala), + q(Republic of Guatemala), + ], + q(0090) => [ + q(Guernsey), + q(Bailiwick of Guernsey), + ], + q(0091) => [ + q(Guinea), + q(Republic of Guinea), + ], + q(0092) => [ + q(Guinea-Bissau), + q(Republic of Guinea-Bissau), + ], + q(0093) => [ + q(Guyana), + q(Co-operative Republic of Guyana), + ], + q(0094) => [ + q(Haiti), + q(Republic of Haiti), + ], + q(0095) => [ + q(Heard Island and Mcdonald Islands), + q(Territory of Heard Island and McDonald Islands), + ], + q(0096) => [ + q(Holy See (Vatican City State)), + q(Holy See), + q(Vatican City), + q(State of the Vatican City), + q(Holy See (Vatican City)), + ], + q(0097) => [ + q(Honduras), + q(Republic of Honduras), + ], + q(0098) => [ + q(Hong Kong), + q(China, Hong Kong Special Administrative Region), + q(Hong Kong S.A.R.), + q(Hong Kong Special Administrative Region), + q(Hong Kong Special Administrative Region of China), + ], + q(0099) => [ + q(Hungary), + q(Republic of Hungary), + ], + q(0100) => [ + q(Iceland), + q(Republic of Iceland), + ], + q(0101) => [ + q(India), + q(Republic of India), + ], + q(0102) => [ + q(Indonesia), + q(Republic of Indonesia), + ], + q(0103) => [ + q(Iran, Islamic Republic of), + q(Iran (Islamic Republic of)), + q(Iran), + q(Islamic Republic of Iran), + ], + q(0104) => [ + q(Iraq), + q(Republic of Iraq), + ], + q(0105) => [ + q(Ireland), + ], + q(0106) => [ + q(Isle of Man), + ], + q(0107) => [ + q(Israel), + q(State of Israel), + ], + q(0108) => [ + q(Italy), + q(Italian Republic), + ], + q(0109) => [ + q(Jamaica), + ], + q(0110) => [ + q(Japan), + ], + q(0111) => [ + q(Jersey), + q(Bailiwick of Jersey), + ], + q(0112) => [ + q(Jordan), + q(Hashemite Kingdom of Jordan), + ], + q(0113) => [ + q(Kazakhstan), + q(Republic of Kazakhstan), + q(Kazakstan), + ], + q(0114) => [ + q(Kenya), + q(Republic of Kenya), + ], + q(0115) => [ + q(Kiribati), + q(Republic of Kiribati), + ], + q(0116) => [ + q(Korea, Democratic People's Republic of), + q(Democratic People's Republic of Korea), + q(Korea, North), + q(North Korea), + ], + q(0117) => [ + q(Korea, Republic of), + q(Republic of Korea), + q(Korea, South), + q(South Korea), + ], + q(0118) => [ + q(Kuwait), + q(State of Kuwait), + ], + q(0119) => [ + q(Kyrgyzstan), + q(Kyrgyz Republic), + ], + q(0120) => [ + q(Lao People's Democratic Republic), + q(Laos), + ], + q(0121) => [ + q(Latvia), + q(Republic of Latvia), + ], + q(0122) => [ + q(Lebanon), + q(Lebanese Republic), + ], + q(0123) => [ + q(Lesotho), + q(Republic of Lesotho), + ], + q(0124) => [ + q(Liberia), + q(Republic of Liberia), + ], + q(0125) => [ + q(Libyan Arab Jamahiriya), + q(Libya), + q(Great Socialist People's Libyan Arab Jamahiriya), + ], + q(0126) => [ + q(Liechtenstein), + q(Principality of Liechtenstein), + ], + q(0127) => [ + q(Lithuania), + q(Republic of Lithuania), + ], + q(0128) => [ + q(Luxembourg), + q(Grand Duchy of Luxembourg), + ], + q(0129) => [ + q(Macao), + q(China, Macao Special Administrative Region), + q(Macau S.A.R), + q(Macau Special Administrative Region), + q(Macau), + q(Macau S.A.R.), + q(Macao Special Administrative Region of China), + ], + q(0130) => [ + q(Macedonia, The Former Yugoslav Republic of), + q(The former Yugoslav Republic of Macedonia), + q(Macedonia), + q(Republic of Macedonia), + q(Macedonia, Former Yugoslav Republic of), + ], + q(0131) => [ + q(Madagascar), + q(Republic of Madagascar), + ], + q(0132) => [ + q(Malawi), + q(Republic of Malawi), + ], + q(0133) => [ + q(Malaysia), + ], + q(0134) => [ + q(Maldives), + q(Republic of Maldives), + ], + q(0135) => [ + q(Mali), + q(Republic of Mali), + ], + q(0136) => [ + q(Malta), + q(Republic of Malta), + ], + q(0137) => [ + q(Marshall Islands), + q(Republic of the Marshall Islands), + ], + q(0138) => [ + q(Martinique), + q(Department of Martinique), + ], + q(0139) => [ + q(Mauritania), + q(Islamic Republic of Mauritania), + ], + q(0140) => [ + q(Mauritius), + q(Republic of Mauritius), + ], + q(0141) => [ + q(Mayotte), + q(Territorial Collectivity of Mayotte), + ], + q(0142) => [ + q(Mexico), + q(United Mexican States), + ], + q(0143) => [ + q(Micronesia, Federated States of), + q(Micronesia (Federated States of)), + q(Federated States of Micronesia), + ], + q(0144) => [ + q(Moldova, Republic of), + q(Republic of Moldova), + q(Moldova), + ], + q(0145) => [ + q(Monaco), + q(Principality of Monaco), + ], + q(0146) => [ + q(Mongolia), + ], + q(0147) => [ + q(Montenegro), + ], + q(0148) => [ + q(Montserrat), + ], + q(0149) => [ + q(Morocco), + q(Kingdom of Morocco), + ], + q(0150) => [ + q(Mozambique), + q(Republic of Mozambique), + ], + q(0151) => [ + q(Myanmar), + q(Burma), + q(Union of Burma), + ], + q(0152) => [ + q(Namibia), + q(Republic of Namibia), + ], + q(0153) => [ + q(Nauru), + q(Republic of Nauru), + ], + q(0154) => [ + q(Nepal), + q(Kingdom of Nepal), + ], + q(0155) => [ + q(Netherlands), + q(Kingdom of the Netherlands), + ], + q(0156) => [ + q(Netherlands Antilles), + ], + q(0157) => [ + q(New Caledonia), + q(Territory of New Caledonia and Dependencies), + ], + q(0158) => [ + q(New Zealand), + ], + q(0159) => [ + q(Nicaragua), + q(Republic of Nicaragua), + ], + q(0160) => [ + q(Niger), + q(Republic of Niger), + ], + q(0161) => [ + q(Nigeria), + q(Federal Republic of Nigeria), + ], + q(0162) => [ + q(Niue), + ], + q(0163) => [ + q(Norfolk Island), + q(Territory of Norfolk Island), + ], + q(0164) => [ + q(Northern Mariana Islands), + q(Commonwealth of the Northern Mariana Islands), + ], + q(0165) => [ + q(Norway), + q(Kingdom of Norway), + ], + q(0166) => [ + q(Oman), + q(Sultanate of Oman), + ], + q(0167) => [ + q(Pakistan), + q(Islamic Republic of Pakistan), + ], + q(0168) => [ + q(Palau), + q(Republic of Palau), + ], + q(0169) => [ + q(Palestinian Territory, Occupied), + q(Occupied Palestinian Territory), + ], + q(0170) => [ + q(Panama), + q(Republic of Panama), + ], + q(0171) => [ + q(Papua New Guinea), + q(Independent State of Papua New Guinea), + ], + q(0172) => [ + q(Paraguay), + q(Republic of Paraguay), + ], + q(0173) => [ + q(Peru), + q(Republic of Peru), + ], + q(0174) => [ + q(Philippines), + q(Republic of the Philippines), + ], + q(0175) => [ + q(Pitcairn), + q(Pitcairn Islands), + q(Pitcairn, Henderson, Ducie and Oeno Islands), + q(Pitcairn Island), + ], + q(0176) => [ + q(Poland), + q(Republic of Poland), + ], + q(0177) => [ + q(Portugal), + q(Portuguese Republic), + ], + q(0178) => [ + q(Puerto Rico), + q(Commonwealth of Puerto Rico), + ], + q(0179) => [ + q(Qatar), + q(State of Qatar), + ], + q(0180) => [ + q(Reunion), + q(Department of Reunion), + ], + q(0181) => [ + q(Romania), + ], + q(0182) => [ + q(Russian Federation), + q(Russia), + ], + q(0183) => [ + q(Rwanda), + q(Rwandese Republic), + ], + q(0184) => [ + q(Saint Barthelemy), + q(Saint-Barthelemy), + ], + q(0185) => [ + q(Saint Helena, Ascension and Tristan da Cunha), + q(Saint Helena), + ], + q(0186) => [ + q(Saint Kitts and Nevis), + q(Federation of Saint Kitts and Nevis), + ], + q(0187) => [ + q(Saint Lucia), + ], + q(0188) => [ + q(Saint Martin), + q(Saint-Martin (French part)), + ], + q(0189) => [ + q(Saint Pierre and Miquelon), + q(Territorial Collectivity of Saint Pierre and Miquelon), + ], + q(0190) => [ + q(Saint Vincent and the Grenadines), + ], + q(0191) => [ + q(Samoa), + q(Independent State of Samoa), + ], + q(0192) => [ + q(San Marino), + q(Republic of San Marino), + ], + q(0193) => [ + q(Sao Tome and Principe), + q(Democratic Republic of Sao Tome and Principe), + ], + q(0194) => [ + q(Saudi Arabia), + q(Kingdom of Saudi Arabia), + ], + q(0195) => [ + q(Senegal), + q(Republic of Senegal), + ], + q(0196) => [ + q(Serbia), + ], + q(0197) => [ + q(Seychelles), + q(Republic of Seychelles), + ], + q(0198) => [ + q(Sierra Leone), + q(Republic of Sierra Leone), + ], + q(0199) => [ + q(Singapore), + q(Republic of Singapore), + ], + q(0200) => [ + q(Slovakia), + q(Slovak Republic), + ], + q(0201) => [ + q(Slovenia), + q(Republic of Slovenia), + ], + q(0202) => [ + q(Solomon Islands), + ], + q(0203) => [ + q(Somalia), + ], + q(0204) => [ + q(South Africa), + q(Republic of South Africa), + ], + q(0205) => [ + q(South Georgia and the South Sandwich Islands), + q(South Georgia and the Islands), + ], + q(0206) => [ + q(Spain), + q(Kingdom of Spain), + ], + q(0207) => [ + q(Sri Lanka), + q(Democratic Socialist Republic of Sri Lanka), + ], + q(0208) => [ + q(Sudan), + q(Republic of the Sudan), + ], + q(0209) => [ + q(Suriname), + q(Republic of Suriname), + ], + q(0210) => [ + q(Svalbard and Jan Mayen), + q(Svalbard and Jan Mayen Islands), + ], + q(0211) => [ + q(Swaziland), + q(Kingdom of Swaziland), + ], + q(0212) => [ + q(Sweden), + q(Kingdom of Sweden), + ], + q(0213) => [ + q(Switzerland), + q(Swiss Confederation), + ], + q(0214) => [ + q(Syrian Arab Republic), + q(Syria), + q(Golan Heights (Israeli-occupied)), + ], + q(0215) => [ + q(Taiwan, Province of China), + q(Taiwan), + ], + q(0216) => [ + q(Tajikistan), + q(Republic of Tajikistan), + ], + q(0217) => [ + q(Tanzania, United Republic of), + q(United Republic of Tanzania), + q(Tanzania), + ], + q(0218) => [ + q(Thailand), + q(Kingdom of Thailand), + ], + q(0219) => [ + q(Timor-Leste), + q(East Timor), + ], + q(0220) => [ + q(Togo), + q(Togolese Republic), + ], + q(0221) => [ + q(Tokelau), + ], + q(0222) => [ + q(Tonga), + q(Kingdom of Tonga), + ], + q(0223) => [ + q(Trinidad and Tobago), + q(Republic of Trinidad and Tobago), + ], + q(0224) => [ + q(Tunisia), + q(Republic of Tunisia), + ], + q(0225) => [ + q(Turkey), + q(Republic of Turkey), + ], + q(0226) => [ + q(Turkmenistan), + ], + q(0227) => [ + q(Turks and Caicos Islands), + ], + q(0228) => [ + q(Tuvalu), + ], + q(0229) => [ + q(Uganda), + ], + q(0230) => [ + q(Ukraine), + ], + q(0231) => [ + q(United Arab Emirates), + ], + q(0232) => [ + q(United Kingdom), + q(United Kingdom of Great Britain and Northern Ireland), + q(Great Britain), + q(UK), + ], + q(0233) => [ + q(United States), + q(United States of America), + q(US), + q(USA), + ], + q(0234) => [ + q(United States Minor Outlying Islands), + ], + q(0235) => [ + q(Uruguay), + q(Oriental Republic of Uruguay), + ], + q(0236) => [ + q(Uzbekistan), + q(Republic of Uzbekistan), + ], + q(0237) => [ + q(Vanuatu), + q(Republic of Vanuatu), + ], + q(0238) => [ + q(Venezuela, Bolivarian Republic of), + q(Venezuela (Bolivarian Republic of)), + q(Venezuela), + q(Bolivarian Republic of Venezuela), + ], + q(0239) => [ + q(Viet Nam), + q(Vietnam), + q(Socialist Republic of Vietnam), + ], + q(0240) => [ + q(Virgin Islands, British), + q(British Virgin Islands), + q(Virgin Islands (UK)), + ], + q(0241) => [ + q(Virgin Islands, U.S.), + q(United States Virgin Islands), + q(Virgin Islands), + q(Virgin Islands of the United States), + q(Virgin Islands (US)), + ], + q(0242) => [ + q(Wallis and Futuna), + q(Wallis and Futuna Islands), + q(Territory of the Wallis and Futuna Islands), + ], + q(0243) => [ + q(Western Sahara), + ], + q(0244) => [ + q(Yemen), + q(Republic of Yemen), + ], + q(0245) => [ + q(Zambia), + q(Republic of Zambia), + ], + q(0246) => [ + q(Zimbabwe), + q(Republic of Zimbabwe), + ], + q(0247) => [ + q(Channel Islands), + ], + q(0248) => [ + q(Serbia and Montenegro), + ], + q(0249) => [ + q(Ashmore and Cartier Islands), + q(Territory of Ashmore and Cartier Islands), + ], + q(0250) => [ + q(Baker Island), + ], + q(0251) => [ + q(Bassas da India), + ], + q(0252) => [ + q(Clipperton Island), + ], + q(0253) => [ + q(Coral Sea Islands), + q(Coral Sea Islands Territory), + ], + q(0254) => [ + q(Europa Island), + ], + q(0255) => [ + q(Gaza Strip), + ], + q(0256) => [ + q(Glorioso Islands), + ], + q(0257) => [ + q(Howland Island), + ], + q(0258) => [ + q(Jan Mayen), + ], + q(0259) => [ + q(Jarvis Island), + ], + q(0260) => [ + q(Johnston Atoll), + ], + q(0261) => [ + q(Juan De Nova Island), + ], + q(0262) => [ + q(Kingman Reef), + ], + q(0263) => [ + q(Midway Islands), + ], + q(0264) => [ + q(Navassa Island), + ], + q(0265) => [ + q(Palmyra Atoll), + ], + q(0266) => [ + q(Paracel Islands), + ], + q(0267) => [ + q(Spratly Islands), + ], + q(0268) => [ + q(Svalbard), + ], + q(0269) => [ + q(Tromelin Island), + ], + q(0270) => [ + q(Wake Atoll), + q(Wake Island), + ], + q(0271) => [ + q(West Bank), + ], + q(0272) => [ + q(Ascension Island), + ], + q(0273) => [ + q(European Union), + ], + q(0274) => [ + q(Soviet Union ), + ], + q(0275) => [ + q(Portuguese Timor ), + ], + q(0276) => [ + q(France, Metropolitan), + ], + q(0277) => [ + q(Kosovo), + ], +}; + +$Locale::Codes::Data{'country'}{'alias2id'} = { + q(afghanistan) => [ + q(0001), + q(0), + ], + q(aland islands) => [ + q(0002), + q(0), + ], + q(albania) => [ + q(0003), + q(0), + ], + q(algeria) => [ + q(0004), + q(0), + ], + q(american samoa) => [ + q(0005), + q(0), + ], + q(andorra) => [ + q(0006), + q(0), + ], + q(angola) => [ + q(0007), + q(0), + ], + q(anguilla) => [ + q(0008), + q(0), + ], + q(antarctica) => [ + q(0009), + q(0), + ], + q(antigua and barbuda) => [ + q(0010), + q(0), + ], + q(arab republic of egypt) => [ + q(0064), + q(1), + ], + q(argentina) => [ + q(0011), + q(0), + ], + q(argentine republic) => [ + q(0011), + q(1), + ], + q(armenia) => [ + q(0012), + q(0), + ], + q(aruba) => [ + q(0013), + q(0), + ], + q(ascension island) => [ + q(0272), + q(0), + ], + q(ashmore and cartier islands) => [ + q(0249), + q(0), + ], + q(australia) => [ + q(0014), + q(0), + ], + q(austria) => [ + q(0015), + q(0), + ], + q(azerbaijan) => [ + q(0016), + q(0), + ], + q(bahamas) => [ + q(0017), + q(0), + ], + q(bahamas, the) => [ + q(0017), + q(1), + ], + q(bahrain) => [ + q(0018), + q(0), + ], + q(bailiwick of guernsey) => [ + q(0090), + q(1), + ], + q(bailiwick of jersey) => [ + q(0111), + q(1), + ], + q(baker island) => [ + q(0250), + q(0), + ], + q(bangladesh) => [ + q(0019), + q(0), + ], + q(barbados) => [ + q(0020), + q(0), + ], + q(bassas da india) => [ + q(0251), + q(0), + ], + q(belarus) => [ + q(0021), + q(0), + ], + q(belgium) => [ + q(0022), + q(0), + ], + q(belize) => [ + q(0023), + q(0), + ], + q(benin) => [ + q(0024), + q(0), + ], + q(bermuda) => [ + q(0025), + q(0), + ], + q(bhutan) => [ + q(0026), + q(0), + ], + q(bolivarian republic of venezuela) => [ + q(0238), + q(3), + ], + q(bolivia) => [ + q(0027), + q(2), + ], + q(bolivia (plurinational state of)) => [ + q(0027), + q(1), + ], + q(bolivia, plurinational state of) => [ + q(0027), + q(0), + ], + q(bosnia and herzegovina) => [ + q(0028), + q(0), + ], + q(botswana) => [ + q(0029), + q(0), + ], + q(bouvet island) => [ + q(0030), + q(0), + ], + q(brazil) => [ + q(0031), + q(0), + ], + q(british indian ocean territory) => [ + q(0032), + q(0), + ], + q(british virgin islands) => [ + q(0240), + q(1), + ], + q(brunei) => [ + q(0033), + q(1), + ], + q(brunei darussalam) => [ + q(0033), + q(0), + ], + q(bulgaria) => [ + q(0034), + q(0), + ], + q(burkina faso) => [ + q(0035), + q(0), + ], + q(burma) => [ + q(0151), + q(1), + ], + q(burundi) => [ + q(0036), + q(0), + ], + q(cambodia) => [ + q(0037), + q(0), + ], + q(cameroon) => [ + q(0038), + q(0), + ], + q(canada) => [ + q(0039), + q(0), + ], + q(cape verde) => [ + q(0040), + q(0), + ], + q(cayman islands) => [ + q(0041), + q(0), + ], + q(central african republic) => [ + q(0042), + q(0), + ], + q(chad) => [ + q(0043), + q(0), + ], + q(channel islands) => [ + q(0247), + q(0), + ], + q(chile) => [ + q(0044), + q(0), + ], + q(china) => [ + q(0045), + q(0), + ], + q(china, hong kong special administrative region) => [ + q(0098), + q(1), + ], + q(china, macao special administrative region) => [ + q(0129), + q(1), + ], + q(christmas island) => [ + q(0046), + q(0), + ], + q(clipperton island) => [ + q(0252), + q(0), + ], + q(co-operative republic of guyana) => [ + q(0093), + q(1), + ], + q(cocos (keeling) islands) => [ + q(0047), + q(0), + ], + q(cocos islands) => [ + q(0047), + q(3), + ], + q(colombia) => [ + q(0048), + q(0), + ], + q(commonwealth of australia) => [ + q(0014), + q(1), + ], + q(commonwealth of dominica) => [ + q(0061), + q(1), + ], + q(commonwealth of puerto rico) => [ + q(0178), + q(1), + ], + q(commonwealth of the bahamas) => [ + q(0017), + q(2), + ], + q(commonwealth of the northern mariana islands) => [ + q(0164), + q(1), + ], + q(comoros) => [ + q(0049), + q(0), + ], + q(congo) => [ + q(0050), + q(0), + ], + q(congo (brazzaville)) => [ + q(0050), + q(1), + ], + q(congo (kinshasa)) => [ + q(0051), + q(2), + ], + q(congo, democratic republic of the) => [ + q(0051), + q(3), + ], + q(congo, republic of the) => [ + q(0050), + q(3), + ], + q(congo, the democratic republic of the) => [ + q(0051), + q(0), + ], + q(cook islands) => [ + q(0052), + q(0), + ], + q(coral sea islands) => [ + q(0253), + q(0), + ], + q(coral sea islands territory) => [ + q(0253), + q(1), + ], + q(costa rica) => [ + q(0053), + q(0), + ], + q(cote d'ivoire) => [ + q(0054), + q(0), + ], + q(croatia) => [ + q(0055), + q(0), + ], + q(cuba) => [ + q(0056), + q(0), + ], + q(cyprus) => [ + q(0057), + q(0), + ], + q(czech republic) => [ + q(0058), + q(0), + ], + q(democratic people's republic of korea) => [ + q(0116), + q(1), + ], + q(democratic republic of sao tome and principe) => [ + q(0193), + q(1), + ], + q(democratic republic of the congo) => [ + q(0051), + q(1), + ], + q(democratic socialist republic of sri lanka) => [ + q(0207), + q(1), + ], + q(denmark) => [ + q(0059), + q(0), + ], + q(department of guadeloupe) => [ + q(0087), + q(1), + ], + q(department of guiana) => [ + q(0075), + q(1), + ], + q(department of martinique) => [ + q(0138), + q(1), + ], + q(department of reunion) => [ + q(0180), + q(1), + ], + q(djibouti) => [ + q(0060), + q(0), + ], + q(dominica) => [ + q(0061), + q(0), + ], + q(dominican republic) => [ + q(0062), + q(0), + ], + q(east timor) => [ + q(0219), + q(1), + ], + q(ecuador) => [ + q(0063), + q(0), + ], + q(egypt) => [ + q(0064), + q(0), + ], + q(el salvador) => [ + q(0065), + q(0), + ], + q(equatorial guinea) => [ + q(0066), + q(0), + ], + q(eritrea) => [ + q(0067), + q(0), + ], + q(estonia) => [ + q(0068), + q(0), + ], + q(ethiopia) => [ + q(0069), + q(0), + ], + q(europa island) => [ + q(0254), + q(0), + ], + q(european union) => [ + q(0273), + q(0), + ], + q(faeroe islands) => [ + q(0071), + q(1), + ], + q(falkland islands (islas malvinas)) => [ + q(0070), + q(1), + ], + q(falkland islands (malvinas)) => [ + q(0070), + q(0), + ], + q(faroe islands) => [ + q(0071), + q(0), + ], + q(federal democratic republic of ethiopia) => [ + q(0069), + q(1), + ], + q(federal islamic republic of the comoros) => [ + q(0049), + q(1), + ], + q(federal republic of germany) => [ + q(0081), + q(1), + ], + q(federal republic of nigeria) => [ + q(0161), + q(1), + ], + q(federated states of micronesia) => [ + q(0143), + q(2), + ], + q(federation of saint kitts and nevis) => [ + q(0186), + q(1), + ], + q(federative republic of brazil) => [ + q(0031), + q(1), + ], + q(fiji) => [ + q(0072), + q(0), + ], + q(finland) => [ + q(0073), + q(0), + ], + q(france) => [ + q(0074), + q(0), + ], + q(france, metropolitan) => [ + q(0276), + q(0), + ], + q(french guiana) => [ + q(0075), + q(0), + ], + q(french polynesia) => [ + q(0076), + q(0), + ], + q(french republic) => [ + q(0074), + q(1), + ], + q(french southern and antarctic lands) => [ + q(0077), + q(1), + ], + q(french southern territories) => [ + q(0077), + q(0), + ], + q(gabon) => [ + q(0078), + q(0), + ], + q(gabonese republic) => [ + q(0078), + q(1), + ], + q(gambia) => [ + q(0079), + q(0), + ], + q(gambia, the) => [ + q(0079), + q(1), + ], + q(gaza strip) => [ + q(0255), + q(0), + ], + q(georgia) => [ + q(0080), + q(0), + ], + q(germany) => [ + q(0081), + q(0), + ], + q(ghana) => [ + q(0082), + q(0), + ], + q(gibraltar) => [ + q(0083), + q(0), + ], + q(glorioso islands) => [ + q(0256), + q(0), + ], + q(golan heights (israeli-occupied)) => [ + q(0214), + q(2), + ], + q(grand duchy of luxembourg) => [ + q(0128), + q(1), + ], + q(great britain) => [ + q(0232), + q(2), + ], + q(great socialist people's libyan arab jamahiriya) => [ + q(0125), + q(2), + ], + q(greece) => [ + q(0084), + q(0), + ], + q(greenland) => [ + q(0085), + q(0), + ], + q(grenada) => [ + q(0086), + q(0), + ], + q(guadeloupe) => [ + q(0087), + q(0), + ], + q(guam) => [ + q(0088), + q(0), + ], + q(guatemala) => [ + q(0089), + q(0), + ], + q(guernsey) => [ + q(0090), + q(0), + ], + q(guinea) => [ + q(0091), + q(0), + ], + q(guinea-bissau) => [ + q(0092), + q(0), + ], + q(guyana) => [ + q(0093), + q(0), + ], + q(haiti) => [ + q(0094), + q(0), + ], + q(hashemite kingdom of jordan) => [ + q(0112), + q(1), + ], + q(heard island and mcdonald islands) => [ + q(0095), + q(0), + ], + q(hellenic republic) => [ + q(0084), + q(1), + ], + q(holy see) => [ + q(0096), + q(1), + ], + q(holy see (vatican city state)) => [ + q(0096), + q(0), + ], + q(holy see (vatican city)) => [ + q(0096), + q(4), + ], + q(honduras) => [ + q(0097), + q(0), + ], + q(hong kong) => [ + q(0098), + q(0), + ], + q(hong kong s.a.r.) => [ + q(0098), + q(2), + ], + q(hong kong special administrative region) => [ + q(0098), + q(3), + ], + q(hong kong special administrative region of china) => [ + q(0098), + q(4), + ], + q(howland island) => [ + q(0257), + q(0), + ], + q(hungary) => [ + q(0099), + q(0), + ], + q(iceland) => [ + q(0100), + q(0), + ], + q(independent state of papua new guinea) => [ + q(0171), + q(1), + ], + q(independent state of samoa) => [ + q(0191), + q(1), + ], + q(india) => [ + q(0101), + q(0), + ], + q(indonesia) => [ + q(0102), + q(0), + ], + q(iran) => [ + q(0103), + q(2), + ], + q(iran (islamic republic of)) => [ + q(0103), + q(1), + ], + q(iran, islamic republic of) => [ + q(0103), + q(0), + ], + q(iraq) => [ + q(0104), + q(0), + ], + q(ireland) => [ + q(0105), + q(0), + ], + q(islamic republic of iran) => [ + q(0103), + q(3), + ], + q(islamic republic of mauritania) => [ + q(0139), + q(1), + ], + q(islamic republic of pakistan) => [ + q(0167), + q(1), + ], + q(islamic state of afghanistan) => [ + q(0001), + q(1), + ], + q(isle of man) => [ + q(0106), + q(0), + ], + q(israel) => [ + q(0107), + q(0), + ], + q(italian republic) => [ + q(0108), + q(1), + ], + q(italy) => [ + q(0108), + q(0), + ], + q(jamaica) => [ + q(0109), + q(0), + ], + q(jan mayen) => [ + q(0258), + q(0), + ], + q(japan) => [ + q(0110), + q(0), + ], + q(jarvis island) => [ + q(0259), + q(0), + ], + q(jersey) => [ + q(0111), + q(0), + ], + q(johnston atoll) => [ + q(0260), + q(0), + ], + q(jordan) => [ + q(0112), + q(0), + ], + q(juan de nova island) => [ + q(0261), + q(0), + ], + q(kazakhstan) => [ + q(0113), + q(0), + ], + q(kazakstan) => [ + q(0113), + q(2), + ], + q(keeling islands) => [ + q(0047), + q(2), + ], + q(kenya) => [ + q(0114), + q(0), + ], + q(kingdom of belgium) => [ + q(0022), + q(1), + ], + q(kingdom of bhutan) => [ + q(0026), + q(1), + ], + q(kingdom of cambodia) => [ + q(0037), + q(1), + ], + q(kingdom of denmark) => [ + q(0059), + q(1), + ], + q(kingdom of morocco) => [ + q(0149), + q(1), + ], + q(kingdom of nepal) => [ + q(0154), + q(1), + ], + q(kingdom of norway) => [ + q(0165), + q(1), + ], + q(kingdom of saudi arabia) => [ + q(0194), + q(1), + ], + q(kingdom of spain) => [ + q(0206), + q(1), + ], + q(kingdom of swaziland) => [ + q(0211), + q(1), + ], + q(kingdom of sweden) => [ + q(0212), + q(1), + ], + q(kingdom of thailand) => [ + q(0218), + q(1), + ], + q(kingdom of the netherlands) => [ + q(0155), + q(1), + ], + q(kingdom of tonga) => [ + q(0222), + q(1), + ], + q(kingman reef) => [ + q(0262), + q(0), + ], + q(kiribati) => [ + q(0115), + q(0), + ], + q(korea, democratic people's republic of) => [ + q(0116), + q(0), + ], + q(korea, north) => [ + q(0116), + q(2), + ], + q(korea, republic of) => [ + q(0117), + q(0), + ], + q(korea, south) => [ + q(0117), + q(2), + ], + q(kosovo) => [ + q(0277), + q(0), + ], + q(kuwait) => [ + q(0118), + q(0), + ], + q(kyrgyz republic) => [ + q(0119), + q(1), + ], + q(kyrgyzstan) => [ + q(0119), + q(0), + ], + q(lao people's democratic republic) => [ + q(0120), + q(0), + ], + q(laos) => [ + q(0120), + q(1), + ], + q(latvia) => [ + q(0121), + q(0), + ], + q(lebanese republic) => [ + q(0122), + q(1), + ], + q(lebanon) => [ + q(0122), + q(0), + ], + q(lesotho) => [ + q(0123), + q(0), + ], + q(liberia) => [ + q(0124), + q(0), + ], + q(libya) => [ + q(0125), + q(1), + ], + q(libyan arab jamahiriya) => [ + q(0125), + q(0), + ], + q(liechtenstein) => [ + q(0126), + q(0), + ], + q(lithuania) => [ + q(0127), + q(0), + ], + q(luxembourg) => [ + q(0128), + q(0), + ], + q(macao) => [ + q(0129), + q(0), + ], + q(macao special administrative region of china) => [ + q(0129), + q(6), + ], + q(macau) => [ + q(0129), + q(4), + ], + q(macau s.a.r) => [ + q(0129), + q(2), + ], + q(macau s.a.r.) => [ + q(0129), + q(5), + ], + q(macau special administrative region) => [ + q(0129), + q(3), + ], + q(macedonia) => [ + q(0130), + q(2), + ], + q(macedonia, former yugoslav republic of) => [ + q(0130), + q(4), + ], + q(macedonia, the former yugoslav republic of) => [ + q(0130), + q(0), + ], + q(madagascar) => [ + q(0131), + q(0), + ], + q(malawi) => [ + q(0132), + q(0), + ], + q(malaysia) => [ + q(0133), + q(0), + ], + q(maldives) => [ + q(0134), + q(0), + ], + q(mali) => [ + q(0135), + q(0), + ], + q(malta) => [ + q(0136), + q(0), + ], + q(marshall islands) => [ + q(0137), + q(0), + ], + q(martinique) => [ + q(0138), + q(0), + ], + q(mauritania) => [ + q(0139), + q(0), + ], + q(mauritius) => [ + q(0140), + q(0), + ], + q(mayotte) => [ + q(0141), + q(0), + ], + q(mexico) => [ + q(0142), + q(0), + ], + q(micronesia (federated states of)) => [ + q(0143), + q(1), + ], + q(micronesia, federated states of) => [ + q(0143), + q(0), + ], + q(midway islands) => [ + q(0263), + q(0), + ], + q(moldova) => [ + q(0144), + q(2), + ], + q(moldova, republic of) => [ + q(0144), + q(0), + ], + q(monaco) => [ + q(0145), + q(0), + ], + q(mongolia) => [ + q(0146), + q(0), + ], + q(montenegro) => [ + q(0147), + q(0), + ], + q(montserrat) => [ + q(0148), + q(0), + ], + q(morocco) => [ + q(0149), + q(0), + ], + q(mozambique) => [ + q(0150), + q(0), + ], + q(myanmar) => [ + q(0151), + q(0), + ], + q(namibia) => [ + q(0152), + q(0), + ], + q(nauru) => [ + q(0153), + q(0), + ], + q(navassa island) => [ + q(0264), + q(0), + ], + q(negara brunei darussalam) => [ + q(0033), + q(2), + ], + q(nepal) => [ + q(0154), + q(0), + ], + q(netherlands) => [ + q(0155), + q(0), + ], + q(netherlands antilles) => [ + q(0156), + q(0), + ], + q(new caledonia) => [ + q(0157), + q(0), + ], + q(new zealand) => [ + q(0158), + q(0), + ], + q(nicaragua) => [ + q(0159), + q(0), + ], + q(niger) => [ + q(0160), + q(0), + ], + q(nigeria) => [ + q(0161), + q(0), + ], + q(niue) => [ + q(0162), + q(0), + ], + q(norfolk island) => [ + q(0163), + q(0), + ], + q(north korea) => [ + q(0116), + q(3), + ], + q(northern mariana islands) => [ + q(0164), + q(0), + ], + q(norway) => [ + q(0165), + q(0), + ], + q(occupied palestinian territory) => [ + q(0169), + q(1), + ], + q(oman) => [ + q(0166), + q(0), + ], + q(oriental republic of uruguay) => [ + q(0235), + q(1), + ], + q(pakistan) => [ + q(0167), + q(0), + ], + q(palau) => [ + q(0168), + q(0), + ], + q(palestinian territory, occupied) => [ + q(0169), + q(0), + ], + q(palmyra atoll) => [ + q(0265), + q(0), + ], + q(panama) => [ + q(0170), + q(0), + ], + q(papua new guinea) => [ + q(0171), + q(0), + ], + q(paracel islands) => [ + q(0266), + q(0), + ], + q(paraguay) => [ + q(0172), + q(0), + ], + q(people's democratic republic of algeria) => [ + q(0004), + q(1), + ], + q(people's republic of bangladesh) => [ + q(0019), + q(1), + ], + q(people's republic of china) => [ + q(0045), + q(1), + ], + q(peru) => [ + q(0173), + q(0), + ], + q(philippines) => [ + q(0174), + q(0), + ], + q(pitcairn) => [ + q(0175), + q(0), + ], + q(pitcairn island) => [ + q(0175), + q(3), + ], + q(pitcairn islands) => [ + q(0175), + q(1), + ], + q(pitcairn, henderson, ducie and oeno islands) => [ + q(0175), + q(2), + ], + q(poland) => [ + q(0176), + q(0), + ], + q(portugal) => [ + q(0177), + q(0), + ], + q(portuguese republic) => [ + q(0177), + q(1), + ], + q(portuguese timor ) => [ + q(0275), + q(0), + ], + q(principality of andorra) => [ + q(0006), + q(1), + ], + q(principality of liechtenstein) => [ + q(0126), + q(1), + ], + q(principality of monaco) => [ + q(0145), + q(1), + ], + q(puerto rico) => [ + q(0178), + q(0), + ], + q(qatar) => [ + q(0179), + q(0), + ], + q(republic of albania) => [ + q(0003), + q(1), + ], + q(republic of angola) => [ + q(0007), + q(1), + ], + q(republic of armenia) => [ + q(0012), + q(1), + ], + q(republic of austria) => [ + q(0015), + q(1), + ], + q(republic of azerbaijan) => [ + q(0016), + q(1), + ], + q(republic of belarus) => [ + q(0021), + q(1), + ], + q(republic of benin) => [ + q(0024), + q(1), + ], + q(republic of bolivia) => [ + q(0027), + q(3), + ], + q(republic of botswana) => [ + q(0029), + q(1), + ], + q(republic of burundi) => [ + q(0036), + q(1), + ], + q(republic of cameroon) => [ + q(0038), + q(1), + ], + q(republic of cape verde) => [ + q(0040), + q(1), + ], + q(republic of chad) => [ + q(0043), + q(1), + ], + q(republic of chile) => [ + q(0044), + q(1), + ], + q(republic of colombia) => [ + q(0048), + q(1), + ], + q(republic of costa rica) => [ + q(0053), + q(1), + ], + q(republic of cote d'ivoire) => [ + q(0054), + q(1), + ], + q(republic of croatia) => [ + q(0055), + q(1), + ], + q(republic of cuba) => [ + q(0056), + q(1), + ], + q(republic of cyprus) => [ + q(0057), + q(1), + ], + q(republic of djibouti) => [ + q(0060), + q(1), + ], + q(republic of ecuador) => [ + q(0063), + q(1), + ], + q(republic of el salvador) => [ + q(0065), + q(1), + ], + q(republic of equatorial guinea) => [ + q(0066), + q(1), + ], + q(republic of estonia) => [ + q(0068), + q(1), + ], + q(republic of finland) => [ + q(0073), + q(1), + ], + q(republic of ghana) => [ + q(0082), + q(1), + ], + q(republic of guatemala) => [ + q(0089), + q(1), + ], + q(republic of guinea) => [ + q(0091), + q(1), + ], + q(republic of guinea-bissau) => [ + q(0092), + q(1), + ], + q(republic of haiti) => [ + q(0094), + q(1), + ], + q(republic of honduras) => [ + q(0097), + q(1), + ], + q(republic of hungary) => [ + q(0099), + q(1), + ], + q(republic of iceland) => [ + q(0100), + q(1), + ], + q(republic of india) => [ + q(0101), + q(1), + ], + q(republic of indonesia) => [ + q(0102), + q(1), + ], + q(republic of iraq) => [ + q(0104), + q(1), + ], + q(republic of kazakhstan) => [ + q(0113), + q(1), + ], + q(republic of kenya) => [ + q(0114), + q(1), + ], + q(republic of kiribati) => [ + q(0115), + q(1), + ], + q(republic of korea) => [ + q(0117), + q(1), + ], + q(republic of latvia) => [ + q(0121), + q(1), + ], + q(republic of lesotho) => [ + q(0123), + q(1), + ], + q(republic of liberia) => [ + q(0124), + q(1), + ], + q(republic of lithuania) => [ + q(0127), + q(1), + ], + q(republic of macedonia) => [ + q(0130), + q(3), + ], + q(republic of madagascar) => [ + q(0131), + q(1), + ], + q(republic of malawi) => [ + q(0132), + q(1), + ], + q(republic of maldives) => [ + q(0134), + q(1), + ], + q(republic of mali) => [ + q(0135), + q(1), + ], + q(republic of malta) => [ + q(0136), + q(1), + ], + q(republic of mauritius) => [ + q(0140), + q(1), + ], + q(republic of moldova) => [ + q(0144), + q(1), + ], + q(republic of mozambique) => [ + q(0150), + q(1), + ], + q(republic of namibia) => [ + q(0152), + q(1), + ], + q(republic of nauru) => [ + q(0153), + q(1), + ], + q(republic of nicaragua) => [ + q(0159), + q(1), + ], + q(republic of niger) => [ + q(0160), + q(1), + ], + q(republic of palau) => [ + q(0168), + q(1), + ], + q(republic of panama) => [ + q(0170), + q(1), + ], + q(republic of paraguay) => [ + q(0172), + q(1), + ], + q(republic of peru) => [ + q(0173), + q(1), + ], + q(republic of poland) => [ + q(0176), + q(1), + ], + q(republic of san marino) => [ + q(0192), + q(1), + ], + q(republic of senegal) => [ + q(0195), + q(1), + ], + q(republic of seychelles) => [ + q(0197), + q(1), + ], + q(republic of sierra leone) => [ + q(0198), + q(1), + ], + q(republic of singapore) => [ + q(0199), + q(1), + ], + q(republic of slovenia) => [ + q(0201), + q(1), + ], + q(republic of south africa) => [ + q(0204), + q(1), + ], + q(republic of suriname) => [ + q(0209), + q(1), + ], + q(republic of tajikistan) => [ + q(0216), + q(1), + ], + q(republic of the congo) => [ + q(0050), + q(2), + ], + q(republic of the fiji islands) => [ + q(0072), + q(1), + ], + q(republic of the gambia) => [ + q(0079), + q(2), + ], + q(republic of the marshall islands) => [ + q(0137), + q(1), + ], + q(republic of the philippines) => [ + q(0174), + q(1), + ], + q(republic of the sudan) => [ + q(0208), + q(1), + ], + q(republic of trinidad and tobago) => [ + q(0223), + q(1), + ], + q(republic of tunisia) => [ + q(0224), + q(1), + ], + q(republic of turkey) => [ + q(0225), + q(1), + ], + q(republic of uzbekistan) => [ + q(0236), + q(1), + ], + q(republic of vanuatu) => [ + q(0237), + q(1), + ], + q(republic of yemen) => [ + q(0244), + q(1), + ], + q(republic of zambia) => [ + q(0245), + q(1), + ], + q(republic of zimbabwe) => [ + q(0246), + q(1), + ], + q(reunion) => [ + q(0180), + q(0), + ], + q(romania) => [ + q(0181), + q(0), + ], + q(russia) => [ + q(0182), + q(1), + ], + q(russian federation) => [ + q(0182), + q(0), + ], + q(rwanda) => [ + q(0183), + q(0), + ], + q(rwandese republic) => [ + q(0183), + q(1), + ], + q(saint barthelemy) => [ + q(0184), + q(0), + ], + q(saint helena) => [ + q(0185), + q(1), + ], + q(saint helena, ascension and tristan da cunha) => [ + q(0185), + q(0), + ], + q(saint kitts and nevis) => [ + q(0186), + q(0), + ], + q(saint lucia) => [ + q(0187), + q(0), + ], + q(saint martin) => [ + q(0188), + q(0), + ], + q(saint pierre and miquelon) => [ + q(0189), + q(0), + ], + q(saint vincent and the grenadines) => [ + q(0190), + q(0), + ], + q(saint-barthelemy) => [ + q(0184), + q(1), + ], + q(saint-martin (french part)) => [ + q(0188), + q(1), + ], + q(samoa) => [ + q(0191), + q(0), + ], + q(san marino) => [ + q(0192), + q(0), + ], + q(sao tome and principe) => [ + q(0193), + q(0), + ], + q(saudi arabia) => [ + q(0194), + q(0), + ], + q(senegal) => [ + q(0195), + q(0), + ], + q(serbia) => [ + q(0196), + q(0), + ], + q(serbia and montenegro) => [ + q(0248), + q(0), + ], + q(seychelles) => [ + q(0197), + q(0), + ], + q(sierra leone) => [ + q(0198), + q(0), + ], + q(singapore) => [ + q(0199), + q(0), + ], + q(slovak republic) => [ + q(0200), + q(1), + ], + q(slovakia) => [ + q(0200), + q(0), + ], + q(slovenia) => [ + q(0201), + q(0), + ], + q(socialist republic of vietnam) => [ + q(0239), + q(2), + ], + q(solomon islands) => [ + q(0202), + q(0), + ], + q(somalia) => [ + q(0203), + q(0), + ], + q(south africa) => [ + q(0204), + q(0), + ], + q(south georgia and the islands) => [ + q(0205), + q(1), + ], + q(south georgia and the south sandwich islands) => [ + q(0205), + q(0), + ], + q(south korea) => [ + q(0117), + q(3), + ], + q(soviet union ) => [ + q(0274), + q(0), + ], + q(spain) => [ + q(0206), + q(0), + ], + q(spratly islands) => [ + q(0267), + q(0), + ], + q(sri lanka) => [ + q(0207), + q(0), + ], + q(state of bahrain) => [ + q(0018), + q(1), + ], + q(state of eritrea) => [ + q(0067), + q(1), + ], + q(state of israel) => [ + q(0107), + q(1), + ], + q(state of kuwait) => [ + q(0118), + q(1), + ], + q(state of qatar) => [ + q(0179), + q(1), + ], + q(state of the vatican city) => [ + q(0096), + q(3), + ], + q(sudan) => [ + q(0208), + q(0), + ], + q(sultanate of oman) => [ + q(0166), + q(1), + ], + q(suriname) => [ + q(0209), + q(0), + ], + q(svalbard) => [ + q(0268), + q(0), + ], + q(svalbard and jan mayen) => [ + q(0210), + q(0), + ], + q(svalbard and jan mayen islands) => [ + q(0210), + q(1), + ], + q(swaziland) => [ + q(0211), + q(0), + ], + q(sweden) => [ + q(0212), + q(0), + ], + q(swiss confederation) => [ + q(0213), + q(1), + ], + q(switzerland) => [ + q(0213), + q(0), + ], + q(syria) => [ + q(0214), + q(1), + ], + q(syrian arab republic) => [ + q(0214), + q(0), + ], + q(taiwan) => [ + q(0215), + q(1), + ], + q(taiwan, province of china) => [ + q(0215), + q(0), + ], + q(tajikistan) => [ + q(0216), + q(0), + ], + q(tanzania) => [ + q(0217), + q(2), + ], + q(tanzania, united republic of) => [ + q(0217), + q(0), + ], + q(territorial collectivity of mayotte) => [ + q(0141), + q(1), + ], + q(territorial collectivity of saint pierre and miquelon) => [ + q(0189), + q(1), + ], + q(territory of american samoa) => [ + q(0005), + q(1), + ], + q(territory of ashmore and cartier islands) => [ + q(0249), + q(1), + ], + q(territory of christmas island) => [ + q(0046), + q(1), + ], + q(territory of cocos (keeling) islands) => [ + q(0047), + q(1), + ], + q(territory of french polynesia) => [ + q(0076), + q(1), + ], + q(territory of guam) => [ + q(0088), + q(1), + ], + q(territory of heard island and mcdonald islands) => [ + q(0095), + q(1), + ], + q(territory of new caledonia and dependencies) => [ + q(0157), + q(1), + ], + q(territory of norfolk island) => [ + q(0163), + q(1), + ], + q(territory of the french southern and antarctic lands) => [ + q(0077), + q(2), + ], + q(territory of the wallis and futuna islands) => [ + q(0242), + q(2), + ], + q(thailand) => [ + q(0218), + q(0), + ], + q(the bahamas) => [ + q(0017), + q(3), + ], + q(the democratic republic of the congo) => [ + q(0051), + q(4), + ], + q(the former yugoslav republic of macedonia) => [ + q(0130), + q(1), + ], + q(the republic of the congo) => [ + q(0050), + q(4), + ], + q(timor-leste) => [ + q(0219), + q(0), + ], + q(togo) => [ + q(0220), + q(0), + ], + q(togolese republic) => [ + q(0220), + q(1), + ], + q(tokelau) => [ + q(0221), + q(0), + ], + q(tonga) => [ + q(0222), + q(0), + ], + q(trinidad and tobago) => [ + q(0223), + q(0), + ], + q(tromelin island) => [ + q(0269), + q(0), + ], + q(tunisia) => [ + q(0224), + q(0), + ], + q(turkey) => [ + q(0225), + q(0), + ], + q(turkmenistan) => [ + q(0226), + q(0), + ], + q(turks and caicos islands) => [ + q(0227), + q(0), + ], + q(tuvalu) => [ + q(0228), + q(0), + ], + q(uganda) => [ + q(0229), + q(0), + ], + q(uk) => [ + q(0232), + q(3), + ], + q(ukraine) => [ + q(0230), + q(0), + ], + q(union of burma) => [ + q(0151), + q(2), + ], + q(united arab emirates) => [ + q(0231), + q(0), + ], + q(united kingdom) => [ + q(0232), + q(0), + ], + q(united kingdom of great britain and northern ireland) => [ + q(0232), + q(1), + ], + q(united mexican states) => [ + q(0142), + q(1), + ], + q(united republic of tanzania) => [ + q(0217), + q(1), + ], + q(united states) => [ + q(0233), + q(0), + ], + q(united states minor outlying islands) => [ + q(0234), + q(0), + ], + q(united states of america) => [ + q(0233), + q(1), + ], + q(united states virgin islands) => [ + q(0241), + q(1), + ], + q(uruguay) => [ + q(0235), + q(0), + ], + q(us) => [ + q(0233), + q(2), + ], + q(usa) => [ + q(0233), + q(3), + ], + q(uzbekistan) => [ + q(0236), + q(0), + ], + q(vanuatu) => [ + q(0237), + q(0), + ], + q(vatican city) => [ + q(0096), + q(2), + ], + q(venezuela) => [ + q(0238), + q(2), + ], + q(venezuela (bolivarian republic of)) => [ + q(0238), + q(1), + ], + q(venezuela, bolivarian republic of) => [ + q(0238), + q(0), + ], + q(viet nam) => [ + q(0239), + q(0), + ], + q(vietnam) => [ + q(0239), + q(1), + ], + q(virgin islands) => [ + q(0241), + q(2), + ], + q(virgin islands (uk)) => [ + q(0240), + q(2), + ], + q(virgin islands (us)) => [ + q(0241), + q(4), + ], + q(virgin islands of the united states) => [ + q(0241), + q(3), + ], + q(virgin islands, british) => [ + q(0240), + q(0), + ], + q(virgin islands, u.s.) => [ + q(0241), + q(0), + ], + q(wake atoll) => [ + q(0270), + q(0), + ], + q(wake island) => [ + q(0270), + q(1), + ], + q(wallis and futuna) => [ + q(0242), + q(0), + ], + q(wallis and futuna islands) => [ + q(0242), + q(1), + ], + q(west bank) => [ + q(0271), + q(0), + ], + q(western sahara) => [ + q(0243), + q(0), + ], + q(yemen) => [ + q(0244), + q(0), + ], + q(zambia) => [ + q(0245), + q(0), + ], + q(zimbabwe) => [ + q(0246), + q(0), + ], +}; + +$Locale::Codes::Data{'country'}{'code2id'} = { + q(alpha2) => { + q(ad) => [ + q(0006), + q(0), + ], + q(ae) => [ + q(0231), + q(0), + ], + q(af) => [ + q(0001), + q(0), + ], + q(ag) => [ + q(0010), + q(0), + ], + q(ai) => [ + q(0008), + q(0), + ], + q(al) => [ + q(0003), + q(0), + ], + q(am) => [ + q(0012), + q(0), + ], + q(an) => [ + q(0156), + q(0), + ], + q(ao) => [ + q(0007), + q(0), + ], + q(aq) => [ + q(0009), + q(0), + ], + q(ar) => [ + q(0011), + q(0), + ], + q(as) => [ + q(0005), + q(0), + ], + q(at) => [ + q(0015), + q(0), + ], + q(au) => [ + q(0014), + q(0), + ], + q(aw) => [ + q(0013), + q(0), + ], + q(ax) => [ + q(0002), + q(0), + ], + q(az) => [ + q(0016), + q(0), + ], + q(ba) => [ + q(0028), + q(0), + ], + q(bb) => [ + q(0020), + q(0), + ], + q(bd) => [ + q(0019), + q(0), + ], + q(be) => [ + q(0022), + q(0), + ], + q(bf) => [ + q(0035), + q(0), + ], + q(bg) => [ + q(0034), + q(0), + ], + q(bh) => [ + q(0018), + q(0), + ], + q(bi) => [ + q(0036), + q(0), + ], + q(bj) => [ + q(0024), + q(0), + ], + q(bl) => [ + q(0184), + q(0), + ], + q(bm) => [ + q(0025), + q(0), + ], + q(bn) => [ + q(0033), + q(0), + ], + q(bo) => [ + q(0027), + q(0), + ], + q(br) => [ + q(0031), + q(0), + ], + q(bs) => [ + q(0017), + q(0), + ], + q(bt) => [ + q(0026), + q(0), + ], + q(bv) => [ + q(0030), + q(0), + ], + q(bw) => [ + q(0029), + q(0), + ], + q(by) => [ + q(0021), + q(0), + ], + q(bz) => [ + q(0023), + q(0), + ], + q(ca) => [ + q(0039), + q(0), + ], + q(cc) => [ + q(0047), + q(0), + ], + q(cd) => [ + q(0051), + q(0), + ], + q(cf) => [ + q(0042), + q(0), + ], + q(cg) => [ + q(0050), + q(0), + ], + q(ch) => [ + q(0213), + q(0), + ], + q(ci) => [ + q(0054), + q(0), + ], + q(ck) => [ + q(0052), + q(0), + ], + q(cl) => [ + q(0044), + q(0), + ], + q(cm) => [ + q(0038), + q(0), + ], + q(cn) => [ + q(0045), + q(0), + ], + q(co) => [ + q(0048), + q(0), + ], + q(cr) => [ + q(0053), + q(0), + ], + q(cu) => [ + q(0056), + q(0), + ], + q(cv) => [ + q(0040), + q(0), + ], + q(cx) => [ + q(0046), + q(0), + ], + q(cy) => [ + q(0057), + q(0), + ], + q(cz) => [ + q(0058), + q(0), + ], + q(de) => [ + q(0081), + q(0), + ], + q(dj) => [ + q(0060), + q(0), + ], + q(dk) => [ + q(0059), + q(0), + ], + q(dm) => [ + q(0061), + q(0), + ], + q(do) => [ + q(0062), + q(0), + ], + q(dz) => [ + q(0004), + q(0), + ], + q(ec) => [ + q(0063), + q(0), + ], + q(ee) => [ + q(0068), + q(0), + ], + q(eg) => [ + q(0064), + q(0), + ], + q(eh) => [ + q(0243), + q(0), + ], + q(er) => [ + q(0067), + q(0), + ], + q(es) => [ + q(0206), + q(0), + ], + q(et) => [ + q(0069), + q(0), + ], + q(fi) => [ + q(0073), + q(0), + ], + q(fj) => [ + q(0072), + q(0), + ], + q(fk) => [ + q(0070), + q(0), + ], + q(fm) => [ + q(0143), + q(0), + ], + q(fo) => [ + q(0071), + q(0), + ], + q(fr) => [ + q(0074), + q(0), + ], + q(fx) => [ + q(0276), + q(0), + ], + q(ga) => [ + q(0078), + q(0), + ], + q(gb) => [ + q(0232), + q(0), + ], + q(gd) => [ + q(0086), + q(0), + ], + q(ge) => [ + q(0080), + q(0), + ], + q(gf) => [ + q(0075), + q(0), + ], + q(gg) => [ + q(0090), + q(0), + ], + q(gh) => [ + q(0082), + q(0), + ], + q(gi) => [ + q(0083), + q(0), + ], + q(gl) => [ + q(0085), + q(0), + ], + q(gm) => [ + q(0079), + q(0), + ], + q(gn) => [ + q(0091), + q(0), + ], + q(gp) => [ + q(0087), + q(0), + ], + q(gq) => [ + q(0066), + q(0), + ], + q(gr) => [ + q(0084), + q(0), + ], + q(gs) => [ + q(0205), + q(0), + ], + q(gt) => [ + q(0089), + q(0), + ], + q(gu) => [ + q(0088), + q(0), + ], + q(gw) => [ + q(0092), + q(0), + ], + q(gy) => [ + q(0093), + q(0), + ], + q(hk) => [ + q(0098), + q(0), + ], + q(hm) => [ + q(0095), + q(0), + ], + q(hn) => [ + q(0097), + q(0), + ], + q(hr) => [ + q(0055), + q(0), + ], + q(ht) => [ + q(0094), + q(0), + ], + q(hu) => [ + q(0099), + q(0), + ], + q(id) => [ + q(0102), + q(0), + ], + q(ie) => [ + q(0105), + q(0), + ], + q(il) => [ + q(0107), + q(0), + ], + q(im) => [ + q(0106), + q(0), + ], + q(in) => [ + q(0101), + q(0), + ], + q(io) => [ + q(0032), + q(0), + ], + q(iq) => [ + q(0104), + q(0), + ], + q(ir) => [ + q(0103), + q(0), + ], + q(is) => [ + q(0100), + q(0), + ], + q(it) => [ + q(0108), + q(0), + ], + q(je) => [ + q(0111), + q(0), + ], + q(jm) => [ + q(0109), + q(0), + ], + q(jo) => [ + q(0112), + q(0), + ], + q(jp) => [ + q(0110), + q(0), + ], + q(ke) => [ + q(0114), + q(0), + ], + q(kg) => [ + q(0119), + q(0), + ], + q(kh) => [ + q(0037), + q(0), + ], + q(ki) => [ + q(0115), + q(0), + ], + q(km) => [ + q(0049), + q(0), + ], + q(kn) => [ + q(0186), + q(0), + ], + q(kp) => [ + q(0116), + q(0), + ], + q(kr) => [ + q(0117), + q(0), + ], + q(kw) => [ + q(0118), + q(0), + ], + q(ky) => [ + q(0041), + q(0), + ], + q(kz) => [ + q(0113), + q(0), + ], + q(la) => [ + q(0120), + q(0), + ], + q(lb) => [ + q(0122), + q(0), + ], + q(lc) => [ + q(0187), + q(0), + ], + q(li) => [ + q(0126), + q(0), + ], + q(lk) => [ + q(0207), + q(0), + ], + q(lr) => [ + q(0124), + q(0), + ], + q(ls) => [ + q(0123), + q(0), + ], + q(lt) => [ + q(0127), + q(0), + ], + q(lu) => [ + q(0128), + q(0), + ], + q(lv) => [ + q(0121), + q(0), + ], + q(ly) => [ + q(0125), + q(0), + ], + q(ma) => [ + q(0149), + q(0), + ], + q(mc) => [ + q(0145), + q(0), + ], + q(md) => [ + q(0144), + q(0), + ], + q(me) => [ + q(0147), + q(0), + ], + q(mf) => [ + q(0188), + q(0), + ], + q(mg) => [ + q(0131), + q(0), + ], + q(mh) => [ + q(0137), + q(0), + ], + q(mk) => [ + q(0130), + q(0), + ], + q(ml) => [ + q(0135), + q(0), + ], + q(mm) => [ + q(0151), + q(0), + ], + q(mn) => [ + q(0146), + q(0), + ], + q(mo) => [ + q(0129), + q(0), + ], + q(mp) => [ + q(0164), + q(0), + ], + q(mq) => [ + q(0138), + q(0), + ], + q(mr) => [ + q(0139), + q(0), + ], + q(ms) => [ + q(0148), + q(0), + ], + q(mt) => [ + q(0136), + q(0), + ], + q(mu) => [ + q(0140), + q(0), + ], + q(mv) => [ + q(0134), + q(0), + ], + q(mw) => [ + q(0132), + q(0), + ], + q(mx) => [ + q(0142), + q(0), + ], + q(my) => [ + q(0133), + q(0), + ], + q(mz) => [ + q(0150), + q(0), + ], + q(na) => [ + q(0152), + q(0), + ], + q(nc) => [ + q(0157), + q(0), + ], + q(ne) => [ + q(0160), + q(0), + ], + q(nf) => [ + q(0163), + q(0), + ], + q(ng) => [ + q(0161), + q(0), + ], + q(ni) => [ + q(0159), + q(0), + ], + q(nl) => [ + q(0155), + q(0), + ], + q(no) => [ + q(0165), + q(0), + ], + q(np) => [ + q(0154), + q(0), + ], + q(nr) => [ + q(0153), + q(0), + ], + q(nu) => [ + q(0162), + q(0), + ], + q(nz) => [ + q(0158), + q(0), + ], + q(om) => [ + q(0166), + q(0), + ], + q(pa) => [ + q(0170), + q(0), + ], + q(pe) => [ + q(0173), + q(0), + ], + q(pf) => [ + q(0076), + q(0), + ], + q(pg) => [ + q(0171), + q(0), + ], + q(ph) => [ + q(0174), + q(0), + ], + q(pk) => [ + q(0167), + q(0), + ], + q(pl) => [ + q(0176), + q(0), + ], + q(pm) => [ + q(0189), + q(0), + ], + q(pn) => [ + q(0175), + q(0), + ], + q(pr) => [ + q(0178), + q(0), + ], + q(ps) => [ + q(0169), + q(0), + ], + q(pt) => [ + q(0177), + q(0), + ], + q(pw) => [ + q(0168), + q(0), + ], + q(py) => [ + q(0172), + q(0), + ], + q(qa) => [ + q(0179), + q(0), + ], + q(re) => [ + q(0180), + q(0), + ], + q(ro) => [ + q(0181), + q(0), + ], + q(rs) => [ + q(0196), + q(0), + ], + q(ru) => [ + q(0182), + q(0), + ], + q(rw) => [ + q(0183), + q(0), + ], + q(sa) => [ + q(0194), + q(0), + ], + q(sb) => [ + q(0202), + q(0), + ], + q(sc) => [ + q(0197), + q(0), + ], + q(sd) => [ + q(0208), + q(0), + ], + q(se) => [ + q(0212), + q(0), + ], + q(sg) => [ + q(0199), + q(0), + ], + q(sh) => [ + q(0185), + q(0), + ], + q(si) => [ + q(0201), + q(0), + ], + q(sj) => [ + q(0210), + q(0), + ], + q(sk) => [ + q(0200), + q(0), + ], + q(sl) => [ + q(0198), + q(0), + ], + q(sm) => [ + q(0192), + q(0), + ], + q(sn) => [ + q(0195), + q(0), + ], + q(so) => [ + q(0203), + q(0), + ], + q(sr) => [ + q(0209), + q(0), + ], + q(st) => [ + q(0193), + q(0), + ], + q(sv) => [ + q(0065), + q(0), + ], + q(sy) => [ + q(0214), + q(0), + ], + q(sz) => [ + q(0211), + q(0), + ], + q(tc) => [ + q(0227), + q(0), + ], + q(td) => [ + q(0043), + q(0), + ], + q(tf) => [ + q(0077), + q(0), + ], + q(tg) => [ + q(0220), + q(0), + ], + q(th) => [ + q(0218), + q(0), + ], + q(tj) => [ + q(0216), + q(0), + ], + q(tk) => [ + q(0221), + q(0), + ], + q(tl) => [ + q(0219), + q(0), + ], + q(tm) => [ + q(0226), + q(0), + ], + q(tn) => [ + q(0224), + q(0), + ], + q(to) => [ + q(0222), + q(0), + ], + q(tr) => [ + q(0225), + q(0), + ], + q(tt) => [ + q(0223), + q(0), + ], + q(tv) => [ + q(0228), + q(0), + ], + q(tw) => [ + q(0215), + q(0), + ], + q(tz) => [ + q(0217), + q(0), + ], + q(ua) => [ + q(0230), + q(0), + ], + q(ug) => [ + q(0229), + q(0), + ], + q(um) => [ + q(0234), + q(0), + ], + q(us) => [ + q(0233), + q(0), + ], + q(uy) => [ + q(0235), + q(0), + ], + q(uz) => [ + q(0236), + q(0), + ], + q(va) => [ + q(0096), + q(0), + ], + q(vc) => [ + q(0190), + q(0), + ], + q(ve) => [ + q(0238), + q(0), + ], + q(vg) => [ + q(0240), + q(0), + ], + q(vi) => [ + q(0241), + q(0), + ], + q(vn) => [ + q(0239), + q(0), + ], + q(vu) => [ + q(0237), + q(0), + ], + q(wf) => [ + q(0242), + q(0), + ], + q(ws) => [ + q(0191), + q(0), + ], + q(ye) => [ + q(0244), + q(0), + ], + q(yt) => [ + q(0141), + q(0), + ], + q(za) => [ + q(0204), + q(0), + ], + q(zm) => [ + q(0245), + q(0), + ], + q(zw) => [ + q(0246), + q(0), + ], + }, + q(alpha3) => { + q(abw) => [ + q(0013), + q(0), + ], + q(afg) => [ + q(0001), + q(0), + ], + q(ago) => [ + q(0007), + q(0), + ], + q(aia) => [ + q(0008), + q(0), + ], + q(ala) => [ + q(0002), + q(0), + ], + q(alb) => [ + q(0003), + q(0), + ], + q(and) => [ + q(0006), + q(0), + ], + q(ant) => [ + q(0156), + q(0), + ], + q(are) => [ + q(0231), + q(0), + ], + q(arg) => [ + q(0011), + q(0), + ], + q(arm) => [ + q(0012), + q(0), + ], + q(asm) => [ + q(0005), + q(0), + ], + q(ata) => [ + q(0009), + q(0), + ], + q(atf) => [ + q(0077), + q(1), + ], + q(atg) => [ + q(0010), + q(0), + ], + q(aus) => [ + q(0014), + q(0), + ], + q(aut) => [ + q(0015), + q(0), + ], + q(aze) => [ + q(0016), + q(0), + ], + q(bdi) => [ + q(0036), + q(0), + ], + q(bel) => [ + q(0022), + q(0), + ], + q(ben) => [ + q(0024), + q(0), + ], + q(bfa) => [ + q(0035), + q(0), + ], + q(bgd) => [ + q(0019), + q(0), + ], + q(bgr) => [ + q(0034), + q(0), + ], + q(bhr) => [ + q(0018), + q(0), + ], + q(bhs) => [ + q(0017), + q(0), + ], + q(bih) => [ + q(0028), + q(0), + ], + q(blm) => [ + q(0184), + q(1), + ], + q(blr) => [ + q(0021), + q(0), + ], + q(blz) => [ + q(0023), + q(0), + ], + q(bmu) => [ + q(0025), + q(0), + ], + q(bol) => [ + q(0027), + q(1), + ], + q(bra) => [ + q(0031), + q(0), + ], + q(brb) => [ + q(0020), + q(0), + ], + q(brn) => [ + q(0033), + q(0), + ], + q(btn) => [ + q(0026), + q(0), + ], + q(bvt) => [ + q(0030), + q(0), + ], + q(bwa) => [ + q(0029), + q(0), + ], + q(caf) => [ + q(0042), + q(0), + ], + q(can) => [ + q(0039), + q(0), + ], + q(cck) => [ + q(0047), + q(0), + ], + q(che) => [ + q(0213), + q(0), + ], + q(chl) => [ + q(0044), + q(0), + ], + q(chn) => [ + q(0045), + q(0), + ], + q(civ) => [ + q(0054), + q(0), + ], + q(cmr) => [ + q(0038), + q(0), + ], + q(cod) => [ + q(0051), + q(1), + ], + q(cog) => [ + q(0050), + q(0), + ], + q(cok) => [ + q(0052), + q(0), + ], + q(col) => [ + q(0048), + q(0), + ], + q(com) => [ + q(0049), + q(0), + ], + q(cpv) => [ + q(0040), + q(0), + ], + q(cri) => [ + q(0053), + q(0), + ], + q(cub) => [ + q(0056), + q(0), + ], + q(cxr) => [ + q(0046), + q(0), + ], + q(cym) => [ + q(0041), + q(0), + ], + q(cyp) => [ + q(0057), + q(0), + ], + q(cze) => [ + q(0058), + q(0), + ], + q(deu) => [ + q(0081), + q(0), + ], + q(dji) => [ + q(0060), + q(0), + ], + q(dma) => [ + q(0061), + q(0), + ], + q(dnk) => [ + q(0059), + q(0), + ], + q(dom) => [ + q(0062), + q(0), + ], + q(dza) => [ + q(0004), + q(0), + ], + q(ecu) => [ + q(0063), + q(0), + ], + q(egy) => [ + q(0064), + q(0), + ], + q(eri) => [ + q(0067), + q(0), + ], + q(esh) => [ + q(0243), + q(0), + ], + q(esp) => [ + q(0206), + q(0), + ], + q(est) => [ + q(0068), + q(0), + ], + q(eth) => [ + q(0069), + q(0), + ], + q(fin) => [ + q(0073), + q(0), + ], + q(fji) => [ + q(0072), + q(0), + ], + q(flk) => [ + q(0070), + q(0), + ], + q(fra) => [ + q(0074), + q(0), + ], + q(fro) => [ + q(0071), + q(1), + ], + q(fsm) => [ + q(0143), + q(1), + ], + q(fxx) => [ + q(0276), + q(0), + ], + q(gab) => [ + q(0078), + q(0), + ], + q(gbr) => [ + q(0232), + q(1), + ], + q(geo) => [ + q(0080), + q(0), + ], + q(ggy) => [ + q(0090), + q(0), + ], + q(gha) => [ + q(0082), + q(0), + ], + q(gib) => [ + q(0083), + q(0), + ], + q(gin) => [ + q(0091), + q(0), + ], + q(glp) => [ + q(0087), + q(0), + ], + q(gmb) => [ + q(0079), + q(0), + ], + q(gnb) => [ + q(0092), + q(0), + ], + q(gnq) => [ + q(0066), + q(0), + ], + q(grc) => [ + q(0084), + q(0), + ], + q(grd) => [ + q(0086), + q(0), + ], + q(grl) => [ + q(0085), + q(0), + ], + q(gtm) => [ + q(0089), + q(0), + ], + q(guf) => [ + q(0075), + q(0), + ], + q(gum) => [ + q(0088), + q(0), + ], + q(guy) => [ + q(0093), + q(0), + ], + q(hkg) => [ + q(0098), + q(1), + ], + q(hmd) => [ + q(0095), + q(0), + ], + q(hnd) => [ + q(0097), + q(0), + ], + q(hrv) => [ + q(0055), + q(0), + ], + q(hti) => [ + q(0094), + q(0), + ], + q(hun) => [ + q(0099), + q(0), + ], + q(idn) => [ + q(0102), + q(0), + ], + q(imn) => [ + q(0106), + q(0), + ], + q(ind) => [ + q(0101), + q(0), + ], + q(iot) => [ + q(0032), + q(0), + ], + q(irl) => [ + q(0105), + q(0), + ], + q(irn) => [ + q(0103), + q(1), + ], + q(irq) => [ + q(0104), + q(0), + ], + q(isl) => [ + q(0100), + q(0), + ], + q(isr) => [ + q(0107), + q(0), + ], + q(ita) => [ + q(0108), + q(0), + ], + q(jam) => [ + q(0109), + q(0), + ], + q(jey) => [ + q(0111), + q(0), + ], + q(jor) => [ + q(0112), + q(0), + ], + q(jpn) => [ + q(0110), + q(0), + ], + q(kaz) => [ + q(0113), + q(0), + ], + q(ken) => [ + q(0114), + q(0), + ], + q(kgz) => [ + q(0119), + q(0), + ], + q(khm) => [ + q(0037), + q(0), + ], + q(kir) => [ + q(0115), + q(0), + ], + q(kna) => [ + q(0186), + q(0), + ], + q(kor) => [ + q(0117), + q(1), + ], + q(kwt) => [ + q(0118), + q(0), + ], + q(lao) => [ + q(0120), + q(0), + ], + q(lbn) => [ + q(0122), + q(0), + ], + q(lbr) => [ + q(0124), + q(0), + ], + q(lby) => [ + q(0125), + q(0), + ], + q(lca) => [ + q(0187), + q(0), + ], + q(lie) => [ + q(0126), + q(0), + ], + q(lka) => [ + q(0207), + q(0), + ], + q(lso) => [ + q(0123), + q(0), + ], + q(ltu) => [ + q(0127), + q(0), + ], + q(lux) => [ + q(0128), + q(0), + ], + q(lva) => [ + q(0121), + q(0), + ], + q(mac) => [ + q(0129), + q(1), + ], + q(maf) => [ + q(0188), + q(1), + ], + q(mar) => [ + q(0149), + q(0), + ], + q(mco) => [ + q(0145), + q(0), + ], + q(mda) => [ + q(0144), + q(1), + ], + q(mdg) => [ + q(0131), + q(0), + ], + q(mdv) => [ + q(0134), + q(0), + ], + q(mex) => [ + q(0142), + q(0), + ], + q(mhl) => [ + q(0137), + q(0), + ], + q(mkd) => [ + q(0130), + q(1), + ], + q(mli) => [ + q(0135), + q(0), + ], + q(mlt) => [ + q(0136), + q(0), + ], + q(mmr) => [ + q(0151), + q(0), + ], + q(mne) => [ + q(0147), + q(0), + ], + q(mng) => [ + q(0146), + q(0), + ], + q(mnp) => [ + q(0164), + q(0), + ], + q(moz) => [ + q(0150), + q(0), + ], + q(mrt) => [ + q(0139), + q(0), + ], + q(msr) => [ + q(0148), + q(0), + ], + q(mtq) => [ + q(0138), + q(0), + ], + q(mus) => [ + q(0140), + q(0), + ], + q(mwi) => [ + q(0132), + q(0), + ], + q(mys) => [ + q(0133), + q(0), + ], + q(myt) => [ + q(0141), + q(0), + ], + q(nam) => [ + q(0152), + q(0), + ], + q(ncl) => [ + q(0157), + q(0), + ], + q(ner) => [ + q(0160), + q(0), + ], + q(nfk) => [ + q(0163), + q(0), + ], + q(nga) => [ + q(0161), + q(0), + ], + q(nic) => [ + q(0159), + q(0), + ], + q(niu) => [ + q(0162), + q(0), + ], + q(nld) => [ + q(0155), + q(0), + ], + q(nor) => [ + q(0165), + q(0), + ], + q(npl) => [ + q(0154), + q(0), + ], + q(nru) => [ + q(0153), + q(0), + ], + q(nzl) => [ + q(0158), + q(0), + ], + q(omn) => [ + q(0166), + q(0), + ], + q(pak) => [ + q(0167), + q(0), + ], + q(pan) => [ + q(0170), + q(0), + ], + q(pcn) => [ + q(0175), + q(0), + ], + q(per) => [ + q(0173), + q(0), + ], + q(phl) => [ + q(0174), + q(0), + ], + q(plw) => [ + q(0168), + q(0), + ], + q(png) => [ + q(0171), + q(0), + ], + q(pol) => [ + q(0176), + q(0), + ], + q(pri) => [ + q(0178), + q(0), + ], + q(prk) => [ + q(0116), + q(1), + ], + q(prt) => [ + q(0177), + q(0), + ], + q(pry) => [ + q(0172), + q(0), + ], + q(pse) => [ + q(0169), + q(1), + ], + q(pyf) => [ + q(0076), + q(0), + ], + q(qat) => [ + q(0179), + q(0), + ], + q(reu) => [ + q(0180), + q(0), + ], + q(rou) => [ + q(0181), + q(0), + ], + q(rus) => [ + q(0182), + q(0), + ], + q(rwa) => [ + q(0183), + q(0), + ], + q(sau) => [ + q(0194), + q(0), + ], + q(sdn) => [ + q(0208), + q(0), + ], + q(sen) => [ + q(0195), + q(0), + ], + q(sgp) => [ + q(0199), + q(0), + ], + q(shn) => [ + q(0185), + q(1), + ], + q(sjm) => [ + q(0210), + q(1), + ], + q(slb) => [ + q(0202), + q(0), + ], + q(sle) => [ + q(0198), + q(0), + ], + q(slv) => [ + q(0065), + q(0), + ], + q(smr) => [ + q(0192), + q(0), + ], + q(som) => [ + q(0203), + q(0), + ], + q(spm) => [ + q(0189), + q(0), + ], + q(srb) => [ + q(0196), + q(0), + ], + q(stp) => [ + q(0193), + q(0), + ], + q(sur) => [ + q(0209), + q(0), + ], + q(svk) => [ + q(0200), + q(0), + ], + q(svn) => [ + q(0201), + q(0), + ], + q(swe) => [ + q(0212), + q(0), + ], + q(swz) => [ + q(0211), + q(0), + ], + q(syc) => [ + q(0197), + q(0), + ], + q(syr) => [ + q(0214), + q(0), + ], + q(tca) => [ + q(0227), + q(0), + ], + q(tcd) => [ + q(0043), + q(0), + ], + q(tgo) => [ + q(0220), + q(0), + ], + q(tha) => [ + q(0218), + q(0), + ], + q(tjk) => [ + q(0216), + q(0), + ], + q(tkl) => [ + q(0221), + q(0), + ], + q(tkm) => [ + q(0226), + q(0), + ], + q(tls) => [ + q(0219), + q(0), + ], + q(ton) => [ + q(0222), + q(0), + ], + q(tto) => [ + q(0223), + q(0), + ], + q(tun) => [ + q(0224), + q(0), + ], + q(tur) => [ + q(0225), + q(0), + ], + q(tuv) => [ + q(0228), + q(0), + ], + q(twn) => [ + q(0215), + q(1), + ], + q(tza) => [ + q(0217), + q(1), + ], + q(uga) => [ + q(0229), + q(0), + ], + q(ukr) => [ + q(0230), + q(0), + ], + q(umi) => [ + q(0234), + q(0), + ], + q(ury) => [ + q(0235), + q(0), + ], + q(usa) => [ + q(0233), + q(1), + ], + q(uzb) => [ + q(0236), + q(0), + ], + q(vat) => [ + q(0096), + q(1), + ], + q(vct) => [ + q(0190), + q(0), + ], + q(ven) => [ + q(0238), + q(1), + ], + q(vgb) => [ + q(0240), + q(1), + ], + q(vir) => [ + q(0241), + q(1), + ], + q(vnm) => [ + q(0239), + q(0), + ], + q(vut) => [ + q(0237), + q(0), + ], + q(wlf) => [ + q(0242), + q(1), + ], + q(wsm) => [ + q(0191), + q(0), + ], + q(yem) => [ + q(0244), + q(0), + ], + q(zaf) => [ + q(0204), + q(0), + ], + q(zmb) => [ + q(0245), + q(0), + ], + q(zwe) => [ + q(0246), + q(0), + ], + }, + q(dom) => { + q(AC) => [ + q(0272), + q(0), + ], + q(AD) => [ + q(0006), + q(0), + ], + q(AE) => [ + q(0231), + q(0), + ], + q(AF) => [ + q(0001), + q(0), + ], + q(AG) => [ + q(0010), + q(0), + ], + q(AI) => [ + q(0008), + q(0), + ], + q(AL) => [ + q(0003), + q(0), + ], + q(AM) => [ + q(0012), + q(0), + ], + q(AN) => [ + q(0156), + q(0), + ], + q(AO) => [ + q(0007), + q(0), + ], + q(AQ) => [ + q(0009), + q(0), + ], + q(AR) => [ + q(0011), + q(0), + ], + q(AS) => [ + q(0005), + q(0), + ], + q(AT) => [ + q(0015), + q(0), + ], + q(AU) => [ + q(0014), + q(0), + ], + q(AW) => [ + q(0013), + q(0), + ], + q(AX) => [ + q(0002), + q(0), + ], + q(AZ) => [ + q(0016), + q(0), + ], + q(BA) => [ + q(0028), + q(0), + ], + q(BB) => [ + q(0020), + q(0), + ], + q(BD) => [ + q(0019), + q(0), + ], + q(BE) => [ + q(0022), + q(0), + ], + q(BF) => [ + q(0035), + q(0), + ], + q(BG) => [ + q(0034), + q(0), + ], + q(BH) => [ + q(0018), + q(0), + ], + q(BI) => [ + q(0036), + q(0), + ], + q(BJ) => [ + q(0024), + q(0), + ], + q(BL) => [ + q(0184), + q(0), + ], + q(BM) => [ + q(0025), + q(0), + ], + q(BN) => [ + q(0033), + q(0), + ], + q(BO) => [ + q(0027), + q(2), + ], + q(BR) => [ + q(0031), + q(0), + ], + q(BS) => [ + q(0017), + q(0), + ], + q(BT) => [ + q(0026), + q(0), + ], + q(BV) => [ + q(0030), + q(0), + ], + q(BW) => [ + q(0029), + q(0), + ], + q(BY) => [ + q(0021), + q(0), + ], + q(BZ) => [ + q(0023), + q(0), + ], + q(CA) => [ + q(0039), + q(0), + ], + q(CC) => [ + q(0047), + q(0), + ], + q(CD) => [ + q(0051), + q(0), + ], + q(CF) => [ + q(0042), + q(0), + ], + q(CG) => [ + q(0050), + q(0), + ], + q(CH) => [ + q(0213), + q(0), + ], + q(CI) => [ + q(0054), + q(0), + ], + q(CK) => [ + q(0052), + q(0), + ], + q(CL) => [ + q(0044), + q(0), + ], + q(CM) => [ + q(0038), + q(0), + ], + q(CN) => [ + q(0045), + q(0), + ], + q(CO) => [ + q(0048), + q(0), + ], + q(CR) => [ + q(0053), + q(0), + ], + q(CU) => [ + q(0056), + q(0), + ], + q(CV) => [ + q(0040), + q(0), + ], + q(CX) => [ + q(0046), + q(0), + ], + q(CY) => [ + q(0057), + q(0), + ], + q(CZ) => [ + q(0058), + q(0), + ], + q(DE) => [ + q(0081), + q(0), + ], + q(DJ) => [ + q(0060), + q(0), + ], + q(DK) => [ + q(0059), + q(0), + ], + q(DM) => [ + q(0061), + q(0), + ], + q(DO) => [ + q(0062), + q(0), + ], + q(DZ) => [ + q(0004), + q(0), + ], + q(EC) => [ + q(0063), + q(0), + ], + q(EE) => [ + q(0068), + q(0), + ], + q(EG) => [ + q(0064), + q(0), + ], + q(EH) => [ + q(0243), + q(0), + ], + q(ER) => [ + q(0067), + q(0), + ], + q(ES) => [ + q(0206), + q(0), + ], + q(ET) => [ + q(0069), + q(0), + ], + q(EU) => [ + q(0273), + q(0), + ], + q(FI) => [ + q(0073), + q(0), + ], + q(FJ) => [ + q(0072), + q(0), + ], + q(FK) => [ + q(0070), + q(0), + ], + q(FM) => [ + q(0143), + q(0), + ], + q(FO) => [ + q(0071), + q(0), + ], + q(FR) => [ + q(0074), + q(0), + ], + q(FX) => [ + q(0276), + q(0), + ], + q(GA) => [ + q(0078), + q(0), + ], + q(GB) => [ + q(0232), + q(0), + ], + q(GD) => [ + q(0086), + q(0), + ], + q(GE) => [ + q(0080), + q(0), + ], + q(GF) => [ + q(0075), + q(0), + ], + q(GG) => [ + q(0090), + q(0), + ], + q(GH) => [ + q(0082), + q(0), + ], + q(GI) => [ + q(0083), + q(0), + ], + q(GL) => [ + q(0085), + q(0), + ], + q(GM) => [ + q(0079), + q(0), + ], + q(GN) => [ + q(0091), + q(0), + ], + q(GP) => [ + q(0087), + q(0), + ], + q(GQ) => [ + q(0066), + q(0), + ], + q(GR) => [ + q(0084), + q(0), + ], + q(GS) => [ + q(0205), + q(0), + ], + q(GT) => [ + q(0089), + q(0), + ], + q(GU) => [ + q(0088), + q(0), + ], + q(GW) => [ + q(0092), + q(0), + ], + q(GY) => [ + q(0093), + q(0), + ], + q(HK) => [ + q(0098), + q(0), + ], + q(HM) => [ + q(0095), + q(0), + ], + q(HN) => [ + q(0097), + q(0), + ], + q(HR) => [ + q(0055), + q(0), + ], + q(HT) => [ + q(0094), + q(0), + ], + q(HU) => [ + q(0099), + q(0), + ], + q(ID) => [ + q(0102), + q(0), + ], + q(IE) => [ + q(0105), + q(0), + ], + q(IL) => [ + q(0107), + q(0), + ], + q(IM) => [ + q(0106), + q(0), + ], + q(IN) => [ + q(0101), + q(0), + ], + q(IO) => [ + q(0032), + q(0), + ], + q(IQ) => [ + q(0104), + q(0), + ], + q(IR) => [ + q(0103), + q(0), + ], + q(IS) => [ + q(0100), + q(0), + ], + q(IT) => [ + q(0108), + q(0), + ], + q(JE) => [ + q(0111), + q(0), + ], + q(JM) => [ + q(0109), + q(0), + ], + q(JO) => [ + q(0112), + q(0), + ], + q(JP) => [ + q(0110), + q(0), + ], + q(KE) => [ + q(0114), + q(0), + ], + q(KG) => [ + q(0119), + q(0), + ], + q(KH) => [ + q(0037), + q(0), + ], + q(KI) => [ + q(0115), + q(0), + ], + q(KM) => [ + q(0049), + q(0), + ], + q(KN) => [ + q(0186), + q(0), + ], + q(KP) => [ + q(0116), + q(0), + ], + q(KR) => [ + q(0117), + q(0), + ], + q(KW) => [ + q(0118), + q(0), + ], + q(KY) => [ + q(0041), + q(0), + ], + q(KZ) => [ + q(0113), + q(0), + ], + q(LA) => [ + q(0120), + q(0), + ], + q(LB) => [ + q(0122), + q(0), + ], + q(LC) => [ + q(0187), + q(0), + ], + q(LI) => [ + q(0126), + q(0), + ], + q(LK) => [ + q(0207), + q(0), + ], + q(LR) => [ + q(0124), + q(0), + ], + q(LS) => [ + q(0123), + q(0), + ], + q(LT) => [ + q(0127), + q(0), + ], + q(LU) => [ + q(0128), + q(0), + ], + q(LV) => [ + q(0121), + q(0), + ], + q(LY) => [ + q(0125), + q(0), + ], + q(MA) => [ + q(0149), + q(0), + ], + q(MC) => [ + q(0145), + q(0), + ], + q(MD) => [ + q(0144), + q(0), + ], + q(ME) => [ + q(0147), + q(0), + ], + q(MF) => [ + q(0188), + q(0), + ], + q(MG) => [ + q(0131), + q(0), + ], + q(MH) => [ + q(0137), + q(0), + ], + q(MK) => [ + q(0130), + q(0), + ], + q(ML) => [ + q(0135), + q(0), + ], + q(MM) => [ + q(0151), + q(0), + ], + q(MN) => [ + q(0146), + q(0), + ], + q(MO) => [ + q(0129), + q(0), + ], + q(MP) => [ + q(0164), + q(0), + ], + q(MQ) => [ + q(0138), + q(0), + ], + q(MR) => [ + q(0139), + q(0), + ], + q(MS) => [ + q(0148), + q(0), + ], + q(MT) => [ + q(0136), + q(0), + ], + q(MU) => [ + q(0140), + q(0), + ], + q(MV) => [ + q(0134), + q(0), + ], + q(MW) => [ + q(0132), + q(0), + ], + q(MX) => [ + q(0142), + q(0), + ], + q(MY) => [ + q(0133), + q(0), + ], + q(MZ) => [ + q(0150), + q(0), + ], + q(NA) => [ + q(0152), + q(0), + ], + q(NC) => [ + q(0157), + q(0), + ], + q(NE) => [ + q(0160), + q(0), + ], + q(NF) => [ + q(0163), + q(0), + ], + q(NG) => [ + q(0161), + q(0), + ], + q(NI) => [ + q(0159), + q(0), + ], + q(NL) => [ + q(0155), + q(0), + ], + q(NO) => [ + q(0165), + q(0), + ], + q(NP) => [ + q(0154), + q(0), + ], + q(NR) => [ + q(0153), + q(0), + ], + q(NU) => [ + q(0162), + q(0), + ], + q(NZ) => [ + q(0158), + q(0), + ], + q(OM) => [ + q(0166), + q(0), + ], + q(PA) => [ + q(0170), + q(0), + ], + q(PE) => [ + q(0173), + q(0), + ], + q(PF) => [ + q(0076), + q(0), + ], + q(PG) => [ + q(0171), + q(0), + ], + q(PH) => [ + q(0174), + q(0), + ], + q(PK) => [ + q(0167), + q(0), + ], + q(PL) => [ + q(0176), + q(0), + ], + q(PM) => [ + q(0189), + q(0), + ], + q(PN) => [ + q(0175), + q(0), + ], + q(PR) => [ + q(0178), + q(0), + ], + q(PS) => [ + q(0169), + q(0), + ], + q(PT) => [ + q(0177), + q(0), + ], + q(PW) => [ + q(0168), + q(0), + ], + q(PY) => [ + q(0172), + q(0), + ], + q(QA) => [ + q(0179), + q(0), + ], + q(RE) => [ + q(0180), + q(0), + ], + q(RO) => [ + q(0181), + q(0), + ], + q(RS) => [ + q(0196), + q(0), + ], + q(RU) => [ + q(0182), + q(0), + ], + q(RW) => [ + q(0183), + q(0), + ], + q(SA) => [ + q(0194), + q(0), + ], + q(SB) => [ + q(0202), + q(0), + ], + q(SC) => [ + q(0197), + q(0), + ], + q(SD) => [ + q(0208), + q(0), + ], + q(SE) => [ + q(0212), + q(0), + ], + q(SG) => [ + q(0199), + q(0), + ], + q(SH) => [ + q(0185), + q(0), + ], + q(SI) => [ + q(0201), + q(0), + ], + q(SJ) => [ + q(0210), + q(0), + ], + q(SK) => [ + q(0200), + q(0), + ], + q(SL) => [ + q(0198), + q(0), + ], + q(SM) => [ + q(0192), + q(0), + ], + q(SN) => [ + q(0195), + q(0), + ], + q(SO) => [ + q(0203), + q(0), + ], + q(SR) => [ + q(0209), + q(0), + ], + q(ST) => [ + q(0193), + q(0), + ], + q(SU) => [ + q(0274), + q(0), + ], + q(SV) => [ + q(0065), + q(0), + ], + q(SY) => [ + q(0214), + q(0), + ], + q(SZ) => [ + q(0211), + q(0), + ], + q(TC) => [ + q(0227), + q(0), + ], + q(TD) => [ + q(0043), + q(0), + ], + q(TF) => [ + q(0077), + q(0), + ], + q(TG) => [ + q(0220), + q(0), + ], + q(TH) => [ + q(0218), + q(0), + ], + q(TJ) => [ + q(0216), + q(0), + ], + q(TK) => [ + q(0221), + q(0), + ], + q(TL) => [ + q(0219), + q(0), + ], + q(TM) => [ + q(0226), + q(0), + ], + q(TN) => [ + q(0224), + q(0), + ], + q(TO) => [ + q(0222), + q(0), + ], + q(TP) => [ + q(0275), + q(0), + ], + q(TR) => [ + q(0225), + q(0), + ], + q(TT) => [ + q(0223), + q(0), + ], + q(TV) => [ + q(0228), + q(0), + ], + q(TW) => [ + q(0215), + q(1), + ], + q(TZ) => [ + q(0217), + q(0), + ], + q(UA) => [ + q(0230), + q(0), + ], + q(UG) => [ + q(0229), + q(0), + ], + q(UK) => [ + q(0232), + q(0), + ], + q(UM) => [ + q(0234), + q(0), + ], + q(US) => [ + q(0233), + q(0), + ], + q(UY) => [ + q(0235), + q(0), + ], + q(UZ) => [ + q(0236), + q(0), + ], + q(VA) => [ + q(0096), + q(0), + ], + q(VC) => [ + q(0190), + q(0), + ], + q(VE) => [ + q(0238), + q(0), + ], + q(VG) => [ + q(0240), + q(0), + ], + q(VI) => [ + q(0241), + q(0), + ], + q(VN) => [ + q(0239), + q(0), + ], + q(VU) => [ + q(0237), + q(0), + ], + q(WF) => [ + q(0242), + q(0), + ], + q(WS) => [ + q(0191), + q(0), + ], + q(YE) => [ + q(0244), + q(0), + ], + q(YT) => [ + q(0141), + q(0), + ], + q(ZA) => [ + q(0204), + q(0), + ], + q(ZM) => [ + q(0245), + q(0), + ], + q(ZW) => [ + q(0246), + q(0), + ], + }, + q(fips) => { + q(AA) => [ + q(0013), + q(0), + ], + q(AC) => [ + q(0010), + q(0), + ], + q(AE) => [ + q(0231), + q(0), + ], + q(AF) => [ + q(0001), + q(1), + ], + q(AG) => [ + q(0004), + q(1), + ], + q(AJ) => [ + q(0016), + q(1), + ], + q(AL) => [ + q(0003), + q(1), + ], + q(AM) => [ + q(0012), + q(1), + ], + q(AN) => [ + q(0006), + q(1), + ], + q(AO) => [ + q(0007), + q(1), + ], + q(AQ) => [ + q(0005), + q(1), + ], + q(AR) => [ + q(0011), + q(1), + ], + q(AS) => [ + q(0014), + q(1), + ], + q(AT) => [ + q(0249), + q(1), + ], + q(AU) => [ + q(0015), + q(1), + ], + q(AV) => [ + q(0008), + q(0), + ], + q(AY) => [ + q(0009), + q(0), + ], + q(BA) => [ + q(0018), + q(1), + ], + q(BB) => [ + q(0020), + q(0), + ], + q(BC) => [ + q(0029), + q(1), + ], + q(BD) => [ + q(0025), + q(0), + ], + q(BE) => [ + q(0022), + q(1), + ], + q(BF) => [ + q(0017), + q(2), + ], + q(BG) => [ + q(0019), + q(1), + ], + q(BH) => [ + q(0023), + q(0), + ], + q(BK) => [ + q(0028), + q(0), + ], + q(BL) => [ + q(0027), + q(3), + ], + q(BM) => [ + q(0151), + q(2), + ], + q(BN) => [ + q(0024), + q(1), + ], + q(BO) => [ + q(0021), + q(1), + ], + q(BP) => [ + q(0202), + q(0), + ], + q(BQ) => [ + q(0264), + q(0), + ], + q(BR) => [ + q(0031), + q(1), + ], + q(BS) => [ + q(0251), + q(0), + ], + q(BT) => [ + q(0026), + q(1), + ], + q(BU) => [ + q(0034), + q(0), + ], + q(BV) => [ + q(0030), + q(0), + ], + q(BX) => [ + q(0033), + q(2), + ], + q(BY) => [ + q(0036), + q(1), + ], + q(CA) => [ + q(0039), + q(0), + ], + q(CB) => [ + q(0037), + q(1), + ], + q(CD) => [ + q(0043), + q(1), + ], + q(CE) => [ + q(0207), + q(1), + ], + q(CF) => [ + q(0050), + q(2), + ], + q(CG) => [ + q(0051), + q(2), + ], + q(CH) => [ + q(0045), + q(1), + ], + q(CI) => [ + q(0044), + q(1), + ], + q(CJ) => [ + q(0041), + q(0), + ], + q(CK) => [ + q(0047), + q(1), + ], + q(CM) => [ + q(0038), + q(1), + ], + q(CN) => [ + q(0049), + q(1), + ], + q(CO) => [ + q(0048), + q(1), + ], + q(CQ) => [ + q(0164), + q(1), + ], + q(CR) => [ + q(0253), + q(1), + ], + q(CS) => [ + q(0053), + q(1), + ], + q(CT) => [ + q(0042), + q(0), + ], + q(CU) => [ + q(0056), + q(1), + ], + q(CV) => [ + q(0040), + q(1), + ], + q(CW) => [ + q(0052), + q(0), + ], + q(CY) => [ + q(0057), + q(1), + ], + q(DA) => [ + q(0059), + q(1), + ], + q(DJ) => [ + q(0060), + q(1), + ], + q(DO) => [ + q(0061), + q(1), + ], + q(DQ) => [ + q(0259), + q(0), + ], + q(DR) => [ + q(0062), + q(0), + ], + q(EC) => [ + q(0063), + q(1), + ], + q(EG) => [ + q(0064), + q(1), + ], + q(EI) => [ + q(0105), + q(0), + ], + q(EK) => [ + q(0066), + q(1), + ], + q(EN) => [ + q(0068), + q(1), + ], + q(ER) => [ + q(0067), + q(1), + ], + q(ES) => [ + q(0065), + q(1), + ], + q(ET) => [ + q(0069), + q(1), + ], + q(EU) => [ + q(0254), + q(0), + ], + q(EZ) => [ + q(0058), + q(0), + ], + q(FG) => [ + q(0075), + q(1), + ], + q(FI) => [ + q(0073), + q(1), + ], + q(FJ) => [ + q(0072), + q(1), + ], + q(FK) => [ + q(0070), + q(1), + ], + q(FM) => [ + q(0143), + q(2), + ], + q(FO) => [ + q(0071), + q(0), + ], + q(FP) => [ + q(0076), + q(1), + ], + q(FQ) => [ + q(0250), + q(0), + ], + q(FR) => [ + q(0074), + q(1), + ], + q(FS) => [ + q(0077), + q(2), + ], + q(GA) => [ + q(0079), + q(2), + ], + q(GB) => [ + q(0078), + q(1), + ], + q(GG) => [ + q(0080), + q(0), + ], + q(GH) => [ + q(0082), + q(1), + ], + q(GI) => [ + q(0083), + q(0), + ], + q(GJ) => [ + q(0086), + q(0), + ], + q(GK) => [ + q(0090), + q(1), + ], + q(GL) => [ + q(0085), + q(0), + ], + q(GM) => [ + q(0081), + q(1), + ], + q(GO) => [ + q(0256), + q(0), + ], + q(GP) => [ + q(0087), + q(1), + ], + q(GQ) => [ + q(0088), + q(1), + ], + q(GR) => [ + q(0084), + q(1), + ], + q(GT) => [ + q(0089), + q(1), + ], + q(GV) => [ + q(0091), + q(1), + ], + q(GY) => [ + q(0093), + q(1), + ], + q(GZ) => [ + q(0255), + q(0), + ], + q(HA) => [ + q(0094), + q(1), + ], + q(HK) => [ + q(0098), + q(3), + ], + q(HM) => [ + q(0095), + q(1), + ], + q(HO) => [ + q(0097), + q(1), + ], + q(HQ) => [ + q(0257), + q(0), + ], + q(HR) => [ + q(0055), + q(1), + ], + q(HU) => [ + q(0099), + q(1), + ], + q(IC) => [ + q(0100), + q(1), + ], + q(ID) => [ + q(0102), + q(1), + ], + q(IM) => [ + q(0106), + q(0), + ], + q(IN) => [ + q(0101), + q(1), + ], + q(IO) => [ + q(0032), + q(0), + ], + q(IP) => [ + q(0252), + q(0), + ], + q(IR) => [ + q(0103), + q(3), + ], + q(IS) => [ + q(0107), + q(1), + ], + q(IT) => [ + q(0108), + q(1), + ], + q(IV) => [ + q(0054), + q(1), + ], + q(IZ) => [ + q(0104), + q(1), + ], + q(JA) => [ + q(0110), + q(0), + ], + q(JE) => [ + q(0111), + q(1), + ], + q(JM) => [ + q(0109), + q(0), + ], + q(JN) => [ + q(0258), + q(0), + ], + q(JO) => [ + q(0112), + q(1), + ], + q(JQ) => [ + q(0260), + q(0), + ], + q(JU) => [ + q(0261), + q(0), + ], + q(KE) => [ + q(0114), + q(1), + ], + q(KG) => [ + q(0119), + q(1), + ], + q(KN) => [ + q(0116), + q(2), + ], + q(KQ) => [ + q(0262), + q(0), + ], + q(KR) => [ + q(0115), + q(1), + ], + q(KS) => [ + q(0117), + q(2), + ], + q(KT) => [ + q(0046), + q(1), + ], + q(KU) => [ + q(0118), + q(1), + ], + q(KV) => [ + q(0277), + q(0), + ], + q(KZ) => [ + q(0113), + q(1), + ], + q(LA) => [ + q(0120), + q(1), + ], + q(LE) => [ + q(0122), + q(1), + ], + q(LG) => [ + q(0121), + q(1), + ], + q(LH) => [ + q(0127), + q(1), + ], + q(LI) => [ + q(0124), + q(1), + ], + q(LO) => [ + q(0200), + q(1), + ], + q(LQ) => [ + q(0265), + q(0), + ], + q(LS) => [ + q(0126), + q(1), + ], + q(LT) => [ + q(0123), + q(1), + ], + q(LU) => [ + q(0128), + q(1), + ], + q(LY) => [ + q(0125), + q(2), + ], + q(MA) => [ + q(0131), + q(1), + ], + q(MB) => [ + q(0138), + q(1), + ], + q(MC) => [ + q(0129), + q(3), + ], + q(MD) => [ + q(0144), + q(2), + ], + q(MF) => [ + q(0141), + q(1), + ], + q(MG) => [ + q(0146), + q(0), + ], + q(MH) => [ + q(0148), + q(0), + ], + q(MI) => [ + q(0132), + q(1), + ], + q(MJ) => [ + q(0147), + q(0), + ], + q(MK) => [ + q(0130), + q(3), + ], + q(ML) => [ + q(0135), + q(1), + ], + q(MN) => [ + q(0145), + q(1), + ], + q(MO) => [ + q(0149), + q(1), + ], + q(MP) => [ + q(0140), + q(1), + ], + q(MQ) => [ + q(0263), + q(0), + ], + q(MR) => [ + q(0139), + q(1), + ], + q(MT) => [ + q(0136), + q(1), + ], + q(MU) => [ + q(0166), + q(1), + ], + q(MV) => [ + q(0134), + q(1), + ], + q(MX) => [ + q(0142), + q(1), + ], + q(MY) => [ + q(0133), + q(0), + ], + q(MZ) => [ + q(0150), + q(1), + ], + q(NC) => [ + q(0157), + q(1), + ], + q(NE) => [ + q(0162), + q(0), + ], + q(NF) => [ + q(0163), + q(1), + ], + q(NG) => [ + q(0160), + q(1), + ], + q(NH) => [ + q(0237), + q(1), + ], + q(NI) => [ + q(0161), + q(1), + ], + q(NL) => [ + q(0155), + q(1), + ], + q(NO) => [ + q(0165), + q(1), + ], + q(NP) => [ + q(0154), + q(1), + ], + q(NR) => [ + q(0153), + q(1), + ], + q(NS) => [ + q(0209), + q(1), + ], + q(NT) => [ + q(0156), + q(0), + ], + q(NU) => [ + q(0159), + q(1), + ], + q(NZ) => [ + q(0158), + q(0), + ], + q(PA) => [ + q(0172), + q(1), + ], + q(PC) => [ + q(0175), + q(2), + ], + q(PE) => [ + q(0173), + q(1), + ], + q(PF) => [ + q(0266), + q(0), + ], + q(PG) => [ + q(0267), + q(0), + ], + q(PK) => [ + q(0167), + q(1), + ], + q(PL) => [ + q(0176), + q(1), + ], + q(PM) => [ + q(0170), + q(1), + ], + q(PO) => [ + q(0177), + q(1), + ], + q(PP) => [ + q(0171), + q(1), + ], + q(PS) => [ + q(0168), + q(1), + ], + q(PU) => [ + q(0092), + q(1), + ], + q(QA) => [ + q(0179), + q(1), + ], + q(RE) => [ + q(0180), + q(1), + ], + q(RI) => [ + q(0196), + q(0), + ], + q(RM) => [ + q(0137), + q(1), + ], + q(RN) => [ + q(0188), + q(0), + ], + q(RO) => [ + q(0181), + q(0), + ], + q(RP) => [ + q(0174), + q(1), + ], + q(RQ) => [ + q(0178), + q(1), + ], + q(RS) => [ + q(0182), + q(1), + ], + q(RW) => [ + q(0183), + q(1), + ], + q(SA) => [ + q(0194), + q(1), + ], + q(SB) => [ + q(0189), + q(1), + ], + q(SC) => [ + q(0186), + q(1), + ], + q(SE) => [ + q(0197), + q(1), + ], + q(SF) => [ + q(0204), + q(1), + ], + q(SG) => [ + q(0195), + q(1), + ], + q(SH) => [ + q(0185), + q(1), + ], + q(SI) => [ + q(0201), + q(1), + ], + q(SL) => [ + q(0198), + q(1), + ], + q(SM) => [ + q(0192), + q(1), + ], + q(SN) => [ + q(0199), + q(1), + ], + q(SO) => [ + q(0203), + q(0), + ], + q(SP) => [ + q(0206), + q(1), + ], + q(ST) => [ + q(0187), + q(0), + ], + q(SU) => [ + q(0208), + q(1), + ], + q(SV) => [ + q(0268), + q(0), + ], + q(SW) => [ + q(0212), + q(1), + ], + q(SX) => [ + q(0205), + q(0), + ], + q(SY) => [ + q(0214), + q(1), + ], + q(SZ) => [ + q(0213), + q(1), + ], + q(TB) => [ + q(0184), + q(0), + ], + q(TD) => [ + q(0223), + q(1), + ], + q(TE) => [ + q(0269), + q(0), + ], + q(TH) => [ + q(0218), + q(1), + ], + q(TI) => [ + q(0216), + q(1), + ], + q(TK) => [ + q(0227), + q(0), + ], + q(TL) => [ + q(0221), + q(0), + ], + q(TN) => [ + q(0222), + q(1), + ], + q(TO) => [ + q(0220), + q(1), + ], + q(TP) => [ + q(0193), + q(1), + ], + q(TS) => [ + q(0224), + q(1), + ], + q(TT) => [ + q(0219), + q(1), + ], + q(TU) => [ + q(0225), + q(1), + ], + q(TV) => [ + q(0228), + q(0), + ], + q(TW) => [ + q(0215), + q(1), + ], + q(TX) => [ + q(0226), + q(0), + ], + q(TZ) => [ + q(0217), + q(2), + ], + q(UG) => [ + q(0229), + q(0), + ], + q(UK) => [ + q(0232), + q(0), + ], + q(UP) => [ + q(0230), + q(0), + ], + q(US) => [ + q(0233), + q(0), + ], + q(UV) => [ + q(0035), + q(0), + ], + q(UY) => [ + q(0235), + q(1), + ], + q(UZ) => [ + q(0236), + q(1), + ], + q(VC) => [ + q(0190), + q(0), + ], + q(VE) => [ + q(0238), + q(3), + ], + q(VI) => [ + q(0240), + q(1), + ], + q(VM) => [ + q(0239), + q(2), + ], + q(VQ) => [ + q(0241), + q(3), + ], + q(VT) => [ + q(0096), + q(3), + ], + q(WA) => [ + q(0152), + q(1), + ], + q(WE) => [ + q(0271), + q(0), + ], + q(WF) => [ + q(0242), + q(2), + ], + q(WI) => [ + q(0243), + q(0), + ], + q(WQ) => [ + q(0270), + q(0), + ], + q(WS) => [ + q(0191), + q(1), + ], + q(WZ) => [ + q(0211), + q(1), + ], + q(YI) => [ + q(0248), + q(0), + ], + q(YM) => [ + q(0244), + q(1), + ], + q(ZA) => [ + q(0245), + q(1), + ], + q(ZI) => [ + q(0246), + q(1), + ], + }, + q(num) => { + q(004) => [ + q(0001), + q(0), + ], + q(008) => [ + q(0003), + q(0), + ], + q(010) => [ + q(0009), + q(0), + ], + q(012) => [ + q(0004), + q(0), + ], + q(016) => [ + q(0005), + q(0), + ], + q(020) => [ + q(0006), + q(0), + ], + q(024) => [ + q(0007), + q(0), + ], + q(028) => [ + q(0010), + q(0), + ], + q(031) => [ + q(0016), + q(0), + ], + q(032) => [ + q(0011), + q(0), + ], + q(036) => [ + q(0014), + q(0), + ], + q(040) => [ + q(0015), + q(0), + ], + q(044) => [ + q(0017), + q(0), + ], + q(048) => [ + q(0018), + q(0), + ], + q(050) => [ + q(0019), + q(0), + ], + q(051) => [ + q(0012), + q(0), + ], + q(052) => [ + q(0020), + q(0), + ], + q(056) => [ + q(0022), + q(0), + ], + q(060) => [ + q(0025), + q(0), + ], + q(064) => [ + q(0026), + q(0), + ], + q(068) => [ + q(0027), + q(1), + ], + q(070) => [ + q(0028), + q(0), + ], + q(072) => [ + q(0029), + q(0), + ], + q(074) => [ + q(0030), + q(0), + ], + q(076) => [ + q(0031), + q(0), + ], + q(084) => [ + q(0023), + q(0), + ], + q(086) => [ + q(0032), + q(0), + ], + q(090) => [ + q(0202), + q(0), + ], + q(092) => [ + q(0240), + q(1), + ], + q(096) => [ + q(0033), + q(0), + ], + q(100) => [ + q(0034), + q(0), + ], + q(104) => [ + q(0151), + q(0), + ], + q(108) => [ + q(0036), + q(0), + ], + q(112) => [ + q(0021), + q(0), + ], + q(116) => [ + q(0037), + q(0), + ], + q(120) => [ + q(0038), + q(0), + ], + q(124) => [ + q(0039), + q(0), + ], + q(132) => [ + q(0040), + q(0), + ], + q(136) => [ + q(0041), + q(0), + ], + q(140) => [ + q(0042), + q(0), + ], + q(144) => [ + q(0207), + q(0), + ], + q(148) => [ + q(0043), + q(0), + ], + q(152) => [ + q(0044), + q(0), + ], + q(156) => [ + q(0045), + q(0), + ], + q(158) => [ + q(0215), + q(1), + ], + q(162) => [ + q(0046), + q(0), + ], + q(166) => [ + q(0047), + q(0), + ], + q(170) => [ + q(0048), + q(0), + ], + q(174) => [ + q(0049), + q(0), + ], + q(175) => [ + q(0141), + q(0), + ], + q(178) => [ + q(0050), + q(0), + ], + q(180) => [ + q(0051), + q(1), + ], + q(184) => [ + q(0052), + q(0), + ], + q(188) => [ + q(0053), + q(0), + ], + q(191) => [ + q(0055), + q(0), + ], + q(192) => [ + q(0056), + q(0), + ], + q(196) => [ + q(0057), + q(0), + ], + q(203) => [ + q(0058), + q(0), + ], + q(204) => [ + q(0024), + q(0), + ], + q(208) => [ + q(0059), + q(0), + ], + q(212) => [ + q(0061), + q(0), + ], + q(214) => [ + q(0062), + q(0), + ], + q(218) => [ + q(0063), + q(0), + ], + q(222) => [ + q(0065), + q(0), + ], + q(226) => [ + q(0066), + q(0), + ], + q(231) => [ + q(0069), + q(0), + ], + q(232) => [ + q(0067), + q(0), + ], + q(233) => [ + q(0068), + q(0), + ], + q(234) => [ + q(0071), + q(1), + ], + q(238) => [ + q(0070), + q(0), + ], + q(242) => [ + q(0072), + q(0), + ], + q(246) => [ + q(0073), + q(0), + ], + q(248) => [ + q(0002), + q(0), + ], + q(249) => [ + q(0276), + q(0), + ], + q(250) => [ + q(0074), + q(0), + ], + q(254) => [ + q(0075), + q(0), + ], + q(258) => [ + q(0076), + q(0), + ], + q(260) => [ + q(0077), + q(1), + ], + q(262) => [ + q(0060), + q(0), + ], + q(266) => [ + q(0078), + q(0), + ], + q(268) => [ + q(0080), + q(0), + ], + q(270) => [ + q(0079), + q(0), + ], + q(275) => [ + q(0169), + q(1), + ], + q(276) => [ + q(0081), + q(0), + ], + q(288) => [ + q(0082), + q(0), + ], + q(292) => [ + q(0083), + q(0), + ], + q(296) => [ + q(0115), + q(0), + ], + q(300) => [ + q(0084), + q(0), + ], + q(304) => [ + q(0085), + q(0), + ], + q(308) => [ + q(0086), + q(0), + ], + q(312) => [ + q(0087), + q(0), + ], + q(316) => [ + q(0088), + q(0), + ], + q(320) => [ + q(0089), + q(0), + ], + q(324) => [ + q(0091), + q(0), + ], + q(328) => [ + q(0093), + q(0), + ], + q(332) => [ + q(0094), + q(0), + ], + q(334) => [ + q(0095), + q(0), + ], + q(336) => [ + q(0096), + q(1), + ], + q(340) => [ + q(0097), + q(0), + ], + q(344) => [ + q(0098), + q(1), + ], + q(348) => [ + q(0099), + q(0), + ], + q(352) => [ + q(0100), + q(0), + ], + q(356) => [ + q(0101), + q(0), + ], + q(360) => [ + q(0102), + q(0), + ], + q(364) => [ + q(0103), + q(1), + ], + q(368) => [ + q(0104), + q(0), + ], + q(372) => [ + q(0105), + q(0), + ], + q(376) => [ + q(0107), + q(0), + ], + q(380) => [ + q(0108), + q(0), + ], + q(384) => [ + q(0054), + q(0), + ], + q(388) => [ + q(0109), + q(0), + ], + q(392) => [ + q(0110), + q(0), + ], + q(398) => [ + q(0113), + q(0), + ], + q(400) => [ + q(0112), + q(0), + ], + q(404) => [ + q(0114), + q(0), + ], + q(408) => [ + q(0116), + q(1), + ], + q(410) => [ + q(0117), + q(1), + ], + q(414) => [ + q(0118), + q(0), + ], + q(417) => [ + q(0119), + q(0), + ], + q(418) => [ + q(0120), + q(0), + ], + q(422) => [ + q(0122), + q(0), + ], + q(426) => [ + q(0123), + q(0), + ], + q(428) => [ + q(0121), + q(0), + ], + q(430) => [ + q(0124), + q(0), + ], + q(434) => [ + q(0125), + q(0), + ], + q(438) => [ + q(0126), + q(0), + ], + q(440) => [ + q(0127), + q(0), + ], + q(442) => [ + q(0128), + q(0), + ], + q(446) => [ + q(0129), + q(1), + ], + q(450) => [ + q(0131), + q(0), + ], + q(454) => [ + q(0132), + q(0), + ], + q(458) => [ + q(0133), + q(0), + ], + q(462) => [ + q(0134), + q(0), + ], + q(466) => [ + q(0135), + q(0), + ], + q(470) => [ + q(0136), + q(0), + ], + q(474) => [ + q(0138), + q(0), + ], + q(478) => [ + q(0139), + q(0), + ], + q(480) => [ + q(0140), + q(0), + ], + q(484) => [ + q(0142), + q(0), + ], + q(492) => [ + q(0145), + q(0), + ], + q(496) => [ + q(0146), + q(0), + ], + q(498) => [ + q(0144), + q(1), + ], + q(499) => [ + q(0147), + q(0), + ], + q(500) => [ + q(0148), + q(0), + ], + q(504) => [ + q(0149), + q(0), + ], + q(508) => [ + q(0150), + q(0), + ], + q(512) => [ + q(0166), + q(0), + ], + q(516) => [ + q(0152), + q(0), + ], + q(520) => [ + q(0153), + q(0), + ], + q(524) => [ + q(0154), + q(0), + ], + q(528) => [ + q(0155), + q(0), + ], + q(530) => [ + q(0156), + q(0), + ], + q(533) => [ + q(0013), + q(0), + ], + q(540) => [ + q(0157), + q(0), + ], + q(548) => [ + q(0237), + q(0), + ], + q(554) => [ + q(0158), + q(0), + ], + q(558) => [ + q(0159), + q(0), + ], + q(562) => [ + q(0160), + q(0), + ], + q(566) => [ + q(0161), + q(0), + ], + q(570) => [ + q(0162), + q(0), + ], + q(574) => [ + q(0163), + q(0), + ], + q(578) => [ + q(0165), + q(0), + ], + q(580) => [ + q(0164), + q(0), + ], + q(581) => [ + q(0234), + q(0), + ], + q(583) => [ + q(0143), + q(1), + ], + q(584) => [ + q(0137), + q(0), + ], + q(585) => [ + q(0168), + q(0), + ], + q(586) => [ + q(0167), + q(0), + ], + q(591) => [ + q(0170), + q(0), + ], + q(598) => [ + q(0171), + q(0), + ], + q(600) => [ + q(0172), + q(0), + ], + q(604) => [ + q(0173), + q(0), + ], + q(608) => [ + q(0174), + q(0), + ], + q(612) => [ + q(0175), + q(0), + ], + q(616) => [ + q(0176), + q(0), + ], + q(620) => [ + q(0177), + q(0), + ], + q(624) => [ + q(0092), + q(0), + ], + q(626) => [ + q(0219), + q(0), + ], + q(630) => [ + q(0178), + q(0), + ], + q(634) => [ + q(0179), + q(0), + ], + q(638) => [ + q(0180), + q(0), + ], + q(642) => [ + q(0181), + q(0), + ], + q(643) => [ + q(0182), + q(0), + ], + q(646) => [ + q(0183), + q(0), + ], + q(652) => [ + q(0184), + q(1), + ], + q(654) => [ + q(0185), + q(1), + ], + q(659) => [ + q(0186), + q(0), + ], + q(660) => [ + q(0008), + q(0), + ], + q(662) => [ + q(0187), + q(0), + ], + q(663) => [ + q(0188), + q(1), + ], + q(666) => [ + q(0189), + q(0), + ], + q(670) => [ + q(0190), + q(0), + ], + q(674) => [ + q(0192), + q(0), + ], + q(678) => [ + q(0193), + q(0), + ], + q(682) => [ + q(0194), + q(0), + ], + q(686) => [ + q(0195), + q(0), + ], + q(688) => [ + q(0196), + q(0), + ], + q(690) => [ + q(0197), + q(0), + ], + q(694) => [ + q(0198), + q(0), + ], + q(702) => [ + q(0199), + q(0), + ], + q(703) => [ + q(0200), + q(0), + ], + q(704) => [ + q(0239), + q(0), + ], + q(705) => [ + q(0201), + q(0), + ], + q(706) => [ + q(0203), + q(0), + ], + q(710) => [ + q(0204), + q(0), + ], + q(716) => [ + q(0246), + q(0), + ], + q(724) => [ + q(0206), + q(0), + ], + q(732) => [ + q(0243), + q(0), + ], + q(736) => [ + q(0208), + q(0), + ], + q(740) => [ + q(0209), + q(0), + ], + q(744) => [ + q(0210), + q(1), + ], + q(748) => [ + q(0211), + q(0), + ], + q(752) => [ + q(0212), + q(0), + ], + q(756) => [ + q(0213), + q(0), + ], + q(760) => [ + q(0214), + q(0), + ], + q(762) => [ + q(0216), + q(0), + ], + q(764) => [ + q(0218), + q(0), + ], + q(768) => [ + q(0220), + q(0), + ], + q(772) => [ + q(0221), + q(0), + ], + q(776) => [ + q(0222), + q(0), + ], + q(780) => [ + q(0223), + q(0), + ], + q(784) => [ + q(0231), + q(0), + ], + q(788) => [ + q(0224), + q(0), + ], + q(792) => [ + q(0225), + q(0), + ], + q(795) => [ + q(0226), + q(0), + ], + q(796) => [ + q(0227), + q(0), + ], + q(798) => [ + q(0228), + q(0), + ], + q(800) => [ + q(0229), + q(0), + ], + q(804) => [ + q(0230), + q(0), + ], + q(807) => [ + q(0130), + q(1), + ], + q(818) => [ + q(0064), + q(0), + ], + q(826) => [ + q(0232), + q(1), + ], + q(830) => [ + q(0247), + q(0), + ], + q(831) => [ + q(0090), + q(0), + ], + q(832) => [ + q(0111), + q(0), + ], + q(833) => [ + q(0106), + q(0), + ], + q(834) => [ + q(0217), + q(1), + ], + q(840) => [ + q(0233), + q(1), + ], + q(850) => [ + q(0241), + q(1), + ], + q(854) => [ + q(0035), + q(0), + ], + q(858) => [ + q(0235), + q(0), + ], + q(860) => [ + q(0236), + q(0), + ], + q(862) => [ + q(0238), + q(1), + ], + q(876) => [ + q(0242), + q(1), + ], + q(882) => [ + q(0191), + q(0), + ], + q(887) => [ + q(0244), + q(0), + ], + q(894) => [ + q(0245), + q(0), + ], + }, +}; + +$Locale::Codes::Data{'country'}{'id2code'} = { + q(alpha2) => { + q(0001) => q(af), + q(0002) => q(ax), + q(0003) => q(al), + q(0004) => q(dz), + q(0005) => q(as), + q(0006) => q(ad), + q(0007) => q(ao), + q(0008) => q(ai), + q(0009) => q(aq), + q(0010) => q(ag), + q(0011) => q(ar), + q(0012) => q(am), + q(0013) => q(aw), + q(0014) => q(au), + q(0015) => q(at), + q(0016) => q(az), + q(0017) => q(bs), + q(0018) => q(bh), + q(0019) => q(bd), + q(0020) => q(bb), + q(0021) => q(by), + q(0022) => q(be), + q(0023) => q(bz), + q(0024) => q(bj), + q(0025) => q(bm), + q(0026) => q(bt), + q(0027) => q(bo), + q(0028) => q(ba), + q(0029) => q(bw), + q(0030) => q(bv), + q(0031) => q(br), + q(0032) => q(io), + q(0033) => q(bn), + q(0034) => q(bg), + q(0035) => q(bf), + q(0036) => q(bi), + q(0037) => q(kh), + q(0038) => q(cm), + q(0039) => q(ca), + q(0040) => q(cv), + q(0041) => q(ky), + q(0042) => q(cf), + q(0043) => q(td), + q(0044) => q(cl), + q(0045) => q(cn), + q(0046) => q(cx), + q(0047) => q(cc), + q(0048) => q(co), + q(0049) => q(km), + q(0050) => q(cg), + q(0051) => q(cd), + q(0052) => q(ck), + q(0053) => q(cr), + q(0054) => q(ci), + q(0055) => q(hr), + q(0056) => q(cu), + q(0057) => q(cy), + q(0058) => q(cz), + q(0059) => q(dk), + q(0060) => q(dj), + q(0061) => q(dm), + q(0062) => q(do), + q(0063) => q(ec), + q(0064) => q(eg), + q(0065) => q(sv), + q(0066) => q(gq), + q(0067) => q(er), + q(0068) => q(ee), + q(0069) => q(et), + q(0070) => q(fk), + q(0071) => q(fo), + q(0072) => q(fj), + q(0073) => q(fi), + q(0074) => q(fr), + q(0075) => q(gf), + q(0076) => q(pf), + q(0077) => q(tf), + q(0078) => q(ga), + q(0079) => q(gm), + q(0080) => q(ge), + q(0081) => q(de), + q(0082) => q(gh), + q(0083) => q(gi), + q(0084) => q(gr), + q(0085) => q(gl), + q(0086) => q(gd), + q(0087) => q(gp), + q(0088) => q(gu), + q(0089) => q(gt), + q(0090) => q(gg), + q(0091) => q(gn), + q(0092) => q(gw), + q(0093) => q(gy), + q(0094) => q(ht), + q(0095) => q(hm), + q(0096) => q(va), + q(0097) => q(hn), + q(0098) => q(hk), + q(0099) => q(hu), + q(0100) => q(is), + q(0101) => q(in), + q(0102) => q(id), + q(0103) => q(ir), + q(0104) => q(iq), + q(0105) => q(ie), + q(0106) => q(im), + q(0107) => q(il), + q(0108) => q(it), + q(0109) => q(jm), + q(0110) => q(jp), + q(0111) => q(je), + q(0112) => q(jo), + q(0113) => q(kz), + q(0114) => q(ke), + q(0115) => q(ki), + q(0116) => q(kp), + q(0117) => q(kr), + q(0118) => q(kw), + q(0119) => q(kg), + q(0120) => q(la), + q(0121) => q(lv), + q(0122) => q(lb), + q(0123) => q(ls), + q(0124) => q(lr), + q(0125) => q(ly), + q(0126) => q(li), + q(0127) => q(lt), + q(0128) => q(lu), + q(0129) => q(mo), + q(0130) => q(mk), + q(0131) => q(mg), + q(0132) => q(mw), + q(0133) => q(my), + q(0134) => q(mv), + q(0135) => q(ml), + q(0136) => q(mt), + q(0137) => q(mh), + q(0138) => q(mq), + q(0139) => q(mr), + q(0140) => q(mu), + q(0141) => q(yt), + q(0142) => q(mx), + q(0143) => q(fm), + q(0144) => q(md), + q(0145) => q(mc), + q(0146) => q(mn), + q(0147) => q(me), + q(0148) => q(ms), + q(0149) => q(ma), + q(0150) => q(mz), + q(0151) => q(mm), + q(0152) => q(na), + q(0153) => q(nr), + q(0154) => q(np), + q(0155) => q(nl), + q(0156) => q(an), + q(0157) => q(nc), + q(0158) => q(nz), + q(0159) => q(ni), + q(0160) => q(ne), + q(0161) => q(ng), + q(0162) => q(nu), + q(0163) => q(nf), + q(0164) => q(mp), + q(0165) => q(no), + q(0166) => q(om), + q(0167) => q(pk), + q(0168) => q(pw), + q(0169) => q(ps), + q(0170) => q(pa), + q(0171) => q(pg), + q(0172) => q(py), + q(0173) => q(pe), + q(0174) => q(ph), + q(0175) => q(pn), + q(0176) => q(pl), + q(0177) => q(pt), + q(0178) => q(pr), + q(0179) => q(qa), + q(0180) => q(re), + q(0181) => q(ro), + q(0182) => q(ru), + q(0183) => q(rw), + q(0184) => q(bl), + q(0185) => q(sh), + q(0186) => q(kn), + q(0187) => q(lc), + q(0188) => q(mf), + q(0189) => q(pm), + q(0190) => q(vc), + q(0191) => q(ws), + q(0192) => q(sm), + q(0193) => q(st), + q(0194) => q(sa), + q(0195) => q(sn), + q(0196) => q(rs), + q(0197) => q(sc), + q(0198) => q(sl), + q(0199) => q(sg), + q(0200) => q(sk), + q(0201) => q(si), + q(0202) => q(sb), + q(0203) => q(so), + q(0204) => q(za), + q(0205) => q(gs), + q(0206) => q(es), + q(0207) => q(lk), + q(0208) => q(sd), + q(0209) => q(sr), + q(0210) => q(sj), + q(0211) => q(sz), + q(0212) => q(se), + q(0213) => q(ch), + q(0214) => q(sy), + q(0215) => q(tw), + q(0216) => q(tj), + q(0217) => q(tz), + q(0218) => q(th), + q(0219) => q(tl), + q(0220) => q(tg), + q(0221) => q(tk), + q(0222) => q(to), + q(0223) => q(tt), + q(0224) => q(tn), + q(0225) => q(tr), + q(0226) => q(tm), + q(0227) => q(tc), + q(0228) => q(tv), + q(0229) => q(ug), + q(0230) => q(ua), + q(0231) => q(ae), + q(0232) => q(gb), + q(0233) => q(us), + q(0234) => q(um), + q(0235) => q(uy), + q(0236) => q(uz), + q(0237) => q(vu), + q(0238) => q(ve), + q(0239) => q(vn), + q(0240) => q(vg), + q(0241) => q(vi), + q(0242) => q(wf), + q(0243) => q(eh), + q(0244) => q(ye), + q(0245) => q(zm), + q(0246) => q(zw), + q(0276) => q(fx), + }, + q(alpha3) => { + q(0001) => q(afg), + q(0002) => q(ala), + q(0003) => q(alb), + q(0004) => q(dza), + q(0005) => q(asm), + q(0006) => q(and), + q(0007) => q(ago), + q(0008) => q(aia), + q(0009) => q(ata), + q(0010) => q(atg), + q(0011) => q(arg), + q(0012) => q(arm), + q(0013) => q(abw), + q(0014) => q(aus), + q(0015) => q(aut), + q(0016) => q(aze), + q(0017) => q(bhs), + q(0018) => q(bhr), + q(0019) => q(bgd), + q(0020) => q(brb), + q(0021) => q(blr), + q(0022) => q(bel), + q(0023) => q(blz), + q(0024) => q(ben), + q(0025) => q(bmu), + q(0026) => q(btn), + q(0027) => q(bol), + q(0028) => q(bih), + q(0029) => q(bwa), + q(0030) => q(bvt), + q(0031) => q(bra), + q(0032) => q(iot), + q(0033) => q(brn), + q(0034) => q(bgr), + q(0035) => q(bfa), + q(0036) => q(bdi), + q(0037) => q(khm), + q(0038) => q(cmr), + q(0039) => q(can), + q(0040) => q(cpv), + q(0041) => q(cym), + q(0042) => q(caf), + q(0043) => q(tcd), + q(0044) => q(chl), + q(0045) => q(chn), + q(0046) => q(cxr), + q(0047) => q(cck), + q(0048) => q(col), + q(0049) => q(com), + q(0050) => q(cog), + q(0051) => q(cod), + q(0052) => q(cok), + q(0053) => q(cri), + q(0054) => q(civ), + q(0055) => q(hrv), + q(0056) => q(cub), + q(0057) => q(cyp), + q(0058) => q(cze), + q(0059) => q(dnk), + q(0060) => q(dji), + q(0061) => q(dma), + q(0062) => q(dom), + q(0063) => q(ecu), + q(0064) => q(egy), + q(0065) => q(slv), + q(0066) => q(gnq), + q(0067) => q(eri), + q(0068) => q(est), + q(0069) => q(eth), + q(0070) => q(flk), + q(0071) => q(fro), + q(0072) => q(fji), + q(0073) => q(fin), + q(0074) => q(fra), + q(0075) => q(guf), + q(0076) => q(pyf), + q(0077) => q(atf), + q(0078) => q(gab), + q(0079) => q(gmb), + q(0080) => q(geo), + q(0081) => q(deu), + q(0082) => q(gha), + q(0083) => q(gib), + q(0084) => q(grc), + q(0085) => q(grl), + q(0086) => q(grd), + q(0087) => q(glp), + q(0088) => q(gum), + q(0089) => q(gtm), + q(0090) => q(ggy), + q(0091) => q(gin), + q(0092) => q(gnb), + q(0093) => q(guy), + q(0094) => q(hti), + q(0095) => q(hmd), + q(0096) => q(vat), + q(0097) => q(hnd), + q(0098) => q(hkg), + q(0099) => q(hun), + q(0100) => q(isl), + q(0101) => q(ind), + q(0102) => q(idn), + q(0103) => q(irn), + q(0104) => q(irq), + q(0105) => q(irl), + q(0106) => q(imn), + q(0107) => q(isr), + q(0108) => q(ita), + q(0109) => q(jam), + q(0110) => q(jpn), + q(0111) => q(jey), + q(0112) => q(jor), + q(0113) => q(kaz), + q(0114) => q(ken), + q(0115) => q(kir), + q(0116) => q(prk), + q(0117) => q(kor), + q(0118) => q(kwt), + q(0119) => q(kgz), + q(0120) => q(lao), + q(0121) => q(lva), + q(0122) => q(lbn), + q(0123) => q(lso), + q(0124) => q(lbr), + q(0125) => q(lby), + q(0126) => q(lie), + q(0127) => q(ltu), + q(0128) => q(lux), + q(0129) => q(mac), + q(0130) => q(mkd), + q(0131) => q(mdg), + q(0132) => q(mwi), + q(0133) => q(mys), + q(0134) => q(mdv), + q(0135) => q(mli), + q(0136) => q(mlt), + q(0137) => q(mhl), + q(0138) => q(mtq), + q(0139) => q(mrt), + q(0140) => q(mus), + q(0141) => q(myt), + q(0142) => q(mex), + q(0143) => q(fsm), + q(0144) => q(mda), + q(0145) => q(mco), + q(0146) => q(mng), + q(0147) => q(mne), + q(0148) => q(msr), + q(0149) => q(mar), + q(0150) => q(moz), + q(0151) => q(mmr), + q(0152) => q(nam), + q(0153) => q(nru), + q(0154) => q(npl), + q(0155) => q(nld), + q(0156) => q(ant), + q(0157) => q(ncl), + q(0158) => q(nzl), + q(0159) => q(nic), + q(0160) => q(ner), + q(0161) => q(nga), + q(0162) => q(niu), + q(0163) => q(nfk), + q(0164) => q(mnp), + q(0165) => q(nor), + q(0166) => q(omn), + q(0167) => q(pak), + q(0168) => q(plw), + q(0169) => q(pse), + q(0170) => q(pan), + q(0171) => q(png), + q(0172) => q(pry), + q(0173) => q(per), + q(0174) => q(phl), + q(0175) => q(pcn), + q(0176) => q(pol), + q(0177) => q(prt), + q(0178) => q(pri), + q(0179) => q(qat), + q(0180) => q(reu), + q(0181) => q(rou), + q(0182) => q(rus), + q(0183) => q(rwa), + q(0184) => q(blm), + q(0185) => q(shn), + q(0186) => q(kna), + q(0187) => q(lca), + q(0188) => q(maf), + q(0189) => q(spm), + q(0190) => q(vct), + q(0191) => q(wsm), + q(0192) => q(smr), + q(0193) => q(stp), + q(0194) => q(sau), + q(0195) => q(sen), + q(0196) => q(srb), + q(0197) => q(syc), + q(0198) => q(sle), + q(0199) => q(sgp), + q(0200) => q(svk), + q(0201) => q(svn), + q(0202) => q(slb), + q(0203) => q(som), + q(0204) => q(zaf), + q(0206) => q(esp), + q(0207) => q(lka), + q(0208) => q(sdn), + q(0209) => q(sur), + q(0210) => q(sjm), + q(0211) => q(swz), + q(0212) => q(swe), + q(0213) => q(che), + q(0214) => q(syr), + q(0215) => q(twn), + q(0216) => q(tjk), + q(0217) => q(tza), + q(0218) => q(tha), + q(0219) => q(tls), + q(0220) => q(tgo), + q(0221) => q(tkl), + q(0222) => q(ton), + q(0223) => q(tto), + q(0224) => q(tun), + q(0225) => q(tur), + q(0226) => q(tkm), + q(0227) => q(tca), + q(0228) => q(tuv), + q(0229) => q(uga), + q(0230) => q(ukr), + q(0231) => q(are), + q(0232) => q(gbr), + q(0233) => q(usa), + q(0234) => q(umi), + q(0235) => q(ury), + q(0236) => q(uzb), + q(0237) => q(vut), + q(0238) => q(ven), + q(0239) => q(vnm), + q(0240) => q(vgb), + q(0241) => q(vir), + q(0242) => q(wlf), + q(0243) => q(esh), + q(0244) => q(yem), + q(0245) => q(zmb), + q(0246) => q(zwe), + q(0276) => q(fxx), + }, + q(dom) => { + q(0001) => q(AF), + q(0002) => q(AX), + q(0003) => q(AL), + q(0004) => q(DZ), + q(0005) => q(AS), + q(0006) => q(AD), + q(0007) => q(AO), + q(0008) => q(AI), + q(0009) => q(AQ), + q(0010) => q(AG), + q(0011) => q(AR), + q(0012) => q(AM), + q(0013) => q(AW), + q(0014) => q(AU), + q(0015) => q(AT), + q(0016) => q(AZ), + q(0017) => q(BS), + q(0018) => q(BH), + q(0019) => q(BD), + q(0020) => q(BB), + q(0021) => q(BY), + q(0022) => q(BE), + q(0023) => q(BZ), + q(0024) => q(BJ), + q(0025) => q(BM), + q(0026) => q(BT), + q(0027) => q(BO), + q(0028) => q(BA), + q(0029) => q(BW), + q(0030) => q(BV), + q(0031) => q(BR), + q(0032) => q(IO), + q(0033) => q(BN), + q(0034) => q(BG), + q(0035) => q(BF), + q(0036) => q(BI), + q(0037) => q(KH), + q(0038) => q(CM), + q(0039) => q(CA), + q(0040) => q(CV), + q(0041) => q(KY), + q(0042) => q(CF), + q(0043) => q(TD), + q(0044) => q(CL), + q(0045) => q(CN), + q(0046) => q(CX), + q(0047) => q(CC), + q(0048) => q(CO), + q(0049) => q(KM), + q(0050) => q(CG), + q(0051) => q(CD), + q(0052) => q(CK), + q(0053) => q(CR), + q(0054) => q(CI), + q(0055) => q(HR), + q(0056) => q(CU), + q(0057) => q(CY), + q(0058) => q(CZ), + q(0059) => q(DK), + q(0060) => q(DJ), + q(0061) => q(DM), + q(0062) => q(DO), + q(0063) => q(EC), + q(0064) => q(EG), + q(0065) => q(SV), + q(0066) => q(GQ), + q(0067) => q(ER), + q(0068) => q(EE), + q(0069) => q(ET), + q(0070) => q(FK), + q(0071) => q(FO), + q(0072) => q(FJ), + q(0073) => q(FI), + q(0074) => q(FR), + q(0075) => q(GF), + q(0076) => q(PF), + q(0077) => q(TF), + q(0078) => q(GA), + q(0079) => q(GM), + q(0080) => q(GE), + q(0081) => q(DE), + q(0082) => q(GH), + q(0083) => q(GI), + q(0084) => q(GR), + q(0085) => q(GL), + q(0086) => q(GD), + q(0087) => q(GP), + q(0088) => q(GU), + q(0089) => q(GT), + q(0090) => q(GG), + q(0091) => q(GN), + q(0092) => q(GW), + q(0093) => q(GY), + q(0094) => q(HT), + q(0095) => q(HM), + q(0096) => q(VA), + q(0097) => q(HN), + q(0098) => q(HK), + q(0099) => q(HU), + q(0100) => q(IS), + q(0101) => q(IN), + q(0102) => q(ID), + q(0103) => q(IR), + q(0104) => q(IQ), + q(0105) => q(IE), + q(0106) => q(IM), + q(0107) => q(IL), + q(0108) => q(IT), + q(0109) => q(JM), + q(0110) => q(JP), + q(0111) => q(JE), + q(0112) => q(JO), + q(0113) => q(KZ), + q(0114) => q(KE), + q(0115) => q(KI), + q(0116) => q(KP), + q(0117) => q(KR), + q(0118) => q(KW), + q(0119) => q(KG), + q(0120) => q(LA), + q(0121) => q(LV), + q(0122) => q(LB), + q(0123) => q(LS), + q(0124) => q(LR), + q(0125) => q(LY), + q(0126) => q(LI), + q(0127) => q(LT), + q(0128) => q(LU), + q(0129) => q(MO), + q(0130) => q(MK), + q(0131) => q(MG), + q(0132) => q(MW), + q(0133) => q(MY), + q(0134) => q(MV), + q(0135) => q(ML), + q(0136) => q(MT), + q(0137) => q(MH), + q(0138) => q(MQ), + q(0139) => q(MR), + q(0140) => q(MU), + q(0141) => q(YT), + q(0142) => q(MX), + q(0143) => q(FM), + q(0144) => q(MD), + q(0145) => q(MC), + q(0146) => q(MN), + q(0147) => q(ME), + q(0148) => q(MS), + q(0149) => q(MA), + q(0150) => q(MZ), + q(0151) => q(MM), + q(0152) => q(NA), + q(0153) => q(NR), + q(0154) => q(NP), + q(0155) => q(NL), + q(0156) => q(AN), + q(0157) => q(NC), + q(0158) => q(NZ), + q(0159) => q(NI), + q(0160) => q(NE), + q(0161) => q(NG), + q(0162) => q(NU), + q(0163) => q(NF), + q(0164) => q(MP), + q(0165) => q(NO), + q(0166) => q(OM), + q(0167) => q(PK), + q(0168) => q(PW), + q(0169) => q(PS), + q(0170) => q(PA), + q(0171) => q(PG), + q(0172) => q(PY), + q(0173) => q(PE), + q(0174) => q(PH), + q(0175) => q(PN), + q(0176) => q(PL), + q(0177) => q(PT), + q(0178) => q(PR), + q(0179) => q(QA), + q(0180) => q(RE), + q(0181) => q(RO), + q(0182) => q(RU), + q(0183) => q(RW), + q(0184) => q(BL), + q(0185) => q(SH), + q(0186) => q(KN), + q(0187) => q(LC), + q(0188) => q(MF), + q(0189) => q(PM), + q(0190) => q(VC), + q(0191) => q(WS), + q(0192) => q(SM), + q(0193) => q(ST), + q(0194) => q(SA), + q(0195) => q(SN), + q(0196) => q(RS), + q(0197) => q(SC), + q(0198) => q(SL), + q(0199) => q(SG), + q(0200) => q(SK), + q(0201) => q(SI), + q(0202) => q(SB), + q(0203) => q(SO), + q(0204) => q(ZA), + q(0205) => q(GS), + q(0206) => q(ES), + q(0207) => q(LK), + q(0208) => q(SD), + q(0209) => q(SR), + q(0210) => q(SJ), + q(0211) => q(SZ), + q(0212) => q(SE), + q(0213) => q(CH), + q(0214) => q(SY), + q(0215) => q(TW), + q(0216) => q(TJ), + q(0217) => q(TZ), + q(0218) => q(TH), + q(0219) => q(TL), + q(0220) => q(TG), + q(0221) => q(TK), + q(0222) => q(TO), + q(0223) => q(TT), + q(0224) => q(TN), + q(0225) => q(TR), + q(0226) => q(TM), + q(0227) => q(TC), + q(0228) => q(TV), + q(0229) => q(UG), + q(0230) => q(UA), + q(0231) => q(AE), + q(0232) => q(UK), + q(0233) => q(US), + q(0234) => q(UM), + q(0235) => q(UY), + q(0236) => q(UZ), + q(0237) => q(VU), + q(0238) => q(VE), + q(0239) => q(VN), + q(0240) => q(VG), + q(0241) => q(VI), + q(0242) => q(WF), + q(0243) => q(EH), + q(0244) => q(YE), + q(0245) => q(ZM), + q(0246) => q(ZW), + q(0272) => q(AC), + q(0273) => q(EU), + q(0274) => q(SU), + q(0275) => q(TP), + q(0276) => q(FX), + }, + q(fips) => { + q(0001) => q(AF), + q(0003) => q(AL), + q(0004) => q(AG), + q(0005) => q(AQ), + q(0006) => q(AN), + q(0007) => q(AO), + q(0008) => q(AV), + q(0009) => q(AY), + q(0010) => q(AC), + q(0011) => q(AR), + q(0012) => q(AM), + q(0013) => q(AA), + q(0014) => q(AS), + q(0015) => q(AU), + q(0016) => q(AJ), + q(0017) => q(BF), + q(0018) => q(BA), + q(0019) => q(BG), + q(0020) => q(BB), + q(0021) => q(BO), + q(0022) => q(BE), + q(0023) => q(BH), + q(0024) => q(BN), + q(0025) => q(BD), + q(0026) => q(BT), + q(0027) => q(BL), + q(0028) => q(BK), + q(0029) => q(BC), + q(0030) => q(BV), + q(0031) => q(BR), + q(0032) => q(IO), + q(0033) => q(BX), + q(0034) => q(BU), + q(0035) => q(UV), + q(0036) => q(BY), + q(0037) => q(CB), + q(0038) => q(CM), + q(0039) => q(CA), + q(0040) => q(CV), + q(0041) => q(CJ), + q(0042) => q(CT), + q(0043) => q(CD), + q(0044) => q(CI), + q(0045) => q(CH), + q(0046) => q(KT), + q(0047) => q(CK), + q(0048) => q(CO), + q(0049) => q(CN), + q(0050) => q(CF), + q(0051) => q(CG), + q(0052) => q(CW), + q(0053) => q(CS), + q(0054) => q(IV), + q(0055) => q(HR), + q(0056) => q(CU), + q(0057) => q(CY), + q(0058) => q(EZ), + q(0059) => q(DA), + q(0060) => q(DJ), + q(0061) => q(DO), + q(0062) => q(DR), + q(0063) => q(EC), + q(0064) => q(EG), + q(0065) => q(ES), + q(0066) => q(EK), + q(0067) => q(ER), + q(0068) => q(EN), + q(0069) => q(ET), + q(0070) => q(FK), + q(0071) => q(FO), + q(0072) => q(FJ), + q(0073) => q(FI), + q(0074) => q(FR), + q(0075) => q(FG), + q(0076) => q(FP), + q(0077) => q(FS), + q(0078) => q(GB), + q(0079) => q(GA), + q(0080) => q(GG), + q(0081) => q(GM), + q(0082) => q(GH), + q(0083) => q(GI), + q(0084) => q(GR), + q(0085) => q(GL), + q(0086) => q(GJ), + q(0087) => q(GP), + q(0088) => q(GQ), + q(0089) => q(GT), + q(0090) => q(GK), + q(0091) => q(GV), + q(0092) => q(PU), + q(0093) => q(GY), + q(0094) => q(HA), + q(0095) => q(HM), + q(0096) => q(VT), + q(0097) => q(HO), + q(0098) => q(HK), + q(0099) => q(HU), + q(0100) => q(IC), + q(0101) => q(IN), + q(0102) => q(ID), + q(0103) => q(IR), + q(0104) => q(IZ), + q(0105) => q(EI), + q(0106) => q(IM), + q(0107) => q(IS), + q(0108) => q(IT), + q(0109) => q(JM), + q(0110) => q(JA), + q(0111) => q(JE), + q(0112) => q(JO), + q(0113) => q(KZ), + q(0114) => q(KE), + q(0115) => q(KR), + q(0116) => q(KN), + q(0117) => q(KS), + q(0118) => q(KU), + q(0119) => q(KG), + q(0120) => q(LA), + q(0121) => q(LG), + q(0122) => q(LE), + q(0123) => q(LT), + q(0124) => q(LI), + q(0125) => q(LY), + q(0126) => q(LS), + q(0127) => q(LH), + q(0128) => q(LU), + q(0129) => q(MC), + q(0130) => q(MK), + q(0131) => q(MA), + q(0132) => q(MI), + q(0133) => q(MY), + q(0134) => q(MV), + q(0135) => q(ML), + q(0136) => q(MT), + q(0137) => q(RM), + q(0138) => q(MB), + q(0139) => q(MR), + q(0140) => q(MP), + q(0141) => q(MF), + q(0142) => q(MX), + q(0143) => q(FM), + q(0144) => q(MD), + q(0145) => q(MN), + q(0146) => q(MG), + q(0147) => q(MJ), + q(0148) => q(MH), + q(0149) => q(MO), + q(0150) => q(MZ), + q(0151) => q(BM), + q(0152) => q(WA), + q(0153) => q(NR), + q(0154) => q(NP), + q(0155) => q(NL), + q(0156) => q(NT), + q(0157) => q(NC), + q(0158) => q(NZ), + q(0159) => q(NU), + q(0160) => q(NG), + q(0161) => q(NI), + q(0162) => q(NE), + q(0163) => q(NF), + q(0164) => q(CQ), + q(0165) => q(NO), + q(0166) => q(MU), + q(0167) => q(PK), + q(0168) => q(PS), + q(0170) => q(PM), + q(0171) => q(PP), + q(0172) => q(PA), + q(0173) => q(PE), + q(0174) => q(RP), + q(0175) => q(PC), + q(0176) => q(PL), + q(0177) => q(PO), + q(0178) => q(RQ), + q(0179) => q(QA), + q(0180) => q(RE), + q(0181) => q(RO), + q(0182) => q(RS), + q(0183) => q(RW), + q(0184) => q(TB), + q(0185) => q(SH), + q(0186) => q(SC), + q(0187) => q(ST), + q(0188) => q(RN), + q(0189) => q(SB), + q(0190) => q(VC), + q(0191) => q(WS), + q(0192) => q(SM), + q(0193) => q(TP), + q(0194) => q(SA), + q(0195) => q(SG), + q(0196) => q(RI), + q(0197) => q(SE), + q(0198) => q(SL), + q(0199) => q(SN), + q(0200) => q(LO), + q(0201) => q(SI), + q(0202) => q(BP), + q(0203) => q(SO), + q(0204) => q(SF), + q(0205) => q(SX), + q(0206) => q(SP), + q(0207) => q(CE), + q(0208) => q(SU), + q(0209) => q(NS), + q(0211) => q(WZ), + q(0212) => q(SW), + q(0213) => q(SZ), + q(0214) => q(SY), + q(0215) => q(TW), + q(0216) => q(TI), + q(0217) => q(TZ), + q(0218) => q(TH), + q(0219) => q(TT), + q(0220) => q(TO), + q(0221) => q(TL), + q(0222) => q(TN), + q(0223) => q(TD), + q(0224) => q(TS), + q(0225) => q(TU), + q(0226) => q(TX), + q(0227) => q(TK), + q(0228) => q(TV), + q(0229) => q(UG), + q(0230) => q(UP), + q(0231) => q(AE), + q(0232) => q(UK), + q(0233) => q(US), + q(0235) => q(UY), + q(0236) => q(UZ), + q(0237) => q(NH), + q(0238) => q(VE), + q(0239) => q(VM), + q(0240) => q(VI), + q(0241) => q(VQ), + q(0242) => q(WF), + q(0243) => q(WI), + q(0244) => q(YM), + q(0245) => q(ZA), + q(0246) => q(ZI), + q(0248) => q(YI), + q(0249) => q(AT), + q(0250) => q(FQ), + q(0251) => q(BS), + q(0252) => q(IP), + q(0253) => q(CR), + q(0254) => q(EU), + q(0255) => q(GZ), + q(0256) => q(GO), + q(0257) => q(HQ), + q(0258) => q(JN), + q(0259) => q(DQ), + q(0260) => q(JQ), + q(0261) => q(JU), + q(0262) => q(KQ), + q(0263) => q(MQ), + q(0264) => q(BQ), + q(0265) => q(LQ), + q(0266) => q(PF), + q(0267) => q(PG), + q(0268) => q(SV), + q(0269) => q(TE), + q(0270) => q(WQ), + q(0271) => q(WE), + q(0277) => q(KV), + }, + q(num) => { + q(0001) => q(004), + q(0002) => q(248), + q(0003) => q(008), + q(0004) => q(012), + q(0005) => q(016), + q(0006) => q(020), + q(0007) => q(024), + q(0008) => q(660), + q(0009) => q(010), + q(0010) => q(028), + q(0011) => q(032), + q(0012) => q(051), + q(0013) => q(533), + q(0014) => q(036), + q(0015) => q(040), + q(0016) => q(031), + q(0017) => q(044), + q(0018) => q(048), + q(0019) => q(050), + q(0020) => q(052), + q(0021) => q(112), + q(0022) => q(056), + q(0023) => q(084), + q(0024) => q(204), + q(0025) => q(060), + q(0026) => q(064), + q(0027) => q(068), + q(0028) => q(070), + q(0029) => q(072), + q(0030) => q(074), + q(0031) => q(076), + q(0032) => q(086), + q(0033) => q(096), + q(0034) => q(100), + q(0035) => q(854), + q(0036) => q(108), + q(0037) => q(116), + q(0038) => q(120), + q(0039) => q(124), + q(0040) => q(132), + q(0041) => q(136), + q(0042) => q(140), + q(0043) => q(148), + q(0044) => q(152), + q(0045) => q(156), + q(0046) => q(162), + q(0047) => q(166), + q(0048) => q(170), + q(0049) => q(174), + q(0050) => q(178), + q(0051) => q(180), + q(0052) => q(184), + q(0053) => q(188), + q(0054) => q(384), + q(0055) => q(191), + q(0056) => q(192), + q(0057) => q(196), + q(0058) => q(203), + q(0059) => q(208), + q(0060) => q(262), + q(0061) => q(212), + q(0062) => q(214), + q(0063) => q(218), + q(0064) => q(818), + q(0065) => q(222), + q(0066) => q(226), + q(0067) => q(232), + q(0068) => q(233), + q(0069) => q(231), + q(0070) => q(238), + q(0071) => q(234), + q(0072) => q(242), + q(0073) => q(246), + q(0074) => q(250), + q(0075) => q(254), + q(0076) => q(258), + q(0077) => q(260), + q(0078) => q(266), + q(0079) => q(270), + q(0080) => q(268), + q(0081) => q(276), + q(0082) => q(288), + q(0083) => q(292), + q(0084) => q(300), + q(0085) => q(304), + q(0086) => q(308), + q(0087) => q(312), + q(0088) => q(316), + q(0089) => q(320), + q(0090) => q(831), + q(0091) => q(324), + q(0092) => q(624), + q(0093) => q(328), + q(0094) => q(332), + q(0095) => q(334), + q(0096) => q(336), + q(0097) => q(340), + q(0098) => q(344), + q(0099) => q(348), + q(0100) => q(352), + q(0101) => q(356), + q(0102) => q(360), + q(0103) => q(364), + q(0104) => q(368), + q(0105) => q(372), + q(0106) => q(833), + q(0107) => q(376), + q(0108) => q(380), + q(0109) => q(388), + q(0110) => q(392), + q(0111) => q(832), + q(0112) => q(400), + q(0113) => q(398), + q(0114) => q(404), + q(0115) => q(296), + q(0116) => q(408), + q(0117) => q(410), + q(0118) => q(414), + q(0119) => q(417), + q(0120) => q(418), + q(0121) => q(428), + q(0122) => q(422), + q(0123) => q(426), + q(0124) => q(430), + q(0125) => q(434), + q(0126) => q(438), + q(0127) => q(440), + q(0128) => q(442), + q(0129) => q(446), + q(0130) => q(807), + q(0131) => q(450), + q(0132) => q(454), + q(0133) => q(458), + q(0134) => q(462), + q(0135) => q(466), + q(0136) => q(470), + q(0137) => q(584), + q(0138) => q(474), + q(0139) => q(478), + q(0140) => q(480), + q(0141) => q(175), + q(0142) => q(484), + q(0143) => q(583), + q(0144) => q(498), + q(0145) => q(492), + q(0146) => q(496), + q(0147) => q(499), + q(0148) => q(500), + q(0149) => q(504), + q(0150) => q(508), + q(0151) => q(104), + q(0152) => q(516), + q(0153) => q(520), + q(0154) => q(524), + q(0155) => q(528), + q(0156) => q(530), + q(0157) => q(540), + q(0158) => q(554), + q(0159) => q(558), + q(0160) => q(562), + q(0161) => q(566), + q(0162) => q(570), + q(0163) => q(574), + q(0164) => q(580), + q(0165) => q(578), + q(0166) => q(512), + q(0167) => q(586), + q(0168) => q(585), + q(0169) => q(275), + q(0170) => q(591), + q(0171) => q(598), + q(0172) => q(600), + q(0173) => q(604), + q(0174) => q(608), + q(0175) => q(612), + q(0176) => q(616), + q(0177) => q(620), + q(0178) => q(630), + q(0179) => q(634), + q(0180) => q(638), + q(0181) => q(642), + q(0182) => q(643), + q(0183) => q(646), + q(0184) => q(652), + q(0185) => q(654), + q(0186) => q(659), + q(0187) => q(662), + q(0188) => q(663), + q(0189) => q(666), + q(0190) => q(670), + q(0191) => q(882), + q(0192) => q(674), + q(0193) => q(678), + q(0194) => q(682), + q(0195) => q(686), + q(0196) => q(688), + q(0197) => q(690), + q(0198) => q(694), + q(0199) => q(702), + q(0200) => q(703), + q(0201) => q(705), + q(0202) => q(090), + q(0203) => q(706), + q(0204) => q(710), + q(0206) => q(724), + q(0207) => q(144), + q(0208) => q(736), + q(0209) => q(740), + q(0210) => q(744), + q(0211) => q(748), + q(0212) => q(752), + q(0213) => q(756), + q(0214) => q(760), + q(0215) => q(158), + q(0216) => q(762), + q(0217) => q(834), + q(0218) => q(764), + q(0219) => q(626), + q(0220) => q(768), + q(0221) => q(772), + q(0222) => q(776), + q(0223) => q(780), + q(0224) => q(788), + q(0225) => q(792), + q(0226) => q(795), + q(0227) => q(796), + q(0228) => q(798), + q(0229) => q(800), + q(0230) => q(804), + q(0231) => q(784), + q(0232) => q(826), + q(0233) => q(840), + q(0234) => q(581), + q(0235) => q(858), + q(0236) => q(860), + q(0237) => q(548), + q(0238) => q(862), + q(0239) => q(704), + q(0240) => q(092), + q(0241) => q(850), + q(0242) => q(876), + q(0243) => q(732), + q(0244) => q(887), + q(0245) => q(894), + q(0246) => q(716), + q(0247) => q(830), + q(0276) => q(249), + }, +}; + +1; diff --git a/cpan/Locale-Codes/lib/Locale/Codes/Currency.pm b/cpan/Locale-Codes/lib/Locale/Codes/Currency.pm new file mode 100644 index 0000000..c8c9c69 --- /dev/null +++ b/cpan/Locale-Codes/lib/Locale/Codes/Currency.pm @@ -0,0 +1,3102 @@ +package Locale::Codes::Currency; + +# This file was automatically generated. Any changes to this file will +# be lost the next time 'get_codes' is run. +# Generated on: Mon Apr 5 15:43:34 EDT 2010 + +=pod + +=head1 NAME + +Locale::Codes::Currency - currency codes for the Locale::Currency module + +=head1 SYNOPSIS + +This module contains data used by the Locale::Currency module. It is +not intended to be used directly, and contains no calleable routines. + +=head1 AUTHOR + +See Locale::Codes for full author history. + +Currently maintained by Sullivan Beck (sbeck@cpan.org). + +=head1 COPYRIGHT + + Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 2001-2010 Neil Bowers + Copyright (c) 2010-2010 Sullivan Beck + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=cut + +use strict; +use warnings; +require 5.002; + +use vars qw($VERSION); +$VERSION='3.12'; + +$Locale::Codes::Data{'currency'}{'id'} = '0180'; + +$Locale::Codes::Data{'currency'}{'id2names'} = { + q(0001) => [ + q(Afghani), + ], + q(0002) => [ + q(Euro), + ], + q(0003) => [ + q(Lek), + ], + q(0004) => [ + q(Algerian Dinar), + ], + q(0005) => [ + q(US Dollar), + ], + q(0006) => [ + q(Kwanza), + ], + q(0007) => [ + q(East Caribbean Dollar), + ], + q(0008) => [ + q(Argentine Peso), + ], + q(0009) => [ + q(Armenian Dram), + ], + q(0010) => [ + q(Aruban Guilder), + ], + q(0011) => [ + q(Australian Dollar), + ], + q(0012) => [ + q(Azerbaijanian Manat), + ], + q(0013) => [ + q(Bahamian Dollar), + ], + q(0014) => [ + q(Bahraini Dinar), + ], + q(0015) => [ + q(Taka), + ], + q(0016) => [ + q(Barbados Dollar), + ], + q(0017) => [ + q(Belarussian Ruble), + ], + q(0018) => [ + q(Belize Dollar), + ], + q(0019) => [ + q(CFA Franc BCEAO), + ], + q(0020) => [ + q(Bermudian Dollar (customarily known as Bermuda Dollar)), + ], + q(0021) => [ + q(Indian Rupee), + ], + q(0022) => [ + q(Ngultrum), + ], + q(0023) => [ + q(Boliviano), + ], + q(0024) => [ + q(Mvdol), + ], + q(0025) => [ + q(Convertible Marks), + ], + q(0026) => [ + q(Pula), + ], + q(0027) => [ + q(Norwegian Krone), + ], + q(0028) => [ + q(Brazilian Real), + ], + q(0029) => [ + q(Brunei Dollar), + ], + q(0030) => [ + q(Bulgarian Lev), + ], + q(0031) => [ + q(Burundi Franc), + ], + q(0032) => [ + q(Riel), + ], + q(0033) => [ + q(CFA Franc BEAC), + ], + q(0034) => [ + q(Canadian Dollar), + ], + q(0035) => [ + q(Cape Verde Escudo), + ], + q(0036) => [ + q(Cayman Islands Dollar), + ], + q(0037) => [ + q(Chilean Peso), + ], + q(0038) => [ + q(Unidades de fomento), + ], + q(0039) => [ + q(Yuan Renminbi), + ], + q(0040) => [ + q(Colombian Peso), + ], + q(0041) => [ + q(Unidad de Valor Real), + ], + q(0042) => [ + q(Comoro Franc), + ], + q(0043) => [ + q(Congolese Franc), + ], + q(0044) => [ + q(New Zealand Dollar), + ], + q(0045) => [ + q(Costa Rican Colon), + ], + q(0046) => [ + q(Croatian Kuna), + ], + q(0047) => [ + q(Cuban Peso), + ], + q(0048) => [ + q(Peso Convertible), + ], + q(0049) => [ + q(Czech Koruna), + ], + q(0050) => [ + q(Danish Krone), + ], + q(0051) => [ + q(Djibouti Franc), + ], + q(0052) => [ + q(Dominican Peso), + ], + q(0053) => [ + q(Egyptian Pound), + ], + q(0054) => [ + q(El Salvador Colon), + ], + q(0055) => [ + q(Nakfa), + ], + q(0056) => [ + q(Kroon), + ], + q(0057) => [ + q(Ethiopian Birr), + ], + q(0058) => [ + q(Falkland Islands Pound), + ], + q(0059) => [ + q(Fiji Dollar), + ], + q(0060) => [ + q(CFP Franc), + ], + q(0061) => [ + q(Dalasi), + ], + q(0062) => [ + q(Lari), + ], + q(0063) => [ + q(Cedi), + ], + q(0064) => [ + q(Gibraltar Pound), + ], + q(0065) => [ + q(Quetzal), + ], + q(0066) => [ + q(Pound Sterling), + ], + q(0067) => [ + q(Guinea Franc), + ], + q(0068) => [ + q(Guinea-Bissau Peso), + ], + q(0069) => [ + q(Guyana Dollar), + ], + q(0070) => [ + q(Gourde), + ], + q(0071) => [ + q(Lempira), + ], + q(0072) => [ + q(Hong Kong Dollar), + ], + q(0073) => [ + q(Forint), + ], + q(0074) => [ + q(Iceland Krona), + ], + q(0075) => [ + q(Rupiah), + ], + q(0076) => [ + q(Iranian Rial), + ], + q(0077) => [ + q(Iraqi Dinar), + ], + q(0078) => [ + q(New Israeli Sheqel), + ], + q(0079) => [ + q(Jamaican Dollar), + ], + q(0080) => [ + q(Yen), + ], + q(0081) => [ + q(Jordanian Dinar), + ], + q(0082) => [ + q(Tenge), + ], + q(0083) => [ + q(Kenyan Shilling), + ], + q(0084) => [ + q(North Korean Won), + ], + q(0085) => [ + q(Won), + ], + q(0086) => [ + q(Kuwaiti Dinar), + ], + q(0087) => [ + q(Som), + ], + q(0088) => [ + q(Kip), + ], + q(0089) => [ + q(Latvian Lats), + ], + q(0090) => [ + q(Lebanese Pound), + ], + q(0091) => [ + q(Rand), + ], + q(0092) => [ + q(Loti), + ], + q(0093) => [ + q(Liberian Dollar), + ], + q(0094) => [ + q(Libyan Dinar), + ], + q(0095) => [ + q(Swiss Franc), + ], + q(0096) => [ + q(Lithuanian Litas), + ], + q(0097) => [ + q(Pataca), + ], + q(0098) => [ + q(Denar), + ], + q(0099) => [ + q(Malagasy Ariary), + ], + q(0100) => [ + q(Kwacha), + ], + q(0101) => [ + q(Malaysian Ringgit), + ], + q(0102) => [ + q(Rufiyaa), + ], + q(0103) => [ + q(Ouguiya), + ], + q(0104) => [ + q(Mauritius Rupee), + ], + q(0105) => [ + q(Mexican Peso), + ], + q(0106) => [ + q(Mexican Unidad de Inversion (UDI)), + ], + q(0107) => [ + q(Moldovan Leu), + ], + q(0108) => [ + q(Tugrik), + ], + q(0109) => [ + q(Moroccan Dirham), + ], + q(0110) => [ + q(Metical), + ], + q(0111) => [ + q(Kyat), + ], + q(0112) => [ + q(Namibia Dollar), + ], + q(0113) => [ + q(Nepalese Rupee), + ], + q(0114) => [ + q(Netherlands Antillian Guilder), + ], + q(0115) => [ + q(Cordoba Oro), + ], + q(0116) => [ + q(Naira), + ], + q(0117) => [ + q(Rial Omani), + ], + q(0118) => [ + q(Pakistan Rupee), + ], + q(0119) => [ + q(Balboa), + ], + q(0120) => [ + q(Kina), + ], + q(0121) => [ + q(Guarani), + ], + q(0122) => [ + q(Nuevo Sol), + ], + q(0123) => [ + q(Philippine Peso), + ], + q(0124) => [ + q(Zloty), + ], + q(0125) => [ + q(Qatari Rial), + ], + q(0126) => [ + q(New Leu), + ], + q(0127) => [ + q(Russian Ruble), + ], + q(0128) => [ + q(Rwanda Franc), + ], + q(0129) => [ + q(Saint Helena Pound), + ], + q(0130) => [ + q(Tala), + ], + q(0131) => [ + q(Dobra), + ], + q(0132) => [ + q(Saudi Riyal), + ], + q(0133) => [ + q(Serbian Dinar), + ], + q(0134) => [ + q(Seychelles Rupee), + ], + q(0135) => [ + q(Leone), + ], + q(0136) => [ + q(Singapore Dollar), + ], + q(0137) => [ + q(Solomon Islands Dollar), + ], + q(0138) => [ + q(Somali Shilling), + ], + q(0139) => [ + q(Sri Lanka Rupee), + ], + q(0140) => [ + q(Sudanese Pound), + ], + q(0141) => [ + q(Surinam Dollar), + ], + q(0142) => [ + q(Lilangeni), + ], + q(0143) => [ + q(Swedish Krona), + ], + q(0144) => [ + q(WIR Franc), + ], + q(0145) => [ + q(WIR Euro), + ], + q(0146) => [ + q(Syrian Pound), + ], + q(0147) => [ + q(New Taiwan Dollar), + ], + q(0148) => [ + q(Somoni), + ], + q(0149) => [ + q(Tanzanian Shilling), + ], + q(0150) => [ + q(Baht), + ], + q(0151) => [ + q(Pa'anga), + ], + q(0152) => [ + q(Trinidad and Tobago Dollar), + ], + q(0153) => [ + q(Tunisian Dinar), + ], + q(0154) => [ + q(Turkish Lira), + ], + q(0155) => [ + q(Manat), + ], + q(0156) => [ + q(Uganda Shilling), + ], + q(0157) => [ + q(Hryvnia), + ], + q(0158) => [ + q(UAE Dirham), + ], + q(0159) => [ + q(US Dollar (Same day)), + ], + q(0160) => [ + q(US Dollar (Next day)), + ], + q(0161) => [ + q(Peso Uruguayo), + ], + q(0162) => [ + q(Uruguay Peso en Unidades Indexadas), + ], + q(0163) => [ + q(Uzbekistan Sum), + ], + q(0164) => [ + q(Vatu), + ], + q(0165) => [ + q(Bolivar Fuerte), + ], + q(0166) => [ + q(Dong), + ], + q(0167) => [ + q(Yemeni Rial), + ], + q(0168) => [ + q(Zambian Kwacha), + ], + q(0169) => [ + q(Zimbabwe Dollar), + ], + q(0170) => [ + q(Gold), + ], + q(0171) => [ + q(Bond Markets Units European Composite Unit (EURCO)), + ], + q(0172) => [ + q(European Monetary Unit (E.M.U.-6)), + ], + q(0173) => [ + q(European Unit of Account 9(E.U.A.-9)), + ], + q(0174) => [ + q(European Unit of Account 17(E.U.A.-17)), + ], + q(0175) => [ + q(SDR), + ], + q(0176) => [ + q(Palladium), + ], + q(0177) => [ + q(Platinum), + ], + q(0178) => [ + q(Silver), + ], + q(0179) => [ + q(UIC-Franc), + ], +}; + +$Locale::Codes::Data{'currency'}{'alias2id'} = { + q(afghani) => [ + q(0001), + q(0), + ], + q(algerian dinar) => [ + q(0004), + q(0), + ], + q(argentine peso) => [ + q(0008), + q(0), + ], + q(armenian dram) => [ + q(0009), + q(0), + ], + q(aruban guilder) => [ + q(0010), + q(0), + ], + q(australian dollar) => [ + q(0011), + q(0), + ], + q(azerbaijanian manat) => [ + q(0012), + q(0), + ], + q(bahamian dollar) => [ + q(0013), + q(0), + ], + q(bahraini dinar) => [ + q(0014), + q(0), + ], + q(baht) => [ + q(0150), + q(0), + ], + q(balboa) => [ + q(0119), + q(0), + ], + q(barbados dollar) => [ + q(0016), + q(0), + ], + q(belarussian ruble) => [ + q(0017), + q(0), + ], + q(belize dollar) => [ + q(0018), + q(0), + ], + q(bermudian dollar (customarily known as bermuda dollar)) => [ + q(0020), + q(0), + ], + q(bolivar fuerte) => [ + q(0165), + q(0), + ], + q(boliviano) => [ + q(0023), + q(0), + ], + q(bond markets units european composite unit (eurco)) => [ + q(0171), + q(0), + ], + q(brazilian real) => [ + q(0028), + q(0), + ], + q(brunei dollar) => [ + q(0029), + q(0), + ], + q(bulgarian lev) => [ + q(0030), + q(0), + ], + q(burundi franc) => [ + q(0031), + q(0), + ], + q(canadian dollar) => [ + q(0034), + q(0), + ], + q(cape verde escudo) => [ + q(0035), + q(0), + ], + q(cayman islands dollar) => [ + q(0036), + q(0), + ], + q(cedi) => [ + q(0063), + q(0), + ], + q(cfa franc bceao) => [ + q(0019), + q(0), + ], + q(cfa franc beac) => [ + q(0033), + q(0), + ], + q(cfp franc) => [ + q(0060), + q(0), + ], + q(chilean peso) => [ + q(0037), + q(0), + ], + q(colombian peso) => [ + q(0040), + q(0), + ], + q(comoro franc) => [ + q(0042), + q(0), + ], + q(congolese franc) => [ + q(0043), + q(0), + ], + q(convertible marks) => [ + q(0025), + q(0), + ], + q(cordoba oro) => [ + q(0115), + q(0), + ], + q(costa rican colon) => [ + q(0045), + q(0), + ], + q(croatian kuna) => [ + q(0046), + q(0), + ], + q(cuban peso) => [ + q(0047), + q(0), + ], + q(czech koruna) => [ + q(0049), + q(0), + ], + q(dalasi) => [ + q(0061), + q(0), + ], + q(danish krone) => [ + q(0050), + q(0), + ], + q(denar) => [ + q(0098), + q(0), + ], + q(djibouti franc) => [ + q(0051), + q(0), + ], + q(dobra) => [ + q(0131), + q(0), + ], + q(dominican peso) => [ + q(0052), + q(0), + ], + q(dong) => [ + q(0166), + q(0), + ], + q(east caribbean dollar) => [ + q(0007), + q(0), + ], + q(egyptian pound) => [ + q(0053), + q(0), + ], + q(el salvador colon) => [ + q(0054), + q(0), + ], + q(ethiopian birr) => [ + q(0057), + q(0), + ], + q(euro) => [ + q(0002), + q(0), + ], + q(european monetary unit (e.m.u.-6)) => [ + q(0172), + q(0), + ], + q(european unit of account 17(e.u.a.-17)) => [ + q(0174), + q(0), + ], + q(european unit of account 9(e.u.a.-9)) => [ + q(0173), + q(0), + ], + q(falkland islands pound) => [ + q(0058), + q(0), + ], + q(fiji dollar) => [ + q(0059), + q(0), + ], + q(forint) => [ + q(0073), + q(0), + ], + q(gibraltar pound) => [ + q(0064), + q(0), + ], + q(gold) => [ + q(0170), + q(0), + ], + q(gourde) => [ + q(0070), + q(0), + ], + q(guarani) => [ + q(0121), + q(0), + ], + q(guinea franc) => [ + q(0067), + q(0), + ], + q(guinea-bissau peso) => [ + q(0068), + q(0), + ], + q(guyana dollar) => [ + q(0069), + q(0), + ], + q(hong kong dollar) => [ + q(0072), + q(0), + ], + q(hryvnia) => [ + q(0157), + q(0), + ], + q(iceland krona) => [ + q(0074), + q(0), + ], + q(indian rupee) => [ + q(0021), + q(0), + ], + q(iranian rial) => [ + q(0076), + q(0), + ], + q(iraqi dinar) => [ + q(0077), + q(0), + ], + q(jamaican dollar) => [ + q(0079), + q(0), + ], + q(jordanian dinar) => [ + q(0081), + q(0), + ], + q(kenyan shilling) => [ + q(0083), + q(0), + ], + q(kina) => [ + q(0120), + q(0), + ], + q(kip) => [ + q(0088), + q(0), + ], + q(kroon) => [ + q(0056), + q(0), + ], + q(kuwaiti dinar) => [ + q(0086), + q(0), + ], + q(kwacha) => [ + q(0100), + q(0), + ], + q(kwanza) => [ + q(0006), + q(0), + ], + q(kyat) => [ + q(0111), + q(0), + ], + q(lari) => [ + q(0062), + q(0), + ], + q(latvian lats) => [ + q(0089), + q(0), + ], + q(lebanese pound) => [ + q(0090), + q(0), + ], + q(lek) => [ + q(0003), + q(0), + ], + q(lempira) => [ + q(0071), + q(0), + ], + q(leone) => [ + q(0135), + q(0), + ], + q(liberian dollar) => [ + q(0093), + q(0), + ], + q(libyan dinar) => [ + q(0094), + q(0), + ], + q(lilangeni) => [ + q(0142), + q(0), + ], + q(lithuanian litas) => [ + q(0096), + q(0), + ], + q(loti) => [ + q(0092), + q(0), + ], + q(malagasy ariary) => [ + q(0099), + q(0), + ], + q(malaysian ringgit) => [ + q(0101), + q(0), + ], + q(manat) => [ + q(0155), + q(0), + ], + q(mauritius rupee) => [ + q(0104), + q(0), + ], + q(metical) => [ + q(0110), + q(0), + ], + q(mexican peso) => [ + q(0105), + q(0), + ], + q(mexican unidad de inversion (udi)) => [ + q(0106), + q(0), + ], + q(moldovan leu) => [ + q(0107), + q(0), + ], + q(moroccan dirham) => [ + q(0109), + q(0), + ], + q(mvdol) => [ + q(0024), + q(0), + ], + q(naira) => [ + q(0116), + q(0), + ], + q(nakfa) => [ + q(0055), + q(0), + ], + q(namibia dollar) => [ + q(0112), + q(0), + ], + q(nepalese rupee) => [ + q(0113), + q(0), + ], + q(netherlands antillian guilder) => [ + q(0114), + q(0), + ], + q(new israeli sheqel) => [ + q(0078), + q(0), + ], + q(new leu) => [ + q(0126), + q(0), + ], + q(new taiwan dollar) => [ + q(0147), + q(0), + ], + q(new zealand dollar) => [ + q(0044), + q(0), + ], + q(ngultrum) => [ + q(0022), + q(0), + ], + q(north korean won) => [ + q(0084), + q(0), + ], + q(norwegian krone) => [ + q(0027), + q(0), + ], + q(nuevo sol) => [ + q(0122), + q(0), + ], + q(ouguiya) => [ + q(0103), + q(0), + ], + q(pa'anga) => [ + q(0151), + q(0), + ], + q(pakistan rupee) => [ + q(0118), + q(0), + ], + q(palladium) => [ + q(0176), + q(0), + ], + q(pataca) => [ + q(0097), + q(0), + ], + q(peso convertible) => [ + q(0048), + q(0), + ], + q(peso uruguayo) => [ + q(0161), + q(0), + ], + q(philippine peso) => [ + q(0123), + q(0), + ], + q(platinum) => [ + q(0177), + q(0), + ], + q(pound sterling) => [ + q(0066), + q(0), + ], + q(pula) => [ + q(0026), + q(0), + ], + q(qatari rial) => [ + q(0125), + q(0), + ], + q(quetzal) => [ + q(0065), + q(0), + ], + q(rand) => [ + q(0091), + q(0), + ], + q(rial omani) => [ + q(0117), + q(0), + ], + q(riel) => [ + q(0032), + q(0), + ], + q(rufiyaa) => [ + q(0102), + q(0), + ], + q(rupiah) => [ + q(0075), + q(0), + ], + q(russian ruble) => [ + q(0127), + q(0), + ], + q(rwanda franc) => [ + q(0128), + q(0), + ], + q(saint helena pound) => [ + q(0129), + q(0), + ], + q(saudi riyal) => [ + q(0132), + q(0), + ], + q(sdr) => [ + q(0175), + q(0), + ], + q(serbian dinar) => [ + q(0133), + q(0), + ], + q(seychelles rupee) => [ + q(0134), + q(0), + ], + q(silver) => [ + q(0178), + q(0), + ], + q(singapore dollar) => [ + q(0136), + q(0), + ], + q(solomon islands dollar) => [ + q(0137), + q(0), + ], + q(som) => [ + q(0087), + q(0), + ], + q(somali shilling) => [ + q(0138), + q(0), + ], + q(somoni) => [ + q(0148), + q(0), + ], + q(sri lanka rupee) => [ + q(0139), + q(0), + ], + q(sudanese pound) => [ + q(0140), + q(0), + ], + q(surinam dollar) => [ + q(0141), + q(0), + ], + q(swedish krona) => [ + q(0143), + q(0), + ], + q(swiss franc) => [ + q(0095), + q(0), + ], + q(syrian pound) => [ + q(0146), + q(0), + ], + q(taka) => [ + q(0015), + q(0), + ], + q(tala) => [ + q(0130), + q(0), + ], + q(tanzanian shilling) => [ + q(0149), + q(0), + ], + q(tenge) => [ + q(0082), + q(0), + ], + q(trinidad and tobago dollar) => [ + q(0152), + q(0), + ], + q(tugrik) => [ + q(0108), + q(0), + ], + q(tunisian dinar) => [ + q(0153), + q(0), + ], + q(turkish lira) => [ + q(0154), + q(0), + ], + q(uae dirham) => [ + q(0158), + q(0), + ], + q(uganda shilling) => [ + q(0156), + q(0), + ], + q(uic-franc) => [ + q(0179), + q(0), + ], + q(unidad de valor real) => [ + q(0041), + q(0), + ], + q(unidades de fomento) => [ + q(0038), + q(0), + ], + q(uruguay peso en unidades indexadas) => [ + q(0162), + q(0), + ], + q(us dollar) => [ + q(0005), + q(0), + ], + q(us dollar (next day)) => [ + q(0160), + q(0), + ], + q(us dollar (same day)) => [ + q(0159), + q(0), + ], + q(uzbekistan sum) => [ + q(0163), + q(0), + ], + q(vatu) => [ + q(0164), + q(0), + ], + q(wir euro) => [ + q(0145), + q(0), + ], + q(wir franc) => [ + q(0144), + q(0), + ], + q(won) => [ + q(0085), + q(0), + ], + q(yemeni rial) => [ + q(0167), + q(0), + ], + q(yen) => [ + q(0080), + q(0), + ], + q(yuan renminbi) => [ + q(0039), + q(0), + ], + q(zambian kwacha) => [ + q(0168), + q(0), + ], + q(zimbabwe dollar) => [ + q(0169), + q(0), + ], + q(zloty) => [ + q(0124), + q(0), + ], +}; + +$Locale::Codes::Data{'currency'}{'code2id'} = { + q(alpha) => { + q(AED) => [ + q(0158), + q(0), + ], + q(AFN) => [ + q(0001), + q(0), + ], + q(ALL) => [ + q(0003), + q(0), + ], + q(AMD) => [ + q(0009), + q(0), + ], + q(ANG) => [ + q(0114), + q(0), + ], + q(AOA) => [ + q(0006), + q(0), + ], + q(ARS) => [ + q(0008), + q(0), + ], + q(AUD) => [ + q(0011), + q(0), + ], + q(AWG) => [ + q(0010), + q(0), + ], + q(AZN) => [ + q(0012), + q(0), + ], + q(BAM) => [ + q(0025), + q(0), + ], + q(BBD) => [ + q(0016), + q(0), + ], + q(BDT) => [ + q(0015), + q(0), + ], + q(BGN) => [ + q(0030), + q(0), + ], + q(BHD) => [ + q(0014), + q(0), + ], + q(BIF) => [ + q(0031), + q(0), + ], + q(BMD) => [ + q(0020), + q(0), + ], + q(BND) => [ + q(0029), + q(0), + ], + q(BOB) => [ + q(0023), + q(0), + ], + q(BOV) => [ + q(0024), + q(0), + ], + q(BRL) => [ + q(0028), + q(0), + ], + q(BSD) => [ + q(0013), + q(0), + ], + q(BTN) => [ + q(0022), + q(0), + ], + q(BWP) => [ + q(0026), + q(0), + ], + q(BYR) => [ + q(0017), + q(0), + ], + q(BZD) => [ + q(0018), + q(0), + ], + q(CAD) => [ + q(0034), + q(0), + ], + q(CDF) => [ + q(0043), + q(0), + ], + q(CHE) => [ + q(0145), + q(0), + ], + q(CHF) => [ + q(0095), + q(0), + ], + q(CHW) => [ + q(0144), + q(0), + ], + q(CLF) => [ + q(0038), + q(0), + ], + q(CLP) => [ + q(0037), + q(0), + ], + q(CNY) => [ + q(0039), + q(0), + ], + q(COP) => [ + q(0040), + q(0), + ], + q(COU) => [ + q(0041), + q(0), + ], + q(CRC) => [ + q(0045), + q(0), + ], + q(CUC) => [ + q(0048), + q(0), + ], + q(CUP) => [ + q(0047), + q(0), + ], + q(CVE) => [ + q(0035), + q(0), + ], + q(CZK) => [ + q(0049), + q(0), + ], + q(DJF) => [ + q(0051), + q(0), + ], + q(DKK) => [ + q(0050), + q(0), + ], + q(DOP) => [ + q(0052), + q(0), + ], + q(DZD) => [ + q(0004), + q(0), + ], + q(EEK) => [ + q(0056), + q(0), + ], + q(EGP) => [ + q(0053), + q(0), + ], + q(ERN) => [ + q(0055), + q(0), + ], + q(ETB) => [ + q(0057), + q(0), + ], + q(EUR) => [ + q(0002), + q(0), + ], + q(FJD) => [ + q(0059), + q(0), + ], + q(FKP) => [ + q(0058), + q(0), + ], + q(GBP) => [ + q(0066), + q(0), + ], + q(GEL) => [ + q(0062), + q(0), + ], + q(GHS) => [ + q(0063), + q(0), + ], + q(GIP) => [ + q(0064), + q(0), + ], + q(GMD) => [ + q(0061), + q(0), + ], + q(GNF) => [ + q(0067), + q(0), + ], + q(GTQ) => [ + q(0065), + q(0), + ], + q(GWP) => [ + q(0068), + q(0), + ], + q(GYD) => [ + q(0069), + q(0), + ], + q(HKD) => [ + q(0072), + q(0), + ], + q(HNL) => [ + q(0071), + q(0), + ], + q(HRK) => [ + q(0046), + q(0), + ], + q(HTG) => [ + q(0070), + q(0), + ], + q(HUF) => [ + q(0073), + q(0), + ], + q(IDR) => [ + q(0075), + q(0), + ], + q(ILS) => [ + q(0078), + q(0), + ], + q(INR) => [ + q(0021), + q(0), + ], + q(IQD) => [ + q(0077), + q(0), + ], + q(IRR) => [ + q(0076), + q(0), + ], + q(ISK) => [ + q(0074), + q(0), + ], + q(JMD) => [ + q(0079), + q(0), + ], + q(JOD) => [ + q(0081), + q(0), + ], + q(JPY) => [ + q(0080), + q(0), + ], + q(KES) => [ + q(0083), + q(0), + ], + q(KGS) => [ + q(0087), + q(0), + ], + q(KHR) => [ + q(0032), + q(0), + ], + q(KMF) => [ + q(0042), + q(0), + ], + q(KPW) => [ + q(0084), + q(0), + ], + q(KRW) => [ + q(0085), + q(0), + ], + q(KWD) => [ + q(0086), + q(0), + ], + q(KYD) => [ + q(0036), + q(0), + ], + q(KZT) => [ + q(0082), + q(0), + ], + q(LAK) => [ + q(0088), + q(0), + ], + q(LBP) => [ + q(0090), + q(0), + ], + q(LKR) => [ + q(0139), + q(0), + ], + q(LRD) => [ + q(0093), + q(0), + ], + q(LSL) => [ + q(0092), + q(0), + ], + q(LTL) => [ + q(0096), + q(0), + ], + q(LVL) => [ + q(0089), + q(0), + ], + q(LYD) => [ + q(0094), + q(0), + ], + q(MAD) => [ + q(0109), + q(0), + ], + q(MDL) => [ + q(0107), + q(0), + ], + q(MGA) => [ + q(0099), + q(0), + ], + q(MKD) => [ + q(0098), + q(0), + ], + q(MMK) => [ + q(0111), + q(0), + ], + q(MNT) => [ + q(0108), + q(0), + ], + q(MOP) => [ + q(0097), + q(0), + ], + q(MRO) => [ + q(0103), + q(0), + ], + q(MUR) => [ + q(0104), + q(0), + ], + q(MVR) => [ + q(0102), + q(0), + ], + q(MWK) => [ + q(0100), + q(0), + ], + q(MXN) => [ + q(0105), + q(0), + ], + q(MXV) => [ + q(0106), + q(0), + ], + q(MYR) => [ + q(0101), + q(0), + ], + q(MZN) => [ + q(0110), + q(0), + ], + q(NAD) => [ + q(0112), + q(0), + ], + q(NGN) => [ + q(0116), + q(0), + ], + q(NIO) => [ + q(0115), + q(0), + ], + q(NOK) => [ + q(0027), + q(0), + ], + q(NPR) => [ + q(0113), + q(0), + ], + q(NZD) => [ + q(0044), + q(0), + ], + q(OMR) => [ + q(0117), + q(0), + ], + q(PAB) => [ + q(0119), + q(0), + ], + q(PEN) => [ + q(0122), + q(0), + ], + q(PGK) => [ + q(0120), + q(0), + ], + q(PHP) => [ + q(0123), + q(0), + ], + q(PKR) => [ + q(0118), + q(0), + ], + q(PLN) => [ + q(0124), + q(0), + ], + q(PYG) => [ + q(0121), + q(0), + ], + q(QAR) => [ + q(0125), + q(0), + ], + q(RON) => [ + q(0126), + q(0), + ], + q(RSD) => [ + q(0133), + q(0), + ], + q(RUB) => [ + q(0127), + q(0), + ], + q(RWF) => [ + q(0128), + q(0), + ], + q(SAR) => [ + q(0132), + q(0), + ], + q(SBD) => [ + q(0137), + q(0), + ], + q(SCR) => [ + q(0134), + q(0), + ], + q(SDG) => [ + q(0140), + q(0), + ], + q(SEK) => [ + q(0143), + q(0), + ], + q(SGD) => [ + q(0136), + q(0), + ], + q(SHP) => [ + q(0129), + q(0), + ], + q(SLL) => [ + q(0135), + q(0), + ], + q(SOS) => [ + q(0138), + q(0), + ], + q(SRD) => [ + q(0141), + q(0), + ], + q(STD) => [ + q(0131), + q(0), + ], + q(SVC) => [ + q(0054), + q(0), + ], + q(SYP) => [ + q(0146), + q(0), + ], + q(SZL) => [ + q(0142), + q(0), + ], + q(THB) => [ + q(0150), + q(0), + ], + q(TJS) => [ + q(0148), + q(0), + ], + q(TMT) => [ + q(0155), + q(0), + ], + q(TND) => [ + q(0153), + q(0), + ], + q(TOP) => [ + q(0151), + q(0), + ], + q(TRY) => [ + q(0154), + q(0), + ], + q(TTD) => [ + q(0152), + q(0), + ], + q(TWD) => [ + q(0147), + q(0), + ], + q(TZS) => [ + q(0149), + q(0), + ], + q(UAH) => [ + q(0157), + q(0), + ], + q(UGX) => [ + q(0156), + q(0), + ], + q(USD) => [ + q(0005), + q(0), + ], + q(USN) => [ + q(0160), + q(0), + ], + q(USS) => [ + q(0159), + q(0), + ], + q(UYI) => [ + q(0162), + q(0), + ], + q(UYU) => [ + q(0161), + q(0), + ], + q(UZS) => [ + q(0163), + q(0), + ], + q(VEF) => [ + q(0165), + q(0), + ], + q(VND) => [ + q(0166), + q(0), + ], + q(VUV) => [ + q(0164), + q(0), + ], + q(WST) => [ + q(0130), + q(0), + ], + q(XAF) => [ + q(0033), + q(0), + ], + q(XAG) => [ + q(0178), + q(0), + ], + q(XAU) => [ + q(0170), + q(0), + ], + q(XBA) => [ + q(0171), + q(0), + ], + q(XBB) => [ + q(0172), + q(0), + ], + q(XBC) => [ + q(0173), + q(0), + ], + q(XBD) => [ + q(0174), + q(0), + ], + q(XCD) => [ + q(0007), + q(0), + ], + q(XDR) => [ + q(0175), + q(0), + ], + q(XFU) => [ + q(0179), + q(0), + ], + q(XOF) => [ + q(0019), + q(0), + ], + q(XPD) => [ + q(0176), + q(0), + ], + q(XPF) => [ + q(0060), + q(0), + ], + q(XPT) => [ + q(0177), + q(0), + ], + q(YER) => [ + q(0167), + q(0), + ], + q(ZAR) => [ + q(0091), + q(0), + ], + q(ZMK) => [ + q(0168), + q(0), + ], + q(ZWL) => [ + q(0169), + q(0), + ], + }, + q(num) => { + q(008) => [ + q(0003), + q(0), + ], + q(012) => [ + q(0004), + q(0), + ], + q(032) => [ + q(0008), + q(0), + ], + q(036) => [ + q(0011), + q(0), + ], + q(044) => [ + q(0013), + q(0), + ], + q(048) => [ + q(0014), + q(0), + ], + q(050) => [ + q(0015), + q(0), + ], + q(051) => [ + q(0009), + q(0), + ], + q(052) => [ + q(0016), + q(0), + ], + q(060) => [ + q(0020), + q(0), + ], + q(064) => [ + q(0022), + q(0), + ], + q(068) => [ + q(0023), + q(0), + ], + q(072) => [ + q(0026), + q(0), + ], + q(084) => [ + q(0018), + q(0), + ], + q(090) => [ + q(0137), + q(0), + ], + q(096) => [ + q(0029), + q(0), + ], + q(104) => [ + q(0111), + q(0), + ], + q(108) => [ + q(0031), + q(0), + ], + q(116) => [ + q(0032), + q(0), + ], + q(124) => [ + q(0034), + q(0), + ], + q(132) => [ + q(0035), + q(0), + ], + q(136) => [ + q(0036), + q(0), + ], + q(144) => [ + q(0139), + q(0), + ], + q(152) => [ + q(0037), + q(0), + ], + q(156) => [ + q(0039), + q(0), + ], + q(170) => [ + q(0040), + q(0), + ], + q(174) => [ + q(0042), + q(0), + ], + q(188) => [ + q(0045), + q(0), + ], + q(191) => [ + q(0046), + q(0), + ], + q(192) => [ + q(0047), + q(0), + ], + q(203) => [ + q(0049), + q(0), + ], + q(208) => [ + q(0050), + q(0), + ], + q(214) => [ + q(0052), + q(0), + ], + q(222) => [ + q(0054), + q(0), + ], + q(230) => [ + q(0057), + q(0), + ], + q(232) => [ + q(0055), + q(0), + ], + q(233) => [ + q(0056), + q(0), + ], + q(238) => [ + q(0058), + q(0), + ], + q(242) => [ + q(0059), + q(0), + ], + q(262) => [ + q(0051), + q(0), + ], + q(270) => [ + q(0061), + q(0), + ], + q(292) => [ + q(0064), + q(0), + ], + q(320) => [ + q(0065), + q(0), + ], + q(324) => [ + q(0067), + q(0), + ], + q(328) => [ + q(0069), + q(0), + ], + q(332) => [ + q(0070), + q(0), + ], + q(340) => [ + q(0071), + q(0), + ], + q(344) => [ + q(0072), + q(0), + ], + q(348) => [ + q(0073), + q(0), + ], + q(352) => [ + q(0074), + q(0), + ], + q(356) => [ + q(0021), + q(0), + ], + q(360) => [ + q(0075), + q(0), + ], + q(364) => [ + q(0076), + q(0), + ], + q(368) => [ + q(0077), + q(0), + ], + q(376) => [ + q(0078), + q(0), + ], + q(388) => [ + q(0079), + q(0), + ], + q(392) => [ + q(0080), + q(0), + ], + q(398) => [ + q(0082), + q(0), + ], + q(400) => [ + q(0081), + q(0), + ], + q(404) => [ + q(0083), + q(0), + ], + q(408) => [ + q(0084), + q(0), + ], + q(410) => [ + q(0085), + q(0), + ], + q(414) => [ + q(0086), + q(0), + ], + q(417) => [ + q(0087), + q(0), + ], + q(418) => [ + q(0088), + q(0), + ], + q(422) => [ + q(0090), + q(0), + ], + q(426) => [ + q(0092), + q(0), + ], + q(428) => [ + q(0089), + q(0), + ], + q(430) => [ + q(0093), + q(0), + ], + q(434) => [ + q(0094), + q(0), + ], + q(440) => [ + q(0096), + q(0), + ], + q(446) => [ + q(0097), + q(0), + ], + q(454) => [ + q(0100), + q(0), + ], + q(458) => [ + q(0101), + q(0), + ], + q(462) => [ + q(0102), + q(0), + ], + q(478) => [ + q(0103), + q(0), + ], + q(480) => [ + q(0104), + q(0), + ], + q(484) => [ + q(0105), + q(0), + ], + q(496) => [ + q(0108), + q(0), + ], + q(498) => [ + q(0107), + q(0), + ], + q(504) => [ + q(0109), + q(0), + ], + q(512) => [ + q(0117), + q(0), + ], + q(516) => [ + q(0112), + q(0), + ], + q(524) => [ + q(0113), + q(0), + ], + q(532) => [ + q(0114), + q(0), + ], + q(533) => [ + q(0010), + q(0), + ], + q(548) => [ + q(0164), + q(0), + ], + q(554) => [ + q(0044), + q(0), + ], + q(558) => [ + q(0115), + q(0), + ], + q(566) => [ + q(0116), + q(0), + ], + q(578) => [ + q(0027), + q(0), + ], + q(586) => [ + q(0118), + q(0), + ], + q(590) => [ + q(0119), + q(0), + ], + q(598) => [ + q(0120), + q(0), + ], + q(600) => [ + q(0121), + q(0), + ], + q(604) => [ + q(0122), + q(0), + ], + q(608) => [ + q(0123), + q(0), + ], + q(624) => [ + q(0068), + q(0), + ], + q(634) => [ + q(0125), + q(0), + ], + q(643) => [ + q(0127), + q(0), + ], + q(646) => [ + q(0128), + q(0), + ], + q(654) => [ + q(0129), + q(0), + ], + q(678) => [ + q(0131), + q(0), + ], + q(682) => [ + q(0132), + q(0), + ], + q(690) => [ + q(0134), + q(0), + ], + q(694) => [ + q(0135), + q(0), + ], + q(702) => [ + q(0136), + q(0), + ], + q(704) => [ + q(0166), + q(0), + ], + q(706) => [ + q(0138), + q(0), + ], + q(710) => [ + q(0091), + q(0), + ], + q(748) => [ + q(0142), + q(0), + ], + q(752) => [ + q(0143), + q(0), + ], + q(756) => [ + q(0095), + q(0), + ], + q(760) => [ + q(0146), + q(0), + ], + q(764) => [ + q(0150), + q(0), + ], + q(776) => [ + q(0151), + q(0), + ], + q(780) => [ + q(0152), + q(0), + ], + q(784) => [ + q(0158), + q(0), + ], + q(788) => [ + q(0153), + q(0), + ], + q(800) => [ + q(0156), + q(0), + ], + q(807) => [ + q(0098), + q(0), + ], + q(818) => [ + q(0053), + q(0), + ], + q(826) => [ + q(0066), + q(0), + ], + q(834) => [ + q(0149), + q(0), + ], + q(840) => [ + q(0005), + q(0), + ], + q(858) => [ + q(0161), + q(0), + ], + q(860) => [ + q(0163), + q(0), + ], + q(882) => [ + q(0130), + q(0), + ], + q(886) => [ + q(0167), + q(0), + ], + q(894) => [ + q(0168), + q(0), + ], + q(901) => [ + q(0147), + q(0), + ], + q(931) => [ + q(0048), + q(0), + ], + q(932) => [ + q(0169), + q(0), + ], + q(934) => [ + q(0155), + q(0), + ], + q(936) => [ + q(0063), + q(0), + ], + q(937) => [ + q(0165), + q(0), + ], + q(938) => [ + q(0140), + q(0), + ], + q(940) => [ + q(0162), + q(0), + ], + q(941) => [ + q(0133), + q(0), + ], + q(943) => [ + q(0110), + q(0), + ], + q(944) => [ + q(0012), + q(0), + ], + q(946) => [ + q(0126), + q(0), + ], + q(947) => [ + q(0145), + q(0), + ], + q(948) => [ + q(0144), + q(0), + ], + q(949) => [ + q(0154), + q(0), + ], + q(950) => [ + q(0033), + q(0), + ], + q(951) => [ + q(0007), + q(0), + ], + q(952) => [ + q(0019), + q(0), + ], + q(953) => [ + q(0060), + q(0), + ], + q(955) => [ + q(0171), + q(0), + ], + q(956) => [ + q(0172), + q(0), + ], + q(957) => [ + q(0173), + q(0), + ], + q(958) => [ + q(0174), + q(0), + ], + q(959) => [ + q(0170), + q(0), + ], + q(960) => [ + q(0175), + q(0), + ], + q(961) => [ + q(0178), + q(0), + ], + q(962) => [ + q(0177), + q(0), + ], + q(964) => [ + q(0176), + q(0), + ], + q(968) => [ + q(0141), + q(0), + ], + q(969) => [ + q(0099), + q(0), + ], + q(970) => [ + q(0041), + q(0), + ], + q(971) => [ + q(0001), + q(0), + ], + q(972) => [ + q(0148), + q(0), + ], + q(973) => [ + q(0006), + q(0), + ], + q(974) => [ + q(0017), + q(0), + ], + q(975) => [ + q(0030), + q(0), + ], + q(976) => [ + q(0043), + q(0), + ], + q(977) => [ + q(0025), + q(0), + ], + q(978) => [ + q(0002), + q(0), + ], + q(979) => [ + q(0106), + q(0), + ], + q(980) => [ + q(0157), + q(0), + ], + q(981) => [ + q(0062), + q(0), + ], + q(984) => [ + q(0024), + q(0), + ], + q(985) => [ + q(0124), + q(0), + ], + q(986) => [ + q(0028), + q(0), + ], + q(990) => [ + q(0038), + q(0), + ], + q(997) => [ + q(0160), + q(0), + ], + q(998) => [ + q(0159), + q(0), + ], + }, +}; + +$Locale::Codes::Data{'currency'}{'id2code'} = { + q(alpha) => { + q(0001) => q(AFN), + q(0002) => q(EUR), + q(0003) => q(ALL), + q(0004) => q(DZD), + q(0005) => q(USD), + q(0006) => q(AOA), + q(0007) => q(XCD), + q(0008) => q(ARS), + q(0009) => q(AMD), + q(0010) => q(AWG), + q(0011) => q(AUD), + q(0012) => q(AZN), + q(0013) => q(BSD), + q(0014) => q(BHD), + q(0015) => q(BDT), + q(0016) => q(BBD), + q(0017) => q(BYR), + q(0018) => q(BZD), + q(0019) => q(XOF), + q(0020) => q(BMD), + q(0021) => q(INR), + q(0022) => q(BTN), + q(0023) => q(BOB), + q(0024) => q(BOV), + q(0025) => q(BAM), + q(0026) => q(BWP), + q(0027) => q(NOK), + q(0028) => q(BRL), + q(0029) => q(BND), + q(0030) => q(BGN), + q(0031) => q(BIF), + q(0032) => q(KHR), + q(0033) => q(XAF), + q(0034) => q(CAD), + q(0035) => q(CVE), + q(0036) => q(KYD), + q(0037) => q(CLP), + q(0038) => q(CLF), + q(0039) => q(CNY), + q(0040) => q(COP), + q(0041) => q(COU), + q(0042) => q(KMF), + q(0043) => q(CDF), + q(0044) => q(NZD), + q(0045) => q(CRC), + q(0046) => q(HRK), + q(0047) => q(CUP), + q(0048) => q(CUC), + q(0049) => q(CZK), + q(0050) => q(DKK), + q(0051) => q(DJF), + q(0052) => q(DOP), + q(0053) => q(EGP), + q(0054) => q(SVC), + q(0055) => q(ERN), + q(0056) => q(EEK), + q(0057) => q(ETB), + q(0058) => q(FKP), + q(0059) => q(FJD), + q(0060) => q(XPF), + q(0061) => q(GMD), + q(0062) => q(GEL), + q(0063) => q(GHS), + q(0064) => q(GIP), + q(0065) => q(GTQ), + q(0066) => q(GBP), + q(0067) => q(GNF), + q(0068) => q(GWP), + q(0069) => q(GYD), + q(0070) => q(HTG), + q(0071) => q(HNL), + q(0072) => q(HKD), + q(0073) => q(HUF), + q(0074) => q(ISK), + q(0075) => q(IDR), + q(0076) => q(IRR), + q(0077) => q(IQD), + q(0078) => q(ILS), + q(0079) => q(JMD), + q(0080) => q(JPY), + q(0081) => q(JOD), + q(0082) => q(KZT), + q(0083) => q(KES), + q(0084) => q(KPW), + q(0085) => q(KRW), + q(0086) => q(KWD), + q(0087) => q(KGS), + q(0088) => q(LAK), + q(0089) => q(LVL), + q(0090) => q(LBP), + q(0091) => q(ZAR), + q(0092) => q(LSL), + q(0093) => q(LRD), + q(0094) => q(LYD), + q(0095) => q(CHF), + q(0096) => q(LTL), + q(0097) => q(MOP), + q(0098) => q(MKD), + q(0099) => q(MGA), + q(0100) => q(MWK), + q(0101) => q(MYR), + q(0102) => q(MVR), + q(0103) => q(MRO), + q(0104) => q(MUR), + q(0105) => q(MXN), + q(0106) => q(MXV), + q(0107) => q(MDL), + q(0108) => q(MNT), + q(0109) => q(MAD), + q(0110) => q(MZN), + q(0111) => q(MMK), + q(0112) => q(NAD), + q(0113) => q(NPR), + q(0114) => q(ANG), + q(0115) => q(NIO), + q(0116) => q(NGN), + q(0117) => q(OMR), + q(0118) => q(PKR), + q(0119) => q(PAB), + q(0120) => q(PGK), + q(0121) => q(PYG), + q(0122) => q(PEN), + q(0123) => q(PHP), + q(0124) => q(PLN), + q(0125) => q(QAR), + q(0126) => q(RON), + q(0127) => q(RUB), + q(0128) => q(RWF), + q(0129) => q(SHP), + q(0130) => q(WST), + q(0131) => q(STD), + q(0132) => q(SAR), + q(0133) => q(RSD), + q(0134) => q(SCR), + q(0135) => q(SLL), + q(0136) => q(SGD), + q(0137) => q(SBD), + q(0138) => q(SOS), + q(0139) => q(LKR), + q(0140) => q(SDG), + q(0141) => q(SRD), + q(0142) => q(SZL), + q(0143) => q(SEK), + q(0144) => q(CHW), + q(0145) => q(CHE), + q(0146) => q(SYP), + q(0147) => q(TWD), + q(0148) => q(TJS), + q(0149) => q(TZS), + q(0150) => q(THB), + q(0151) => q(TOP), + q(0152) => q(TTD), + q(0153) => q(TND), + q(0154) => q(TRY), + q(0155) => q(TMT), + q(0156) => q(UGX), + q(0157) => q(UAH), + q(0158) => q(AED), + q(0159) => q(USS), + q(0160) => q(USN), + q(0161) => q(UYU), + q(0162) => q(UYI), + q(0163) => q(UZS), + q(0164) => q(VUV), + q(0165) => q(VEF), + q(0166) => q(VND), + q(0167) => q(YER), + q(0168) => q(ZMK), + q(0169) => q(ZWL), + q(0170) => q(XAU), + q(0171) => q(XBA), + q(0172) => q(XBB), + q(0173) => q(XBC), + q(0174) => q(XBD), + q(0175) => q(XDR), + q(0176) => q(XPD), + q(0177) => q(XPT), + q(0178) => q(XAG), + q(0179) => q(XFU), + }, + q(num) => { + q(0001) => q(971), + q(0002) => q(978), + q(0003) => q(008), + q(0004) => q(012), + q(0005) => q(840), + q(0006) => q(973), + q(0007) => q(951), + q(0008) => q(032), + q(0009) => q(051), + q(0010) => q(533), + q(0011) => q(036), + q(0012) => q(944), + q(0013) => q(044), + q(0014) => q(048), + q(0015) => q(050), + q(0016) => q(052), + q(0017) => q(974), + q(0018) => q(084), + q(0019) => q(952), + q(0020) => q(060), + q(0021) => q(356), + q(0022) => q(064), + q(0023) => q(068), + q(0024) => q(984), + q(0025) => q(977), + q(0026) => q(072), + q(0027) => q(578), + q(0028) => q(986), + q(0029) => q(096), + q(0030) => q(975), + q(0031) => q(108), + q(0032) => q(116), + q(0033) => q(950), + q(0034) => q(124), + q(0035) => q(132), + q(0036) => q(136), + q(0037) => q(152), + q(0038) => q(990), + q(0039) => q(156), + q(0040) => q(170), + q(0041) => q(970), + q(0042) => q(174), + q(0043) => q(976), + q(0044) => q(554), + q(0045) => q(188), + q(0046) => q(191), + q(0047) => q(192), + q(0048) => q(931), + q(0049) => q(203), + q(0050) => q(208), + q(0051) => q(262), + q(0052) => q(214), + q(0053) => q(818), + q(0054) => q(222), + q(0055) => q(232), + q(0056) => q(233), + q(0057) => q(230), + q(0058) => q(238), + q(0059) => q(242), + q(0060) => q(953), + q(0061) => q(270), + q(0062) => q(981), + q(0063) => q(936), + q(0064) => q(292), + q(0065) => q(320), + q(0066) => q(826), + q(0067) => q(324), + q(0068) => q(624), + q(0069) => q(328), + q(0070) => q(332), + q(0071) => q(340), + q(0072) => q(344), + q(0073) => q(348), + q(0074) => q(352), + q(0075) => q(360), + q(0076) => q(364), + q(0077) => q(368), + q(0078) => q(376), + q(0079) => q(388), + q(0080) => q(392), + q(0081) => q(400), + q(0082) => q(398), + q(0083) => q(404), + q(0084) => q(408), + q(0085) => q(410), + q(0086) => q(414), + q(0087) => q(417), + q(0088) => q(418), + q(0089) => q(428), + q(0090) => q(422), + q(0091) => q(710), + q(0092) => q(426), + q(0093) => q(430), + q(0094) => q(434), + q(0095) => q(756), + q(0096) => q(440), + q(0097) => q(446), + q(0098) => q(807), + q(0099) => q(969), + q(0100) => q(454), + q(0101) => q(458), + q(0102) => q(462), + q(0103) => q(478), + q(0104) => q(480), + q(0105) => q(484), + q(0106) => q(979), + q(0107) => q(498), + q(0108) => q(496), + q(0109) => q(504), + q(0110) => q(943), + q(0111) => q(104), + q(0112) => q(516), + q(0113) => q(524), + q(0114) => q(532), + q(0115) => q(558), + q(0116) => q(566), + q(0117) => q(512), + q(0118) => q(586), + q(0119) => q(590), + q(0120) => q(598), + q(0121) => q(600), + q(0122) => q(604), + q(0123) => q(608), + q(0124) => q(985), + q(0125) => q(634), + q(0126) => q(946), + q(0127) => q(643), + q(0128) => q(646), + q(0129) => q(654), + q(0130) => q(882), + q(0131) => q(678), + q(0132) => q(682), + q(0133) => q(941), + q(0134) => q(690), + q(0135) => q(694), + q(0136) => q(702), + q(0137) => q(090), + q(0138) => q(706), + q(0139) => q(144), + q(0140) => q(938), + q(0141) => q(968), + q(0142) => q(748), + q(0143) => q(752), + q(0144) => q(948), + q(0145) => q(947), + q(0146) => q(760), + q(0147) => q(901), + q(0148) => q(972), + q(0149) => q(834), + q(0150) => q(764), + q(0151) => q(776), + q(0152) => q(780), + q(0153) => q(788), + q(0154) => q(949), + q(0155) => q(934), + q(0156) => q(800), + q(0157) => q(980), + q(0158) => q(784), + q(0159) => q(998), + q(0160) => q(997), + q(0161) => q(858), + q(0162) => q(940), + q(0163) => q(860), + q(0164) => q(548), + q(0165) => q(937), + q(0166) => q(704), + q(0167) => q(886), + q(0168) => q(894), + q(0169) => q(932), + q(0170) => q(959), + q(0171) => q(955), + q(0172) => q(956), + q(0173) => q(957), + q(0174) => q(958), + q(0175) => q(960), + q(0176) => q(964), + q(0177) => q(962), + q(0178) => q(961), + }, +}; + +1; diff --git a/cpan/Locale-Codes/lib/Locale/Codes/Language.pm b/cpan/Locale-Codes/lib/Locale/Codes/Language.pm new file mode 100644 index 0000000..6d247f7 --- /dev/null +++ b/cpan/Locale-Codes/lib/Locale/Codes/Language.pm @@ -0,0 +1,7303 @@ +package Locale::Codes::Language; + +# This file was automatically generated. Any changes to this file will +# be lost the next time 'get_codes' is run. +# Generated on: Mon Apr 5 15:43:17 EDT 2010 + +=pod + +=head1 NAME + +Locale::Codes::Language - language codes for the Locale::Language module + +=head1 SYNOPSIS + +This module contains data used by the Locale::Language module. It is +not intended to be used directly, and contains no calleable routines. + +=head1 AUTHOR + +See Locale::Codes for full author history. + +Currently maintained by Sullivan Beck (sbeck@cpan.org). + +=head1 COPYRIGHT + + Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 2001-2010 Neil Bowers + Copyright (c) 2010-2010 Sullivan Beck + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=cut + +use strict; +use warnings; +require 5.002; + +use vars qw($VERSION); +$VERSION='3.12'; + +$Locale::Codes::Data{'language'}{'id'} = '0486'; + +$Locale::Codes::Data{'language'}{'id2names'} = { + q(0001) => [ + q(Afar), + ], + q(0002) => [ + q(Abkhazian), + ], + q(0003) => [ + q(Achinese), + ], + q(0004) => [ + q(Acoli), + ], + q(0005) => [ + q(Adangme), + ], + q(0006) => [ + q(Adyghe), + q(Adygei), + ], + q(0007) => [ + q(Afro-Asiatic languages), + ], + q(0008) => [ + q(Afrihili), + ], + q(0009) => [ + q(Afrikaans), + ], + q(0010) => [ + q(Ainu), + ], + q(0011) => [ + q(Akan), + ], + q(0012) => [ + q(Akkadian), + ], + q(0013) => [ + q(Albanian), + ], + q(0014) => [ + q(Aleut), + ], + q(0015) => [ + q(Algonquian languages), + ], + q(0016) => [ + q(Southern Altai), + ], + q(0017) => [ + q(Amharic), + ], + q(0018) => [ + q(English, Old (ca.450-1100)), + ], + q(0019) => [ + q(Angika), + ], + q(0020) => [ + q(Apache languages), + ], + q(0021) => [ + q(Arabic), + ], + q(0022) => [ + q(Official Aramaic (700-300 BCE)), + q(Imperial Aramaic (700-300 BCE)), + ], + q(0023) => [ + q(Aragonese), + ], + q(0024) => [ + q(Armenian), + ], + q(0025) => [ + q(Mapudungun), + q(Mapuche), + ], + q(0026) => [ + q(Arapaho), + ], + q(0027) => [ + q(Artificial languages), + ], + q(0028) => [ + q(Arawak), + ], + q(0029) => [ + q(Assamese), + ], + q(0030) => [ + q(Asturian), + q(Bable), + q(Leonese), + q(Asturleonese), + ], + q(0031) => [ + q(Athapascan languages), + ], + q(0032) => [ + q(Australian languages), + ], + q(0033) => [ + q(Avaric), + ], + q(0034) => [ + q(Avestan), + ], + q(0035) => [ + q(Awadhi), + ], + q(0036) => [ + q(Aymara), + ], + q(0037) => [ + q(Azerbaijani), + ], + q(0038) => [ + q(Banda languages), + ], + q(0039) => [ + q(Bamileke languages), + ], + q(0040) => [ + q(Bashkir), + ], + q(0041) => [ + q(Baluchi), + ], + q(0042) => [ + q(Bambara), + ], + q(0043) => [ + q(Balinese), + ], + q(0044) => [ + q(Basque), + ], + q(0045) => [ + q(Basa), + ], + q(0046) => [ + q(Baltic languages), + ], + q(0047) => [ + q(Beja), + q(Bedawiyet), + ], + q(0048) => [ + q(Belarusian), + ], + q(0049) => [ + q(Bemba), + ], + q(0050) => [ + q(Bengali), + ], + q(0051) => [ + q(Berber languages), + ], + q(0052) => [ + q(Bhojpuri), + ], + q(0053) => [ + q(Bihari languages), + ], + q(0054) => [ + q(Bikol), + ], + q(0055) => [ + q(Bini), + q(Edo), + ], + q(0056) => [ + q(Bislama), + ], + q(0057) => [ + q(Siksika), + ], + q(0058) => [ + q(Bantu (Other)), + ], + q(0059) => [ + q(Bosnian), + ], + q(0060) => [ + q(Braj), + ], + q(0061) => [ + q(Breton), + ], + q(0062) => [ + q(Batak languages), + ], + q(0063) => [ + q(Buriat), + ], + q(0064) => [ + q(Buginese), + ], + q(0065) => [ + q(Bulgarian), + ], + q(0066) => [ + q(Burmese), + ], + q(0067) => [ + q(Blin), + q(Bilin), + ], + q(0068) => [ + q(Caddo), + ], + q(0069) => [ + q(Central American Indian languages), + ], + q(0070) => [ + q(Galibi Carib), + ], + q(0071) => [ + q(Catalan), + q(Valencian), + ], + q(0072) => [ + q(Caucasian languages), + ], + q(0073) => [ + q(Cebuano), + ], + q(0074) => [ + q(Celtic languages), + ], + q(0075) => [ + q(Chamorro), + ], + q(0076) => [ + q(Chibcha), + ], + q(0077) => [ + q(Chechen), + ], + q(0078) => [ + q(Chagatai), + ], + q(0079) => [ + q(Chinese), + ], + q(0080) => [ + q(Chuukese), + ], + q(0081) => [ + q(Mari), + ], + q(0082) => [ + q(Chinook jargon), + ], + q(0083) => [ + q(Choctaw), + ], + q(0084) => [ + q(Chipewyan), + q(Dene Suline), + ], + q(0085) => [ + q(Cherokee), + ], + q(0086) => [ + q(Church Slavic), + q(Old Slavonic), + q(Church Slavonic), + q(Old Bulgarian), + q(Old Church Slavonic), + ], + q(0087) => [ + q(Chuvash), + ], + q(0088) => [ + q(Cheyenne), + ], + q(0089) => [ + q(Chamic languages), + ], + q(0090) => [ + q(Coptic), + ], + q(0091) => [ + q(Cornish), + ], + q(0092) => [ + q(Corsican), + ], + q(0093) => [ + q(Creoles and pidgins, English based), + ], + q(0094) => [ + q(Creoles and pidgins, French-based ), + ], + q(0095) => [ + q(Creoles and pidgins, Portuguese-based ), + ], + q(0096) => [ + q(Cree), + ], + q(0097) => [ + q(Crimean Tatar), + q(Crimean Turkish), + ], + q(0098) => [ + q(Creoles and pidgins ), + ], + q(0099) => [ + q(Kashubian), + ], + q(0100) => [ + q(Cushitic languages), + ], + q(0101) => [ + q(Czech), + ], + q(0102) => [ + q(Dakota), + ], + q(0103) => [ + q(Danish), + ], + q(0104) => [ + q(Dargwa), + ], + q(0105) => [ + q(Land Dayak languages), + ], + q(0106) => [ + q(Delaware), + ], + q(0107) => [ + q(Slave (Athapascan)), + ], + q(0108) => [ + q(Dogrib), + ], + q(0109) => [ + q(Dinka), + ], + q(0110) => [ + q(Divehi), + q(Dhivehi), + q(Maldivian), + ], + q(0111) => [ + q(Dogri), + ], + q(0112) => [ + q(Dravidian languages), + ], + q(0113) => [ + q(Lower Sorbian), + ], + q(0114) => [ + q(Duala), + ], + q(0115) => [ + q(Dutch, Middle (ca.1050-1350)), + ], + q(0116) => [ + q(Dutch), + q(Flemish), + ], + q(0117) => [ + q(Dyula), + ], + q(0118) => [ + q(Dzongkha), + ], + q(0119) => [ + q(Efik), + ], + q(0120) => [ + q(Egyptian (Ancient)), + ], + q(0121) => [ + q(Ekajuk), + ], + q(0122) => [ + q(Elamite), + ], + q(0123) => [ + q(English), + ], + q(0124) => [ + q(English, Middle (1100-1500)), + ], + q(0125) => [ + q(Esperanto), + ], + q(0126) => [ + q(Estonian), + ], + q(0127) => [ + q(Ewe), + ], + q(0128) => [ + q(Ewondo), + ], + q(0129) => [ + q(Fang), + ], + q(0130) => [ + q(Faroese), + ], + q(0131) => [ + q(Fanti), + ], + q(0132) => [ + q(Fijian), + ], + q(0133) => [ + q(Filipino), + q(Pilipino), + ], + q(0134) => [ + q(Finnish), + ], + q(0135) => [ + q(Finno-Ugrian languages), + ], + q(0136) => [ + q(Fon), + ], + q(0137) => [ + q(French), + ], + q(0138) => [ + q(French, Middle (ca.1400-1600)), + ], + q(0139) => [ + q(French, Old (842-ca.1400)), + ], + q(0140) => [ + q(Northern Frisian), + ], + q(0141) => [ + q(Eastern Frisian), + ], + q(0142) => [ + q(Western Frisian), + ], + q(0143) => [ + q(Fulah), + ], + q(0144) => [ + q(Friulian), + ], + q(0145) => [ + q(Ga), + ], + q(0146) => [ + q(Gayo), + ], + q(0147) => [ + q(Gbaya), + ], + q(0148) => [ + q(Germanic languages), + ], + q(0149) => [ + q(Georgian), + ], + q(0150) => [ + q(German), + ], + q(0151) => [ + q(Geez), + ], + q(0152) => [ + q(Gilbertese), + ], + q(0153) => [ + q(Gaelic), + q(Scottish Gaelic), + ], + q(0154) => [ + q(Irish), + ], + q(0155) => [ + q(Galician), + ], + q(0156) => [ + q(Manx), + ], + q(0157) => [ + q(German, Middle High (ca.1050-1500)), + ], + q(0158) => [ + q(German, Old High (ca.750-1050)), + ], + q(0159) => [ + q(Gondi), + ], + q(0160) => [ + q(Gorontalo), + ], + q(0161) => [ + q(Gothic), + ], + q(0162) => [ + q(Grebo), + ], + q(0163) => [ + q(Greek, Ancient (to 1453)), + ], + q(0164) => [ + q(Greek, Modern (1453-)), + q(Greek), + ], + q(0165) => [ + q(Guarani), + ], + q(0166) => [ + q(Swiss German), + q(Alemannic), + q(Alsatian), + ], + q(0167) => [ + q(Gujarati), + ], + q(0168) => [ + q(Gwich'in), + ], + q(0169) => [ + q(Haida), + ], + q(0170) => [ + q(Haitian), + q(Haitian Creole), + ], + q(0171) => [ + q(Hausa), + ], + q(0172) => [ + q(Hawaiian), + ], + q(0173) => [ + q(Hebrew), + ], + q(0174) => [ + q(Herero), + ], + q(0175) => [ + q(Hiligaynon), + ], + q(0176) => [ + q(Himachali languages), + q(Western Pahari languages), + ], + q(0177) => [ + q(Hindi), + ], + q(0178) => [ + q(Hittite), + ], + q(0179) => [ + q(Hmong), + q(Mong), + ], + q(0180) => [ + q(Hiri Motu), + ], + q(0181) => [ + q(Croatian), + ], + q(0182) => [ + q(Upper Sorbian), + ], + q(0183) => [ + q(Hungarian), + ], + q(0184) => [ + q(Hupa), + ], + q(0185) => [ + q(Iban), + ], + q(0186) => [ + q(Igbo), + ], + q(0187) => [ + q(Icelandic), + ], + q(0188) => [ + q(Ido), + ], + q(0189) => [ + q(Sichuan Yi), + q(Nuosu), + ], + q(0190) => [ + q(Ijo languages), + ], + q(0191) => [ + q(Inuktitut), + ], + q(0192) => [ + q(Interlingue), + q(Occidental), + ], + q(0193) => [ + q(Iloko), + ], + q(0194) => [ + q(Interlingua (International Auxiliary Language Association)), + ], + q(0195) => [ + q(Indic languages), + ], + q(0196) => [ + q(Indonesian), + ], + q(0197) => [ + q(Indo-European languages), + ], + q(0198) => [ + q(Ingush), + ], + q(0199) => [ + q(Inupiaq), + ], + q(0200) => [ + q(Iranian languages), + ], + q(0201) => [ + q(Iroquoian languages), + ], + q(0202) => [ + q(Italian), + ], + q(0203) => [ + q(Javanese), + ], + q(0204) => [ + q(Lojban), + ], + q(0205) => [ + q(Japanese), + ], + q(0206) => [ + q(Judeo-Persian), + ], + q(0207) => [ + q(Judeo-Arabic), + ], + q(0208) => [ + q(Kara-Kalpak), + ], + q(0209) => [ + q(Kabyle), + ], + q(0210) => [ + q(Kachin), + q(Jingpho), + ], + q(0211) => [ + q(Kalaallisut), + q(Greenlandic), + ], + q(0212) => [ + q(Kamba), + ], + q(0213) => [ + q(Kannada), + ], + q(0214) => [ + q(Karen languages), + ], + q(0215) => [ + q(Kashmiri), + ], + q(0216) => [ + q(Kanuri), + ], + q(0217) => [ + q(Kawi), + ], + q(0218) => [ + q(Kazakh), + ], + q(0219) => [ + q(Kabardian), + ], + q(0220) => [ + q(Khasi), + ], + q(0221) => [ + q(Khoisan languages), + ], + q(0222) => [ + q(Central Khmer), + ], + q(0223) => [ + q(Khotanese), + q(Sakan), + ], + q(0224) => [ + q(Kikuyu), + q(Gikuyu), + ], + q(0225) => [ + q(Kinyarwanda), + ], + q(0226) => [ + q(Kirghiz), + q(Kyrgyz), + ], + q(0227) => [ + q(Kimbundu), + ], + q(0228) => [ + q(Konkani), + ], + q(0229) => [ + q(Komi), + ], + q(0230) => [ + q(Kongo), + ], + q(0231) => [ + q(Korean), + ], + q(0232) => [ + q(Kosraean), + ], + q(0233) => [ + q(Kpelle), + ], + q(0234) => [ + q(Karachay-Balkar), + ], + q(0235) => [ + q(Karelian), + ], + q(0236) => [ + q(Kru languages), + ], + q(0237) => [ + q(Kurukh), + ], + q(0238) => [ + q(Kuanyama), + q(Kwanyama), + ], + q(0239) => [ + q(Kumyk), + ], + q(0240) => [ + q(Kurdish), + ], + q(0241) => [ + q(Kutenai), + ], + q(0242) => [ + q(Ladino), + ], + q(0243) => [ + q(Lahnda), + ], + q(0244) => [ + q(Lamba), + ], + q(0245) => [ + q(Lao), + ], + q(0246) => [ + q(Latin), + ], + q(0247) => [ + q(Latvian), + ], + q(0248) => [ + q(Lezghian), + ], + q(0249) => [ + q(Limburgan), + q(Limburger), + q(Limburgish), + ], + q(0250) => [ + q(Lingala), + ], + q(0251) => [ + q(Lithuanian), + ], + q(0252) => [ + q(Mongo), + ], + q(0253) => [ + q(Lozi), + ], + q(0254) => [ + q(Luxembourgish), + q(Letzeburgesch), + ], + q(0255) => [ + q(Luba-Lulua), + ], + q(0256) => [ + q(Luba-Katanga), + ], + q(0257) => [ + q(Ganda), + ], + q(0258) => [ + q(Luiseno), + ], + q(0259) => [ + q(Lunda), + ], + q(0260) => [ + q(Luo (Kenya and Tanzania)), + ], + q(0261) => [ + q(Lushai), + ], + q(0262) => [ + q(Macedonian), + ], + q(0263) => [ + q(Madurese), + ], + q(0264) => [ + q(Magahi), + ], + q(0265) => [ + q(Marshallese), + ], + q(0266) => [ + q(Maithili), + ], + q(0267) => [ + q(Makasar), + ], + q(0268) => [ + q(Malayalam), + ], + q(0269) => [ + q(Mandingo), + ], + q(0270) => [ + q(Maori), + ], + q(0271) => [ + q(Austronesian languages), + ], + q(0272) => [ + q(Marathi), + ], + q(0273) => [ + q(Masai), + ], + q(0274) => [ + q(Malay), + ], + q(0275) => [ + q(Moksha), + ], + q(0276) => [ + q(Mandar), + ], + q(0277) => [ + q(Mende), + ], + q(0278) => [ + q(Irish, Middle (900-1200)), + ], + q(0279) => [ + q(Mi'kmaq), + q(Micmac), + ], + q(0280) => [ + q(Minangkabau), + ], + q(0281) => [ + q(Uncoded languages), + ], + q(0282) => [ + q(Mon-Khmer languages), + ], + q(0283) => [ + q(Malagasy), + ], + q(0284) => [ + q(Maltese), + ], + q(0285) => [ + q(Manchu), + ], + q(0286) => [ + q(Manipuri), + ], + q(0287) => [ + q(Manobo languages), + ], + q(0288) => [ + q(Mohawk), + ], + q(0289) => [ + q(Mongolian), + ], + q(0290) => [ + q(Mossi), + ], + q(0291) => [ + q(Multiple languages), + ], + q(0292) => [ + q(Munda languages), + ], + q(0293) => [ + q(Creek), + ], + q(0294) => [ + q(Mirandese), + ], + q(0295) => [ + q(Marwari), + ], + q(0296) => [ + q(Mayan languages), + ], + q(0297) => [ + q(Erzya), + ], + q(0298) => [ + q(Nahuatl languages), + ], + q(0299) => [ + q(North American Indian languages), + ], + q(0300) => [ + q(Neapolitan), + ], + q(0301) => [ + q(Nauru), + ], + q(0302) => [ + q(Navajo), + q(Navaho), + ], + q(0303) => [ + q(Ndebele, South), + q(South Ndebele), + ], + q(0304) => [ + q(Ndebele, North), + q(North Ndebele), + ], + q(0305) => [ + q(Ndonga), + ], + q(0306) => [ + q(Low German), + q(Low Saxon), + q(German, Low), + q(Saxon, Low), + ], + q(0307) => [ + q(Nepali), + ], + q(0308) => [ + q(Nepal Bhasa), + q(Newari), + ], + q(0309) => [ + q(Nias), + ], + q(0310) => [ + q(Niger-Kordofanian languages), + ], + q(0311) => [ + q(Niuean), + ], + q(0312) => [ + q(Norwegian Nynorsk), + q(Nynorsk, Norwegian), + ], + q(0313) => [ + q(Bokmal, Norwegian), + q(Norwegian Bokmal), + ], + q(0314) => [ + q(Nogai), + ], + q(0315) => [ + q(Norse, Old), + ], + q(0316) => [ + q(Norwegian), + ], + q(0317) => [ + q(N'Ko), + ], + q(0318) => [ + q(Pedi), + q(Sepedi), + q(Northern Sotho), + ], + q(0319) => [ + q(Nubian languages), + ], + q(0320) => [ + q(Classical Newari), + q(Old Newari), + q(Classical Nepal Bhasa), + ], + q(0321) => [ + q(Chichewa), + q(Chewa), + q(Nyanja), + ], + q(0322) => [ + q(Nyamwezi), + ], + q(0323) => [ + q(Nyankole), + ], + q(0324) => [ + q(Nyoro), + ], + q(0325) => [ + q(Nzima), + ], + q(0326) => [ + q(Occitan (post 1500)), + q(Provencal), + ], + q(0327) => [ + q(Ojibwa), + ], + q(0328) => [ + q(Oriya), + ], + q(0329) => [ + q(Oromo), + ], + q(0330) => [ + q(Osage), + ], + q(0331) => [ + q(Ossetian), + q(Ossetic), + ], + q(0332) => [ + q(Turkish, Ottoman (1500-1928)), + ], + q(0333) => [ + q(Otomian languages), + ], + q(0334) => [ + q(Papuan languages), + ], + q(0335) => [ + q(Pangasinan), + ], + q(0336) => [ + q(Pahlavi), + ], + q(0337) => [ + q(Pampanga), + q(Kapampangan), + ], + q(0338) => [ + q(Panjabi), + q(Punjabi), + ], + q(0339) => [ + q(Papiamento), + ], + q(0340) => [ + q(Palauan), + ], + q(0341) => [ + q(Persian, Old (ca.600-400 B.C.)), + ], + q(0342) => [ + q(Persian), + ], + q(0343) => [ + q(Philippine languages), + ], + q(0344) => [ + q(Phoenician), + ], + q(0345) => [ + q(Pali), + ], + q(0346) => [ + q(Polish), + ], + q(0347) => [ + q(Pohnpeian), + ], + q(0348) => [ + q(Portuguese), + ], + q(0349) => [ + q(Prakrit languages), + ], + q(0350) => [ + q(Provencal, Old (to 1500)), + ], + q(0351) => [ + q(Pushto), + q(Pashto), + ], + q(0352) => [ + q(Reserved for local use), + ], + q(0353) => [ + q(Quechua), + ], + q(0354) => [ + q(Rajasthani), + ], + q(0355) => [ + q(Rapanui), + ], + q(0356) => [ + q(Rarotongan), + q(Cook Islands Maori), + ], + q(0357) => [ + q(Romance languages), + ], + q(0358) => [ + q(Romansh), + ], + q(0359) => [ + q(Romany), + ], + q(0360) => [ + q(Romanian), + q(Moldavian), + q(Moldovan), + ], + q(0361) => [ + q(Rundi), + ], + q(0362) => [ + q(Aromanian), + q(Arumanian), + q(Macedo-Romanian), + ], + q(0363) => [ + q(Russian), + ], + q(0364) => [ + q(Sandawe), + ], + q(0365) => [ + q(Sango), + ], + q(0366) => [ + q(Yakut), + ], + q(0367) => [ + q(South American Indian (Other)), + ], + q(0368) => [ + q(Salishan languages), + ], + q(0369) => [ + q(Samaritan Aramaic), + ], + q(0370) => [ + q(Sanskrit), + ], + q(0371) => [ + q(Sasak), + ], + q(0372) => [ + q(Santali), + ], + q(0373) => [ + q(Sicilian), + ], + q(0374) => [ + q(Scots), + ], + q(0375) => [ + q(Selkup), + ], + q(0376) => [ + q(Semitic languages), + ], + q(0377) => [ + q(Irish, Old (to 900)), + ], + q(0378) => [ + q(Sign Languages), + ], + q(0379) => [ + q(Shan), + ], + q(0380) => [ + q(Sidamo), + ], + q(0381) => [ + q(Sinhala), + q(Sinhalese), + ], + q(0382) => [ + q(Siouan languages), + ], + q(0383) => [ + q(Sino-Tibetan languages), + ], + q(0384) => [ + q(Slavic languages), + ], + q(0385) => [ + q(Slovak), + ], + q(0386) => [ + q(Slovenian), + ], + q(0387) => [ + q(Southern Sami), + ], + q(0388) => [ + q(Northern Sami), + ], + q(0389) => [ + q(Sami languages), + ], + q(0390) => [ + q(Lule Sami), + ], + q(0391) => [ + q(Inari Sami), + ], + q(0392) => [ + q(Samoan), + ], + q(0393) => [ + q(Skolt Sami), + ], + q(0394) => [ + q(Shona), + ], + q(0395) => [ + q(Sindhi), + ], + q(0396) => [ + q(Soninke), + ], + q(0397) => [ + q(Sogdian), + ], + q(0398) => [ + q(Somali), + ], + q(0399) => [ + q(Songhai languages), + ], + q(0400) => [ + q(Sotho, Southern), + ], + q(0401) => [ + q(Spanish), + q(Castilian), + ], + q(0402) => [ + q(Sardinian), + ], + q(0403) => [ + q(Sranan Tongo), + ], + q(0404) => [ + q(Serbian), + ], + q(0405) => [ + q(Serer), + ], + q(0406) => [ + q(Nilo-Saharan languages), + ], + q(0407) => [ + q(Swati), + ], + q(0408) => [ + q(Sukuma), + ], + q(0409) => [ + q(Sundanese), + ], + q(0410) => [ + q(Susu), + ], + q(0411) => [ + q(Sumerian), + ], + q(0412) => [ + q(Swahili), + ], + q(0413) => [ + q(Swedish), + ], + q(0414) => [ + q(Classical Syriac), + ], + q(0415) => [ + q(Syriac), + ], + q(0416) => [ + q(Tahitian), + ], + q(0417) => [ + q(Tai languages), + ], + q(0418) => [ + q(Tamil), + ], + q(0419) => [ + q(Tatar), + ], + q(0420) => [ + q(Telugu), + ], + q(0421) => [ + q(Timne), + ], + q(0422) => [ + q(Tereno), + ], + q(0423) => [ + q(Tetum), + ], + q(0424) => [ + q(Tajik), + ], + q(0425) => [ + q(Tagalog), + ], + q(0426) => [ + q(Thai), + ], + q(0427) => [ + q(Tibetan), + ], + q(0428) => [ + q(Tigre), + ], + q(0429) => [ + q(Tigrinya), + ], + q(0430) => [ + q(Tiv), + ], + q(0431) => [ + q(Tokelau), + ], + q(0432) => [ + q(Klingon), + q(tlhIngan-Hol), + ], + q(0433) => [ + q(Tlingit), + ], + q(0434) => [ + q(Tamashek), + ], + q(0435) => [ + q(Tonga (Nyasa)), + ], + q(0436) => [ + q(Tonga (Tonga Islands)), + q(Tonga), + ], + q(0437) => [ + q(Tok Pisin), + ], + q(0438) => [ + q(Tsimshian), + ], + q(0439) => [ + q(Tswana), + ], + q(0440) => [ + q(Tsonga), + ], + q(0441) => [ + q(Turkmen), + ], + q(0442) => [ + q(Tumbuka), + ], + q(0443) => [ + q(Tupi languages), + ], + q(0444) => [ + q(Turkish), + ], + q(0445) => [ + q(Altaic languages), + ], + q(0446) => [ + q(Tuvalu), + ], + q(0447) => [ + q(Twi), + ], + q(0448) => [ + q(Tuvinian), + ], + q(0449) => [ + q(Udmurt), + ], + q(0450) => [ + q(Ugaritic), + ], + q(0451) => [ + q(Uighur), + q(Uyghur), + ], + q(0452) => [ + q(Ukrainian), + ], + q(0453) => [ + q(Umbundu), + ], + q(0454) => [ + q(Undetermined), + ], + q(0455) => [ + q(Urdu), + ], + q(0456) => [ + q(Uzbek), + ], + q(0457) => [ + q(Vai), + ], + q(0458) => [ + q(Venda), + ], + q(0459) => [ + q(Vietnamese), + ], + q(0460) => [ + q(Volapuk), + ], + q(0461) => [ + q(Votic), + ], + q(0462) => [ + q(Wakashan languages), + ], + q(0463) => [ + q(Walamo), + ], + q(0464) => [ + q(Waray), + ], + q(0465) => [ + q(Washo), + ], + q(0466) => [ + q(Welsh), + ], + q(0467) => [ + q(Sorbian languages), + ], + q(0468) => [ + q(Walloon), + ], + q(0469) => [ + q(Wolof), + ], + q(0470) => [ + q(Kalmyk), + q(Oirat), + ], + q(0471) => [ + q(Xhosa), + ], + q(0472) => [ + q(Yao), + ], + q(0473) => [ + q(Yapese), + ], + q(0474) => [ + q(Yiddish), + ], + q(0475) => [ + q(Yoruba), + ], + q(0476) => [ + q(Yupik languages), + ], + q(0477) => [ + q(Zapotec), + ], + q(0478) => [ + q(Blissymbols), + q(Blissymbolics), + q(Bliss), + ], + q(0479) => [ + q(Zenaga), + ], + q(0480) => [ + q(Zhuang), + q(Chuang), + ], + q(0481) => [ + q(Zande languages), + ], + q(0482) => [ + q(Zulu), + ], + q(0483) => [ + q(Zuni), + ], + q(0484) => [ + q(No linguistic content), + q(Not applicable), + ], + q(0485) => [ + q(Zaza), + q(Dimili), + q(Dimli), + q(Kirdki), + q(Kirmanjki), + q(Zazaki), + ], +}; + +$Locale::Codes::Data{'language'}{'alias2id'} = { + q(abkhazian) => [ + q(0002), + q(0), + ], + q(achinese) => [ + q(0003), + q(0), + ], + q(acoli) => [ + q(0004), + q(0), + ], + q(adangme) => [ + q(0005), + q(0), + ], + q(adygei) => [ + q(0006), + q(1), + ], + q(adyghe) => [ + q(0006), + q(0), + ], + q(afar) => [ + q(0001), + q(0), + ], + q(afrihili) => [ + q(0008), + q(0), + ], + q(afrikaans) => [ + q(0009), + q(0), + ], + q(afro-asiatic languages) => [ + q(0007), + q(0), + ], + q(ainu) => [ + q(0010), + q(0), + ], + q(akan) => [ + q(0011), + q(0), + ], + q(akkadian) => [ + q(0012), + q(0), + ], + q(albanian) => [ + q(0013), + q(0), + ], + q(alemannic) => [ + q(0166), + q(1), + ], + q(aleut) => [ + q(0014), + q(0), + ], + q(algonquian languages) => [ + q(0015), + q(0), + ], + q(alsatian) => [ + q(0166), + q(2), + ], + q(altaic languages) => [ + q(0445), + q(0), + ], + q(amharic) => [ + q(0017), + q(0), + ], + q(angika) => [ + q(0019), + q(0), + ], + q(apache languages) => [ + q(0020), + q(0), + ], + q(arabic) => [ + q(0021), + q(0), + ], + q(aragonese) => [ + q(0023), + q(0), + ], + q(arapaho) => [ + q(0026), + q(0), + ], + q(arawak) => [ + q(0028), + q(0), + ], + q(armenian) => [ + q(0024), + q(0), + ], + q(aromanian) => [ + q(0362), + q(0), + ], + q(artificial languages) => [ + q(0027), + q(0), + ], + q(arumanian) => [ + q(0362), + q(1), + ], + q(assamese) => [ + q(0029), + q(0), + ], + q(asturian) => [ + q(0030), + q(0), + ], + q(asturleonese) => [ + q(0030), + q(3), + ], + q(athapascan languages) => [ + q(0031), + q(0), + ], + q(australian languages) => [ + q(0032), + q(0), + ], + q(austronesian languages) => [ + q(0271), + q(0), + ], + q(avaric) => [ + q(0033), + q(0), + ], + q(avestan) => [ + q(0034), + q(0), + ], + q(awadhi) => [ + q(0035), + q(0), + ], + q(aymara) => [ + q(0036), + q(0), + ], + q(azerbaijani) => [ + q(0037), + q(0), + ], + q(bable) => [ + q(0030), + q(1), + ], + q(balinese) => [ + q(0043), + q(0), + ], + q(baltic languages) => [ + q(0046), + q(0), + ], + q(baluchi) => [ + q(0041), + q(0), + ], + q(bambara) => [ + q(0042), + q(0), + ], + q(bamileke languages) => [ + q(0039), + q(0), + ], + q(banda languages) => [ + q(0038), + q(0), + ], + q(bantu (other)) => [ + q(0058), + q(0), + ], + q(basa) => [ + q(0045), + q(0), + ], + q(bashkir) => [ + q(0040), + q(0), + ], + q(basque) => [ + q(0044), + q(0), + ], + q(batak languages) => [ + q(0062), + q(0), + ], + q(bedawiyet) => [ + q(0047), + q(1), + ], + q(beja) => [ + q(0047), + q(0), + ], + q(belarusian) => [ + q(0048), + q(0), + ], + q(bemba) => [ + q(0049), + q(0), + ], + q(bengali) => [ + q(0050), + q(0), + ], + q(berber languages) => [ + q(0051), + q(0), + ], + q(bhojpuri) => [ + q(0052), + q(0), + ], + q(bihari languages) => [ + q(0053), + q(0), + ], + q(bikol) => [ + q(0054), + q(0), + ], + q(bilin) => [ + q(0067), + q(1), + ], + q(bini) => [ + q(0055), + q(0), + ], + q(bislama) => [ + q(0056), + q(0), + ], + q(blin) => [ + q(0067), + q(0), + ], + q(bliss) => [ + q(0478), + q(2), + ], + q(blissymbolics) => [ + q(0478), + q(1), + ], + q(blissymbols) => [ + q(0478), + q(0), + ], + q(bokmal, norwegian) => [ + q(0313), + q(0), + ], + q(bosnian) => [ + q(0059), + q(0), + ], + q(braj) => [ + q(0060), + q(0), + ], + q(breton) => [ + q(0061), + q(0), + ], + q(buginese) => [ + q(0064), + q(0), + ], + q(bulgarian) => [ + q(0065), + q(0), + ], + q(buriat) => [ + q(0063), + q(0), + ], + q(burmese) => [ + q(0066), + q(0), + ], + q(caddo) => [ + q(0068), + q(0), + ], + q(castilian) => [ + q(0401), + q(1), + ], + q(catalan) => [ + q(0071), + q(0), + ], + q(caucasian languages) => [ + q(0072), + q(0), + ], + q(cebuano) => [ + q(0073), + q(0), + ], + q(celtic languages) => [ + q(0074), + q(0), + ], + q(central american indian languages) => [ + q(0069), + q(0), + ], + q(central khmer) => [ + q(0222), + q(0), + ], + q(chagatai) => [ + q(0078), + q(0), + ], + q(chamic languages) => [ + q(0089), + q(0), + ], + q(chamorro) => [ + q(0075), + q(0), + ], + q(chechen) => [ + q(0077), + q(0), + ], + q(cherokee) => [ + q(0085), + q(0), + ], + q(chewa) => [ + q(0321), + q(1), + ], + q(cheyenne) => [ + q(0088), + q(0), + ], + q(chibcha) => [ + q(0076), + q(0), + ], + q(chichewa) => [ + q(0321), + q(0), + ], + q(chinese) => [ + q(0079), + q(0), + ], + q(chinook jargon) => [ + q(0082), + q(0), + ], + q(chipewyan) => [ + q(0084), + q(0), + ], + q(choctaw) => [ + q(0083), + q(0), + ], + q(chuang) => [ + q(0480), + q(1), + ], + q(church slavic) => [ + q(0086), + q(0), + ], + q(church slavonic) => [ + q(0086), + q(2), + ], + q(chuukese) => [ + q(0080), + q(0), + ], + q(chuvash) => [ + q(0087), + q(0), + ], + q(classical nepal bhasa) => [ + q(0320), + q(2), + ], + q(classical newari) => [ + q(0320), + q(0), + ], + q(classical syriac) => [ + q(0414), + q(0), + ], + q(cook islands maori) => [ + q(0356), + q(1), + ], + q(coptic) => [ + q(0090), + q(0), + ], + q(cornish) => [ + q(0091), + q(0), + ], + q(corsican) => [ + q(0092), + q(0), + ], + q(cree) => [ + q(0096), + q(0), + ], + q(creek) => [ + q(0293), + q(0), + ], + q(creoles and pidgins ) => [ + q(0098), + q(0), + ], + q(creoles and pidgins, english based) => [ + q(0093), + q(0), + ], + q(creoles and pidgins, french-based ) => [ + q(0094), + q(0), + ], + q(creoles and pidgins, portuguese-based ) => [ + q(0095), + q(0), + ], + q(crimean tatar) => [ + q(0097), + q(0), + ], + q(crimean turkish) => [ + q(0097), + q(1), + ], + q(croatian) => [ + q(0181), + q(0), + ], + q(cushitic languages) => [ + q(0100), + q(0), + ], + q(czech) => [ + q(0101), + q(0), + ], + q(dakota) => [ + q(0102), + q(0), + ], + q(danish) => [ + q(0103), + q(0), + ], + q(dargwa) => [ + q(0104), + q(0), + ], + q(delaware) => [ + q(0106), + q(0), + ], + q(dene suline) => [ + q(0084), + q(1), + ], + q(dhivehi) => [ + q(0110), + q(1), + ], + q(dimili) => [ + q(0485), + q(1), + ], + q(dimli) => [ + q(0485), + q(2), + ], + q(dinka) => [ + q(0109), + q(0), + ], + q(divehi) => [ + q(0110), + q(0), + ], + q(dogri) => [ + q(0111), + q(0), + ], + q(dogrib) => [ + q(0108), + q(0), + ], + q(dravidian languages) => [ + q(0112), + q(0), + ], + q(duala) => [ + q(0114), + q(0), + ], + q(dutch) => [ + q(0116), + q(0), + ], + q(dutch, middle (ca.1050-1350)) => [ + q(0115), + q(0), + ], + q(dyula) => [ + q(0117), + q(0), + ], + q(dzongkha) => [ + q(0118), + q(0), + ], + q(eastern frisian) => [ + q(0141), + q(0), + ], + q(edo) => [ + q(0055), + q(1), + ], + q(efik) => [ + q(0119), + q(0), + ], + q(egyptian (ancient)) => [ + q(0120), + q(0), + ], + q(ekajuk) => [ + q(0121), + q(0), + ], + q(elamite) => [ + q(0122), + q(0), + ], + q(english) => [ + q(0123), + q(0), + ], + q(english, middle (1100-1500)) => [ + q(0124), + q(0), + ], + q(english, old (ca.450-1100)) => [ + q(0018), + q(0), + ], + q(erzya) => [ + q(0297), + q(0), + ], + q(esperanto) => [ + q(0125), + q(0), + ], + q(estonian) => [ + q(0126), + q(0), + ], + q(ewe) => [ + q(0127), + q(0), + ], + q(ewondo) => [ + q(0128), + q(0), + ], + q(fang) => [ + q(0129), + q(0), + ], + q(fanti) => [ + q(0131), + q(0), + ], + q(faroese) => [ + q(0130), + q(0), + ], + q(fijian) => [ + q(0132), + q(0), + ], + q(filipino) => [ + q(0133), + q(0), + ], + q(finnish) => [ + q(0134), + q(0), + ], + q(finno-ugrian languages) => [ + q(0135), + q(0), + ], + q(flemish) => [ + q(0116), + q(1), + ], + q(fon) => [ + q(0136), + q(0), + ], + q(french) => [ + q(0137), + q(0), + ], + q(french, middle (ca.1400-1600)) => [ + q(0138), + q(0), + ], + q(french, old (842-ca.1400)) => [ + q(0139), + q(0), + ], + q(friulian) => [ + q(0144), + q(0), + ], + q(fulah) => [ + q(0143), + q(0), + ], + q(ga) => [ + q(0145), + q(0), + ], + q(gaelic) => [ + q(0153), + q(0), + ], + q(galibi carib) => [ + q(0070), + q(0), + ], + q(galician) => [ + q(0155), + q(0), + ], + q(ganda) => [ + q(0257), + q(0), + ], + q(gayo) => [ + q(0146), + q(0), + ], + q(gbaya) => [ + q(0147), + q(0), + ], + q(geez) => [ + q(0151), + q(0), + ], + q(georgian) => [ + q(0149), + q(0), + ], + q(german) => [ + q(0150), + q(0), + ], + q(german, low) => [ + q(0306), + q(2), + ], + q(german, middle high (ca.1050-1500)) => [ + q(0157), + q(0), + ], + q(german, old high (ca.750-1050)) => [ + q(0158), + q(0), + ], + q(germanic languages) => [ + q(0148), + q(0), + ], + q(gikuyu) => [ + q(0224), + q(1), + ], + q(gilbertese) => [ + q(0152), + q(0), + ], + q(gondi) => [ + q(0159), + q(0), + ], + q(gorontalo) => [ + q(0160), + q(0), + ], + q(gothic) => [ + q(0161), + q(0), + ], + q(grebo) => [ + q(0162), + q(0), + ], + q(greek) => [ + q(0164), + q(1), + ], + q(greek, ancient (to 1453)) => [ + q(0163), + q(0), + ], + q(greek, modern (1453-)) => [ + q(0164), + q(0), + ], + q(greenlandic) => [ + q(0211), + q(1), + ], + q(guarani) => [ + q(0165), + q(0), + ], + q(gujarati) => [ + q(0167), + q(0), + ], + q(gwich'in) => [ + q(0168), + q(0), + ], + q(haida) => [ + q(0169), + q(0), + ], + q(haitian) => [ + q(0170), + q(0), + ], + q(haitian creole) => [ + q(0170), + q(1), + ], + q(hausa) => [ + q(0171), + q(0), + ], + q(hawaiian) => [ + q(0172), + q(0), + ], + q(hebrew) => [ + q(0173), + q(0), + ], + q(herero) => [ + q(0174), + q(0), + ], + q(hiligaynon) => [ + q(0175), + q(0), + ], + q(himachali languages) => [ + q(0176), + q(0), + ], + q(hindi) => [ + q(0177), + q(0), + ], + q(hiri motu) => [ + q(0180), + q(0), + ], + q(hittite) => [ + q(0178), + q(0), + ], + q(hmong) => [ + q(0179), + q(0), + ], + q(hungarian) => [ + q(0183), + q(0), + ], + q(hupa) => [ + q(0184), + q(0), + ], + q(iban) => [ + q(0185), + q(0), + ], + q(icelandic) => [ + q(0187), + q(0), + ], + q(ido) => [ + q(0188), + q(0), + ], + q(igbo) => [ + q(0186), + q(0), + ], + q(ijo languages) => [ + q(0190), + q(0), + ], + q(iloko) => [ + q(0193), + q(0), + ], + q(imperial aramaic (700-300 bce)) => [ + q(0022), + q(1), + ], + q(inari sami) => [ + q(0391), + q(0), + ], + q(indic languages) => [ + q(0195), + q(0), + ], + q(indo-european languages) => [ + q(0197), + q(0), + ], + q(indonesian) => [ + q(0196), + q(0), + ], + q(ingush) => [ + q(0198), + q(0), + ], + q(interlingua (international auxiliary language association)) => [ + q(0194), + q(0), + ], + q(interlingue) => [ + q(0192), + q(0), + ], + q(inuktitut) => [ + q(0191), + q(0), + ], + q(inupiaq) => [ + q(0199), + q(0), + ], + q(iranian languages) => [ + q(0200), + q(0), + ], + q(irish) => [ + q(0154), + q(0), + ], + q(irish, middle (900-1200)) => [ + q(0278), + q(0), + ], + q(irish, old (to 900)) => [ + q(0377), + q(0), + ], + q(iroquoian languages) => [ + q(0201), + q(0), + ], + q(italian) => [ + q(0202), + q(0), + ], + q(japanese) => [ + q(0205), + q(0), + ], + q(javanese) => [ + q(0203), + q(0), + ], + q(jingpho) => [ + q(0210), + q(1), + ], + q(judeo-arabic) => [ + q(0207), + q(0), + ], + q(judeo-persian) => [ + q(0206), + q(0), + ], + q(kabardian) => [ + q(0219), + q(0), + ], + q(kabyle) => [ + q(0209), + q(0), + ], + q(kachin) => [ + q(0210), + q(0), + ], + q(kalaallisut) => [ + q(0211), + q(0), + ], + q(kalmyk) => [ + q(0470), + q(0), + ], + q(kamba) => [ + q(0212), + q(0), + ], + q(kannada) => [ + q(0213), + q(0), + ], + q(kanuri) => [ + q(0216), + q(0), + ], + q(kapampangan) => [ + q(0337), + q(1), + ], + q(kara-kalpak) => [ + q(0208), + q(0), + ], + q(karachay-balkar) => [ + q(0234), + q(0), + ], + q(karelian) => [ + q(0235), + q(0), + ], + q(karen languages) => [ + q(0214), + q(0), + ], + q(kashmiri) => [ + q(0215), + q(0), + ], + q(kashubian) => [ + q(0099), + q(0), + ], + q(kawi) => [ + q(0217), + q(0), + ], + q(kazakh) => [ + q(0218), + q(0), + ], + q(khasi) => [ + q(0220), + q(0), + ], + q(khoisan languages) => [ + q(0221), + q(0), + ], + q(khotanese) => [ + q(0223), + q(0), + ], + q(kikuyu) => [ + q(0224), + q(0), + ], + q(kimbundu) => [ + q(0227), + q(0), + ], + q(kinyarwanda) => [ + q(0225), + q(0), + ], + q(kirdki) => [ + q(0485), + q(3), + ], + q(kirghiz) => [ + q(0226), + q(0), + ], + q(kirmanjki) => [ + q(0485), + q(4), + ], + q(klingon) => [ + q(0432), + q(0), + ], + q(komi) => [ + q(0229), + q(0), + ], + q(kongo) => [ + q(0230), + q(0), + ], + q(konkani) => [ + q(0228), + q(0), + ], + q(korean) => [ + q(0231), + q(0), + ], + q(kosraean) => [ + q(0232), + q(0), + ], + q(kpelle) => [ + q(0233), + q(0), + ], + q(kru languages) => [ + q(0236), + q(0), + ], + q(kuanyama) => [ + q(0238), + q(0), + ], + q(kumyk) => [ + q(0239), + q(0), + ], + q(kurdish) => [ + q(0240), + q(0), + ], + q(kurukh) => [ + q(0237), + q(0), + ], + q(kutenai) => [ + q(0241), + q(0), + ], + q(kwanyama) => [ + q(0238), + q(1), + ], + q(kyrgyz) => [ + q(0226), + q(1), + ], + q(ladino) => [ + q(0242), + q(0), + ], + q(lahnda) => [ + q(0243), + q(0), + ], + q(lamba) => [ + q(0244), + q(0), + ], + q(land dayak languages) => [ + q(0105), + q(0), + ], + q(lao) => [ + q(0245), + q(0), + ], + q(latin) => [ + q(0246), + q(0), + ], + q(latvian) => [ + q(0247), + q(0), + ], + q(leonese) => [ + q(0030), + q(2), + ], + q(letzeburgesch) => [ + q(0254), + q(1), + ], + q(lezghian) => [ + q(0248), + q(0), + ], + q(limburgan) => [ + q(0249), + q(0), + ], + q(limburger) => [ + q(0249), + q(1), + ], + q(limburgish) => [ + q(0249), + q(2), + ], + q(lingala) => [ + q(0250), + q(0), + ], + q(lithuanian) => [ + q(0251), + q(0), + ], + q(lojban) => [ + q(0204), + q(0), + ], + q(low german) => [ + q(0306), + q(0), + ], + q(low saxon) => [ + q(0306), + q(1), + ], + q(lower sorbian) => [ + q(0113), + q(0), + ], + q(lozi) => [ + q(0253), + q(0), + ], + q(luba-katanga) => [ + q(0256), + q(0), + ], + q(luba-lulua) => [ + q(0255), + q(0), + ], + q(luiseno) => [ + q(0258), + q(0), + ], + q(lule sami) => [ + q(0390), + q(0), + ], + q(lunda) => [ + q(0259), + q(0), + ], + q(luo (kenya and tanzania)) => [ + q(0260), + q(0), + ], + q(lushai) => [ + q(0261), + q(0), + ], + q(luxembourgish) => [ + q(0254), + q(0), + ], + q(macedo-romanian) => [ + q(0362), + q(2), + ], + q(macedonian) => [ + q(0262), + q(0), + ], + q(madurese) => [ + q(0263), + q(0), + ], + q(magahi) => [ + q(0264), + q(0), + ], + q(maithili) => [ + q(0266), + q(0), + ], + q(makasar) => [ + q(0267), + q(0), + ], + q(malagasy) => [ + q(0283), + q(0), + ], + q(malay) => [ + q(0274), + q(0), + ], + q(malayalam) => [ + q(0268), + q(0), + ], + q(maldivian) => [ + q(0110), + q(2), + ], + q(maltese) => [ + q(0284), + q(0), + ], + q(manchu) => [ + q(0285), + q(0), + ], + q(mandar) => [ + q(0276), + q(0), + ], + q(mandingo) => [ + q(0269), + q(0), + ], + q(manipuri) => [ + q(0286), + q(0), + ], + q(manobo languages) => [ + q(0287), + q(0), + ], + q(manx) => [ + q(0156), + q(0), + ], + q(maori) => [ + q(0270), + q(0), + ], + q(mapuche) => [ + q(0025), + q(1), + ], + q(mapudungun) => [ + q(0025), + q(0), + ], + q(marathi) => [ + q(0272), + q(0), + ], + q(mari) => [ + q(0081), + q(0), + ], + q(marshallese) => [ + q(0265), + q(0), + ], + q(marwari) => [ + q(0295), + q(0), + ], + q(masai) => [ + q(0273), + q(0), + ], + q(mayan languages) => [ + q(0296), + q(0), + ], + q(mende) => [ + q(0277), + q(0), + ], + q(mi'kmaq) => [ + q(0279), + q(0), + ], + q(micmac) => [ + q(0279), + q(1), + ], + q(minangkabau) => [ + q(0280), + q(0), + ], + q(mirandese) => [ + q(0294), + q(0), + ], + q(mohawk) => [ + q(0288), + q(0), + ], + q(moksha) => [ + q(0275), + q(0), + ], + q(moldavian) => [ + q(0360), + q(1), + ], + q(moldovan) => [ + q(0360), + q(2), + ], + q(mon-khmer languages) => [ + q(0282), + q(0), + ], + q(mong) => [ + q(0179), + q(1), + ], + q(mongo) => [ + q(0252), + q(0), + ], + q(mongolian) => [ + q(0289), + q(0), + ], + q(mossi) => [ + q(0290), + q(0), + ], + q(multiple languages) => [ + q(0291), + q(0), + ], + q(munda languages) => [ + q(0292), + q(0), + ], + q(n'ko) => [ + q(0317), + q(0), + ], + q(nahuatl languages) => [ + q(0298), + q(0), + ], + q(nauru) => [ + q(0301), + q(0), + ], + q(navaho) => [ + q(0302), + q(1), + ], + q(navajo) => [ + q(0302), + q(0), + ], + q(ndebele, north) => [ + q(0304), + q(0), + ], + q(ndebele, south) => [ + q(0303), + q(0), + ], + q(ndonga) => [ + q(0305), + q(0), + ], + q(neapolitan) => [ + q(0300), + q(0), + ], + q(nepal bhasa) => [ + q(0308), + q(0), + ], + q(nepali) => [ + q(0307), + q(0), + ], + q(newari) => [ + q(0308), + q(1), + ], + q(nias) => [ + q(0309), + q(0), + ], + q(niger-kordofanian languages) => [ + q(0310), + q(0), + ], + q(nilo-saharan languages) => [ + q(0406), + q(0), + ], + q(niuean) => [ + q(0311), + q(0), + ], + q(no linguistic content) => [ + q(0484), + q(0), + ], + q(nogai) => [ + q(0314), + q(0), + ], + q(norse, old) => [ + q(0315), + q(0), + ], + q(north american indian languages) => [ + q(0299), + q(0), + ], + q(north ndebele) => [ + q(0304), + q(1), + ], + q(northern frisian) => [ + q(0140), + q(0), + ], + q(northern sami) => [ + q(0388), + q(0), + ], + q(northern sotho) => [ + q(0318), + q(2), + ], + q(norwegian) => [ + q(0316), + q(0), + ], + q(norwegian bokmal) => [ + q(0313), + q(1), + ], + q(norwegian nynorsk) => [ + q(0312), + q(0), + ], + q(not applicable) => [ + q(0484), + q(1), + ], + q(nubian languages) => [ + q(0319), + q(0), + ], + q(nuosu) => [ + q(0189), + q(1), + ], + q(nyamwezi) => [ + q(0322), + q(0), + ], + q(nyanja) => [ + q(0321), + q(2), + ], + q(nyankole) => [ + q(0323), + q(0), + ], + q(nynorsk, norwegian) => [ + q(0312), + q(1), + ], + q(nyoro) => [ + q(0324), + q(0), + ], + q(nzima) => [ + q(0325), + q(0), + ], + q(occidental) => [ + q(0192), + q(1), + ], + q(occitan (post 1500)) => [ + q(0326), + q(0), + ], + q(official aramaic (700-300 bce)) => [ + q(0022), + q(0), + ], + q(oirat) => [ + q(0470), + q(1), + ], + q(ojibwa) => [ + q(0327), + q(0), + ], + q(old bulgarian) => [ + q(0086), + q(3), + ], + q(old church slavonic) => [ + q(0086), + q(4), + ], + q(old newari) => [ + q(0320), + q(1), + ], + q(old slavonic) => [ + q(0086), + q(1), + ], + q(oriya) => [ + q(0328), + q(0), + ], + q(oromo) => [ + q(0329), + q(0), + ], + q(osage) => [ + q(0330), + q(0), + ], + q(ossetian) => [ + q(0331), + q(0), + ], + q(ossetic) => [ + q(0331), + q(1), + ], + q(otomian languages) => [ + q(0333), + q(0), + ], + q(pahlavi) => [ + q(0336), + q(0), + ], + q(palauan) => [ + q(0340), + q(0), + ], + q(pali) => [ + q(0345), + q(0), + ], + q(pampanga) => [ + q(0337), + q(0), + ], + q(pangasinan) => [ + q(0335), + q(0), + ], + q(panjabi) => [ + q(0338), + q(0), + ], + q(papiamento) => [ + q(0339), + q(0), + ], + q(papuan languages) => [ + q(0334), + q(0), + ], + q(pashto) => [ + q(0351), + q(1), + ], + q(pedi) => [ + q(0318), + q(0), + ], + q(persian) => [ + q(0342), + q(0), + ], + q(persian, old (ca.600-400 b.c.)) => [ + q(0341), + q(0), + ], + q(philippine languages) => [ + q(0343), + q(0), + ], + q(phoenician) => [ + q(0344), + q(0), + ], + q(pilipino) => [ + q(0133), + q(1), + ], + q(pohnpeian) => [ + q(0347), + q(0), + ], + q(polish) => [ + q(0346), + q(0), + ], + q(portuguese) => [ + q(0348), + q(0), + ], + q(prakrit languages) => [ + q(0349), + q(0), + ], + q(provencal) => [ + q(0326), + q(1), + ], + q(provencal, old (to 1500)) => [ + q(0350), + q(0), + ], + q(punjabi) => [ + q(0338), + q(1), + ], + q(pushto) => [ + q(0351), + q(0), + ], + q(quechua) => [ + q(0353), + q(0), + ], + q(rajasthani) => [ + q(0354), + q(0), + ], + q(rapanui) => [ + q(0355), + q(0), + ], + q(rarotongan) => [ + q(0356), + q(0), + ], + q(reserved for local use) => [ + q(0352), + q(0), + ], + q(romance languages) => [ + q(0357), + q(0), + ], + q(romanian) => [ + q(0360), + q(0), + ], + q(romansh) => [ + q(0358), + q(0), + ], + q(romany) => [ + q(0359), + q(0), + ], + q(rundi) => [ + q(0361), + q(0), + ], + q(russian) => [ + q(0363), + q(0), + ], + q(sakan) => [ + q(0223), + q(1), + ], + q(salishan languages) => [ + q(0368), + q(0), + ], + q(samaritan aramaic) => [ + q(0369), + q(0), + ], + q(sami languages) => [ + q(0389), + q(0), + ], + q(samoan) => [ + q(0392), + q(0), + ], + q(sandawe) => [ + q(0364), + q(0), + ], + q(sango) => [ + q(0365), + q(0), + ], + q(sanskrit) => [ + q(0370), + q(0), + ], + q(santali) => [ + q(0372), + q(0), + ], + q(sardinian) => [ + q(0402), + q(0), + ], + q(sasak) => [ + q(0371), + q(0), + ], + q(saxon, low) => [ + q(0306), + q(3), + ], + q(scots) => [ + q(0374), + q(0), + ], + q(scottish gaelic) => [ + q(0153), + q(1), + ], + q(selkup) => [ + q(0375), + q(0), + ], + q(semitic languages) => [ + q(0376), + q(0), + ], + q(sepedi) => [ + q(0318), + q(1), + ], + q(serbian) => [ + q(0404), + q(0), + ], + q(serer) => [ + q(0405), + q(0), + ], + q(shan) => [ + q(0379), + q(0), + ], + q(shona) => [ + q(0394), + q(0), + ], + q(sichuan yi) => [ + q(0189), + q(0), + ], + q(sicilian) => [ + q(0373), + q(0), + ], + q(sidamo) => [ + q(0380), + q(0), + ], + q(sign languages) => [ + q(0378), + q(0), + ], + q(siksika) => [ + q(0057), + q(0), + ], + q(sindhi) => [ + q(0395), + q(0), + ], + q(sinhala) => [ + q(0381), + q(0), + ], + q(sinhalese) => [ + q(0381), + q(1), + ], + q(sino-tibetan languages) => [ + q(0383), + q(0), + ], + q(siouan languages) => [ + q(0382), + q(0), + ], + q(skolt sami) => [ + q(0393), + q(0), + ], + q(slave (athapascan)) => [ + q(0107), + q(0), + ], + q(slavic languages) => [ + q(0384), + q(0), + ], + q(slovak) => [ + q(0385), + q(0), + ], + q(slovenian) => [ + q(0386), + q(0), + ], + q(sogdian) => [ + q(0397), + q(0), + ], + q(somali) => [ + q(0398), + q(0), + ], + q(songhai languages) => [ + q(0399), + q(0), + ], + q(soninke) => [ + q(0396), + q(0), + ], + q(sorbian languages) => [ + q(0467), + q(0), + ], + q(sotho, southern) => [ + q(0400), + q(0), + ], + q(south american indian (other)) => [ + q(0367), + q(0), + ], + q(south ndebele) => [ + q(0303), + q(1), + ], + q(southern altai) => [ + q(0016), + q(0), + ], + q(southern sami) => [ + q(0387), + q(0), + ], + q(spanish) => [ + q(0401), + q(0), + ], + q(sranan tongo) => [ + q(0403), + q(0), + ], + q(sukuma) => [ + q(0408), + q(0), + ], + q(sumerian) => [ + q(0411), + q(0), + ], + q(sundanese) => [ + q(0409), + q(0), + ], + q(susu) => [ + q(0410), + q(0), + ], + q(swahili) => [ + q(0412), + q(0), + ], + q(swati) => [ + q(0407), + q(0), + ], + q(swedish) => [ + q(0413), + q(0), + ], + q(swiss german) => [ + q(0166), + q(0), + ], + q(syriac) => [ + q(0415), + q(0), + ], + q(tagalog) => [ + q(0425), + q(0), + ], + q(tahitian) => [ + q(0416), + q(0), + ], + q(tai languages) => [ + q(0417), + q(0), + ], + q(tajik) => [ + q(0424), + q(0), + ], + q(tamashek) => [ + q(0434), + q(0), + ], + q(tamil) => [ + q(0418), + q(0), + ], + q(tatar) => [ + q(0419), + q(0), + ], + q(telugu) => [ + q(0420), + q(0), + ], + q(tereno) => [ + q(0422), + q(0), + ], + q(tetum) => [ + q(0423), + q(0), + ], + q(thai) => [ + q(0426), + q(0), + ], + q(tibetan) => [ + q(0427), + q(0), + ], + q(tigre) => [ + q(0428), + q(0), + ], + q(tigrinya) => [ + q(0429), + q(0), + ], + q(timne) => [ + q(0421), + q(0), + ], + q(tiv) => [ + q(0430), + q(0), + ], + q(tlhingan-hol) => [ + q(0432), + q(1), + ], + q(tlingit) => [ + q(0433), + q(0), + ], + q(tok pisin) => [ + q(0437), + q(0), + ], + q(tokelau) => [ + q(0431), + q(0), + ], + q(tonga) => [ + q(0436), + q(1), + ], + q(tonga (nyasa)) => [ + q(0435), + q(0), + ], + q(tonga (tonga islands)) => [ + q(0436), + q(0), + ], + q(tsimshian) => [ + q(0438), + q(0), + ], + q(tsonga) => [ + q(0440), + q(0), + ], + q(tswana) => [ + q(0439), + q(0), + ], + q(tumbuka) => [ + q(0442), + q(0), + ], + q(tupi languages) => [ + q(0443), + q(0), + ], + q(turkish) => [ + q(0444), + q(0), + ], + q(turkish, ottoman (1500-1928)) => [ + q(0332), + q(0), + ], + q(turkmen) => [ + q(0441), + q(0), + ], + q(tuvalu) => [ + q(0446), + q(0), + ], + q(tuvinian) => [ + q(0448), + q(0), + ], + q(twi) => [ + q(0447), + q(0), + ], + q(udmurt) => [ + q(0449), + q(0), + ], + q(ugaritic) => [ + q(0450), + q(0), + ], + q(uighur) => [ + q(0451), + q(0), + ], + q(ukrainian) => [ + q(0452), + q(0), + ], + q(umbundu) => [ + q(0453), + q(0), + ], + q(uncoded languages) => [ + q(0281), + q(0), + ], + q(undetermined) => [ + q(0454), + q(0), + ], + q(upper sorbian) => [ + q(0182), + q(0), + ], + q(urdu) => [ + q(0455), + q(0), + ], + q(uyghur) => [ + q(0451), + q(1), + ], + q(uzbek) => [ + q(0456), + q(0), + ], + q(vai) => [ + q(0457), + q(0), + ], + q(valencian) => [ + q(0071), + q(1), + ], + q(venda) => [ + q(0458), + q(0), + ], + q(vietnamese) => [ + q(0459), + q(0), + ], + q(volapuk) => [ + q(0460), + q(0), + ], + q(votic) => [ + q(0461), + q(0), + ], + q(wakashan languages) => [ + q(0462), + q(0), + ], + q(walamo) => [ + q(0463), + q(0), + ], + q(walloon) => [ + q(0468), + q(0), + ], + q(waray) => [ + q(0464), + q(0), + ], + q(washo) => [ + q(0465), + q(0), + ], + q(welsh) => [ + q(0466), + q(0), + ], + q(western frisian) => [ + q(0142), + q(0), + ], + q(western pahari languages) => [ + q(0176), + q(1), + ], + q(wolof) => [ + q(0469), + q(0), + ], + q(xhosa) => [ + q(0471), + q(0), + ], + q(yakut) => [ + q(0366), + q(0), + ], + q(yao) => [ + q(0472), + q(0), + ], + q(yapese) => [ + q(0473), + q(0), + ], + q(yiddish) => [ + q(0474), + q(0), + ], + q(yoruba) => [ + q(0475), + q(0), + ], + q(yupik languages) => [ + q(0476), + q(0), + ], + q(zande languages) => [ + q(0481), + q(0), + ], + q(zapotec) => [ + q(0477), + q(0), + ], + q(zaza) => [ + q(0485), + q(0), + ], + q(zazaki) => [ + q(0485), + q(5), + ], + q(zenaga) => [ + q(0479), + q(0), + ], + q(zhuang) => [ + q(0480), + q(0), + ], + q(zulu) => [ + q(0482), + q(0), + ], + q(zuni) => [ + q(0483), + q(0), + ], +}; + +$Locale::Codes::Data{'language'}{'code2id'} = { + q(alpha2) => { + q(aa) => [ + q(0001), + q(0), + ], + q(ab) => [ + q(0002), + q(0), + ], + q(ae) => [ + q(0034), + q(0), + ], + q(af) => [ + q(0009), + q(0), + ], + q(ak) => [ + q(0011), + q(0), + ], + q(am) => [ + q(0017), + q(0), + ], + q(an) => [ + q(0023), + q(0), + ], + q(ar) => [ + q(0021), + q(0), + ], + q(as) => [ + q(0029), + q(0), + ], + q(av) => [ + q(0033), + q(0), + ], + q(ay) => [ + q(0036), + q(0), + ], + q(az) => [ + q(0037), + q(0), + ], + q(ba) => [ + q(0040), + q(0), + ], + q(be) => [ + q(0048), + q(0), + ], + q(bg) => [ + q(0065), + q(0), + ], + q(bh) => [ + q(0053), + q(0), + ], + q(bi) => [ + q(0056), + q(0), + ], + q(bm) => [ + q(0042), + q(0), + ], + q(bn) => [ + q(0050), + q(0), + ], + q(bo) => [ + q(0427), + q(0), + ], + q(br) => [ + q(0061), + q(0), + ], + q(bs) => [ + q(0059), + q(0), + ], + q(ca) => [ + q(0071), + q(0), + ], + q(ce) => [ + q(0077), + q(0), + ], + q(ch) => [ + q(0075), + q(0), + ], + q(co) => [ + q(0092), + q(0), + ], + q(cr) => [ + q(0096), + q(0), + ], + q(cs) => [ + q(0101), + q(0), + ], + q(cu) => [ + q(0086), + q(0), + ], + q(cv) => [ + q(0087), + q(0), + ], + q(cy) => [ + q(0466), + q(0), + ], + q(da) => [ + q(0103), + q(0), + ], + q(de) => [ + q(0150), + q(0), + ], + q(dv) => [ + q(0110), + q(0), + ], + q(dz) => [ + q(0118), + q(0), + ], + q(ee) => [ + q(0127), + q(0), + ], + q(el) => [ + q(0164), + q(0), + ], + q(en) => [ + q(0123), + q(0), + ], + q(eo) => [ + q(0125), + q(0), + ], + q(es) => [ + q(0401), + q(0), + ], + q(et) => [ + q(0126), + q(0), + ], + q(eu) => [ + q(0044), + q(0), + ], + q(fa) => [ + q(0342), + q(0), + ], + q(ff) => [ + q(0143), + q(0), + ], + q(fi) => [ + q(0134), + q(0), + ], + q(fj) => [ + q(0132), + q(0), + ], + q(fo) => [ + q(0130), + q(0), + ], + q(fr) => [ + q(0137), + q(0), + ], + q(fy) => [ + q(0142), + q(0), + ], + q(ga) => [ + q(0154), + q(0), + ], + q(gd) => [ + q(0153), + q(0), + ], + q(gl) => [ + q(0155), + q(0), + ], + q(gn) => [ + q(0165), + q(0), + ], + q(gu) => [ + q(0167), + q(0), + ], + q(gv) => [ + q(0156), + q(0), + ], + q(ha) => [ + q(0171), + q(0), + ], + q(he) => [ + q(0173), + q(0), + ], + q(hi) => [ + q(0177), + q(0), + ], + q(ho) => [ + q(0180), + q(0), + ], + q(hr) => [ + q(0181), + q(0), + ], + q(ht) => [ + q(0170), + q(0), + ], + q(hu) => [ + q(0183), + q(0), + ], + q(hy) => [ + q(0024), + q(0), + ], + q(hz) => [ + q(0174), + q(0), + ], + q(ia) => [ + q(0194), + q(0), + ], + q(id) => [ + q(0196), + q(0), + ], + q(ie) => [ + q(0192), + q(0), + ], + q(ig) => [ + q(0186), + q(0), + ], + q(ii) => [ + q(0189), + q(0), + ], + q(ik) => [ + q(0199), + q(0), + ], + q(io) => [ + q(0188), + q(0), + ], + q(is) => [ + q(0187), + q(0), + ], + q(it) => [ + q(0202), + q(0), + ], + q(iu) => [ + q(0191), + q(0), + ], + q(ja) => [ + q(0205), + q(0), + ], + q(jv) => [ + q(0203), + q(0), + ], + q(ka) => [ + q(0149), + q(0), + ], + q(kg) => [ + q(0230), + q(0), + ], + q(ki) => [ + q(0224), + q(0), + ], + q(kj) => [ + q(0238), + q(0), + ], + q(kk) => [ + q(0218), + q(0), + ], + q(kl) => [ + q(0211), + q(0), + ], + q(km) => [ + q(0222), + q(0), + ], + q(kn) => [ + q(0213), + q(0), + ], + q(ko) => [ + q(0231), + q(0), + ], + q(kr) => [ + q(0216), + q(0), + ], + q(ks) => [ + q(0215), + q(0), + ], + q(ku) => [ + q(0240), + q(0), + ], + q(kv) => [ + q(0229), + q(0), + ], + q(kw) => [ + q(0091), + q(0), + ], + q(ky) => [ + q(0226), + q(0), + ], + q(la) => [ + q(0246), + q(0), + ], + q(lb) => [ + q(0254), + q(0), + ], + q(lg) => [ + q(0257), + q(0), + ], + q(li) => [ + q(0249), + q(0), + ], + q(ln) => [ + q(0250), + q(0), + ], + q(lo) => [ + q(0245), + q(0), + ], + q(lt) => [ + q(0251), + q(0), + ], + q(lu) => [ + q(0256), + q(0), + ], + q(lv) => [ + q(0247), + q(0), + ], + q(mg) => [ + q(0283), + q(0), + ], + q(mh) => [ + q(0265), + q(0), + ], + q(mi) => [ + q(0270), + q(0), + ], + q(mk) => [ + q(0262), + q(0), + ], + q(ml) => [ + q(0268), + q(0), + ], + q(mn) => [ + q(0289), + q(0), + ], + q(mr) => [ + q(0272), + q(0), + ], + q(ms) => [ + q(0274), + q(0), + ], + q(mt) => [ + q(0284), + q(0), + ], + q(my) => [ + q(0066), + q(0), + ], + q(na) => [ + q(0301), + q(0), + ], + q(nb) => [ + q(0313), + q(0), + ], + q(nd) => [ + q(0304), + q(0), + ], + q(ne) => [ + q(0307), + q(0), + ], + q(ng) => [ + q(0305), + q(0), + ], + q(nl) => [ + q(0116), + q(0), + ], + q(nn) => [ + q(0312), + q(0), + ], + q(no) => [ + q(0316), + q(0), + ], + q(nr) => [ + q(0303), + q(0), + ], + q(nv) => [ + q(0302), + q(0), + ], + q(ny) => [ + q(0321), + q(0), + ], + q(oc) => [ + q(0326), + q(0), + ], + q(oj) => [ + q(0327), + q(0), + ], + q(om) => [ + q(0329), + q(0), + ], + q(or) => [ + q(0328), + q(0), + ], + q(os) => [ + q(0331), + q(0), + ], + q(pa) => [ + q(0338), + q(0), + ], + q(pi) => [ + q(0345), + q(0), + ], + q(pl) => [ + q(0346), + q(0), + ], + q(ps) => [ + q(0351), + q(0), + ], + q(pt) => [ + q(0348), + q(0), + ], + q(qu) => [ + q(0353), + q(0), + ], + q(rm) => [ + q(0358), + q(0), + ], + q(rn) => [ + q(0361), + q(0), + ], + q(ro) => [ + q(0360), + q(0), + ], + q(ru) => [ + q(0363), + q(0), + ], + q(rw) => [ + q(0225), + q(0), + ], + q(sa) => [ + q(0370), + q(0), + ], + q(sc) => [ + q(0402), + q(0), + ], + q(sd) => [ + q(0395), + q(0), + ], + q(se) => [ + q(0388), + q(0), + ], + q(sg) => [ + q(0365), + q(0), + ], + q(si) => [ + q(0381), + q(0), + ], + q(sk) => [ + q(0385), + q(0), + ], + q(sl) => [ + q(0386), + q(0), + ], + q(sm) => [ + q(0392), + q(0), + ], + q(sn) => [ + q(0394), + q(0), + ], + q(so) => [ + q(0398), + q(0), + ], + q(sq) => [ + q(0013), + q(0), + ], + q(sr) => [ + q(0404), + q(0), + ], + q(ss) => [ + q(0407), + q(0), + ], + q(st) => [ + q(0400), + q(0), + ], + q(su) => [ + q(0409), + q(0), + ], + q(sv) => [ + q(0413), + q(0), + ], + q(sw) => [ + q(0412), + q(0), + ], + q(ta) => [ + q(0418), + q(0), + ], + q(te) => [ + q(0420), + q(0), + ], + q(tg) => [ + q(0424), + q(0), + ], + q(th) => [ + q(0426), + q(0), + ], + q(ti) => [ + q(0429), + q(0), + ], + q(tk) => [ + q(0441), + q(0), + ], + q(tl) => [ + q(0425), + q(0), + ], + q(tn) => [ + q(0439), + q(0), + ], + q(to) => [ + q(0436), + q(0), + ], + q(tr) => [ + q(0444), + q(0), + ], + q(ts) => [ + q(0440), + q(0), + ], + q(tt) => [ + q(0419), + q(0), + ], + q(tw) => [ + q(0447), + q(0), + ], + q(ty) => [ + q(0416), + q(0), + ], + q(ug) => [ + q(0451), + q(0), + ], + q(uk) => [ + q(0452), + q(0), + ], + q(ur) => [ + q(0455), + q(0), + ], + q(uz) => [ + q(0456), + q(0), + ], + q(ve) => [ + q(0458), + q(0), + ], + q(vi) => [ + q(0459), + q(0), + ], + q(vo) => [ + q(0460), + q(0), + ], + q(wa) => [ + q(0468), + q(0), + ], + q(wo) => [ + q(0469), + q(0), + ], + q(xh) => [ + q(0471), + q(0), + ], + q(yi) => [ + q(0474), + q(0), + ], + q(yo) => [ + q(0475), + q(0), + ], + q(za) => [ + q(0480), + q(0), + ], + q(zh) => [ + q(0079), + q(0), + ], + q(zu) => [ + q(0482), + q(0), + ], + }, + q(alpha3) => { + q(aar) => [ + q(0001), + q(0), + ], + q(abk) => [ + q(0002), + q(0), + ], + q(ace) => [ + q(0003), + q(0), + ], + q(ach) => [ + q(0004), + q(0), + ], + q(ada) => [ + q(0005), + q(0), + ], + q(ady) => [ + q(0006), + q(0), + ], + q(afa) => [ + q(0007), + q(0), + ], + q(afh) => [ + q(0008), + q(0), + ], + q(afr) => [ + q(0009), + q(0), + ], + q(ain) => [ + q(0010), + q(0), + ], + q(aka) => [ + q(0011), + q(0), + ], + q(akk) => [ + q(0012), + q(0), + ], + q(alb) => [ + q(0013), + q(0), + ], + q(ale) => [ + q(0014), + q(0), + ], + q(alg) => [ + q(0015), + q(0), + ], + q(alt) => [ + q(0016), + q(0), + ], + q(amh) => [ + q(0017), + q(0), + ], + q(ang) => [ + q(0018), + q(0), + ], + q(anp) => [ + q(0019), + q(0), + ], + q(apa) => [ + q(0020), + q(0), + ], + q(ara) => [ + q(0021), + q(0), + ], + q(arc) => [ + q(0022), + q(0), + ], + q(arg) => [ + q(0023), + q(0), + ], + q(arm) => [ + q(0024), + q(0), + ], + q(arn) => [ + q(0025), + q(0), + ], + q(arp) => [ + q(0026), + q(0), + ], + q(art) => [ + q(0027), + q(0), + ], + q(arw) => [ + q(0028), + q(0), + ], + q(asm) => [ + q(0029), + q(0), + ], + q(ast) => [ + q(0030), + q(0), + ], + q(ath) => [ + q(0031), + q(0), + ], + q(aus) => [ + q(0032), + q(0), + ], + q(ava) => [ + q(0033), + q(0), + ], + q(ave) => [ + q(0034), + q(0), + ], + q(awa) => [ + q(0035), + q(0), + ], + q(aym) => [ + q(0036), + q(0), + ], + q(aze) => [ + q(0037), + q(0), + ], + q(bad) => [ + q(0038), + q(0), + ], + q(bai) => [ + q(0039), + q(0), + ], + q(bak) => [ + q(0040), + q(0), + ], + q(bal) => [ + q(0041), + q(0), + ], + q(bam) => [ + q(0042), + q(0), + ], + q(ban) => [ + q(0043), + q(0), + ], + q(baq) => [ + q(0044), + q(0), + ], + q(bas) => [ + q(0045), + q(0), + ], + q(bat) => [ + q(0046), + q(0), + ], + q(bej) => [ + q(0047), + q(0), + ], + q(bel) => [ + q(0048), + q(0), + ], + q(bem) => [ + q(0049), + q(0), + ], + q(ben) => [ + q(0050), + q(0), + ], + q(ber) => [ + q(0051), + q(0), + ], + q(bho) => [ + q(0052), + q(0), + ], + q(bih) => [ + q(0053), + q(0), + ], + q(bik) => [ + q(0054), + q(0), + ], + q(bin) => [ + q(0055), + q(0), + ], + q(bis) => [ + q(0056), + q(0), + ], + q(bla) => [ + q(0057), + q(0), + ], + q(bnt) => [ + q(0058), + q(0), + ], + q(bos) => [ + q(0059), + q(0), + ], + q(bra) => [ + q(0060), + q(0), + ], + q(bre) => [ + q(0061), + q(0), + ], + q(btk) => [ + q(0062), + q(0), + ], + q(bua) => [ + q(0063), + q(0), + ], + q(bug) => [ + q(0064), + q(0), + ], + q(bul) => [ + q(0065), + q(0), + ], + q(bur) => [ + q(0066), + q(0), + ], + q(byn) => [ + q(0067), + q(0), + ], + q(cad) => [ + q(0068), + q(0), + ], + q(cai) => [ + q(0069), + q(0), + ], + q(car) => [ + q(0070), + q(0), + ], + q(cat) => [ + q(0071), + q(0), + ], + q(cau) => [ + q(0072), + q(0), + ], + q(ceb) => [ + q(0073), + q(0), + ], + q(cel) => [ + q(0074), + q(0), + ], + q(cha) => [ + q(0075), + q(0), + ], + q(chb) => [ + q(0076), + q(0), + ], + q(che) => [ + q(0077), + q(0), + ], + q(chg) => [ + q(0078), + q(0), + ], + q(chi) => [ + q(0079), + q(0), + ], + q(chk) => [ + q(0080), + q(0), + ], + q(chm) => [ + q(0081), + q(0), + ], + q(chn) => [ + q(0082), + q(0), + ], + q(cho) => [ + q(0083), + q(0), + ], + q(chp) => [ + q(0084), + q(0), + ], + q(chr) => [ + q(0085), + q(0), + ], + q(chu) => [ + q(0086), + q(0), + ], + q(chv) => [ + q(0087), + q(0), + ], + q(chy) => [ + q(0088), + q(0), + ], + q(cmc) => [ + q(0089), + q(0), + ], + q(cop) => [ + q(0090), + q(0), + ], + q(cor) => [ + q(0091), + q(0), + ], + q(cos) => [ + q(0092), + q(0), + ], + q(cpe) => [ + q(0093), + q(0), + ], + q(cpf) => [ + q(0094), + q(0), + ], + q(cpp) => [ + q(0095), + q(0), + ], + q(cre) => [ + q(0096), + q(0), + ], + q(crh) => [ + q(0097), + q(0), + ], + q(crp) => [ + q(0098), + q(0), + ], + q(csb) => [ + q(0099), + q(0), + ], + q(cus) => [ + q(0100), + q(0), + ], + q(cze) => [ + q(0101), + q(0), + ], + q(dak) => [ + q(0102), + q(0), + ], + q(dan) => [ + q(0103), + q(0), + ], + q(dar) => [ + q(0104), + q(0), + ], + q(day) => [ + q(0105), + q(0), + ], + q(del) => [ + q(0106), + q(0), + ], + q(den) => [ + q(0107), + q(0), + ], + q(dgr) => [ + q(0108), + q(0), + ], + q(din) => [ + q(0109), + q(0), + ], + q(div) => [ + q(0110), + q(0), + ], + q(doi) => [ + q(0111), + q(0), + ], + q(dra) => [ + q(0112), + q(0), + ], + q(dsb) => [ + q(0113), + q(0), + ], + q(dua) => [ + q(0114), + q(0), + ], + q(dum) => [ + q(0115), + q(0), + ], + q(dut) => [ + q(0116), + q(0), + ], + q(dyu) => [ + q(0117), + q(0), + ], + q(dzo) => [ + q(0118), + q(0), + ], + q(efi) => [ + q(0119), + q(0), + ], + q(egy) => [ + q(0120), + q(0), + ], + q(eka) => [ + q(0121), + q(0), + ], + q(elx) => [ + q(0122), + q(0), + ], + q(eng) => [ + q(0123), + q(0), + ], + q(enm) => [ + q(0124), + q(0), + ], + q(epo) => [ + q(0125), + q(0), + ], + q(est) => [ + q(0126), + q(0), + ], + q(ewe) => [ + q(0127), + q(0), + ], + q(ewo) => [ + q(0128), + q(0), + ], + q(fan) => [ + q(0129), + q(0), + ], + q(fao) => [ + q(0130), + q(0), + ], + q(fat) => [ + q(0131), + q(0), + ], + q(fij) => [ + q(0132), + q(0), + ], + q(fil) => [ + q(0133), + q(0), + ], + q(fin) => [ + q(0134), + q(0), + ], + q(fiu) => [ + q(0135), + q(0), + ], + q(fon) => [ + q(0136), + q(0), + ], + q(fre) => [ + q(0137), + q(0), + ], + q(frm) => [ + q(0138), + q(0), + ], + q(fro) => [ + q(0139), + q(0), + ], + q(frr) => [ + q(0140), + q(0), + ], + q(frs) => [ + q(0141), + q(0), + ], + q(fry) => [ + q(0142), + q(0), + ], + q(ful) => [ + q(0143), + q(0), + ], + q(fur) => [ + q(0144), + q(0), + ], + q(gaa) => [ + q(0145), + q(0), + ], + q(gay) => [ + q(0146), + q(0), + ], + q(gba) => [ + q(0147), + q(0), + ], + q(gem) => [ + q(0148), + q(0), + ], + q(geo) => [ + q(0149), + q(0), + ], + q(ger) => [ + q(0150), + q(0), + ], + q(gez) => [ + q(0151), + q(0), + ], + q(gil) => [ + q(0152), + q(0), + ], + q(gla) => [ + q(0153), + q(0), + ], + q(gle) => [ + q(0154), + q(0), + ], + q(glg) => [ + q(0155), + q(0), + ], + q(glv) => [ + q(0156), + q(0), + ], + q(gmh) => [ + q(0157), + q(0), + ], + q(goh) => [ + q(0158), + q(0), + ], + q(gon) => [ + q(0159), + q(0), + ], + q(gor) => [ + q(0160), + q(0), + ], + q(got) => [ + q(0161), + q(0), + ], + q(grb) => [ + q(0162), + q(0), + ], + q(grc) => [ + q(0163), + q(0), + ], + q(gre) => [ + q(0164), + q(0), + ], + q(grn) => [ + q(0165), + q(0), + ], + q(gsw) => [ + q(0166), + q(0), + ], + q(guj) => [ + q(0167), + q(0), + ], + q(gwi) => [ + q(0168), + q(0), + ], + q(hai) => [ + q(0169), + q(0), + ], + q(hat) => [ + q(0170), + q(0), + ], + q(hau) => [ + q(0171), + q(0), + ], + q(haw) => [ + q(0172), + q(0), + ], + q(heb) => [ + q(0173), + q(0), + ], + q(her) => [ + q(0174), + q(0), + ], + q(hil) => [ + q(0175), + q(0), + ], + q(him) => [ + q(0176), + q(0), + ], + q(hin) => [ + q(0177), + q(0), + ], + q(hit) => [ + q(0178), + q(0), + ], + q(hmn) => [ + q(0179), + q(0), + ], + q(hmo) => [ + q(0180), + q(0), + ], + q(hrv) => [ + q(0181), + q(0), + ], + q(hsb) => [ + q(0182), + q(0), + ], + q(hun) => [ + q(0183), + q(0), + ], + q(hup) => [ + q(0184), + q(0), + ], + q(iba) => [ + q(0185), + q(0), + ], + q(ibo) => [ + q(0186), + q(0), + ], + q(ice) => [ + q(0187), + q(0), + ], + q(ido) => [ + q(0188), + q(0), + ], + q(iii) => [ + q(0189), + q(0), + ], + q(ijo) => [ + q(0190), + q(0), + ], + q(iku) => [ + q(0191), + q(0), + ], + q(ile) => [ + q(0192), + q(0), + ], + q(ilo) => [ + q(0193), + q(0), + ], + q(ina) => [ + q(0194), + q(0), + ], + q(inc) => [ + q(0195), + q(0), + ], + q(ind) => [ + q(0196), + q(0), + ], + q(ine) => [ + q(0197), + q(0), + ], + q(inh) => [ + q(0198), + q(0), + ], + q(ipk) => [ + q(0199), + q(0), + ], + q(ira) => [ + q(0200), + q(0), + ], + q(iro) => [ + q(0201), + q(0), + ], + q(ita) => [ + q(0202), + q(0), + ], + q(jav) => [ + q(0203), + q(0), + ], + q(jbo) => [ + q(0204), + q(0), + ], + q(jpn) => [ + q(0205), + q(0), + ], + q(jpr) => [ + q(0206), + q(0), + ], + q(jrb) => [ + q(0207), + q(0), + ], + q(kaa) => [ + q(0208), + q(0), + ], + q(kab) => [ + q(0209), + q(0), + ], + q(kac) => [ + q(0210), + q(0), + ], + q(kal) => [ + q(0211), + q(0), + ], + q(kam) => [ + q(0212), + q(0), + ], + q(kan) => [ + q(0213), + q(0), + ], + q(kar) => [ + q(0214), + q(0), + ], + q(kas) => [ + q(0215), + q(0), + ], + q(kau) => [ + q(0216), + q(0), + ], + q(kaw) => [ + q(0217), + q(0), + ], + q(kaz) => [ + q(0218), + q(0), + ], + q(kbd) => [ + q(0219), + q(0), + ], + q(kha) => [ + q(0220), + q(0), + ], + q(khi) => [ + q(0221), + q(0), + ], + q(khm) => [ + q(0222), + q(0), + ], + q(kho) => [ + q(0223), + q(0), + ], + q(kik) => [ + q(0224), + q(0), + ], + q(kin) => [ + q(0225), + q(0), + ], + q(kir) => [ + q(0226), + q(0), + ], + q(kmb) => [ + q(0227), + q(0), + ], + q(kok) => [ + q(0228), + q(0), + ], + q(kom) => [ + q(0229), + q(0), + ], + q(kon) => [ + q(0230), + q(0), + ], + q(kor) => [ + q(0231), + q(0), + ], + q(kos) => [ + q(0232), + q(0), + ], + q(kpe) => [ + q(0233), + q(0), + ], + q(krc) => [ + q(0234), + q(0), + ], + q(krl) => [ + q(0235), + q(0), + ], + q(kro) => [ + q(0236), + q(0), + ], + q(kru) => [ + q(0237), + q(0), + ], + q(kua) => [ + q(0238), + q(0), + ], + q(kum) => [ + q(0239), + q(0), + ], + q(kur) => [ + q(0240), + q(0), + ], + q(kut) => [ + q(0241), + q(0), + ], + q(lad) => [ + q(0242), + q(0), + ], + q(lah) => [ + q(0243), + q(0), + ], + q(lam) => [ + q(0244), + q(0), + ], + q(lao) => [ + q(0245), + q(0), + ], + q(lat) => [ + q(0246), + q(0), + ], + q(lav) => [ + q(0247), + q(0), + ], + q(lez) => [ + q(0248), + q(0), + ], + q(lim) => [ + q(0249), + q(0), + ], + q(lin) => [ + q(0250), + q(0), + ], + q(lit) => [ + q(0251), + q(0), + ], + q(lol) => [ + q(0252), + q(0), + ], + q(loz) => [ + q(0253), + q(0), + ], + q(ltz) => [ + q(0254), + q(0), + ], + q(lua) => [ + q(0255), + q(0), + ], + q(lub) => [ + q(0256), + q(0), + ], + q(lug) => [ + q(0257), + q(0), + ], + q(lui) => [ + q(0258), + q(0), + ], + q(lun) => [ + q(0259), + q(0), + ], + q(luo) => [ + q(0260), + q(0), + ], + q(lus) => [ + q(0261), + q(0), + ], + q(mac) => [ + q(0262), + q(0), + ], + q(mad) => [ + q(0263), + q(0), + ], + q(mag) => [ + q(0264), + q(0), + ], + q(mah) => [ + q(0265), + q(0), + ], + q(mai) => [ + q(0266), + q(0), + ], + q(mak) => [ + q(0267), + q(0), + ], + q(mal) => [ + q(0268), + q(0), + ], + q(man) => [ + q(0269), + q(0), + ], + q(mao) => [ + q(0270), + q(0), + ], + q(map) => [ + q(0271), + q(0), + ], + q(mar) => [ + q(0272), + q(0), + ], + q(mas) => [ + q(0273), + q(0), + ], + q(may) => [ + q(0274), + q(0), + ], + q(mdf) => [ + q(0275), + q(0), + ], + q(mdr) => [ + q(0276), + q(0), + ], + q(men) => [ + q(0277), + q(0), + ], + q(mga) => [ + q(0278), + q(0), + ], + q(mic) => [ + q(0279), + q(0), + ], + q(min) => [ + q(0280), + q(0), + ], + q(mis) => [ + q(0281), + q(0), + ], + q(mkh) => [ + q(0282), + q(0), + ], + q(mlg) => [ + q(0283), + q(0), + ], + q(mlt) => [ + q(0284), + q(0), + ], + q(mnc) => [ + q(0285), + q(0), + ], + q(mni) => [ + q(0286), + q(0), + ], + q(mno) => [ + q(0287), + q(0), + ], + q(moh) => [ + q(0288), + q(0), + ], + q(mon) => [ + q(0289), + q(0), + ], + q(mos) => [ + q(0290), + q(0), + ], + q(mul) => [ + q(0291), + q(0), + ], + q(mun) => [ + q(0292), + q(0), + ], + q(mus) => [ + q(0293), + q(0), + ], + q(mwl) => [ + q(0294), + q(0), + ], + q(mwr) => [ + q(0295), + q(0), + ], + q(myn) => [ + q(0296), + q(0), + ], + q(myv) => [ + q(0297), + q(0), + ], + q(nah) => [ + q(0298), + q(0), + ], + q(nai) => [ + q(0299), + q(0), + ], + q(nap) => [ + q(0300), + q(0), + ], + q(nau) => [ + q(0301), + q(0), + ], + q(nav) => [ + q(0302), + q(0), + ], + q(nbl) => [ + q(0303), + q(0), + ], + q(nde) => [ + q(0304), + q(0), + ], + q(ndo) => [ + q(0305), + q(0), + ], + q(nds) => [ + q(0306), + q(0), + ], + q(nep) => [ + q(0307), + q(0), + ], + q(new) => [ + q(0308), + q(0), + ], + q(nia) => [ + q(0309), + q(0), + ], + q(nic) => [ + q(0310), + q(0), + ], + q(niu) => [ + q(0311), + q(0), + ], + q(nno) => [ + q(0312), + q(0), + ], + q(nob) => [ + q(0313), + q(0), + ], + q(nog) => [ + q(0314), + q(0), + ], + q(non) => [ + q(0315), + q(0), + ], + q(nor) => [ + q(0316), + q(0), + ], + q(nqo) => [ + q(0317), + q(0), + ], + q(nso) => [ + q(0318), + q(0), + ], + q(nub) => [ + q(0319), + q(0), + ], + q(nwc) => [ + q(0320), + q(0), + ], + q(nya) => [ + q(0321), + q(0), + ], + q(nym) => [ + q(0322), + q(0), + ], + q(nyn) => [ + q(0323), + q(0), + ], + q(nyo) => [ + q(0324), + q(0), + ], + q(nzi) => [ + q(0325), + q(0), + ], + q(oci) => [ + q(0326), + q(0), + ], + q(oji) => [ + q(0327), + q(0), + ], + q(ori) => [ + q(0328), + q(0), + ], + q(orm) => [ + q(0329), + q(0), + ], + q(osa) => [ + q(0330), + q(0), + ], + q(oss) => [ + q(0331), + q(0), + ], + q(ota) => [ + q(0332), + q(0), + ], + q(oto) => [ + q(0333), + q(0), + ], + q(paa) => [ + q(0334), + q(0), + ], + q(pag) => [ + q(0335), + q(0), + ], + q(pal) => [ + q(0336), + q(0), + ], + q(pam) => [ + q(0337), + q(0), + ], + q(pan) => [ + q(0338), + q(0), + ], + q(pap) => [ + q(0339), + q(0), + ], + q(pau) => [ + q(0340), + q(0), + ], + q(peo) => [ + q(0341), + q(0), + ], + q(per) => [ + q(0342), + q(0), + ], + q(phi) => [ + q(0343), + q(0), + ], + q(phn) => [ + q(0344), + q(0), + ], + q(pli) => [ + q(0345), + q(0), + ], + q(pol) => [ + q(0346), + q(0), + ], + q(pon) => [ + q(0347), + q(0), + ], + q(por) => [ + q(0348), + q(0), + ], + q(pra) => [ + q(0349), + q(0), + ], + q(pro) => [ + q(0350), + q(0), + ], + q(pus) => [ + q(0351), + q(0), + ], + q(qtz) => [ + q(0352), + q(0), + ], + q(que) => [ + q(0353), + q(0), + ], + q(raj) => [ + q(0354), + q(0), + ], + q(rap) => [ + q(0355), + q(0), + ], + q(rar) => [ + q(0356), + q(0), + ], + q(roa) => [ + q(0357), + q(0), + ], + q(roh) => [ + q(0358), + q(0), + ], + q(rom) => [ + q(0359), + q(0), + ], + q(rum) => [ + q(0360), + q(0), + ], + q(run) => [ + q(0361), + q(0), + ], + q(rup) => [ + q(0362), + q(0), + ], + q(rus) => [ + q(0363), + q(0), + ], + q(sad) => [ + q(0364), + q(0), + ], + q(sag) => [ + q(0365), + q(0), + ], + q(sah) => [ + q(0366), + q(0), + ], + q(sai) => [ + q(0367), + q(0), + ], + q(sal) => [ + q(0368), + q(0), + ], + q(sam) => [ + q(0369), + q(0), + ], + q(san) => [ + q(0370), + q(0), + ], + q(sas) => [ + q(0371), + q(0), + ], + q(sat) => [ + q(0372), + q(0), + ], + q(scn) => [ + q(0373), + q(0), + ], + q(sco) => [ + q(0374), + q(0), + ], + q(sel) => [ + q(0375), + q(0), + ], + q(sem) => [ + q(0376), + q(0), + ], + q(sga) => [ + q(0377), + q(0), + ], + q(sgn) => [ + q(0378), + q(0), + ], + q(shn) => [ + q(0379), + q(0), + ], + q(sid) => [ + q(0380), + q(0), + ], + q(sin) => [ + q(0381), + q(0), + ], + q(sio) => [ + q(0382), + q(0), + ], + q(sit) => [ + q(0383), + q(0), + ], + q(sla) => [ + q(0384), + q(0), + ], + q(slo) => [ + q(0385), + q(0), + ], + q(slv) => [ + q(0386), + q(0), + ], + q(sma) => [ + q(0387), + q(0), + ], + q(sme) => [ + q(0388), + q(0), + ], + q(smi) => [ + q(0389), + q(0), + ], + q(smj) => [ + q(0390), + q(0), + ], + q(smn) => [ + q(0391), + q(0), + ], + q(smo) => [ + q(0392), + q(0), + ], + q(sms) => [ + q(0393), + q(0), + ], + q(sna) => [ + q(0394), + q(0), + ], + q(snd) => [ + q(0395), + q(0), + ], + q(snk) => [ + q(0396), + q(0), + ], + q(sog) => [ + q(0397), + q(0), + ], + q(som) => [ + q(0398), + q(0), + ], + q(son) => [ + q(0399), + q(0), + ], + q(sot) => [ + q(0400), + q(0), + ], + q(spa) => [ + q(0401), + q(0), + ], + q(srd) => [ + q(0402), + q(0), + ], + q(srn) => [ + q(0403), + q(0), + ], + q(srp) => [ + q(0404), + q(0), + ], + q(srr) => [ + q(0405), + q(0), + ], + q(ssa) => [ + q(0406), + q(0), + ], + q(ssw) => [ + q(0407), + q(0), + ], + q(suk) => [ + q(0408), + q(0), + ], + q(sun) => [ + q(0409), + q(0), + ], + q(sus) => [ + q(0410), + q(0), + ], + q(sux) => [ + q(0411), + q(0), + ], + q(swa) => [ + q(0412), + q(0), + ], + q(swe) => [ + q(0413), + q(0), + ], + q(syc) => [ + q(0414), + q(0), + ], + q(syr) => [ + q(0415), + q(0), + ], + q(tah) => [ + q(0416), + q(0), + ], + q(tai) => [ + q(0417), + q(0), + ], + q(tam) => [ + q(0418), + q(0), + ], + q(tat) => [ + q(0419), + q(0), + ], + q(tel) => [ + q(0420), + q(0), + ], + q(tem) => [ + q(0421), + q(0), + ], + q(ter) => [ + q(0422), + q(0), + ], + q(tet) => [ + q(0423), + q(0), + ], + q(tgk) => [ + q(0424), + q(0), + ], + q(tgl) => [ + q(0425), + q(0), + ], + q(tha) => [ + q(0426), + q(0), + ], + q(tib) => [ + q(0427), + q(0), + ], + q(tig) => [ + q(0428), + q(0), + ], + q(tir) => [ + q(0429), + q(0), + ], + q(tiv) => [ + q(0430), + q(0), + ], + q(tkl) => [ + q(0431), + q(0), + ], + q(tlh) => [ + q(0432), + q(0), + ], + q(tli) => [ + q(0433), + q(0), + ], + q(tmh) => [ + q(0434), + q(0), + ], + q(tog) => [ + q(0435), + q(0), + ], + q(ton) => [ + q(0436), + q(0), + ], + q(tpi) => [ + q(0437), + q(0), + ], + q(tsi) => [ + q(0438), + q(0), + ], + q(tsn) => [ + q(0439), + q(0), + ], + q(tso) => [ + q(0440), + q(0), + ], + q(tuk) => [ + q(0441), + q(0), + ], + q(tum) => [ + q(0442), + q(0), + ], + q(tup) => [ + q(0443), + q(0), + ], + q(tur) => [ + q(0444), + q(0), + ], + q(tut) => [ + q(0445), + q(0), + ], + q(tvl) => [ + q(0446), + q(0), + ], + q(twi) => [ + q(0447), + q(0), + ], + q(tyv) => [ + q(0448), + q(0), + ], + q(udm) => [ + q(0449), + q(0), + ], + q(uga) => [ + q(0450), + q(0), + ], + q(uig) => [ + q(0451), + q(0), + ], + q(ukr) => [ + q(0452), + q(0), + ], + q(umb) => [ + q(0453), + q(0), + ], + q(und) => [ + q(0454), + q(0), + ], + q(urd) => [ + q(0455), + q(0), + ], + q(uzb) => [ + q(0456), + q(0), + ], + q(vai) => [ + q(0457), + q(0), + ], + q(ven) => [ + q(0458), + q(0), + ], + q(vie) => [ + q(0459), + q(0), + ], + q(vol) => [ + q(0460), + q(0), + ], + q(vot) => [ + q(0461), + q(0), + ], + q(wak) => [ + q(0462), + q(0), + ], + q(wal) => [ + q(0463), + q(0), + ], + q(war) => [ + q(0464), + q(0), + ], + q(was) => [ + q(0465), + q(0), + ], + q(wel) => [ + q(0466), + q(0), + ], + q(wen) => [ + q(0467), + q(0), + ], + q(wln) => [ + q(0468), + q(0), + ], + q(wol) => [ + q(0469), + q(0), + ], + q(xal) => [ + q(0470), + q(0), + ], + q(xho) => [ + q(0471), + q(0), + ], + q(yao) => [ + q(0472), + q(0), + ], + q(yap) => [ + q(0473), + q(0), + ], + q(yid) => [ + q(0474), + q(0), + ], + q(yor) => [ + q(0475), + q(0), + ], + q(ypk) => [ + q(0476), + q(0), + ], + q(zap) => [ + q(0477), + q(0), + ], + q(zbl) => [ + q(0478), + q(0), + ], + q(zen) => [ + q(0479), + q(0), + ], + q(zha) => [ + q(0480), + q(0), + ], + q(znd) => [ + q(0481), + q(0), + ], + q(zul) => [ + q(0482), + q(0), + ], + q(zun) => [ + q(0483), + q(0), + ], + q(zxx) => [ + q(0484), + q(0), + ], + q(zza) => [ + q(0485), + q(0), + ], + }, + q(term) => { + q(bod) => [ + q(0427), + q(0), + ], + q(ces) => [ + q(0101), + q(0), + ], + q(cym) => [ + q(0466), + q(0), + ], + q(deu) => [ + q(0150), + q(0), + ], + q(ell) => [ + q(0164), + q(0), + ], + q(eus) => [ + q(0044), + q(0), + ], + q(fas) => [ + q(0342), + q(0), + ], + q(fra) => [ + q(0137), + q(0), + ], + q(hye) => [ + q(0024), + q(0), + ], + q(isl) => [ + q(0187), + q(0), + ], + q(kat) => [ + q(0149), + q(0), + ], + q(mkd) => [ + q(0262), + q(0), + ], + q(mri) => [ + q(0270), + q(0), + ], + q(msa) => [ + q(0274), + q(0), + ], + q(mya) => [ + q(0066), + q(0), + ], + q(nld) => [ + q(0116), + q(0), + ], + q(ron) => [ + q(0360), + q(0), + ], + q(slk) => [ + q(0385), + q(0), + ], + q(sqi) => [ + q(0013), + q(0), + ], + q(zho) => [ + q(0079), + q(0), + ], + }, +}; + +$Locale::Codes::Data{'language'}{'id2code'} = { + q(alpha2) => { + q(0001) => q(aa), + q(0002) => q(ab), + q(0009) => q(af), + q(0011) => q(ak), + q(0013) => q(sq), + q(0017) => q(am), + q(0021) => q(ar), + q(0023) => q(an), + q(0024) => q(hy), + q(0029) => q(as), + q(0033) => q(av), + q(0034) => q(ae), + q(0036) => q(ay), + q(0037) => q(az), + q(0040) => q(ba), + q(0042) => q(bm), + q(0044) => q(eu), + q(0048) => q(be), + q(0050) => q(bn), + q(0053) => q(bh), + q(0056) => q(bi), + q(0059) => q(bs), + q(0061) => q(br), + q(0065) => q(bg), + q(0066) => q(my), + q(0071) => q(ca), + q(0075) => q(ch), + q(0077) => q(ce), + q(0079) => q(zh), + q(0086) => q(cu), + q(0087) => q(cv), + q(0091) => q(kw), + q(0092) => q(co), + q(0096) => q(cr), + q(0101) => q(cs), + q(0103) => q(da), + q(0110) => q(dv), + q(0116) => q(nl), + q(0118) => q(dz), + q(0123) => q(en), + q(0125) => q(eo), + q(0126) => q(et), + q(0127) => q(ee), + q(0130) => q(fo), + q(0132) => q(fj), + q(0134) => q(fi), + q(0137) => q(fr), + q(0142) => q(fy), + q(0143) => q(ff), + q(0149) => q(ka), + q(0150) => q(de), + q(0153) => q(gd), + q(0154) => q(ga), + q(0155) => q(gl), + q(0156) => q(gv), + q(0164) => q(el), + q(0165) => q(gn), + q(0167) => q(gu), + q(0170) => q(ht), + q(0171) => q(ha), + q(0173) => q(he), + q(0174) => q(hz), + q(0177) => q(hi), + q(0180) => q(ho), + q(0181) => q(hr), + q(0183) => q(hu), + q(0186) => q(ig), + q(0187) => q(is), + q(0188) => q(io), + q(0189) => q(ii), + q(0191) => q(iu), + q(0192) => q(ie), + q(0194) => q(ia), + q(0196) => q(id), + q(0199) => q(ik), + q(0202) => q(it), + q(0203) => q(jv), + q(0205) => q(ja), + q(0211) => q(kl), + q(0213) => q(kn), + q(0215) => q(ks), + q(0216) => q(kr), + q(0218) => q(kk), + q(0222) => q(km), + q(0224) => q(ki), + q(0225) => q(rw), + q(0226) => q(ky), + q(0229) => q(kv), + q(0230) => q(kg), + q(0231) => q(ko), + q(0238) => q(kj), + q(0240) => q(ku), + q(0245) => q(lo), + q(0246) => q(la), + q(0247) => q(lv), + q(0249) => q(li), + q(0250) => q(ln), + q(0251) => q(lt), + q(0254) => q(lb), + q(0256) => q(lu), + q(0257) => q(lg), + q(0262) => q(mk), + q(0265) => q(mh), + q(0268) => q(ml), + q(0270) => q(mi), + q(0272) => q(mr), + q(0274) => q(ms), + q(0283) => q(mg), + q(0284) => q(mt), + q(0289) => q(mn), + q(0301) => q(na), + q(0302) => q(nv), + q(0303) => q(nr), + q(0304) => q(nd), + q(0305) => q(ng), + q(0307) => q(ne), + q(0312) => q(nn), + q(0313) => q(nb), + q(0316) => q(no), + q(0321) => q(ny), + q(0326) => q(oc), + q(0327) => q(oj), + q(0328) => q(or), + q(0329) => q(om), + q(0331) => q(os), + q(0338) => q(pa), + q(0342) => q(fa), + q(0345) => q(pi), + q(0346) => q(pl), + q(0348) => q(pt), + q(0351) => q(ps), + q(0353) => q(qu), + q(0358) => q(rm), + q(0360) => q(ro), + q(0361) => q(rn), + q(0363) => q(ru), + q(0365) => q(sg), + q(0370) => q(sa), + q(0381) => q(si), + q(0385) => q(sk), + q(0386) => q(sl), + q(0388) => q(se), + q(0392) => q(sm), + q(0394) => q(sn), + q(0395) => q(sd), + q(0398) => q(so), + q(0400) => q(st), + q(0401) => q(es), + q(0402) => q(sc), + q(0404) => q(sr), + q(0407) => q(ss), + q(0409) => q(su), + q(0412) => q(sw), + q(0413) => q(sv), + q(0416) => q(ty), + q(0418) => q(ta), + q(0419) => q(tt), + q(0420) => q(te), + q(0424) => q(tg), + q(0425) => q(tl), + q(0426) => q(th), + q(0427) => q(bo), + q(0429) => q(ti), + q(0436) => q(to), + q(0439) => q(tn), + q(0440) => q(ts), + q(0441) => q(tk), + q(0444) => q(tr), + q(0447) => q(tw), + q(0451) => q(ug), + q(0452) => q(uk), + q(0455) => q(ur), + q(0456) => q(uz), + q(0458) => q(ve), + q(0459) => q(vi), + q(0460) => q(vo), + q(0466) => q(cy), + q(0468) => q(wa), + q(0469) => q(wo), + q(0471) => q(xh), + q(0474) => q(yi), + q(0475) => q(yo), + q(0480) => q(za), + q(0482) => q(zu), + }, + q(alpha3) => { + q(0001) => q(aar), + q(0002) => q(abk), + q(0003) => q(ace), + q(0004) => q(ach), + q(0005) => q(ada), + q(0006) => q(ady), + q(0007) => q(afa), + q(0008) => q(afh), + q(0009) => q(afr), + q(0010) => q(ain), + q(0011) => q(aka), + q(0012) => q(akk), + q(0013) => q(alb), + q(0014) => q(ale), + q(0015) => q(alg), + q(0016) => q(alt), + q(0017) => q(amh), + q(0018) => q(ang), + q(0019) => q(anp), + q(0020) => q(apa), + q(0021) => q(ara), + q(0022) => q(arc), + q(0023) => q(arg), + q(0024) => q(arm), + q(0025) => q(arn), + q(0026) => q(arp), + q(0027) => q(art), + q(0028) => q(arw), + q(0029) => q(asm), + q(0030) => q(ast), + q(0031) => q(ath), + q(0032) => q(aus), + q(0033) => q(ava), + q(0034) => q(ave), + q(0035) => q(awa), + q(0036) => q(aym), + q(0037) => q(aze), + q(0038) => q(bad), + q(0039) => q(bai), + q(0040) => q(bak), + q(0041) => q(bal), + q(0042) => q(bam), + q(0043) => q(ban), + q(0044) => q(baq), + q(0045) => q(bas), + q(0046) => q(bat), + q(0047) => q(bej), + q(0048) => q(bel), + q(0049) => q(bem), + q(0050) => q(ben), + q(0051) => q(ber), + q(0052) => q(bho), + q(0053) => q(bih), + q(0054) => q(bik), + q(0055) => q(bin), + q(0056) => q(bis), + q(0057) => q(bla), + q(0058) => q(bnt), + q(0059) => q(bos), + q(0060) => q(bra), + q(0061) => q(bre), + q(0062) => q(btk), + q(0063) => q(bua), + q(0064) => q(bug), + q(0065) => q(bul), + q(0066) => q(bur), + q(0067) => q(byn), + q(0068) => q(cad), + q(0069) => q(cai), + q(0070) => q(car), + q(0071) => q(cat), + q(0072) => q(cau), + q(0073) => q(ceb), + q(0074) => q(cel), + q(0075) => q(cha), + q(0076) => q(chb), + q(0077) => q(che), + q(0078) => q(chg), + q(0079) => q(chi), + q(0080) => q(chk), + q(0081) => q(chm), + q(0082) => q(chn), + q(0083) => q(cho), + q(0084) => q(chp), + q(0085) => q(chr), + q(0086) => q(chu), + q(0087) => q(chv), + q(0088) => q(chy), + q(0089) => q(cmc), + q(0090) => q(cop), + q(0091) => q(cor), + q(0092) => q(cos), + q(0093) => q(cpe), + q(0094) => q(cpf), + q(0095) => q(cpp), + q(0096) => q(cre), + q(0097) => q(crh), + q(0098) => q(crp), + q(0099) => q(csb), + q(0100) => q(cus), + q(0101) => q(cze), + q(0102) => q(dak), + q(0103) => q(dan), + q(0104) => q(dar), + q(0105) => q(day), + q(0106) => q(del), + q(0107) => q(den), + q(0108) => q(dgr), + q(0109) => q(din), + q(0110) => q(div), + q(0111) => q(doi), + q(0112) => q(dra), + q(0113) => q(dsb), + q(0114) => q(dua), + q(0115) => q(dum), + q(0116) => q(dut), + q(0117) => q(dyu), + q(0118) => q(dzo), + q(0119) => q(efi), + q(0120) => q(egy), + q(0121) => q(eka), + q(0122) => q(elx), + q(0123) => q(eng), + q(0124) => q(enm), + q(0125) => q(epo), + q(0126) => q(est), + q(0127) => q(ewe), + q(0128) => q(ewo), + q(0129) => q(fan), + q(0130) => q(fao), + q(0131) => q(fat), + q(0132) => q(fij), + q(0133) => q(fil), + q(0134) => q(fin), + q(0135) => q(fiu), + q(0136) => q(fon), + q(0137) => q(fre), + q(0138) => q(frm), + q(0139) => q(fro), + q(0140) => q(frr), + q(0141) => q(frs), + q(0142) => q(fry), + q(0143) => q(ful), + q(0144) => q(fur), + q(0145) => q(gaa), + q(0146) => q(gay), + q(0147) => q(gba), + q(0148) => q(gem), + q(0149) => q(geo), + q(0150) => q(ger), + q(0151) => q(gez), + q(0152) => q(gil), + q(0153) => q(gla), + q(0154) => q(gle), + q(0155) => q(glg), + q(0156) => q(glv), + q(0157) => q(gmh), + q(0158) => q(goh), + q(0159) => q(gon), + q(0160) => q(gor), + q(0161) => q(got), + q(0162) => q(grb), + q(0163) => q(grc), + q(0164) => q(gre), + q(0165) => q(grn), + q(0166) => q(gsw), + q(0167) => q(guj), + q(0168) => q(gwi), + q(0169) => q(hai), + q(0170) => q(hat), + q(0171) => q(hau), + q(0172) => q(haw), + q(0173) => q(heb), + q(0174) => q(her), + q(0175) => q(hil), + q(0176) => q(him), + q(0177) => q(hin), + q(0178) => q(hit), + q(0179) => q(hmn), + q(0180) => q(hmo), + q(0181) => q(hrv), + q(0182) => q(hsb), + q(0183) => q(hun), + q(0184) => q(hup), + q(0185) => q(iba), + q(0186) => q(ibo), + q(0187) => q(ice), + q(0188) => q(ido), + q(0189) => q(iii), + q(0190) => q(ijo), + q(0191) => q(iku), + q(0192) => q(ile), + q(0193) => q(ilo), + q(0194) => q(ina), + q(0195) => q(inc), + q(0196) => q(ind), + q(0197) => q(ine), + q(0198) => q(inh), + q(0199) => q(ipk), + q(0200) => q(ira), + q(0201) => q(iro), + q(0202) => q(ita), + q(0203) => q(jav), + q(0204) => q(jbo), + q(0205) => q(jpn), + q(0206) => q(jpr), + q(0207) => q(jrb), + q(0208) => q(kaa), + q(0209) => q(kab), + q(0210) => q(kac), + q(0211) => q(kal), + q(0212) => q(kam), + q(0213) => q(kan), + q(0214) => q(kar), + q(0215) => q(kas), + q(0216) => q(kau), + q(0217) => q(kaw), + q(0218) => q(kaz), + q(0219) => q(kbd), + q(0220) => q(kha), + q(0221) => q(khi), + q(0222) => q(khm), + q(0223) => q(kho), + q(0224) => q(kik), + q(0225) => q(kin), + q(0226) => q(kir), + q(0227) => q(kmb), + q(0228) => q(kok), + q(0229) => q(kom), + q(0230) => q(kon), + q(0231) => q(kor), + q(0232) => q(kos), + q(0233) => q(kpe), + q(0234) => q(krc), + q(0235) => q(krl), + q(0236) => q(kro), + q(0237) => q(kru), + q(0238) => q(kua), + q(0239) => q(kum), + q(0240) => q(kur), + q(0241) => q(kut), + q(0242) => q(lad), + q(0243) => q(lah), + q(0244) => q(lam), + q(0245) => q(lao), + q(0246) => q(lat), + q(0247) => q(lav), + q(0248) => q(lez), + q(0249) => q(lim), + q(0250) => q(lin), + q(0251) => q(lit), + q(0252) => q(lol), + q(0253) => q(loz), + q(0254) => q(ltz), + q(0255) => q(lua), + q(0256) => q(lub), + q(0257) => q(lug), + q(0258) => q(lui), + q(0259) => q(lun), + q(0260) => q(luo), + q(0261) => q(lus), + q(0262) => q(mac), + q(0263) => q(mad), + q(0264) => q(mag), + q(0265) => q(mah), + q(0266) => q(mai), + q(0267) => q(mak), + q(0268) => q(mal), + q(0269) => q(man), + q(0270) => q(mao), + q(0271) => q(map), + q(0272) => q(mar), + q(0273) => q(mas), + q(0274) => q(may), + q(0275) => q(mdf), + q(0276) => q(mdr), + q(0277) => q(men), + q(0278) => q(mga), + q(0279) => q(mic), + q(0280) => q(min), + q(0281) => q(mis), + q(0282) => q(mkh), + q(0283) => q(mlg), + q(0284) => q(mlt), + q(0285) => q(mnc), + q(0286) => q(mni), + q(0287) => q(mno), + q(0288) => q(moh), + q(0289) => q(mon), + q(0290) => q(mos), + q(0291) => q(mul), + q(0292) => q(mun), + q(0293) => q(mus), + q(0294) => q(mwl), + q(0295) => q(mwr), + q(0296) => q(myn), + q(0297) => q(myv), + q(0298) => q(nah), + q(0299) => q(nai), + q(0300) => q(nap), + q(0301) => q(nau), + q(0302) => q(nav), + q(0303) => q(nbl), + q(0304) => q(nde), + q(0305) => q(ndo), + q(0306) => q(nds), + q(0307) => q(nep), + q(0308) => q(new), + q(0309) => q(nia), + q(0310) => q(nic), + q(0311) => q(niu), + q(0312) => q(nno), + q(0313) => q(nob), + q(0314) => q(nog), + q(0315) => q(non), + q(0316) => q(nor), + q(0317) => q(nqo), + q(0318) => q(nso), + q(0319) => q(nub), + q(0320) => q(nwc), + q(0321) => q(nya), + q(0322) => q(nym), + q(0323) => q(nyn), + q(0324) => q(nyo), + q(0325) => q(nzi), + q(0326) => q(oci), + q(0327) => q(oji), + q(0328) => q(ori), + q(0329) => q(orm), + q(0330) => q(osa), + q(0331) => q(oss), + q(0332) => q(ota), + q(0333) => q(oto), + q(0334) => q(paa), + q(0335) => q(pag), + q(0336) => q(pal), + q(0337) => q(pam), + q(0338) => q(pan), + q(0339) => q(pap), + q(0340) => q(pau), + q(0341) => q(peo), + q(0342) => q(per), + q(0343) => q(phi), + q(0344) => q(phn), + q(0345) => q(pli), + q(0346) => q(pol), + q(0347) => q(pon), + q(0348) => q(por), + q(0349) => q(pra), + q(0350) => q(pro), + q(0351) => q(pus), + q(0352) => q(qtz), + q(0353) => q(que), + q(0354) => q(raj), + q(0355) => q(rap), + q(0356) => q(rar), + q(0357) => q(roa), + q(0358) => q(roh), + q(0359) => q(rom), + q(0360) => q(rum), + q(0361) => q(run), + q(0362) => q(rup), + q(0363) => q(rus), + q(0364) => q(sad), + q(0365) => q(sag), + q(0366) => q(sah), + q(0367) => q(sai), + q(0368) => q(sal), + q(0369) => q(sam), + q(0370) => q(san), + q(0371) => q(sas), + q(0372) => q(sat), + q(0373) => q(scn), + q(0374) => q(sco), + q(0375) => q(sel), + q(0376) => q(sem), + q(0377) => q(sga), + q(0378) => q(sgn), + q(0379) => q(shn), + q(0380) => q(sid), + q(0381) => q(sin), + q(0382) => q(sio), + q(0383) => q(sit), + q(0384) => q(sla), + q(0385) => q(slo), + q(0386) => q(slv), + q(0387) => q(sma), + q(0388) => q(sme), + q(0389) => q(smi), + q(0390) => q(smj), + q(0391) => q(smn), + q(0392) => q(smo), + q(0393) => q(sms), + q(0394) => q(sna), + q(0395) => q(snd), + q(0396) => q(snk), + q(0397) => q(sog), + q(0398) => q(som), + q(0399) => q(son), + q(0400) => q(sot), + q(0401) => q(spa), + q(0402) => q(srd), + q(0403) => q(srn), + q(0404) => q(srp), + q(0405) => q(srr), + q(0406) => q(ssa), + q(0407) => q(ssw), + q(0408) => q(suk), + q(0409) => q(sun), + q(0410) => q(sus), + q(0411) => q(sux), + q(0412) => q(swa), + q(0413) => q(swe), + q(0414) => q(syc), + q(0415) => q(syr), + q(0416) => q(tah), + q(0417) => q(tai), + q(0418) => q(tam), + q(0419) => q(tat), + q(0420) => q(tel), + q(0421) => q(tem), + q(0422) => q(ter), + q(0423) => q(tet), + q(0424) => q(tgk), + q(0425) => q(tgl), + q(0426) => q(tha), + q(0427) => q(tib), + q(0428) => q(tig), + q(0429) => q(tir), + q(0430) => q(tiv), + q(0431) => q(tkl), + q(0432) => q(tlh), + q(0433) => q(tli), + q(0434) => q(tmh), + q(0435) => q(tog), + q(0436) => q(ton), + q(0437) => q(tpi), + q(0438) => q(tsi), + q(0439) => q(tsn), + q(0440) => q(tso), + q(0441) => q(tuk), + q(0442) => q(tum), + q(0443) => q(tup), + q(0444) => q(tur), + q(0445) => q(tut), + q(0446) => q(tvl), + q(0447) => q(twi), + q(0448) => q(tyv), + q(0449) => q(udm), + q(0450) => q(uga), + q(0451) => q(uig), + q(0452) => q(ukr), + q(0453) => q(umb), + q(0454) => q(und), + q(0455) => q(urd), + q(0456) => q(uzb), + q(0457) => q(vai), + q(0458) => q(ven), + q(0459) => q(vie), + q(0460) => q(vol), + q(0461) => q(vot), + q(0462) => q(wak), + q(0463) => q(wal), + q(0464) => q(war), + q(0465) => q(was), + q(0466) => q(wel), + q(0467) => q(wen), + q(0468) => q(wln), + q(0469) => q(wol), + q(0470) => q(xal), + q(0471) => q(xho), + q(0472) => q(yao), + q(0473) => q(yap), + q(0474) => q(yid), + q(0475) => q(yor), + q(0476) => q(ypk), + q(0477) => q(zap), + q(0478) => q(zbl), + q(0479) => q(zen), + q(0480) => q(zha), + q(0481) => q(znd), + q(0482) => q(zul), + q(0483) => q(zun), + q(0484) => q(zxx), + q(0485) => q(zza), + }, + q(term) => { + q(0013) => q(sqi), + q(0024) => q(hye), + q(0044) => q(eus), + q(0066) => q(mya), + q(0079) => q(zho), + q(0101) => q(ces), + q(0116) => q(nld), + q(0137) => q(fra), + q(0149) => q(kat), + q(0150) => q(deu), + q(0164) => q(ell), + q(0187) => q(isl), + q(0262) => q(mkd), + q(0270) => q(mri), + q(0274) => q(msa), + q(0342) => q(fas), + q(0360) => q(ron), + q(0385) => q(slk), + q(0427) => q(bod), + q(0466) => q(cym), + }, +}; + +1; diff --git a/cpan/Locale-Codes/lib/Locale/Codes/Script.pm b/cpan/Locale-Codes/lib/Locale/Codes/Script.pm new file mode 100644 index 0000000..6fb4256 --- /dev/null +++ b/cpan/Locale-Codes/lib/Locale/Codes/Script.pm @@ -0,0 +1,2495 @@ +package Locale::Codes::Script; + +# This file was automatically generated. Any changes to this file will +# be lost the next time 'get_codes' is run. +# Generated on: Tue Apr 6 08:17:27 EDT 2010 + +=pod + +=head1 NAME + +Locale::Codes::Script - script codes for the Locale::Script module + +=head1 SYNOPSIS + +This module contains data used by the Locale::Script module. It is +not intended to be used directly, and contains no calleable routines. + +=head1 AUTHOR + +See Locale::Codes for full author history. + +Currently maintained by Sullivan Beck (sbeck@cpan.org). + +=head1 COPYRIGHT + + Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 2001-2010 Neil Bowers + Copyright (c) 2010-2010 Sullivan Beck + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=cut + +use strict; +use warnings; +require 5.002; + +use vars qw($VERSION); +$VERSION='3.12'; + +$Locale::Codes::Data{'script'}{'id'} = '0144'; + +$Locale::Codes::Data{'script'}{'id2names'} = { + q(0001) => [ + q(Arabic), + ], + q(0002) => [ + q(Imperial Aramaic), + ], + q(0003) => [ + q(Armenian), + ], + q(0004) => [ + q(Avestan), + ], + q(0005) => [ + q(Balinese), + ], + q(0006) => [ + q(Bamum), + ], + q(0007) => [ + q(Bassa Vah), + ], + q(0008) => [ + q(Batak), + ], + q(0009) => [ + q(Bengali), + ], + q(0010) => [ + q(Blissymbols), + ], + q(0011) => [ + q(Bopomofo), + ], + q(0012) => [ + q(Brahmi), + ], + q(0013) => [ + q(Braille), + ], + q(0014) => [ + q(Buginese), + ], + q(0015) => [ + q(Buhid), + ], + q(0016) => [ + q(Chakma), + ], + q(0017) => [ + q(Unified Canadian Aboriginal Syllabics), + ], + q(0018) => [ + q(Carian), + ], + q(0019) => [ + q(Cham), + ], + q(0020) => [ + q(Cherokee), + ], + q(0021) => [ + q(Cirth), + ], + q(0022) => [ + q(Coptic), + ], + q(0023) => [ + q(Cypriot), + ], + q(0024) => [ + q(Cyrillic), + ], + q(0025) => [ + q(Cyrillic (Old Church Slavonic variant)), + ], + q(0026) => [ + q(Devanagari (Nagari)), + ], + q(0027) => [ + q(Deseret (Mormon)), + ], + q(0028) => [ + q(Egyptian demotic), + ], + q(0029) => [ + q(Egyptian hieratic), + ], + q(0030) => [ + q(Egyptian hieroglyphs), + ], + q(0031) => [ + q(Ethiopic (Geez)), + ], + q(0032) => [ + q(Georgian (Mkhedruli)), + ], + q(0033) => [ + q(Khutsuri (Asomtavruli and Nuskhuri)), + ], + q(0034) => [ + q(Glagolitic), + ], + q(0035) => [ + q(Gothic), + ], + q(0036) => [ + q(Grantha), + ], + q(0037) => [ + q(Greek), + ], + q(0038) => [ + q(Gujarati), + ], + q(0039) => [ + q(Gurmukhi), + ], + q(0040) => [ + q(Hangul (Hangul, Hangeul)), + ], + q(0041) => [ + q(Han (Hanzi, Kanji, Hanja)), + ], + q(0042) => [ + q(Hanunoo (Hanunoo)), + ], + q(0043) => [ + q(Han (Simplified variant)), + ], + q(0044) => [ + q(Han (Traditional variant)), + ], + q(0045) => [ + q(Hebrew), + ], + q(0046) => [ + q(Hiragana), + ], + q(0047) => [ + q(Pahawh Hmong), + ], + q(0048) => [ + q((alias for Hiragana + Katakana)), + ], + q(0049) => [ + q(Old Hungarian), + ], + q(0050) => [ + q(Indus (Harappan)), + ], + q(0051) => [ + q(Old Italic (Etruscan, Oscan, etc.)), + ], + q(0052) => [ + q(Javanese), + ], + q(0053) => [ + q(Japanese (alias for Han + Hiragana + Katakana)), + ], + q(0054) => [ + q(Kayah Li), + ], + q(0055) => [ + q(Katakana), + ], + q(0056) => [ + q(Kharoshthi), + ], + q(0057) => [ + q(Khmer), + ], + q(0058) => [ + q(Kannada), + ], + q(0059) => [ + q(Korean (alias for Hangul + Han)), + ], + q(0060) => [ + q(Kpelle), + ], + q(0061) => [ + q(Kaithi), + ], + q(0062) => [ + q(Tai Tham (Lanna)), + ], + q(0063) => [ + q(Lao), + ], + q(0064) => [ + q(Latin (Fraktur variant)), + ], + q(0065) => [ + q(Latin (Gaelic variant)), + ], + q(0066) => [ + q(Latin), + ], + q(0067) => [ + q(Lepcha (Rong)), + ], + q(0068) => [ + q(Limbu), + ], + q(0069) => [ + q(Linear A), + ], + q(0070) => [ + q(Linear B), + ], + q(0071) => [ + q(Lisu (Fraser)), + ], + q(0072) => [ + q(Loma), + ], + q(0073) => [ + q(Lycian), + ], + q(0074) => [ + q(Lydian), + ], + q(0075) => [ + q(Mandaic, Mandaean), + ], + q(0076) => [ + q(Manichaean), + ], + q(0077) => [ + q(Mayan hieroglyphs), + ], + q(0078) => [ + q(Mende), + ], + q(0079) => [ + q(Meroitic Cursive), + ], + q(0080) => [ + q(Meroitic Hieroglyphs), + ], + q(0081) => [ + q(Malayalam), + ], + q(0082) => [ + q(Moon (Moon code, Moon script, Moon type)), + ], + q(0083) => [ + q(Mongolian), + ], + q(0084) => [ + q(Meitei Mayek (Meithei, Meetei)), + ], + q(0085) => [ + q(Myanmar (Burmese)), + ], + q(0086) => [ + q(Old North Arabian (Ancient North Arabian)), + ], + q(0087) => [ + q(Nabataean), + ], + q(0088) => [ + q(Nakhi Geba ('Na-'Khi Ggo-baw, Naxi Geba)), + ], + q(0089) => [ + q(N'Ko), + ], + q(0090) => [ + q(Ogham), + ], + q(0091) => [ + q(Ol Chiki (Ol Cemet, Ol, Santali)), + ], + q(0092) => [ + q(Old Turkic, Orkhon Runic), + ], + q(0093) => [ + q(Oriya), + ], + q(0094) => [ + q(Osmanya), + ], + q(0095) => [ + q(Palmyrene), + ], + q(0096) => [ + q(Old Permic), + ], + q(0097) => [ + q(Phags-pa), + ], + q(0098) => [ + q(Inscriptional Pahlavi), + ], + q(0099) => [ + q(Psalter Pahlavi), + ], + q(0100) => [ + q(Book Pahlavi), + ], + q(0101) => [ + q(Phoenician), + ], + q(0102) => [ + q(Miao (Pollard)), + ], + q(0103) => [ + q(Inscriptional Parthian), + ], + q(0104) => [ + q(Reserved for private use (start)), + ], + q(0105) => [ + q(Reserved for private use (end)), + ], + q(0106) => [ + q(Rejang (Redjang, Kaganga)), + ], + q(0107) => [ + q(Rongorongo), + ], + q(0108) => [ + q(Runic), + ], + q(0109) => [ + q(Samaritan), + ], + q(0110) => [ + q(Sarati), + ], + q(0111) => [ + q(Old South Arabian), + ], + q(0112) => [ + q(Saurashtra), + ], + q(0113) => [ + q(SignWriting), + ], + q(0114) => [ + q(Shavian (Shaw)), + ], + q(0115) => [ + q(Sinhala), + ], + q(0116) => [ + q(Sundanese), + ], + q(0117) => [ + q(Syloti Nagri), + ], + q(0118) => [ + q(Syriac), + ], + q(0119) => [ + q(Syriac (Estrangelo variant)), + ], + q(0120) => [ + q(Syriac (Western variant)), + ], + q(0121) => [ + q(Syriac (Eastern variant)), + ], + q(0122) => [ + q(Tagbanwa), + ], + q(0123) => [ + q(Tai Le), + ], + q(0124) => [ + q(New Tai Lue), + ], + q(0125) => [ + q(Tamil), + ], + q(0126) => [ + q(Tai Viet), + ], + q(0127) => [ + q(Telugu), + ], + q(0128) => [ + q(Tengwar), + ], + q(0129) => [ + q(Tifinagh (Berber)), + ], + q(0130) => [ + q(Tagalog (Baybayin, Alibata)), + ], + q(0131) => [ + q(Thaana), + ], + q(0132) => [ + q(Thai), + ], + q(0133) => [ + q(Tibetan), + ], + q(0134) => [ + q(Ugaritic), + ], + q(0135) => [ + q(Vai), + ], + q(0136) => [ + q(Visible Speech), + ], + q(0137) => [ + q(Warang Citi (Varang Kshiti)), + ], + q(0138) => [ + q(Old Persian), + ], + q(0139) => [ + q(Cuneiform, Sumero-Akkadian), + ], + q(0140) => [ + q(Yi), + ], + q(0141) => [ + q(Code for inherited script), + ], + q(0142) => [ + q(Mathematical notation), + ], + q(0143) => [ + q(Symbols), + ], +}; + +$Locale::Codes::Data{'script'}{'alias2id'} = { + q((alias for hiragana + katakana)) => [ + q(0048), + q(0), + ], + q(arabic) => [ + q(0001), + q(0), + ], + q(armenian) => [ + q(0003), + q(0), + ], + q(avestan) => [ + q(0004), + q(0), + ], + q(balinese) => [ + q(0005), + q(0), + ], + q(bamum) => [ + q(0006), + q(0), + ], + q(bassa vah) => [ + q(0007), + q(0), + ], + q(batak) => [ + q(0008), + q(0), + ], + q(bengali) => [ + q(0009), + q(0), + ], + q(blissymbols) => [ + q(0010), + q(0), + ], + q(book pahlavi) => [ + q(0100), + q(0), + ], + q(bopomofo) => [ + q(0011), + q(0), + ], + q(brahmi) => [ + q(0012), + q(0), + ], + q(braille) => [ + q(0013), + q(0), + ], + q(buginese) => [ + q(0014), + q(0), + ], + q(buhid) => [ + q(0015), + q(0), + ], + q(carian) => [ + q(0018), + q(0), + ], + q(chakma) => [ + q(0016), + q(0), + ], + q(cham) => [ + q(0019), + q(0), + ], + q(cherokee) => [ + q(0020), + q(0), + ], + q(cirth) => [ + q(0021), + q(0), + ], + q(code for inherited script) => [ + q(0141), + q(0), + ], + q(coptic) => [ + q(0022), + q(0), + ], + q(cuneiform, sumero-akkadian) => [ + q(0139), + q(0), + ], + q(cypriot) => [ + q(0023), + q(0), + ], + q(cyrillic) => [ + q(0024), + q(0), + ], + q(cyrillic (old church slavonic variant)) => [ + q(0025), + q(0), + ], + q(deseret (mormon)) => [ + q(0027), + q(0), + ], + q(devanagari (nagari)) => [ + q(0026), + q(0), + ], + q(egyptian demotic) => [ + q(0028), + q(0), + ], + q(egyptian hieratic) => [ + q(0029), + q(0), + ], + q(egyptian hieroglyphs) => [ + q(0030), + q(0), + ], + q(ethiopic (geez)) => [ + q(0031), + q(0), + ], + q(georgian (mkhedruli)) => [ + q(0032), + q(0), + ], + q(glagolitic) => [ + q(0034), + q(0), + ], + q(gothic) => [ + q(0035), + q(0), + ], + q(grantha) => [ + q(0036), + q(0), + ], + q(greek) => [ + q(0037), + q(0), + ], + q(gujarati) => [ + q(0038), + q(0), + ], + q(gurmukhi) => [ + q(0039), + q(0), + ], + q(han (hanzi, kanji, hanja)) => [ + q(0041), + q(0), + ], + q(han (simplified variant)) => [ + q(0043), + q(0), + ], + q(han (traditional variant)) => [ + q(0044), + q(0), + ], + q(hangul (hangul, hangeul)) => [ + q(0040), + q(0), + ], + q(hanunoo (hanunoo)) => [ + q(0042), + q(0), + ], + q(hebrew) => [ + q(0045), + q(0), + ], + q(hiragana) => [ + q(0046), + q(0), + ], + q(imperial aramaic) => [ + q(0002), + q(0), + ], + q(indus (harappan)) => [ + q(0050), + q(0), + ], + q(inscriptional pahlavi) => [ + q(0098), + q(0), + ], + q(inscriptional parthian) => [ + q(0103), + q(0), + ], + q(japanese (alias for han + hiragana + katakana)) => [ + q(0053), + q(0), + ], + q(javanese) => [ + q(0052), + q(0), + ], + q(kaithi) => [ + q(0061), + q(0), + ], + q(kannada) => [ + q(0058), + q(0), + ], + q(katakana) => [ + q(0055), + q(0), + ], + q(kayah li) => [ + q(0054), + q(0), + ], + q(kharoshthi) => [ + q(0056), + q(0), + ], + q(khmer) => [ + q(0057), + q(0), + ], + q(khutsuri (asomtavruli and nuskhuri)) => [ + q(0033), + q(0), + ], + q(korean (alias for hangul + han)) => [ + q(0059), + q(0), + ], + q(kpelle) => [ + q(0060), + q(0), + ], + q(lao) => [ + q(0063), + q(0), + ], + q(latin) => [ + q(0066), + q(0), + ], + q(latin (fraktur variant)) => [ + q(0064), + q(0), + ], + q(latin (gaelic variant)) => [ + q(0065), + q(0), + ], + q(lepcha (rong)) => [ + q(0067), + q(0), + ], + q(limbu) => [ + q(0068), + q(0), + ], + q(linear a) => [ + q(0069), + q(0), + ], + q(linear b) => [ + q(0070), + q(0), + ], + q(lisu (fraser)) => [ + q(0071), + q(0), + ], + q(loma) => [ + q(0072), + q(0), + ], + q(lycian) => [ + q(0073), + q(0), + ], + q(lydian) => [ + q(0074), + q(0), + ], + q(malayalam) => [ + q(0081), + q(0), + ], + q(mandaic, mandaean) => [ + q(0075), + q(0), + ], + q(manichaean) => [ + q(0076), + q(0), + ], + q(mathematical notation) => [ + q(0142), + q(0), + ], + q(mayan hieroglyphs) => [ + q(0077), + q(0), + ], + q(meitei mayek (meithei, meetei)) => [ + q(0084), + q(0), + ], + q(mende) => [ + q(0078), + q(0), + ], + q(meroitic cursive) => [ + q(0079), + q(0), + ], + q(meroitic hieroglyphs) => [ + q(0080), + q(0), + ], + q(miao (pollard)) => [ + q(0102), + q(0), + ], + q(mongolian) => [ + q(0083), + q(0), + ], + q(moon (moon code, moon script, moon type)) => [ + q(0082), + q(0), + ], + q(myanmar (burmese)) => [ + q(0085), + q(0), + ], + q(n'ko) => [ + q(0089), + q(0), + ], + q(nabataean) => [ + q(0087), + q(0), + ], + q(nakhi geba ('na-'khi ggo-baw, naxi geba)) => [ + q(0088), + q(0), + ], + q(new tai lue) => [ + q(0124), + q(0), + ], + q(ogham) => [ + q(0090), + q(0), + ], + q(ol chiki (ol cemet, ol, santali)) => [ + q(0091), + q(0), + ], + q(old hungarian) => [ + q(0049), + q(0), + ], + q(old italic (etruscan, oscan, etc.)) => [ + q(0051), + q(0), + ], + q(old north arabian (ancient north arabian)) => [ + q(0086), + q(0), + ], + q(old permic) => [ + q(0096), + q(0), + ], + q(old persian) => [ + q(0138), + q(0), + ], + q(old south arabian) => [ + q(0111), + q(0), + ], + q(old turkic, orkhon runic) => [ + q(0092), + q(0), + ], + q(oriya) => [ + q(0093), + q(0), + ], + q(osmanya) => [ + q(0094), + q(0), + ], + q(pahawh hmong) => [ + q(0047), + q(0), + ], + q(palmyrene) => [ + q(0095), + q(0), + ], + q(phags-pa) => [ + q(0097), + q(0), + ], + q(phoenician) => [ + q(0101), + q(0), + ], + q(psalter pahlavi) => [ + q(0099), + q(0), + ], + q(rejang (redjang, kaganga)) => [ + q(0106), + q(0), + ], + q(reserved for private use (end)) => [ + q(0105), + q(0), + ], + q(reserved for private use (start)) => [ + q(0104), + q(0), + ], + q(rongorongo) => [ + q(0107), + q(0), + ], + q(runic) => [ + q(0108), + q(0), + ], + q(samaritan) => [ + q(0109), + q(0), + ], + q(sarati) => [ + q(0110), + q(0), + ], + q(saurashtra) => [ + q(0112), + q(0), + ], + q(shavian (shaw)) => [ + q(0114), + q(0), + ], + q(signwriting) => [ + q(0113), + q(0), + ], + q(sinhala) => [ + q(0115), + q(0), + ], + q(sundanese) => [ + q(0116), + q(0), + ], + q(syloti nagri) => [ + q(0117), + q(0), + ], + q(symbols) => [ + q(0143), + q(0), + ], + q(syriac) => [ + q(0118), + q(0), + ], + q(syriac (eastern variant)) => [ + q(0121), + q(0), + ], + q(syriac (estrangelo variant)) => [ + q(0119), + q(0), + ], + q(syriac (western variant)) => [ + q(0120), + q(0), + ], + q(tagalog (baybayin, alibata)) => [ + q(0130), + q(0), + ], + q(tagbanwa) => [ + q(0122), + q(0), + ], + q(tai le) => [ + q(0123), + q(0), + ], + q(tai tham (lanna)) => [ + q(0062), + q(0), + ], + q(tai viet) => [ + q(0126), + q(0), + ], + q(tamil) => [ + q(0125), + q(0), + ], + q(telugu) => [ + q(0127), + q(0), + ], + q(tengwar) => [ + q(0128), + q(0), + ], + q(thaana) => [ + q(0131), + q(0), + ], + q(thai) => [ + q(0132), + q(0), + ], + q(tibetan) => [ + q(0133), + q(0), + ], + q(tifinagh (berber)) => [ + q(0129), + q(0), + ], + q(ugaritic) => [ + q(0134), + q(0), + ], + q(unified canadian aboriginal syllabics) => [ + q(0017), + q(0), + ], + q(vai) => [ + q(0135), + q(0), + ], + q(visible speech) => [ + q(0136), + q(0), + ], + q(warang citi (varang kshiti)) => [ + q(0137), + q(0), + ], + q(yi) => [ + q(0140), + q(0), + ], +}; + +$Locale::Codes::Data{'script'}{'code2id'} = { + q(alpha) => { + q(Arab) => [ + q(0001), + q(0), + ], + q(Armi) => [ + q(0002), + q(0), + ], + q(Armn) => [ + q(0003), + q(0), + ], + q(Avst) => [ + q(0004), + q(0), + ], + q(Bali) => [ + q(0005), + q(0), + ], + q(Bamu) => [ + q(0006), + q(0), + ], + q(Bass) => [ + q(0007), + q(0), + ], + q(Batk) => [ + q(0008), + q(0), + ], + q(Beng) => [ + q(0009), + q(0), + ], + q(Blis) => [ + q(0010), + q(0), + ], + q(Bopo) => [ + q(0011), + q(0), + ], + q(Brah) => [ + q(0012), + q(0), + ], + q(Brai) => [ + q(0013), + q(0), + ], + q(Bugi) => [ + q(0014), + q(0), + ], + q(Buhd) => [ + q(0015), + q(0), + ], + q(Cakm) => [ + q(0016), + q(0), + ], + q(Cans) => [ + q(0017), + q(0), + ], + q(Cari) => [ + q(0018), + q(0), + ], + q(Cham) => [ + q(0019), + q(0), + ], + q(Cher) => [ + q(0020), + q(0), + ], + q(Cirt) => [ + q(0021), + q(0), + ], + q(Copt) => [ + q(0022), + q(0), + ], + q(Cprt) => [ + q(0023), + q(0), + ], + q(Cyrl) => [ + q(0024), + q(0), + ], + q(Cyrs) => [ + q(0025), + q(0), + ], + q(Deva) => [ + q(0026), + q(0), + ], + q(Dsrt) => [ + q(0027), + q(0), + ], + q(Egyd) => [ + q(0028), + q(0), + ], + q(Egyh) => [ + q(0029), + q(0), + ], + q(Egyp) => [ + q(0030), + q(0), + ], + q(Ethi) => [ + q(0031), + q(0), + ], + q(Geok) => [ + q(0033), + q(0), + ], + q(Geor) => [ + q(0032), + q(0), + ], + q(Glag) => [ + q(0034), + q(0), + ], + q(Goth) => [ + q(0035), + q(0), + ], + q(Gran) => [ + q(0036), + q(0), + ], + q(Grek) => [ + q(0037), + q(0), + ], + q(Gujr) => [ + q(0038), + q(0), + ], + q(Guru) => [ + q(0039), + q(0), + ], + q(Hang) => [ + q(0040), + q(0), + ], + q(Hani) => [ + q(0041), + q(0), + ], + q(Hano) => [ + q(0042), + q(0), + ], + q(Hans) => [ + q(0043), + q(0), + ], + q(Hant) => [ + q(0044), + q(0), + ], + q(Hebr) => [ + q(0045), + q(0), + ], + q(Hira) => [ + q(0046), + q(0), + ], + q(Hmng) => [ + q(0047), + q(0), + ], + q(Hrkt) => [ + q(0048), + q(0), + ], + q(Hung) => [ + q(0049), + q(0), + ], + q(Inds) => [ + q(0050), + q(0), + ], + q(Ital) => [ + q(0051), + q(0), + ], + q(Java) => [ + q(0052), + q(0), + ], + q(Jpan) => [ + q(0053), + q(0), + ], + q(Kali) => [ + q(0054), + q(0), + ], + q(Kana) => [ + q(0055), + q(0), + ], + q(Khar) => [ + q(0056), + q(0), + ], + q(Khmr) => [ + q(0057), + q(0), + ], + q(Knda) => [ + q(0058), + q(0), + ], + q(Kore) => [ + q(0059), + q(0), + ], + q(Kpel) => [ + q(0060), + q(0), + ], + q(Kthi) => [ + q(0061), + q(0), + ], + q(Lana) => [ + q(0062), + q(0), + ], + q(Laoo) => [ + q(0063), + q(0), + ], + q(Latf) => [ + q(0064), + q(0), + ], + q(Latg) => [ + q(0065), + q(0), + ], + q(Latn) => [ + q(0066), + q(0), + ], + q(Lepc) => [ + q(0067), + q(0), + ], + q(Limb) => [ + q(0068), + q(0), + ], + q(Lina) => [ + q(0069), + q(0), + ], + q(Linb) => [ + q(0070), + q(0), + ], + q(Lisu) => [ + q(0071), + q(0), + ], + q(Loma) => [ + q(0072), + q(0), + ], + q(Lyci) => [ + q(0073), + q(0), + ], + q(Lydi) => [ + q(0074), + q(0), + ], + q(Mand) => [ + q(0075), + q(0), + ], + q(Mani) => [ + q(0076), + q(0), + ], + q(Maya) => [ + q(0077), + q(0), + ], + q(Mend) => [ + q(0078), + q(0), + ], + q(Merc) => [ + q(0079), + q(0), + ], + q(Mero) => [ + q(0080), + q(0), + ], + q(Mlym) => [ + q(0081), + q(0), + ], + q(Mong) => [ + q(0083), + q(0), + ], + q(Moon) => [ + q(0082), + q(0), + ], + q(Mtei) => [ + q(0084), + q(0), + ], + q(Mymr) => [ + q(0085), + q(0), + ], + q(Narb) => [ + q(0086), + q(0), + ], + q(Nbat) => [ + q(0087), + q(0), + ], + q(Nkgb) => [ + q(0088), + q(0), + ], + q(Nkoo) => [ + q(0089), + q(0), + ], + q(Ogam) => [ + q(0090), + q(0), + ], + q(Olck) => [ + q(0091), + q(0), + ], + q(Orkh) => [ + q(0092), + q(0), + ], + q(Orya) => [ + q(0093), + q(0), + ], + q(Osma) => [ + q(0094), + q(0), + ], + q(Palm) => [ + q(0095), + q(0), + ], + q(Perm) => [ + q(0096), + q(0), + ], + q(Phag) => [ + q(0097), + q(0), + ], + q(Phli) => [ + q(0098), + q(0), + ], + q(Phlp) => [ + q(0099), + q(0), + ], + q(Phlv) => [ + q(0100), + q(0), + ], + q(Phnx) => [ + q(0101), + q(0), + ], + q(Plrd) => [ + q(0102), + q(0), + ], + q(Prti) => [ + q(0103), + q(0), + ], + q(Qaaa) => [ + q(0104), + q(0), + ], + q(Qabx) => [ + q(0105), + q(0), + ], + q(Rjng) => [ + q(0106), + q(0), + ], + q(Roro) => [ + q(0107), + q(0), + ], + q(Runr) => [ + q(0108), + q(0), + ], + q(Samr) => [ + q(0109), + q(0), + ], + q(Sara) => [ + q(0110), + q(0), + ], + q(Sarb) => [ + q(0111), + q(0), + ], + q(Saur) => [ + q(0112), + q(0), + ], + q(Sgnw) => [ + q(0113), + q(0), + ], + q(Shaw) => [ + q(0114), + q(0), + ], + q(Sinh) => [ + q(0115), + q(0), + ], + q(Sund) => [ + q(0116), + q(0), + ], + q(Sylo) => [ + q(0117), + q(0), + ], + q(Syrc) => [ + q(0118), + q(0), + ], + q(Syre) => [ + q(0119), + q(0), + ], + q(Syrj) => [ + q(0120), + q(0), + ], + q(Syrn) => [ + q(0121), + q(0), + ], + q(Tagb) => [ + q(0122), + q(0), + ], + q(Tale) => [ + q(0123), + q(0), + ], + q(Talu) => [ + q(0124), + q(0), + ], + q(Taml) => [ + q(0125), + q(0), + ], + q(Tavt) => [ + q(0126), + q(0), + ], + q(Telu) => [ + q(0127), + q(0), + ], + q(Teng) => [ + q(0128), + q(0), + ], + q(Tfng) => [ + q(0129), + q(0), + ], + q(Tglg) => [ + q(0130), + q(0), + ], + q(Thaa) => [ + q(0131), + q(0), + ], + q(Thai) => [ + q(0132), + q(0), + ], + q(Tibt) => [ + q(0133), + q(0), + ], + q(Ugar) => [ + q(0134), + q(0), + ], + q(Vaii) => [ + q(0135), + q(0), + ], + q(Visp) => [ + q(0136), + q(0), + ], + q(Wara) => [ + q(0137), + q(0), + ], + q(Xpeo) => [ + q(0138), + q(0), + ], + q(Xsux) => [ + q(0139), + q(0), + ], + q(Yiii) => [ + q(0140), + q(0), + ], + q(Zinh) => [ + q(0141), + q(0), + ], + q(Zmth) => [ + q(0142), + q(0), + ], + q(Zsym) => [ + q(0143), + q(0), + ], + }, + q(num) => { + q(020) => [ + q(0139), + q(0), + ], + q(030) => [ + q(0138), + q(0), + ], + q(040) => [ + q(0134), + q(0), + ], + q(050) => [ + q(0030), + q(0), + ], + q(060) => [ + q(0029), + q(0), + ], + q(070) => [ + q(0028), + q(0), + ], + q(090) => [ + q(0077), + q(0), + ], + q(095) => [ + q(0113), + q(0), + ], + q(100) => [ + q(0080), + q(0), + ], + q(101) => [ + q(0079), + q(0), + ], + q(105) => [ + q(0111), + q(0), + ], + q(106) => [ + q(0086), + q(0), + ], + q(115) => [ + q(0101), + q(0), + ], + q(116) => [ + q(0074), + q(0), + ], + q(120) => [ + q(0129), + q(0), + ], + q(123) => [ + q(0109), + q(0), + ], + q(124) => [ + q(0002), + q(0), + ], + q(125) => [ + q(0045), + q(0), + ], + q(126) => [ + q(0095), + q(0), + ], + q(130) => [ + q(0103), + q(0), + ], + q(131) => [ + q(0098), + q(0), + ], + q(132) => [ + q(0099), + q(0), + ], + q(133) => [ + q(0100), + q(0), + ], + q(134) => [ + q(0004), + q(0), + ], + q(135) => [ + q(0118), + q(0), + ], + q(136) => [ + q(0121), + q(0), + ], + q(137) => [ + q(0120), + q(0), + ], + q(138) => [ + q(0119), + q(0), + ], + q(139) => [ + q(0076), + q(0), + ], + q(140) => [ + q(0075), + q(0), + ], + q(145) => [ + q(0083), + q(0), + ], + q(159) => [ + q(0087), + q(0), + ], + q(160) => [ + q(0001), + q(0), + ], + q(165) => [ + q(0089), + q(0), + ], + q(170) => [ + q(0131), + q(0), + ], + q(175) => [ + q(0092), + q(0), + ], + q(176) => [ + q(0049), + q(0), + ], + q(200) => [ + q(0037), + q(0), + ], + q(201) => [ + q(0018), + q(0), + ], + q(202) => [ + q(0073), + q(0), + ], + q(204) => [ + q(0022), + q(0), + ], + q(206) => [ + q(0035), + q(0), + ], + q(210) => [ + q(0051), + q(0), + ], + q(211) => [ + q(0108), + q(0), + ], + q(212) => [ + q(0090), + q(0), + ], + q(215) => [ + q(0066), + q(0), + ], + q(216) => [ + q(0065), + q(0), + ], + q(217) => [ + q(0064), + q(0), + ], + q(218) => [ + q(0082), + q(0), + ], + q(220) => [ + q(0024), + q(0), + ], + q(221) => [ + q(0025), + q(0), + ], + q(225) => [ + q(0034), + q(0), + ], + q(227) => [ + q(0096), + q(0), + ], + q(230) => [ + q(0003), + q(0), + ], + q(240) => [ + q(0032), + q(0), + ], + q(241) => [ + q(0033), + q(0), + ], + q(250) => [ + q(0027), + q(0), + ], + q(259) => [ + q(0007), + q(0), + ], + q(260) => [ + q(0094), + q(0), + ], + q(261) => [ + q(0091), + q(0), + ], + q(262) => [ + q(0137), + q(0), + ], + q(280) => [ + q(0136), + q(0), + ], + q(281) => [ + q(0114), + q(0), + ], + q(282) => [ + q(0102), + q(0), + ], + q(285) => [ + q(0011), + q(0), + ], + q(286) => [ + q(0040), + q(0), + ], + q(287) => [ + q(0059), + q(0), + ], + q(290) => [ + q(0128), + q(0), + ], + q(291) => [ + q(0021), + q(0), + ], + q(292) => [ + q(0110), + q(0), + ], + q(300) => [ + q(0012), + q(0), + ], + q(305) => [ + q(0056), + q(0), + ], + q(310) => [ + q(0039), + q(0), + ], + q(315) => [ + q(0026), + q(0), + ], + q(316) => [ + q(0117), + q(0), + ], + q(317) => [ + q(0061), + q(0), + ], + q(320) => [ + q(0038), + q(0), + ], + q(325) => [ + q(0009), + q(0), + ], + q(327) => [ + q(0093), + q(0), + ], + q(330) => [ + q(0133), + q(0), + ], + q(331) => [ + q(0097), + q(0), + ], + q(335) => [ + q(0067), + q(0), + ], + q(336) => [ + q(0068), + q(0), + ], + q(337) => [ + q(0084), + q(0), + ], + q(340) => [ + q(0127), + q(0), + ], + q(343) => [ + q(0036), + q(0), + ], + q(344) => [ + q(0112), + q(0), + ], + q(345) => [ + q(0058), + q(0), + ], + q(346) => [ + q(0125), + q(0), + ], + q(347) => [ + q(0081), + q(0), + ], + q(348) => [ + q(0115), + q(0), + ], + q(349) => [ + q(0016), + q(0), + ], + q(350) => [ + q(0085), + q(0), + ], + q(351) => [ + q(0062), + q(0), + ], + q(352) => [ + q(0132), + q(0), + ], + q(353) => [ + q(0123), + q(0), + ], + q(354) => [ + q(0124), + q(0), + ], + q(355) => [ + q(0057), + q(0), + ], + q(356) => [ + q(0063), + q(0), + ], + q(357) => [ + q(0054), + q(0), + ], + q(358) => [ + q(0019), + q(0), + ], + q(359) => [ + q(0126), + q(0), + ], + q(360) => [ + q(0005), + q(0), + ], + q(361) => [ + q(0052), + q(0), + ], + q(362) => [ + q(0116), + q(0), + ], + q(363) => [ + q(0106), + q(0), + ], + q(365) => [ + q(0008), + q(0), + ], + q(367) => [ + q(0014), + q(0), + ], + q(370) => [ + q(0130), + q(0), + ], + q(371) => [ + q(0042), + q(0), + ], + q(372) => [ + q(0015), + q(0), + ], + q(373) => [ + q(0122), + q(0), + ], + q(399) => [ + q(0071), + q(0), + ], + q(400) => [ + q(0069), + q(0), + ], + q(401) => [ + q(0070), + q(0), + ], + q(403) => [ + q(0023), + q(0), + ], + q(410) => [ + q(0046), + q(0), + ], + q(411) => [ + q(0055), + q(0), + ], + q(412) => [ + q(0048), + q(0), + ], + q(413) => [ + q(0053), + q(0), + ], + q(420) => [ + q(0088), + q(0), + ], + q(430) => [ + q(0031), + q(0), + ], + q(435) => [ + q(0006), + q(0), + ], + q(436) => [ + q(0060), + q(0), + ], + q(437) => [ + q(0072), + q(0), + ], + q(438) => [ + q(0078), + q(0), + ], + q(440) => [ + q(0017), + q(0), + ], + q(445) => [ + q(0020), + q(0), + ], + q(450) => [ + q(0047), + q(0), + ], + q(460) => [ + q(0140), + q(0), + ], + q(470) => [ + q(0135), + q(0), + ], + q(500) => [ + q(0041), + q(0), + ], + q(501) => [ + q(0043), + q(0), + ], + q(502) => [ + q(0044), + q(0), + ], + q(550) => [ + q(0010), + q(0), + ], + q(570) => [ + q(0013), + q(0), + ], + q(610) => [ + q(0050), + q(0), + ], + q(620) => [ + q(0107), + q(0), + ], + q(900) => [ + q(0104), + q(0), + ], + q(949) => [ + q(0105), + q(0), + ], + q(994) => [ + q(0141), + q(0), + ], + q(995) => [ + q(0142), + q(0), + ], + q(996) => [ + q(0143), + q(0), + ], + }, +}; + +$Locale::Codes::Data{'script'}{'id2code'} = { + q(alpha) => { + q(0001) => q(Arab), + q(0002) => q(Armi), + q(0003) => q(Armn), + q(0004) => q(Avst), + q(0005) => q(Bali), + q(0006) => q(Bamu), + q(0007) => q(Bass), + q(0008) => q(Batk), + q(0009) => q(Beng), + q(0010) => q(Blis), + q(0011) => q(Bopo), + q(0012) => q(Brah), + q(0013) => q(Brai), + q(0014) => q(Bugi), + q(0015) => q(Buhd), + q(0016) => q(Cakm), + q(0017) => q(Cans), + q(0018) => q(Cari), + q(0019) => q(Cham), + q(0020) => q(Cher), + q(0021) => q(Cirt), + q(0022) => q(Copt), + q(0023) => q(Cprt), + q(0024) => q(Cyrl), + q(0025) => q(Cyrs), + q(0026) => q(Deva), + q(0027) => q(Dsrt), + q(0028) => q(Egyd), + q(0029) => q(Egyh), + q(0030) => q(Egyp), + q(0031) => q(Ethi), + q(0032) => q(Geor), + q(0033) => q(Geok), + q(0034) => q(Glag), + q(0035) => q(Goth), + q(0036) => q(Gran), + q(0037) => q(Grek), + q(0038) => q(Gujr), + q(0039) => q(Guru), + q(0040) => q(Hang), + q(0041) => q(Hani), + q(0042) => q(Hano), + q(0043) => q(Hans), + q(0044) => q(Hant), + q(0045) => q(Hebr), + q(0046) => q(Hira), + q(0047) => q(Hmng), + q(0048) => q(Hrkt), + q(0049) => q(Hung), + q(0050) => q(Inds), + q(0051) => q(Ital), + q(0052) => q(Java), + q(0053) => q(Jpan), + q(0054) => q(Kali), + q(0055) => q(Kana), + q(0056) => q(Khar), + q(0057) => q(Khmr), + q(0058) => q(Knda), + q(0059) => q(Kore), + q(0060) => q(Kpel), + q(0061) => q(Kthi), + q(0062) => q(Lana), + q(0063) => q(Laoo), + q(0064) => q(Latf), + q(0065) => q(Latg), + q(0066) => q(Latn), + q(0067) => q(Lepc), + q(0068) => q(Limb), + q(0069) => q(Lina), + q(0070) => q(Linb), + q(0071) => q(Lisu), + q(0072) => q(Loma), + q(0073) => q(Lyci), + q(0074) => q(Lydi), + q(0075) => q(Mand), + q(0076) => q(Mani), + q(0077) => q(Maya), + q(0078) => q(Mend), + q(0079) => q(Merc), + q(0080) => q(Mero), + q(0081) => q(Mlym), + q(0082) => q(Moon), + q(0083) => q(Mong), + q(0084) => q(Mtei), + q(0085) => q(Mymr), + q(0086) => q(Narb), + q(0087) => q(Nbat), + q(0088) => q(Nkgb), + q(0089) => q(Nkoo), + q(0090) => q(Ogam), + q(0091) => q(Olck), + q(0092) => q(Orkh), + q(0093) => q(Orya), + q(0094) => q(Osma), + q(0095) => q(Palm), + q(0096) => q(Perm), + q(0097) => q(Phag), + q(0098) => q(Phli), + q(0099) => q(Phlp), + q(0100) => q(Phlv), + q(0101) => q(Phnx), + q(0102) => q(Plrd), + q(0103) => q(Prti), + q(0104) => q(Qaaa), + q(0105) => q(Qabx), + q(0106) => q(Rjng), + q(0107) => q(Roro), + q(0108) => q(Runr), + q(0109) => q(Samr), + q(0110) => q(Sara), + q(0111) => q(Sarb), + q(0112) => q(Saur), + q(0113) => q(Sgnw), + q(0114) => q(Shaw), + q(0115) => q(Sinh), + q(0116) => q(Sund), + q(0117) => q(Sylo), + q(0118) => q(Syrc), + q(0119) => q(Syre), + q(0120) => q(Syrj), + q(0121) => q(Syrn), + q(0122) => q(Tagb), + q(0123) => q(Tale), + q(0124) => q(Talu), + q(0125) => q(Taml), + q(0126) => q(Tavt), + q(0127) => q(Telu), + q(0128) => q(Teng), + q(0129) => q(Tfng), + q(0130) => q(Tglg), + q(0131) => q(Thaa), + q(0132) => q(Thai), + q(0133) => q(Tibt), + q(0134) => q(Ugar), + q(0135) => q(Vaii), + q(0136) => q(Visp), + q(0137) => q(Wara), + q(0138) => q(Xpeo), + q(0139) => q(Xsux), + q(0140) => q(Yiii), + q(0141) => q(Zinh), + q(0142) => q(Zmth), + q(0143) => q(Zsym), + }, + q(num) => { + q(0001) => q(160), + q(0002) => q(124), + q(0003) => q(230), + q(0004) => q(134), + q(0005) => q(360), + q(0006) => q(435), + q(0007) => q(259), + q(0008) => q(365), + q(0009) => q(325), + q(0010) => q(550), + q(0011) => q(285), + q(0012) => q(300), + q(0013) => q(570), + q(0014) => q(367), + q(0015) => q(372), + q(0016) => q(349), + q(0017) => q(440), + q(0018) => q(201), + q(0019) => q(358), + q(0020) => q(445), + q(0021) => q(291), + q(0022) => q(204), + q(0023) => q(403), + q(0024) => q(220), + q(0025) => q(221), + q(0026) => q(315), + q(0027) => q(250), + q(0028) => q(070), + q(0029) => q(060), + q(0030) => q(050), + q(0031) => q(430), + q(0032) => q(240), + q(0033) => q(241), + q(0034) => q(225), + q(0035) => q(206), + q(0036) => q(343), + q(0037) => q(200), + q(0038) => q(320), + q(0039) => q(310), + q(0040) => q(286), + q(0041) => q(500), + q(0042) => q(371), + q(0043) => q(501), + q(0044) => q(502), + q(0045) => q(125), + q(0046) => q(410), + q(0047) => q(450), + q(0048) => q(412), + q(0049) => q(176), + q(0050) => q(610), + q(0051) => q(210), + q(0052) => q(361), + q(0053) => q(413), + q(0054) => q(357), + q(0055) => q(411), + q(0056) => q(305), + q(0057) => q(355), + q(0058) => q(345), + q(0059) => q(287), + q(0060) => q(436), + q(0061) => q(317), + q(0062) => q(351), + q(0063) => q(356), + q(0064) => q(217), + q(0065) => q(216), + q(0066) => q(215), + q(0067) => q(335), + q(0068) => q(336), + q(0069) => q(400), + q(0070) => q(401), + q(0071) => q(399), + q(0072) => q(437), + q(0073) => q(202), + q(0074) => q(116), + q(0075) => q(140), + q(0076) => q(139), + q(0077) => q(090), + q(0078) => q(438), + q(0079) => q(101), + q(0080) => q(100), + q(0081) => q(347), + q(0082) => q(218), + q(0083) => q(145), + q(0084) => q(337), + q(0085) => q(350), + q(0086) => q(106), + q(0087) => q(159), + q(0088) => q(420), + q(0089) => q(165), + q(0090) => q(212), + q(0091) => q(261), + q(0092) => q(175), + q(0093) => q(327), + q(0094) => q(260), + q(0095) => q(126), + q(0096) => q(227), + q(0097) => q(331), + q(0098) => q(131), + q(0099) => q(132), + q(0100) => q(133), + q(0101) => q(115), + q(0102) => q(282), + q(0103) => q(130), + q(0104) => q(900), + q(0105) => q(949), + q(0106) => q(363), + q(0107) => q(620), + q(0108) => q(211), + q(0109) => q(123), + q(0110) => q(292), + q(0111) => q(105), + q(0112) => q(344), + q(0113) => q(095), + q(0114) => q(281), + q(0115) => q(348), + q(0116) => q(362), + q(0117) => q(316), + q(0118) => q(135), + q(0119) => q(138), + q(0120) => q(137), + q(0121) => q(136), + q(0122) => q(373), + q(0123) => q(353), + q(0124) => q(354), + q(0125) => q(346), + q(0126) => q(359), + q(0127) => q(340), + q(0128) => q(290), + q(0129) => q(120), + q(0130) => q(370), + q(0131) => q(170), + q(0132) => q(352), + q(0133) => q(330), + q(0134) => q(040), + q(0135) => q(470), + q(0136) => q(280), + q(0137) => q(262), + q(0138) => q(030), + q(0139) => q(020), + q(0140) => q(460), + q(0141) => q(994), + q(0142) => q(995), + q(0143) => q(996), + }, +}; + +1; diff --git a/cpan/Locale-Codes/lib/Locale/Constants.pm b/cpan/Locale-Codes/lib/Locale/Constants.pm index d8ef8f7..c6e52c5 100644 --- a/cpan/Locale-Codes/lib/Locale/Constants.pm +++ b/cpan/Locale-Codes/lib/Locale/Constants.pm @@ -1,31 +1,80 @@ -# -# Locale::Constants - defined constants for identifying codesets -# -# $Id: Constants.pm,v 2.7 2004/06/10 21:19:34 neilb Exp $ -# - package Locale::Constants; +# Copyright (C) 2001 Canon Research Centre Europe (CRE). +# Copyright (C) 2002-2009 Neil Bowers +# Copyright (c) 2010-2010 Sullivan Beck +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + use strict; +use warnings; require Exporter; #----------------------------------------------------------------------- # Public Global Variables #----------------------------------------------------------------------- + use vars qw($VERSION @ISA @EXPORT); -$VERSION = sprintf("%d.%02d", q$Revision: 2.7 $ =~ /(\d+)\.(\d+)/); -@ISA = qw(Exporter); -@EXPORT = qw(LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_3 LOCALE_CODE_NUMERIC - LOCALE_CODE_DEFAULT); + +$VERSION='3.12'; +@ISA = qw(Exporter); +@EXPORT = qw(LOCALE_CODE_ALPHA_2 + LOCALE_CODE_ALPHA_3 + LOCALE_CODE_NUMERIC + LOCALE_CODE_FIPS + LOCALE_CODE_DOM + LOCALE_CODE_DEFAULT + + LOCALE_LANG_ALPHA_2 + LOCALE_LANG_ALPHA_3 + LOCALE_LANG_TERM + LOCALE_LANG_DEFAULT + + LOCALE_CURR_ALPHA + LOCALE_CURR_NUMERIC + LOCALE_CURR_DEFAULT + + LOCALE_SCRIPT_ALPHA + LOCALE_SCRIPT_NUMERIC + LOCALE_SCRIPT_DEFAULT + ); #----------------------------------------------------------------------- # Constants #----------------------------------------------------------------------- -use constant LOCALE_CODE_ALPHA_2 => 1; -use constant LOCALE_CODE_ALPHA_3 => 2; -use constant LOCALE_CODE_NUMERIC => 3; -use constant LOCALE_CODE_DEFAULT => LOCALE_CODE_ALPHA_2; +use constant LOCALE_CODE_ALPHA_2 => 1; +use constant LOCALE_CODE_ALPHA_3 => 2; +use constant LOCALE_CODE_NUMERIC => 3; +use constant LOCALE_CODE_FIPS => 4; +use constant LOCALE_CODE_DOM => 5; -1; +use constant LOCALE_CODE_DEFAULT => LOCALE_CODE_ALPHA_2; +use constant LOCALE_LANG_ALPHA_2 => 1; +use constant LOCALE_LANG_ALPHA_3 => 2; +use constant LOCALE_LANG_TERM => 3; + +use constant LOCALE_LANG_DEFAULT => LOCALE_LANG_ALPHA_2; + +use constant LOCALE_CURR_ALPHA => 1; +use constant LOCALE_CURR_NUMERIC => 2; + +use constant LOCALE_CURR_DEFAULT => LOCALE_CURR_ALPHA; + +use constant LOCALE_SCRIPT_ALPHA => 1; +use constant LOCALE_SCRIPT_NUMERIC => 2; + +use constant LOCALE_SCRIPT_DEFAULT => LOCALE_SCRIPT_ALPHA; + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/lib/Locale/Constants.pod b/cpan/Locale-Codes/lib/Locale/Constants.pod index ae42abb..dcfff9d 100644 --- a/cpan/Locale-Codes/lib/Locale/Constants.pod +++ b/cpan/Locale-Codes/lib/Locale/Constants.pod @@ -1,73 +1,38 @@ +=pod =head1 NAME Locale::Constants - constants for Locale codes -=head1 SYNOPSIS - - use Locale::Constants; - - $codeset = LOCALE_CODE_ALPHA_2; - =head1 DESCRIPTION -B defines symbols which are used in -the four modules from the Locale-Codes distribution: - - Locale::Language - Locale::Country - Locale::Currency - Locale::Script - -B at the moment only Locale::Country and Locale::Script -support more than one code set. +B defines symbols which are used in the other +modules from the Locale-Codes distribution. -The symbols defined are used to specify which codes you -want to be used: +You shouldn't have to C this module directly yourself - it is +used by the other Locale modules, which in turn export the symbols. - LOCALE_CODE_ALPHA_2 - LOCALE_CODE_ALPHA_3 - LOCALE_CODE_NUMERIC - -You shouldn't have to C this module directly yourself - -it is used by the three Locale modules, which in turn export -the symbols. +The constants are documented in each of the Locale modules. =head1 KNOWN BUGS AND LIMITATIONS -None at the moment. +None known. =head1 SEE ALSO -=over 4 - -=item Locale::Language - -Codes for identification of languages. - -=item Locale::Country - -Codes for identification of countries. - -=item Locale::Script - -Codes for identification of scripts. - -=item Locale::Currency - -Codes for identification of currencies and funds. - -=back +Locale::Codes =head1 AUTHOR -Neil Bowers Eneil@bowers.comE +See Locale::Codes for full author history. -=head1 COPYRIGHT +Currently maintained by Sullivan Beck (sbeck@cpan.org). -Copyright (C) 2002-2004, Neil Bowers. +=head1 COPYRIGHT -Copyright (C) 2001, Canon Research Centre Europe (CRE). + Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 2001-2010 Neil Bowers + Copyright (c) 2010-2010 Sullivan Beck This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. diff --git a/cpan/Locale-Codes/lib/Locale/Country.pm b/cpan/Locale-Codes/lib/Locale/Country.pm index 2ecd130..e9c5c85 100644 --- a/cpan/Locale-Codes/lib/Locale/Country.pm +++ b/cpan/Locale-Codes/lib/Locale/Country.pm @@ -1,550 +1,310 @@ -# -# Locale::Country - ISO codes for country identification (ISO 3166) -# -# $Id: Country.pm,v 2.7 2004/06/10 21:19:34 neilb Exp $ -# - package Locale::Country; +# Copyright (C) 2001 Canon Research Centre Europe (CRE). +# Copyright (C) 2002-2009 Neil Bowers +# Copyright (c) 2010-2010 Sullivan Beck +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + use strict; +use warnings; require 5.002; require Exporter; use Carp; +use Locale::Codes; use Locale::Constants; +use Locale::Codes::Country; +#======================================================================= +# Public Global Variables +#======================================================================= -#----------------------------------------------------------------------- -# Public Global Variables -#----------------------------------------------------------------------- use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); -$VERSION = sprintf("%d.%02d", q$Revision: 2.7 $ =~ /(\d+)\.(\d+)/); + +$VERSION='3.12'; @ISA = qw(Exporter); -@EXPORT = qw(code2country country2code - all_country_codes all_country_names - country_code2code - LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_3 LOCALE_CODE_NUMERIC); +@EXPORT = qw(code2country + country2code + all_country_codes + all_country_names + country_code2code + LOCALE_CODE_ALPHA_2 + LOCALE_CODE_ALPHA_3 + LOCALE_CODE_NUMERIC + LOCALE_CODE_FIPS + LOCALE_CODE_DOM + ); + +sub _code { + my($code,$codeset) = @_; + $code = "" if (! $code); + + $codeset = LOCALE_CODE_DEFAULT if (! defined($codeset) || $codeset eq ""); + + if ($codeset =~ /^\d+$/) { + if ($codeset == LOCALE_CODE_ALPHA_2) { + $codeset = "alpha2"; + } elsif ($codeset == LOCALE_CODE_ALPHA_3) { + $codeset = "alpha3"; + } elsif ($codeset == LOCALE_CODE_NUMERIC) { + $codeset = "num"; + } elsif ($codeset == LOCALE_CODE_FIPS) { + $codeset = "fips"; + } elsif ($codeset == LOCALE_CODE_DOM) { + $codeset = "dom"; + } else { + return (1); + } + } + + if ($codeset eq "alpha2" || + $codeset eq "alpha3") { + $code = lc($code); + } elsif ($codeset eq "num") { + if (defined($code) && $code ne "") { + return (1) unless ($code =~ /^\d+$/); + $code = sprintf("%.3d", $code); + } + } elsif ($codeset eq "fips" || + $codeset eq "dom") { + $code = uc($code); + } else { + return (1); + } + + return (0,$code,$codeset); +} -#----------------------------------------------------------------------- -# Private Global Variables -#----------------------------------------------------------------------- -my $CODES = []; -my $COUNTRIES = []; +#======================================================================= +# +# code2country ( CODE [,CODESET] ) +# +#======================================================================= + +sub code2country { + my($err,$code,$codeset) = _code(@_); + return undef if ($err || + ! defined $code); + return Locale::Codes::_code2name("country",$code,$codeset); +} #======================================================================= # -# code2country ( CODE [, CODESET ] ) +# country2code ( COUNTRY [,CODESET] ) # #======================================================================= -sub code2country -{ - my $code = shift; - my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT; - - - return undef unless defined $code; - - #------------------------------------------------------------------- - # Make sure the code is in the right form before we use it - # to look up the corresponding country. - # We have to sprintf because the codes are given as 3-digits, - # with leading 0's. Eg 052 for Barbados. - #------------------------------------------------------------------- - if ($codeset == LOCALE_CODE_NUMERIC) - { - return undef if ($code =~ /\D/); - $code = sprintf("%.3d", $code); - } - else - { - $code = lc($code); - } - - if (exists $CODES->[$codeset]->{$code}) - { - return $CODES->[$codeset]->{$code}; - } - else - { - #--------------------------------------------------------------- - # no such country code! - #--------------------------------------------------------------- - return undef; - } -} +sub country2code { + my($country,$codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err || + ! defined $country); + + return Locale::Codes::_name2code("country",$country,$codeset); +} #======================================================================= # -# country2code ( NAME [, CODESET ] ) +# country_code2code ( CODE,CODESET_IN,CODESET_OUT ) # #======================================================================= -sub country2code -{ - my $country = shift; - my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT; - - - return undef unless defined $country; - $country = lc($country); - if (exists $COUNTRIES->[$codeset]->{$country}) - { - return $COUNTRIES->[$codeset]->{$country}; - } - else - { - #--------------------------------------------------------------- - # no such country! - #--------------------------------------------------------------- - return undef; - } -} +sub country_code2code { + (@_ == 3) or croak "country_code2code() takes 3 arguments!"; + my($code,$inset,$outset) = @_; + my($err,$tmp); + ($err,$code,$inset) = _code($code,$inset); + return undef if ($err); + ($err,$tmp,$outset) = _code("",$outset); + return undef if ($err); + + return Locale::Codes::_code2code("country",$code,$inset,$outset); +} #======================================================================= # -# country_code2code ( NAME [, CODESET ] ) +# all_country_codes ( [CODESET] ) # #======================================================================= -sub country_code2code -{ - (@_ == 3) or croak "country_code2code() takes 3 arguments!"; - - my $code = shift; - my $inset = shift; - my $outset = shift; - my $outcode; - my $country; - - - return undef if $inset == $outset; - $country = code2country($code, $inset); - return undef if not defined $country; - $outcode = country2code($country, $outset); - return $outcode; + +sub all_country_codes { + my($codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err); + + return Locale::Codes::_all_codes("country",$codeset); } #======================================================================= # -# all_country_codes ( [ CODESET ] ) +# all_country_names ( [CODESET] ) # #======================================================================= -sub all_country_codes -{ - my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT; - return keys %{ $CODES->[$codeset] }; -} +sub all_country_names { + my($codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err); + return Locale::Codes::_all_names("country",$codeset); +} #======================================================================= # -# all_country_names ( [ CODESET ] ) +# rename_country ( CODE,NAME [,CODESET] ) # #======================================================================= -sub all_country_names -{ - my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT; - return values %{ $CODES->[$codeset] }; -} +sub rename_country { + my($code,$new_name,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + return Locale::Codes::_rename("country",$code,$new_name,$codeset,$nowarn); +} #======================================================================= # -# alias_code ( ALIAS => CODE [ , CODESET ] ) +# add_country ( CODE,NAME [,CODESET] ) # -# Add an alias for an existing code. If the CODESET isn't specified, -# then we use the default (currently the alpha-2 codeset). +#======================================================================= + +sub add_country { + my($code,$name,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_add_code("country",$code,$name,$codeset,$nowarn); +} + +#======================================================================= # -# Locale::Country::alias_code('uk' => 'gb'); +# delete_country ( CODE [,CODESET] ) # #======================================================================= -sub alias_code -{ - my $alias = shift; - my $real = shift; - my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT; - my $country; +sub delete_country { + my($code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + return Locale::Codes::_delete_code("country",$code,$codeset,$nowarn); +} - if (not exists $CODES->[$codeset]->{$real}) - { - carp "attempt to alias \"$alias\" to unknown country code \"$real\"\n"; - return undef; - } - $country = $CODES->[$codeset]->{$real}; - $CODES->[$codeset]->{$alias} = $country; - $COUNTRIES->[$codeset]->{"\L$country"} = $alias; +#======================================================================= +# +# add_country_alias ( NAME,NEW_NAME ) +# +#======================================================================= - return $alias; +sub add_country_alias { + my($name,$new_name,$nowarn) = @_; + $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0); + + return Locale::Codes::_add_alias("country",$name,$new_name,$nowarn); } -# old name of function for backwards compatibility -*_alias_code = *alias_code; +#======================================================================= +# +# delete_country_alias ( NAME ) +# +#======================================================================= + +sub delete_country_alias { + my($name,$nowarn) = @_; + $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0); + return Locale::Codes::_delete_alias("country",$name,$nowarn); +} #======================================================================= # -# rename_country -# -# change the official name for a country, eg: -# gb => 'Great Britain' -# rather than the standard 'United Kingdom'. The original is retained -# as an alias, but the new name will be returned if you lookup the -# name from code. +# rename_country_code ( CODE,NEW_CODE [,CODESET] ) # #======================================================================= -sub rename_country -{ - my $code = shift; - my $new_name = shift; - my $codeset = @_ > 0 ? shift : _code2codeset($code); - my $country; - my $c; - - - if (not defined $codeset) - { - carp "rename_country(): unknown country code \"$code\"\n"; - return 0; - } - - $country = $CODES->[$codeset]->{$code}; - - foreach my $cset (LOCALE_CODE_ALPHA_2, - LOCALE_CODE_ALPHA_3, - LOCALE_CODE_NUMERIC) - { - if ($cset == $codeset) - { - $c = $code; - } - else - { - $c = country_code2code($code, $codeset, $cset); - } - - $CODES->[$cset]->{$c} = $new_name; - $COUNTRIES->[$cset]->{"\L$new_name"} = $c; - } - - return 1; -} +sub rename_country_code { + my($code,$new_code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + ($err,$new_code,$codeset) = _code($new_code,$codeset) if (! $err); + + return Locale::Codes::_rename_code("country",$code,$new_code,$codeset,$nowarn); +} #======================================================================= # -# _code2codeset -# -# given a country code in an unknown codeset, return the codeset -# it is from, or undef. +# add_country_code_alias ( CODE,NEW_CODE [,CODESET] ) # #======================================================================= -sub _code2codeset -{ - my $code = shift; - - foreach my $codeset (LOCALE_CODE_ALPHA_2, LOCALE_CODE_ALPHA_3, - LOCALE_CODE_NUMERIC) - { - return $codeset if (exists $CODES->[$codeset]->{$code}) - } +sub add_country_code_alias { + my($code,$new_code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + ($err,$new_code,$codeset) = _code($new_code,$codeset) if (! $err); - return undef; + return Locale::Codes::_add_code_alias("country",$code,$new_code,$codeset,$nowarn); } +#======================================================================= +# +# delete_country_code_alias ( CODE [,CODESET] ) +# +#======================================================================= + +sub delete_country_code_alias { + my($code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_delete_code_alias("country",$code,$codeset,$nowarn); +} #======================================================================= # -# initialisation code - stuff the DATA into the ALPHA2 hash +# Old function for backward compatibility # #======================================================================= -{ - my ($alpha2, $alpha3, $numeric); - my ($country, @countries); - local $_; - - - while () - { - next unless /\S/; - chop; - ($alpha2, $alpha3, $numeric, @countries) = split(/:/, $_); - - $CODES->[LOCALE_CODE_ALPHA_2]->{$alpha2} = $countries[0]; - foreach $country (@countries) - { - $COUNTRIES->[LOCALE_CODE_ALPHA_2]->{"\L$country"} = $alpha2; - } - - if ($alpha3) - { - $CODES->[LOCALE_CODE_ALPHA_3]->{$alpha3} = $countries[0]; - foreach $country (@countries) - { - $COUNTRIES->[LOCALE_CODE_ALPHA_3]->{"\L$country"} = $alpha3; - } - } - - if ($numeric) - { - $CODES->[LOCALE_CODE_NUMERIC]->{$numeric} = $countries[0]; - foreach $country (@countries) - { - $COUNTRIES->[LOCALE_CODE_NUMERIC]->{"\L$country"} = $numeric; - } - } - - } - - close(DATA); + +sub alias_code { + my($alias,$code,@args) = @_; + my $success = rename_country_code($code,$alias,@args); + return 0 if (! $success); + return $alias; } 1; - -__DATA__ -ad:and:020:Andorra -ae:are:784:United Arab Emirates -af:afg:004:Afghanistan -ag:atg:028:Antigua and Barbuda -ai:aia:660:Anguilla -al:alb:008:Albania -am:arm:051:Armenia -an:ant:530:Netherlands Antilles -ao:ago:024:Angola -aq:ata:010:Antarctica -ar:arg:032:Argentina -as:asm:016:American Samoa -at:aut:040:Austria -au:aus:036:Australia -aw:abw:533:Aruba -ax:ala:248:Aland Islands -az:aze:031:Azerbaijan -ba:bih:070:Bosnia and Herzegovina -bb:brb:052:Barbados -bd:bgd:050:Bangladesh -be:bel:056:Belgium -bf:bfa:854:Burkina Faso -bg:bgr:100:Bulgaria -bh:bhr:048:Bahrain -bi:bdi:108:Burundi -bj:ben:204:Benin -bm:bmu:060:Bermuda -bn:brn:096:Brunei Darussalam -bo:bol:068:Bolivia -br:bra:076:Brazil -bs:bhs:044:Bahamas -bt:btn:064:Bhutan -bv:bvt:074:Bouvet Island -bw:bwa:072:Botswana -by:blr:112:Belarus -bz:blz:084:Belize -ca:can:124:Canada -cc:cck:166:Cocos (Keeling) Islands -cd:cod:180:Congo, The Democratic Republic of the:Zaire:Congo, Democratic Republic of the -cf:caf:140:Central African Republic -cg:cog:178:Congo:Congo, Republic of the -ch:che:756:Switzerland -ci:civ:384:Cote D'Ivoire -ck:cok:184:Cook Islands -cl:chl:152:Chile -cm:cmr:120:Cameroon -cn:chn:156:China -co:col:170:Colombia -cr:cri:188:Costa Rica -cs:scg:891:Serbia and Montenegro:Yugoslavia -cu:cub:192:Cuba -cv:cpv:132:Cape Verde -cx:cxr:162:Christmas Island -cy:cyp:196:Cyprus -cz:cze:203:Czech Republic -de:deu:276:Germany -dj:dji:262:Djibouti -dk:dnk:208:Denmark -dm:dma:212:Dominica -do:dom:214:Dominican Republic -dz:dza:012:Algeria -ec:ecu:218:Ecuador -ee:est:233:Estonia -eg:egy:818:Egypt -eh:esh:732:Western Sahara -er:eri:232:Eritrea -es:esp:724:Spain -et:eth:231:Ethiopia -fi:fin:246:Finland -fj:fji:242:Fiji -fk:flk:238:Falkland Islands (Malvinas):Falkland Islands (Islas Malvinas) -fm:fsm:583:Micronesia, Federated States of -fo:fro:234:Faroe Islands -fr:fra:250:France -fx:fxx:249:France, Metropolitan -ga:gab:266:Gabon -gb:gbr:826:United Kingdom:Great Britain -gd:grd:308:Grenada -ge:geo:268:Georgia -gf:guf:254:French Guiana -gh:gha:288:Ghana -gi:gib:292:Gibraltar -gl:grl:304:Greenland -gm:gmb:270:Gambia -gn:gin:324:Guinea -gp:glp:312:Guadeloupe -gq:gnq:226:Equatorial Guinea -gr:grc:300:Greece -gs:sgs:239:South Georgia and the South Sandwich Islands -gt:gtm:320:Guatemala -gu:gum:316:Guam -gw:gnb:624:Guinea-Bissau -gy:guy:328:Guyana -hk:hkg:344:Hong Kong -hm:hmd:334:Heard Island and McDonald Islands -hn:hnd:340:Honduras -hr:hrv:191:Croatia -ht:hti:332:Haiti -hu:hun:348:Hungary -id:idn:360:Indonesia -ie:irl:372:Ireland -il:isr:376:Israel -in:ind:356:India -io:iot:086:British Indian Ocean Territory -iq:irq:368:Iraq -ir:irn:364:Iran, Islamic Republic of:Iran -is:isl:352:Iceland -it:ita:380:Italy -jm:jam:388:Jamaica -jo:jor:400:Jordan -jp:jpn:392:Japan -ke:ken:404:Kenya -kg:kgz:417:Kyrgyzstan -kh:khm:116:Cambodia -ki:kir:296:Kiribati -km:com:174:Comoros -kn:kna:659:Saint Kitts and Nevis -kp:prk:408:Korea, Democratic People's Republic of:Korea, North:North Korea -kr:kor:410:Korea, Republic of:Korea, South:South Korea -kw:kwt:414:Kuwait -ky:cym:136:Cayman Islands -kz:kaz:398:Kazakhstan:Kazakstan -la:lao:418:Lao People's Democratic Republic -lb:lbn:422:Lebanon -lc:lca:662:Saint Lucia -li:lie:438:Liechtenstein -lk:lka:144:Sri Lanka -lr:lbr:430:Liberia -ls:lso:426:Lesotho -lt:ltu:440:Lithuania -lu:lux:442:Luxembourg -lv:lva:428:Latvia -ly:lby:434:Libyan Arab Jamahiriya:Libya -ma:mar:504:Morocco -mc:mco:492:Monaco -md:mda:498:Moldova, Republic of:Moldova -mg:mdg:450:Madagascar -mh:mhl:584:Marshall Islands -mk:mkd:807:Macedonia, the Former Yugoslav Republic of:Macedonia, Former Yugoslav Republic of:Macedonia -ml:mli:466:Mali -mm:mmr:104:Myanmar:Burma -mn:mng:496:Mongolia -mo:mac:446:Macao:Macau -mp:mnp:580:Northern Mariana Islands -mq:mtq:474:Martinique -mr:mrt:478:Mauritania -ms:msr:500:Montserrat -mt:mlt:470:Malta -mu:mus:480:Mauritius -mv:mdv:462:Maldives -mw:mwi:454:Malawi -mx:mex:484:Mexico -my:mys:458:Malaysia -mz:moz:508:Mozambique -na:nam:516:Namibia -nc:ncl:540:New Caledonia -ne:ner:562:Niger -nf:nfk:574:Norfolk Island -ng:nga:566:Nigeria -ni:nic:558:Nicaragua -nl:nld:528:Netherlands -no:nor:578:Norway -np:npl:524:Nepal -nr:nru:520:Nauru -nu:niu:570:Niue -nz:nzl:554:New Zealand -om:omn:512:Oman -pa:pan:591:Panama -pe:per:604:Peru -pf:pyf:258:French Polynesia -pg:png:598:Papua New Guinea -ph:phl:608:Philippines -pk:pak:586:Pakistan -pl:pol:616:Poland -pm:spm:666:Saint Pierre and Miquelon -pn:pcn:612:Pitcairn:Pitcairn Island -pr:pri:630:Puerto Rico -ps:pse:275:Palestinian Territory, Occupied -pt:prt:620:Portugal -pw:plw:585:Palau -py:pry:600:Paraguay -qa:qat:634:Qatar -re:reu:638:Reunion -ro:rou:642:Romania -ru:rus:643:Russian Federation:Russia -rw:rwa:646:Rwanda -sa:sau:682:Saudi Arabia -sb:slb:090:Solomon Islands -sc:syc:690:Seychelles -sd:sdn:736:Sudan -se:swe:752:Sweden -sg:sgp:702:Singapore -sh:shn:654:Saint Helena -si:svn:705:Slovenia -sj:sjm:744:Svalbard and Jan Mayen:Jan Mayen:Svalbard -sk:svk:703:Slovakia -sl:sle:694:Sierra Leone -sm:smr:674:San Marino -sn:sen:686:Senegal -so:som:706:Somalia -sr:sur:740:Suriname -st:stp:678:Sao Tome and Principe -sv:slv:222:El Salvador -sy:syr:760:Syrian Arab Republic:Syria -sz:swz:748:Swaziland -tc:tca:796:Turks and Caicos Islands -td:tcd:148:Chad -tf:atf:260:French Southern Territories:French Southern and Antarctic Lands -tg:tgo:768:Togo -th:tha:764:Thailand -tj:tjk:762:Tajikistan -tk:tkl:772:Tokelau -tm:tkm:795:Turkmenistan -tn:tun:788:Tunisia -to:ton:776:Tonga -tl:tls:626:Timor-Leste:East Timor -tr:tur:792:Turkey -tt:tto:780:Trinidad and Tobago -tv:tuv:798:Tuvalu -tw:twn:158:Taiwan, Province of China:Taiwan -tz:tza:834:Tanzania, United Republic of:Tanzania -ua:ukr:804:Ukraine -ug:uga:800:Uganda -um:umi:581:United States Minor Outlying Islands -us:usa:840:United States:USA:United States of America -uy:ury:858:Uruguay -uz:uzb:860:Uzbekistan -va:vat:336:Holy See (Vatican City State):Holy See (Vatican City) -vc:vct:670:Saint Vincent and the Grenadines -ve:ven:862:Venezuela -vg:vgb:092:Virgin Islands, British:British Virgin Islands -vi:vir:850:Virgin Islands, U.S. -vn:vnm:704:Vietnam -vu:vut:548:Vanuatu -wf:wlf:876:Wallis and Futuna -ws:wsm:882:Samoa -ye:yem:887:Yemen -yt:myt:175:Mayotte -za:zaf:710:South Africa -zm:zmb:894:Zambia -zw:zwe:716:Zimbabwe +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/lib/Locale/Country.pod b/cpan/Locale-Codes/lib/Locale/Country.pod index b13cd22..a31e78c 100644 --- a/cpan/Locale-Codes/lib/Locale/Country.pod +++ b/cpan/Locale-Codes/lib/Locale/Country.pod @@ -1,306 +1,214 @@ +=pod =head1 NAME -Locale::Country - ISO codes for country identification (ISO 3166) +Locale::Country - standard codes for country identification =head1 SYNOPSIS - use Locale::Country; - - $country = code2country('jp'); # $country gets 'Japan' - $code = country2code('Norway'); # $code gets 'no' - - @codes = all_country_codes(); - @names = all_country_names(); - - # semi-private routines - Locale::Country::alias_code('uk' => 'gb'); - Locale::Country::rename_country('gb' => 'Great Britain'); + use Locale::Country; + $country = code2country('jp' [,CODESET]); # $country gets 'Japan' + $code = country2code('Norway' [,CODESET]); # $code gets 'no' -=head1 DESCRIPTION - -The C module provides access to the ISO -codes for identifying countries, as defined in ISO 3166-1. -You can either access the codes via the L -(described below), or with the two functions which return lists -of all country codes or all country names. - -There are three different code sets you can use for identifying -countries: - -=over 4 - -=item B - -Two letter codes, such as 'tv' for Tuvalu. -This code set is identified with the symbol C. + @codes = all_country_codes( [CODESET]); + @names = all_country_names(); -=item B + # semi-private routines + Locale::Country::alias_code('uk' => 'gb'); + Locale::Country::rename_country('gb' => 'Great Britain'); -Three letter codes, such as 'brb' for Barbados. -This code set is identified with the symbol C. +=head1 DESCRIPTION -=item B +The C module provides access to several code sets +that can be used for identifying countries, such as those defined in +ISO 3166-1. -Numeric codes, such as 064 for Bhutan. -This code set is identified with the symbol C. +Most of the routines take an optional additional argument which +specifies the code set to use. If not specified, the default ISO +3166-1 two-letter codes will be used. -=back +=head1 SUPPORTED CODE SETS -All of the routines take an optional additional argument -which specifies the code set to use. -If not specified, it defaults to the two-letter codes. -This is partly for backwards compatibility (previous versions -of this module only supported the alpha-2 codes), and -partly because they are the most widely used codes. +There are several different code sets you can use for identifying +countries. The ones currently supported are: -The alpha-2 and alpha-3 codes are not case-dependent, -so you can use 'BO', 'Bo', 'bO' or 'bo' for Bolivia. -When a code is returned by one of the functions in -this module, it will always be lower-case. +=over 4 -As of version 2.00, Locale::Country supports variant -names for countries. So, for example, the country code for "United States" -is "us", so country2code('United States') returns 'us'. -Now the following will also return 'us': +=item B - country2code('United States of America') - country2code('USA') +This is the set of two-letter (lowercase) codes from ISO 3166-1, such +as 'tv' for Tuvalu. +This code set is identified with the symbol C. -=head1 CONVERSION ROUTINES +This is the default code set. -There are three conversion routines: C, C, -and C. +=item B -=over 4 +This is the set of three-letter (lowercase) codes from ISO 3166-1, +such as 'brb' for Barbados. These codes are actually defined and +maintained by the U.N. Statistics division. -=item code2country( CODE, [ CODESET ] ) +This code set is identified with the symbol C. -This function takes a country code and returns a string -which contains the name of the country identified. -If the code is not a valid country code, as defined by ISO 3166, -then C will be returned: +=item B - $country = code2country('fi'); +This is the set of three-digit numeric codes from ISO 3166-1, such as +064 for Bhutan. These codes are actually defined and maintained by the +U.N. Statistics division. -=item country2code( STRING, [ CODESET ] ) +If a 2-digit code is entered, it is converted to 3 digits by prepending +a 0. -This function takes a country name and returns the corresponding -country code, if such exists. -If the argument could not be identified as a country name, -then C will be returned: +This code set is identified with the symbol C. - $code = country2code('Norway', LOCALE_CODE_ALPHA_3); - # $code will now be 'nor' +=item B -The case of the country name is not important. -See the section L below. +The FIPS 10 data are two-letter (uppercase) codes assigned by the +National Geospatial-Intelligence Agency. -=item country_code2code( CODE, CODESET, CODESET ) +This code set is identified with the symbol C. -This function takes a country code from one code set, -and returns the corresponding code from another code set. +=item B - $alpha2 = country_code2code('fin', - LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_2); - # $alpha2 will now be 'fi' +The IANA is responsible for assigning two-letter (uppercase) top-level +domain names to each country. -If the code passed is not a valid country code in -the first code set, or if there isn't a code for the -corresponding country in the second code set, -then C will be returned. +This code set is identified with the symbol C. =back - -=head1 QUERY ROUTINES - -There are two function which can be used to obtain a list of all codes, -or all country names: +=head1 ROUTINES =over 4 -=item C - -Returns a list of all two-letter country codes. -The codes are guaranteed to be all lower-case, -and not in any particular order. - -=item C - -Returns a list of all country names for which there is a corresponding -country code in the specified code set. -The names are capitalised, and not returned in any particular order. - -Not all countries have alpha-3 and numeric codes - -some just have an alpha-2 code, -so you'll get a different number of countries -depending on which code set you specify. - -=back +=item B +=item B -=head1 SEMI-PRIVATE ROUTINES +=item B -Locale::Country provides two semi-private routines for modifying -the internal data. -Given their status, they aren't exported by default, -and so need to be called by prefixing the function name with the -package name. +=item B -=head2 alias_code +=item B -Define a new code as an alias for an existing code: +=item B - Locale::Country::alias_code( ALIAS => CODE [, CODESET ] ) +=item B -This feature was added as a mechanism for handling -a "uk" code. The ISO standard says that the two-letter code for -"United Kingdom" is "gb", whereas domain names are all .uk. +=item B -By default the module does not understand "uk", since it is implementing -an ISO standard. If you would like 'uk' to work as the two-letter -code for United Kingdom, use the following: +=item B - Locale::Country::alias_code('uk' => 'gb'); +=item B -With this code, both "uk" and "gb" are valid codes for United Kingdom, -with the reverse lookup returning "uk" rather than the usual "gb". +=item B -B this function was previously called _alias_code, -but the leading underscore has been dropped. -The old name will be supported for all 2.X releases for -backwards compatibility. +=item B -=head2 rename_country +=item B -If the official country name just isn't good enough for you, -you can rename a country. For example, the official country -name for code 'gb' is 'United Kingdom'. -If you want to change that, you might call: +These routines are all documented in the Locale::Codes man page. - Locale::Country::rename_country('gb' => 'Great Britain'); +=item B -This means that calling code2country('gb') will now return -'Great Britain' instead of 'United Kingdom'. -The original country name is retained as an alias, -so for the above example, country2code('United Kingdom') -will still return 'gb'. +Version 2.07 included 2 functions for modifying the internal data: +rename_country and alias_code. Both of these could be used only to +modify the internal data for country codes. +As of 3.10, the internal data for all types of codes can be modified. -=head1 EXAMPLES +The alias_code function is preserved for backwards compatibility, but +the following two are identical: -The following example illustrates use of the C function. -The user is prompted for a country code, and then told the corresponding -country name: + alias_code(ALIAS,CODE [,CODESET]); + rename_country_code(CODE,ALIAS [,CODESET]); - $| = 1; # turn off buffering - - print "Enter country code: "; - chop($code = ); - $country = code2country($code, LOCALE_CODE_ALPHA_2); - if (defined $country) - { - print "$code = $country\n"; - } - else - { - print "'$code' is not a valid country code!\n"; - } +and the latter should be used for consistency. -=head1 DOMAIN NAMES +The alias_code function is deprecated (though there is no currently no +plan to remove it). -Most top-level domain names are based on these codes, -but there are certain codes which aren't. -If you are using this module to identify country from hostname, -your best bet is to preprocess the country code. +B this function was previously called _alias_code, but the +leading underscore has been dropped. The old name was supported for +all 2.X releases, but has been dropped as of 3.00. -For example, B, B, B and friends would map to B; -B would map to B. Any others? +=back -=head1 KNOWN BUGS AND LIMITATIONS +=head1 SEE ALSO =over 4 -=item * - -When using C, the country name must currently appear -exactly as it does in the source of the module. The module now supports -a small number of variants. - -Possible extensions to this are: an interface for getting at the -list of variant names, and regular expression matches. - -=item * +=item B -In the current implementation, all data is read in when the -module is loaded, and then held in memory. -A lazy implementation would be more memory friendly. +=item B -=item * +=item B -Support for country names in different languages. +ISO codes for country sub-divisions (states, counties, provinces, +etc), as defined in ISO 3166-2. This module is not part of the +Locale-Codes distribution, but is available from CPAN in +CPAN/modules/by-module/Locale/ -=back - -=head1 SEE ALSO - -=over 4 - -=item Locale::Language +=item B -ISO two letter codes for identification of language (ISO 639). +Official home page for the ISO 3166 maintenance agency. -=item Locale::Script +Unfortunately, they do not make the actual ISO available for free, +so I cannot check the alpha-3 and numerical codes here. -ISO codes for identification of scripts (ISO 15924). +=item B -=item Locale::Currency +The source of ISO 3166-1 two-letter codes used by this +module. -ISO three letter codes for identification of currencies -and funds (ISO 4217). +=item B -=item Locale::SubCountry +The source of the official ISO 3166-1 three-letter codes and +three-digit codes. -ISO codes for country sub-divisions (states, counties, provinces, etc), -as defined in ISO 3166-2. -This module is not part of the Locale-Codes distribution, -but is available from CPAN in CPAN/modules/by-module/Locale/ +For some reason, this table is incomplete! Several countries are +missing from it, and I cannot find them anywhere on the UN site. I +get as much of the data from here as I can. -=item ISO 3166-1 +=item B -The ISO standard which defines these codes. +The official list of the FIPS 10 codes. -=item http://www.iso.org/iso/en/prods-services/iso3166ma/index.html +=item B -Official home page for the ISO 3166 maintenance agency. +Official source of the top-level domain names. -=item http://www.egt.ie/standards/iso3166/iso3166-1-en.html +=item B -Another useful, but not official, home page. +Although not the official source of any of the data, the World +Factbook maintained by the CIA is a great source of the data, +especially since I can't get the official data from the ISO. Since +it's maintained by the CIA, and since it's updated every two weeks, I +use this as the source for some missing data. -=item http://www.cia.gov/cia/publications/factbook/docs/app-d-1.html +=item B -An appendix in the CIA world fact book which lists country codes -as defined by ISO 3166, FIPS 10-4, and internet domain names. +Another unofficial source of data. Currently, it is not used to get +data, but the notes and explanatory material were very useful for +understanding discrepancies between the sources. =back - =head1 AUTHOR -Neil Bowers Eneil@bowers.comE +See Locale::Codes for full author history. -=head1 COPYRIGHT +Currently maintained by Sullivan Beck (sbeck@cpan.org). -Copyright (C) 2002-2004, Neil Bowers. +=head1 COPYRIGHT -Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 2001-2010 Neil Bowers + Copyright (c) 2010-2010 Sullivan Beck This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut - diff --git a/cpan/Locale-Codes/lib/Locale/Currency.pm b/cpan/Locale-Codes/lib/Locale/Currency.pm index 13cd048..fd32f2b 100644 --- a/cpan/Locale-Codes/lib/Locale/Currency.pm +++ b/cpan/Locale-Codes/lib/Locale/Currency.pm @@ -1,356 +1,284 @@ -# -# Locale::Currency - ISO three letter codes for currency identification -# (ISO 4217) -# -# $Id: Currency.pm,v 2.7 2004/06/10 21:19:34 neilb Exp $ -# - package Locale::Currency; +# Copyright (C) 2001 Canon Research Centre Europe (CRE). +# Copyright (C) 2002-2009 Neil Bowers +# Copyright (c) 2010-2010 Sullivan Beck +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + use strict; +use warnings; require 5.002; require Exporter; +use Carp; +use Locale::Codes; +use Locale::Constants; +use Locale::Codes::Currency; -#----------------------------------------------------------------------- -# Public Global Variables -#----------------------------------------------------------------------- -use vars qw($VERSION @ISA @EXPORT); -$VERSION = sprintf("%d.%02d", q$Revision: 2.7 $ =~ /(\d+)\.(\d+)/); -@ISA = qw(Exporter); -@EXPORT = qw(&code2currency ¤cy2code - &all_currency_codes &all_currency_names ); +#======================================================================= +# Public Global Variables +#======================================================================= -#----------------------------------------------------------------------- -# Private Global Variables -#----------------------------------------------------------------------- -my %CODES = (); -my %CURRENCIES = (); +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); + +$VERSION='3.12'; +@ISA = qw(Exporter); +@EXPORT = qw(code2currency + currency2code + all_currency_codes + all_currency_names + currency_code2code + LOCALE_CURR_ALPHA + LOCALE_CURR_NUMERIC + ); + +sub _code { + my($code,$codeset) = @_; + $code = "" if (! $code); + + $codeset = LOCALE_CURR_DEFAULT if (! defined($codeset) || $codeset eq ""); + + if ($codeset =~ /^\d+$/) { + if ($codeset == LOCALE_CURR_ALPHA) { + $codeset = "alpha"; + } elsif ($codeset == LOCALE_CURR_NUMERIC) { + $codeset = "num"; + } else { + return (1); + } + } + + if ($codeset eq "alpha") { + $code = uc($code); + } elsif ($codeset eq "num") { + if (defined($code) && $code ne "") { + return (1) unless ($code =~ /^\d+$/); + $code = sprintf("%.3d", $code); + } + } else { + return (1); + } + + return (0,$code,$codeset); +} +#======================================================================= +# +# code2currency ( CODE [,CODESET] ) +# +#======================================================================= + +sub code2currency { + my($err,$code,$codeset) = _code(@_); + return undef if ($err || + ! defined $code); + + return Locale::Codes::_code2name("currency",$code,$codeset); +} #======================================================================= # -# code2currency( CODE ) +# currency2code ( CURRENCY [,CODESET] ) # #======================================================================= -sub code2currency -{ - my $code = shift; - - - return undef unless defined $code; - $code = lc($code); - if (exists $CODES{$code}) - { - return $CODES{$code}; - } - else - { - #--------------------------------------------------------------- - # no such currency code! - #--------------------------------------------------------------- - return undef; - } + +sub currency2code { + my($currency,$codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err || + ! defined $currency); + + return Locale::Codes::_name2code("currency",$currency,$codeset); } +#======================================================================= +# +# currency_code2code ( CODE,CODESET_IN,CODESET_OUT ) +# +#======================================================================= + +sub currency_code2code { + (@_ == 3) or croak "currency_code2code() takes 3 arguments!"; + my($code,$inset,$outset) = @_; + my($err,$tmp); + ($err,$code,$inset) = _code($code,$inset); + return undef if ($err); + ($err,$tmp,$outset) = _code("",$outset); + return undef if ($err); + + return Locale::Codes::_code2code("currency",$code,$inset,$outset); +} #======================================================================= # -# currency2code ( CURRENCY ) +# all_currency_codes ( [CODESET] ) # #======================================================================= -sub currency2code -{ - my $curr = shift; - - - return undef unless defined $curr; - $curr = lc($curr); - if (exists $CURRENCIES{$curr}) - { - return $CURRENCIES{$curr}; - } - else - { - #--------------------------------------------------------------- - # no such currency! - #--------------------------------------------------------------- - return undef; - } + +sub all_currency_codes { + my($codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err); + + return Locale::Codes::_all_codes("currency",$codeset); } #======================================================================= # -# all_currency_codes() +# all_currency_names ( [CODESET] ) # #======================================================================= -sub all_currency_codes -{ - return keys %CODES; + +sub all_currency_names { + my($codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err); + + return Locale::Codes::_all_names("currency",$codeset); } +#======================================================================= +# +# rename_currency ( CODE,NAME [,CODESET] ) +# +#======================================================================= + +sub rename_currency { + my($code,$new_name,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_rename("currency",$code,$new_name,$codeset,$nowarn); +} #======================================================================= # -# all_currency_names() +# add_currency ( CODE,NAME [,CODESET] ) # #======================================================================= -sub all_currency_names -{ - return values %CODES; + +sub add_currency { + my($code,$name,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_add_code("currency",$code,$name,$codeset,$nowarn); } +#======================================================================= +# +# delete_currency ( CODE [,CODESET] ) +# +#======================================================================= + +sub delete_currency { + my($code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_delete_code("currency",$code,$codeset,$nowarn); +} #======================================================================= -# initialisation code - stuff the DATA into the CODES hash +# +# add_currency_alias ( NAME,NEW_NAME ) +# #======================================================================= -{ - my $code; - my $currency; - local $_; - - - while () - { - next unless /\S/; - chop; - ($code, $currency) = split(/:/, $_, 2); - $CODES{$code} = $currency; - $CURRENCIES{"\L$currency"} = $code; - } - - close(DATA); + +sub add_currency_alias { + my($name,$new_name,$nowarn) = @_; + $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0); + + return Locale::Codes::_add_alias("currency",$name,$new_name,$nowarn); } -1; +#======================================================================= +# +# delete_currency_alias ( NAME ) +# +#======================================================================= + +sub delete_currency_alias { + my($name,$nowarn) = @_; + $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0); + + return Locale::Codes::_delete_alias("currency",$name,$nowarn); +} + +#======================================================================= +# +# rename_currency_code ( CODE,NEW_CODE [,CODESET] ) +# +#======================================================================= -__DATA__ -adp:Andorran Peseta -aed:UAE Dirham -afa:Afghani -all:Lek -amd:Armenian Dram -ang:Netherlands Antillean Guilder -aoa:Kwanza -aon:New Kwanza -aor:Kwanza Reajustado -ars:Argentine Peso -ats:Schilling -aud:Australian Dollar -awg:Aruban Guilder -azm:Azerbaijanian Manat - -bam:Convertible Marks -bbd:Barbados Dollar -bdt:Taka -bef:Belgian Franc -bgl:Lev -bgn:Bulgarian Lev -bhd:Bahraini Dinar -bhd:Dinar -bif:Burundi Franc -bmd:Bermudian Dollar -bnd:Brunei Dollar -bob:Boliviano -bov:MVDol -brl:Brazilian Real -bsd:Bahamian Dollar -btn:Ngultrum -bwp:Pula -byb:Belarussian Ruble -byr:Belarussian Ruble -bzd:Belize Dollar - -cad:Canadian Dollar -cdf:Franc Congolais -chf:Swiss Franc -clf:Unidades de Formento -clp:Chilean Peso -cny:Yuan Renminbi -cop:Colombian Peso -crc:Costa Rican Colon -cup:Cuban Peso -cve:Cape Verde Escudo -cyp:Cyprus Pound -czk:Czech Koruna - -dem:German Mark -djf:Djibouti Franc -dkk:Danish Krone -dop:Dominican Peso -dzd:Algerian Dinar - -ecs:Sucre -ecv:Unidad de Valor Constante (UVC) -eek:Kroon -egp:Egyptian Pound -ern:Nakfa -esp:Spanish Peseta -etb:Ethiopian Birr -eur:Euro - -fim:Markka -fjd:Fiji Dollar -fkp:Falkland Islands Pound -frf:French Franc - -gbp:Pound Sterling -gel:Lari -ghc:Cedi -gip:Gibraltar Pound -gmd:Dalasi -gnf:Guinea Franc -grd:Drachma -gtq:Quetzal -gwp:Guinea-Bissau Peso -gyd:Guyana Dollar - -hkd:Hong Kong Dollar -hnl:Lempira -hrk:Kuna -htg:Gourde -huf:Forint - -idr:Rupiah -iep:Irish Pound -ils:Shekel -inr:Indian Rupee -iqd:Iraqi Dinar -irr:Iranian Rial -isk:Iceland Krona -itl:Italian Lira - -jmd:Jamaican Dollar -jod:Jordanian Dinar -jpy:Yen - -kes:Kenyan Shilling -kgs:Som -khr:Riel -kmf:Comoro Franc -kpw:North Korean Won -krw:Won -kwd:Kuwaiti Dinar -kyd:Cayman Islands Dollar -kzt:Tenge - -lak:Kip -lbp:Lebanese Pound -lkr:Sri Lanka Rupee -lrd:Liberian Dollar -lsl:Loti -ltl:Lithuanian Litas -luf:Luxembourg Franc -lvl:Latvian Lats -lyd:Libyan Dinar - -mad:Moroccan Dirham -mdl:Moldovan Leu -mgf:Malagasy Franc -mkd:Denar -mmk:Kyat -mnt:Tugrik -mop:Pataca -mro:Ouguiya -mtl:Maltese Lira -mur:Mauritius Rupee -mvr:Rufiyaa -mwk:Kwacha -mxn:Mexican Nuevo Peso -myr:Malaysian Ringgit -mzm:Metical - -nad:Namibia Dollar -ngn:Naira -nio:Cordoba Oro -nlg:Netherlands Guilder -nok:Norwegian Krone -npr:Nepalese Rupee -nzd:New Zealand Dollar - -omr:Rial Omani - -pab:Balboa -pen:Nuevo Sol -pgk:Kina -php:Philippine Peso -pkr:Pakistan Rupee -pln:Zloty -pte:Portuguese Escudo -pyg:Guarani - -qar:Qatari Rial - -rol:Leu -rub:Russian Ruble -rur:Russian Ruble -rwf:Rwanda Franc - -sar:Saudi Riyal -sbd:Solomon Islands Dollar -scr:Seychelles Rupee -sdd:Sudanese Dinar -sek:Swedish Krona -sgd:Singapore Dollar -shp:St. Helena Pound -sit:Tolar -skk:Slovak Koruna -sll:Leone -sos:Somali Shilling -srg:Surinam Guilder -std:Dobra -svc:El Salvador Colon -syp:Syrian Pound -szl:Lilangeni - -thb:Baht -tjr:Tajik Ruble -tmm:Manat -tnd:Tunisian Dollar -top:Pa'anga -tpe:Timor Escudo -trl:Turkish Lira -ttd:Trinidad and Tobago Dollar -twd:New Taiwan Dollar -tzs:Tanzanian Shilling - -uah:Hryvnia -uak:Karbovanets -ugx:Uganda Shilling -usd:US Dollar -usn:US Dollar (Next day) -uss:US Dollar (Same day) -uyu:Peso Uruguayo -uzs:Uzbekistan Sum - -veb:Bolivar -vnd:Dong -vuv:Vatu - -wst:Tala - -xaf:CFA Franc BEAC -xag:Silver -xau:Gold -xba:European Composite Unit -xbb:European Monetary Unit -xbc:European Unit of Account 9 -xb5:European Unit of Account 17 -xcd:East Caribbean Dollar -xdr:SDR -xeu:ECU (until 1998-12-31) -xfu:UIC-Franc -xfo:Gold-Franc -xof:CFA Franc BCEAO -xpd:Palladium -xpf:CFP Franc -xpt:Platinum - -yer:Yemeni Rial -yum:New Dinar - -zal:Financial Rand -zar:Rand -zmk:Kwacha -zrn:New Zaire -zwd:Zimbabwe Dollar +sub rename_currency_code { + my($code,$new_code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + ($err,$new_code,$codeset) = _code($new_code,$codeset) if (! $err); + + return Locale::Codes::_rename_code("currency",$code,$new_code,$codeset,$nowarn); +} + +#======================================================================= +# +# add_currency_code_alias ( CODE,NEW_CODE [,CODESET] ) +# +#======================================================================= + +sub add_currency_code_alias { + my($code,$new_code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + ($err,$new_code,$codeset) = _code($new_code,$codeset) if (! $err); + + return Locale::Codes::_add_code_alias("currency",$code,$new_code,$codeset,$nowarn); +} + +#======================================================================= +# +# delete_currency_code_alias ( CODE [,CODESET] ) +# +#======================================================================= + +sub delete_currency_code_alias { + my($code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_delete_code_alias("currency",$code,$codeset,$nowarn); +} + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/lib/Locale/Currency.pod b/cpan/Locale-Codes/lib/Locale/Currency.pod index dce3261..1df4280 100644 --- a/cpan/Locale-Codes/lib/Locale/Currency.pod +++ b/cpan/Locale-Codes/lib/Locale/Currency.pod @@ -1,7 +1,8 @@ +=pod =head1 NAME -Locale::Currency - ISO three letter codes for currency identification (ISO 4217) +Locale::Currency - standard codes for currency identification =head1 SYNOPSIS @@ -16,135 +17,72 @@ Locale::Currency - ISO three letter codes for currency identification (ISO 4217) =head1 DESCRIPTION -The C module provides access to the ISO three-letter -codes for identifying currencies and funds, as defined in ISO 4217. -You can either access the codes via the L -(described below), -or with the two functions which return lists of all currency codes or -all currency names. +The C module provides access to standard codes used +for identifying currencies and funds, such as those defined in ISO 4217. -There are two special codes defined by the standard which aren't -understood by this module: +Most of the routines take an optional additional argument which +specifies the code set to use. If not specified, the default ISO +4217 three-letter codes will be used. -=over 4 - -=item XTS - -Specifically reserved for testing purposes. - -=item XXX - -For transactions where no currency is involved. - -=back +=head1 SUPPORTED CODE SETS - -=head1 CONVERSION ROUTINES - -There are two conversion routines: C and C. +There are several different code sets you can use for identifying +currencies. The ones currently supported are: =over 4 -=item code2currency() +=item B -This function takes a three letter currency code and returns a string -which contains the name of the currency identified. If the code is -not a valid currency code, as defined by ISO 4217, then C -will be returned. +This is a set of three-letter (uppercase) codes from ISO 4217 such +as EUR for Euro. - $curr = code2currency($code); +Two of the codes specified by the standard (XTS which is reserved +for testing purposes and XXX which is for transactions where no +currency is involved) are omitted. -=item currency2code() +This code set is identified with the symbol C. -This function takes a currency name and returns the corresponding -three letter currency code, if such exists. -If the argument could not be identified as a currency name, -then C will be returned. +This is the default code set. - $code = currency2code('French Franc'); +=item B -The case of the currency name is not important. -See the section L below. - -=back +This is the set of three-digit numeric codes from ISO 4217. +This code set is identified with the symbol C. -=head1 QUERY ROUTINES +=back -There are two function which can be used to obtain a list of all -currency codes, or all currency names: +=head1 ROUTINES =over 4 -=item C +=item B -Returns a list of all three-letter currency codes. -The codes are guaranteed to be all lower-case, -and not in any particular order. +=item B -=item C +=item B -Returns a list of all currency names for which there is a corresponding -three-letter currency code. The names are capitalised, and not returned -in any particular order. +=item B -=back +=item B +=item B -=head1 EXAMPLES +=item B -The following example illustrates use of the C function. -The user is prompted for a currency code, and then told the corresponding -currency name: +=item B - $| = 1; # turn off buffering +=item B - print "Enter currency code: "; - chop($code = ); - $curr = code2currency($code); - if (defined $curr) - { - print "$code = $curr\n"; - } - else - { - print "'$code' is not a valid currency code!\n"; - } +=item B -=head1 KNOWN BUGS AND LIMITATIONS +=item B -=over 4 +=item B -=item * +=item B -In the current implementation, all data is read in when the -module is loaded, and then held in memory. -A lazy implementation would be more memory friendly. - -=item * - -This module also includes the special codes which are -not for a currency, such as Gold, Platinum, etc. -This might cause a problem if you're using this module -to display a list of currencies. -Let Neil know if this does cause a problem, and we can -do something about it. - -=item * - -ISO 4217 also defines a numeric code for each currency. -Currency codes are not currently supported by this module, -in the same way Locale::Country supports multiple codesets. - -=item * - -There are three cases where there is more than one -code for the same currency name. -Kwacha has two codes: mwk for Malawi, and zmk for Zambia. -The Russian Ruble has two codes: rub and rur. -The Belarussian Ruble has two codes: byr and byb. -The currency2code() function only returns one code, so -you might not get back the code you expected. +These routines are all documented in the Locale::Codes man page. =back @@ -152,40 +90,30 @@ you might not get back the code you expected. =over 4 -=item Locale::Country - -ISO codes for identification of country (ISO 3166). +=item B -=item Locale::Script +=item B -ISO codes for identification of written scripts (ISO 15924). +=item B -=item ISO 4217:1995 - -Code for the representation of currencies and funds. - -=item http://www.bsi-global.com/iso4217currency - -Official web page for the ISO 4217 maintenance agency. -This has the latest list of codes, in MS Word format. Boo. +The ISO 4217 data. =back =head1 AUTHOR -Michael Hennecke Ehennecke@rz.uni-karlsruhe.deE -and -Neil Bowers Eneil@bowers.comE +See Locale::Codes for full author history. -=head1 COPYRIGHT +Currently maintained by Sullivan Beck (sbeck@cpan.org). -Copyright (C) 2002-2004, Neil Bowers. +=head1 COPYRIGHT -Copyright (c) 2001 Michael Hennecke and -Canon Research Centre Europe (CRE). + Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 2001 Michael Hennecke + Copyright (c) 2001-2010 Neil Bowers + Copyright (c) 2010-2010 Sullivan Beck This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut - diff --git a/cpan/Locale-Codes/lib/Locale/Language.pm b/cpan/Locale-Codes/lib/Locale/Language.pm index e8454c3..5920eee 100644 --- a/cpan/Locale-Codes/lib/Locale/Language.pm +++ b/cpan/Locale-Codes/lib/Locale/Language.pm @@ -1,315 +1,284 @@ -# -# Locale::Language - ISO two letter codes for language identification (ISO 639) -# -# $Id: Language.pm,v 2.7 2004/06/10 21:19:34 neilb Exp $ -# - package Locale::Language; +# Copyright (C) 2001 Canon Research Centre Europe (CRE). +# Copyright (C) 2002-2009 Neil Bowers +# Copyright (c) 2010-2010 Sullivan Beck +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + use strict; +use warnings; require 5.002; require Exporter; +use Carp; +use Locale::Codes; +use Locale::Constants; +use Locale::Codes::Language; -#----------------------------------------------------------------------- -# Public Global Variables -#----------------------------------------------------------------------- -use vars qw($VERSION @ISA @EXPORT); -$VERSION = sprintf("%d.%02d", q$Revision: 2.7 $ =~ /(\d+)\.(\d+)/); -@ISA = qw(Exporter); -@EXPORT = qw(&code2language &language2code - &all_language_codes &all_language_names ); +#======================================================================= +# Public Global Variables +#======================================================================= -#----------------------------------------------------------------------- -# Private Global Variables -#----------------------------------------------------------------------- -my %CODES = (); -my %LANGUAGES = (); +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); + +$VERSION='3.12'; +@ISA = qw(Exporter); +@EXPORT = qw(code2language + language2code + all_language_codes + all_language_names + language_code2code + LOCALE_LANG_ALPHA_2 + LOCALE_LANG_ALPHA_3 + LOCALE_LANG_TERM + ); + +sub _code { + my($code,$codeset) = @_; + $code = "" if (! $code); + + $codeset = LOCALE_LANG_DEFAULT if (! defined($codeset) || $codeset eq ""); + + if ($codeset =~ /^\d+$/) { + if ($codeset == LOCALE_LANG_ALPHA_2) { + $codeset = "alpha2"; + } elsif ($codeset == LOCALE_LANG_ALPHA_3) { + $codeset = "alpha3"; + } elsif ($codeset == LOCALE_LANG_TERM) { + $codeset = "term"; + } else { + return (1); + } + } + + if ($codeset eq "alpha2" || + $codeset eq "alpha3" || + $codeset eq "term") { + $code = lc($code); + } else { + return (1); + } + + return (0,$code,$codeset); +} +#======================================================================= +# +# code2language ( CODE [,CODESET] ) +# +#======================================================================= + +sub code2language { + my($err,$code,$codeset) = _code(@_); + return undef if ($err || + ! defined $code); + + return Locale::Codes::_code2name("language",$code,$codeset); +} #======================================================================= # -# code2language ( CODE ) +# language2code ( LANGUAGE [,CODESET] ) # #======================================================================= -sub code2language -{ - my $code = shift; - - - return undef unless defined $code; - $code = lc($code); - if (exists $CODES{$code}) - { - return $CODES{$code}; - } - else - { - #--------------------------------------------------------------- - # no such language code! - #--------------------------------------------------------------- - return undef; - } + +sub language2code { + my($language,$codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err || + ! defined $language); + + return Locale::Codes::_name2code("language",$language,$codeset); } +#======================================================================= +# +# language_code2code ( CODE,CODESET_IN,CODESET_OUT ) +# +#======================================================================= + +sub language_code2code { + (@_ == 3) or croak "language_code2code() takes 3 arguments!"; + my($code,$inset,$outset) = @_; + my($err,$tmp); + ($err,$code,$inset) = _code($code,$inset); + return undef if ($err); + ($err,$tmp,$outset) = _code("",$outset); + return undef if ($err); + + return Locale::Codes::_code2code("language",$code,$inset,$outset); +} #======================================================================= # -# language2code ( LANGUAGE ) +# all_language_codes ( [CODESET] ) # #======================================================================= -sub language2code -{ - my $lang = shift; - - - return undef unless defined $lang; - $lang = lc($lang); - if (exists $LANGUAGES{$lang}) - { - return $LANGUAGES{$lang}; - } - else - { - #--------------------------------------------------------------- - # no such language! - #--------------------------------------------------------------- - return undef; - } + +sub all_language_codes { + my($codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err); + + return Locale::Codes::_all_codes("language",$codeset); } #======================================================================= # -# all_language_codes() +# all_language_names ( [CODESET] ) # #======================================================================= -sub all_language_codes -{ - return keys %CODES; + +sub all_language_names { + my($codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err); + + return Locale::Codes::_all_names("language",$codeset); } +#======================================================================= +# +# rename_language ( CODE,NAME [,CODESET] ) +# +#======================================================================= + +sub rename_language { + my($code,$new_name,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_rename("language",$code,$new_name,$codeset,$nowarn); +} #======================================================================= # -# all_language_names() +# add_language ( CODE,NAME [,CODESET] ) # #======================================================================= -sub all_language_names -{ - return values %CODES; + +sub add_language { + my($code,$name,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_add_code("language",$code,$name,$codeset,$nowarn); } +#======================================================================= +# +# delete_language ( CODE [,CODESET] ) +# +#======================================================================= + +sub delete_language { + my($code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_delete_code("language",$code,$codeset,$nowarn); +} #======================================================================= -# initialisation code - stuff the DATA into the CODES hash +# +# add_language_alias ( NAME,NEW_NAME ) +# #======================================================================= -{ - my $code; - my $language; - local $_; - - - while () - { - next unless /\S/; - chop; - ($code, $language) = split(/:/, $_, 2); - $CODES{$code} = $language; - $LANGUAGES{"\L$language"} = $code; - } - - close(DATA); + +sub add_language_alias { + my($name,$new_name,$nowarn) = @_; + $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0); + + return Locale::Codes::_add_alias("language",$name,$new_name,$nowarn); } -1; +#======================================================================= +# +# delete_language_alias ( NAME ) +# +#======================================================================= + +sub delete_language_alias { + my($name,$nowarn) = @_; + $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0); + + return Locale::Codes::_delete_alias("language",$name,$nowarn); +} + +#======================================================================= +# +# rename_language_code ( CODE,NEW_CODE [,CODESET] ) +# +#======================================================================= -__DATA__ -aa:Afar -ab:Abkhazian -ae:Avestan -af:Afrikaans -am:Amharic -ar:Arabic -as:Assamese -ay:Aymara -az:Azerbaijani - -ba:Bashkir -be:Belarusian -bg:Bulgarian -bh:Bihari -bi:Bislama -bn:Bengali -bo:Tibetan -br:Breton -bs:Bosnian - -ca:Catalan -ce:Chechen -ch:Chamorro -co:Corsican -cs:Czech -cu:Church Slavic -cv:Chuvash -cy:Welsh - -da:Danish -de:German -dz:Dzongkha - -el:Greek -en:English -eo:Esperanto -es:Spanish -et:Estonian -eu:Basque - -fa:Persian -fi:Finnish -fj:Fijian -fo:Faeroese -fr:French -fy:Frisian - -ga:Irish -gd:Gaelic (Scots) -gl:Gallegan -gn:Guarani -gu:Gujarati -gv:Manx - -ha:Hausa -he:Hebrew -hi:Hindi -ho:Hiri Motu -hr:Croatian -hu:Hungarian -hy:Armenian -hz:Herero - -ia:Interlingua -id:Indonesian -ie:Interlingue -ik:Inupiaq -is:Icelandic -it:Italian -iu:Inuktitut - -ja:Japanese -jw:Javanese - -ka:Georgian -ki:Kikuyu -kj:Kuanyama -kk:Kazakh -kl:Kalaallisut -km:Khmer -kn:Kannada -ko:Korean -ks:Kashmiri -ku:Kurdish -kv:Komi -kw:Cornish -ky:Kirghiz - -la:Latin -lb:Letzeburgesch -ln:Lingala -lo:Lao -lt:Lithuanian -lv:Latvian - -mg:Malagasy -mh:Marshall -mi:Maori -mk:Macedonian -ml:Malayalam -mn:Mongolian -mo:Moldavian -mr:Marathi -ms:Malay -mt:Maltese -my:Burmese - -na:Nauru -nb:Norwegian Bokmal -nd:Ndebele, North -ne:Nepali -ng:Ndonga -nl:Dutch -nn:Norwegian Nynorsk -no:Norwegian -nr:Ndebele, South -nv:Navajo -ny:Chichewa; Nyanja - -oc:Occitan (post 1500) -om:Oromo -or:Oriya -os:Ossetian; Ossetic - -pa:Panjabi -pi:Pali -pl:Polish -ps:Pushto -pt:Portuguese - -qu:Quechua - -rm:Rhaeto-Romance -rn:Rundi -ro:Romanian -ru:Russian -rw:Kinyarwanda - -sa:Sanskrit -sc:Sardinian -sd:Sindhi -se:Sami -sg:Sango -si:Sinhalese -sk:Slovak -sl:Slovenian -sm:Samoan -sn:Shona -so:Somali -sq:Albanian -sr:Serbian -ss:Swati -st:Sotho -su:Sundanese -sv:Swedish -sw:Swahili - -ta:Tamil -te:Telugu -tg:Tajik -th:Thai -ti:Tigrinya -tk:Turkmen -tl:Tagalog -tn:Tswana -to:Tonga -tr:Turkish -ts:Tsonga -tt:Tatar -tw:Twi - -ug:Uighur -uk:Ukrainian -ur:Urdu -uz:Uzbek - -vi:Vietnamese -vo:Volapuk - -wo:Wolof - -xh:Xhosa - -yi:Yiddish -yo:Yoruba - -za:Zhuang -zh:Chinese -zu:Zulu +sub rename_language_code { + my($code,$new_code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + ($err,$new_code,$codeset) = _code($new_code,$codeset) if (! $err); + + return Locale::Codes::_rename_code("language",$code,$new_code,$codeset,$nowarn); +} + +#======================================================================= +# +# add_language_code_alias ( CODE,NEW_CODE [,CODESET] ) +# +#======================================================================= + +sub add_language_code_alias { + my($code,$new_code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + ($err,$new_code,$codeset) = _code($new_code,$codeset) if (! $err); + + return Locale::Codes::_add_code_alias("language",$code,$new_code,$codeset,$nowarn); +} + +#======================================================================= +# +# delete_language_code_alias ( CODE [,CODESET] ) +# +#======================================================================= + +sub delete_language_code_alias { + my($code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_delete_code_alias("language",$code,$codeset,$nowarn); +} + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/lib/Locale/Language.pod b/cpan/Locale-Codes/lib/Locale/Language.pod index ce7b378..fb8df77 100644 --- a/cpan/Locale-Codes/lib/Locale/Language.pod +++ b/cpan/Locale-Codes/lib/Locale/Language.pod @@ -1,115 +1,91 @@ +=pod =head1 NAME -Locale::Language - ISO two letter codes for language identification (ISO 639) +Locale::Language - standard codes for language identification =head1 SYNOPSIS - use Locale::Language; - - $lang = code2language('en'); # $lang gets 'English' - $code = language2code('French'); # $code gets 'fr' - - @codes = all_language_codes(); - @names = all_language_names(); + use Locale::Language; + $lang = code2language('en'); # $lang gets 'English' + $code = language2code('French'); # $code gets 'fr' + + @codes = all_language_codes(); + @names = all_language_names(); =head1 DESCRIPTION -The C module provides access to the ISO two-letter -codes for identifying languages, as defined in ISO 639. You can either -access the codes via the L (described below), -or via the two functions which return lists of all language codes or -all language names. +The C module provides access to standard codes used +for identifying languages, such as those as defined in ISO 639. +Most of the routines take an optional additional argument which +specifies the code set to use. If not specified, the default ISO +639 two-letter codes will be used. -=head1 CONVERSION ROUTINES +=head1 SUPPORTED CODE SETS -There are two conversion routines: C and C. +There are several different code sets you can use for identifying +languages. The ones currently supported are: =over 4 -=item code2language() +=item B -This function takes a two letter language code and returns a string -which contains the name of the language identified. If the code is -not a valid language code, as defined by ISO 639, then C -will be returned. +This is the set of two-letter (lowercase) codes from ISO 639, such +as 'he' for Hebrew. - $lang = code2language($code); +This code set is identified with the symbol C. -=item language2code() +This is the default code set. -This function takes a language name and returns the corresponding -two letter language code, if such exists. -If the argument could not be identified as a language name, -then C will be returned. +=item B - $code = language2code('French'); +This is the set of three-letter (lowercase) bibliographic codes from +ISO 639, such as 'heb' for Hebrew. -The case of the language name is not important. -See the section L below. +This code set is identified with the symbol C. -=back +=item B +This is the set of three-letter (lowercase) terminologic codes from +ISO 639. -=head1 QUERY ROUTINES +This code set is identified with the symbol C. -There are two function which can be used to obtain a list of all -language codes, or all language names: +=back + +=head1 ROUTINES =over 4 -=item C +=item B -Returns a list of all two-letter language codes. -The codes are guaranteed to be all lower-case, -and not in any particular order. +=item B -=item C +=item B -Returns a list of all language names for which there is a corresponding -two-letter language code. The names are capitalised, and not returned -in any particular order. +=item B -=back +=item B +=item B -=head1 EXAMPLES +=item B -The following example illustrates use of the C function. -The user is prompted for a language code, and then told the corresponding -language name: +=item B - $| = 1; # turn off buffering - - print "Enter language code: "; - chop($code = ); - $lang = code2language($code); - if (defined $lang) - { - print "$code = $lang\n"; - } - else - { - print "'$code' is not a valid language code!\n"; - } +=item B -=head1 KNOWN BUGS AND LIMITATIONS +=item B -=over 4 - -=item * +=item B -In the current implementation, all data is read in when the -module is loaded, and then held in memory. -A lazy implementation would be more memory friendly. +=item B -=item * +=item B -Currently just supports the two letter language codes - -there are also three-letter codes, and numbers. -Would these be of any use to anyone? +These routines are all documented in the Locale::Codes man page. =back @@ -117,42 +93,29 @@ Would these be of any use to anyone? =over 4 -=item Locale::Country - -ISO codes for identification of country (ISO 3166). -Supports 2-letter, 3-letter, and numeric country codes. - -=item Locale::Script +=item B -ISO codes for identification of written scripts (ISO 15924). +=item B -=item Locale::Currency +=item B -ISO three letter codes for identification of currencies and funds (ISO 4217). - -=item ISO 639:1988 (E/F) - -Code for the representation of names of languages. - -=item http://lcweb.loc.gov/standards/iso639-2/langhome.html - -Home page for ISO 639-2. +Source of the ISO 639 codes. =back - =head1 AUTHOR -Neil Bowers Eneil@bowers.comE +See Locale::Codes for full author history. -=head1 COPYRIGHT +Currently maintained by Sullivan Beck (sbeck@cpan.org). -Copyright (C) 2002-2004, Neil Bowers. +=head1 COPYRIGHT -Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 2001-2010 Neil Bowers + Copyright (c) 2010-2010 Sullivan Beck This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut - diff --git a/cpan/Locale-Codes/lib/Locale/Script.pm b/cpan/Locale-Codes/lib/Locale/Script.pm index f5fdbab..ab09c3a 100644 --- a/cpan/Locale-Codes/lib/Locale/Script.pm +++ b/cpan/Locale-Codes/lib/Locale/Script.pm @@ -1,294 +1,284 @@ -# -# Locale::Script - ISO codes for script identification (ISO 15924) -# -# $Id: Script.pm,v 2.7 2004/06/10 21:19:34 neilb Exp $ -# - package Locale::Script; +# Copyright (C) 2001 Canon Research Centre Europe (CRE). +# Copyright (C) 2002-2009 Neil Bowers +# Copyright (c) 2010-2010 Sullivan Beck +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + use strict; +use warnings; require 5.002; require Exporter; use Carp; +use Locale::Codes; use Locale::Constants; +use Locale::Codes::Script; +#======================================================================= +# Public Global Variables +#======================================================================= -#----------------------------------------------------------------------- -# Public Global Variables -#----------------------------------------------------------------------- use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); -$VERSION = sprintf("%d.%02d", q$Revision: 2.7 $ =~ /(\d+)\.(\d+)/); + +$VERSION='3.12'; @ISA = qw(Exporter); -@EXPORT = qw(code2script script2code - all_script_codes all_script_names - script_code2code - LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_3 LOCALE_CODE_NUMERIC); +@EXPORT = qw(code2script + script2code + all_script_codes + all_script_names + script_code2code + LOCALE_SCRIPT_ALPHA + LOCALE_SCRIPT_NUMERIC + ); + +sub _code { + my($code,$codeset) = @_; + $code = "" if (! $code); + + $codeset = LOCALE_SCRIPT_DEFAULT if (! defined($codeset) || $codeset eq ""); + + if ($codeset =~ /^\d+$/) { + if ($codeset == LOCALE_SCRIPT_ALPHA) { + $codeset = "alpha"; + } elsif ($codeset == LOCALE_SCRIPT_NUMERIC) { + $codeset = "num"; + } else { + return (1); + } + } + + if ($codeset eq "alpha") { + $code = ucfirst(lc($code)); + } elsif ($codeset eq "num") { + if (defined($code) && $code ne "") { + return (1) unless ($code =~ /^\d+$/); + $code = sprintf("%.3d", $code); + } + } else { + return (1); + } + + return (0,$code,$codeset); +} + +#======================================================================= +# +# code2script ( CODE [,CODESET] ) +# +#======================================================================= -#----------------------------------------------------------------------- -# Private Global Variables -#----------------------------------------------------------------------- -my $CODES = []; -my $COUNTRIES = []; +sub code2script { + my($err,$code,$codeset) = _code(@_); + return undef if ($err || + ! defined $code); + return Locale::Codes::_code2name("script",$code,$codeset); +} #======================================================================= # -# code2script ( CODE [, CODESET ] ) +# script2code ( SCRIPT [,CODESET] ) # #======================================================================= -sub code2script -{ - my $code = shift; - my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT; - - - return undef unless defined $code; - - #------------------------------------------------------------------- - # Make sure the code is in the right form before we use it - # to look up the corresponding script. - # We have to sprintf because the codes are given as 3-digits, - # with leading 0's. Eg 070 for Egyptian demotic. - #------------------------------------------------------------------- - if ($codeset == LOCALE_CODE_NUMERIC) - { - return undef if ($code =~ /\D/); - $code = sprintf("%.3d", $code); - } - else - { - $code = lc($code); - } - - if (exists $CODES->[$codeset]->{$code}) - { - return $CODES->[$codeset]->{$code}; - } - else - { - #--------------------------------------------------------------- - # no such script code! - #--------------------------------------------------------------- - return undef; - } + +sub script2code { + my($script,$codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err || + ! defined $script); + + return Locale::Codes::_name2code("script",$script,$codeset); } +#======================================================================= +# +# script_code2code ( CODE,CODESET_IN,CODESET_OUT ) +# +#======================================================================= + +sub script_code2code { + (@_ == 3) or croak "script_code2code() takes 3 arguments!"; + my($code,$inset,$outset) = @_; + my($err,$tmp); + ($err,$code,$inset) = _code($code,$inset); + return undef if ($err); + ($err,$tmp,$outset) = _code("",$outset); + return undef if ($err); + + return Locale::Codes::_code2code("script",$code,$inset,$outset); +} #======================================================================= # -# script2code ( SCRIPT [, CODESET ] ) +# all_script_codes ( [CODESET] ) # #======================================================================= -sub script2code -{ - my $script = shift; - my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT; - - - return undef unless defined $script; - $script = lc($script); - if (exists $COUNTRIES->[$codeset]->{$script}) - { - return $COUNTRIES->[$codeset]->{$script}; - } - else - { - #--------------------------------------------------------------- - # no such script! - #--------------------------------------------------------------- - return undef; - } + +sub all_script_codes { + my($codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err); + + return Locale::Codes::_all_codes("script",$codeset); } #======================================================================= # -# script_code2code ( CODE, IN-CODESET, OUT-CODESET ) +# all_script_names ( [CODESET] ) # #======================================================================= -sub script_code2code -{ - (@_ == 3) or croak "script_code2code() takes 3 arguments!"; - - my $code = shift; - my $inset = shift; - my $outset = shift; - my $outcode; - my $script; - - - return undef if $inset == $outset; - $script = code2script($code, $inset); - return undef if not defined $script; - $outcode = script2code($script, $outset); - return $outcode; + +sub all_script_names { + my($codeset) = @_; + my($err,$tmp); + ($err,$tmp,$codeset) = _code("",$codeset); + return undef if ($err); + + return Locale::Codes::_all_names("script",$codeset); } +#======================================================================= +# +# rename_script ( CODE,NAME [,CODESET] ) +# +#======================================================================= + +sub rename_script { + my($code,$new_name,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_rename("script",$code,$new_name,$codeset,$nowarn); +} #======================================================================= # -# all_script_codes() +# add_script ( CODE,NAME [,CODESET] ) # #======================================================================= -sub all_script_codes -{ - my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT; - return keys %{ $CODES->[$codeset] }; +sub add_script { + my($code,$name,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_add_code("script",$code,$name,$codeset,$nowarn); } +#======================================================================= +# +# delete_script ( CODE [,CODESET] ) +# +#======================================================================= + +sub delete_script { + my($code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + + return Locale::Codes::_delete_code("script",$code,$codeset,$nowarn); +} #======================================================================= # -# all_script_names() +# add_script_alias ( NAME,NEW_NAME ) # #======================================================================= -sub all_script_names -{ - my $codeset = @_ > 0 ? shift : LOCALE_CODE_DEFAULT; - return values %{ $CODES->[$codeset] }; +sub add_script_alias { + my($name,$new_name,$nowarn) = @_; + $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0); + + return Locale::Codes::_add_alias("script",$name,$new_name,$nowarn); } +#======================================================================= +# +# delete_script_alias ( NAME ) +# +#======================================================================= + +sub delete_script_alias { + my($name,$nowarn) = @_; + $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0); + + return Locale::Codes::_delete_alias("script",$name,$nowarn); +} #======================================================================= # -# initialisation code - stuff the DATA into the ALPHA2 hash +# rename_script_code ( CODE,NEW_CODE [,CODESET] ) # #======================================================================= -{ - my ($alpha2, $alpha3, $numeric); - my $script; - local $_; +sub rename_script_code { + my($code,$new_code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + ($err,$new_code,$codeset) = _code($new_code,$codeset) if (! $err); - while () - { - next unless /\S/; - chop; - ($alpha2, $alpha3, $numeric, $script) = split(/:/, $_, 4); + return Locale::Codes::_rename_code("script",$code,$new_code,$codeset,$nowarn); +} - $CODES->[LOCALE_CODE_ALPHA_2]->{$alpha2} = $script; - $COUNTRIES->[LOCALE_CODE_ALPHA_2]->{"\L$script"} = $alpha2; +#======================================================================= +# +# add_script_code_alias ( CODE,NEW_CODE [,CODESET] ) +# +#======================================================================= - if ($alpha3) - { - $CODES->[LOCALE_CODE_ALPHA_3]->{$alpha3} = $script; - $COUNTRIES->[LOCALE_CODE_ALPHA_3]->{"\L$script"} = $alpha3; - } +sub add_script_code_alias { + my($code,$new_code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); + ($err,$new_code,$codeset) = _code($new_code,$codeset) if (! $err); - if ($numeric) - { - $CODES->[LOCALE_CODE_NUMERIC]->{$numeric} = $script; - $COUNTRIES->[LOCALE_CODE_NUMERIC]->{"\L$script"} = $numeric; - } + return Locale::Codes::_add_code_alias("script",$code,$new_code,$codeset,$nowarn); +} - } +#======================================================================= +# +# delete_script_code_alias ( CODE [,CODESET] ) +# +#======================================================================= + +sub delete_script_code_alias { + my($code,@args) = @_; + my $nowarn = 0; + $nowarn = 1, pop(@args) if ($args[$#args] eq "nowarn"); + my $codeset = shift(@args); + my $err; + ($err,$code,$codeset) = _code($code,$codeset); - close(DATA); + return Locale::Codes::_delete_code_alias("script",$code,$codeset,$nowarn); } 1; - -__DATA__ -am:ama:130:Aramaic -ar:ara:160:Arabic -av:ave:151:Avestan -bh:bhm:300:Brahmi (Ashoka) -bi:bid:372:Buhid -bn:ben:325:Bengali -bo:bod:330:Tibetan -bp:bpm:285:Bopomofo -br:brl:570:Braille -bt:btk:365:Batak -bu:bug:367:Buginese (Makassar) -by:bys:550:Blissymbols -ca:cam:358:Cham -ch:chu:221:Old Church Slavonic -ci:cir:291:Cirth -cm:cmn:402:Cypro-Minoan -co:cop:205:Coptic -cp:cpr:403:Cypriote syllabary -cy:cyr:220:Cyrillic -ds:dsr:250:Deserel (Mormon) -dv:dvn:315:Devanagari (Nagari) -ed:egd:070:Egyptian demotic -eg:egy:050:Egyptian hieroglyphs -eh:egh:060:Egyptian hieratic -el:ell:200:Greek -eo:eos:210:Etruscan and Oscan -et:eth:430:Ethiopic -gl:glg:225:Glagolitic -gm:gmu:310:Gurmukhi -gt:gth:206:Gothic -gu:guj:320:Gujarati -ha:han:500:Han ideographs -he:heb:125:Hebrew -hg:hgl:420:Hangul -hm:hmo:450:Pahawh Hmong -ho:hoo:371:Hanunoo -hr:hrg:410:Hiragana -hu:hun:176:Old Hungarian runic -hv:hvn:175:Kok Turki runic -hy:hye:230:Armenian -iv:ivl:610:Indus Valley -ja:jap:930:(alias for Han + Hiragana + Katakana) -jl:jlg:445:Cherokee syllabary -jw:jwi:360:Javanese -ka:kam:241:Georgian (Mxedruli) -kh:khn:931:(alias for Hangul + Han) -kk:kkn:411:Katakana -km:khm:354:Khmer -kn:kan:345:Kannada -kr:krn:357:Karenni (Kayah Li) -ks:kst:305:Kharoshthi -kx:kax:240:Georgian (Xucuri) -la:lat:217:Latin -lf:laf:215:Latin (Fraktur variant) -lg:lag:216:Latin (Gaelic variant) -lo:lao:356:Lao -lp:lpc:335:Lepcha (Rong) -md:mda:140:Mandaean -me:mer:100:Meroitic -mh:may:090:Mayan hieroglyphs -ml:mlm:347:Malayalam -mn:mon:145:Mongolian -my:mya:350:Burmese -na:naa:400:Linear A -nb:nbb:401:Linear B -og:ogm:212:Ogham -or:ory:327:Oriya -os:osm:260:Osmanya -ph:phx:115:Phoenician -ph:pah:150:Pahlavi -pl:pld:282:Pollard Phonetic -pq:pqd:295:Klingon plQaD -pr:prm:227:Old Permic -ps:pst:600:Phaistos Disk -rn:rnr:211:Runic (Germanic) -rr:rro:620:Rongo-rongo -sa:sar:110:South Arabian -si:sin:348:Sinhala -sj:syj:137:Syriac (Jacobite variant) -sl:slb:440:Unified Canadian Aboriginal Syllabics -sn:syn:136:Syriac (Nestorian variant) -sw:sww:281:Shavian (Shaw) -sy:syr:135:Syriac (Estrangelo) -ta:tam:346:Tamil -tb:tbw:373:Tagbanwa -te:tel:340:Telugu -tf:tfn:120:Tifnagh -tg:tag:370:Tagalog -th:tha:352:Thai -tn:tna:170:Thaana -tw:twr:290:Tengwar -va:vai:470:Vai -vs:vsp:280:Visible Speech -xa:xas:000:Cuneiform, Sumero-Akkadian -xf:xfa:105:Cuneiform, Old Persian -xk:xkn:412:(alias for Hiragana + Katakana) -xu:xug:106:Cuneiform, Ugaritic -yi:yii:460:Yi -zx:zxx:997:Unwritten language -zy:zyy:998:Undetermined script -zz:zzz:999:Uncoded script +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/lib/Locale/Script.pod b/cpan/Locale-Codes/lib/Locale/Script.pod index 93ff882..8d51bcf 100644 --- a/cpan/Locale-Codes/lib/Locale/Script.pod +++ b/cpan/Locale-Codes/lib/Locale/Script.pod @@ -1,211 +1,88 @@ +=pod =head1 NAME -Locale::Script - ISO codes for script identification (ISO 15924) +Locale::Script - standard codes for script identification =head1 SYNOPSIS - use Locale::Script; - use Locale::Constants; - - $script = code2script('ph'); # 'Phoenician' - $code = script2code('Tibetan'); # 'bo' - $code3 = script2code('Tibetan', - LOCALE_CODE_ALPHA_3); # 'bod' - $codeN = script2code('Tibetan', - LOCALE_CODE_ALPHA_NUMERIC); # 330 - - @codes = all_script_codes(); - @scripts = all_script_names(); - + use Locale::Script; -=head1 DESCRIPTION - -The C module provides access to the ISO -codes for identifying scripts, as defined in ISO 15924. -For example, Egyptian hieroglyphs are denoted by the two-letter -code 'eg', the three-letter code 'egy', and the numeric code 050. - -You can either access the codes via the conversion routines -(described below), or with the two functions which return lists -of all script codes or all script names. - -There are three different code sets you can use for identifying -scripts: - -=over 4 - -=item B - -Two letter codes, such as 'bo' for Tibetan. -This code set is identified with the symbol C. - -=item B - -Three letter codes, such as 'ell' for Greek. -This code set is identified with the symbol C. - -=item B - -Numeric codes, such as 410 for Hiragana. -This code set is identified with the symbol C. - -=back - -All of the routines take an optional additional argument -which specifies the code set to use. -If not specified, it defaults to the two-letter codes. -This is partly for backwards compatibility (previous versions -of Locale modules only supported the alpha-2 codes), and -partly because they are the most widely used codes. - -The alpha-2 and alpha-3 codes are not case-dependent, -so you can use 'BO', 'Bo', 'bO' or 'bo' for Tibetan. -When a code is returned by one of the functions in -this module, it will always be lower-case. - -=head2 SPECIAL CODES - -The standard defines various special codes. - -=over 4 - -=item * - -The standard reserves codes in the ranges B - B, -B - B, and B<900> - B<919>, for private use. - -=item * - -B, B, and B<997>, are the codes for unwritten languages. - -=item * - -B, B, and B<998>, are the codes for an undetermined script. + $script = code2script('phnx'); # 'Phoenician' + $code = script2code('Phoenician'); # 'Phnx' + $code = script2code('Phoenician', + LOCALE_CODE_NUMERIC); # 115 -=item * + @codes = all_script_codes(); + @scripts = all_script_names(); -B, B, and B<999>, are the codes for an uncoded script. - -=back +=head1 DESCRIPTION -The private codes are not recognised by Locale::Script, -but the others are. +The C module provides access to standards codes used +for identifying scripts, such as those defined in ISO 15924. +Most of the routines take an optional additional argument which +specifies the code set to use. If not specified, the default ISO +15924 four-letter codes will be used. -=head1 CONVERSION ROUTINES +=head1 SUPPORTED CODE SETS -There are three conversion routines: C, C, -and C. +There are several different code sets you can use for identifying +scripts. The ones currently supported are: =over 4 -=item code2script( CODE, [ CODESET ] ) - -This function takes a script code and returns a string -which contains the name of the script identified. -If the code is not a valid script code, as defined by ISO 15924, -then C will be returned: +=item B - $script = code2script('cy'); # Cyrillic +This is a set of four-letter (capitalized) codes from ISO 15924 +such as 'Phnx' for Phoenician. -=item script2code( STRING, [ CODESET ] ) +This code set is identified with the symbol C. -This function takes a script name and returns the corresponding -script code, if such exists. -If the argument could not be identified as a script name, -then C will be returned: +The Zxxx, Zyyy, and Zzzz codes are not used. - $code = script2code('Gothic', LOCALE_CODE_ALPHA_3); - # $code will now be 'gth' +This is the default code set. -The case of the script name is not important. -See the section L below. - -=item script_code2code( CODE, CODESET, CODESET ) - -This function takes a script code from one code set, -and returns the corresponding code from another code set. +=item B - $alpha2 = script_code2code('jwi', - LOCALE_CODE_ALPHA_3 => LOCALE_CODE_ALPHA_2); - # $alpha2 will now be 'jw' (Javanese) +This is a set of three-digit numeric codes from ISO 15924 such as 115 +for Phoenician. -If the code passed is not a valid script code in -the first code set, or if there isn't a code for the -corresponding script in the second code set, -then C will be returned. +This code set is identified with the symbol C. =back - -=head1 QUERY ROUTINES - -There are two function which can be used to obtain a list of all codes, -or all script names: +=head1 ROUTINES =over 4 -=item C +=item B -Returns a list of all two-letter script codes. -The codes are guaranteed to be all lower-case, -and not in any particular order. +=item B -=item C +=item B -Returns a list of all script names for which there is a corresponding -script code in the specified code set. -The names are capitalised, and not returned in any particular order. - -=back +=item B +=item B -=head1 EXAMPLES +=item B -The following example illustrates use of the C function. -The user is prompted for a script code, and then told the corresponding -script name: +=item B - $| = 1; # turn off buffering - - print "Enter script code: "; - chop($code = ); - $script = code2script($code, LOCALE_CODE_ALPHA_2); - if (defined $script) - { - print "$code = $script\n"; - } - else - { - print "'$code' is not a valid script code!\n"; - } +=item B +=item B -=head1 KNOWN BUGS AND LIMITATIONS - -=over 4 - -=item * +=item B -When using C, the script name must currently appear -exactly as it does in the source of the module. For example, +=item B - script2code('Egyptian hieroglyphs') +=item B -will return B, as expected. But the following will all return C: +=item B - script2code('hieroglyphs') - script2code('Egyptian Hieroglypics') - -If there's need for it, a future version could have variants -for script names. - -=item * - -In the current implementation, all data is read in when the -module is loaded, and then held in memory. -A lazy implementation would be more memory friendly. +These routines are all documented in the Locale::Codes man page. =back @@ -213,41 +90,29 @@ A lazy implementation would be more memory friendly. =over 4 -=item Locale::Language - -ISO two letter codes for identification of language (ISO 639). - -=item Locale::Currency - -ISO three letter codes for identification of currencies -and funds (ISO 4217). - -=item Locale::Country +=item B -ISO three letter codes for identification of countries (ISO 3166) +=item B -=item ISO 15924 - -The ISO standard which defines these codes. - -=item http://www.evertype.com/standards/iso15924/ +=item B Home page for ISO 15924. - =back - =head1 AUTHOR -Neil Bowers Eneil@bowers.comE +See Locale::Codes for full author history. + +Currently maintained by Sullivan Beck (sbeck@cpan.org). =head1 COPYRIGHT -Copyright (c) 2002-2004 Neil Bowers. + Copyright (c) 1997-2001 Canon Research Centre Europe (CRE). + Copyright (c) 2001-2010 Neil Bowers + Copyright (c) 2010-2010 Sullivan Beck This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut - diff --git a/cpan/Locale-Codes/t/alias_code.t b/cpan/Locale-Codes/t/alias_code.t new file mode 100755 index 0000000..b763372 --- /dev/null +++ b/cpan/Locale-Codes/t/alias_code.t @@ -0,0 +1,113 @@ +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; +} + +unshift(@INC,$dir); +use Locale::Country; + +%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2, + "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3, + "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC, + ); + +sub test { + my(@test) = @_; + + if ($test[0] eq "alias_code") { + shift(@test); + $test[2] = $type{$test[2]} + if (@test == 3 && $test[2] && exists $type{$test[2]}); + return Locale::Country::alias_code(@test,"nowarn"); + + } elsif ($test[0] eq "country2code") { + shift(@test); + $test[1] = $type{$test[1]} if (@test == 2 && $test[1] && exists $type{$test[1]}); + return country2code(@test); + + } else { + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return code2country(@test); + } +} + +$tests = " + +gb + ~ + United Kingdom + +uk + ~ + _undef_ + +country2code +United Kingdom + ~ + gb + +alias_code uk gb LOCALE_CODE_FOO ~ 0 + +alias_code uk x1 ~ 0 + +alias_code us gb ~ 0 + +alias_code uk gb LOCALE_CODE_ALPHA_3 ~ 0 + +gb + ~ + United Kingdom + +uk + ~ + _undef_ + +country2code +United Kingdom + ~ + gb + +alias_code uk gb ~ uk + +gb + ~ + United Kingdom + +uk + ~ + United Kingdom + +country2code +United Kingdom + ~ + uk + +"; + +print "alias_code...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/t/all.t b/cpan/Locale-Codes/t/all.t deleted file mode 100644 index f70727c..0000000 --- a/cpan/Locale-Codes/t/all.t +++ /dev/null @@ -1,580 +0,0 @@ -#!./perl -# -# all.t - tests for all_* routines in -# Locale::Country -# Locale::Language -# Locale::Currency -# Locale::Script -# -# There are four tests. We get a list of all codes, convert to -# language/country/currency, # convert back to code, -# and check that they're the same. Then we do the same, -# starting with list of languages/countries/currencies. -# - -use Locale::Country; -use Locale::Language; -use Locale::Currency; -use Locale::Script; - -print "1..20\n"; - -my $code; -my $language; -my $country; -my $ok; -my $reverse; -my $currency; -my $script; - - -#----------------------------------------------------------------------- -# Old API - without codeset specified, default to ALPHA_2 -#----------------------------------------------------------------------- -$ok = 1; -foreach $code (all_country_codes()) -{ - $country = code2country($code); - if (!defined $country) - { - $ok = 0; - last; - } - $reverse = country2code($country); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $code) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 1\n" : "not ok 1\n"); - -#----------------------------------------------------------------------- -# code to country, back to code, for ALPHA2 -#----------------------------------------------------------------------- -$ok = 1; -foreach $code (all_country_codes(LOCALE_CODE_ALPHA_2)) -{ - $country = code2country($code, LOCALE_CODE_ALPHA_2); - if (!defined $country) - { - $ok = 0; - last; - } - $reverse = country2code($country, LOCALE_CODE_ALPHA_2); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $code) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 2\n" : "not ok 2\n"); - -#----------------------------------------------------------------------- -# code to country, back to code, for ALPHA3 -#----------------------------------------------------------------------- -$ok = 1; -foreach $code (all_country_codes(LOCALE_CODE_ALPHA_3)) -{ - $country = code2country($code, LOCALE_CODE_ALPHA_3); - if (!defined $country) - { - $ok = 0; - last; - } - $reverse = country2code($country, LOCALE_CODE_ALPHA_3); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $code) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 3\n" : "not ok 3\n"); - -#----------------------------------------------------------------------- -# code to country, back to code, for NUMERIC -#----------------------------------------------------------------------- -$ok = 1; -foreach $code (all_country_codes(LOCALE_CODE_NUMERIC)) -{ - $country = code2country($code, LOCALE_CODE_NUMERIC); - if (!defined $country) - { - $ok = 0; - last; - } - $reverse = country2code($country, LOCALE_CODE_NUMERIC); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $code) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 4\n" : "not ok 4\n"); - - -#----------------------------------------------------------------------- -# Old API - country to code, back to country, using default of ALPHA_2 -#----------------------------------------------------------------------- -$ok = 1; -foreach $country (all_country_names()) -{ - $code = country2code($country); - if (!defined $code) - { - $ok = 0; - last; - } - $reverse = code2country($code); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $country) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 5\n" : "not ok 5\n"); - -#----------------------------------------------------------------------- -# country to code, back to country, using LOCALE_CODE_ALPHA_2 -#----------------------------------------------------------------------- -$ok = 1; -foreach $country (all_country_names()) -{ - $code = country2code($country, LOCALE_CODE_ALPHA_2); - if (!defined $code) - { - $ok = 0; - last; - } - $reverse = code2country($code, LOCALE_CODE_ALPHA_2); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $country) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 6\n" : "not ok 6\n"); - -#----------------------------------------------------------------------- -# country to code, back to country, using LOCALE_CODE_ALPHA_3 -#----------------------------------------------------------------------- -$ok = 1; -foreach $country (all_country_names()) -{ - $code = country2code($country, LOCALE_CODE_ALPHA_3); - if (!defined $code) - { - next if ($country eq 'Antarctica' - || $country eq 'Bouvet Island' - || $country eq 'Cocos (Keeling) Islands' - || $country eq 'Christmas Island' - || $country eq 'France, Metropolitan' - || $country eq 'South Georgia and the South Sandwich Islands' - || $country eq 'Heard Island and McDonald Islands' - || $country eq 'British Indian Ocean Territory' - || $country eq 'French Southern Territories' - || $country eq 'United States Minor Outlying Islands' - || $country eq 'Mayotte' - || $country eq 'Zaire'); - $ok = 0; - last; - } - $reverse = code2country($code, LOCALE_CODE_ALPHA_3); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $country) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 7\n" : "not ok 7\n"); - -#----------------------------------------------------------------------- -# country to code, back to country, using LOCALE_CODE_NUMERIC -#----------------------------------------------------------------------- -$ok = 1; -foreach $country (all_country_names()) -{ - $code = country2code($country, LOCALE_CODE_NUMERIC); - if (!defined $code) - { - next if ($country eq 'Antarctica' - || $country eq 'Bouvet Island' - || $country eq 'Cocos (Keeling) Islands' - || $country eq 'Christmas Island' - || $country eq 'France, Metropolitan' - || $country eq 'South Georgia and the South Sandwich Islands' - || $country eq 'Heard Island and McDonald Islands' - || $country eq 'British Indian Ocean Territory' - || $country eq 'French Southern Territories' - || $country eq 'United States Minor Outlying Islands' - || $country eq 'Mayotte' - || $country eq 'Zaire'); - $ok = 0; - last; - } - $reverse = code2country($code, LOCALE_CODE_NUMERIC); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $country) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 8\n" : "not ok 8\n"); - - -$ok = 1; -foreach $code (all_language_codes()) -{ - $language = code2language($code); - if (!defined $language) - { - $ok = 0; - last; - } - $reverse = language2code($language); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $code) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 9\n" : "not ok 9\n"); - - -$ok = 1; -foreach $language (all_language_names()) -{ - $code = language2code($language); - if (!defined $code) - { - $ok = 0; - last; - } - $reverse = code2language($code); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $language) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 10\n" : "not ok 10\n"); - -$ok = 1; -foreach $code (all_currency_codes()) -{ - $currency = code2currency($code); - if (!defined $currency) - { - $ok = 0; - last; - } - $reverse = currency2code($currency); - if (!defined $reverse) - { - $ok = 0; - last; - } - # - # three special cases: - # The Kwacha has two codes - used in Zambia and Malawi - # The Russian Ruble has two codes - rub and rur - # The Belarussian Ruble has two codes - byb and byr - if ($reverse ne $code - && $code ne 'mwk' && $code ne 'zmk' - && $code ne 'byr' && $code ne 'byb' - && $code ne 'rub' && $code ne 'rur') - { - $ok = 0; - last; - } -} -print ($ok ? "ok 11\n" : "not ok 11\n"); - -$ok = 1; -foreach $currency (all_currency_names()) -{ - $code = currency2code($currency); - if (!defined $code) - { - $ok = 0; - last; - } - $reverse = code2currency($code); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $currency) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 12\n" : "not ok 12\n"); - -#======================================================================= -# -# Locale::Script tests -# -#======================================================================= - -#----------------------------------------------------------------------- -# Old API - without codeset specified, default to ALPHA_2 -#----------------------------------------------------------------------- -$ok = 1; -foreach $code (all_script_codes()) -{ - $script = code2script($code); - if (!defined $script) - { - $ok = 0; - last; - } - $reverse = script2code($script); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $code) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 13\n" : "not ok 13\n"); - -#----------------------------------------------------------------------- -# code to script, back to code, for ALPHA2 -#----------------------------------------------------------------------- -$ok = 1; -foreach $code (all_script_codes(LOCALE_CODE_ALPHA_2)) -{ - $script = code2script($code, LOCALE_CODE_ALPHA_2); - if (!defined $script) - { - $ok = 0; - last; - } - $reverse = script2code($script, LOCALE_CODE_ALPHA_2); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $code) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 14\n" : "not ok 14\n"); - -#----------------------------------------------------------------------- -# code to script, back to code, for ALPHA3 -#----------------------------------------------------------------------- -$ok = 1; -foreach $code (all_script_codes(LOCALE_CODE_ALPHA_3)) -{ - $script = code2script($code, LOCALE_CODE_ALPHA_3); - if (!defined $script) - { - $ok = 0; - last; - } - $reverse = script2code($script, LOCALE_CODE_ALPHA_3); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $code) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 15\n" : "not ok 15\n"); - -#----------------------------------------------------------------------- -# code to script, back to code, for NUMERIC -#----------------------------------------------------------------------- -$ok = 1; -foreach $code (all_script_codes(LOCALE_CODE_NUMERIC)) -{ - $script = code2script($code, LOCALE_CODE_NUMERIC); - if (!defined $script) - { - $ok = 0; - last; - } - $reverse = script2code($script, LOCALE_CODE_NUMERIC); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $code) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 16\n" : "not ok 16\n"); - - -#----------------------------------------------------------------------- -# Old API - script to code, back to script, using default of ALPHA_2 -#----------------------------------------------------------------------- -$ok = 1; -foreach $script (all_script_names()) -{ - $code = script2code($script); - if (!defined $code) - { - $ok = 0; - last; - } - $reverse = code2script($code); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $script) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 17\n" : "not ok 17\n"); - -#----------------------------------------------------------------------- -# script to code, back to script, using LOCALE_CODE_ALPHA_2 -#----------------------------------------------------------------------- -$ok = 1; -foreach $script (all_script_names()) -{ - $code = script2code($script, LOCALE_CODE_ALPHA_2); - if (!defined $code) - { - $ok = 0; - last; - } - $reverse = code2script($code, LOCALE_CODE_ALPHA_2); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $script) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 18\n" : "not ok 18\n"); - -#----------------------------------------------------------------------- -# script to code, back to script, using LOCALE_CODE_ALPHA_3 -#----------------------------------------------------------------------- -$ok = 1; -foreach $script (all_script_names()) -{ - $code = script2code($script, LOCALE_CODE_ALPHA_3); - if (!defined $code) - { - $ok = 0; - last; - } - $reverse = code2script($code, LOCALE_CODE_ALPHA_3); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $script) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 19\n" : "not ok 19\n"); - -#----------------------------------------------------------------------- -# script to code, back to script, using LOCALE_CODE_NUMERIC -#----------------------------------------------------------------------- -$ok = 1; -foreach $script (all_script_names()) -{ - $code = script2code($script, LOCALE_CODE_NUMERIC); - if (!defined $code) - { - $ok = 0; - last; - } - $reverse = code2script($code, LOCALE_CODE_NUMERIC); - if (!defined $reverse) - { - $ok = 0; - last; - } - if ($reverse ne $script) - { - $ok = 0; - last; - } -} -print ($ok ? "ok 20\n" : "not ok 20\n"); - diff --git a/cpan/Locale-Codes/t/code2country.t b/cpan/Locale-Codes/t/code2country.t new file mode 100755 index 0000000..43c06a0 --- /dev/null +++ b/cpan/Locale-Codes/t/code2country.t @@ -0,0 +1,144 @@ +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; +} + +unshift(@INC,$dir); +use Locale::Country; + +%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2, + "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3, + "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC, + ); + +sub test { + my(@test) = @_; + $test[1] = $type{$test[1]} if (@test == 2 && $test[1] && exists $type{$test[1]}); + return code2country(@test); +} + +$tests = " + +~ _undef_ + +_undef_ ~ _undef_ + +zz ~ _undef_ + +zz LOCALE_CODE_ALPHA_2 ~ _undef_ + +zz LOCALE_CODE_ALPHA_3 ~ _undef_ + +zz LOCALE_CODE_NUMERIC ~ _undef_ + +ja ~ _undef_ + +uk ~ _undef_ + +BO + ~ + Bolivia, Plurinational State of + +BO +LOCALE_CODE_ALPHA_2 + ~ + Bolivia, Plurinational State of + +bol +LOCALE_CODE_ALPHA_3 + ~ + Bolivia (Plurinational State of) + +pk ~ Pakistan + +sn ~ Senegal + +us + ~ + United States + +ad ~ Andorra + +ad LOCALE_CODE_ALPHA_2 ~ Andorra + +and LOCALE_CODE_ALPHA_3 ~ Andorra + +020 LOCALE_CODE_NUMERIC ~ Andorra + +48 LOCALE_CODE_NUMERIC ~ Bahrain + +zw ~ Zimbabwe + +gb + ~ + United Kingdom + +kz ~ Kazakhstan + +mo ~ Macao + +tl LOCALE_CODE_ALPHA_2 ~ Timor-Leste + +tls LOCALE_CODE_ALPHA_3 ~ Timor-Leste + +626 LOCALE_CODE_NUMERIC ~ Timor-Leste + +BO LOCALE_CODE_ALPHA_3 ~ _undef_ + +BO LOCALE_CODE_NUMERIC ~ _undef_ + +ax + ~ + Aland Islands + +ala +LOCALE_CODE_ALPHA_3 + ~ + Aland Islands + +248 +LOCALE_CODE_NUMERIC + ~ + Aland Islands + +scg +LOCALE_CODE_ALPHA_3 + ~ + _undef_ + +891 +LOCALE_CODE_NUMERIC + ~ + _undef_ + +rou LOCALE_CODE_ALPHA_3 ~ Romania + +"; + +print "code2country...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: + diff --git a/cpan/Locale-Codes/t/code2currency.t b/cpan/Locale-Codes/t/code2currency.t new file mode 100755 index 0000000..6b32b31 --- /dev/null +++ b/cpan/Locale-Codes/t/code2currency.t @@ -0,0 +1,125 @@ +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; +} + +unshift(@INC,$dir); +use Locale::Currency; + +%type = ( "LOCALE_CODE_ALPHA" => LOCALE_CODE_ALPHA, + "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC, + ); + +sub test { + my(@test) = @_; + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return code2currency(@test); +} + +$tests = " + +ukp ~ _undef_ + +zz ~ _undef_ + +zzz ~ _undef_ + +zzzz ~ _undef_ + +~ _undef_ + +_undef_ ~ _undef_ + +BOB + ~ + Boliviano + +all + ~ + Lek + +bnd + ~ + Brunei Dollar + +bob + ~ + Boliviano + +byr + ~ + Belarussian Ruble + +chf + ~ + Swiss Franc + +cop + ~ + Colombian Peso + +dkk + ~ + Danish Krone + +fjd + ~ + Fiji Dollar + +idr + ~ + Rupiah + +mmk + ~ + Kyat + +mvr + ~ + Rufiyaa + +mwk + ~ + Kwacha + +rub + ~ + Russian Ruble + +zmk + ~ + Zambian Kwacha + +zwl + ~ + Zimbabwe Dollar + +"; + +print "code2currency...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/t/code2language.t b/cpan/Locale-Codes/t/code2language.t new file mode 100755 index 0000000..a0308d4 --- /dev/null +++ b/cpan/Locale-Codes/t/code2language.t @@ -0,0 +1,222 @@ +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; +} + +unshift(@INC,$dir); +use Locale::Language; + +%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2, + "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3, + "LOCALE_CODE_TERM" => LOCALE_CODE_TERM, + ); + +sub test { + my(@test) = @_; + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return code2language(@test); +} + +$tests = " + +in ~ _undef_ + +iw ~ _undef_ + +ji ~ _undef_ + +jp ~ _undef_ + +sh ~ _undef_ + +zz ~ _undef_ + +~ _undef_ + +_undef_ ~ _undef_ + +DA + ~ + Danish + +aa + ~ + Afar + +ae + ~ + Avestan + +bs + ~ + Bosnian + +ce + ~ + Chechen + +ch + ~ + Chamorro + +cu + ~ + Church Slavic + +cv + ~ + Chuvash + +en + ~ + English + +eo + ~ + Esperanto + +fi + ~ + Finnish + +gv + ~ + Manx + +he + ~ + Hebrew + +ho + ~ + Hiri Motu + +hz + ~ + Herero + +id + ~ + Indonesian + +iu + ~ + Inuktitut + +ki + ~ + Kikuyu + +kj + ~ + Kuanyama + +kv + ~ + Komi + +kw + ~ + Cornish + +lb + ~ + Luxembourgish + +mh + ~ + Marshallese + +nb + ~ + Bokmal, Norwegian + +nd + ~ + Ndebele, North + +ng + ~ + Ndonga + +nn + ~ + Norwegian Nynorsk + +nr + ~ + Ndebele, South + +nv + ~ + Navajo + +ny + ~ + Chichewa + +oc + ~ + Occitan (post 1500) + +os + ~ + Ossetian + +pi + ~ + Pali + +sc + ~ + Sardinian + +se + ~ + Northern Sami + +ug + ~ + Uighur + +yi + ~ + Yiddish + +za + ~ + Zhuang + +zu + ~ + Zulu + +"; + +print "code2language...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/t/code2script.t b/cpan/Locale-Codes/t/code2script.t new file mode 100755 index 0000000..ba700f9 --- /dev/null +++ b/cpan/Locale-Codes/t/code2script.t @@ -0,0 +1,57 @@ +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; +} + +unshift(@INC,$dir); +use Locale::Script; + +%type = ( "LOCALE_SCRIPT_ALPHA" => LOCALE_SCRIPT_ALPHA, + "LOCALE_SCRIPT_NUMERIC" => LOCALE_SCRIPT_NUMERIC, + ); + +sub test { + my(@test) = @_; + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return code2script(@test); +} + +$tests = " + +~ _undef_ + +Phnx ~ Phoenician + +phnx ~ Phoenician + +115 LOCALE_SCRIPT_NUMERIC ~ Phoenician + +"; + +print "code2script...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/t/constants.t b/cpan/Locale-Codes/t/constants.t deleted file mode 100644 index e71103d..0000000 --- a/cpan/Locale-Codes/t/constants.t +++ /dev/null @@ -1,44 +0,0 @@ -#!./perl -# -# constants.t - tests for Locale::Constants -# - -use Locale::Constants; - -print "1..3\n"; - -if (defined LOCALE_CODE_ALPHA_2 - && defined LOCALE_CODE_ALPHA_3 - && defined LOCALE_CODE_NUMERIC) -{ - print "ok 1\n"; -} -else -{ - print "not ok 1\n"; -} - -if (LOCALE_CODE_ALPHA_2 != LOCALE_CODE_ALPHA_3 - && LOCALE_CODE_ALPHA_2 != LOCALE_CODE_NUMERIC - && LOCALE_CODE_ALPHA_3 != LOCALE_CODE_NUMERIC) -{ - print "ok 2\n"; -} -else -{ - print "not ok 2\n"; -} - -if (defined LOCALE_CODE_DEFAULT - && (LOCALE_CODE_DEFAULT == LOCALE_CODE_ALPHA_2 - || LOCALE_CODE_DEFAULT == LOCALE_CODE_ALPHA_3 - || LOCALE_CODE_DEFAULT == LOCALE_CODE_NUMERIC)) -{ - print "ok 3\n"; -} -else -{ - print "not ok 3\n"; -} - -exit 0; diff --git a/cpan/Locale-Codes/t/country.t b/cpan/Locale-Codes/t/country.t old mode 100644 new mode 100755 index 0c9fda8..830fa55 --- a/cpan/Locale-Codes/t/country.t +++ b/cpan/Locale-Codes/t/country.t @@ -1,153 +1,247 @@ -#!./perl -# -# country.t - tests for Locale::Country -# +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; +} +unshift(@INC,$dir); use Locale::Country; -#----------------------------------------------------------------------- -# This is an array of tests specs. Each spec is [TEST, OK_TO_DIE] -# Each TEST is eval'd as an expression. -# If it evaluates to FALSE, then "not ok N" is printed for the test, -# otherwise "ok N". If the eval dies, then the OK_TO_DIE flag is checked. -# If it is true (1), the test is treated as passing, otherwise it failed. -#----------------------------------------------------------------------- -@TESTS = -( - #================================================ - # TESTS FOR code2country - #================================================ - - #---- selection of examples which should all result in undef ----------- - ['!defined code2country()', 0], # no argument - ['!defined code2country(undef)', 0], # undef argument - ['!defined code2country("zz")', 0], # illegal code - ['!defined code2country("zz", LOCALE_CODE_ALPHA_2)', 0], # illegal code - ['!defined code2country("zz", LOCALE_CODE_ALPHA_3)', 0], # illegal code - ['!defined code2country("zz", LOCALE_CODE_NUMERIC)', 0], # illegal code - ['!defined code2country("ja")', 0], # should be jp for country - ['!defined code2country("uk")', 0], # should be jp for country - - #---- some successful examples ----------------------------------------- - ['code2country("BO") eq "Bolivia"', 0], - ['code2country("BO", LOCALE_CODE_ALPHA_2) eq "Bolivia"', 0], - ['code2country("bol", LOCALE_CODE_ALPHA_3) eq "Bolivia"', 0], - ['code2country("pk") eq "Pakistan"', 0], - ['code2country("sn") eq "Senegal"', 0], - ['code2country("us") eq "United States"', 0], - ['code2country("ad") eq "Andorra"', 0], # first in DATA segment - ['code2country("ad", LOCALE_CODE_ALPHA_2) eq "Andorra"', 0], - ['code2country("and", LOCALE_CODE_ALPHA_3) eq "Andorra"', 0], - ['code2country("020", LOCALE_CODE_NUMERIC) eq "Andorra"', 0], - ['code2country(48, LOCALE_CODE_NUMERIC) eq "Bahrain"', 0], - ['code2country("zw") eq "Zimbabwe"', 0], # last in DATA segment - ['code2country("gb") eq "United Kingdom"', 0], # United Kingdom is "gb", not "uk" - - #-- tests added after changes in the standard 2002-05-20 ------ - ['code2country("kz") eq "Kazakhstan"', 0], - ['country2code("kazakhstan") eq "kz"', 0], - ['country2code("kazakstan") eq "kz"', 0], - - ['code2country("mo") eq "Macao"', 0], - ['country2code("macao") eq "mo"', 0], - ['country2code("macau") eq "mo"', 0], - - ['code2country("tl", LOCALE_CODE_ALPHA_2) eq "Timor-Leste"', 0], - ['code2country("tls", LOCALE_CODE_ALPHA_3) eq "Timor-Leste"', 0], - ['code2country("626", LOCALE_CODE_NUMERIC) eq "Timor-Leste"', 0], - - #================================================ - # TESTS FOR country2code - #================================================ - - #---- selection of examples which should all result in undef ----------- - ['!defined code2country("BO", LOCALE_CODE_ALPHA_3)', 0], - ['!defined code2country("BO", LOCALE_CODE_NUMERIC)', 0], - ['!defined country2code()', 0], # no argument - ['!defined country2code(undef)', 0], # undef argument - ['!defined country2code("Banana")', 0], # illegal country name - - #---- some successful examples ----------------------------------------- - ['country2code("japan") eq "jp"', 0], - ['country2code("japan") ne "ja"', 0], - ['country2code("Japan") eq "jp"', 0], - ['country2code("United States") eq "us"', 0], - ['country2code("United Kingdom") eq "gb"', 0], - ['country2code("Andorra") eq "ad"', 0], # first in DATA - ['country2code("Zimbabwe") eq "zw"', 0], # last in DATA - ['country2code("Iran") eq "ir"', 0], # alias - ['country2code("North Korea") eq "kp"', 0], # alias - ['country2code("South Korea") eq "kr"', 0], # alias - ['country2code("Libya") eq "ly"', 0], # alias - ['country2code("Syria") eq "sy"', 0], # alias - ['country2code("Svalbard") eq "sj"', 0], # alias - ['country2code("Jan Mayen") eq "sj"', 0], # alias - ['country2code("USA") eq "us"', 0], # alias - ['country2code("United States of America") eq "us"', 0], # alias - ['country2code("Great Britain") eq "gb"', 0], # alias - - #================================================ - # TESTS FOR country_code2code - #================================================ - - #---- selection of examples which should all result in undef ----------- - ['!defined country_code2code("bo", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_3)', 0], - ['!defined country_code2code("zz", LOCALE_CODE_ALPHA_2, LOCALE_CODE_ALPHA_3)', 0], - ['!defined country_code2code("zz", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_3)', 0], - ['!defined country_code2code("zz", LOCALE_CODE_ALPHA_2)', 1], - ['!defined country_code2code("bo", LOCALE_CODE_ALPHA_2)', 1], - ['!defined country_code2code()', 1], # no argument - ['!defined country_code2code(undef)', 1], # undef argument - - #---- some successful examples ----------------------------------------- - ['country_code2code("BO", LOCALE_CODE_ALPHA_2, LOCALE_CODE_ALPHA_3) eq "bol"', 0], - ['country_code2code("bol", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_2) eq "bo"', 0], - ['country_code2code("zwe", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_2) eq "zw"', 0], - ['country_code2code("858", LOCALE_CODE_NUMERIC, LOCALE_CODE_ALPHA_3) eq "ury"', 0], - ['country_code2code(858, LOCALE_CODE_NUMERIC, LOCALE_CODE_ALPHA_3) eq "ury"', 0], - ['country_code2code("tr", LOCALE_CODE_ALPHA_2, LOCALE_CODE_NUMERIC) eq "792"', 0], - - #-- tests added for 2.07 release - ['country2code("Burma") eq "mm"', 0], # alias - ['country2code("French Southern and Antarctic Lands") eq "tf"', 0], # alias - ['code2country("ax") eq "Aland Islands"', 0], - ['country2code("Aland Islands") eq "ax"', 0], - ['code2country("ala", LOCALE_CODE_ALPHA_3) eq "Aland Islands"', 0], - ['code2country("248", LOCALE_CODE_NUMERIC) eq "Aland Islands"', 0], - - ['country2code("Yugoslavia") eq "cs"', 0], # alias (old name) - ['country2code("Serbia and Montenegro") eq "cs"', 0], # new name - ['code2country("scg", LOCALE_CODE_ALPHA_3) eq "Serbia and Montenegro"', 0], - ['code2country("891", LOCALE_CODE_NUMERIC) eq "Serbia and Montenegro"', 0], - - ['country2code("East Timor") eq "tl"', 0], # alias (provisional name) - ['code2country("rou", LOCALE_CODE_ALPHA_3) eq "Romania"', 0], - - ['country2code("Zaire") eq "cd"', 0], # alias (old name) - ['country2code("Congo, The Democratic Republic of the") eq "cd"', 0], # new name - ['country2code("Congo, The Democratic Republic of the", LOCALE_CODE_ALPHA_3) eq "cod"', 0], # new name - ['country2code("Congo, The Democratic Republic of the", LOCALE_CODE_NUMERIC) eq "180"', 0], # new name - -); - -print "1..", int(@TESTS), "\n"; - -$testid = 1; -foreach $test (@TESTS) -{ - eval "print (($test->[0]) ? \"ok $testid\\n\" : \"not ok $testid\\n\" )"; - if ($@) - { - if (!$test->[1]) - { - print "not ok $testid\n"; - } - else - { - print "ok $testid\n"; - } - } - ++$testid; +%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2, + "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3, + "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC, + "LOCALE_CODE_FIPS" => LOCALE_CODE_FIPS, + ); + +sub test { + my(@test) = @_; + + if ($test[0] eq "rename_country") { + shift(@test); + $test[2] = $type{$test[2]} + if (@test == 3 && $test[2] && exists $type{$test[2]}); + return Locale::Country::rename_country(@test,"nowarn"); + + } elsif ($test[0] eq "add_country") { + shift(@test); + $test[2] = $type{$test[2]} + if (@test == 3 && $test[2] && exists $type{$test[2]}); + return Locale::Country::add_country(@test,"nowarn"); + + } elsif ($test[0] eq "delete_country") { + shift(@test); + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return Locale::Country::delete_country(@test,"nowarn"); + + } elsif ($test[0] eq "add_country_alias") { + shift(@test); + return Locale::Country::add_country_alias(@test,"nowarn"); + + } elsif ($test[0] eq "delete_country_alias") { + shift(@test); + return Locale::Country::delete_country_alias(@test,"nowarn"); + + } elsif ($test[0] eq "rename_country_code") { + shift(@test); + $test[2] = $type{$test[2]} + if (@test == 3 && $test[2] && exists $type{$test[2]}); + return Locale::Country::rename_country_code(@test,"nowarn"); + + } elsif ($test[0] eq "add_country_code_alias") { + shift(@test); + $test[2] = $type{$test[2]} + if (@test == 3 && $test[2] && exists $type{$test[2]}); + return Locale::Country::add_country_code_alias(@test,"nowarn"); + + } elsif ($test[0] eq "delete_country_code_alias") { + shift(@test); + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return Locale::Country::delete_country_code_alias(@test,"nowarn"); + + } elsif ($test[0] eq "country2code") { + shift(@test); + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return country2code(@test); + + } else { + shift(@test) if ($test[0] eq "code2country"); + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return code2country(@test); + } } -exit 0; +$tests = " + +################################### +# Test rename_country + +gb + ~ + United Kingdom + +rename_country x1 NewName ~ 0 + +rename_country gb NewName LOCALE_CODE_FOO ~ 0 + +rename_country gb Macao ~ 0 + +rename_country gb NewName LOCALE_CODE_ALPHA_3 ~ 0 + +gb + ~ + United Kingdom + +rename_country gb NewName ~ 1 + +gb + ~ + NewName + +################################### +# Test add_country + +xx ~ _undef_ + +add_country xx Bolivia ~ 0 + +add_country fi Xxxxx ~ 0 + +add_country xx Xxxxx ~ 1 + +xx ~ Xxxxx + +################################### +# Test add_country_alias + +add_country_alias FooBar NewName ~ 0 + +add_country_alias Australia Angola ~ 0 + +country2code Australia ~ au + +country2code DownUnder ~ _undef_ + +add_country_alias Australia DownUnder ~ 1 + +country2code DownUnder ~ au + +################################### +# Test delete_country_alias + +country2code uk ~ gb + +delete_country_alias Foobar ~ 0 + +delete_country_alias UK ~ 1 + +country2code uk ~ _undef_ + +delete_country_alias Angola ~ 0 + +################################### +# Test delete_country + +country2code Angola ~ ao + +country2code Angola LOCALE_CODE_ALPHA_3 ~ ago + +delete_country ao ~ 1 + +country2code Angola ~ _undef_ + +country2code Angola LOCALE_CODE_ALPHA_3 ~ ago + +################################### +# Test rename_country_code + +code2country zz ~ _undef_ + +code2country ar ~ Argentina + +country2code Argentina ~ ar + +rename_country_code ar us ~ 0 + +rename_country_code ar zz ~ 1 + +rename_country_code us ar ~ 0 + +code2country zz ~ Argentina + +code2country ar ~ Argentina + +country2code Argentina ~ zz + +rename_country_code zz ar ~ 1 + +code2country zz ~ Argentina + +code2country ar ~ Argentina + +country2code Argentina ~ ar + +################################### +# Test add_country_code_alias and +# delete_country_code_alias + +code2country bm ~ Bermuda + +code2country yy ~ _undef_ + +country2code Bermuda ~ bm + +add_country_code_alias bm us ~ 0 + +add_country_code_alias bm zz ~ 0 + +add_country_code_alias bm yy ~ 1 + +code2country bm ~ Bermuda + +code2country yy ~ Bermuda + +country2code Bermuda ~ bm + +delete_country_code_alias us ~ 0 + +delete_country_code_alias ww ~ 0 + +delete_country_code_alias yy ~ 1 + +code2country bm ~ Bermuda + +code2country yy ~ _undef_ + +country2code Bermuda ~ bm + +"; + +print "country (semi-private)...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/t/country2code.t b/cpan/Locale-Codes/t/country2code.t new file mode 100755 index 0000000..1eacf46 --- /dev/null +++ b/cpan/Locale-Codes/t/country2code.t @@ -0,0 +1,183 @@ +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; +} + +unshift(@INC,$dir); +use Locale::Country; + +%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2, + "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3, + "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC, + ); + +sub test { + my(@test) = @_; + $test[1] = $type{$test[1]} if (@test == 2 && $test[1] && exists $type{$test[1]}); + return country2code(@test); +} + +$tests = " + +kazakhstan + ~ + kz + +kazakstan + ~ + kz + +macao + ~ + mo + +macau + ~ + mo + + +~ _undef_ + +_undef_ + ~ + _undef_ + +Banana + ~ + _undef_ + +japan + ~ + jp + +Japan + ~ + jp + +United States + ~ + us + +United Kingdom + ~ + gb + +Andorra + ~ + ad + +Zimbabwe + ~ + zw + +Iran + ~ + ir + +North Korea + ~ + kp + +South Korea + ~ + kr + +Libya + ~ + ly + +Syria + ~ + sy + +Svalbard + ~ + _undef_ + +Jan Mayen + ~ + _undef_ + +USA + ~ + us + +United States of America + ~ + us + +Great Britain + ~ + gb + +Burma + ~ + mm + +French Southern and Antarctic Lands + ~ + tf + +Aland Islands + ~ + ax + +Yugoslavia + ~ + _undef_ + +Serbia and Montenegro + ~ + _undef_ + +East Timor + ~ + tl + +Zaire + ~ + _undef_ + +Congo, The Democratic Republic of the + ~ + cd + +Congo, The Democratic Republic of the +LOCALE_CODE_ALPHA_3 + ~ + cod + +Congo, The Democratic Republic of the +LOCALE_CODE_NUMERIC + ~ + 180 + +"; + +print "country2code...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: + diff --git a/cpan/Locale-Codes/t/country_code2code.t b/cpan/Locale-Codes/t/country_code2code.t new file mode 100755 index 0000000..5ec8117 --- /dev/null +++ b/cpan/Locale-Codes/t/country_code2code.t @@ -0,0 +1,78 @@ +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; +} + +unshift(@INC,$dir); +use Locale::Country; +use Locale::Constants; + +%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2, + "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3, + "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC, + ); + +sub test { + my($code,$type_in,$type_out) = @_; + $type_in = $type{$type_in} if ($type_in && exists $type{$type_in}); + $type_out = $type{$type_out} if ($type_out && exists $type{$type_out}); + + return country_code2code($code,$type_in,$type_out); +} + +$tests = " + +bo LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_2 ~ bo + +bo LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_3 ~ _undef_ + +zz LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_3 ~ _undef_ + +zz LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_3 ~ _undef_ + +zz LOCALE_CODE_ALPHA_2 0 ~ _undef_ + +bo LOCALE_CODE_ALPHA_2 0 ~ _undef_ + +_blank_ 0 0 ~ _undef_ + +BO LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_3 ~ bol + +bol LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_2 ~ bo + +zwe LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_2 ~ zw + +858 LOCALE_CODE_NUMERIC LOCALE_CODE_ALPHA_3 ~ ury + +858 LOCALE_CODE_NUMERIC LOCALE_CODE_ALPHA_3 ~ ury + +tr LOCALE_CODE_ALPHA_2 LOCALE_CODE_NUMERIC ~ 792 + +"; + +print "country_code2code...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/t/currency.t b/cpan/Locale-Codes/t/currency.t deleted file mode 100644 index adb844e..0000000 --- a/cpan/Locale-Codes/t/currency.t +++ /dev/null @@ -1,80 +0,0 @@ -#!./perl -# -# currency.t - tests for Locale::Currency -# -use Locale::Currency; - -#----------------------------------------------------------------------- -# This is an array of tests. Each test is eval'd as an expression. -# If it evaluates to FALSE, then "not ok N" is printed for the test, -# otherwise "ok N". -#----------------------------------------------------------------------- -@TESTS = -( - #================================================ - # TESTS FOR code2currency - #================================================ - - #---- selection of examples which should all result in undef ----------- - '!defined code2currency()', # no argument => undef returned - '!defined code2currency(undef)', # undef arg => undef returned - '!defined code2currency("zz")', # illegal code => undef - '!defined code2currency("zzzz")', # illegal code => undef - '!defined code2currency("zzz")', # illegal code => undef - '!defined code2currency("ukp")', # gbp for sterling, not ukp - - #---- misc tests ------------------------------------------------------- - 'code2currency("all") eq "Lek"', - 'code2currency("ats") eq "Schilling"', - 'code2currency("bob") eq "Boliviano"', - 'code2currency("bnd") eq "Brunei Dollar"', - 'code2currency("cop") eq "Colombian Peso"', - 'code2currency("dkk") eq "Danish Krone"', - 'code2currency("fjd") eq "Fiji Dollar"', - 'code2currency("idr") eq "Rupiah"', - 'code2currency("chf") eq "Swiss Franc"', - 'code2currency("mvr") eq "Rufiyaa"', - 'code2currency("mmk") eq "Kyat"', - 'code2currency("mwk") eq "Kwacha"', # two different codes for Kwacha - 'code2currency("zmk") eq "Kwacha"', # used in Zambia and Malawi - 'code2currency("byr") eq "Belarussian Ruble"', # 2 codes for belarussian ruble - 'code2currency("byb") eq "Belarussian Ruble"', # - 'code2currency("rub") eq "Russian Ruble"', # 2 codes for russian ruble - 'code2currency("rur") eq "Russian Ruble"', # - - #---- some successful examples ----------------------------------------- - 'code2currency("BOB") eq "Boliviano"', - 'code2currency("adp") eq "Andorran Peseta"', # first in DATA segment - 'code2currency("zwd") eq "Zimbabwe Dollar"', # last in DATA segment - - #================================================ - # TESTS FOR currency2code - #================================================ - - #---- selection of examples which should all result in undef ----------- - '!defined currency2code()', # no argument => undef returned - '!defined currency2code(undef)', # undef arg => undef returned - '!defined currency2code("")', # empty string => undef returned - '!defined currency2code("Banana")', # illegal curr name => undef - - #---- some successful examples ----------------------------------------- - 'currency2code("Kroon") eq "eek"', - 'currency2code("Markka") eq "fim"', - 'currency2code("Riel") eq "khr"', - 'currency2code("PULA") eq "bwp"', - 'currency2code("Andorran Peseta") eq "adp"', # first in DATA segment - 'currency2code("Zimbabwe Dollar") eq "zwd"', # last in DATA segment - 'currency2code("Canadian Dollar") eq "cad"', # last in DATA segment -); - -print "1..", int(@TESTS), "\n"; - -$testid = 1; -foreach $test (@TESTS) -{ - eval "print (($test) ? \"ok $testid\\n\" : \"not ok $testid\\n\" )"; - print "not ok $testid\n" if $@; - ++$testid; -} - -exit 0; diff --git a/cpan/Locale-Codes/t/currency2code.t b/cpan/Locale-Codes/t/currency2code.t new file mode 100755 index 0000000..6df23cd --- /dev/null +++ b/cpan/Locale-Codes/t/currency2code.t @@ -0,0 +1,78 @@ +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; +} + +unshift(@INC,$dir); +use Locale::Currency; + +%type = ( "LOCALE_CODE_ALPHA" => LOCALE_CODE_ALPHA, + "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC, + ); + +sub test { + my(@test) = @_; + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return currency2code(@test); +} + +$tests = " + +_blank_ ~ _undef_ + +Banana ~ _undef_ + +~ _undef_ + +_undef_ ~ _undef_ + + +Canadian Dollar + ~ + CAD + +Kroon + ~ + EEK + +PULA + ~ + BWP + +Riel + ~ + KHR + +Zimbabwe Dollar + ~ + ZWL + +"; + +print "currency2code...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/t/language.t b/cpan/Locale-Codes/t/language.t old mode 100644 new mode 100755 index 88edcee..14364e7 --- a/cpan/Locale-Codes/t/language.t +++ b/cpan/Locale-Codes/t/language.t @@ -1,110 +1,99 @@ -#!./perl -# -# language.t - tests for Locale::Language -# - -BEGIN { - chdir 't' if -d 't'; - #@INC = '../lib'; +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; } +unshift(@INC,$dir); use Locale::Language; -no utf8; # we contain Latin-1 - -#----------------------------------------------------------------------- -# This is an array of tests. Each test is eval'd as an expression. -# If it evaluates to FALSE, then "not ok N" is printed for the test, -# otherwise "ok N". -#----------------------------------------------------------------------- -@TESTS = -( - #================================================ - # TESTS FOR code2language - #================================================ - - #---- selection of examples which should all result in undef ----------- - '!defined code2language()', # no argument => undef returned - '!defined code2language(undef)', # undef arg => undef returned - '!defined code2language("zz")', # illegal code => undef - '!defined code2language("jp")', # ja for lang, jp for country - - #---- test recent changes ---------------------------------------------- - 'code2language("ae") eq "Avestan"', - 'code2language("bs") eq "Bosnian"', - 'code2language("ch") eq "Chamorro"', - 'code2language("ce") eq "Chechen"', - 'code2language("cu") eq "Church Slavic"', - 'code2language("cv") eq "Chuvash"', - 'code2language("hz") eq "Herero"', - 'code2language("ho") eq "Hiri Motu"', - 'code2language("ki") eq "Kikuyu"', - 'code2language("kj") eq "Kuanyama"', - 'code2language("kv") eq "Komi"', - 'code2language("mh") eq "Marshall"', - 'code2language("nv") eq "Navajo"', - 'code2language("nr") eq "Ndebele, South"', - 'code2language("nd") eq "Ndebele, North"', - 'code2language("ng") eq "Ndonga"', - 'code2language("nn") eq "Norwegian Nynorsk"', - 'code2language("nb") eq "Norwegian Bokmal"', - 'code2language("ny") eq "Chichewa; Nyanja"', - 'code2language("oc") eq "Occitan (post 1500)"', - 'code2language("os") eq "Ossetian; Ossetic"', - 'code2language("pi") eq "Pali"', - '!defined code2language("sh")', # Serbo-Croatian withdrawn - 'code2language("se") eq "Sami"', - 'code2language("sc") eq "Sardinian"', - 'code2language("kw") eq "Cornish"', - 'code2language("gv") eq "Manx"', - 'code2language("lb") eq "Letzeburgesch"', - 'code2language("he") eq "Hebrew"', - '!defined code2language("iw")', # Hebrew withdrawn - 'code2language("id") eq "Indonesian"', - '!defined code2language("in")', # Indonesian withdrawn - 'code2language("iu") eq "Inuktitut"', - 'code2language("ug") eq "Uighur"', - '!defined code2language("ji")', # Yiddish withdrawn - 'code2language("yi") eq "Yiddish"', - 'code2language("za") eq "Zhuang"', - - #---- some successful examples ----------------------------------------- - 'code2language("DA") eq "Danish"', - 'code2language("eo") eq "Esperanto"', - 'code2language("fi") eq "Finnish"', - 'code2language("en") eq "English"', - 'code2language("aa") eq "Afar"', # first in DATA segment - 'code2language("zu") eq "Zulu"', # last in DATA segment - - #================================================ - # TESTS FOR language2code - #================================================ - - #---- selection of examples which should all result in undef ----------- - '!defined language2code()', # no argument => undef returned - '!defined language2code(undef)', # undef arg => undef returned - '!defined language2code("Banana")', # illegal lang name => undef - - #---- some successful examples ----------------------------------------- - 'language2code("Japanese") eq "ja"', - 'language2code("japanese") eq "ja"', - 'language2code("japanese") ne "jp"', - 'language2code("French") eq "fr"', - 'language2code("Greek") eq "el"', - 'language2code("english") eq "en"', - 'language2code("ESTONIAN") eq "et"', - 'language2code("Afar") eq "aa"', # first in DATA segment - 'language2code("Zulu") eq "zu"', # last in DATA segment -); - -print "1..", int(@TESTS), "\n"; - -$testid = 1; -foreach $test (@TESTS) -{ - eval "print (($test) ? \"ok $testid\\n\" : \"not ok $testid\\n\" )"; - print "not ok $testid\n" if $@; - ++$testid; +%type = ( "LOCALE_LANG_ALPHA_2" => LOCALE_LANG_ALPHA_2, + "LOCALE_LANG_ALPHA_3" => LOCALE_LANG_ALPHA_3, + "LOCALE_LANG_TERM" => LOCALE_LANG_TERM, + ); + +sub test { + my(@test) = @_; + + if ($test[0] eq "rename_language") { + shift(@test); + $test[2] = $type{$test[2]} + if (@test == 3 && $test[2] && exists $type{$test[2]}); + return Locale::Language::rename_language(@test,"nowarn"); + + } elsif ($test[0] eq "add_language") { + shift(@test); + $test[2] = $type{$test[2]} + if (@test == 3 && $test[2] && exists $type{$test[2]}); + return Locale::Language::add_language(@test,"nowarn"); + + } elsif ($test[0] eq "delete_language") { + shift(@test); + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return Locale::Language::delete_language(@test,"nowarn"); + + } elsif ($test[0] eq "add_language_alias") { + shift(@test); + return Locale::Language::add_language_alias(@test,"nowarn"); + + } elsif ($test[0] eq "delete_language_alias") { + shift(@test); + return Locale::Language::delete_language_alias(@test,"nowarn"); + + } elsif ($test[0] eq "language2code") { + shift(@test); + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return language2code(@test); + + } else { + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return code2language(@test); + } } -exit 0; +$tests = " + +zu ~ Zulu + +rename_language zu NewName LOCALE_LANG_FOO ~ 0 + +rename_language zu English LOCALE_LANG_ALPHA_2 ~ 0 + +rename_language zu NewName LOCALE_LANG_ALPHA_3 ~ 0 + +zu ~ Zulu + +rename_language zu NewName LOCALE_LANG_ALPHA_2 ~ 1 + +zu ~ NewName + +"; + +print "language (semi-private)...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/t/language2code.t b/cpan/Locale-Codes/t/language2code.t new file mode 100755 index 0000000..2e5bb23 --- /dev/null +++ b/cpan/Locale-Codes/t/language2code.t @@ -0,0 +1,88 @@ +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; +} + +unshift(@INC,$dir); +use Locale::Language; + +%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2, + "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3, + "LOCALE_CODE_TERM" => LOCALE_CODE_TERM, + ); + +sub test { + my(@test) = @_; + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return language2code(@test); +} + +$tests = " + +Banana ~ _undef_ + +~ _undef_ + +_undef_ ~ _undef_ + +Afar + ~ + aa + +ESTONIAN + ~ + et + +French + ~ + fr + +Greek + ~ + el + +Japanese + ~ + ja + +Zulu + ~ + zu + +english + ~ + en + +japanese + ~ + ja + +"; + +print "language2code...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/t/rename.t b/cpan/Locale-Codes/t/rename.t deleted file mode 100644 index 27f506c..0000000 --- a/cpan/Locale-Codes/t/rename.t +++ /dev/null @@ -1,79 +0,0 @@ -#!./perl -# -# rename.t - tests for Locale::Country with "uk" aliases to "gb" -# - -use Locale::Country; - -local $SIG{__WARN__} = sub { }; # muffle warnings from carp - -Locale::Country::rename_country('gb' => 'Great Britain'); - -#----------------------------------------------------------------------- -# This is an array of tests. Each test is eval'd as an expression. -# If it evaluates to FALSE, then "not ok N" is printed for the test, -# otherwise "ok N". -#----------------------------------------------------------------------- -@TESTS = -( - #================================================ - # TESTS FOR code2country - #================================================ - - #---- selection of examples which should all result in undef ----------- - '!defined code2country()', # no argument - '!defined code2country(undef)', # undef argument - '!defined code2country("zz")', # illegal code - '!defined code2country("ja")', # should be jp for country - '!defined code2country("uk")', # code for United Kingdom is 'gb' - - #---- this call should return 0, since code doesn't exist -------------- - '!Locale::Country::rename_country("ukz", "United Karz")', - - #---- some successful examples ----------------------------------------- - 'code2country("BO") eq "Bolivia"', - 'code2country("pk") eq "Pakistan"', - 'code2country("sn") eq "Senegal"', - 'code2country("us") eq "United States"', - 'code2country("ad") eq "Andorra"', # first in DATA segment - 'code2country("zw") eq "Zimbabwe"', # last in DATA segment - 'code2country("gb") eq "Great Britain"', # normally "United Kingdom" - - #================================================ - # TESTS FOR country2code - #================================================ - - #---- selection of examples which should all result in undef ----------- - '!defined country2code()', # no argument - '!defined country2code(undef)', # undef argument - '!defined country2code("Banana")', # illegal country name - - #---- some successful examples ----------------------------------------- - 'country2code("japan") eq "jp"', - 'country2code("japan") ne "ja"', - 'country2code("Japan") eq "jp"', - 'country2code("United States") eq "us"', - - 'country2code("Great Britain") eq "gb"', - 'country2code("Great Britain", LOCALE_CODE_ALPHA_3) eq "gbr"', - 'country2code("Great Britain", LOCALE_CODE_NUMERIC) eq "826"', - - 'country2code("United Kingdom") eq "gb"', - 'country2code("United Kingdom", LOCALE_CODE_ALPHA_3) eq "gbr"', - 'country2code("United Kingdom", LOCALE_CODE_NUMERIC) eq "826"', - - 'country2code("Andorra") eq "ad"', # first in DATA segment - 'country2code("Zimbabwe") eq "zw"', # last in DATA segment -); - -print "1..", int(@TESTS), "\n"; - -$testid = 1; -foreach $test (@TESTS) -{ - eval "print (($test) ? \"ok $testid\\n\" : \"not ok $testid\\n\" )"; - print "not ok $testid\n" if $@; - ++$testid; -} - -exit 0; diff --git a/cpan/Locale-Codes/t/script.t b/cpan/Locale-Codes/t/script.t deleted file mode 100644 index 989b778..0000000 --- a/cpan/Locale-Codes/t/script.t +++ /dev/null @@ -1,106 +0,0 @@ -#!./perl -# -# script.t - tests for Locale::Script -# - -use Locale::Script; - -#----------------------------------------------------------------------- -# This is an array of tests specs. Each spec is [TEST, OK_TO_DIE] -# Each TEST is eval'd as an expression. -# If it evaluates to FALSE, then "not ok N" is printed for the test, -# otherwise "ok N". If the eval dies, then the OK_TO_DIE flag is checked. -# If it is true (1), the test is treated as passing, otherwise it failed. -#----------------------------------------------------------------------- -@TESTS = -( - #================================================ - # TESTS FOR code2script - #================================================ - - #---- selection of examples which should all result in undef ----------- - ['!defined code2script()', 0], # no argument - ['!defined code2script(undef)', 0], # undef argument - ['!defined code2script("aa")', 0], # illegal code - ['!defined code2script("aa", LOCALE_CODE_ALPHA_2)', 0], # illegal code - ['!defined code2script("aa", LOCALE_CODE_ALPHA_3)', 0], # illegal code - ['!defined code2script("aa", LOCALE_CODE_NUMERIC)', 0], # illegal code - - #---- some successful examples ----------------------------------------- - ['code2script("BO") eq "Tibetan"', 0], - ['code2script("Bo") eq "Tibetan"', 0], - ['code2script("bo") eq "Tibetan"', 0], - ['code2script("bo", LOCALE_CODE_ALPHA_2) eq "Tibetan"', 0], - ['code2script("bod", LOCALE_CODE_ALPHA_3) eq "Tibetan"', 0], - ['code2script("330", LOCALE_CODE_NUMERIC) eq "Tibetan"', 0], - - ['code2script("yi", LOCALE_CODE_ALPHA_2) eq "Yi"', 0], # last in DATA - ['code2script("Yii", LOCALE_CODE_ALPHA_3) eq "Yi"', 0], - ['code2script("460", LOCALE_CODE_NUMERIC) eq "Yi"', 0], - - ['code2script("am") eq "Aramaic"', 0], # first in DATA segment - - - #================================================ - # TESTS FOR script2code - #================================================ - - #---- selection of examples which should all result in undef ----------- - ['!defined code2script("BO", LOCALE_CODE_ALPHA_3)', 0], - ['!defined code2script("BO", LOCALE_CODE_NUMERIC)', 0], - ['!defined script2code()', 0], # no argument - ['!defined script2code(undef)', 0], # undef argument - ['!defined script2code("Banana")', 0], # illegal script name - - #---- some successful examples ----------------------------------------- - ['script2code("meroitic") eq "me"', 0], - ['script2code("burmese") eq "my"', 0], - ['script2code("Pahlavi") eq "ph"', 0], - ['script2code("Vai", LOCALE_CODE_ALPHA_3) eq "vai"', 0], - ['script2code("Tamil", LOCALE_CODE_NUMERIC) eq "346"', 0], - ['script2code("Latin") eq "la"', 0], - ['script2code("Latin", LOCALE_CODE_ALPHA_3) eq "lat"', 0], - - #================================================ - # TESTS FOR script_code2code - #================================================ - - #---- selection of examples which should all result in undef ----------- - ['!defined script_code2code("bo", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_3)', 0], - ['!defined script_code2code("aa", LOCALE_CODE_ALPHA_2, LOCALE_CODE_ALPHA_3)', 0], - ['!defined script_code2code("aa", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_3)', 0], - ['!defined script_code2code("aa", LOCALE_CODE_ALPHA_2)', 1], - ['!defined script_code2code()', 1], # no argument - ['!defined script_code2code(undef)', 1], # undef argument - - #---- some successful examples ----------------------------------------- - ['script_code2code("BO", LOCALE_CODE_ALPHA_2, LOCALE_CODE_ALPHA_3) eq "bod"', 0], - ['script_code2code("bod", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_2) eq "bo"', 0], - ['script_code2code("Phx", LOCALE_CODE_ALPHA_3, LOCALE_CODE_ALPHA_2) eq "ph"', 0], - ['script_code2code("295", LOCALE_CODE_NUMERIC, LOCALE_CODE_ALPHA_3) eq "pqd"', 0], - ['script_code2code(170, LOCALE_CODE_NUMERIC, LOCALE_CODE_ALPHA_3) eq "tna"', 0], - ['script_code2code("rr", LOCALE_CODE_ALPHA_2, LOCALE_CODE_NUMERIC) eq "620"', 0], - -); - -print "1..", int(@TESTS), "\n"; - -$testid = 1; -foreach $test (@TESTS) -{ - eval "print (($test->[0]) ? \"ok $testid\\n\" : \"not ok $testid\\n\" )"; - if ($@) - { - if (!$test->[1]) - { - print "not ok $testid\n"; - } - else - { - print "ok $testid\n"; - } - } - ++$testid; -} - -exit 0; diff --git a/cpan/Locale-Codes/t/script2code.t b/cpan/Locale-Codes/t/script2code.t new file mode 100755 index 0000000..415e1a6 --- /dev/null +++ b/cpan/Locale-Codes/t/script2code.t @@ -0,0 +1,55 @@ +#!/usr/bin/perl -w + +require 5.002; + +$runtests=shift(@ARGV); +if ( -f "t/testfunc.pl" ) { + require "t/testfunc.pl"; + $dir="./lib"; + $tdir="t"; +} elsif ( -f "testfunc.pl" ) { + require "testfunc.pl"; + $dir="../lib"; + $tdir="."; +} else { + die "ERROR: cannot find testfunc.pl\n"; +} + +unshift(@INC,$dir); +use Locale::Script; + +%type = ( "LOCALE_SCRIPT_ALPHA" => LOCALE_SCRIPT_ALPHA, + "LOCALE_SCRIPT_NUMERIC" => LOCALE_SCRIPT_NUMERIC, + ); + +sub test { + my(@test) = @_; + $test[1] = $type{$test[1]} + if (@test == 2 && $test[1] && exists $type{$test[1]}); + return script2code(@test); +} + +$tests = " + +~ _undef_ + +Phoenician ~ Phnx + +Phoenician LOCALE_SCRIPT_NUMERIC ~ 115 + +"; + +print "script2code...\n"; +test_Func(\&test,$tests,$runtests); + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: diff --git a/cpan/Locale-Codes/t/testfunc.pl b/cpan/Locale-Codes/t/testfunc.pl new file mode 100644 index 0000000..affbf95 --- /dev/null +++ b/cpan/Locale-Codes/t/testfunc.pl @@ -0,0 +1,480 @@ +#!/usr/bin/perl -w +# Copyright (c) 1996-2010 Sullivan Beck. All rights reserved. +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. + +# SB_TEST.PL +############################################################################### +# HISTORY +# +# 1996-??-?? Wrote initial version for Date::Manip module +# +# 1996-2001 Numerous changes +# +# 2001-03-29 Rewrote to make it easier to drop in for any module. +# +# 2001-06-19 Modifications to make space delimited stuff work better. +# +# 2001-08-23 Added support for undef args. +# +# 2007-08-14 Better support for undef/blank args. +# +# 2008-01-02 Better handling of $runtests. +# +# 2008-01-24 Better handling of undef/blank args when arguements are +# entered as lists instead of strings. +# +# 2008-01-25 Created a global $testnum variable to store the test number +# in. +# +# 2008-11-05 Slightly better handling of blank/undef in returned values. +# +# 2009-09-01 Added "-l" value to $runtests. +# +# 2009-09-30 Much better support for references. +# +# 2010-02-05 Fixed bug in passing tests as lists +# +# 2010-04-05 Renamed to testfunc.pl to avoid being called in a core module + +############################################################################### + +use Storable qw(dclone); + +# Usage: test_Func($funcref,$tests,$runtests,@extra)=@_; +# +# This takes a series of tests, runs them, compares the output of the tests +# with expected output, and reports any differences. Each test consists of +# several parts: +# a function passed in as a reference ($funcref) +# a series of arguments to be passed to the function +# the expected output from the function call +# +# Tests may be passed in in two methods: as a string, or as a reference. +# +# Using the string case, $tests is a newline delimited string. Each test +# takes one or more lines of the string. Tests are separated from each +# other by a blank line. +# +# Arguments and return value(s) may be written as a single line: +# ARG1 ARG2 ... ARGn ~ VAL1 VAL2 ... VALm +# or as multiple lines: +# ARG1 +# ARG2 +# ... +# ARGn +# ~ +# VAL1 +# VAL2 +# ... +# VALm +# +# If any of the arguments OR values have spaces in them, only the multiline +# form may be used. +# +# If there is exactly one return value, the separating tilde is +# optional: +# ARG1 ARG2 ... ARGn VAL1 +# or: +# ARG1 +# ARG2 +# ... +# ARGn +# VAL +# +# It is valid to have a function with no arguments or with no return +# value (or both). The "~" must be used: +# +# ARG1 ARG2 ... ARGn ~ +# +# ~ VAL1 VAL2 ... VALm +# +# ~ +# +# Leading and trailing space is ignored in the multi-line format. +# +# If desired, any of the ARGs or VALs may be the word "_undef_" which +# will be strictly interpreted as the perl undef value. The word "_blank_" +# may also be used to designate a defined but empty string. +# +# They may also be (in the multiline format) of the form: +# +# \ STRING : a string reference +# +# [] LIST : a list reference (where LIST is a +# comma separated list) +# +# [SEP] LIST : a list reference (where SEP is a +# single character separator) +# +# {} HASH : a hash reference (where HASH is +# a comma separated list) +# +# {SEP} HASH : a hash reference (where SEP is a +# single character separator) +# +# Alternately, the tests can be passed in as a list reference: +# $tests = [ +# [ +# [ @ARGS1 ], +# [ @VALS1 ] +# ], +# [ +# [ @ARGS2 ], +# [ @VALS2 ] +# ], ... +# ] +# +# @extra are extra arguments which are added to the function call. +# +# There are several ways to run the tests, depending on the value of +# $runtests. +# +# If $runtests is 0, the tests are run in a non-interactive way suitable +# for running as part of a "make test". +# +# If $runtests is a positive number, it runs runs all tests starting at +# that value in a way suitable for running interactively. +# +# If $runtests is a negative number, it runs all tests starting at that +# value, but providing feedback at each test. +# +# If $runtests is a string "=N" (where N is a number), it runs only +# that test. +# +# If $runtests is the string "-l", it lists the tests and the expected +# output without running any. + +sub test_Func { + my($funcref,$tests,$runtests,@extra)=@_; + my(@tests); + + $runtests = 0 if (! $runtests); + my($starttest,$feedback,$endtest,$runtest); + if ($runtests eq "0" or $runtests eq "-0") { + $starttest = 1; + $feedback = 1; + $endtest = 0; + $runtest = 1; + } elsif ($runtests =~ /^\d+$/){ + $starttest = $runtests; + $feedback = 0; + $endtest = 0; + $runtest = 1; + } elsif ($runtests =~ /^-(\d+)$/) { + $starttest = $1; + $feedback = 1; + $endtest = 0; + $runtest = 1; + } elsif ($runtests =~ /^=(\d+)$/) { + $starttest = $1; + $feedback = 1; + $endtest = $1; + $runtest = 1; + } elsif ($runtests eq "-l") { + $starttest = 1; + $feedback = 1; + $endtest = 0; + $runtest = 0; + } else { + die "ERROR: unknown argument(s): $runtests"; + } + + my($tests_as_list) = 0; + if (ref($tests) eq "ARRAY") { + @tests = @$tests; + $tests_as_list = 1; + + } else { + # Separate tests. + + my($comment)="#"; + my(@lines)=split(/\n/,$tests); + my(@test); + while (@lines) { + my $line = shift(@lines); + $line =~ s/^\s*//; + $line =~ s/\s*$//; + next if ($line =~ /^$comment/); + + if ($line ne "") { + push(@test,$line); + next; + } + + if (@test) { + push(@tests,[ @test ]); + @test=(); + } + } + if (@test) { + push(@tests,[ @test ]); + } + + # Get arg/val lists for each test. + + foreach my $test (@tests) { + my(@tmp)=@$test; + my(@arg,@val); + + # single line test + @tmp = split(/\s+/,$tmp[0]) if ($#tmp == 0); + + my($sep)=-1; + my($i); + for ($i=0; $i<=$#tmp; $i++) { + if ($tmp[$i] eq "~") { + $sep=$i; + last; + } + } + + if ($sep<0) { + @val=pop(@tmp); + @arg=@tmp; + } else { + @arg=@tmp[0..($sep-1)]; + @val=@tmp[($sep+1)..$#tmp]; + } + $test = [ [@arg],[@val] ]; + } + } + + my($ntest)=$#tests + 1; + print "1..$ntest\n" if ($feedback && $runtest); + + my(@t); + if ($endtest) { + @t = ($starttest..$endtest); + } else { + @t = ($starttest..$ntest); + } + + foreach my $t (@t) { + $::testnum = $t; + + my (@arg); + if ($tests_as_list) { + @arg = @{ $tests[$t-1][0] }; + } else { + my $arg = dclone($tests[$t-1][0]); + @arg = @$arg; + print_to_vals(\@arg); + } + + my $argprt = dclone(\@arg); + my @argprt = @$argprt; + vals_to_print(\@argprt); + + my $exp = dclone($tests[$t-1][1]); + my @exp = @$exp; + print_to_vals(\@exp); + vals_to_print(\@exp); + + # Run the test + + my ($ans,@ans); + if ($runtest) { + @ans = &$funcref(@arg,@extra); + } + vals_to_print(\@ans); + + # Compare the results + + foreach my $arg (@arg) { + $arg = "_undef_" if (! defined $arg); + $arg = "_blank_" if ($arg eq ""); + } + $arg = join("\n ",@argprt,@extra); + $ans = join("\n ",@ans); + $exp = join("\n ",@exp); + + if (! $runtest) { + print "########################\n"; + print "Test = $t\n"; + print "Args = $arg\n"; + print "Expected = $exp\n"; + } elsif ($ans ne $exp) { + print "not ok $t\n"; + warn "########################\n"; + warn "Args = $arg\n"; + warn "Expected = $exp\n"; + warn "Got = $ans\n"; + warn "########################\n"; + } else { + print "ok $t\n" if ($feedback); + } + } +} + +# The following is similar but it takes input from an input file and +# sends output to an output file. +# +# $files is a reference to a list of tests. If one of the tests is named +# "foobar", the input is from "foobar.in", output is to "foobar.out", and +# the expected output is in "foobar.exp". +# +# The function stored in $funcref is called as: +# &$funcref($in,$out,@extra) +# where $in is the name of the input file, $out is the name of the output +# file, and @extra are any additional arguments that are required. +# +# The function should return 0 on success, or an error message. + +sub test_File { + my($funcref,$files,$runtests,@extra)=@_; + my(@files)=@$files; + + $runtests=0 if (! $runtests); + + my($ntest)=$#files + 1; + print "1..$ntest\n" if (! $runtests); + + my(@t); + if ($runtests > 0) { + @t = ($runtests..$ntest); + } elsif ($runtests < 0) { + @t = (-$runtests); + } else { + @t = (1..$ntest); + } + + foreach my $t (@t) { + $::testnum = $t; + my $test = $files[$t-1]; + my $expf = "$test.exp"; + my $outf = "$test.out"; + + if (! -f $test || ! -f $expf) { + print "not ok $t\n"; + warn "Test: $test: missing input/outpuf information\n"; + next; + } + + my $err = &$funcref($test,$outf,@extra); + if ($err) { + print "not ok $t\n"; + warn "Test: $test: $err\n"; + next; + } + + local *FH; + open(FH,$expf) || do { + print "not ok $t\n"; + warn "Test: $test: $!\n"; + next; + }; + my @exp = ; + close(FH); + my $exp = join("",@exp); + open(FH,$outf) || do { + print "not ok $t\n"; + warn "Test: $test: $!\n"; + next; + }; + my @out = ; + close(FH); + my $out = join("",@out); + + if ($out ne $exp) { + print "not ok $t\n"; + warn "Test: $test: output differs from expected value\n"; + next; + } + + print "ok $t\n" if (! $runtests); + } +} + +# Converts a printable version of arguments to actual arguments +sub print_to_vals { + my($listref) = @_; + + foreach my $arg (@$listref) { + next if (! defined($arg)); + if ($arg eq "_undef_") { + $arg = undef; + + } elsif ($arg eq "_blank_") { + $arg = ""; + + } elsif ($arg =~ /^\\\s*(.*)/) { + $str = $1; + $arg = \$str; + + } elsif ($arg =~ /^\[(.?)\]\s*(.*)/) { + my($sep,$str) = ($1,$2); + $sep = "," if (! $sep); + my @list = split(/\Q$sep\E/,$str); + foreach my $e (@list) { + $e = "" if ($e eq "_blank_"); + $e = undef if ($e eq "_undef_"); + } + $arg = \@list; + + } elsif ($arg =~ /^\{(.?)\}\s*(.*)/) { + my($sep,$str) = ($1,$2); + $sep = "," if (! $sep); + my %hash = split(/\Q$sep\E/,$str); + foreach my $key (keys %hash) { + my $val = $hash{$key}; + $hash{$key} = undef if ($val eq "_undef_"); + $hash{$key} = "" if ($val eq "_blank_"); + } + $arg = \%hash; + } + } +} + +# Converts arguments to a printable version. +sub vals_to_print { + my($listref) = @_; + + foreach my $arg (@$listref) { + if (! defined $arg) { + $arg = "_undef_"; + + } elsif (! ref($arg)) { + $arg = "_blank_" if ($arg eq ""); + + } else { + my $ref = ref($arg); + if ($ref eq "SCALAR") { + $arg = "\\ $$arg"; + + } elsif ($ref eq "ARRAY") { + my @list = @$arg; + foreach my $e (@list) { + $e = "_undef_", next if (! defined($e)); + $e = "_blank_" if ($e eq ""); + } + $arg = join(" ","[",join(", ",@list),"]"); + + } elsif ($ref eq "HASH") { + %hash = %$arg; + foreach my $key (keys %hash) { + my $val = $hash{$key}; + $hash{$key} = "_undef_", next if (! defined($val)); + $hash{$key} = "_blank_" if ($val eq "_blank_"); + } + $arg = join(" ","{", + join(", ",map { "$_ => $hash{$_}" } + (sort keys %hash)), "}"); + $arg =~ s/ +/ /g; + } + } + } +} + +1; +# Local Variables: +# mode: cperl +# indent-tabs-mode: nil +# cperl-indent-level: 3 +# cperl-continued-statement-offset: 2 +# cperl-continued-brace-offset: 0 +# cperl-brace-offset: 0 +# cperl-brace-imaginary-offset: 0 +# cperl-label-offset: -2 +# End: + diff --git a/cpan/Locale-Codes/t/uk.t b/cpan/Locale-Codes/t/uk.t deleted file mode 100644 index 95c2118..0000000 --- a/cpan/Locale-Codes/t/uk.t +++ /dev/null @@ -1,65 +0,0 @@ -#!./perl -# -# uk.t - tests for Locale::Country with "uk" aliases to "gb" -# - -use Locale::Country; - -Locale::Country::alias_code('uk' => 'gb'); - -#----------------------------------------------------------------------- -# This is an array of tests. Each test is eval'd as an expression. -# If it evaluates to FALSE, then "not ok N" is printed for the test, -# otherwise "ok N". -#----------------------------------------------------------------------- -@TESTS = -( - #================================================ - # TESTS FOR code2country - #================================================ - - #---- selection of examples which should all result in undef ----------- - '!defined code2country()', # no argument - '!defined code2country(undef)', # undef argument - '!defined code2country("zz")', # illegal code - '!defined code2country("ja")', # should be jp for country - - #---- some successful examples ----------------------------------------- - 'code2country("BO") eq "Bolivia"', - 'code2country("pk") eq "Pakistan"', - 'code2country("sn") eq "Senegal"', - 'code2country("us") eq "United States"', - 'code2country("ad") eq "Andorra"', # first in DATA segment - 'code2country("zw") eq "Zimbabwe"', # last in DATA segment - 'code2country("uk") eq "United Kingdom"', # normally "gb" - - #================================================ - # TESTS FOR country2code - #================================================ - - #---- selection of examples which should all result in undef ----------- - '!defined country2code()', # no argument - '!defined country2code(undef)', # undef argument - '!defined country2code("Banana")', # illegal country name - - #---- some successful examples ----------------------------------------- - 'country2code("japan") eq "jp"', - 'country2code("japan") ne "ja"', - 'country2code("Japan") eq "jp"', - 'country2code("United States") eq "us"', - 'country2code("United Kingdom") eq "uk"', - 'country2code("Andorra") eq "ad"', # first in DATA segment - 'country2code("Zimbabwe") eq "zw"', # last in DATA segment -); - -print "1..", int(@TESTS), "\n"; - -$testid = 1; -foreach $test (@TESTS) -{ - eval "print (($test) ? \"ok $testid\\n\" : \"not ok $testid\\n\" )"; - print "not ok $testid\n" if $@; - ++$testid; -} - -exit 0;