1 个不稳定版本
0.1.0 | 2020年5月10日 |
---|
#4 in #translate-text
27KB
633 行
text_translator
描述
此软件包允许轻松地在语言之间翻译文本。其目标是
- 实现不同API的独特库
- 允许在有或没有API密钥的情况下进行语言翻译/检测
- 易于使用/相对性能
- (稍后) 异步翻译
它想要实现以下API
[x]
Yandex.Translate[ ]
使用 API密钥[ ]
无密钥(最大翻译字符数:5_000)
[ ]
Google Translate[ ]
Bing
如何使用
要使用它,首先需要构造一个翻译器(一个实现Api 特性的结构)。
然后,您将对这个结构执行各种函数调用
my_translator.translate(my_text,input_language,target_language)
my_translator.detect(my_text)
如果API实现了语言检测
语言用Language
枚举表示目标语言,用InputLanguage
表示输入语言。更多信息请参阅它们的相应文档。
示例
目前,仅实现了Yandex API。
以下是如何使用它进行文本翻译和检测输入语言的示例。
重要:为了使用这些示例,您需要在Yandex网站上获取免费的API密钥.
文本翻译
将未知语言的文本翻译成日语
use text_translator::*;
// replace with your personnal API key
const YANDEX_API_KEY: &str = "MY_PRIVATE_KEY_SET_YOUR_OWN";
// construct the struct
let translator: Yandex = Yandex::with_key(YANDEX_API_KEY);
let text: String = "Hello, my name is Naruto Uzumaki!".to_string();
// translate the text, returns a `Result<String, Error>`
let translated_text: String = match translator.translate(text, InputLanguage::Automatic, Language::Japanese) {
Ok(result) => result,
Err(err) => panic!("API error, could not translate text : {:#?}", err)
};
assert_eq!(translated_text, "こんにちは、鳴門のうずまき!")
语言检测
检测文本的语言
use text_translator::*;
// replace with your personnal API key
const YANDEX_API_KEY: &str = "MY_PRIVATE_KEY_SET_YOUR_OWN";
let translator: Yandex = Yandex::with_key(YANDEX_API_KEY);
let text: String = "Bonjour, je m'appelle Naruto Uzumaki!".to_string();
// detect the language, returns a `Result<Option<Language>, Error>`
let detected_language: Language = match translator.detect(text) {
Ok(response) => match response {
Some(language) => language,
None => panic!("Could detect language : unknown language"),
},
Err(err) => panic!("API error, could not detect language : {:#?}", err)
};
assert_eq!(detected_language, Language::French)
贡献
所有贡献都欢迎!
如果你发现任何问题,请报告它——如果你还有建议也请提出!
依赖项
~9-19MB
~262K SLoC