浔川AI翻译v6.1.0版本正式发布 全面升级安全体验与交互效率

浔川 AI 翻译 v6.1.0 版本正式发布 全面升级安全体验与交互效率

浔川 AI 翻译工具完成 v6.1.0 版本迭代更新并正式上线。本次版本围绕账号安全体系、翻译服务体验、界面交互逻辑三大维度进行优化升级,进一步提升工具的安全性、易用性与稳定性,为用户提供更专业、高效的桌面端翻译解决方案。

一、核心升级亮点

1. 强化账号安全体系,保障用户使用权益

为筑牢账号安全防线,v6.1.0 版本新增完整的账号管理模块:

  • 登录环节新增四位数随机验证码校验机制,有效防范非授权登录风险;
  • 新增 "密码记忆" 功能,采用本地加密存储方式保存账号信息,在提升使用便捷性的同时,确保用户数据安全;
  • 完善注册流程,新增用户名唯一性校验、密码一致性核验等规则,从源头保障账号信息规范,降低操作失误率。

2. 优化翻译核心能力,提升双语互译精准度

依托百度翻译开放 API,版本持续优化核心翻译能力,聚焦汉英双向互译场景:

  • 新增输入内容空值检测机制,避免无效操作,提升翻译请求处理效率;
  • 完善异常处理体系,针对网络异常、接口调用失败等场景,新增可视化错误提示,帮助用户快速定位并解决问题;
  • 优化翻译结果解析逻辑,确保汉译英、英译汉双向翻译结果的准确性与完整性,满足日常办公、学习等场景的翻译需求。

3. 迭代界面交互设计,提升操作体验

围绕用户操作习惯优化界面布局与交互逻辑:

  • 翻译窗口支持屏幕居中自适应显示,无需手动调整窗口位置,提升操作便捷性;
  • 优化界面元素布局,统一采用清晰易读的字体规范与交互控件,降低操作学习成本;
  • 新增翻译模式可视化标识,切换 "汉译英 / 英译汉" 时同步更新窗口标题,明确当前翻译状态。

二、快速使用指引

  1. 账号登录 / 注册:启动软件后,在登录界面输入用户名、密码及实时显示的验证码完成登录;未注册用户可点击 "注册" 按钮,按提示完成账号创建;
  2. 翻译模式选择:进入翻译界面后,通过 "汉译英 / 英译汉" 单选按钮切换翻译方向,窗口标题将同步标识当前模式;
  3. 文本翻译操作:在输入框填写待翻译文本,点击 "翻译" 按钮即可获取精准翻译结果;
  4. 退出操作:完成翻译后,点击 "退出" 按钮即可安全关闭翻译窗口。

三、版本说明

浔川 AI 翻译 v6.1.0 版本聚焦用户核心使用场景,在保障数据安全的前提下,进一步简化操作流程、提升翻译效率。后续,我们将持续基于用户反馈迭代优化,计划拓展多语种翻译、离线翻译等功能,不断完善产品能力,为用户提供更全面的翻译服务。

如在使用过程中遇到问题,可通过产品反馈渠道提交相关问题,我们将及时响应并处理。

四 、程序代码

python 复制代码
# -*- coding: utf-8 -*-
import tkinter as tk
import tkinter.messagebox
import pickle
import random
import http.client
import hashlib
import json
import urllib.parse

# 登录窗口
window = tk.Tk()
window.title('浔川AI翻译v6.1.0登录界面')
window.geometry('450x250')

# 记住密码变量
remember_pwd = tk.IntVar()

# 标签 用户名密码
Verification_Code = random.randint(1000, 9999)  # 设置一个随机的四位数
Verification_Code = str(Verification_Code)  # 把类型转换为str型
tk.Label(window, text='用户名:').place(x=100, y=30)
tk.Label(window, text='密码:').place(x=100, y=70)
tk.Label(window, text='验证码').place(x=100, y=110)
tk.Label(window, text=Verification_Code).place(x=320, y=110)
tk.Checkbutton(window, text="记住密码", variable=remember_pwd).place(x=160, y=150)

# 用户名输入框
var_usr_name = tk.StringVar()
entry_usr_name = tk.Entry(window, textvariable=var_usr_name)
entry_usr_name.place(x=160, y=30)

# 密码输入框
var_usr_pwd = tk.StringVar()
entry_usr_pwd = tk.Entry(window, textvariable=var_usr_pwd, show='*')
entry_usr_pwd.place(x=160, y=70)

# 验证码输入框
var_usr_yzm = tk.StringVar()
entry_usr_yzm = tk.Entry(window, textvariable=var_usr_yzm)
entry_usr_yzm.place(x=160, y=110)

# 打开翻译窗口的函数(替代原来的下载窗口)
def show_translate_window():
    # 创建翻译窗口
    root = tk.Tk()
    # 标题
    root.title('浔川AI翻译v6.1.0')
    # 窗口大小
    root.geometry('370x220')  # 微调高度以容纳提示文字
    # 获取屏幕宽
    s_with = root.winfo_screenwidth()
    # 获取屏幕高度
    s_height = root.winfo_screenheight()

    # 计算页面打开在屏幕中央的位置
    l_x = str(round((s_with - 370) / 2))
    l_y = str(round((s_height - 100) / 2))
    root.geometry('+' + l_x + '+' + l_y)

    # ========== 添加提示文字 ==========
    tip_label = tk.Label(root, text='哟!来翻译咯?莫慌,我巴适得很,帮你整得明明白白!', fg='green', font=('微软雅黑', 10))
    tip_label.grid(row=0, column=0, columnspan=2, pady=5)

    # 单选按钮事件函数
    def setRadio1():
        root.title("汉译英")
    def setRadio2():
        root.title("英译汉")

    # 单选按钮
    v = tk.IntVar()  # 保存一个整型变量, 默认值为0
    radio1 = tk.Radiobutton(root, text="汉译英", variable=v, value=1, command=setRadio1)
    radio1.grid(row=1, column=0)
    radio2 = tk.Radiobutton(root, text="英译汉", variable=v, value=2, command=setRadio2)
    radio2.grid(row=1, column=1)

    # 输入标签和输入框
    lable = tk.Label(root, text='请输入内容:')
    lable.grid(row=2, column=0)
    entry = tk.Entry(root, font=('微软雅黑', 15))
    entry.grid(row=2, column=1)

    # 翻译结果标签和输入框
    res = tk.StringVar()  # 保存一个 string 类型变量, 默认值为""
    lable1 = tk.Label(root, text='翻译结果:')
    lable1.grid(row=3, column=0)
    entry1 = tk.Entry(root, font=('微软雅黑', 15), textvariable=res)
    entry1.grid(row=3, column=1)

    # 百度翻译函数
    def baidu_translate():
        # 获取界面输入的内容
        content = entry.get().strip()
        # 判断输入翻译的内容是否为空
        if content == '':
            tk.messagebox.showinfo('提示', '请输入翻译内容')
        else:
            appid = '20151113000005349'
            secretKey = 'osubCEzlGjzvw8qdQc41'
            myurl = '/api/trans/vip/translate'
            q = content
            fromLang = 'zh'  # 源语言
            toLang = 'en'  # 翻译后的语言
            salt = random.randint(32768, 65536)
            sign = appid + q + str(salt) + secretKey
            sign = hashlib.md5(sign.encode()).hexdigest()  # 作为十六进制数据字符串值
            
            if v.get() == 1:
                myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(
                    q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
                    salt) + '&sign=' + sign
            else:
                myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(
                    q) + '&from=' + toLang + '&to=' + fromLang + '&salt=' + str(
                    salt) + '&sign=' + sign
            
            try:
                httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
                httpClient.request('GET', myurl)
                response = httpClient.getresponse()  # response是HTTPResponse对象
                jsonResponse = response.read().decode("utf-8")  # 获得返回的结果,结果为json格式
                js = json.loads(jsonResponse)  # 将json格式的结果转换字典结构
                dst = str(js["trans_result"][0]["dst"])  # 取得翻译后的文本结果
                res.set(dst)
            except Exception as e:
                print('err:' + str(e))
                tk.messagebox.showerror('错误', f'翻译失败:{str(e)}')
            finally:
                if httpClient:
                    httpClient.close()

    # 翻译按钮
    button = tk.Button(root, text='翻译', width='10', command=baidu_translate)
    button.grid(row=4, column=0, sticky=tk.W)

    # 退出按钮
    exit_button = tk.Button(root, text='退出', width='10', command=root.quit)
    exit_button.grid(row=4, column=1, sticky=tk.E)

    # 翻译窗口主循环
    root.mainloop()

# 登录函数
def usr_log_in():
    # 输入框获取用户名密码
    usr_name = var_usr_name.get()
    usr_pwd = var_usr_pwd.get()
    usr_yzm = var_usr_yzm.get()
    
    # 从本地字典获取用户信息,如果没有则新建本地数据库
    try:
        with open('usr_info.pickle', 'rb') as usr_file:
            usrs_info = pickle.load(usr_file)
    except FileNotFoundError:
        with open('usr_info.pickle', 'wb') as usr_file:
            usrs_info = {'admin': 'admin'}
            pickle.dump(usrs_info, usr_file)
    
    # 判断验证码是否正确用户名和密码是否匹配
    if usr_yzm == Verification_Code:
        if usr_name in usrs_info:
            if usr_pwd == usrs_info[usr_name]:
                tk.messagebox.showinfo(title='welcome',
                                       message='欢迎您:' + usr_name)
                if remember_pwd.get() == 1:
                    with open('remember_pwd.pickle', 'wb') as pwd_file:
                        pickle.dump({'name': usr_name, 'pwd': usr_pwd}, pwd_file)
                window.destroy()
                # 登录成功后直接打开翻译窗口(替代原来的下载窗口)
                show_translate_window()
            else:
                tk.messagebox.showerror(message='密码错误')
        # 用户名密码不能为空
        elif usr_name == '' or usr_pwd == '':
            tk.messagebox.showerror(message='用户名或密码为空')
        # 不在数据库中弹出是否注册的框
        else:
            is_signup = tk.messagebox.askyesno('欢迎', '您还没有注册,是否现在注册')
            if is_signup:
                usr_sign_up()
    elif usr_yzm == '':
        tk.messagebox.showerror(message='验证码不能为空')
    else:
        tk.messagebox.showerror(message='验证码有误!')

