1.04 2016-06-17 - Replaced List::MoreUtils with List::Util. 1.03 2016-03-25 - Rebuilt all locale data with CLDR 29, released on 2016-03-19. 1.02 2015-12-09 - Make the DateTime::Locale->load method accept a locale in any non-canonical casing, such as "en-us". Reported by Shawn Moore. RT #110244. 1.01 2015-11-07 - Prevent CPAN from indexing the tools directory, which is just for the author's use. 1.00 2015-11-07 * All of these changes were originally released in previous trial releases, but I'm repeating them here for clarity. [ENHANCEMENTS] - This release uses the locale data from CLDR version 28. The last major update of the locale data used CLDR 1.7.1, released in 2009, so this is a big change. Many things have changed in terms of locale data. - Some locales are no longer available because they are not in the CLDR data. - The CLDR data no longer includes default date and time format lengths. This is now "medium" for every locale, simply to provide some level of backwards compatibility. - Loading DateTime::Locale itself is now quite a bit faster. The whole locale registration system has been removed entirely, except for custom locales. This fixes RT #78794. Requested by Michael Conrad. - A long-standing issue with the Austrian locale not using the Austrian name for January has been fixed. RT #52337. Reported by Thomas Klausner. [BACKWARDS INCOMPATIBILITIES] - This is a big new release, and includes a number of backwards-incompatible changes. However, most users should be unaffected by this change. If you only use this module via DateTime.pm, you are unlikely to notice any changes other than changes to the locale data. - The old API deprecated since 0.40 has been removed (almost) entirely. - We now refer to things as "code" in the docs and method names where we used to call them ids. This includes locale, language, script, territory, and variant codes. This is more in line with the various ISO standards and the CLDR packages. - All the $locale->*_id methods (including $locale->id) are deprecated. Use the relevant $locale->*_code method instead. - The canonical form of the locale codes now uses dashes (-) instead of underscores (_). Loading a locale with an underscore in the name (e.g. en_US) still works. - The way that locale data is packaged has changed quite a bit. We no longer package each locale in its own class. Instead, all locale data is in a single module (mostly in a __DATA__ section) and loaded into memory as needed. If you have any code that checks $locale->isa, that code may break. - Locales are no longer subclasses of DateTime::Locale::Base. This module is still included in the distribution in case someone has a custom locale that inherits from this module. However, this module will go away in a future release. - The "ii-*" aliases for the "he-*" locales have been removed. - The "no-*" aliases for the "nn-*" locales have been removed. - The value of $locale->code no longer reflects the value passed to DateTime::Locale->load. This only affects aliases and non-canonical forms of the code. For example, if you load "en_US" then $locale->code will return "en-US". If you load "C" or "POSIX" the returned code will be "en-US-POSIX". - All of the documentation related to creating aliases and registering custom locales has been removed. All of these methods still work, but I don't think this system got much use, so I don't want to emphasize it in the docs. (But let me know if you are using this and want to see these docs restored). 0.96 2015-10-04 (TRIAL RELEASE) - Locale data with characters in the 0x80-0xFF range was not marked as UTF-8 by Perl. This could cause all sorts of weirdness and was generally bad. 0.95 2015-09-30 (TRIAL RELEASE) - Added .pod files for each locale that document the data for that locale. 0.94 2015-09-30 (TRIAL RELEASE) - Restored the datetime_format method to individual locale objects for backwards compatibility. 0.93 2015-09-28 (TRIAL RELEASE) - Really release a trial release this time. I'm not kidding. See 0.90 for the interesting changes. 0.92 2015-09-27 - I accidentally released 0.90 as a non-trial release. This release is the same as 0.46, so that the newest non-trial release does not break the DateTime.pm tests. 0.91 2015-09-27 - Released the changes in 0.90 as a trial release. 0.90 2015-09-27 [ENHANCEMENTS] - Updated based on version 28 of the CLDR data. The last update was based on the CLDR 1.7.1 release from 2009, so this is a big change. Many things have changed in terms of locale data. - Some locales are no longer available because they are not in the CLDR data. - The CLDR data no longer includes default date and time format lengths. This is now "medium" for every locale, simply to provide some level of backwards compatibility. - Loading DateTime::Locale itself is now quite a bit faster. The whole locale registration system has been removed entirely, except for custom locales. This fixes RT #78794. Requested by Michael Conrad. - A long-standing issue with the Austrian locale not using the Austrian name for January has been fixed. RT #52337. Reported by Thomas Klausner. [BACKWARDS INCOMPATIBILITIES] - This is a big new release, and includes a number of backwards-incompatible changes. However, most users should be unaffected by this change. If you only use this module via DateTime.pm, you are unlikely to notice any changes other than changes to the locale data. - The old API deprecated since 0.40 has been removed (almost) entirely. - We now refer to things as "code" in the docs and method names where we used to call them ids. This includes locale, language, script, territory, and variant codes. This is more in line with the various ISO standards and the CLDR packages. - All the $locale->*_id methods (including $locale->id) are deprecated. Use the relevant $locale->*_code method instead. - The canonical form of the locale codes now uses dashes (-) instead of underscores (_). Loading a locale with an underscore in the name (e.g. en_US) still works. - The way that locale data is packaged has changed quite a bit. We no longer package each locale in its own class. Instead, all locale data is in a single module (mostly in a __DATA__ section) and loaded into memory as needed. If you have any code that checks $locale->isa, that code may break. - Locales are no longer subclasses of DateTime::Locale::Base. However, this module is still included in the distribution in case someone has a custom locale that inherits from this module. However, this module will go away in a future release. - The "ii-*" aliases for the "he-*" locales have been removed. - The "no-*" aliases for the "nn-*" locales have been removed. - The value of $locale->code no longer reflects the value passed to DateTime::Locale->load. This only affects aliases and non-canonical forms of the code. For example, if you load "en_US" then $locale->code returns "en-US". If you load "C" or "POSIX" the code is "en-US-POSIX". - All of the documentation related to creating aliases and registering custom locales has been removed. All of these methods still work, but I don't think this system got much use, so I don't want to emphasize it in the docs (but let me know if you are using this and want to see these docs restored). 0.46 2015-05-21 - Fixed handling of C locales like "C.UTF-8". Passing these to DateTime::Locale->load would cause a warning followed by an exception, but all "C" locales should be special-cased as an alias of en-US-POSIX. Reported by David Wheeler. RT #104574. 0.45 2010-03-19 - Installing this release will cause older versions of DateTime::Format::Strptime to warn like crazy. Please update DateTime::Format::Strptime if you install this release. - This is an interim release still based on CLDR 1.7.1 pending the release of Locale::CLDR, which will happen real soon now, for some definition of soon. - Removed dependency on Class::ISA and just copied what we need from said module directly. Class::ISA warns as deprecated if used with Perl 5.11.0, even though it works just fine (doh). RT #53940. - All methods deprecated in the last release now warn when called. - Added methods to return per-locale strftime formats from the glibc data. These methods are not yet documented. They are just there for now to allow me to update DateTime::Format::Strptime. 0.44 2009-09-12 - All methods which return strftime-style patterns are officially deprecated (and have been a little broken for some time, regardless). This includes all date and time format methods ending in "_format". - Other deprecated methods include: date_parts_order, date_before_time era, eras month_name, month_abbreviation, month_narrow month_names, month_abbreviations, month_narrows day_name, day_abbreviation, day_narrow day_names, day_abbreviations, day_narrows quarter_name, quarter_abbreviation, quarter_narrow quarter_names, quarter_abbreviations am_pm, am_pms era_name, era_abbreviation era_narrow, era_names, era_abbreviations - All of these deprecated methods will eventually be removed. If you are using them directly, please change your code. - Converted data files in tools/t/test-data to Unix line endings. This works around a bug in Module::Signature. Reported by Zefram. RT #49085. - Require Params::Validate 0.91, since 0.89 caused test failures for someone. Reported by Jeremy Hetzler. RT #41365. - Moved code to my hg repo at http://hg.urth.org/hg/DateTime-Locale. 0.43 2009-06-30 - Based on CLDR 1.7.1, which includes support for several new languages, as well as lots of changes. 0.42 2008-09-12 - Based on CLDR 1.6.1, but this has no changes in the data we use. I just used 1.6.1 so people wouldn't ask me why I don't use 1.6.1 ;) - In the switch to CLDR (back in 0.30), I accidentally dropped a number of hard-coded aliases, notably for 'C'. These aliases have been restored. Reported by Adam Kennedy. RT #39208. - Generation of aliases based on the 3-letter ISO code for countries is now based on the most recent version of ISO639. 0.41 2008-07-12 - Based on CLDR 1.6 - Added the CLDR version to the catalog and generated files. In the future, if you load a locale from an older CLDR version than the catalog's version, you will get a warning. 0.4001 2008-05-19 - Minor changes to get test passing under 5.6.x. 0.40 2008-05-18 * Dropped support for Perl 5.005. - Based on CLDR 1.5.1 - Massive reworking of the locale generation code. We now extract much more information from the CLDR files. See the DateTime::Locale and DateTime::Locale::Base documentation for details on what is available. - Lots of bug fixes in the data. The old generation code was often extracting the draft form of a piece of data as opposed to the current final form. There are also many other data fixes from this new generation code. - One of the notable additions is the inclusion of $locale->format_for(...) and $locale->available_formats(). This gives you access to formatting for various arbitrary patterns like "year and month" or "month and day". Requested by Brian Hirt. - Many of the new features in this release will only be available with DateTime.pm 0.43+, since it requires a version of DateTime.pm which can handle the CLDR date pattern language. - All locale files now include POD with examples of the data they include. 0.35 2007-09-09 - Based on CLDR 1.5 0.34 2007-03-05 - Removed the use of STORABLE_attach from this module entirely, since it seemed to have a buggy interaction with DateTime.pm. See http://www.mail-archive.com/datetime@perl.org/msg05633.html for some discussion of this. 0.33 2007-01-06 - Based on CLDR 1.4.1. - Some locales had am/pm names like "HASH(...)" because of a bug in the script to generate the locale modules. 0.32 2006-11-20 - A bug in the STORABLE_freeze method in this class caused major test failures for DT::Calendar::Chinese, which is used by DT::Calendar::Japanese. - Do better checking of locale names passed to DT::Locale->load(), so we catch undef early before it causes a bunch of warnings. 0.3101 2006-10-23 - Fixed a test failure when DateTime::Locale is installed on a system where DateTime.pm has never been installed. - Fixed a test failure in bleadperl. RT Ticket #22515. Reported by Steve Peters. 0.31 2006-10-22 - Added era_name() and era_abbreviation() methods for the use of DateTime.pm. 0.30 2006-10-22 - Now using the CLDR data instead of ICU. This isn't a big change, since the ICU data was derived from the CLDR data anyway. - Based on CLDR 1.4. * BACKWARDS INCOMPATIBILITY - Integrated the ISO639-2 aliases into DateTime::LocaleCatalog, and removed DateTime::Locale::Alias::ISO639_2. - The data now include both abbreviated and long forms for eras. The eras() method continues to return the abbreviated forms, but this is deprecated. Use era_abbreviations() or era_names() instead. - Added a STORABLE_attach method for integration with newer versions of Storable which provide better support for singletons. - The narrow versions of days and months was not available for most locales, even though every locale should provide at least the default values for these items. 0.22 2005-05-31 - Allow id names passed to load() to contain dashes or underscores, in order to support RFC 3066 locale names, which use dashes. - Fix bugs when a custom locale was registered and a "class" parameter was passed to register(). Patch from Yann Kerhervé. - Switched to a "traditional" Makefile.PL file at Perrin Harkins' request. 0.21 2005-02-28 - Fix era() method for year 0. 0.20 2005-02-26 * BACKWARDS INCOMPATIBILITY - The way DateTime::Locale::Base subclasses work has changed. Subclasses should no longer implement the date_formats() or time_formats() methods. Instead, they need to provide one method per format length (full_date_format(), long_date_format(), etc). - Uses much newer (August, 2004) data from ICU. This includes a number of new locales. See DateTime::LocaleCatalog for a list. This new data also adds a new type of differentiator for locales, the script (Latin vs Cyrillic, for example). - Added new methods to get the "narrow" forms of a day or month. - Implemented per-locale eras. - Fix a number of doc typos and buglets. Patch by Jean Forget. 0.09 2004-03-09 - Added Storable freeze & thaw hooks. 0.08 2004-02-12 - No code changes, just a Makefile.PL update to work with Module::Build 0.23. 0.07 2003-12-14 - If given an id like 'en_US.UTF-8', DateTime::Locale would die with the message 'Can't locate object method "_load_from_id" via package "DateTime::Locale" at /usr/share/perl5/DateTime/Locale.pm line 220'. Reported by Sylvain Daubert. 0.06 2003-12-08 - The DateTime::Locale docs now includes docs for all the methods that a locale object has. 0.05 2003-10-03 - Really make the documentation and code match! This time there are even tests for this. Reported by David Hood (again). - DateTime::Locale won't try to load a class if it already has a new() method. This is so you can define multiple locale subclasses in one file and load that file yourself before calling the load() method. 0.04 2003-10-03 - The documentation incorrectly showed the DateTime::Locale->register method as taking an array, rather than an array of hash references. Reported by David Hood. 0.03 2003-08-06 - Once a locale is loaded, it is cached in memory, so that locale objects are singletons. Calling methods that change the locale registry, like register() or remove_alias(), clear that cache. This should provide a noticeable speed boost when constructing many DateTime objects with the same locale. Based on a patch from John Siracusa. 0.02 2003-07-25 - Make sure tests pass without requiring DateTime 0.14 to be installed. Reported by Claus Farber. - Document default formats and format lengths in DateTime::Locale::Base. 0.01 2003-07-23 - Initial release