From 6be4826d5e9de417b46f2993097ba046b6d5b83c Mon Sep 17 00:00:00 2001 From: Yegor Pomortsev Date: Tue, 19 Jun 2012 23:41:49 -0700 Subject: [PATCH] lang/ru: fix months/weekdays noun case --- lang/ru.js | 30 ++++++++++++++++++++++++++++-- test/lang/ru.js | 6 +++--- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/lang/ru.js b/lang/ru.js index b5d01840c..bec01b8c7 100644 --- a/lang/ru.js +++ b/lang/ru.js @@ -39,10 +39,36 @@ } }, + monthsCaseReplace = function (m, format) { + var months = { + 'nominative': 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), + 'accusative': 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_') + }, + + nounCase = (/D[oD]? *MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + + return months[nounCase][m.month()]; + }, + + weekdaysCaseReplace = function (m, format) { + var weekdays = { + 'nominative': 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'), + 'accusative': 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'), + }, + + nounCase = (/\[ ?[Вв] ?(?:прошлую|следующую)? ?\] ?dddd/i).test(format) ? + 'accusative' : + 'nominative'; + + return weekdays[nounCase][m.day()]; + }, + lang = { - months : "январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"), + months : monthsCaseReplace, monthsShort : "янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"), - weekdays : "воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"), + weekdays : weekdaysCaseReplace, weekdaysShort : "вск_пнд_втр_срд_чтв_птн_суб".split("_"), weekdaysMin : "вс_пн_вт_ср_чт_пт_сб".split("_"), longDateFormat : { diff --git a/test/lang/ru.js b/test/lang/ru.js index c1269f120..85273c974 100644 --- a/test/lang/ru.js +++ b/test/lang/ru.js @@ -47,9 +47,9 @@ exports["lang:ru"] = { ['a A', 'pm PM'], ['t\\he DDDo \\d\\ay of t\\he ye\\ar', 'the 45. day of the year'], ['L', '14-02-2010'], - ['LL', '14 февраль 2010'], - ['LLL', '14 февраль 2010 15:25'], - ['LLLL', 'воскресенье, 14 февраль 2010 15:25'] + ['LL', '14 февраля 2010'], + ['LLL', '14 февраля 2010 15:25'], + ['LLLL', 'воскресенье, 14 февраля 2010 15:25'] ], b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), i; -- 2.47.3