Skip to content

Latest commit

 

History

History
174 lines (122 loc) · 5.22 KB

File metadata and controls

174 lines (122 loc) · 5.22 KB

Harfizer — 用中文朗读您的数字、日期和时间

Harfizer 是一个功能强大的包,用于将数字、日期和时间转换为中文文本。它通过使用语言特定的插件,使您能够轻松地将数值和时间转换为对应的文字表示。
如果您希望使用其他语言,请点击上方或下方提供的相应文档链接。

目录

安装

通过 npm 安装 Harfizer:

npm install harfizer

使用方法

从包中导入插件和 CoreConverter 类:

import { CoreConverter, ChineseLanguagePlugin } from 'harfizer';

const chinesePlugin = new ChineseLanguagePlugin();
const converter = new CoreConverter(chinesePlugin);

函数

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

将一个最多四位的数字转换为中文文本表示(用于处理不超过 10,000 的数字)。

参数:

  • num: 数值(最多 4 位)。

返回值:
表示该数字的中文文本字符串(例如:"四百五十六")。

示例:

converter.convertTripleToWords(789); 
// 输出: "七百八十九"

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

将一个公历日期字符串(格式为 "YYYY/MM/DD" 或 "YYYY-MM-DD")转换为中文文本表示。输出格式为 "YYYY年MM月DD日",其中每一部分均转换为中文数字。

参数:

  • dateStr: 日期字符串。
  • calendar (可选): 对于中文,仅支持公历(默认 "gregorian")。

返回值:
表示日期的中文文本字符串。

示例:

converter.convertDateToWords("2023/04/05"); 
// 输出: "二零二三年四月五日"

convertTimeToWords(timeStr: string): string

将一个时间字符串(格式为 "HH:mm")转换为中文文本表示。输出格式为 "时分";若分钟为 0,则仅显示 "时"。

参数:

  • timeStr: 时间字符串(格式 "HH:mm")。

返回值:
表示时间的中文文本字符串。

示例:

converter.convertTimeToWords("09:00"); 
// 输出: "九时"

converter.convertTimeToWords("09:05"); 
// 输出: "九时五分"

示例

以下是使用 ChineseLanguagePluginCoreConverter 的示例:

import { CoreConverter, ChineseLanguagePlugin } from 'harfizer';

const chinesePlugin = new ChineseLanguagePlugin();
const converter = new CoreConverter(chinesePlugin);

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 许可证