Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[locale] ru: fix months abbreviations (#5786) #5788

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 3 additions & 5 deletions src/locale/ru.js
Expand Up @@ -46,7 +46,6 @@ var monthsParse = [
];

// http://new.gramota.ru/spravka/rules/139-prop : § 103
// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
export default moment.defineLocale('ru', {
months: {
Expand All @@ -58,11 +57,10 @@ export default moment.defineLocale('ru', {
),
},
monthsShort: {
// по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку?
format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
format: 'янв_фев_мар_апр_мая_июн_июл_авг_сен_окт_ноя_дек'.split(
'_'
),
standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
standalone: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split(
'_'
),
},
Expand Down Expand Up @@ -91,7 +89,7 @@ export default moment.defineLocale('ru', {
monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,

// Выражение, которое соответствует только сокращённым формам
monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
monthsShortStrictRegex: /^(янв|февр?|март?|апр|ма[яй]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)/i,
longDateFormat: {
LT: 'H:mm',
LTS: 'H:mm:ss',
Expand Down
20 changes: 10 additions & 10 deletions src/test/locale/ru.js
Expand Up @@ -4,7 +4,7 @@ import moment from '../../moment';
localeModule('ru');

test('parse', function (assert) {
var tests = 'январь янв._февраль февр._март март_апрель апр._май май_июнь июнь_июль июль_август авг._сентябрь сент._октябрь окт._ноябрь нояб._декабрь дек.'.split(
var tests = 'январь янв_февраль фев_март мар_апрель апр_май май_июнь июн_июль июл_август авг_сентябрь сен_октябрь окт_ноябрь ноя_декабрь дек'.split(
'_'
),
i;
Expand Down Expand Up @@ -56,7 +56,7 @@ test('format', function (assert) {
'воскресенье, 14-го февраля 2010, 15:25:50',
],
['ddd, h A', 'вс, 3 дня'],
['M Mo MM MMMM MMM', '2 2-й 02 февраль февр.'],
['M Mo MM MMMM MMM', '2 2-й 02 февраль фев'],
['YYYY YY', '2010 10'],
['D Do DD', '14 14-го 14'],
['d do dddd ddd dd', '0 0-й воскресенье вс вс'],
Expand All @@ -75,9 +75,9 @@ test('format', function (assert) {
['LLL', '14 февраля 2010 г., 15:25'],
['LLLL', 'воскресенье, 14 февраля 2010 г., 15:25'],
['l', '14.2.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'],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

более того, меня ещё и точка в конце после 'г' бесит. Но это хренов гост.

А можно какой-то параметр сделать, пусть глобальный, чтобы переключать между этими (гостовским и нормальным) режимами ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

придумал!

у нас есть ru_RU (язык_страна)
а нельзя ли сделать ru_RUGOST или чтото подобное, если кому-то вдруг надо. а в ru_RU сделать по-человечески. Тогда моя душенька будет спокойна.

Copy link
Author

@uvizhe uvizhe Dec 6, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В программер-френдли локали не должно быть не только точки после 'г', но и самой буквы :)

['ll', '14 фев 2010'],
['lll', '14 фев 2010 15:25'],
['llll', 'вс 14 фев 2010 15:25']

Для референса можно смотреть на вывод команды LC_ALL='ru_RU.utf8' date в linux-консоли.
Или вывод python -c'import time, locale; locale.setlocale(locale.LC_ALL, "ru_RU.utf-8"); print(time.strftime("%c"))'

],
b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
i;
Expand Down Expand Up @@ -147,7 +147,7 @@ test('format ordinal', function (assert) {
});

test('format month', function (assert) {
var expected = 'январь янв._февраль февр._март март_апрель апр._май май_июнь июнь_июль июль_август авг._сентябрь сент._октябрь окт._ноябрь нояб._декабрь дек.'.split(
var expected = 'январь янв_февраль фев_март мар_апрель апр_май май_июнь июн_июль июл_август авг_сентябрь сен_октябрь окт_ноябрь ноя_декабрь дек'.split(
'_'
),
i;
Expand Down Expand Up @@ -186,10 +186,10 @@ test('format month case', function (assert) {

test('format month short case', function (assert) {
var monthsShort = {
nominative: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
nominative: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split(
'_'
),
accusative: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
accusative: 'янв_фев_мар_апр_мая_июн_июл_авг_сен_окт_ноя_дек'.split(
'_'
),
},
Expand Down Expand Up @@ -244,10 +244,10 @@ test('format month case with escaped symbols', function (assert) {

test('format month short case with escaped symbols', function (assert) {
var monthsShort = {
nominative: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
nominative: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split(
'_'
),
accusative: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
accusative: 'янв_фев_мар_апр_мая_июн_июл_авг_сен_окт_ноя_дек'.split(
'_'
),
},
Expand Down