Skip to content

Latest commit

 

History

History
176 lines (123 loc) · 8.37 KB

File metadata and controls

176 lines (123 loc) · 8.37 KB

Harfizer — Прочитайте ваши числа, даты и время вслух (на любом языке)!

Harfizer — это мощный пакет для преобразования чисел, дат и времени в слова. Он использует плагины, специфичные для языка, что позволяет легко преобразовывать числовые и временные значения в их текстовое представление.
Если вы предпочитаете использовать другой язык, пожалуйста, нажмите на соответствующие ссылки, приведённые выше или в конце этого документа.

Оглавление

Установка

Установите Harfizer через npm:

npm install harfizer

Использование

Импортируйте плагин и класс CoreConverter из пакета:

import { CoreConverter, RussianLanguagePlugin } from 'harfizer';

const russianPlugin = new RussianLanguagePlugin();
const converter = new CoreConverter(russianPlugin);

Функции

convertNumber(input: InputNumber, options?: ConversionOptions): string

Преобразует заданное число (целое или десятичное, возможно, отрицательное) в текстовую форму на русском языке. Десятичная часть обрабатывается по разрядам с использованием слова "запятая".

Параметры:

  • input: число, числовая строка или bigint.
  • options (необязательно): объект для настройки преобразования:
    • customZeroWord – переопределяет слово для нуля.
    • customNegativeWord – переопределяет слово для отрицательных чисел.
    • customSeparator – переопределяет разделитель между токенами.

Возвращаемое значение:
Строка, представляющая число словами на русском.

Пример:

converter.convertNumber("123"); 
// Вывод: "сто двадцать три"

converter.convertNumber("-456.78"); 
// Вывод: "минус четыреста пятьдесят шесть запятая семь восемь"

convertTripleToWords(num: InputNumber, lexicon?: any, _separator?: string): string

Преобразует число до трёх цифр (или меньше) в его текстовую форму на русском языке.

Параметры:

  • num: числовое значение (до 3 цифр).

Возвращаемое значение:
Строка, представляющая данное число словами (например, "четыреста пятьдесят шесть").

Пример:

converter.convertTripleToWords(789); 
// Вывод: "семьсот восемьдесят девять"

convertDateToWords(dateStr: string, calendar?: "jalali" | "gregorian"): string

Преобразует строку даты в формате "YYYY/MM/DD" или "YYYY-MM-DD" в текстовую форму на русском языке. Выходной формат: "день месяц год года", где название месяца берётся на русском.

Параметры:

  • dateStr: строка даты.
  • calendar (необязательно): для русского используется "gregorian" (по умолчанию).

Возвращаемое значение:
Строка, представляющая дату словами.

Пример:

converter.convertDateToWords("2023/04/05"); 
// Вывод: "пять апреля две тысячи двадцать третьего года"

Примечание: точное представление может варьироваться в зависимости от реализации.


convertTimeToWords(timeStr: string): string

Преобразует строку времени в формате "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)); 
// Вывод: "минус сто двадцать три"

Документация по другим языковым плагинам

Для получения документации по плагинам на других языках, пожалуйста, обратитесь к следующим файлам:

Лицензия

Этот пакет распространяется под лицензией MIT.