MoonBit 拼音转换库 — 汉字→拼音 + 繁简转换 + 多音字 + 声调格式,移植自 pinyin4cj
.
├── data
│ ├── chinese_dict.mbt
│ ├── mutil_pinyin_dict.mbt
│ ├── pinyin_dict.mbt
│ └── tongyong_pinyin_dict.mbt
├── examples
│ ├── chinese_helper_example.mbt
│ ├── pinyin_helper_example.mbt
│ ├── pinyin_array_example.mbt
│ └── custom_dict_example.mbt
├── docs
│ ├── roadmap.md
│ ├── architecture.md
│ ├── api.md
│ └── testing.md
├── chinese_helper.mbt
├── pinyin_dicts.mbt
├── pinyin_error.mbt
├── pinyin_format.mbt
├── pinyin_helper.mbt
├── tone_conversion.mbt
├── scripts
│ └── gen_pinyin_dict.py
├── moon.mod
├── moon.pkg
├── CHANGELOG.md
├── LICENSE
├── README.md
└── README.mbt.mdmoon check
moon test///|
test "readme_convert_to_simplified" {
inspect(
@pinyin.ChineseHelper::convert_to_simplified_chinese("臺,喪,麗"),
content="台,丧,丽",
)
}///|
test "readme_convert_to_traditional" {
inspect(
@pinyin.ChineseHelper::convert_to_traditional_chinese("我是中国人"),
content="我是中國人",
)
}///|
test "readme_convert_to_pinyin_string" {
inspect(
@pinyin.PinyinHelper::convert_to_pinyin_string("我是中国人", " "),
content="wǒ shì zhōng zhòng guó rén",
)
}///|
test "readme_with_tone_number" {
inspect(
@pinyin.PinyinHelper::convert_to_pinyin_string(
"中国",
" ",
format=WithToneNumber,
),
content="zhong1 zhong4 guo2",
)
}///|
test "readme_convert_to_pinyin_array" {
debug_inspect(
@pinyin.PinyinHelper::convert_to_pinyin_array('长'),
content="[\"cháng\", \"zhǎng\"]",
)
}///|
test "readme_tongyong_pinyin" {
debug_inspect(
@pinyin.PinyinHelper::to_tongyong_pinyin_string_array('传'),
content="[\"chuan2\", \"jhuan4\"]",
)
}///|
test "readme_get_short_pinyin" {
inspect(@pinyin.PinyinHelper::get_short_pinyin("中国"), content="z z g")
}///|
test "readme_has_multi_pinyin" {
inspect(@pinyin.PinyinHelper::has_multi_pinyin('中'), content="true")
}///|
test "readme_is_chinese" {
inspect(@pinyin.ChineseHelper::is_chinese('中'), content="true")
inspect(@pinyin.ChineseHelper::contains_chinese("abc中"), content="true")
}| 字典 | 条目数 | 类型 | 源库对应 |
|---|---|---|---|
| chinese_map | 2533 | Map[Int, Int] | CHINESE_MAP |
| pinyin_table | 20903 | Map[String, String] | PINYIN_TABLE |
| mutil_pinyin_table | 843 | Map[String, String] | MUTIL_PINYIN_TABLE |
| tongyong_pinyin_table | 82 | Map[String, String] | TONGYONG_PINYIN_TABLE |
python scripts/gen_pinyin_dict.py| 编号 | 依赖构建工具 | 版本号 |
|---|---|---|
| 1 | moon | 0.1.20260713 |
pub(all) suberror PinyinError {
PinyinError(String)
}pub struct ChineseHelper {
}pub(all) enum PinyinFormat {
WithToneMark
WithoutTone
WithToneNumber
FirstLetter
}pub struct PinyinHelper {
}fn PinyinHelper::convert_to_pinyin_string(str : String, separator : String, format? : PinyinFormat) -> String raise PinyinErrorfn PinyinHelper::convert_to_pinyin_string_traditional(str : String, separator : String, format? : PinyinFormat) -> String raise PinyinErrorfn find_array_key_by_value(ch : Char) -> IntInstall
Download zipMoonBit 拼音转换库 — 汉字→拼音 + 繁简转换 + 多音字 + 声调格式,移植自 pinyin4cj