#translate-text #translation #text-translation #yandex #language-detection

text-translator

一个用于使用所选引擎API在不同语言之间翻译文本的库

1 个不稳定版本

0.1.0 2020年5月10日

#4 in #translate-text

MIT 许可证

27KB
633

text_translator

描述

此软件包允许轻松地在语言之间翻译文本。其目标是

  • 实现不同API的独特库
  • 允许在有或没有API密钥的情况下进行语言翻译/检测
  • 易于使用/相对性能
  • (稍后) 异步翻译

它想要实现以下API

如何使用

要使用它,首先需要构造一个翻译器(一个实现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