我有一个小程序,我正在开发练习。在UI(使用wxPython构建)中,我有一个下拉列表,提供各种语言选项。
我如何处理本地化:我通过从字典loc.lan["section"]
中提取来格式化单个字符串,其中“section”是给定字符串的键。 loc
是我用来处理本地化的类的对象
我通过阅读json来填充这本词典,json包含了每种可用语言的上述部分的字典。在程序启动时,程序从该文件中读取,该文件还存储最后选择的语言,并使用相应语言的部分填充loc.lan
。
当用户操作下拉列表时也会发生这种情况,在这种情况下,新选择也会记录在json文件中。
问题:现在,如果用户选择其他语言,那么已经格式化的字符串显然不会刷新,所以我必须重新启动应用才能使更改生效
问题:什么是最优雅的方式让语言立即改变?
朋友建议在主循环中使用continue
语句,但我不能这样做,因为主循环由wxPython应用程序的MainLoop()
方法处理。
处理这个问题的最佳方法是什么?我应该重组整个系统并以某种方式做不同的事情吗?有没有办法在wxPython的主循环上运行?