#google-translate #translate #google #api-key #async #language

translators

Free Google Translator without API key and limits

5 releases

0.1.4 Oct 30, 2024
0.1.3 Jul 8, 2024
0.1.2 Jul 7, 2024
0.1.1 Jul 6, 2024
0.1.0 Jul 6, 2024

#319 in Asynchronous

Download history 2/week @ 2024-08-02 2/week @ 2024-08-09 4/week @ 2024-09-20 4/week @ 2024-09-27 1/week @ 2024-10-04 100/week @ 2024-10-25 26/week @ 2024-11-01 1/week @ 2024-11-08 3/week @ 2024-11-15

130 downloads per month

MIT license

20KB
298 lines

translators Crates.io License

translators is a fast async/sync, thread-safe library for Google Translator with no API key and no limits. It also includes support for proxy.

Questions:

  • There are no limits? Yes, I tested the translation of a book exceeding 1 million characters.Everything works.

Features flags

  • google - add support google-translate
  • tokio-async - add support async

Examples

1. Async example

use translators::{GoogleTranslator, Translator};

#[tokio::main]
async fn main() {
    let google_trans = GoogleTranslator::default();
    let res = google_trans
        .translate_async("Hello, world!", "", "es")
        .await
        .unwrap();
    println!("{res}");
}

Add to the dependency:

[dependencies]
translators = { version = "0.1.4", features = ["google", "tokio-async"] }
tokio = { version = "x", features = ["rt-multi-thread", "macros"] }

2. Sync example

use translators::{GoogleTranslator, Translator};

fn main() {
    let google_trans = GoogleTranslator::default();
    let res = google_trans
        .translate_sync("Hello, world!", "", "es")
        .unwrap();
    println!("{res}");
}

Add to the dependency:

[dependencies]
translators = { version = "0.1.4", features = ["google"] }

3. Custom config

// delete any line if you don't need it
let google_trans = GoogleTranslator::builder()
    // How long to wait for a request in sec
    .timeout(35 as usize) 
    // delay between requests if the limit is exceeded
    .delay(120 as usize) 
    // shows how many requests can be handled concurrently
    // work only with async 
    .max_concurrency(2 as usize)
    // proxy
    .proxy_address("http://user:password@0.0.0.0:80")
    /// limits on the maximum number of chars
    /// set if the translator has changed their limits.
    .text_limit(5000)
    .build();

What's New in Version 0.1.4

  • Add max concurrency
  • Fix request delay handling
  • Add general error for translators
  • Add text limit in builder

Additional Information

For more details, guides, and advanced usage, please refer to the examples and official documentation.

Disclaimer

The translators library is provided for educational and research purposes only.

The library is distributed "as-is" with no warranties of any kind, express or implied. The author disclaims any liability for damages arising from the use of this library, including data loss or financial loss. Usage of this library is at your own risk, and the author does not receive any financial benefit from its use.

Users are responsible for complying with third-party terms of service, including those of Google Translator or any other translation service provider.

Dependencies

~7–19MB
~248K SLoC