27个版本
0.5.2 | 2023年8月28日 |
---|---|
0.5.1 | 2021年6月24日 |
0.5.0 | 2021年5月26日 |
0.2.7 | 2021年3月25日 |
#30 in 国际化(i18n)
用于 libretrans
25KB
374 行
libretranslate-rs
Rust的LibreTranslate API客户端。
libretranslate = "0.5.1"
libretranslate
允许您通过易于使用的API连接到官方 网页,在项目中使用开源机器翻译。
2021年10月更新
截至目前,libretranslate.com 尚未实现速率限制,因此您必须使用其他实例或API密钥。
以下是一些可以工作的实例
您需要使用 Builder 结构体或 String 方法并指定 URL 以切换到不需要API密钥的实例。
基本示例
libretranslate
是一个异步库,因此您必须使用异步运行时,如 tokio
或 async-std
。
所有翻译都通过 translate
函数完成
use libretranslate::{translate, Language};
#[tokio::main]
async fn main() {
let source = Language::French;
let target = Language::English;
let input = "Le texte français.";
let data = translate(source, target, input, None).await.unwrap();
println!("Input {}: {}", data.source.as_pretty(), data.input);
println!("Output {}: {}", data.target.as_pretty(), data.output);
}
输出
Input French: le texte français.
Output English: the French text.
语言检测
这里有一个简单的示例。
use libretranslate::{translate, Language};
#[tokio::main]
async fn main() {
let target = Language::English;
let text = "le texte français.";
let data = translate(Language::Detect, target, text, None).await.unwrap();
println!("Input {}: {}", data.source.as_pretty(), data.input);
println!("Output {}: {}", data.target.as_pretty(), data.output);
}
输出
Input French: le texte français.
Output English: the French text.
语言功能
Language
枚举有很多功能,您可以从各种不同的用户输入创建一个 Language
。
您可以使用 as_pretty()
返回带有语言名称的英文字符串,或使用 as_code()
返回语言的代码。
语言
还实现了 FromStr
,因此您可以使用像 "en" 或 "English"(大小写不敏感)这样的文本来创建一个 语言
。您可以通过使用 语言::from()
或 .parse::<语言>()
来实现这一点。
这里有一个简单的示例。
use libretranslate::Language;
fn main() {
let lang = Language::English;
let lang_parse = "english".parse::<Language>().unwrap();
assert_eq!(lang, lang_parse);
assert_eq!("en", lang.as_code());
assert_eq!("English", lang.as_pretty());
}
字符串方法
特质 Translate
实现了 AsRef<str>
,这意味着任何 &str
或 String
都可以被翻译成任何其他语言。
这里有一个简单的示例。
use libretranslate::{Language, Translate};
#[tokio::main]
async fn main() {
let text = "This is text, written on a computer, in English."
.to_lang(Language::German)
.from_lang(Language::English)
.translate()
.await
.unwrap();
println!("output: \"{}\"", text);
}
输出
Output: "Dies ist Text, geschrieben auf einem Computer, in Englisch."
可用语言
- 英语
- 阿拉伯语
- 中文
- 法语
- 德语
- 意大利语
- 日语
- 葡萄牙语
- 俄语
- 西班牙语
- 波兰语
依赖项
~6.5–9.5MB
~200K SLoC