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 次
170KB
1.5K SLoC
用于生成多语言随机占位文本和翻译的 crate。
本 crate 有四个模块,具有以下功能:
- text_generator:用于在多种语言中生成随机占位文本的模块。
- deepl:用于具有词汇管理的文本翻译的模块。
- my_memory:用于在不同语言中翻译文本的模块。
- dictionary:用于解释英语中有效单词意义的模块。
text_generator
使用方法
- 从 这里 下载语料库(文本文件),并将其目录放置在您的 rust 项目的根目录中。
- 在 Cargo.toml 文件中包含 crate 名称和版本。
- 在您的代码文件中使用 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
使用方法
- 在 Cargo.toml 文件中包含 crate 名称和版本。
- 在您的代码文件中使用 crate 并调用函数。函数 'translate_q_pair' 的参数是 q:String 和 langpair:String。
- 参数 q:用户想要翻译的文本。
- 参数 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 密钥才能使用此模块。
使用方法
- 在 Cargo.toml 文件中包含 crate 名称和版本。
- 从上述链接的网站生成开发者的API密钥,将密钥放入名为'dict_secret'的文件中,并将文件保存在项目的根目录下。
- 在您的代码文件中使用crate并调用函数。函数
get_meaning
的参数是word:&str,如果有效,则返回该词的所有定义的向量。
use text_manipulation_rs::dictionary;
dictionary::get_meaning(word: &str);
deepl
此模块使用DeepL的API(DeepL)。用户需要生成自己的API密钥才能使用此模块。
使用方法
- 在 Cargo.toml 文件中包含 crate 名称和版本。
- 从上述链接的网站生成开发者的API密钥,将密钥放入项目的根目录下的任何纯txt文件中。
- 使用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