]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Fix Slovenian locale (redo #2226)
authorIskren Chernev <iskren.chernev@gmail.com>
Mon, 4 May 2015 04:54:26 +0000 (21:54 -0700)
committerIskren Chernev <iskren.chernev@gmail.com>
Mon, 4 May 2015 04:54:26 +0000 (21:54 -0700)
src/locale/sl.js
src/test/locale/sl.js

index a4b486de6c8f1bec281cac7bcf5687c2c49f908d..e5723389d4f4ac2372e2d9550d4b07dc2bfcbe60 100644 (file)
@@ -4,62 +4,72 @@
 
 import moment from '../moment';
 
-function translate(number, withoutSuffix, key) {
+function processRelativeTime(number, withoutSuffix, key, isFuture) {
     var result = number + ' ';
     switch (key) {
+    case 's':
+        return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';
     case 'm':
         return withoutSuffix ? 'ena minuta' : 'eno minuto';
     case 'mm':
         if (number === 1) {
-            result += 'minuta';
+            result += withoutSuffix ? 'minuta' : 'minuto';
         } else if (number === 2) {
-            result += 'minuti';
-        } else if (number === 3 || number === 4) {
-            result += 'minute';
+            result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
+        } else if (number < 5) {
+            result += withoutSuffix || isFuture ? 'minute' : 'minutami';
         } else {
-            result += 'minut';
+            result += withoutSuffix || isFuture ? 'minut' : 'minutami';
         }
         return result;
     case 'h':
         return withoutSuffix ? 'ena ura' : 'eno uro';
     case 'hh':
         if (number === 1) {
-            result += 'ura';
+            result += withoutSuffix ? 'ura' : 'uro';
         } else if (number === 2) {
-            result += 'uri';
-        } else if (number === 3 || number === 4) {
-            result += 'ure';
+            result += withoutSuffix || isFuture ? 'uri' : 'urama';
+        } else if (number < 5) {
+            result += withoutSuffix || isFuture ? 'ure' : 'urami';
         } else {
-            result += 'ur';
+            result += withoutSuffix || isFuture ? 'ur' : 'urami';
         }
         return result;
+    case 'd':
+        return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
     case 'dd':
         if (number === 1) {
-            result += 'dan';
+            result += withoutSuffix || isFuture ? 'dan' : 'dnem';
+        } else if (number === 2) {
+            result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
         } else {
-            result += 'dni';
+            result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
         }
         return result;
+    case 'M':
+        return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
     case 'MM':
         if (number === 1) {
-            result += 'mesec';
+            result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
         } else if (number === 2) {
-            result += 'meseca';
-        } else if (number === 3 || number === 4) {
-            result += 'mesece';
+            result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
+        } else if (number < 5) {
+            result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
         } else {
-            result += 'mesecev';
+            result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
         }
         return result;
+    case 'y':
+        return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
     case 'yy':
         if (number === 1) {
-            result += 'leto';
+            result += withoutSuffix || isFuture ? 'leto' : 'letom';
         } else if (number === 2) {
-            result += 'leti';
-        } else if (number === 3 || number === 4) {
-            result += 'leta';
+            result += withoutSuffix || isFuture ? 'leti' : 'letoma';
+        } else if (number < 5) {
+            result += withoutSuffix || isFuture ? 'leta' : 'leti';
         } else {
-            result += 'let';
+            result += withoutSuffix || isFuture ? 'let' : 'leti';
         }
         return result;
     }
@@ -82,6 +92,7 @@ export default moment.defineLocale('sl', {
     calendar : {
         sameDay  : '[danes ob] LT',
         nextDay  : '[jutri ob] LT',
+
         nextWeek : function () {
             switch (this.day()) {
             case 0:
@@ -101,9 +112,11 @@ export default moment.defineLocale('sl', {
         lastWeek : function () {
             switch (this.day()) {
             case 0:
+                return '[prejšnjo] [nedeljo] [ob] LT';
             case 3:
+                return '[prejšnjo] [sredo] [ob] LT';
             case 6:
-                return '[prejšnja] dddd [ob] LT';
+                return '[prejšnjo] [soboto] [ob] LT';
             case 1:
             case 2:
             case 4:
@@ -115,18 +128,18 @@ export default moment.defineLocale('sl', {
     },
     relativeTime : {
         future : 'čez %s',
-        past   : '%s nazaj',
-        s      : 'nekaj sekund',
-        m      : translate,
-        mm     : translate,
-        h      : translate,
-        hh     : translate,
-        d      : 'en dan',
-        dd     : translate,
-        M      : 'en mesec',
-        MM     : translate,
-        y      : 'eno leto',
-        yy     : translate
+        past   : 'pred %s',
+        s      : processRelativeTime,
+        m      : processRelativeTime,
+        mm     : processRelativeTime,
+        h      : processRelativeTime,
+        hh     : processRelativeTime,
+        d      : processRelativeTime,
+        dd     : processRelativeTime,
+        M      : processRelativeTime,
+        MM     : processRelativeTime,
+        y      : processRelativeTime,
+        yy     : processRelativeTime
     },
     ordinalParse: /\d{1,2}\./,
     ordinal : '%d.',
@@ -135,4 +148,3 @@ export default moment.defineLocale('sl', {
         doy : 7  // The week that contains Jan 1st is the first week of the year.
     }
 });
-
index 23ed7a61d926380cd3006411f4a9c42c430b37e9..6b41582e93d42e46cda47b05763c56c75f475f83 100644 (file)
@@ -134,20 +134,110 @@ test('from', function (assert) {
     assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 leti',       '548 days = 2 years');
     assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true),   'eno leto',     '1 year = a year');
     assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true),   '5 let',        '5 years = 5 years');
+
+    assert.equal(start.from(moment([2007, 1, 28]).add({m: 1}), true),  'ena minuta', 'a minute');
+    assert.equal(start.from(moment([2007, 1, 28]).add({m: 2}), true),  '2 minuti',   '2 minutes');
+    assert.equal(start.from(moment([2007, 1, 28]).add({m: 3}), true),  '3 minute',   '3 minutes');
+    assert.equal(start.from(moment([2007, 1, 28]).add({m: 4}), true),  '4 minute',   '4 minutes');
+    assert.equal(start.from(moment([2007, 1, 28]).add({m: 5}), true),  '5 minut',    '5 minutes');
+
+    assert.equal(start.from(moment([2007, 1, 28]).add({h: 1}), true),  'ena ura', 'an hour');
+    assert.equal(start.from(moment([2007, 1, 28]).add({h: 2}), true),  '2 uri',   '2 hours');
+    assert.equal(start.from(moment([2007, 1, 28]).add({h: 3}), true),  '3 ure',   '3 hours');
+    assert.equal(start.from(moment([2007, 1, 28]).add({h: 4}), true),  '4 ure',   '4 hours');
+    assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true),  '5 ur',    '5 hours');
+
+    assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true),  'en dan', 'a day');
+    assert.equal(start.from(moment([2007, 1, 28]).add({d: 2}), true),  '2 dni',  '2 days');
+    assert.equal(start.from(moment([2007, 1, 28]).add({d: 3}), true),  '3 dni',  '3 days');
+    assert.equal(start.from(moment([2007, 1, 28]).add({d: 4}), true),  '4 dni',  '4 days');
+    assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true),  '5 dni',  '5 days');
+
+    assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true),  'en mesec',  'a month');
+    assert.equal(start.from(moment([2007, 1, 28]).add({M: 2}), true),  '2 meseca',  '2 months');
+    assert.equal(start.from(moment([2007, 1, 28]).add({M: 3}), true),  '3 mesece',  '3 months');
+    assert.equal(start.from(moment([2007, 1, 28]).add({M: 4}), true),  '4 mesece',  '4 months');
+    assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true),  '5 mesecev', '5 months');
+
+    assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true),  'eno leto', 'a year');
+    assert.equal(start.from(moment([2007, 1, 28]).add({y: 2}), true),  '2 leti',   '2 years');
+    assert.equal(start.from(moment([2007, 1, 28]).add({y: 3}), true),  '3 leta',   '3 years');
+    assert.equal(start.from(moment([2007, 1, 28]).add({y: 4}), true),  '4 leta',   '4 years');
+    assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true),  '5 let',    '5 years');
 });
 
 test('suffix', function (assert) {
     assert.equal(moment(30000).from(0), 'čez nekaj sekund',  'prefix');
-    assert.equal(moment(0).from(30000), 'nekaj sekund nazaj', 'suffix');
+    assert.equal(moment(0).from(30000), 'pred nekaj sekundami', 'suffix');
 });
 
 test('now from now', function (assert) {
-    assert.equal(moment().fromNow(), 'nekaj sekund nazaj',  'now from now should display as in the past');
+    assert.equal(moment().fromNow(), 'pred nekaj sekundami',  'now from now should display as in the past');
 });
 
