
Security News
Crates.io Users Targeted by Phishing Emails
The Rust Security Response WG is warning of phishing emails from rustfoundation.dev targeting crates.io users.
没有任何依赖的翻译库,API 统一简单易用,适合快速集成翻译功能而不想引入庞大的依赖库。
translation-hub 的安装非常简单,只需要使用 pip 安装即可
pip install translation-hub
可以直接使用无需秘钥的版本进行翻译,使用此类方法需要注意获取频率,频率过快会被服务器封禁
from translation_hub import BingFreeApi
translator = BingFreeApi()
result = translator.translate("hello")
print(result) # 你好
如果需要使用 API 的付费版本则可以用更高的频率请求服务器,方法也很简单,只需要定义一个翻译器对象,传入秘钥,然后调用 translate
方法即可。
同时支持直接传入,本地存储秘钥以及从环境变量获取秘钥
from translation_hub import BaiduApi
translator = BaiduApi("your appid", "secret_key")
result = translator.translate("hello")
print(result) # 你好
通过传入 Languages
枚举类实现将文本翻译成不同的语言版本,同时您也可以自行传入翻译平台支持的字符串
from translation_hub import BingFreeApi, Languages
# bing 无需传入秘钥
translator = BingFreeApi()
# 自动检测后翻译成中文
print(translator.translate("hello", Languages.Auto, Languages.Chinese)) # 你好
# 手动说明语言,然后翻译成日文
print(translator.translate("hello", Languages.English, Languages.Japanese)) # こんにちは
表1 无需秘钥的翻译服务(需要注意访问频率限制,反爬随时可能更新导致失效)
翻译名称 | API 名称 |
---|---|
百度翻译 | BaiduFreeApi |
bing 翻译 | BingFreeApi |
搜狗翻译 | SoGouFreeApi |
谷歌翻译(需要翻墙) | GoogleFreeApi |
表2 目前支持的国内翻译服务(均为有免费额度)
翻译名称 | API名称 |
---|---|
百度翻译 | BaiduApi |
有道翻译 | YoudaoApi |
腾讯翻译 | TencentApi |
阿里翻译 | AliyunApi |
表3 目前支持的国外翻译服务
翻译名称 | API名称 |
---|---|
deepl翻译 | DeeplApi |
每一个翻译 API 对应语言的缩写形式不同,比如简体中文在百度翻译中是 zh
,在谷歌翻译中是 zh-CN
,在有道翻译中是 zh-CHS
。为了方便使用,我定义了一个枚举类 Languages
来屏蔽这些细节,直接使用枚举类即可。
目前支持的通用语言如下,我为这些语言定义了一个枚举类 Languages
来屏蔽各大翻译api的语言代码:
如果您需要其他语言,可以自行前往查看每一个翻译服务的支持语言,然后手动传入语言代码即可。比如
from translation_hub import DeeplApi
deepl = DeeplApi("your api key")
# 翻译成德语
print(deepl.translate("hello", "EN", "DE")) # hallo
每一个翻译服务除了能直接传入 api_id 和 api_key 之外,还支持从本地文件中读取秘钥以及从环境变量中读取秘钥
在 C 盘的用户目录,下会创建一个 TranslateHubConfig.json
文件,您可以在这个文件中存储您的秘钥,下一次创建翻译器对象便可以不传入秘钥
文件的默认路径为: C:\Users\Administrator\TranslateHubConfig.json
,此时也可能会因为权限问题无法创建文件,您可以手动创建一个文件,然后将秘钥写入即可。
其中的 Administrator 替换成您的用户名即可
{
"Aliyun": {
"AliyunAppId": "",
"AliyunSecretKey": ""
},
"Baidu": {
"BaiduAppId": "",
"BaiduSecretKey": ""
},
"Deepl": {
"DeeplApiKey": ""
},
"Tencent": {
"TencentAppId": "",
"TencentSecretKey": ""
},
"Youdao": {
"YoudaoAppId": "",
"YoudaoSecretKey": ""
}
}
环境变量是一种更加安全的存储方式,翻译器对象会自动读取环境变量中的秘钥
您需要自行设置环境变量,变量名如下:
AliyunAppId
AliyunSecretKey
BaiduAppId
BaiduSecretKey
DeeplApiKey
TencentAppId
TencentSecretKey
YoudaoAppId
YoudaoSecretKey
在 Windows 系统中,您可以使用如下操作来设置环境变量
在 Linux 系统中,您可以使用如下操作来设置环境变量
# 编辑 ~/.bashrc 文件
nano ~/.bashrc
# 在文件末尾添加
export VARIABLE_NAME="value"
# 保存并应用更改
source ~/.bashrc
在 MacOS 系统中,您可以使用如下操作来设置环境变量
# 编辑 /etc/profile
sudo nano /etc/profile
# 添加
export VARIABLE_NAME="value"
# 应用更改
source /etc/profile
FAQs
没有任何依赖的翻译库,API 统一简单易用,适合快速集成翻译功能而不想引入庞大的依赖库
We found that translation-hub demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The Rust Security Response WG is warning of phishing emails from rustfoundation.dev targeting crates.io users.
Product
Socket now lets you customize pull request alert headers, helping security teams share clear guidance right in PRs to speed reviews and reduce back-and-forth.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.