From ebc345f2e1731530977c31e4371a07b6b10171a9 Mon Sep 17 00:00:00 2001 From: AHOHNMYC <24810600+AHOHNMYC@users.noreply.github.com> Date: Wed, 17 Nov 2021 12:39:37 +0300 Subject: [PATCH] [locales, ru] Editing numeral endings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There are three forms of numeral endings in Russian. I've fixed them using regex. Some advices to Russian-speaking approvers: ```([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$) // Именительный, ед.ч x1 - волк, кроме x11 (волков) ([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$) // Родительный, ед.ч x2-4 - волка, кроме x12-x14 (волков) ([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$) // Родительный, мн.ч x0, x5-9, x1X волков // Где: x - возможная цифра, X - обязательная цифра``` --- locales/ru.json | 65 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 48 insertions(+), 17 deletions(-) diff --git a/locales/ru.json b/locales/ru.json index 2d8d0bee..5bc3de57 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -1,14 +1,17 @@ { "`x` subscribers": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` подписчиков", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` подписчик", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` подписчика", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` подписчиков", "": "`x` подписчиков" }, "`x` videos": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` видео", "": "`x` видео" }, "`x` playlists": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` плейлистов", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` плейлист", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` плейлиста", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` плейлистов", "": "`x` плейлистов" }, "LIVE": "ПРЯМОЙ ЭФИР", @@ -128,11 +131,15 @@ "Token manager": "Менеджер токенов", "Token": "Токен", "`x` subscriptions": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` подписок", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` подписка", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` подписки", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` подписок", "": "`x` подписок" }, "`x` tokens": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` токенов", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` токен", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` токена", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` токенов", "": "`x` токенов" }, "Import/export": "Импорт и экспорт", @@ -140,7 +147,9 @@ "revoke": "отозвать", "Subscriptions": "Подписки", "`x` unseen notifications": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` непросмотренных оповещений", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` непросмотренное оповещение", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` непросмотренного оповещения", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` непросмотренных оповещений", "": "`x` непросмотренных оповещений" }, "search": "поиск", @@ -177,7 +186,9 @@ "Blacklisted regions: ": "Недоступно в регионах: ", "Shared `x`": "Опубликовано `x`", "`x` views": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` просмотров", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` просмотр", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` просмотра", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` просмотров", "": "`x` просмотров" }, "Premieres in `x`": "Премьера через `x`", @@ -186,7 +197,9 @@ "View YouTube comments": "Смотреть комментарии с YouTube", "View more comments on Reddit": "Посмотреть больше комментариев на Reddit", "View `x` comments": { - "([^.,0-9]|^)1([^.,0-9]|$)": "Показать `x` комментариев", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "Показать `x` комментарий", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "Показать `x` комментария", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "Показать `x` комментариев", "": "Показать `x` комментариев" }, "View Reddit comments": "Смотреть комментарии с Reddit", @@ -214,13 +227,17 @@ "Could not get channel info.": "Не удаётся получить информацию об этом канале.", "Could not fetch comments": "Не удаётся загрузить комментарии", "View `x` replies": { - "([^.,0-9]|^)1([^.,0-9]|$)": "Показать `x` ответов", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "Показать `x` ответ", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "Показать `x` ответа", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "Показать `x` ответов", "": "Показать `x` ответов" }, "`x` ago": "`x` назад", "Load more": "Загрузить больше", "`x` points": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` очков", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` очко", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` очка", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` очков", "": "`x` очков" }, "Could not create mix.": "Не удаётся создать микс.", @@ -341,31 +358,45 @@ "Yoruba": "Йоруба", "Zulu": "Зулусский", "`x` years": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` лет", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` год", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` года", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` лет", "": "`x` лет" }, "`x` months": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` месяцев", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` месяц", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` месяца", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` месяцев", "": "`x` месяцев" }, "`x` weeks": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` недель", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` неделя", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` недели", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` недель", "": "`x` недель" }, "`x` days": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` дней", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` день", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` дня", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` дней", "": "`x` дней" }, "`x` hours": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` часов", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` час", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` часа", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` часов", "": "`x` часов" }, "`x` minutes": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` минут", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` минута", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` минуты", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` минут", "": "`x` минут" }, "`x` seconds": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` секунд", + "([^.,0-9]|^)(\d*[0,2-9])?1([^.,0-9]|$)": "`x` секунда", + "([^.,0-9]|^)(\d*[0,2-9])?[2-4]([^.,0-9]|$)": "`x` секунды", + "([^.,0-9]|^)\d*([0,5-9]|1\d)([^.,0-9]|$)": "`x` секунд", "": "`x` секунд" }, "Fallback comments: ": "Резервные комментарии: ",