接口提示信息国际化, 调用LibreTranslate 离线翻译, 国际化支持

文章目录

    • 背景
    • 实现方式
    • 步骤
        • 下载并部署离线翻译服务;
        • 前端接入

背景

将接口返回内容进行翻译, 以适配多语言需求;

实现方式

前端拦截接口返回内容, 调用离线翻译服务进行翻译, 翻译之后再进行相应的提示

参考资料:
离线翻译服务: https://github.com/LibreTranslate/LibreTranslate

步骤

下载并部署离线翻译服务;
  1. 下载链接: https://github.com/jianchang512/ott?tab=readme-ov-file
  2. 解压文件到服务器目录, 已经内置了一部分语言模型, 可以直接使用
  3. 修改 set.ini 为相应的服务地址和端口
  4. 双击 start.exe 启动程序
  5. 使用浏览器访问配置的端口, 检查服务是否正常
;第一启动需要下载模型,国内地区需要填写代理地址,比如 v2ray默认地址是 http://127.0.0.1:10809  clash默认http://127.0.0.1:7890
PROXY=
;要绑定到的地址,本机127.0.0.1 或者 192.168.等局域网ip等,默认127.0.0.1
HOST=127.0.0.1
;绑定到的端口
PORT=9911
;使用到的语言模型, zh=中文简 zt=中文繁  en=英语  fr=法语 de=德语  ja=日语 ko=韩语 ru=俄语  es=西班牙语 th=泰国语 it=意大利语 pt=葡萄牙语 ar=阿拉伯语 tr=土耳其语  hi=印度语
;如果用不到的语言可以删掉
LANG=zh,en,zt,fr,de,ja,ko,ru,es,th,it,pt,ar,tr,hi

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

前端接入
  1. 全局拦截接口响应中的 Message

  2. 调用翻译服务进行翻译
    在这里插入图片描述

  3. 翻译服务 Api 调用方法

