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.
z
- 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