pinyindart
pinyindart 是一个可直接被 Dart / Flutter 第三方项目引用的汉字转拼音库,功能对齐 pinyingo Go 版,并尽量保持和 pinyinjs 常见能力一致。
Features
- 汉字转拼音,支持带声调和无声调
- 拼音首字母提取
- 多音字识别和全部组合输出
- 拼音反查汉字
- 声调符号和数字互转
- 汉字字频序号和累计频率查询
- 纯 Dart 实现,字典数据已内嵌到包内
Getting started
dart pub add pinyindart
Flutter 项目同样可以直接加入依赖后使用,无需额外初始化 assets。
Usage
import 'package:pinyindart/pinyindart.dart';
void main() {
print(getPinyin('中国'));
// zhōng guó
print(getPinyin('中国', withTone: false));
// zhong guo
print(getPinyin('中国', separator: '-'));
// zhōng-guó
print(getPinyin('重庆', polyphone: true));
// chóng qìng
print(getFirstLetter('中华人民共和国'));
// ZHRMGHG
print(getPinyinAll('大夫'));
// [dà fū, dà fú, dài fū, dài fú]
print(getFirstLetterAll('乐'));
// [L, Y]
print(getHanzi('zhong'));
// 中钟终...
print(removeTone('zhōng guó'));
// zhong guo
print(addTone('zhong1 guo2'));
// zhōng guó
print(getToneNumber('zhōng'));
// 1
}
Compatibility
除了 Dart 风格的顶层函数,也提供 PinyinUtil 静态方法,方便向 JS 风格调用迁移:
print(PinyinUtil.getPinyin('中国'));
print(PinyinUtil.getHanzi('zhong'));
Dictionary source
词典数据来源于当前仓库中的 pinyingo 实现,并通过 tool/generate_dictionary_data.dart 预生成到 Dart 源码中,因此运行时不依赖本地文件。