1Locale::Codes::Changes(U3s)er Contributed Perl DocumentatLioocnale::Codes::Changes(3)
2
3
4
6 Locale::Codes::Changes - details changes to Locale::Codes
7
9 This describes the changes made to modules in the Locale-Codes
10 distribution. Major changes are marked with asterisks (*). For the
11 most part, all modules have remained backward compatible at every
12 release, but occasionally a change is made which is backward
13 incompatible. These are marked with an exclamation mark (!).
14
15 As of 3.00, the codes are autogenerated from the standards. With each
16 release, codes will be re-generated and tested to see if any code
17 changed. Any time there are any changes to the codes, it will be
18 flagged below with a change: NEW CODE(s).
19
20 I intend to check for new codes four times a year (March, June,
21 September, December). I will also check on request, so if a code
22 changes that you use, feel free to contact me. Any time there are new
23 codes, I will add them to the module and release a new version.
24
28 Documentation fixes
29 Some of the examples were not correct. RT 84589
30
31 Some typos corrected. RT 85692
32
34 NEW CODE(s)
35
37 NEW CODE(s)
38
39 Syria alias
40 Syria added as an alias. RT 82747
41
42 FIPS-10 country codes deprecated
43 The FIPS-10 document is being withdrawn. It was deprecated in
44 2008, and is being updated now only until all the agencies that use
45 it have switched to something else. The current version no longer
46 lists the long names for countries. These long names (such as
47 'Republic of Albania' for Albania) only appeared in the old FIPS-10
48 document which is no longer available, so they are no longer
49 available in this module.
50
51 I will continue to support the FIPS-10 codeset as long as it is
52 available, but at that point, it will be withdrawn immediately. If
53 an official end-of-life date is announced, I will include a notice
54 here. Otherwise, support for the codeset will be discontinued when
55 the document is withdrawn.
56
57 You are encouraged to no longer use the FIPS-10 codeset.
58
59 Domain country codes now come from ISO 3166
60 The IANA domain codes have changed slightly. The IANA no longer
61 publishes a list of countries associated with their codes.
62 Instead, they use the ISO 3166 codes and country names. However,
63 they support a few non-standard codes, so I will continue to
64 maintain this codeset. The domain codes are now lowercase to
65 correspond to the ISO 3166 codes.
66
68 NEW CODE(s)
69
71 NEW CODE(s)
72
73 Updated perl version required
74 Changed 'require 5.002' (which dated back to the version 2.xx
75 Locale-Codes) to 'require 5.006'. Some features used in Locale-
76 Codes are not supported that far back. Nicholas Clark
77
78 Sorted deprecated codes
79 The codes in the generated deprecated codes modules were not sorted
80 making version diffs bigger than they should be. Nicholas Clark
81
83 NEW CODE(s)
84
86 NEW CODE(s)
87
88 Added limited support for deprecated codes
89 The code2XXX, XXX2code, all_XXX_codes, and all_XXX_names functions
90 now support retired codes. RT 71124
91
92 Fixed capitalization
93 The 'South Sudan' country was all caps. RT 71024
94
95 Pod tests off by default
96 The pod tests will not run at install time. RT 71122
97
98 Codesets may be specified by name
99 All codesets may be specified by a constant or by their name now.
100 Previously, they were specified only by a constant.
101
102 alias_code deprecated
103 The alias_code function exists for backward compatibility. It has
104 been replaced by rename_country_code . The alias_code function
105 will be removed sometime after September, 2013 .
106
107 Code cleanup
108 All work is now done in the central module (Locale::Codes).
109 Previously, some was still done in the wrapper modules
110 (Locale::Codes::*) but that is gone now.
111
112 Added LangFam module
113 Added Language Family codes (langfam) as defined in ISO 639-5.
114
116 NEW CODE(s)
117
118 No longer use CIA data
119 The CIA world added non-standard values, so I no longer use it as a
120 source of data. Based on a report by Michiel Beijen.
121
123 NEW CODE(s)
124
125 Added new types of codes
126 Added Language Extension codes (langext) and Language Variation
127 codes (langvar) as defined in the IANA language registry.
128
129 Added new codeset(s)
130 Added language codes from ISO 639-5
131
132 Added language/script codes from the IANA language subtag registry
133
134 Bug fixes
135 Fixed an uninitialized value warning. RT 67438
136
137 Fixed the return value for the all_XXX_codes and all_XXX_names
138 functions. RT 69100
139
140 Reorganized code
141 Reorganized modules to move Locale::MODULE to Locale::Codes::MODULE
142 to allow for cleaner future additions. The original four modules
143 (Locale::Language, Locale::Currency, Locale::Country,
144 Locale::Script) will continue to work, but all new sets of codes
145 will be added in the Locale::Codes namespace.
146
148 NEW CODE(s)
149
151 NEW CODE(s)
152
153 Minor fixes
154 Added version number to Makefile.PL/Build.PL requirement for POD
155 testing modules. RT 62247
156
157 Changed 'use vars' to 'our'
158
160 NEW CODE(s)
161
162 Bug fixes
163 Stripped out some HTML that got included with some codes.
164
166 NEW CODE(s)
167
169 NEW CODE(s)
170
171 Reorganized code
172 Renamed test.pl to testfunc.pl to avoid causing an error when built
173 as part of perl.
174
176 NEW CODE(s)
177
178 Added new codeset(s)
179 Added the IANA domain names to Country
180
181 Bug fixes
182 Fixed a problem that produced warnings with perl 5.11.5. Jerry D.
183 Hedden
184
186 NEW CODE(s)
187
188 Reorganized code
189 Moved support files into the Locale::Codes namespace.
190
191 The work done in each of the Locale::XXX modules was virtually
192 identical to each other. It has all been moved to a central module
193 and the Locale::XXX modules are now just wrappers.
194
195 (!) Changed XXX_code2code behavior slightly
196 In previous versions, passing in the same code set for both code
197 set arguments would automatically return undef. For example:
198
199 country_code2code('bo',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2);
200 => undef
201
202 This doesn't seem like reasonable behavior, so it has been changed
203 to allow the same code set:
204
205 country_code2code('bo',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2);
206 => 'bo'
207
208 Note that if an invalid code is passed in, undef will still be
209 returned:
210
211 country_code2code('bol',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2);
212 => undef
213
214 Added many semi-private routines
215 Previous versions had only two semi-private routines:
216 rename_country and alias_code which had the ability to modify the
217 internal data in a couple very limited ways. It was requested (in
218 an anonymous posting by someone named Steve and also by Steve Hay)
219 that better support for modifying internal data, so a full set of
220 routines were added.
221
222 The full set of routines includes:
223
224 rename_country
225 rename_language
226 rename_currency
227 rename_script
228
229 add_country
230 add_language
231 add_currency
232 add_script
233
234 delete_country
235 delete_language
236 delete_currency
237 delete_script
238
239 add_country_alias
240 add_language_alias
241 add_currency_alias
242 add_script_alias
243
244 delete_country_alias
245 delete_language_alias
246 delete_currency_alias
247 delete_script_alias
248
249 rename_country_code
250 rename_language_code
251 rename_currency_code
252 rename_script_code
253
254 add_country_code_alias
255 add_language_code_alias
256 add_currency_code_alias
257 add_script_code_alias
258
259 delete_country_code_alias
260 delete_language_code_alias
261 delete_currency_code_alias
262 delete_script_code_alias
263
264 New aliases
265 Added "UK" alias. Steve Hay
266
268 Fixed Makefile.PL and Build.PL
269 They now install as core modules as they are supposed to. Reported
270 in RT 54526
271
273 NEW CODE(s)
274
275 New maintainer
276 From 1997 to 2004, Locale::Codes was maintained by Neil Bowers.
277 Unfortunately, no updates were made from June 2004 to January 2010.
278 During that time, a number of changes have been made to the
279 standards since then, so the data included was out-of-date.
280
281 I contacted Neil to get his permission to assume maintenance of the
282 module, and he kindly agreed.
283
284 (*) (!) All codes are generated from standards
285 All of the values returned by the various functions are now values
286 directly from the standards. This means that the values returned in
287 the 2.xx series are not necessarily the same as the values returned
288 here.
289
290 As an example, the ISO 3166 standard which lists country codes
291 refers to the country associated with the code "bo" as "Bolivia,
292 Plurinational State of", so that is what is returned. In the 2.xx
293 series, "Bolivia" was returned. Also, the country names vary from
294 one standard to another. So the code "bol" which is maintained by
295 the United Nations returns the name of the country as "Bolivia
296 (Plurinational State of)". Some common aliases have been added, so
297 you can still request a code associated with a county name
298 "Bolivia".
299
300 Since the data comes from the standards, some "incorrect" values
301 are no longer supported. For example, 2.07 treated "Zaire" as an
302 alias for "Congo", but the country changed it's name, and "Zaire"
303 is not in the standard, so it has been dropped in 3.00.
304
305 Added new codeset(s)
306 FIPS 10 country codes (requested in RT 1755)
307
308 Alpha-3 and Term language codes (requested in RT 11730)
309
310 Numeric currency codes (requested in RT 18797)
311
312 (*) (!) Locale::Script changed
313 In 2.xx, Locale::Script assigned scripts to country codes, which is
314 NOT how it is done currently in the standards. It appears that an
315 older version of ISO 15924 did this, but I haven't found an old
316 version to confirm that, and in any case, that is not the case in
317 the current standards.
318
319 As a result, the Locale::Script module is completely incompatible
320 with the 2.xx version with respect to the types of codes it
321 supports. None of the old codes will work.
322
323 Added missing functions
324 I've added in some functions which were "missing" previously (since
325 there was only one set of codes supported, the code2code functions
326 didn't apply):
327
328 language_code2code
329 currency_code2code
330
331 so the interfaces for each type of codes are consistent.
332
333 (!) Dropped support for _alias_code
334 In Locale::Country, _alias_code was an allowed, but deprecated
335 function which was documented to be supported in the 2.xx series.
336 I've removed it.
337
338 (!) All functions return the standard value
339 code2country (and other equivalent functions) now returns the name
340 of the country specified in the standard (if the different
341 standards refer to the country by different variations in the name,
342 the results will differ based on the CODESET)
343
344 (!) rename_country function altered
345 The rename_country function from 2.07 would guess the CODESET
346 (unlike all other functions which used a default of
347 LOCALE_CODE_ALPHA_2). The guess can cause problems since (with the
348 addition of FIPS) codes may appear in different codesets for
349 different countries. The behavior has been changed to be the same
350 as other functions (default to LOCALE_CODE_ALPHA_2).
351
353 Made $_ local in the initialization code for each module change back-
354 propagated from Perl distribution
355
356 Removed two non ISO-8859-1 characters from language names change back-
357 propagated from Perl distribution
358
359 Added the following aliases, with a test case for each
360 - Burma added to Myanmar
361 - French Southern and Antarctic Lands to
362 French Southern Territories patch from TJ Mather
363
364 "Canadian Dollar" was misspelled as "Candian Dollar"
365 - noted by Nick Cabatoff, patch from Michael Hennecke
366
367 Changes to Locale::Country reflecting changes in ISO 3166
368 - added Aland Islands (ax, ala, 248)
369 - YUGOSLAVIA is now SERBIA AND MONTENEGRO
370 YU => CS
371 YUG => SCG
372 891 => 891 (unchanged)
373 (YUGOSLAVIA retained as an alias)
374 - EAST TIMOR changed to TIMOR-LESTE
375 (old name retained as an alias)
376 - three letter code for Romania changed from ROM to ROU
377
378 ZAIRE is now CONGO, THE DEMOCRATIC REPUBLIC OF THE
379 ZR => CD
380 ZAR => COD
381 180 => 180 (unchanged)
382 (ZAIRE retained as alias)
383
385 The four modules which have data after __DATA__ weren't closing the
386 DATA filehandle after reading from it, which they should. Bug and patch
387 from Steve Hay.
388
390 Added three letter codes for the countries that were missing them.
391 Patch from TJ Mather.
392
393 Documentation bug: one of the examples used => where the lvalue was a
394 constant, which isn't allowed, unless you put the () with the constant
395 to force the right interpretation. Pointed out by TJ Mather and MYT.
396
397 Updated the URL for the appendix in the CIA world factbook. Patch from
398 TJ Mather.
399
401 Updated according to changes in ISO 3166-1 described in ISO 3166-1
402 newsletters V-4 and V-5, dated 2002-05-20:
403 - Kazakstan is now "Kazakhstan"
404 - Macau is now "Macao" The old names are retained as aliases.
405
406 The alpha-2 and alpha-3 codes for East Timor have changed:
407 tp -> tl
408 tmp -> tls the numeric code stays 626. If you want to support the
409 old codes, you can use the semi-private function alias_code().
410
412 Fixed a typo in the alias for the Vatican, reported (with patch) by
413 Philip Newton.
414
415 Added "Moldova" as an alias for "Moldova, Republic of"
416
417 Updated Makefile.PL to include AUTHOR and ABSTRACT
418
420 Added semi-private routine rename_country() to Locale::Country, based
421 on a patch from Iain Chalmers.
422
423 Added test rename.t for the above function.
424
425 Renamed _alias_code to be alias_code. Have retained the old name for
426 backwards compatibility. Will remove it when the major version number
427 next changes.
428
430 Split the documentation for all modules into separate pod files.
431
432 Made sure all =over were =over 4; some were other values.
433
434 The code2code() methods had one more shift than was needed.
435
437 Created Locale::Script which provides an interface to the ISO codes for
438 identification of scripts (writing scripts, rather than perl style
439 scripts). The codes are defined by ISO 15924, which is currently in
440 final draft. Thanks to Jarkko for pointing out this new standard. All
441 three code sets are supported, and a test-suite added.
442
443 Added support for country name variants to Locale::Country, so that
444 country2code('USA')
445 country2code('United States')
446 country2code('United States of America') will all return 'us'. This
447 had been in the LIMITATIONS section since the first version. Patch
448 from TJ Mather with additional variants from me. Added test-cases for
449 these.
450
451 Added VERSION to Locale::Constants. Thanks to Jarkko for pointing that
452 it was missing.
453
454 Should really have bumped major version with previous release, since
455 there was a change to the API.
456
458 Added Locale::Constants, which defines three symbols for identifying
459 which codeset is being used:
460
461 LOCALE_CODE_ALPHA_2
462 LOCALE_CODE_ALPHA_3
463 LOCALE_CODE_NUMERIC
464
465 Updated Locale::Country to support all three code sets defined by ISO
466 3166. This was requested by Keith Wall. I haven't added multiple
467 codeset support to the other modules yet - I'll wait until someone asks
468 for them.
469
471 Added Locale::Currency, contribution from Michael Hennecke.
472
473 Added test suite for it (t/currency.t) and added test cases to t/all.t
474 for the all_* functions.
475
477 Fixed very minor typos from 1.03!
478
480 Updated Locale::Country:
481 - fixed spelling of a few countries
482 - added link to a relevant page from CIA world factbook
483
484 Updated Locale::Language:
485 - fixed typo in the documentation (ISO 939 should be 639)
486
488 Updated Locale::Country and Locale::Language to reflect changes in the
489 relevant ISO standards. These mainly reflect languages which are new to
490 the relevant standard, and changes in the spelling of some country
491 names.
492
493 Added official URLs for the standards to the SEE ALSO sections of the
494 doc for each module.
495
496 Thanks to Jarkko Hietaniemi for pointing me at the pages with latest
497 versions of ISO 3166 and 639.
498
500 Added Locale::Country::_alias_code() so that 'uk' can be added as the
501 code for "United Kingdom", if you want it. This was prompted by Ed
502 Jordan.
503
504 Added a new test suite for handling this case, and extended the
505 existing test-suite to include testing of the case where 'uk' hasn't
506 been defined as a valid code.
507
509 First public release to CPAN
510
512 Locale::Codes
513
515 See Locale::Codes for full author history.
516
517 Currently maintained by Sullivan Beck (sbeck@cpan.org).
518
520 Copyright (c) 2001-2010 Neil Bowers
521 Copyright (c) 2010-2013 Sullivan Beck
522
523 This module is free software; you can redistribute it and/or modify it
524 under the same terms as Perl itself.
525
526
527
528perl v5.16.3 2013-06-03 Locale::Codes::Changes(3)