如果不想使用密钥的形式,且需要一个直接可用的中英文翻译功能,可以使用一些免费的公共 API,如 opencc
或其他无需密钥的库,或直接用 requests
获取翻译结果。
其中,我可以给你一个简单的代码示例,使用 translate
库,这个库支持翻译,但它依赖的是一个免费的非官方翻译服务,且通常无需密钥。
1. 安装 translate
库:
bash
pip install translate
2. Python 程序代码:
python
import tkinter as tk
from tkinter import messagebox
from translate import Translator
# 翻译功能
def translate_text():
input_text = text_input.get("1.0", "end").strip()
if not input_text:
messagebox.showwarning("警告", "请输入需要翻译的文本!")
return
# 根据选择的语言方向设置翻译
if language_option.get() == "中译英":
translator = Translator(to_lang="en", from_lang="zh")
else:
translator = Translator(to_lang="zh", from_lang="en")
try:
translated = translator.translate(input_text)
text_output.delete("1.0", "end")
text_output.insert("1.0", translated)
except Exception as e:
messagebox.showerror("翻译失败", f"翻译失败: {str(e)}")
# 创建主窗口
window = tk.Tk()
window.title("中英文翻译软件")
window.geometry("500x400")
# 输入文本框
text_input_label = tk.Label(window, text="请输入文本:")
text_input_label.pack(pady=10)
text_input = tk.Text(window, height=5, width=40)
text_input.pack()
# 翻译方向选择框
language_option = tk.StringVar(value="中译英")
language_frame = tk.Frame(window)
language_frame.pack(pady=10)
ch_to_en_radio = tk.Radiobutton(language_frame, text="中译英", variable=language_option, value="中译英")
en_to_ch_radio = tk.Radiobutton(language_frame, text="英译中", variable=language_option, value="英译中")
ch_to_en_radio.pack(side="left", padx=10)
en_to_ch_radio.pack(side="left", padx=10)
# 翻译按钮
translate_button = tk.Button(window, text="翻译", command=translate_text)
translate_button.pack(pady=10)
# 输出文本框
text_output_label = tk.Label(window, text="翻译结果:")
text_output_label.pack(pady=10)
text_output = tk.Text(window, height=5, width=40)
text_output.pack()
# 运行主循环
window.mainloop()
运行步骤:
-
安装
translate
库 :bashpip install translate
-
运行脚本 :
运行上述 Python 脚本,点击翻译按钮,直接输入需要翻译的文本。
主要特性:
- 无需密钥 :
translate
库是一个轻量的库,使用的是一个公共的翻译接口,不需要额外的 API 密钥。 - 简洁易用:提供了一个简单的 Tkinter 界面,支持中英文翻译。
注意:
translate
库的翻译质量和速度可能不如官方 API,但它适合轻量和无需密钥的需求。- 由于使用的是免费的翻译接口,偶尔可能会因为接口变动而出现一些问题,建议适时检查和更新代码。