|-- locale
| `-- es
| `-- LC_MESSAGES
| |-- pluginloader.mo
| `-- pluginloader.po
|-- pluginloader.py
`-- plugins
`-- PluginA
|-- first_plugin
| `-- __init__.py
|-- manifest.json
`-- po
|-- es.po
`-- first_plugin.pot
我的app(pluginloader)具有以上结构,它使用它自己从locale目录转换。我想在pluginA中使用pluginA转换es.po。我怎么能这样做?我通过以下代码在pluginloader中导入插件。 `
import imp
import os
import gettext
t = gettext.translation('pluginloader', localedir='locale', languages=['es'], fallback=True)
t.install()
PluginFolder = "./plugins"
MainModule = "__init__"
print(_("Hello world"))
def getPlugins():
plugins = []
possibleplugins = os.listdir(PluginFolder)
for i in possibleplugins:
location = os.path.join(PluginFolder, i)
for j in os.listdir(location):
location1 = os.path.join(location, j)
if not os.path.isdir(location1) or not MainModule + ".py" in os.listdir(location1):
continue
info = imp.find_module(MainModule, [location1])
plugins.append({"name": i, "info": info})
return plugins
def loadPlugin(plugin):
return imp.load_module(MainModule, *plugin["info"])
for i in getPlugins():
plugin = loadPlugin(i)
plugin.run()`