Expand description
HTML翻译库
这个库提供了一个完整的HTML内容翻译解决方案,专门为网页本地化而设计。 它可以智能识别HTML文档中的可翻译文本内容,并将其翻译为目标语言, 同时保持HTML结构的完整性。
§核心特性
- 智能文本识别: 自动识别HTML中需要翻译的文本内容,跳过代码、链接等
- 批量处理优化: 将多个文本项组合成批次,减少翻译API调用次数
- DOM结构保护: 翻译过程中完全保持HTML的DOM结构不变
- 缓存机制: 内置缓存系统,避免重复翻译相同内容
- 错误恢复: 自动重试机制和错误处理,确保翻译过程的可靠性
- 异步支持: 支持异步操作,不阻塞主线程
§使用示例
§基本翻译
use html_translation_lib::{TranslationConfig, HtmlTranslator};
// 创建翻译配置
let config = TranslationConfig::new()
.target_language("zh")
.api_url("http://localhost:1188/translate")
.enable_cache(true);
// 创建翻译器
let mut translator = HtmlTranslator::new(config).await?;
// 翻译HTML内容
let html = r#"<html><body><h1>Hello World</h1></body></html>"#;
let translated_html = translator.translate_html(html).await?;
println!("{}", translated_html);
§翻译文件
use html_translation_lib::{TranslationConfig, HtmlTranslator};
let config = TranslationConfig::new().target_language("zh");
let mut translator = HtmlTranslator::new(config).await?;
// 翻译整个HTML文件
translator.translate_file("input.html", "output_zh.html").await?;
§与Monolith集成
use html_translation_lib::{TranslationConfig, translate_before_merge};
use markup5ever_rcdom::RcDom;
use html5ever::parse_document;
use html5ever::tendril::TendrilSink;
// 解析HTML为DOM
let html = "<html><body><h1>Hello</h1></body></html>";
let dom = parse_document(RcDom::default(), Default::default())
.from_utf8()
.read_from(&mut html.as_bytes())?;
let config = TranslationConfig::new().target_language("zh");
let translated_dom = translate_before_merge(dom, config).await?;
// 然后继续使用monolith进行资源合并
Re-exports§
pub use config::TranslationConfig;
pub use config::TranslationConfigBuilder;
pub use core::HtmlTranslator;
pub use error::TranslationError;
pub use error::TranslationResult;
Modules§
Macros§
- time_it
- 简单的计时宏
Structs§
- Library
Info - 库信息
Functions§
- get_
library_ info - 获取库信息
- translate_
before_ merge - 在Monolith合并前翻译DOM内容
- translate_
html_ content - 翻译HTML内容的便利函数
- translate_
html_ content_ sync - 同步版本的HTML内容翻译