diff --git a/README.md b/README.md index 6056d7e..d374d0d 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# uengine 运行器 1.4.3 +# uengine 运行器 1.5.0 ### 介绍         新版本Deepin/UOS发布后,可以在应用商店安装部分官方已适配的安卓应用,对爱好者来说,不能自己安装APK软件包始终差点意思,本程序可以为Deepin/UOS上的UEngine安卓运行环境安装自定义APK软件包,并能发送安装的APK包启动菜单到桌面或系统菜单。 @@ -7,8 +7,13 @@ (自己美术功底太差,图标直接用 anbox 的了) ### 更新内容 +#### V1.5.0(2021-05-21,中秋节版): +**没有什么实质性的功能,只是开始有多语言支持** +**※1、部分窗口支持英语** +**2、修复在英语状态下启动器图标名称异常的问题** +![1.5.0](https://storage.deepin.org/thread/202109202157289430_截图_选择区域_20210920215550.png) + #### V1.4.3(2021-09-11,开学第一版): -此版本在受伤宅家期间写的![表情](https://bbs.deepin.org/assets/image/raccoon/[sad].gif) **※1、支持打包器打包的包名带前缀“uengine-dc”** **※2、修复了两种情况可能导致程序卡住/出错无法继续运行的情况(配置文件夹不齐全和获取版本信息卡住两种情况)** **※3、修改了 UEngine 打包器打包的应用包名可能有大写的情况** diff --git a/build/DEBIAN/control b/build/DEBIAN/control index 326c2a0..4e8ca70 100644 --- a/build/DEBIAN/control +++ b/build/DEBIAN/control @@ -1,5 +1,5 @@ Package: spark-uengine-runner -Version: 1.4.3 +Version: 1.5.0 Maintainer: gfdgd xi <3025613752@qq.com>, actionchen<917981399@qq.com> Homepage: [https://gitee.com/gfdgd-xi/uengine-runner, https://github.com/gfdgd-xi/uengine-runner] Architecture: all diff --git a/build/opt/apps/uengine-runner/Language.json b/build/opt/apps/uengine-runner/Language.json new file mode 100644 index 0000000..8fa00f2 --- /dev/null +++ b/build/opt/apps/uengine-runner/Language.json @@ -0,0 +1,247 @@ +{ + "zh_CN.UTF-8": { + "Main": { + "MainWindow": { + "Title": "UEngine 运行器", + "LabApkPath": "安装 APK:", + "LabUninstallPath": "卸载 Apk:", + "BtnFindApk": "浏览", + "BtnInstall": "安装", + "BtnShowUengineApp": "打开 UEngine 应用列表", + "BtnUninstallApkBrowser": "浏览", + "BtnUninstall": "卸载", + "Btngeticon": "保存图标", + "BtnSaveApk": "保存Apk", + "Menu": [ + { + "Name": "程序", + "Menu": [ + "清空软件历史记录", + "退出程序" + ] + }, + { + "Name": "adb", + "Menu": [ + "Adb 连接 UEngine", + { + "Name": "Adb 服务", + "Menu": [ + "打开 Adb 服务", + "停止 Adb 服务", + "杀死 Adb 进程" + ] + }, + "显示 Adb 连接的设备", + "Adb 修改 UEngine 分辨率", + "Adb 查看 UEngine 应用列表", + "Adb 查看 UEngine 资源使用情况", + "打开 Adb 连接 UEngine 的终端", + "使用 Scrcpy 连接 UEngine(只支持使用 Snap 安装的 Scrcpy)", + { + "Name": "UEngine 使用 Adb", + "Menu": [ + "Adb 连接 Connect UEngine", + "允许此设备使用 Adb 连接本 UEngine(需要 Root)", + "禁止任何设备使用 Adb 连接本 UEngine(需要 Root)" + ] + } + ] + }, + { + "Name": "UEngine", + "Menu": [ + "UEngine 系统设置", + "UEngine 应用打包", + { + "Name": "UEngine 服务", + "Menu": [ + "启动 UEngine 服务(需要 Root)", + "关闭 UEngine 服务(需要 Root)", + "重启 UEngine 服务(需要 Root)" + ] + }, + { + "Name": "UEngine 网络桥接", + "Menu": [ + "启动 UEngine 网络桥接(需要 Root)", + "关闭 UEngine 网络桥接(需要 Root)", + "重启 UEngine 网络桥接(需要 Root)", + "加载 UEngine 网络桥接(需要 Root)", + "强制加载 UEngine 网络桥接(需要 Root)" + ] + }, + { + "Name": "UEngine 快捷方式", + "Menu": [ + "发送 UEngine 应用列表到桌面", + "发送 UEngine 应用列表到启动器", + "添加/删除指定的 UEngine 快捷方式", + "清空所有 UEngine 快捷方式" + ] + }, + { + "Name": "UEngine 使用 Adb", + "Menu": null + }, + { + "Name": "UEngine 数据", + "Menu": [ + "打开 UEngine 根目录", + "打开 UEngine 用户数据目录", + "清空 UEngine 数据(需要 Root)" + ] + }, + "UEngine 键盘映射" + ] + }, + { + "Name": "关于", + "Menu": [ + "程序官网", + "关于" + ] + } + ] + } + }, + "Uengine Apk Builder": { + "Title": "UEngine APK 应用打包器", + "label1": "要打包的 apk 路径:", + "button2": "浏览", + "button3": " 打包", + "check": "使用前缀“uengine-dc”", + "Menu": [ + { + "Name": "程序", + "Menu": [ + "退出程序" + ] + } + ] + } + }, + "en_US.UTF-8": { + "Main": { + "MainWindow": { + "Title": "UEngine Runner", + "LabApkPath": "Install Apk:", + "LabUninstallPath": "Uninstall Apk", + "BtnFindApk": "Find", + "BtnInstall": "Install", + "BtnShowUengineApp": "Open UEngine App List", + "BtnUninstallApkBrowser": "Find", + "BtnUninstall": "Uninstall", + "Btngeticon": "Save Apk Icon", + "BtnSaveApk": "Saving Installed App Apk", + "Menu": [ + { + "Name": "Program", + "Menu": [ + "Clean Program History", + "Exit The Program" + ] + }, + { + "Name": "adb", + "Menu": [ + "Use Adb To Connect UEngine", + { + "Name": "Adb Services", + "Menu": [ + "Open Adb Service", + "Close Adb Service", + "Kill Adb Program" + ] + }, + "Show Adb To Connect Devices", + "Use Adb To Change UEngine Display Size", + "Use Adb To Show UEngine Installing Program List", + "Use Adb To Show UEngine Using System Resources", + "Open Adb Console With UEngine", + "Use Scrcpy Connect UEngine (Only Support Using Scrcpy With Installing the Scrcpy)", + { + "Name": "UEngine Use Adb", + "Menu": [ + "Use Adb To Connect UEngine", + "Allow This Devices Using Adb To Connect The UEngine (Allow Need Using For Root)", + "Unallow Any Devices Using Adb To Connect The UEngine (Unallow Need Using For Root)" + ] + } + ] + }, + { + "Name": "UEngine", + "Menu": [ + "UEngine System Control Panel", + "UEngine Android App Builder", + { + "Name": "UEngine Service", + "Menu": [ + "Open UEngine Service (It Need Run With Root)", + "Close UEngine Service (It Need Run With Root)", + "Restart UEngine Service (It Need Run With Root)" + ] + }, + { + "Name": "UEngine Internet Connecting", + "Menu": [ + "Open UEngine Internet Bridge (It Need Run With Root)", + "Close UEngine Internet Bridge (It Need Run With Root)", + "Restart UEngine Internet Bridge (It Need Run With Root)", + "Load UEngine Internet Bridge (It Need Run With Root)", + "Force Loading UEngine Internet Bridge (It Need Run With Root)" + ] + }, + { + "Name": "UEngine App Link", + "Menu": [ + "Send UEngine Program List To Desktop", + "Send UEngine Program List To Launcher", + "Add Or Delete UEngine App Link", + "Delete All UEngine App Link" + ] + }, + { + "Name": "UEngine Use Adb", + "Menu": null + }, + { + "Name": "UEngine Data", + "Menu": [ + "Open UEngine Root Folder", + "Open UEngine User Folder", + "Delete All UEngine Data (It Need Run With Root)" + ] + }, + "UEngine Keyboard" + ] + }, + { + "Name": "About", + "Menu": [ + "Program WebSize", + "Program Help" + ] + } + ] + } + }, + "Uengine Apk Builder": { + "Title": "UEngine APK Builder", + "label1": "Will Build APK Path", + "button2": "Find", + "button3": " Build", + "check": "Use Prefix With \"uengine-dc\"", + "Menu": [ + { + "Name": "Program", + "Menu": [ + "Exit The Program" + ] + } + ] + } + } + +} \ No newline at end of file diff --git a/build/opt/apps/uengine-runner/information.json b/build/opt/apps/uengine-runner/information.json index 4cde9f5..9bbd05c 100755 --- a/build/opt/apps/uengine-runner/information.json +++ b/build/opt/apps/uengine-runner/information.json @@ -3,7 +3,7 @@ "https://gitee.com/gfdgd-xi/uengine-runner", "https://github.com/gfdgd-xi/uengine-runner" ], - "Version": "1.4.3", + "Version": "1.5.0", "System": "Linux(deepin/UOS)", "Tips": [ "更多可见:https://gitee.com/gfdgd-xi/uengine-runner/wikis", @@ -26,6 +26,10 @@ "4、如果想要使用adb连接UEngine或其他手机,请使用 1.2.0 以前的版本。(如需连接UEngine请安装adb补丁)" ], "Update": [ + "V1.5.0:", + "※1、部分窗口支持英语", + "2、修复在英语状态下启动器图标名称异常的问题", + "", "V1.4.3:", "※1、支持打包器打包的包名带前缀“uengine-dc”", "※2、修复了两种情况可能导致程序卡住/出错无法继续运行的情况(配置文件夹不齐全和获取版本信息卡住两种情况)", diff --git a/build/opt/apps/uengine-runner/setting.json b/build/opt/apps/uengine-runner/setting.json index 6d79538..be23244 100755 --- a/build/opt/apps/uengine-runner/setting.json +++ b/build/opt/apps/uengine-runner/setting.json @@ -1,7 +1,7 @@ { "Package": "spark-uengine-runner", "Update": true, - "Version": "1.4.3", + "Version": "1.5.0", "Url": "https://gfdgd-xi.github.io/update-program/data/UpdateInformation.json" } \ No newline at end of file diff --git a/build/opt/apps/uengine-runner/uengine-apk-builder b/build/opt/apps/uengine-runner/uengine-apk-builder index 417362b..d78a287 100755 --- a/build/opt/apps/uengine-runner/uengine-apk-builder +++ b/build/opt/apps/uengine-runner/uengine-apk-builder @@ -205,6 +205,10 @@ def ReStartProgram(): def get_home(): return os.path.expanduser('~') +# 获取当前语言 +def get_now_lang()->"获取当前语言": + return os.getenv('LANG') + # 获取用户桌面目录 def get_desktop_path(): for line in open(get_home() + "/.config/user-dirs.dirs"): # 以行来读取配置文件 @@ -377,9 +381,13 @@ def get_home(): # 程序信息 ########################### programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string +lang = get_now_lang() +langFile = json.loads(readtxt(programPath + "/Language.json")) +if not lang in langFile.keys(): + lang = "en_US.UTF-8" information = json.loads(readtxt(programPath + "/information.json")) version = information["Version"] -title = "UEngine APK 应用打包器 {}".format(version) +title = "{} {}".format(langFile[lang]["Uengine Apk Builder"]["Title"], version) iconPath = "{}/icon.png".format(os.path.split(os.path.realpath(__file__))[0]) ########################### @@ -406,17 +414,17 @@ qianZhui = tk.BooleanVar() window = ttk.Frame(win) frame2 = ttk.Frame(window) -label1 = ttk.Label(window, text="要打包的 apk 路径:") +label1 = ttk.Label(window, text=langFile[lang]["Uengine Apk Builder"]["label1"]) combobox1 = ttk.Combobox(window, width=100) -button2 = ttk.Button(window, text="浏览", command=FindApk) -button3 = ttk.Button(frame2, text="打包", command=BuildDeb) -check = ttk.Checkbutton(frame2, variable=qianZhui,text="使用前缀“uengine-dc”") +button2 = ttk.Button(window, text=langFile[lang]["Uengine Apk Builder"]["button2"], command=FindApk) +button3 = ttk.Button(frame2, text=langFile[lang]["Uengine Apk Builder"]["button3"], command=BuildDeb) +check = ttk.Checkbutton(frame2, variable=qianZhui,text=langFile[lang]["Uengine Apk Builder"]["check"]) textbox1 = tk.Text(window, width=100) menu = tk.Menu(window, background="white") # 设置菜单栏 programmenu = tk.Menu(menu, tearoff=0, background="white") # 设置“程序”菜单栏 -menu.add_cascade(label="程序", menu=programmenu) -programmenu.add_command(label="退出程序", command=window.quit) # 设置“退出程序”项 +menu.add_cascade(label=langFile[lang]["Uengine Apk Builder"]["Menu"][0]["Name"], menu=programmenu) +programmenu.add_command(label=langFile[lang]["Uengine Apk Builder"]["Menu"][0]["Menu"][0], command=window.quit) # 设置“退出程序”项 # 设置控件 combobox1['value'] = findApkHistory textbox1.configure(state=tk.DISABLED) diff --git a/build/opt/apps/uengine-runner/uengine-runner b/build/opt/apps/uengine-runner/uengine-runner index cbc0bb8..5a05069 100755 --- a/build/opt/apps/uengine-runner/uengine-runner +++ b/build/opt/apps/uengine-runner/uengine-runner @@ -3,10 +3,10 @@ ########################################################################################### # 作者:gfdgd xi<3025613752@qq.com> # 版本:1.4.3 -# 更新时间:2021年9月11日(开学了) +# 更新时间:2021年9月20日(中秋了) # 感谢:anbox、deepin 和 UOS # 基于 Python3 的 tkinter 构建 -# 更新:actionchen<917981399@qq.com> +# 更新:gfdgd xi<3025613752@qq.com>、actionchen<917981399@qq.com> ########################################################################################### ################# # 引入所需的库 @@ -211,6 +211,10 @@ def CleanProgramHistory()->"清理历史记录": def get_home()->"获取用户主目录": return os.path.expanduser('~') +# 获取当前语言 +def get_now_lang()->"获取当前语言": + return os.getenv('LANG') + # 发送“启动 uengine 所有程序”的 .desktop 文件到桌面 def SendUengineAndroidListForDesktop()->"发送“启动 uengine 所有程序”的 .desktop 文件到桌面": global desktop @@ -849,8 +853,12 @@ def UseProgram(): ########################### # 程序信息 ########################### +lang = get_now_lang() programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string information = json.loads(readtxt(programPath + "/information.json")) +langFile = json.loads(readtxt(programPath + "/Language.json")) +if not lang in langFile.keys(): + lang = "en_US.UTF-8" programUrl = information["Url"][0] version = information["Version"] goodRunSystem = information["System"] @@ -866,7 +874,7 @@ about = '''介绍 :一个基于 Python3 的 tkinter 制作的 UEngine ©2021-{}'''.format(version, goodRunSystem, tk.TkVersion, programUrl, time.strftime("%Y")) tips = "\n".join(information["Tips"]) updateThingsString = "\n".join(information["Update"]) -title = "UEngine 运行器 {}".format(version) +title = "{} {}".format(langFile[lang]["Main"]["MainWindow"]["Title"], version) updateTime = information["Time"] updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y")) iconPath = "{}/icon.png".format(os.path.split(os.path.realpath(__file__))[0]) @@ -1029,17 +1037,17 @@ win.geometry(""+"+{:.0f}+{:.0f}".format(x, y)) # 创建控件 FrmInstall = ttk.Frame(window) FrmUninstall = ttk.Frame(window) -LabApkPath = ttk.Label(window, text="安装APK:") -LabUninstallPath = ttk.Label(window, text="卸载APK:") +LabApkPath = ttk.Label(window, text=langFile[lang]["Main"]["MainWindow"]["LabApkPath"]) +LabUninstallPath = ttk.Label(window, text=langFile[lang]["Main"]["MainWindow"]["LabUninstallPath"]) ComboInstallPath = ttk.Combobox(window, width=50) ComboUninstallPath = ttk.Combobox(window, width=50) -BtnFindApk = ttk.Button(FrmInstall, text="浏览", command=FindApk) -BtnInstall = ttk.Button(FrmInstall, text="安装", command=Button3Install) -BtnShowUengineApp = ttk.Button(window, text="打开 UEngine 应用列表", command=Button5Click) -BtnUninstallApkBrowser = ttk.Button(FrmUninstall, text="浏览", command=BtnFindUninstallApkClk) -BtnUninstall = ttk.Button(FrmUninstall, text="卸载", command=ButtonClick8) -Btngeticon = ttk.Button(FrmInstall, text="保存图标", command=SaveIconToOtherPath) -BtnSaveApk = ttk.Button(FrmInstall, text="保存apk", command=SaveInstallUengineApp) +BtnFindApk = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnFindApk"], command=FindApk) +BtnInstall = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnInstall"], command=Button3Install) +BtnShowUengineApp = ttk.Button(window, text=langFile[lang]["Main"]["MainWindow"]["BtnShowUengineApp"], command=Button5Click) +BtnUninstallApkBrowser = ttk.Button(FrmUninstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstallApkBrowser"], command=BtnFindUninstallApkClk) +BtnUninstall = ttk.Button(FrmUninstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstall"], command=ButtonClick8) +Btngeticon = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["Btngeticon"], command=SaveIconToOtherPath) +BtnSaveApk = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnSaveApk"], command=SaveInstallUengineApp) # 设置菜单栏 menu = tk.Menu(window, background="white") @@ -1056,70 +1064,70 @@ uengineIcon = tk.Menu(uengine, tearoff=0, background="white") uengineUseAdb = tk.Menu(uengine, tearoff=0, background="white") uengineData = tk.Menu(uengine, tearoff=0, background="white") -menu.add_cascade(label="程序", menu=programmenu) -menu.add_cascade(label="adb", menu=adb) -menu.add_cascade(label="UEngine", menu=uengine) -menu.add_cascade(label="关于", menu=help) +menu.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Name"], menu=programmenu) +menu.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Name"], menu=adb) +menu.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Name"], menu=uengine) +menu.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Name"], menu=help) -programmenu.add_command(label="清空软件历史记录", command=CleanProgramHistory) +programmenu.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Menu"][0], command=CleanProgramHistory) programmenu.add_separator() # 设置分界线 -programmenu.add_command(label="退出程序", command=window.quit) # 设置“退出程序” +programmenu.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Menu"][1], command=window.quit) # 设置“退出程序” -adb.add_command(label="adb 连接 UEngine", command=UengineConnectAdb) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][0], command=UengineConnectAdb) adb.add_separator() -adb.add_cascade(label="adb 服务", menu=adbServer) -adb.add_command(label="显示 adb 连接的设备", command=AdbConnectDeviceShow) +adb.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Name"], menu=adbServer) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][2], command=AdbConnectDeviceShow) adb.add_separator() -adb.add_command(label="adb 修改 UEngine 分辨率", command=AdbChangeUengineDisplaySize.ShowWindows) -adb.add_command(label="adb 查看 UEngine 应用列表", command=AdbAndroidInstallAppList) -adb.add_command(label="adb 查看 UEngine 资源使用情况", command=AdbCPUAndRAWShowInTer) -adb.add_command(label="打开 adb 连接 UEngine 的终端", command=AdbShellShowInTer) -adb.add_command(label="使用 Scrcpy 连接 UEngine(只支持使用snap安装的Scrcpy)", command=ScrcpyConnectUengine) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][3], command=AdbChangeUengineDisplaySize.ShowWindows) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][4], command=AdbAndroidInstallAppList) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][5], command=AdbCPUAndRAWShowInTer) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][6], command=AdbShellShowInTer) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][7], command=ScrcpyConnectUengine) adb.add_separator() -adb.add_cascade(label="UEngine 使用 adb", menu=uengineUseAdb) +adb.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Name"], menu=uengineUseAdb) -adbServer.add_command(label="开启 adb 服务", command=AdbStartServer) -adbServer.add_command(label="关闭 adb 服务", command=AdbStopServer) -adbServer.add_command(label="杀死 adb 进程", command=AdbKillAdbProgress) +adbServer.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][0], command=AdbStartServer) +adbServer.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][1], command=AdbStopServer) +adbServer.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][2], command=AdbKillAdbProgress) -uengine.add_command(label="UEngine 系统设置", command=UengineSettingShow) -uengine.add_command(label="UEngine 应用打包", command=OpenUengineDebBuilder) -#uengine.add_command(label="UEngine 键盘映射", command=KeyboardToMouse) -uengine.add_cascade(label="UEngine 服务", menu=uengineService) -uengine.add_cascade(label="UEngine 网络桥接", menu=uengineInternet) -uengine.add_cascade(label="UEngine 快捷方式", menu=uengineIcon) -uengine.add_cascade(label="UEngine 使用 adb", menu=uengineUseAdb) -uengine.add_cascade(label="UEngine 数据", menu=uengineData) +uengine.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][0], command=UengineSettingShow) +uengine.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][1], command=OpenUengineDebBuilder) +uengine.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][7], command=KeyboardToMouse) +uengine.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Name"], menu=uengineService) +uengine.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Name"], menu=uengineInternet) +uengine.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Name"], menu=uengineIcon) +uengine.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][5]["Name"], menu=uengineUseAdb) +uengine.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Name"], menu=uengineData) -help.add_command(label="程序官网", command=OpenProgramURL) # 设置“程序官网”项 -help.add_command(label="帮助", command=showhelp) # 设置“关于这个程序”项 +help.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][0], command=OpenProgramURL) # 设置“程序官网”项 +help.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][1], command=showhelp) # 设置“关于这个程序”项 -uengineService.add_command(label="启用 UEngine 服务(需要 root)", command=StartUengine) -uengineService.add_command(label="关闭 UEngine 服务(需要 root)", command=StopUengine) -uengineService.add_command(label="重启 UEngine 服务(需要 root)", command=UengineRestart) +uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=StartUengine) +uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=StopUengine) +uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=UengineRestart) -uengineInternet.add_command(label="启用 UEngine 网络桥接(需要 root)", command=UengineBridgeStart) -uengineInternet.add_command(label="关闭 UEngine 网络桥接(需要 root)", command=UengineBridgeStop) -uengineInternet.add_command(label="重启 UEngine 网络桥接(需要 root)", command=UengineBridgeRestart) -uengineInternet.add_command(label="加载 UEngine 网络桥接(需要 root)", command=UengineBridgeReload) -uengineInternet.add_command(label="强制加载 UEngine 网络桥接(需要 root)", command=UengineBridgeForceReload) +uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][0], command=UengineBridgeStart) +uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][1], command=UengineBridgeStop) +uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][2], command=UengineBridgeRestart) +uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][3], command=UengineBridgeReload) +uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][4], command=UengineBridgeForceReload) -uengineIcon.add_command(label="发送 UEngine 应用列表到桌面", command=SendUengineAndroidListForDesktop) -uengineIcon.add_command(label="发送 UEngine 应用列表到启动器", command=SendUengineAndroidListForLauncher) +uengineIcon.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][0], command=SendUengineAndroidListForDesktop) +uengineIcon.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][1], command=SendUengineAndroidListForLauncher) uengineIcon.add_separator() -uengineIcon.add_command(label="添加/删除指定的 UEngine 快捷方式", command=AddNewUengineDesktopLink.ShowWindow) +uengineIcon.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][2], command=AddNewUengineDesktopLink.ShowWindow) uengineIcon.add_separator() -uengineIcon.add_command(label="清空所有 UEngine 快捷方式", command=CleanAllUengineDesktopLink) +uengineIcon.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][3], command=CleanAllUengineDesktopLink) -uengineUseAdb.add_command(label="adb 连接 UEngine", command=UengineConnectAdb) +uengineUseAdb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][0], command=UengineConnectAdb) uengineUseAdb.add_separator() -uengineUseAdb.add_command(label="允许此设备使用 adb 连接本 UEngine(需要 root)", command=UengineUseAdb) -uengineUseAdb.add_command(label="禁止任何设备使用 adb 连接本 UEngine(需要 root)", command=UengineDoNotUseAdb) +uengineUseAdb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][1], command=UengineUseAdb) +uengineUseAdb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][2], command=UengineDoNotUseAdb) -uengineData.add_command(label="打开 UEngine 根目录", command=OpenUengineRootData) -uengineData.add_command(label="打开 UEngine 用户数据目录", command=OpenUengineUserData) +uengineData.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][0], command=OpenUengineRootData) +uengineData.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][1], command=OpenUengineUserData) uengineData.add_separator() -uengineData.add_command(label="清空 UEngine 数据(需要 root)", command=BackUengineClean) +uengineData.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][2], command=BackUengineClean) menu.configure(activebackground="dodgerblue") help.configure(activebackground="dodgerblue") diff --git a/build/usr/share/applications/UengineAndroidProgramList.desktop b/build/usr/share/applications/UengineAndroidProgramList.desktop index a8821d7..8ff03ad 100644 --- a/build/usr/share/applications/UengineAndroidProgramList.desktop +++ b/build/usr/share/applications/UengineAndroidProgramList.desktop @@ -1,11 +1,13 @@ [Desktop Entry] Categories=System; -Comment=UEngine 程序菜单 +Comment=UEngine App List +Comment[zh]=UEngine 程序菜单 Encoding=UTF-8 Exec=/usr/bin/uengine-launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Icon=/opt/apps/uengine-runner/icon.png MimeType= -Name=UEngine 程序菜单 +Name=UEngine App List +Name[zh]=UEngine 程序菜单 StartupWMClass=UEngine 程序菜单 Terminal=false Type=Application diff --git a/build/usr/share/applications/UengineAndroidSetting.desktop b/build/usr/share/applications/UengineAndroidSetting.desktop index 3a02be8..1ffa7b9 100644 --- a/build/usr/share/applications/UengineAndroidSetting.desktop +++ b/build/usr/share/applications/UengineAndroidSetting.desktop @@ -5,7 +5,8 @@ Encoding=UTF-8 Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings Icon=/opt/apps/uengine-runner/icon.png MimeType= -Name=UEngine 系统设置 +Name=UEngine System Control Panel +Name[zh]=UEngine 系统设置 StartupWMClass=UEngine 系统设置 Terminal=false Type=Application diff --git a/build/usr/share/applications/uengine-runner.desktop b/build/usr/share/applications/uengine-runner.desktop index 12eec5f..be22912 100755 --- a/build/usr/share/applications/uengine-runner.desktop +++ b/build/usr/share/applications/uengine-runner.desktop @@ -5,7 +5,7 @@ Categories=System; Terminal=false Exec=/usr/bin/uengine-runner Icon=/opt/apps/uengine-runner/icon.png -Name=uengine runner +Name=UEngine Runner Comment=UEngine Runner Comment[zh]=UEngine 运行器 Name[zh]=UEngine 运行器 diff --git a/com.gitee.uengine.runner.spark.deb b/com.gitee.uengine.runner.spark.deb index 806036c..72e4ee2 100755 Binary files a/com.gitee.uengine.runner.spark.deb and b/com.gitee.uengine.runner.spark.deb differ diff --git a/information.json b/information.json index 4cde9f5..9bbd05c 100755 --- a/information.json +++ b/information.json @@ -3,7 +3,7 @@ "https://gitee.com/gfdgd-xi/uengine-runner", "https://github.com/gfdgd-xi/uengine-runner" ], - "Version": "1.4.3", + "Version": "1.5.0", "System": "Linux(deepin/UOS)", "Tips": [ "更多可见:https://gitee.com/gfdgd-xi/uengine-runner/wikis", @@ -26,6 +26,10 @@ "4、如果想要使用adb连接UEngine或其他手机,请使用 1.2.0 以前的版本。(如需连接UEngine请安装adb补丁)" ], "Update": [ + "V1.5.0:", + "※1、部分窗口支持英语", + "2、修复在英语状态下启动器图标名称异常的问题", + "", "V1.4.3:", "※1、支持打包器打包的包名带前缀“uengine-dc”", "※2、修复了两种情况可能导致程序卡住/出错无法继续运行的情况(配置文件夹不齐全和获取版本信息卡住两种情况)", diff --git a/main.py b/main.py index f76ce17..5a05069 100755 --- a/main.py +++ b/main.py @@ -3,10 +3,10 @@ ########################################################################################### # 作者:gfdgd xi<3025613752@qq.com> # 版本:1.4.3 -# 更新时间:2021年9月11日(开学了) +# 更新时间:2021年9月20日(中秋了) # 感谢:anbox、deepin 和 UOS # 基于 Python3 的 tkinter 构建 -# 更新:actionchen<917981399@qq.com> +# 更新:gfdgd xi<3025613752@qq.com>、actionchen<917981399@qq.com> ########################################################################################### ################# # 引入所需的库 diff --git a/new-deb-build/DEBIAN/control b/new-deb-build/DEBIAN/control index 37aa5e1..30080e8 100644 --- a/new-deb-build/DEBIAN/control +++ b/new-deb-build/DEBIAN/control @@ -1,6 +1,6 @@ Package: com.gitee.uengine.runner.spark Source: com.gitee.uengine.runner.spark -Version: 1.4.3 +Version: 1.5.0 Architecture: all Maintainer: gfdgd xi <3025613752@qq.com>, actionchen<917981399@qq.com> Depends: deepin-elf-verify (>= 0.0.16.7-1), python3, python3-tk, python3-pip, aapt, adb, python3-pil, python3-setuptools, uengine, deepin-terminal diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidProgramList.desktop b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidProgramList.desktop index dc2d3c7..7d2fc05 100644 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidProgramList.desktop +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidProgramList.desktop @@ -1,11 +1,12 @@ [Desktop Entry] Categories=System; -Comment=UEngine(anbox) 程序菜单 +Comment=UEngine 程序菜单 Encoding=UTF-8 Exec=/usr/bin/uengine-launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Icon=/opt/apps/com.gitee.uengine.runner.spark/files/icon.png MimeType= -Name=UEngine 程序菜单 +Name=UEngine App List +Name[zh]=UEngine 程序菜单 StartupWMClass=UEngine 程序菜单 Terminal=false Type=Application diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidSetting.desktop b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidSetting.desktop index 9c4c486..17c8c12 100644 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidSetting.desktop +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidSetting.desktop @@ -1,11 +1,13 @@ [Desktop Entry] Categories=System; -Comment=UEngine 系统设置 +Comment=UEngine System Control Panel +Comment[zh]=UEngine 系统设置 Encoding=UTF-8 Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings Icon=/opt/apps/com.gitee.uengine.runner.spark/files/icon.png MimeType= -Name=UEngine 系统设置 +Name=UEngine System Control Panel +Name[zh]=UEngine 系统设置 StartupWMClass=UEngine 系统设置 Terminal=false Type=Application diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/uengine-runner.desktop b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/uengine-runner.desktop index d0878c2..fb8b5fd 100755 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/uengine-runner.desktop +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/uengine-runner.desktop @@ -5,7 +5,7 @@ Categories=System; Terminal=false Exec=/usr/bin/uengine-runner Icon=/opt/apps/com.gitee.uengine.runner.spark/files/icon.png -Name=uengine runner +Name=uengine Runner Comment=UEngine Runner Comment[zh]=UEngine 运行器 Name[zh]=UEngine 运行器 diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/Language.json b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/Language.json new file mode 100644 index 0000000..8fa00f2 --- /dev/null +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/Language.json @@ -0,0 +1,247 @@ +{ + "zh_CN.UTF-8": { + "Main": { + "MainWindow": { + "Title": "UEngine 运行器", + "LabApkPath": "安装 APK:", + "LabUninstallPath": "卸载 Apk:", + "BtnFindApk": "浏览", + "BtnInstall": "安装", + "BtnShowUengineApp": "打开 UEngine 应用列表", + "BtnUninstallApkBrowser": "浏览", + "BtnUninstall": "卸载", + "Btngeticon": "保存图标", + "BtnSaveApk": "保存Apk", + "Menu": [ + { + "Name": "程序", + "Menu": [ + "清空软件历史记录", + "退出程序" + ] + }, + { + "Name": "adb", + "Menu": [ + "Adb 连接 UEngine", + { + "Name": "Adb 服务", + "Menu": [ + "打开 Adb 服务", + "停止 Adb 服务", + "杀死 Adb 进程" + ] + }, + "显示 Adb 连接的设备", + "Adb 修改 UEngine 分辨率", + "Adb 查看 UEngine 应用列表", + "Adb 查看 UEngine 资源使用情况", + "打开 Adb 连接 UEngine 的终端", + "使用 Scrcpy 连接 UEngine(只支持使用 Snap 安装的 Scrcpy)", + { + "Name": "UEngine 使用 Adb", + "Menu": [ + "Adb 连接 Connect UEngine", + "允许此设备使用 Adb 连接本 UEngine(需要 Root)", + "禁止任何设备使用 Adb 连接本 UEngine(需要 Root)" + ] + } + ] + }, + { + "Name": "UEngine", + "Menu": [ + "UEngine 系统设置", + "UEngine 应用打包", + { + "Name": "UEngine 服务", + "Menu": [ + "启动 UEngine 服务(需要 Root)", + "关闭 UEngine 服务(需要 Root)", + "重启 UEngine 服务(需要 Root)" + ] + }, + { + "Name": "UEngine 网络桥接", + "Menu": [ + "启动 UEngine 网络桥接(需要 Root)", + "关闭 UEngine 网络桥接(需要 Root)", + "重启 UEngine 网络桥接(需要 Root)", + "加载 UEngine 网络桥接(需要 Root)", + "强制加载 UEngine 网络桥接(需要 Root)" + ] + }, + { + "Name": "UEngine 快捷方式", + "Menu": [ + "发送 UEngine 应用列表到桌面", + "发送 UEngine 应用列表到启动器", + "添加/删除指定的 UEngine 快捷方式", + "清空所有 UEngine 快捷方式" + ] + }, + { + "Name": "UEngine 使用 Adb", + "Menu": null + }, + { + "Name": "UEngine 数据", + "Menu": [ + "打开 UEngine 根目录", + "打开 UEngine 用户数据目录", + "清空 UEngine 数据(需要 Root)" + ] + }, + "UEngine 键盘映射" + ] + }, + { + "Name": "关于", + "Menu": [ + "程序官网", + "关于" + ] + } + ] + } + }, + "Uengine Apk Builder": { + "Title": "UEngine APK 应用打包器", + "label1": "要打包的 apk 路径:", + "button2": "浏览", + "button3": " 打包", + "check": "使用前缀“uengine-dc”", + "Menu": [ + { + "Name": "程序", + "Menu": [ + "退出程序" + ] + } + ] + } + }, + "en_US.UTF-8": { + "Main": { + "MainWindow": { + "Title": "UEngine Runner", + "LabApkPath": "Install Apk:", + "LabUninstallPath": "Uninstall Apk", + "BtnFindApk": "Find", + "BtnInstall": "Install", + "BtnShowUengineApp": "Open UEngine App List", + "BtnUninstallApkBrowser": "Find", + "BtnUninstall": "Uninstall", + "Btngeticon": "Save Apk Icon", + "BtnSaveApk": "Saving Installed App Apk", + "Menu": [ + { + "Name": "Program", + "Menu": [ + "Clean Program History", + "Exit The Program" + ] + }, + { + "Name": "adb", + "Menu": [ + "Use Adb To Connect UEngine", + { + "Name": "Adb Services", + "Menu": [ + "Open Adb Service", + "Close Adb Service", + "Kill Adb Program" + ] + }, + "Show Adb To Connect Devices", + "Use Adb To Change UEngine Display Size", + "Use Adb To Show UEngine Installing Program List", + "Use Adb To Show UEngine Using System Resources", + "Open Adb Console With UEngine", + "Use Scrcpy Connect UEngine (Only Support Using Scrcpy With Installing the Scrcpy)", + { + "Name": "UEngine Use Adb", + "Menu": [ + "Use Adb To Connect UEngine", + "Allow This Devices Using Adb To Connect The UEngine (Allow Need Using For Root)", + "Unallow Any Devices Using Adb To Connect The UEngine (Unallow Need Using For Root)" + ] + } + ] + }, + { + "Name": "UEngine", + "Menu": [ + "UEngine System Control Panel", + "UEngine Android App Builder", + { + "Name": "UEngine Service", + "Menu": [ + "Open UEngine Service (It Need Run With Root)", + "Close UEngine Service (It Need Run With Root)", + "Restart UEngine Service (It Need Run With Root)" + ] + }, + { + "Name": "UEngine Internet Connecting", + "Menu": [ + "Open UEngine Internet Bridge (It Need Run With Root)", + "Close UEngine Internet Bridge (It Need Run With Root)", + "Restart UEngine Internet Bridge (It Need Run With Root)", + "Load UEngine Internet Bridge (It Need Run With Root)", + "Force Loading UEngine Internet Bridge (It Need Run With Root)" + ] + }, + { + "Name": "UEngine App Link", + "Menu": [ + "Send UEngine Program List To Desktop", + "Send UEngine Program List To Launcher", + "Add Or Delete UEngine App Link", + "Delete All UEngine App Link" + ] + }, + { + "Name": "UEngine Use Adb", + "Menu": null + }, + { + "Name": "UEngine Data", + "Menu": [ + "Open UEngine Root Folder", + "Open UEngine User Folder", + "Delete All UEngine Data (It Need Run With Root)" + ] + }, + "UEngine Keyboard" + ] + }, + { + "Name": "About", + "Menu": [ + "Program WebSize", + "Program Help" + ] + } + ] + } + }, + "Uengine Apk Builder": { + "Title": "UEngine APK Builder", + "label1": "Will Build APK Path", + "button2": "Find", + "button3": " Build", + "check": "Use Prefix With \"uengine-dc\"", + "Menu": [ + { + "Name": "Program", + "Menu": [ + "Exit The Program" + ] + } + ] + } + } + +} \ No newline at end of file diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/information.json b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/information.json index 4cde9f5..9bbd05c 100755 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/information.json +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/information.json @@ -3,7 +3,7 @@ "https://gitee.com/gfdgd-xi/uengine-runner", "https://github.com/gfdgd-xi/uengine-runner" ], - "Version": "1.4.3", + "Version": "1.5.0", "System": "Linux(deepin/UOS)", "Tips": [ "更多可见:https://gitee.com/gfdgd-xi/uengine-runner/wikis", @@ -26,6 +26,10 @@ "4、如果想要使用adb连接UEngine或其他手机,请使用 1.2.0 以前的版本。(如需连接UEngine请安装adb补丁)" ], "Update": [ + "V1.5.0:", + "※1、部分窗口支持英语", + "2、修复在英语状态下启动器图标名称异常的问题", + "", "V1.4.3:", "※1、支持打包器打包的包名带前缀“uengine-dc”", "※2、修复了两种情况可能导致程序卡住/出错无法继续运行的情况(配置文件夹不齐全和获取版本信息卡住两种情况)", diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/setting.json b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/setting.json index df22307..cc22f18 100755 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/setting.json +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/setting.json @@ -1,6 +1,6 @@ { "Package": "com.gitee.uengine.runner.spark", "Update": true, - "Version": "1.4.3", + "Version": "1.5.0", "Url": "https://gfdgd-xi.github.io/update-program/data/UpdateInformation.json" } \ No newline at end of file diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder index 417362b..d78a287 100755 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder @@ -205,6 +205,10 @@ def ReStartProgram(): def get_home(): return os.path.expanduser('~') +# 获取当前语言 +def get_now_lang()->"获取当前语言": + return os.getenv('LANG') + # 获取用户桌面目录 def get_desktop_path(): for line in open(get_home() + "/.config/user-dirs.dirs"): # 以行来读取配置文件 @@ -377,9 +381,13 @@ def get_home(): # 程序信息 ########################### programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string +lang = get_now_lang() +langFile = json.loads(readtxt(programPath + "/Language.json")) +if not lang in langFile.keys(): + lang = "en_US.UTF-8" information = json.loads(readtxt(programPath + "/information.json")) version = information["Version"] -title = "UEngine APK 应用打包器 {}".format(version) +title = "{} {}".format(langFile[lang]["Uengine Apk Builder"]["Title"], version) iconPath = "{}/icon.png".format(os.path.split(os.path.realpath(__file__))[0]) ########################### @@ -406,17 +414,17 @@ qianZhui = tk.BooleanVar() window = ttk.Frame(win) frame2 = ttk.Frame(window) -label1 = ttk.Label(window, text="要打包的 apk 路径:") +label1 = ttk.Label(window, text=langFile[lang]["Uengine Apk Builder"]["label1"]) combobox1 = ttk.Combobox(window, width=100) -button2 = ttk.Button(window, text="浏览", command=FindApk) -button3 = ttk.Button(frame2, text="打包", command=BuildDeb) -check = ttk.Checkbutton(frame2, variable=qianZhui,text="使用前缀“uengine-dc”") +button2 = ttk.Button(window, text=langFile[lang]["Uengine Apk Builder"]["button2"], command=FindApk) +button3 = ttk.Button(frame2, text=langFile[lang]["Uengine Apk Builder"]["button3"], command=BuildDeb) +check = ttk.Checkbutton(frame2, variable=qianZhui,text=langFile[lang]["Uengine Apk Builder"]["check"]) textbox1 = tk.Text(window, width=100) menu = tk.Menu(window, background="white") # 设置菜单栏 programmenu = tk.Menu(menu, tearoff=0, background="white") # 设置“程序”菜单栏 -menu.add_cascade(label="程序", menu=programmenu) -programmenu.add_command(label="退出程序", command=window.quit) # 设置“退出程序”项 +menu.add_cascade(label=langFile[lang]["Uengine Apk Builder"]["Menu"][0]["Name"], menu=programmenu) +programmenu.add_command(label=langFile[lang]["Uengine Apk Builder"]["Menu"][0]["Menu"][0], command=window.quit) # 设置“退出程序”项 # 设置控件 combobox1['value'] = findApkHistory textbox1.configure(state=tk.DISABLED) diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner index cbc0bb8..5a05069 100755 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner @@ -3,10 +3,10 @@ ########################################################################################### # 作者:gfdgd xi<3025613752@qq.com> # 版本:1.4.3 -# 更新时间:2021年9月11日(开学了) +# 更新时间:2021年9月20日(中秋了) # 感谢:anbox、deepin 和 UOS # 基于 Python3 的 tkinter 构建 -# 更新:actionchen<917981399@qq.com> +# 更新:gfdgd xi<3025613752@qq.com>、actionchen<917981399@qq.com> ########################################################################################### ################# # 引入所需的库 @@ -211,6 +211,10 @@ def CleanProgramHistory()->"清理历史记录": def get_home()->"获取用户主目录": return os.path.expanduser('~') +# 获取当前语言 +def get_now_lang()->"获取当前语言": + return os.getenv('LANG') + # 发送“启动 uengine 所有程序”的 .desktop 文件到桌面 def SendUengineAndroidListForDesktop()->"发送“启动 uengine 所有程序”的 .desktop 文件到桌面": global desktop @@ -849,8 +853,12 @@ def UseProgram(): ########################### # 程序信息 ########################### +lang = get_now_lang() programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string information = json.loads(readtxt(programPath + "/information.json")) +langFile = json.loads(readtxt(programPath + "/Language.json")) +if not lang in langFile.keys(): + lang = "en_US.UTF-8" programUrl = information["Url"][0] version = information["Version"] goodRunSystem = information["System"] @@ -866,7 +874,7 @@ about = '''介绍 :一个基于 Python3 的 tkinter 制作的 UEngine ©2021-{}'''.format(version, goodRunSystem, tk.TkVersion, programUrl, time.strftime("%Y")) tips = "\n".join(information["Tips"]) updateThingsString = "\n".join(information["Update"]) -title = "UEngine 运行器 {}".format(version) +title = "{} {}".format(langFile[lang]["Main"]["MainWindow"]["Title"], version) updateTime = information["Time"] updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y")) iconPath = "{}/icon.png".format(os.path.split(os.path.realpath(__file__))[0]) @@ -1029,17 +1037,17 @@ win.geometry(""+"+{:.0f}+{:.0f}".format(x, y)) # 创建控件 FrmInstall = ttk.Frame(window) FrmUninstall = ttk.Frame(window) -LabApkPath = ttk.Label(window, text="安装APK:") -LabUninstallPath = ttk.Label(window, text="卸载APK:") +LabApkPath = ttk.Label(window, text=langFile[lang]["Main"]["MainWindow"]["LabApkPath"]) +LabUninstallPath = ttk.Label(window, text=langFile[lang]["Main"]["MainWindow"]["LabUninstallPath"]) ComboInstallPath = ttk.Combobox(window, width=50) ComboUninstallPath = ttk.Combobox(window, width=50) -BtnFindApk = ttk.Button(FrmInstall, text="浏览", command=FindApk) -BtnInstall = ttk.Button(FrmInstall, text="安装", command=Button3Install) -BtnShowUengineApp = ttk.Button(window, text="打开 UEngine 应用列表", command=Button5Click) -BtnUninstallApkBrowser = ttk.Button(FrmUninstall, text="浏览", command=BtnFindUninstallApkClk) -BtnUninstall = ttk.Button(FrmUninstall, text="卸载", command=ButtonClick8) -Btngeticon = ttk.Button(FrmInstall, text="保存图标", command=SaveIconToOtherPath) -BtnSaveApk = ttk.Button(FrmInstall, text="保存apk", command=SaveInstallUengineApp) +BtnFindApk = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnFindApk"], command=FindApk) +BtnInstall = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnInstall"], command=Button3Install) +BtnShowUengineApp = ttk.Button(window, text=langFile[lang]["Main"]["MainWindow"]["BtnShowUengineApp"], command=Button5Click) +BtnUninstallApkBrowser = ttk.Button(FrmUninstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstallApkBrowser"], command=BtnFindUninstallApkClk) +BtnUninstall = ttk.Button(FrmUninstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstall"], command=ButtonClick8) +Btngeticon = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["Btngeticon"], command=SaveIconToOtherPath) +BtnSaveApk = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnSaveApk"], command=SaveInstallUengineApp) # 设置菜单栏 menu = tk.Menu(window, background="white") @@ -1056,70 +1064,70 @@ uengineIcon = tk.Menu(uengine, tearoff=0, background="white") uengineUseAdb = tk.Menu(uengine, tearoff=0, background="white") uengineData = tk.Menu(uengine, tearoff=0, background="white") -menu.add_cascade(label="程序", menu=programmenu) -menu.add_cascade(label="adb", menu=adb) -menu.add_cascade(label="UEngine", menu=uengine) -menu.add_cascade(label="关于", menu=help) +menu.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Name"], menu=programmenu) +menu.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Name"], menu=adb) +menu.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Name"], menu=uengine) +menu.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Name"], menu=help) -programmenu.add_command(label="清空软件历史记录", command=CleanProgramHistory) +programmenu.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Menu"][0], command=CleanProgramHistory) programmenu.add_separator() # 设置分界线 -programmenu.add_command(label="退出程序", command=window.quit) # 设置“退出程序” +programmenu.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Menu"][1], command=window.quit) # 设置“退出程序” -adb.add_command(label="adb 连接 UEngine", command=UengineConnectAdb) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][0], command=UengineConnectAdb) adb.add_separator() -adb.add_cascade(label="adb 服务", menu=adbServer) -adb.add_command(label="显示 adb 连接的设备", command=AdbConnectDeviceShow) +adb.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Name"], menu=adbServer) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][2], command=AdbConnectDeviceShow) adb.add_separator() -adb.add_command(label="adb 修改 UEngine 分辨率", command=AdbChangeUengineDisplaySize.ShowWindows) -adb.add_command(label="adb 查看 UEngine 应用列表", command=AdbAndroidInstallAppList) -adb.add_command(label="adb 查看 UEngine 资源使用情况", command=AdbCPUAndRAWShowInTer) -adb.add_command(label="打开 adb 连接 UEngine 的终端", command=AdbShellShowInTer) -adb.add_command(label="使用 Scrcpy 连接 UEngine(只支持使用snap安装的Scrcpy)", command=ScrcpyConnectUengine) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][3], command=AdbChangeUengineDisplaySize.ShowWindows) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][4], command=AdbAndroidInstallAppList) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][5], command=AdbCPUAndRAWShowInTer) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][6], command=AdbShellShowInTer) +adb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][7], command=ScrcpyConnectUengine) adb.add_separator() -adb.add_cascade(label="UEngine 使用 adb", menu=uengineUseAdb) +adb.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Name"], menu=uengineUseAdb) -adbServer.add_command(label="开启 adb 服务", command=AdbStartServer) -adbServer.add_command(label="关闭 adb 服务", command=AdbStopServer) -adbServer.add_command(label="杀死 adb 进程", command=AdbKillAdbProgress) +adbServer.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][0], command=AdbStartServer) +adbServer.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][1], command=AdbStopServer) +adbServer.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][2], command=AdbKillAdbProgress) -uengine.add_command(label="UEngine 系统设置", command=UengineSettingShow) -uengine.add_command(label="UEngine 应用打包", command=OpenUengineDebBuilder) -#uengine.add_command(label="UEngine 键盘映射", command=KeyboardToMouse) -uengine.add_cascade(label="UEngine 服务", menu=uengineService) -uengine.add_cascade(label="UEngine 网络桥接", menu=uengineInternet) -uengine.add_cascade(label="UEngine 快捷方式", menu=uengineIcon) -uengine.add_cascade(label="UEngine 使用 adb", menu=uengineUseAdb) -uengine.add_cascade(label="UEngine 数据", menu=uengineData) +uengine.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][0], command=UengineSettingShow) +uengine.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][1], command=OpenUengineDebBuilder) +uengine.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][7], command=KeyboardToMouse) +uengine.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Name"], menu=uengineService) +uengine.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Name"], menu=uengineInternet) +uengine.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Name"], menu=uengineIcon) +uengine.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][5]["Name"], menu=uengineUseAdb) +uengine.add_cascade(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Name"], menu=uengineData) -help.add_command(label="程序官网", command=OpenProgramURL) # 设置“程序官网”项 -help.add_command(label="帮助", command=showhelp) # 设置“关于这个程序”项 +help.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][0], command=OpenProgramURL) # 设置“程序官网”项 +help.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][1], command=showhelp) # 设置“关于这个程序”项 -uengineService.add_command(label="启用 UEngine 服务(需要 root)", command=StartUengine) -uengineService.add_command(label="关闭 UEngine 服务(需要 root)", command=StopUengine) -uengineService.add_command(label="重启 UEngine 服务(需要 root)", command=UengineRestart) +uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=StartUengine) +uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=StopUengine) +uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=UengineRestart) -uengineInternet.add_command(label="启用 UEngine 网络桥接(需要 root)", command=UengineBridgeStart) -uengineInternet.add_command(label="关闭 UEngine 网络桥接(需要 root)", command=UengineBridgeStop) -uengineInternet.add_command(label="重启 UEngine 网络桥接(需要 root)", command=UengineBridgeRestart) -uengineInternet.add_command(label="加载 UEngine 网络桥接(需要 root)", command=UengineBridgeReload) -uengineInternet.add_command(label="强制加载 UEngine 网络桥接(需要 root)", command=UengineBridgeForceReload) +uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][0], command=UengineBridgeStart) +uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][1], command=UengineBridgeStop) +uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][2], command=UengineBridgeRestart) +uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][3], command=UengineBridgeReload) +uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][4], command=UengineBridgeForceReload) -uengineIcon.add_command(label="发送 UEngine 应用列表到桌面", command=SendUengineAndroidListForDesktop) -uengineIcon.add_command(label="发送 UEngine 应用列表到启动器", command=SendUengineAndroidListForLauncher) +uengineIcon.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][0], command=SendUengineAndroidListForDesktop) +uengineIcon.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][1], command=SendUengineAndroidListForLauncher) uengineIcon.add_separator() -uengineIcon.add_command(label="添加/删除指定的 UEngine 快捷方式", command=AddNewUengineDesktopLink.ShowWindow) +uengineIcon.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][2], command=AddNewUengineDesktopLink.ShowWindow) uengineIcon.add_separator() -uengineIcon.add_command(label="清空所有 UEngine 快捷方式", command=CleanAllUengineDesktopLink) +uengineIcon.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][3], command=CleanAllUengineDesktopLink) -uengineUseAdb.add_command(label="adb 连接 UEngine", command=UengineConnectAdb) +uengineUseAdb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][0], command=UengineConnectAdb) uengineUseAdb.add_separator() -uengineUseAdb.add_command(label="允许此设备使用 adb 连接本 UEngine(需要 root)", command=UengineUseAdb) -uengineUseAdb.add_command(label="禁止任何设备使用 adb 连接本 UEngine(需要 root)", command=UengineDoNotUseAdb) +uengineUseAdb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][1], command=UengineUseAdb) +uengineUseAdb.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][2], command=UengineDoNotUseAdb) -uengineData.add_command(label="打开 UEngine 根目录", command=OpenUengineRootData) -uengineData.add_command(label="打开 UEngine 用户数据目录", command=OpenUengineUserData) +uengineData.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][0], command=OpenUengineRootData) +uengineData.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][1], command=OpenUengineUserData) uengineData.add_separator() -uengineData.add_command(label="清空 UEngine 数据(需要 root)", command=BackUengineClean) +uengineData.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][2], command=BackUengineClean) menu.configure(activebackground="dodgerblue") help.configure(activebackground="dodgerblue") diff --git a/setting-new.json b/setting-new.json index df22307..cc22f18 100755 --- a/setting-new.json +++ b/setting-new.json @@ -1,6 +1,6 @@ { "Package": "com.gitee.uengine.runner.spark", "Update": true, - "Version": "1.4.3", + "Version": "1.5.0", "Url": "https://gfdgd-xi.github.io/update-program/data/UpdateInformation.json" } \ No newline at end of file diff --git a/setting.json b/setting.json index 6d79538..be23244 100755 --- a/setting.json +++ b/setting.json @@ -1,7 +1,7 @@ { "Package": "spark-uengine-runner", "Update": true, - "Version": "1.4.3", + "Version": "1.5.0", "Url": "https://gfdgd-xi.github.io/update-program/data/UpdateInformation.json" } \ No newline at end of file diff --git a/spark-uengine-runner.deb b/spark-uengine-runner.deb index b5515f2..1566d23 100755 Binary files a/spark-uengine-runner.deb and b/spark-uengine-runner.deb differ