15 releases (breaking)

0.10.0 May 23, 2023
0.9.0 Dec 12, 2021
0.8.0 Jun 13, 2020
0.7.0 Jun 12, 2019
0.0.5 Nov 21, 2015

#30 in Internationalization (i18n)

Download history 2380/week @ 2024-01-02 2458/week @ 2024-01-09 2606/week @ 2024-01-16 2562/week @ 2024-01-23 2730/week @ 2024-01-30 2347/week @ 2024-02-06 2709/week @ 2024-02-13 2251/week @ 2024-02-20 2076/week @ 2024-02-27 2301/week @ 2024-03-05 2802/week @ 2024-03-12 3311/week @ 2024-03-19 3052/week @ 2024-03-26 3103/week @ 2024-04-02 2590/week @ 2024-04-09 2457/week @ 2024-04-16

11,685 downloads per month
Used in 15 crates (11 directly)

MIT license

350KB
674 lines

rust-pinyin

Build Status Crates.io Version Doc

汉语拼音转换工具 Rust 版

Installation

Add this to your Cargo.toml:

[dependencies]
pinyin = "0.10"

Documentation

API documentation can be found here: https://docs.rs/pinyin/

Usage

use pinyin::{ToPinyin, ToPinyinMulti};

fn main() {
    let hans = "中国人";

    // 无声调,输出 zhong guo ren
    for pinyin in hans.to_pinyin() {
        if let Some(pinyin) = pinyin {
            print!("{} ", pinyin.plain());
        }
    }
    println!();

    // 包含声调,输出 zhōng guó rén
    for pinyin in hans.to_pinyin() {
        if let Some(pinyin) = pinyin {
            print!("{} ", pinyin.with_tone());
        }
    }
    println!();

    // 声调用数字表示,输出 zho1ng guo2 re2n
    for pinyin in hans.to_pinyin() {
        if let Some(pinyin) = pinyin {
            print!("{} ", pinyin.with_tone_num());
        }
    }
    println!();

    // 多音字,输出
    // zho1ng zho4ng
    // guo2
    // re2n
    for multi in hans.to_pinyin_multi() {
        if let Some(multi) = multi {
            for pinyin in multi {
                print!("{} ", pinyin.with_tone_num());
            }
            println!();
        }
    }
}

Build

$ cargo build

Test

$ cargo test

Data

使用来自 pinyin-data 的拼音数据。

No runtime deps