-
Notifications
You must be signed in to change notification settings - Fork 12
/
Changes
753 lines (442 loc) · 23 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
{{$NEXT}}
1.44 2024-10-27
- Rebuilt all locale data with the data from CLDR 46.0.0
1.43 2024-07-27
- Fixed the prefers_24_hour_time method. This was incorrectly returning false when the locale's
time_format_short method contained a quote string with "h" or "K" in it. For example, the fr-CA
locale's time_format_short is `HH 'h' mm`. The quoted 'h' caused this method to return
false. Fixed by Jacques Deguest (@jackdeguest). PR #39.
1.42 2024-04-18
- Rebuilt all locale data with the data from CLDR 45.0.0
1.41 2024-04-06
- Rebuilt all locale data with the data from CLDR 44.1.0.
1.40 2023-11-04
- Rebuilt all locale data with the data from CLDR 44.0.1.
1.39 2023-05-28
- Fixed parsing of the 'el-polyton' locale code. This had the same issue as
'be-tarask', which was fixed in 1.36. This is now fixed in such a way that
similar `$language-$variant` codes will be parsed correctly in the
future. Reported by @yvanzo. GH #37.
1.38 2023-04-14
- Rebuilt all locale data with the data from CLDR 43.0.0.
1.37 2022-10-23
- Rebuilt all locale data with the data from CLDR 42.0.0.
1.36 2022-08-20
- Fixed misparsing of the `be-tarask` locale code. This is a locale with just
a language name and a variant. The locale parsing code assumed that all
two-part locale codes had either a script or territory, not a variant. This
caused the catalog to show the name of this locale as "Belarusian", the same
as the `be` code. Reported by yvanzo. Fixes GH #32.
1.35 2022-04-23
- The code passed to DateTime::Locale->load is now validated and untainted
before using it to load and eval data from the filesystem. I don't think
there were any security issues without this, as the load method would only
attempt to load data from disk if the code was already known. This means
that attempting to pass in any sort of arbitrary path to the load method
would simply result in an error that the code was invalid, and there would
be no attempt to read from disk. Based on GH #30. Implemented by James
Raspass.
1.34 2022-04-08
- Rebuilt all locale data with the data from CLDR 41.0.0.
1.33 2021-10-30
- Rebuilt all locale data with the data from CLDR 40.0.0. There are some
notable data changes in CLDR 40.0.0.
- Data change: The root locale is now named "und", not "root".
- Data change: The "en-US-POSIX" locale has been removed from CLDR. If you
load this locale you will now get the "en-US" locale.
1.32 2021-04-30
- Rebuilt all locale data with the data from CLDR 39.0.0.
1.31 2020-12-22
- The docs for each locale now show examples of its strftime patterns as well.
1.30 2020-12-15
- The previous release included some locale data for locales that had been
deleted from CLDR 38.0.0.
1.29 2020-12-14
- Rebuilt all locale data with the data from CLDR 38.0.0 and glibc 2.32.
1.28 2020-08-28
- Move a test that was added in 1.27 to xt. This test is a sensitive to small
variations in error message text, and testing it locally and in CI is
sufficient. Reported by Kent Fredric. GH #27.
1.27 2020-08-28
- The $locale->locale_data method now returns a deep clone of the locale's
data. This allows you to safely modify any elements of the returned hash
without breaking the original locale. Implemented by Alexander Pankoff. GH
#26.
- We now support loading locale data from relative directories in
@INC. Implemented by Alexander Pankoff. GH #25.
- When loading locale data, we now check $! for read errors, as well as
checking for an error eval'ing the file's contents in $@. Fixed by Alexander
Pankoff. GH #24.
1.26 2020-07-03
- Rebuilt all locale data with CLDR 37, released on 2020-04-23.
1.25 2019-10-09
- Rebuilt all locale data with CLDR 36, released on 2019-10-04.
1.24 2019-03-28
- Rebuilt all locale data with CLDR 35, released on 2019-03-27.
1.23 2018-10-17
- Rebuilt all locale data with CLDR 34, released on 2018-10-15.
1.22 2018-06-08
- Rebuilt all locale data with the glibc data from glibc 2.27.
- Added documentation for this glibc data.
- Reformatted the DateTime::Locale::FromData docs.
1.21 2018-06-08
- Added a new DateTime::Local->register_from_data method. This replaces the
old custom locale registration system with something much simpler. Instead
of providing a new class you simply provide a hash of data for the locale
and it becomes available for use via DateTime::Local->load. Implemented by
Ryley Breiddal. PR #21. Addresse GH #19.
1.20 2018-05-06
- Fix test failures on Windows. Reported by Adrian Devries. GH #23.
1.19 2018-04-21
- Fix handling of a locale (nds) that does not provide a native name for its
own locale code. This is a bug in CLDR, but since it exists we should handle
it sanely.
- If you attempted to thaw a DateTime::Locale::FromData object in a process
that had not loaded DateTime::Locale this would fail. Reported by Gregor
Herrmann. GH #18.
1.18 2018-04-03
- Rebuilt all locale data with CLDR 33, released on 2018-03-26.
1.17 2017-11-04
- Rebuilt all locale data with CLDR 32, released on 2017-11-01.
1.16 2017-03-22
- Rebuilt all locale data with CLDR 31, released on 2017-03-20.
1.15 2017-03-15 (TRIAL RELEASE)
- Most data is now stored in a share dir and only loaded as needed. This
should reduce the memory usage from just loading DateTime::Locale by about
4mb. Based on a PR by sergey. GH #14.
1.14 2017-03-05
- Codes with just a language and script code were not parsed correctly,
leading to bugs in their data, so that they did not report a script_code,
nor did their name reflect the script. So for example "bs-Latn" was just
"Bosnian" instead of "Bosnian Latin".
1.13 2017-03-05
- Fixed a regression bug where providing a locale's English name or native
name to DateTime::Locale->load no longer worked. Fixed by Sergey. GH #13.
1.12 2017-01-29
- Rebuilt all locale data with CLDR 30.0.3, released on 2016-12-02.
1.11 2016-11-12
- Switched from RT to the GitHub issue tracker.
1.10 2016-10-22
- Don't let warnings from other modules cause t/09version-check.t to
fail. Reported by Graham Ollis. RT #118465
1.09 2016-10-10
- Rebuilt all locale data with CLDR 30, released on 2016-10-05.
1.08 2016-09-23
- Require namespace::autoclean 0.19+.
1.07 2016-09-17
- Bump minimum required Perl to 5.8.4 from 5.8.1. This matches DateTime.pm
itself.
1.06 2016-09-16
- Replaced Params::Validate with Params::ValidationCompiler.
1.05 2016-06-26
- Instead of using the DATA handle to get at as-yet-unloaded locale data in
DateTime::Locale::Data, we now read the raw data into memory once, and use
eval to turn it into Perl data structures as a particular locale is
requested. This may fix a problem where reading from the DATA handle somehow
returned the wrong chunk of data (or overlapped multiple locales). The
downside is that loading DateTime::Locale now uses an additional 4MB of
memory on my system, regardless of how many individual locales are
instantiated. Reported by Greg Oschwald. GitHub #3.
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