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 源码中,因此运行时不依赖本地文件。

Libraries

pinyindart