#language #text-translation #api-key #text #random-text-generate #text-manipulation

text_manipulation_rs

用于生成不同语言的随机占位文本的 crate

4 个版本

0.1.3 2023年5月2日
0.1.2 2023年4月23日
0.1.1 2023年3月19日
0.1.0 2023年3月19日

文本处理 中排名 #860

每月下载量 40

MIT 许可证

170KB
1.5K SLoC

用于生成多语言随机占位文本和翻译的 crate。

本 crate 有四个模块,具有以下功能:

  1. text_generator:用于在多种语言中生成随机占位文本的模块。
  2. deepl:用于具有词汇管理的文本翻译的模块。
  3. my_memory:用于在不同语言中翻译文本的模块。
  4. dictionary:用于解释英语中有效单词意义的模块。

text_generator

使用方法

  1. 这里 下载语料库(文本文件),并将其目录放置在您的 rust 项目的根目录中。
  2. 在 Cargo.toml 文件中包含 crate 名称和版本。
  3. 在您的代码文件中使用 crate 并调用函数。函数 generate_text_for_language 的参数是语言:i32,它接受从 0 到 12 的整数(见下文进行映射),以及 write_to_file:bool,如果为 true 则写入文件。
use text_manipulation_rs::text_generator;
text_generator::generate_text_for_language(language: i32, write_to_file: bool);

支持的语言

0 => 英语
1 => 法语
2 => 西班牙语
3 => 印地语
4 => 俄语
5 => 阿拉伯语
6 => 日语
7 => 德语
8 => 拉丁语
9 => 捷克语
10 => 爱尔兰语
11 => 瑞典语

my_memory

使用方法

  1. 在 Cargo.toml 文件中包含 crate 名称和版本。
  2. 在您的代码文件中使用 crate 并调用函数。函数 'translate_q_pair' 的参数是 q:String 和 langpair:String。
  3. 参数 q:用户想要翻译的文本。
  4. 参数 langpair:源语言和目标语言由 '|' 分隔。请注意,langpair 参数遵循 RFC 3066/2 字母 ISO 的严格格式。有关指导,请参阅 - http://www.i18nguy.com/unicode/language-identifiers.html
use text_manipulation_rs::my_memory;
my_memory::translate_q_langpair(q: String, langpair: String);

dictionary

此模块使用来自 Merriam-Webster 开发者中心 的 API。用户需要生成自己的 API 密钥才能使用此模块。

使用方法

  1. 在 Cargo.toml 文件中包含 crate 名称和版本。
  2. 从上述链接的网站生成开发者的API密钥,将密钥放入名为'dict_secret'的文件中,并将文件保存在项目的根目录下。
  3. 在您的代码文件中使用crate并调用函数。函数get_meaning的参数是word:&str,如果有效,则返回该词的所有定义的向量。
use text_manipulation_rs::dictionary;
dictionary::get_meaning(word: &str);

deepl

此模块使用DeepL的API(DeepL)。用户需要生成自己的API密钥才能使用此模块。

使用方法

  1. 在 Cargo.toml 文件中包含 crate 名称和版本。
  2. 从上述链接的网站生成开发者的API密钥,将密钥放入项目的根目录下的任何纯txt文件中。
  3. 使用crate在您的代码中调用不同的函数。每次API调用都需要您的认证密钥,因此您需要首先创建一个deepl::DeepLKey
use text_manipulation_rs::deepl::DeepLKey;
let auth = DeepLKey::new("/path/to/secret.txt").unwrap();

文本翻译是使用DeepL API的最常见用例。对于任何翻译调用,唯一必需的参数是要翻译的文本和目标语言。API请求位于request模块下。DeepL请求参数可以在deepl模块中找到。

use text_manipulation_rs::deepl::{DeepLKey, TargetLang};
use text_manipulation_rs::request::translation_request::{TranslationRequest};

let auth = DeepLKey::new("/path/to/secret.txt").unwrap();
let tr = TranslationRequest::new("Hello, World!", TargetLang::De);
let request = TranslationRequest::create_request(&auth);
let res = request.execute();

此外,用户可以使用其基本翻译请求添加附加说明。

...

let tr = TranslationRequest::new("Hello, World!", TargetLang::De)
    .set_source_lang(SourceLang::En)
    .set_preserve_formatting(false)
    .set_formality(Formality::More);
...

术语表允许用户为某些单词提供特定的翻译。例如,假设用户希望将英语单词"Hello"和"Bye"翻译成德语单词"Hallo"和"Tschüss"。用户将把这些单词写入制表符分隔的值格式,如下所示,并将请求传递给API:"Hello\tHallo\nBye\tTschüss"。

use text_manipulation_rs::deepl::{DeepLKey, SourceLang, TargetLang};
use text_manipulation_rs::request::glossary_request::{create_glossary_from_string};

let auth = DeepLKey::new("/path/to/secret.txt").unwrap();
let name = String::from("My Dictionary");
let source = SourceLang::En;
let target = TargetLang::De;
let entries = String::from("Hello\tHallo\nBye\tTschüss");
let res = create_glossary_from_string(&auth, name, source, target, entries);

只有当翻译请求中指定了源语言时,才能在翻译请求中使用术语表。有关glossary_request模块的更多用途,请参阅文档。

依赖项

~14–31MB
~516K SLoC