wxPython 提供假文件翻译

问题描述

我想对 .mo 文件进行 base64 编码,并将其用作 wxPython 的翻译文件。因为它将位于 .py 文件中。


我有一个 wxPython 项目,它正在以几种不同的方式进行编译。图标没有问题,因为它们被打包在一个 .py 文件和 base64 中。 .mo 文件中的翻译令人头疼。是否可以对翻译进行同样的作弊?不将它们包含在正确的 .mo 文件中,而只是将翻译转储到 base64 或 gzipped base64 中?

wx.FileTranslationLoader() 似乎是唯一存在的 wx.TranslationLoader()。它说我可以替换那个翻译加载器并使用我自己的。 https://wxpython.org/Phoenix/docs/html/wx.Translations.html#wx.Translations.SetLoader 但是要做到这一点,我需要返回一个 msgCatalog,它显然不是我可以在任何地方找到的对象类型。

这似乎是一种伪造的可靠方法,因此将打包我所有 .py 的构建器设置为他们的翻译文件,但这似乎不容易实现,但也许我错过了一个简单的 hack。也许ducktype MsgCatalog 但我不知道它需要什么方法。而且我实际上并不想自己阅读 .mo,只是给它一个像对象一样的字节流。从理论上讲,我可以将 mo 写入语言环境目录,但通常各种安装的内部文件系统都是假的,因此我最终会将一些奇怪的文件写入磁盘。我想我可以在临时目录中执行此操作,但这似乎很麻烦。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)