# 注册函数
def usr_sign_up():
    # 确认注册时的相应函数
    def signtowcg():
        # 获取输入框内的内容
        nn = new_name.get()
        np = new_pwd.get()
        npf = new_pwd_confirm.get()

        # 本地加载已有用户信息,如果没有则已有用户信息为空
        try:
            with open('usr_info.pickle', 'rb') as usr_file:
                exist_usr_info = pickle.load(usr_file)
        except FileNotFoundError:
            exist_usr_info = {}

        # 检查用户名存在、密码为空、密码前后不一致
        if nn in exist_usr_info:
            tk.messagebox.showerror('错误', '用户名已存在')
        elif np == '' or nn == '':
            tk.messagebox.showerror('错误', '用户名或密码为空')
        elif np != npf:
            tk.messagebox.showerror('错误', '密码前后不一致')
        # 注册信息没有问题则将用户名密码写入数据库
        else:
            exist_usr_info[nn] = np
            with open('usr_info.pickle', 'wb') as usr_file:
                pickle.dump(exist_usr_info, usr_file)
            tk.messagebox.showinfo('欢迎', '注册成功')
            # 注册成功关闭注册框
            window_sign_up.destroy()

    # 新建注册界面
    window_sign_up = tk.Toplevel(window)
    window_sign_up.geometry('350x200')
    window_sign_up.title('注册')
    # 用户名变量及标签、输入框
    new_name = tk.StringVar()
    tk.Label(window_sign_up, text='用户名:').place(x=10, y=10)
    tk.Entry(window_sign_up, textvariable=new_name).place(x=150, y=10)
    # 密码变量及标签、输入框
    new_pwd = tk.StringVar()
    tk.Label(window_sign_up, text='请输入密码:').place(x=10, y=50)
    tk.Entry(window_sign_up, textvariable=new_pwd, show='*').place(x=150, y=50)
    # 重复密码变量及标签、输入框
    new_pwd_confirm = tk.StringVar()
    tk.Label(window_sign_up, text='请再次输入密码:').place(x=10, y=90)
    tk.Entry(window_sign_up, textvariable=new_pwd_confirm, show='*').place(x=150, y=90)
    # 确认注册按钮及位置
    bt_confirm_sign_up = tk.Button(window_sign_up, text='确认注册',
                                   command=signtowcg)
    bt_confirm_sign_up.place(x=150, y=130)

# 退出的函数
def usr_sign_quit():
    window.destroy()

# 加载记住的密码
try:
    with open('remember_pwd.pickle', 'rb') as pwd_file:
        pwd_info = pickle.load(pwd_file)
        var_usr_name.set(pwd_info['name'])
        var_usr_pwd.set(pwd_info['pwd'])
        remember_pwd.set(1)
except FileNotFoundError:
    pass

# 登录 注册按钮
bt_login = tk.Button(window, text='登录', command=usr_log_in)
bt_login.place(x=140, y=190)
bt_logup = tk.Button(window, text='注册', command=usr_sign_up)
bt_logup.place(x=210, y=190)
bt_logquit = tk.Button(window, text='退出', command=usr_sign_quit)
bt_logquit.place(x=280, y=190)

# 登录窗口主循环
window.mainloop()

总结

  1. 官方版本核心调整:弱化口语化表达,采用 "安全体系 / 核心能力 / 交互设计" 等专业分类,符合企业公告的行文逻辑;
  2. 保留核心功能亮点:验证码安全校验、汉英互译、界面优化等核心信息完整保留,同时强化 "安全""效率" 等官方发布的核心诉求;
  3. 补充版本服务说明:新增版本后续规划与反馈渠道,体现官方产品的服务闭环思维。
相关推荐
开开心心_Every2 小时前
图片批量压缩工具:支持有损无损两种模式
python·游戏·微信·django·pdf·excel·语音识别
GIS之路2 小时前
ArcGIS Pro 实现影像波段合成
前端·python·信息可视化
edisao2 小时前
二。星链真正危险的地方,不在天上,而在网络底层
大数据·网络·人工智能·python·科技·机器学习
minglie12 小时前
micropython_spiFlash_w25qxx
开发语言·python
Loo国昌2 小时前
【LangChain1.0】第一篇:基础认知
后端·python·算法·语言模型·prompt
一代土怪2 小时前
django中设置中国时区
python·django
tjjucheng2 小时前
小程序定制开发哪家有成熟系统
python
万行2 小时前
差速两轮机器人位移与航向角增量计算
人工智能·python·算法·机器人
叫我:松哥3 小时前
基于Flask框架开发的二手房数据分析与推荐管理平台,集成大数据分析、机器学习预测和智能推荐技术
大数据·python·深度学习·机器学习·数据分析·flask