@Gumper

Как локализовать время?

У меня есть задача переводить слова в зависимости от числа:
Например:
1 Минута
2 Минуты
30 Минут ...
Или
1 День
3 Дня
8 Дней ...

У меня на проекте стоит vue-i18n, но пример для решения этой задачи очень убогий:
https://kazupon.github.io/vue-i18n/guide/pluraliza...
И я не очень понимаю что делать если для разных слов нужно написать разный алгоритм

Какие есть варианты решения?
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
Давно на Хабре был пост с решением на разных Я.П.: «Война с роботами: склонение существительных после числительных»

На просторах интернета нашлось более лаконичное решение на JS:
var numToStr = function(num, arrText) {
  if (num % 10 === 1 && num % 100 !== 11) { 
    return arrText[0];
  } else if (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)) {
    return arrText[1];            
  }
  return arrText[2];
}

Аргументы: число и массив слрв для 1, 2 и 5.

Например:
numToStr(42, ['яблоко', 'яблока', 'яблок']) // "яблока"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы