Библиотека для работы со словоформами множественного числа. pl-js поддерживает произвольное количество языков (изначально добавлены правила для английского и русского) и крайне проста в использовании, поскольку расширяет стандартные объекты Array, String и Number.
pl-js может работать с массивами, строками и числами.
// Задаём массив со всеми возможными словоформами:
var pattern = ['%d штука', '%d штуки', '%d штук', '%d штуки'];
// А теперь получаем строку с корректной словоформой:
console.log(pattern.pl(1));
// 1 штука
console.log(pattern.pl(5));
// 5 штук
console.log(pattern.pl(2.5));
// 2.5 штуки
// Задаём точно такой же массив, как и в предыдущем примере:
var pattern = ['%d штука', '%d штуки', '%d штук', '%d штуки'];
// Получаем строку:
console.log(1..pl(pattern));
// 1 штука
console.log(2.5.pl(pattern));
// 2.5 штуки
// В данном примере вместо массива можно использовать строку:
var pattern = '{%d штука|%d штуки|%d штук|%d штуки}';
console.log(4..pl(pattern));
// 4 штуки
// Со строками можно работать инлайново:
console.log('С территории военной части вынесли {%d гранату|%d гранаты|%d гранат|%d гранаты}'.pl(3));
// С территории военной части вынесли 3 гранаты
// Можно использовать несколько чисел:
console.log('{%d гранату|%d гранаты|%d гранат|%d гранаты} и {%d автомат|%d автомата|%d автоматов|%d автомата}'.pl(3, 5)
);
// 3 гранаты и 5 автоматов
// Можно использовать шаблоны:
var patterns = {
grenades: ['%d гранату', '%d гранаты', '%d гранат', '%d гранаты'],
machineguns: ['%d автомат', '%d автомата', '%d автоматов', '%d автомата']
};
console.log('С территории военной части вынесли {grenades} и {machineguns}'.pl(3, 5));
// С территории военной части вынесли 3 гранаты и 5 автоматов
pl-js поддерживает одновременную работу с несколькими языками. По умолчанию используется русский. Если вам нужно использовать язык, отличный от выбранного по умолчанию, можно передать его название последним аргументом метода pl(). Такой подход работает для любых объектов.
Язык по умолчанию вы можете его изменить, указав его название в переменной window.pl.defaultLang
.