Harfizer — это мощный пакет для преобразования чисел, дат и времени в слова. Он использует плагины, специфичные для языка, что позволяет легко преобразовывать числовые и временные значения в их текстовое представление.
Если вы предпочитаете использовать другой язык, пожалуйста, нажмите на соответствующие ссылки, приведённые выше или в конце этого документа.
- Harfizer — Прочитайте ваши числа, даты и время вслух (на любом языке)!
Установите Harfizer через npm:
npm install harfizerИмпортируйте плагин и класс CoreConverter из пакета:
import { CoreConverter, RussianLanguagePlugin } from 'harfizer';
const russianPlugin = new RussianLanguagePlugin();
const converter = new CoreConverter(russianPlugin);Преобразует заданное число (целое или десятичное, возможно, отрицательное) в текстовую форму на русском языке. Десятичная часть обрабатывается по разрядам с использованием слова "запятая".
Параметры:
- input: число, числовая строка или bigint.
- options (необязательно): объект для настройки преобразования:
customZeroWord– переопределяет слово для нуля.customNegativeWord– переопределяет слово для отрицательных чисел.customSeparator– переопределяет разделитель между токенами.
Возвращаемое значение:
Строка, представляющая число словами на русском.
Пример:
converter.convertNumber("123");
// Вывод: "сто двадцать три"
converter.convertNumber("-456.78");
// Вывод: "минус четыреста пятьдесят шесть запятая семь восемь"Преобразует число до трёх цифр (или меньше) в его текстовую форму на русском языке.
Параметры:
- num: числовое значение (до 3 цифр).
Возвращаемое значение:
Строка, представляющая данное число словами (например, "четыреста пятьдесят шесть").
Пример:
converter.convertTripleToWords(789);
// Вывод: "семьсот восемьдесят девять"Преобразует строку даты в формате "YYYY/MM/DD" или "YYYY-MM-DD" в текстовую форму на русском языке. Выходной формат: "день месяц год года", где название месяца берётся на русском.
Параметры:
- dateStr: строка даты.
- calendar (необязательно): для русского используется "gregorian" (по умолчанию).
Возвращаемое значение:
Строка, представляющая дату словами.
Пример:
converter.convertDateToWords("2023/04/05");
// Вывод: "пять апреля две тысячи двадцать третьего года"Примечание: точное представление может варьироваться в зависимости от реализации.
Преобразует строку времени в формате "HH:mm" в текстовую форму на русском языке.
Если минуты равны нулю, возвращается, например, "девять часов"; иначе – "девять часов пять минут".
Параметры:
- timeStr: строка времени в формате "HH:mm".
Возвращаемое значение:
Строка, представляющая время словами.
Пример:
converter.convertTimeToWords("09:00");
// Вывод: "девять часов"
converter.convertTimeToWords("09:05");
// Вывод: "девять часов пять минут"Ниже приведён пример использования RussianLanguagePlugin с CoreConverter:
import { CoreConverter, RussianLanguagePlugin } from 'harfizer';
const russianPlugin = new RussianLanguagePlugin();
const converter = new CoreConverter(russianPlugin);
console.log(converter.convertNumber("123"));
// Вывод: "сто двадцать три"
console.log(converter.convertDateToWords("2023/04/05"));
// Вывод: "пять апреля две тысячи двадцать третьего года"
console.log(converter.convertTimeToWords("09:05"));
// Вывод: "девять часов пять минут"Метод convertNumber принимает необязательный объект ConversionOptions для настройки преобразования:
const options = {
customZeroWord: "ноль",
customNegativeWord: "минус",
customSeparator: " "
};
console.log(converter.convertNumber("-123", options));
// Вывод: "минус сто двадцать три"Для получения документации по плагинам на других языках, пожалуйста, обратитесь к следующим файлам:
- 🇬🇧 Документация по EnglishLanguagePlugin
- 🇮🇷 Документация по PersianLanguagePlugin
- 🇫🇷 Документация по FrenchLanguagePlugin
- 🇯🇵 Документация по JapaneseLanguagePlugin
- 🇨🇳 Документация по ChineseLanguagePlugin
- 🇩🇪 Документация по GermanLanguagePlugin
- 🇪🇸 Документация по SpanishLanguagePlugin
Этот пакет распространяется под лицензией MIT.