1Revision history for Perl CPAN module Locale::SubCountry 2 32.07 23 Oct 2021 4 Added Kosovo https://laendercode.net/en/2-letter-code/xk, RT bug #139734 5 Updated to latest codes from: https://salsa.debian.org/iso-codes-team/ 6 72.06 12 Jul 2019 8 Used latest iso-codes package from Debian Salsa 92.05 6 Apr 2019 10 Used latest iso-codes package from Debian Salsa 11 122.04 29 Dec 2017 13 Added strict and warnings pragmas to Codes.pm as per github request by manwar 14 152.03 27 Dec 2017 16 Updated to alioth.debian.org codes 3.77 (Dec 2017) 17 182.02 7 Mar 2017 19 Fixed RT bug #120002, name space pollution 20 Updated to alioth.debian.org codes 3.74 (Jan 2017) 21 222.01 15 Aug 2016 23 24 Added country's numeric code, accessed from the country_number method 25 Added 'levels' method, return all level types and their totals in a sub country 26 Added JSON to dependency, fix for RT bug #116926, 27 282.00 11 Aug 2016 29 Sourced ISO codes from alioth.debian.org in JSON format, 30 Many French Metropolitan departments and Italian provinces added 31 Renamed SubCountry/Data.pm to Codes.pm 32 'category' method renamed to 'level', as it reflects a sub country's size 33 removed FIPS10_4_code and ISO3166_2_code methods as FIPS is deprecated 34 removed regional_division method, info no longer available from new source data 35 Improved documentation 36 371.66 23 Jul 2016 38 Github integration 39 Improved documentation 40 Updated France, all regions reorganised in January 2016 41 Updated Italy, all regions reorganised in January 2015 42 Distrito Federal renamed to Ciudad de M�xico, in Mexico 43 441.65 25 Apr 2016 45 Fixed #110905, wrong code for Sulawesi Barat 46 471.64 7 Apr 2015 48 Suppressed warnings on printing wide characters in demo.pl 49 removed indirect object notation for 'new' method 50 Fixed #100617, several typos 51 521.63 9 Apr 2014 53 Check that a country has sub countries before searching for code and full name, fix for RT bug 89706 54 Remove minuimum versions for utf8 and strict modules, fix for RT bug 92587 55 561.62 23 Jul 2013 57 Removed POD utf encoding directive from SubCountry.pm again and removed utf8 58 characters from the POD section. They are still causing errors on selected 59 platforms and versions of Perl. Replaced with ASCII text. Fix for RT bug 71228 60 611.61 15 Feb 2013 62 Small correction for German data 63 Replaced POD utf encoding directive in SubCountry.pm as some accented characters occur in the POD 64 651.60 13 Feb 2013 66 67 NOTE: On September 2, 2008, FIPS 10-4 was one of ten standards withdrawn by NIST as a 68 Federal Information Processing Standard. FIPS data will remain in this module for now. 69 I may need to withdraw it if it becomes too difficult to align FIPS data with updates to ISO data 70 71 Added FIPS data to several countries 72 Added Communities to Spain 73 Added Italian regions 74 Allowed for blank lines within subcountry XML data 75 Added FIPS codes to many countries 76 Removed POD utf encoding directive from SubCountry.pm (only needed in Data.pm), fix for RT bug 82933 77 781.59 22 Jan 2013 79 Added $VERSION variable into the Locale::SubCountry::World package 80 811.58 22 Jan 2013 82 Added '=encoding utf8' to Data.pm to allow POD formatters to work 83 Changed minimimum required version of Test::Pod and Test::Pod::Coverage to 1.04, fix for RT bug 82717 84 851.57 14 Jan 2013 86 Moved declaration of $VERSION into the Locale::SubCountry package, fix for RT bug 79734 87 88 891.56 7 July 2012 90 Removed use of $ENV{AUTHOR_TESTING} for running POD tests, caused problems for CPAN testers 91 921.55 5 July 2012 93 Fixed xml tagging in Macedonian data, fix for RT bug 78157 94 Minor updates to data 95 Use $ENV{AUTHOR_TESTING} for running POD tests, fix for RT bug 78123 96 Print message to STDERR (via call to die) on badly formed country and sub country data 97 98 Thanks to Ron Savage for the following: 99 Use Test::More everywhere rather than Test::Simple sometimes. 100 Add t/test.t. 101 Clean up pre-reqs in Makefile.PL 102 Add Build.PL. 103 Add encoding to POD in Locale::SubCountry 104 1051.51 2 July 2012 106 Many new countries added, thanks to Ron Savage 107 Sub countries added to existing countries 108 Many corrections to sub country data 109 Changed to all lower case for the spelling of 'and', 'of' 'the' etc that may occur in names 110 Added 'use utf8' to main.t 111 112 1131.50 18 Apr 2012 114 Added Makefile.PL back to the distribution set 115 1161.49 18 Apr 2012 117 Fixed errors in XML coding 118 Fixed the Brazilian state Rond�nia, fix for RT bug 73830 119 Added 3 new Indonesian provinces, fix for RT bug 74763 120 Added 'use utf8' to Data.pm, fix for RT bug 73829 121 Added Metro Manila in Philippines, fixed some other provinces, fix for RT bug 69678 122 1231.48 17 Apr 2012 124 Added South Sudan as a new country 125 Removed states from Sudan 126 Added New Caledonia, Palau, San Marino, Guernsey, Jersey, Saint Martin, 127 Saint Barth�lemy, Sint Maarten, Isle Of Man 128 1291.47 29 Apr 2011 130 Converted tests to use Test::Simple in main.t 131 Added test for regional_division 132 Added test for initialising with 2 letter country code 133 Improved synopsis 134 135 Fixed typo in 'new' method that was stopping the use of 2 letter country codes 136 being used as a parameter. Note, this also caused a faliure in the tests for 137 the dependant module, Lingua::EN::AddressParse 138 139 1401.46 6 Apr 2011 141 Fixed main.t so tests now use title cased country names. 142 Corrected typos in Changes, README, SubCountry.pm demo.pl, thanks to Glenn Fowler 143 1441.45 5 Apr 2011 145 Corrected FIPS codes for Repbulic or Ireland and other countries, thanks to Michele Ongaro 146 Added data for Montenegro as a separate country 147 Added data for Serbia as a separate country 148 Added Hong Kong and it's districts (it also appears as a region of China) 149 Corrections to documentation 150 151 Country names are now stored in title case, not all capitals, as in Fiji and not FIJI. 152 This was done to improve readability (original ISO date used upper case) 153 NOTE, this means that when calling the new method with a country name, you need 154 to specify the name in title case. It will not work if you use upper case. This 155 could cause some backward compatibility issues from your calling code. 156 1571.44 20 Jan 2011 158 Moved Locale::SubCountryData to Locale::SubCountry::Data name space 159 Added use struct and use warnings 160 Moved all global variables to the Locale::SubCountry name space 161 1621.43 14 Jan 2011 163 Fixed the number of tests in main.t, should be 17, not 15 164 1651.42 13 Jan 2011 166 Changed name of UK region St. Helens to Saint Helens, fix for RT bug 38599 167 Fixed FIPS codes for UK regions Stafforshire and Saint Helens 168 Removed trailing blanks, fix for RT bug 38597 169 Changed encoding of XML data to UTF-8, thanks to Benjamin Erhart. Fix for RT bug 38559 170 Moved XML data to separate package, Locale::SubCountry::Data and encoded this file as UTF-8 171 Added additional tests for unknown sub country codes and names 172 1731.41 20 Apr 2008 174 Added FIPS codes for UK, thanks to TJMATHER for patch, RT bug #32899 175 1761.40 12 Jan 2008 177 Changed regexp match on XML country field to account for both Unix and MSDOS line endings 178 Converted files to Unix line endings 179 1801.39 6 Jan 2008 181 Allowed for sub countries with no ISO code, such as Shariff Kabunsuan in the Phillipines 182 Thanks to Matt Loschert for pointing this out. 183 184 1851.38 26 Nov 2006 186 Changed sub country names in Sudan and Phillipines 187 Added examples/demo.pl 188 1891.37 02 Apr 2006 190 Removed invalid characters in data for Iran, United Arab Emirates and Oman 191 Removed alternate names (appended to end of main names in brackets) from many sub countries 192 193 NOTE: new method now issues warning and returns undef if invalid country code or 194 name parameter is passed. Previous versions died inside the new method. 195 1961.36 11 Jul 2005 197 Added regions for Andorra 198 Added regions for Grenada 199 Updated distribution to current CPAN requirements 200 201 2021.35 04 Jul 2005 203 Fixed problem with name space pollution for $VERSION variable 204 205 Added data for the following countries 206 Antigua and Barbuda 207 Andorra 208 Aruba 209 Bhutan 210 Nauru 211 Seychelles 212 213 For Cape Verde, changed Calheta de S�o Miguel to S�o Miguel 214 For Venezuela, changed Distrito Federal to Distrito Capital 215 Added districts for Honduras 216 2171.34 17 Apr 2004 218 Fixed typo in XML data for American Samoa 219 220 Added 'has_sub_countries' method to determine if a country has any sub countries 221 (some such a Singapore do not). Updated synopsis to show it's use. 222 2231.33 13 Feb 2004 224 Fixed pattern matching in data loader to allow for accented characters 225 2261.32 13 Feb 2004 227 Added 'use locale' to main.t to stop 'make test' errors 228 2291.31 12 Feb 2004 230 Moved XML data back into main module. 231 Corrected documentation 232 2331.30 8 Feb 2004 234 235 Completely updated data, many new countries and sub countries added 236 Added countries without sub countries, such as Singapore 237 Stored data in separate file in XML format 238 239 Added method 'category' to return the type of subcountry such as state, city etc 240 NOTE: this replaces the 'sub_country_type' method 241 242 Added method 'regional_division' to return the regional_division of subcountry 243 such as SCT (Scotland) for Edinburgh 244 2451.23 16 Jul 2003 246 247 Added data for Finland and Singapore, thanks to Chris McKay 248 2491.22 18 Jan 2003 250 Removed use of $_ in initialization code, as suggested by Ilya Martynov 251 Corrected country code for Iran, thanks to Todd A. Green 252 Removed Exporter references, as suggested by TJ Mather 253 Added Timor-Leste as a new country (East Timor) 254 Changed Canadian province of Newfoundland to Newfoundland and Labrador 255 256 2571.21 9 Sep 2002 258 Fixed bug in test script main.t 259 2601.20 7 Sep 2002 261 262 Added methods to new Locale::SubCountry::World package 263 - new 264 - all_full_names 265 - all_codes 266 - full_name_code_hash 267 - code_full_name_hash 268 269 NOTE! 270 all_full_names method replaces the stand alone all_country_names function 271 all_codes method replaces the stand alone all_country_codes function 272 The above method names duplicate existing method names (polymorphism), 273 so make sure you are working with the right type of object first. 274 275 These changes were necessary because of user requests for country name 276 and code look ups prior to sub-country lookups. Previous versions would not 277 work with Locale::Country because of a clash in exported names. Thanks to 278 Todd Green for this suggestion. 279 280 Added the FIPS 10-4 (US standard) for many sub countries 281 Added FIPS10_4_code method 282 Added ISO3166_2_code method 283 Added many corrections to sub country names 284 Thanks to TJ Mather for adding FIPS codes and fixing other data errors 285 286 Added extra tests to main.t 287 Prefixed internal data structure elements with a dash, to follow OO convention 288 2891.11 23 Mar 2002 290 Corrected codes for Corsica, France, thanks to Mathias Herberts 291 2921.10 04 Jan 2002 293 Replaced INIT block with anonymous subroutine. This removed problems 294 that occurred when mod_perl or eval statements were used. 295 2961.09 25 Jul 2001 297 Added code for US, West Virginia (WV), thanks to Michelle Agnew 298 2991.08 16 Mar 2001 300 Made many corrections to country data to align it with ISO:3166-2 standard 301 Defined sub country types for all countries 302 Added information for Israel and Albania 303 Removed some MS-DOS line terminators that were generating warnings 304 Added two more tests to main.t 305 306 3071.07 12 Mar 2001 308 Corrected errors in German sub countries thanks to Lars Steubesand 309 310 Corrected errors in data for Austria, Poland, Romania, Turkey, Germany and 311 Columbia. Thanks to Philip Newton. 312 3131.06 20 Feb 2001 314 Allowed countries to be specified by either full name or two letter code 315 Made country names compatible with ISO 3166-1 standard 316 Added country_code method to retrieve ISO code for current object 317 Added all_country_codes method to retrieve ISO codes for all countries 318 Corrected abbreviation for Canadian province of Nunavut 319 Thanks to Trevor Schellhorn for these suggestions 320 321 Corrected two Belgium sub countries. Thanks to Wim Verhaegen 322 323 3241.05 15 Oct 2000 325 sub_country_type method returns 'unknown' when no data defined 326 Fixed bug in mismatch count in main.t test module 327 3281.04 04 Oct 2000 329 Added all remaining countries, thanks to Alastair McKinstry 330 Included sub country type (state, county etc) in lookup data 331 Added country and sub_country_type methods 332 Accounted for sub country codes of 0 333 3341.03 20 Aug 2000 335 Added many more countries, thanks to Alastair McKinstry 336 Now account for any incorrect capitalization of sub country names 337 _clean subroutine only removes dots and spaces, dashes are now allowed 338 Added subroutine to return array of countries that have lookup data 339 Added test in main.t to convert all codes to names and back again 340 Allowed for leading or trailing white space in __DATA__ entries 341 3421.02 14 May 2000 343 Added Canadian province of Nunavut, thanks to Steve Taylor 344 3451.01 25 Apr 2000 346 To follow the approach of ISO 3166-2 347 - renamed module from RegionAbbrev to SubCountry 348 - replaced all references to 'abbreviation' with 'code' 349 350 Improved regexes in _clean, thanks to Mark Summerfield 351 Replaced regexp with hash lookup for valid countries 352 Accepted all forms of upper/lower case in country name 353 3541.00 8 Apr 2000 355 First Release 356