// 请求示例
// 翻译错误信息const res = fetch('http://xxx:19911/translate', {method: 'POST',body: JSON.stringify({q: error.message, //翻译内容source: 'zh', //源语言target: locale || 'zh', //目标语言format: 'text', // 返回内容的格式, 可选 text | htmlapi_key: '' // 默认不开启}),headers: { 'Content-Type': 'application/json' }}).then(res => {let resdata = res.json()return resdata // 返回值是一个新的promise对象,状态为resolved,所以执行then}).then((transResponse) => {console.log('transResponse', transResponse)if (transResponse && transResponse.translatedText) {errMsg = transResponse.translatedText}}).catch((transError) => {console.log(transError)}).finally(() => {// 失败Message({message: errMsg,type: 'error',duration: 5 * 1000,onClose: () => {msgRecordsMap[errorStatus] = false}})})
// 响应示例
{"translatedText": "これは間違っています。 書類番号 AdfI 233545756!"
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/30590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Revo Uninstaller Pro:专业卸载工具,为您的电脑系统深度清洁

Revo Uninstaller Pro 是一款功能强大的专业卸载工具,为用户提供了全面而高效的软件卸载解决方案。 在日常使用电脑的过程中,我们经常会遇到软件卸载不干净的问题,残留的文件和注册表项不仅占用宝贵的磁盘空间,还可能影响系统的稳…

36.6K star!Immich - 一款开源高性能的自托管照片和视频备份方案

大家好,今天给大家分享的是一个高性能的自托管照片和视频备份方案。 Immich 是一个图片管理和分享平台,它允许用户高效地组织、存储和访问他们的照片和视频集合。这个项目特别设计来优化个人和家庭的多媒体内容管理体验,提供了诸如自动备份、…

Function:控制继电器上下电,上电后adb登录,copy配置文件

import serial import time import datetime import subprocess import osdef append_to_txt(file_path, content):if os.path.exists(file_path):with open(file_path, a) as file: # 使用 a 模式打开文件进行追加file.write(content \n) # 追加内容,并换行else…

Hbase存储倒排索引

Hbase存储倒排索引 1. 倒排索引简介 定义:倒排索引是搜索引擎用于快速全文搜索的数据结构,它将文档中出现的每个词与包含该词的文档列表相关联。组成:倒排索引由两部分组成:词典和倒排文件。词典包含所有唯一词项,倒…

python编程笔记

python import库失败:原因是解释器选择不对,pip3 install numpy是把numpy库安装在3.xxx的python解释器中,但是我是在3.9.6的解释器下运行的,所以找不到,此时需要把解释器换成3.11.9即可。 Super(Net,self)._init_() 这…

am62x芯片安全类型确认(HS-SE, HS-FS or GP)

文章目录 芯片安全类型设置启动方式获取串口信息下载脚本运行脚本示例sk-am62x板卡参考芯片安全类型 AM62x 芯片有三个安全级别。 • GP:通用版本 • HS-FS:高安全性 - 现场安全型 • HS-SE:高安全性 - 强制安全型 在SD卡启动文件中,可以查看到, 但板上的芯片,到底是那…

Flutter-无限循环滚动标签

1. 序章 在现代移动应用开发中,滑动视图是常见的交互模式之一。特别是当你需要展示大量内容时,使用自动滚动的滑动视图可以显著提升用户体验。在这篇文章中,我们将讨论如何使用 Flutter 实现一个自动滚动的列表视图。 2. 效果 3. 实现思路 …

5.数据结构-树

数据结构中的树是一种抽象数据类型,它是由节点组成的层次结构。树的每个节点可以包含零个或多个子节点,但只能有一个父节点(除了根节点,它没有父节点)。以下是树的一些基本概念和特性: 基本概念 节点&…

Nvidia Isaac Sim 入门教程 2024(3)图形界面

Isaac Sim 基本使用 版权信息 Copyright 2023-2024 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. The author …

深度学习的泛化能力的一些思考

问题: 为什么人类认识了某物体的之后,换场景也认识该物体,但深度学习网络搭建的模型,比如deeplab、yolo等,训练好的模型,换一个不同的场景之后,就识别不出来了,这是为什么&#xff…

项目二 OpenStack快速入门

任务一 熟悉OpenStack图形界面操作 1.1 Horizon项目 •各OpenStack服务的图形界面都是由Horizon提供的。 •Horizon提供基于Web的模块化用户界面。 •Horizon为云管理员提供一个整体的视图。 •Horizon为终端用户提供一个自主服务的门户。 •Horizon由云管理员进行管理…

OCC介绍及框架分析

1.OCC介绍 Open CASCADE (简称OCC)是一开源的几何造型引擎,OCCT库是由Open CASCADE公司开发和市场运作的。它是为开源社区比较成熟的基于BREP结构的建模引擎,能够满足二维三维实体造型和曲面造型,国内研究和使用它的单…

计算几何【Pick定理】

Pick 定理 Pick 定理:给定顶点均为整点的简单多边形,皮克定理说明了其面积 A {\displaystyle A} A 和内部格点数目 i {\displaystyle i} i、边上格点数目 b {\displaystyle b} b 的关系: A i b 2 − 1 {\displaystyle Ai{\frac {b}{2}}…

操作系统 文件系统

实验目的: 掌握文件系统设计的基本思想。理解掌握文件系统基本数据结构的设计。理解掌握文件操作中涉及的数据结构访问过程。 实验内容: 1、编程实现一个简单的内存文件系统。实现Linux常见的一些文件操作命令。比如:ls/cat/cp/rm等。 实…

Nginx如何实现负载均衡配置

一、引言 Nginx是一个高性能的HTTP和反向代理服务器,它以其稳定性、丰富的功能集、低系统资源消耗和简单的配置而广受欢迎。在大型网站和分布式系统中,Nginx常被用作负载均衡器,将请求分发到多个后端服务器上,以提高系统的整体性能…

在实现物体测距,使用射线时自己导致的bug。。

问题 我是想相交的到点以后,直接塞入对应交到的物体里用一个SphereGeometry显示(不测量的时候,寻找其父元素移除)。 进行一番操作以后,发现显示的位置始终不对。 经过一段时间的思考,发现使用intersects[0].object.worldToLocal(…

链表经典面试题--链表修至圆满

目录 1.环形链表 a.为什么一定会相遇,有没有可能会错过,永远追不上?请证明 b.slow一次走1步,fast走3步 4步 5步 n步还一定追得上吗 请证明 2.环形链表2 3.随机链表的复制 1.环形链表 141. 环形链表 - 力扣(Lee…

数学建模基础:数学建模概述

目录 前言 一、数学建模的步骤 二、模型的分类 三、模型评价指标 四、常见的数学建模方法 实际案例:线性回归建模 步骤 1:导入数据 步骤 2:数据预处理 步骤 3:建立线性回归模型 步骤 4:模型验证 步骤 5&…

进销存系统哪个好?2024最新进销存系统推荐(持续更新中)

现在市面上的进销存系统太多了,企业的选择越多,越容易踩坑。那企业在选择进销存系统时,需要考虑哪些因素? 1、系统的适配性 在进行选择之前,就应该先清楚自己的企业是重财务流管理、还是生产业务流管理、还是销售订单…

抓取另一个应用程序(app)内的测试数据方法

在Windows操作系统中,利用C#来抓取另一个应用程序(app)内的数据通常涉及到一些高级技术,如Windows API调用、内存读取、UI自动化等。这些技术都有其特定的用途和限制,而且可能涉及到法律和道德问题。在尝试这样的操作之前,请确保你了解相关的法律和隐私政策,并确保你有合…