libretranslate-rs
A LibreTranslate API client for Rust.
libretranslate = "0.5.1"
libretranslate allows you to use open source machine translation in your projects through an easy to use API that connects to the official webpage.
Update for Oct, 2021
As of now, libretranslate.com hasn't implemented rate limiting yet, so you must use an alternate instance or have an API key.
Here are some that work:
You'll need to use a Builder struct or a String method and specify the url to change to an instance that doesn't require an API key.
Basic Example
libretranslate is an async library, so you'll have to use an async runtime like tokio or async-std.
All translations are done through the translate function:
use ;
async
Output:
Input French: le texte français.
Output English: the French text.
Language Detection
Here's a simple example.
use ;
async
Output:
Input French: le texte français.
Output English: the French text.
Language Functionality
The Language enum has a lot of functionality so you can create a Language from all sorts of different user inputs.
You can return a &str with the language's name in English using as_pretty(), or the language's code using as_code().
Language also implements FromStr so you can create a Language using text like "en", or "English" (case doesn't matter). You can do this by either using Language::from() or .parse::<Language>().
Here's a simple example.
use Language;
String Methods
The trait Translate implements AsRef<str>, meaning that any &str or String can be translated into any other language.
Here's a simple example.
use ;
async
Output:
Output: "Dies ist Text, geschrieben auf einem Computer, in Englisch."
Available Languages
- English
- Arabic
- Chinese
- French
- German
- Italian
- Japanese
- Portuguese
- Russian
- Spanish
- Polish