-test('fromNow', function (assert) {
+test('fromNow (future)', function (assert) {
     assert.equal(moment().add({s: 30}).fromNow(), 'čez nekaj sekund', 'in a few seconds');
-    assert.equal(moment().add({d: 5}).fromNow(), 'čez 5 dni', 'in 5 days');
+    assert.equal(moment().add({m: 1}).fromNow(),  'čez eno minuto', 'in a minute');
+    assert.equal(moment().add({m: 2}).fromNow(),  'čez 2 minuti',   'in 2 minutes');
+    assert.equal(moment().add({m: 3}).fromNow(),  'čez 3 minute',   'in 3 minutes');
+    assert.equal(moment().add({m: 4}).fromNow(),  'čez 4 minute',   'in 4 minutes');
+    assert.equal(moment().add({m: 5}).fromNow(),  'čez 5 minut',    'in 5 minutes');
+
+    assert.equal(moment().add({h: 1}).fromNow(),  'čez eno uro', 'in an hour');
+    assert.equal(moment().add({h: 2}).fromNow(),  'čez 2 uri',   'in 2 hours');
+    assert.equal(moment().add({h: 3}).fromNow(),  'čez 3 ure',   'in 3 hours');
+    assert.equal(moment().add({h: 4}).fromNow(),  'čez 4 ure',   'in 4 hours');
+    assert.equal(moment().add({h: 5}).fromNow(),  'čez 5 ur',    'in 5 hours');
+
+    assert.equal(moment().add({d: 1}).fromNow(),  'čez en dan', 'in a day');
+    assert.equal(moment().add({d: 2}).fromNow(),  'čez 2 dni',  'in 2 days');
+    assert.equal(moment().add({d: 3}).fromNow(),  'čez 3 dni',  'in 3 days');
+    assert.equal(moment().add({d: 4}).fromNow(),  'čez 4 dni',  'in 4 days');
+    assert.equal(moment().add({d: 5}).fromNow(),  'čez 5 dni',  'in 5 days');
+
+    assert.equal(moment().add({M: 1}).fromNow(),  'čez en mesec',  'in a month');
+    assert.equal(moment().add({M: 2}).fromNow(),  'čez 2 meseca',  'in 2 months');
+    assert.equal(moment().add({M: 3}).fromNow(),  'čez 3 mesece',  'in 3 months');
+    assert.equal(moment().add({M: 4}).fromNow(),  'čez 4 mesece',  'in 4 months');
+    assert.equal(moment().add({M: 5}).fromNow(),  'čez 5 mesecev', 'in 5 months');
+
+    assert.equal(moment().add({y: 1}).fromNow(),  'čez eno leto', 'in a year');
+    assert.equal(moment().add({y: 2}).fromNow(),  'čez 2 leti',   'in 2 years');
+    assert.equal(moment().add({y: 3}).fromNow(),  'čez 3 leta',   'in 3 years');
+    assert.equal(moment().add({y: 4}).fromNow(),  'čez 4 leta',   'in 4 years');
+    assert.equal(moment().add({y: 5}).fromNow(),  'čez 5 let',    'in 5 years');
+
+    assert.equal(moment().subtract({s: 30}).fromNow(), 'pred nekaj sekundami', 'a few seconds ago');
+
+    assert.equal(moment().subtract({m: 1}).fromNow(),  'pred eno minuto', 'a minute ago');
+    assert.equal(moment().subtract({m: 2}).fromNow(),  'pred 2 minutama', '2 minutes ago');
+    assert.equal(moment().subtract({m: 3}).fromNow(),  'pred 3 minutami', '3 minutes ago');
+    assert.equal(moment().subtract({m: 4}).fromNow(),  'pred 4 minutami', '4 minutes ago');
+    assert.equal(moment().subtract({m: 5}).fromNow(),  'pred 5 minutami', '5 minutes ago');
+
+    assert.equal(moment().subtract({h: 1}).fromNow(),  'pred eno uro', 'an hour ago');
+    assert.equal(moment().subtract({h: 2}).fromNow(),  'pred 2 urama', '2 hours ago');
+    assert.equal(moment().subtract({h: 3}).fromNow(),  'pred 3 urami', '3 hours ago');
+    assert.equal(moment().subtract({h: 4}).fromNow(),  'pred 4 urami', '4 hours ago');
+    assert.equal(moment().subtract({h: 5}).fromNow(),  'pred 5 urami', '5 hours ago');
+
+    assert.equal(moment().subtract({d: 1}).fromNow(),  'pred enim dnem', 'a day ago');
+    assert.equal(moment().subtract({d: 2}).fromNow(),  'pred 2 dnevoma', '2 days ago');
+    assert.equal(moment().subtract({d: 3}).fromNow(),  'pred 3 dnevi',   '3 days ago');
+    assert.equal(moment().subtract({d: 4}).fromNow(),  'pred 4 dnevi',   '4 days ago');
+    assert.equal(moment().subtract({d: 5}).fromNow(),  'pred 5 dnevi',   '5 days ago');
+
+    assert.equal(moment().subtract({M: 1}).fromNow(),  'pred enim mesecem', 'a month ago');
+    assert.equal(moment().subtract({M: 2}).fromNow(),  'pred 2 mesecema',   '2 months ago');
+    assert.equal(moment().subtract({M: 3}).fromNow(),  'pred 3 meseci',     '3 months ago');
+    assert.equal(moment().subtract({M: 4}).fromNow(),  'pred 4 meseci',     '4 months ago');
+    assert.equal(moment().subtract({M: 5}).fromNow(),  'pred 5 meseci',     '5 months ago');
+
+    assert.equal(moment().subtract({y: 1}).fromNow(),  'pred enim letom', 'a year ago');
+    assert.equal(moment().subtract({y: 2}).fromNow(),  'pred 2 letoma',   '2 years ago');
+    assert.equal(moment().subtract({y: 3}).fromNow(),  'pred 3 leti',     '3 years ago');
+    assert.equal(moment().subtract({y: 4}).fromNow(),  'pred 4 leti',     '4 years ago');
+    assert.equal(moment().subtract({y: 5}).fromNow(),  'pred 5 leti',     '5 years ago');
 });
 
 test('calendar day', function (assert) {
@@ -196,9 +286,11 @@ test('calendar last week', function (assert) {
     function makeFormat(d) {
         switch (d.day()) {
         case 0:
+            return '[prejšnjo] [nedeljo] [ob] LT';
         case 3:
+            return '[prejšnjo] [sredo] [ob] LT';
         case 6:
-            return '[prejšnja] dddd [ob] LT';
+            return '[prejšnjo] [soboto] [ob] LT';
         case 1:
         case 2:
         case 4: