]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
[bugfix] fix moment.months() for PL locale (#5601)
authorJakub Szwacz <jakub@szwacz.com>
Mon, 21 Sep 2020 08:09:34 +0000 (10:09 +0200)
committerGitHub <noreply@github.com>
Mon, 21 Sep 2020 08:09:34 +0000 (01:09 -0700)
src/locale/pl.js
src/test/locale/pl.js

index 079118a8fc531848dbb4fe0a09bb0f7d85932b92..9f673bde3071c099f7b5ec130308dd95558083b4 100644 (file)
@@ -9,7 +9,21 @@ var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierp
     ),
     monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(
         '_'
-    );
+    ),
+    monthsParse = [
+        /^sty/i,
+        /^lut/i,
+        /^mar/i,
+        /^kwi/i,
+        /^maj/i,
+        /^cze/i,
+        /^lip/i,
+        /^sie/i,
+        /^wrz/i,
+        /^paź/i,
+        /^lis/i,
+        /^gru/i,
+    ];
 function plural(n) {
     return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;
 }
@@ -37,17 +51,6 @@ export default moment.defineLocale('pl', {
     months: function (momentToFormat, format) {
         if (!momentToFormat) {
             return monthsNominative;
-        } else if (format === '') {
-            // Hack: if format empty we know this is used to generate
-            // RegExp by moment. Give then back both valid forms of months
-            // in RegExp ready format.
-            return (
-                '(' +
-                monthsSubjective[momentToFormat.month()] +
-                '|' +
-                monthsNominative[momentToFormat.month()] +
-                ')'
-            );
         } else if (/D MMMM/.test(format)) {
             return monthsSubjective[momentToFormat.month()];
         } else {
@@ -55,6 +58,9 @@ export default moment.defineLocale('pl', {
         }
     },
     monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
+    monthsParse: monthsParse,
+    longMonthsParse: monthsParse,
+    shortMonthsParse: monthsParse,
     weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(
         '_'
     ),
index 98aa3507b7f2be02929e7bf447eb756e68e475fd..eab7df04c76b3e389ca0fdde956c0d59c1143a49 100755 (executable)
@@ -3,6 +3,23 @@ import { localeModule } from '../qunit-locale';
 import moment from '../../moment';
 localeModule('pl');
 
+test('months', function (assert) {
+    assert.deepEqual(moment.months(), [
+        'styczeń',
+        'luty',
+        'marzec',
+        'kwiecień',
+        'maj',
+        'czerwiec',
+        'lipiec',
+        'sierpień',
+        'wrzesień',
+        'październik',
+        'listopad',
+        'grudzień',
+    ]);
+});
+
 test('parse', function (assert) {
     var tests = 'styczeń stycznia sty_luty lutego lut_marzec marca mar_kwiecień kwietnia kwi_maj maja maj_czerwiec czerwca cze_lipiec lipca lip_sierpień sierpnia sie_wrzesień września wrz_październik października paź_listopad listopada lis_grudzień grudnia gru'.split(
             '_'