Crate html_translation_lib

Crate html_translation_lib 

Source
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§

config
翻译配置管理模块
core
核心翻译器实现
error
翻译错误类型定义
pipeline
文本处理管道模块
storage
存储和缓存模块
utils
工具函数模块

Macros§

time_it
简单的计时宏

Structs§

LibraryInfo
库信息

Functions§

get_library_info
获取库信息
translate_before_merge
在Monolith合并前翻译DOM内容
translate_html_content
翻译HTML内容的便利函数
translate_html_content_sync
同步版本的HTML内容翻译