]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Made amendments to Ukrainian (uk) localization.
authorTaras <terrapass93@gmail.com>
Sat, 16 Mar 2013 14:19:32 +0000 (16:19 +0200)
committerTaras <terrapass93@gmail.com>
Sat, 16 Mar 2013 14:19:32 +0000 (16:19 +0200)
Changed the way in which 'Last %weekday%' calendar dates are written by
making it more in line with modern grammar rules, added genitive case
for weekdays. Thus fixed an issue with displaying calendar dates as
'Last %weekday%', where nominative case was incorrectly used instead of
accusative.

lang/uk.js

index e5151eaef83094d7dd37cea891296fa13b05aca0..e4ef860778fd0ffdf387c0e73c32f382fe42779e 100644 (file)
-// moment.js language configuration
-// language : ukrainian (uk)
-// author : zemlanin : https://github.com/zemlanin
-var pluralRules = [
-    function (n) { return ((n % 10 === 1) && (n % 100 !== 11)); },
-    function (n) { return ((n % 10) >= 2 && (n % 10) <= 4 && ((n % 10) % 1) === 0) && ((n % 100) < 12 || (n % 100) > 14); },
-    function (n) { return ((n % 10) === 0 || ((n % 10) >= 5 && (n % 10) <= 9 && ((n % 10) % 1) === 0) || ((n % 100) >= 11 && (n % 100) <= 14 && ((n % 100) % 1) === 0)); },
-    function (n) { return true; }
-];
-
-function plural(word, num) {
-    var forms = word.split('_'),
-    minCount = Math.min(pluralRules.length, forms.length),
-    i = -1;
-
-    while (++i < minCount) {
-        if (pluralRules[i](num)) {
-            return forms[i];
-        }
-    }
-    return forms[minCount - 1];
-}
-
-function relativeTimeWithPlural(number, withoutSuffix, key) {
-    var format = {
-        'mm': 'хвилина_хвилини_хвилин_хвилини',
-        'hh': 'година_години_годин_години',
-        'dd': 'день_дня_днів_дня',
-        'MM': 'місяць_місяця_місяців_місяця',
-        'yy': 'рік_року_років_року'
-    };
-    if (key === 'm') {
-        return withoutSuffix ? 'хвилина' : 'хвилину';
-    }
-    else {
-        return number + ' ' + plural(format[key], +number);
-    }
-}
-
-function monthsCaseReplace(m, format) {
-    var months = {
-        'nominative': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'),
-        'accusative': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_')
-    },
-
-    nounCase = (/D[oD]? *MMMM?/).test(format) ?
-        'accusative' :
-        'nominative';
-
-    return months[nounCase][m.month()];
-}
-
-function weekdaysCaseReplace(m, format) {
-    var weekdays = {
-        'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
-        'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_')
-    },
-
-    nounCase = (/\[ ?[Вв] ?(?:попередню|наступну)? ?\] ?dddd/).test(format) ?
-        'accusative' :
-        'nominative';
-
-    return weekdays[nounCase][m.day()];
-}
-
-require('../moment').lang('uk', {
-    months : monthsCaseReplace,
-    monthsShort : "січ_лют_бер_кві_тра_чер_лип_сер_вер_жов_лис_гру".split("_"),
-    weekdays : weekdaysCaseReplace,
-    weekdaysShort : "нед_пон_вів_срд_чет_птн_суб".split("_"),
-    weekdaysMin : "нд_пн_вт_ср_чт_пт_сб".split("_"),
-    longDateFormat : {
-        LT : "HH:mm",
-        L : "DD.MM.YYYY",
-        LL : "D MMMM YYYY г.",
-        LLL : "D MMMM YYYY г., LT",
-        LLLL : "dddd, D MMMM YYYY г., LT"
-    },
-    calendar : {
-        sameDay: '[Сьогодні в] LT',
-        nextDay: '[Завтра в] LT',
-        lastDay: '[Вчора в] LT',
-        nextWeek: function () {
-            return this.day() === 2 ? '[У] dddd [в] LT' : '[В] dddd [в] LT';
-        },
-        lastWeek: function () {
-            switch (this.day()) {
-            case 0:
-            case 3:
-            case 5:
-            case 6:
-                return '[В минулу] dddd [в] LT';
-            case 1:
-            case 2:
-            case 4:
-                return '[В минулий] dddd [в] LT';
-            }
-        },
-        sameElse: 'L'
-    },
-    // It needs checking (adding) ukrainan plurals and cases.
-    relativeTime : {
-        future : "через %s",
-        past : "%s тому",
-        s : "декілька секунд",
-        m : relativeTimeWithPlural,
-        mm : relativeTimeWithPlural,
-        h : "годину",
-        hh : relativeTimeWithPlural,
-        d : "день",
-        dd : relativeTimeWithPlural,
-        M : "місяць",
-        MM : relativeTimeWithPlural,
-        y : "рік",
-        yy : relativeTimeWithPlural
-    },
-    ordinal : '%d.',
-    week : {
-        dow : 1, // Monday is the first day of the week.
-        doy : 7  // The week that contains Jan 1st is the first week of the year.
-    }
-});
+// moment.js language configuration\r
+// language : ukrainian (uk)\r
+// author : zemlanin : https://github.com/zemlanin\r
+var pluralRules = [\r
+    function (n) { return ((n % 10 === 1) && (n % 100 !== 11)); },\r
+    function (n) { return ((n % 10) >= 2 && (n % 10) <= 4 && ((n % 10) % 1) === 0) && ((n % 100) < 12 || (n % 100) > 14); },\r
+    function (n) { return ((n % 10) === 0 || ((n % 10) >= 5 && (n % 10) <= 9 && ((n % 10) % 1) === 0) || ((n % 100) >= 11 && (n % 100) <= 14 && ((n % 100) % 1) === 0)); },\r
+    function (n) { return true; }\r
+];\r
+\r
+function plural(word, num) {\r
+    var forms = word.split('_'),\r
+    minCount = Math.min(pluralRules.length, forms.length),\r
+    i = -1;\r
+\r
+    while (++i < minCount) {\r
+        if (pluralRules[i](num)) {\r
+            return forms[i];\r
+        }\r
+    }\r
+    return forms[minCount - 1];\r
+}\r
+\r
+function relativeTimeWithPlural(number, withoutSuffix, key) {\r
+    var format = {\r
+        'mm': 'хвилина_хвилини_хвилин_хвилини',\r
+        'hh': 'година_години_годин_години',\r
+        'dd': 'день_дня_днів_дня',\r
+        'MM': 'місяць_місяця_місяців_місяця',\r
+        'yy': 'рік_року_років_року'\r
+    };\r
+    if (key === 'm') {\r
+        return withoutSuffix ? 'хвилина' : 'хвилину';\r
+    }\r
+    else {\r
+        return number + ' ' + plural(format[key], +number);\r
+    }\r
+}\r
+\r
+function monthsCaseReplace(m, format) {\r
+    var months = {\r
+        'nominative': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'),\r
+        'accusative': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_')\r
+    },\r
+\r
+    nounCase = (/D[oD]? *MMMM?/).test(format) ?\r
+        'accusative' :\r
+        'nominative';\r
+\r
+    return months[nounCase][m.month()];\r
+}\r
+\r
+function weekdaysCaseReplace(m, format) {\r
+    var weekdays = {\r
+        'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\r
+        'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\r
+        'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\r
+    },\r
+\r
+    nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ? \r
+        'accusative' :\r
+        ((/\[?(?:минулої)? ?\] ?dddd/).test(format) ?\r
+            'genitive' :\r
+            'nominative');\r
+\r
+    return weekdays[nounCase][m.day()];\r
+}\r
+\r
+require('../moment').lang('uk', {\r
+    months : monthsCaseReplace,\r
+    monthsShort : "січ_лют_бер_кві_тра_чер_лип_сер_вер_жов_лис_гру".split("_"),\r
+    weekdays : weekdaysCaseReplace,\r
+    weekdaysShort : "нед_пон_вів_срд_чет_птн_суб".split("_"),\r
+    weekdaysMin : "нд_пн_вт_ср_чт_пт_сб".split("_"),\r
+    longDateFormat : {\r
+        LT : "HH:mm",\r
+        L : "DD.MM.YYYY",\r
+        LL : "D MMMM YYYY г.",\r
+        LLL : "D MMMM YYYY г., LT",\r
+        LLLL : "dddd, D MMMM YYYY г., LT"\r
+    },\r
+    calendar : {\r
+        sameDay: '[Сьогодні в] LT',\r
+        nextDay: '[Завтра в] LT',\r
+        lastDay: '[Вчора в] LT',\r
+        nextWeek: function () {\r
+            return this.day() === 2 ? '[У] dddd [в] LT' : '[В] dddd [в] LT';\r
+        },\r
+        lastWeek: function () {\r
+            switch (this.day()) {\r
+            case 0:\r
+            case 3:\r
+            case 5:\r
+            case 6:\r
+                return '[Минулої] dddd [в] LT';\r
+            case 1:\r
+            case 2:\r
+            case 4:\r
+                return '[Минулого] dddd [в] LT';\r
+            }\r
+        },\r
+        sameElse: 'L'\r
+    },\r
+    // It needs checking (adding) Ukrainian plurals and cases.\r
+    relativeTime : {\r
+        future : "через %s",\r
+        past : "%s тому",\r
+        s : "декілька секунд",\r
+        m : relativeTimeWithPlural,\r
+        mm : relativeTimeWithPlural,\r
+        h : "годину",\r
+        hh : relativeTimeWithPlural,\r
+        d : "день",\r
+        dd : relativeTimeWithPlural,\r
+        M : "місяць",\r
+        MM : relativeTimeWithPlural,\r
+        y : "рік",\r
+        yy : relativeTimeWithPlural\r
+    },\r
+    ordinal : '%d.',\r
+    week : {\r
+        dow : 1, // Monday is the first day of the week.\r
+        doy : 7  // The week that contains Jan 1st is the first week of the year.\r
+    }\r
+});\r