【发布时间】:2020-12-14 21:10:48
【问题描述】:
我正在使用 Python 3.6 和 PyQt5 开发一个桌面应用程序。使用 Pyinstaller 编译应用程序后,我打算使用 Inno setup 制作安装文件。该软件使我们有机会在运行设置文件时选择应用程序的语言。我想知道如何根据该选择加载翻译文件(.qm 文件),谢谢。
【问题讨论】:
标签: python pyqt5 inno-setup
我正在使用 Python 3.6 和 PyQt5 开发一个桌面应用程序。使用 Pyinstaller 编译应用程序后,我打算使用 Inno setup 制作安装文件。该软件使我们有机会在运行设置文件时选择应用程序的语言。我想知道如何根据该选择加载翻译文件(.qm 文件),谢谢。
【问题讨论】:
标签: python pyqt5 inno-setup
你知道 Inno setup 总是会生成一个脚本,使用那个脚本。
Inno 设置有任务、组件、运行和语言选项。为此,您只需要运行和语言选项。
inno setup {language} 常量返回用户选择的语言。
您应该创建一个小型 cli 来接收用户从 inno 设置中选择的语言,然后通过创建 json 文件或数据库文件来为您的应用程序设置语言。 然后,您的应用会从 json 中读取信息并相应地加载 .qm 文件。
也许你会调用你的小 cli,setLanguage,在其中接收将被传递参数的语言。所以你可能有这样的东西:
import sys
import json
if (sys.argv) > 1:
with open('settings.json', 'w') as fh:
json.dump('{"language": "'+sys.argv[1]+'"}', fh)
然后在您的 Inno 设置脚本中,由于 Run 部分按顺序执行,因此更新如下:
[Run]
Filename: "{app}\setLanguage.EXE"; Parameters: "{language}"
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
然后您可以从您的应用中读取用户选择的语言的 json 文件
现在编译你的应用
【讨论】: