17 releases (6 breaking)

0.7.5 Nov 7, 2022
0.7.4 Nov 7, 2022
0.6.0 Nov 5, 2022
0.5.2 Nov 5, 2022
0.1.0 Nov 4, 2022

#1 in #trans

Download history 3/week @ 2024-02-18 3/week @ 2024-02-25 16/week @ 2024-03-10 13/week @ 2024-03-31 1/week @ 2024-04-07

71 downloads per month
Used in dd_tran_tool

MIT license

160KB
847 lines

baidu_trans

百度翻译API

Install

[dependencies]
baidu_trans =  { version = "0.7.5", features = [] }
anyhow = "1.0.66"
dotenv = "0.15.0"

examples

blocking feature:


use baidu_trans::{blocking::Client, config::Config, lang::Lang};

fn main() -> anyhow::Result<()> {
    dotenv::dotenv()?;
    let app_id = dotenv::var("APP_ID")?;
    let app_secret = dotenv::var("APP_SECRET")?;

    let client = Client::new(Config::new(app_id, app_secret));

    client.lang(Lang::Auto, Lang::Zh);
    let resp = client.translate(
        "As we discussed in Chapter 1, Hello Rust!, stack variables are preferred thanks to
their low overhead and speed compared to heap-allocated data, which
automatically introduces overhead thanks to the necessary heap pointer.",
    )?;

    if resp.error_code.is_some() {
        return Err(anyhow::Error::msg(resp.error_msg.unwrap()));
    }

    dbg!(resp);

    Ok(())
}

aio feature

in cargo.toml:

[dependencies]
anyhow = "1.0.66"
baidu_trans =  { version = "0.7.5", features = [ "aio"] }
tokio = { version = "1.21.2", features = ["full"] }
dotenv = "0.15.0"
use baidu_trans::{aio::Client, config::Config, lang::Lang};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    dotenv::dotenv()?;
    let app_id = dotenv::var("APP_ID")?;
    let app_secret = dotenv::var("APP_SECRET")?;

    let client = Client::new(Config::new(app_id, app_secret));

    client.lang(Lang::Auto, Lang::Zh);
    let resp = client
        .translate(
            "As we discussed in Chapter 1, Hello Rust!, stack variables are preferred thanks to
their low overhead and speed compared to heap-allocated data, which
automatically introduces overhead thanks to the necessary heap pointer.",
        )
        .await?;

    if resp.error_code.is_some() {
        return Err(anyhow::Error::msg(resp.error_msg.unwrap()));
    }

    dbg!(resp);

    Ok(())
}

features

  • blocking: 默认特性
  • aio: 启动async/await功能支持
  • image: 启用图片翻译功能
  • domain: 启用垂直领域翻译功能
  • doc:启用文档翻译功能

Dependencies

~5–22MB
~321K SLoC