# zero-translate **Repository Path**: workwq/zero-translate ## Basic Information - **Project Name**: zero-translate - **Description**: zero-translate 是开源的、企业级业务国际化翻译基础设施,致力于提供键值驱动的多语言管理解决方案。 核心价值: 1. 业务与翻译解耦 业务系统只需维护多语言键,翻译内容由本系统自动管理 2. 全生命周期管理 提供键注册→自动翻译→版本控制→缓存加速的完整闭环 3. 智能引擎调度 多翻译引擎智能路由+QPS自动熔断+故障切换保障 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2025-05-15 - **Last Updated**: 2025-11-20 ## Categories & Tags **Categories**: web-dev-toolkits **Tags**: None ## README # 多语言翻译平台适配系统 ## 项目介绍 这是一个基于Java的多语言翻译平台适配系统,主要为应用程序提供翻译服务。项目包含客户端和服务端两大部分,支持与第三方翻译API(如百度、腾讯、科大讯飞、有道)的集成,并提供缓存管理、数据库同步、HTTP拦截器、Netty通信等核心功能。 ## 系统架构 系统采用模块化设计,主要包含以下组件: - **TranslateClient**:封装翻译请求,支持与不同翻译平台的通信。 - **NettyServer**:基于Netty的服务器,支持长连接与协议通信。 - **缓存管理**:支持本地缓-cache(Caffeine)和Redis缓存,提供缓存清理、预热、统计功能。 - **数据库**:使用MyBatis Plus与MySQL/PostgreSQL等数据库交互,管理翻译内容。 - **拦截器**:实现HTTP请求拦截和MyBatis SQL拦截,自动翻译数据。 - **配置中心**:通过Spring Boot配置加载系统参数,支持多平台切换。 ## 已实现特性 - 多翻译平台支持(百度、腾讯、有道、科大讯飞)。 - 支持语言代码双向映射(内部语言代码与平台语言代码)。 - 翻译缓存机制,支持Redis和本地缓存。 - � - 基于Netty的高性能通信协议,支持Protobuf。 - 提供管理后台,支持翻译内容的查询、编辑和缓存刷新。 ## 快速开始 1. **配置文件**:在`application.yml`中配置翻译平台和数据库参数。 2. **启动服务**:运行`TranslateServerApplication.java`启动服务。 3. **访问管理后台**:访问`/admin/translate`进入管理页面。 ## 环境要求 - **Java 1.8+** - **Spring Boot 2.x** - **Maven** - **MySQL/PostgreSQL** - **Redis(可选)** ## 构建与启动 1. **构建项目**:使用Maven构建 ```bash mvn clean package ``` 2. **启动服务**: ```bash java -jar translate-server.jar ``` ## 客户端调用示例 ```java TranslateClient client = new TranslateClient("http://translate-server", "key", "secret"); GetLangContentParams params = new GetLangContentParams(); params.setFromTable("users"); params.setFromField("name"); params.setFromDataId("1001"); ComLangModel langModel = client.executeRequest(params, HttpMethod.POST, ComLangModel.class); ``` ## 配置说明 - **application.yml**:主要配置翻译服务的地址、端口、AppKey、AppSecret。 - **translate-api.yml**:定义语言数据库配置和缓存配置。 - **多平台切换**:通过`translate-api.properties`动态切换翻译平台。 ## 平台适配与语言映射 - 平台适配通过`LanguageCodeConverter`和`LanguageCodeMapper`完成。 - 语言代码枚举`LangCodeEnum`管理所有支持的语言。 ## �管理页面访问 - **访问地址**:`/admin/translate` - **页面功能**: - 翻译内容管理 - 语言配置管理 - 缓存监控与刷新 ## 管理页面嵌入与API集成 - **iframe嵌入**:可直接通过iframe嵌入管理页面。 - **API集成**:提供RESTful API供外部系统调用,如: ```http POST /translate/langCodeList ``` ## 开发指南 - **扩展平台**:继承`LanguageCodeMapper`实现新的平台语言映射。 - **缓存扩展**:实现`TranslateCache`接口,可扩展新的缓存策略。 - **拦截器开发**:通过自定义`HandlerInterceptor`拦截请求并注入翻译逻辑。 ## 贡献指南 1. Fork项目。 2. 创建feature分支。 3. 提交代码并描述修改。 4. 提交PR并等待审核。 ## 版本历史 - **1.0.0**:初始版本,支持基本翻译和缓存功能。 - **1.1.0**:支持多平台切换和语言映射。 - **1.2.0**:引入Netty通信,增强系统性能。 ## 许可证 本项目采用 **MIT 许可证**。 ## 联系方式 - 作者邮箱:dev@klm.com - 项目主页:https://gitee.com/klm/translate-plus ## 其他说明 - 项目依赖Spring Boot、MyBatis Plus、Netty等开源框架。 - 项目持续集成,支持自动化测试和部署。 - 提供完善的日志记录和异常处理机制。