Exemplo n.º 1
0
    def FromModuleInfo(cls, moduleInfo):
        self = cls.__new__(cls)
        self.__dict__.update(moduleInfo.__dict__)
        pathname = join(self.path, "__init__.py")
        if not exists(pathname):
            eg.PrintError("File %s does not exist" % pathname)
            return None
        if self.path.startswith(eg.corePluginDir):
            moduleName = "eg.CorePluginModule." + self.pluginName
        else:
            moduleName = "eg.UserPluginModule." + self.pluginName
        try:
            if moduleName in sys.modules:
                module = sys.modules[moduleName]
            else:
                module = __import__(moduleName, None, None, [''])
        except:
            eg.PrintTraceback(
                "Error while loading plugin-file %s." % self.path,
                1
            )
            return None
        pluginCls = module.__pluginCls__
        self.module = module
        self.pluginCls = pluginCls

        englishText = pluginCls.text
        if englishText is None:
            englishText = ClassType("EmptyDefaultText", (), {})

        englishText.name = self.englishName
        englishText.description = self.englishDescription

        # TODO: the text class should be referenced by the GUID instead of
        #       pluginCls.__name__
        translatedText = getattr(eg.text.Plugin, pluginCls.__name__, None)
        if translatedText is None:
            setattr(eg.text.Plugin, pluginCls.__name__, englishText)
            text = englishText
        else:
            SetDefault(translatedText, englishText)
            text = translatedText

        pluginCls.text = text
        pluginCls.name = text.name
        pluginCls.description = text.description
        return self
Exemplo n.º 2
0
    def FromModuleInfo(cls, moduleInfo):
        self = cls.__new__(cls)
        self.__dict__.update(moduleInfo.__dict__)
        pathname = join(self.path, "__init__.py")
        if not exists(pathname):
            eg.PrintError("File %s does not exist" % pathname)
            return None
        if self.path.startswith(eg.corePluginDir):
            moduleName = "eg.CorePluginModule." + self.pluginName
        else:
            moduleName = "eg.UserPluginModule." + self.pluginName
        try:
            if moduleName in sys.modules:
                module = sys.modules[moduleName]
            else:
                module = __import__(moduleName, None, None, [''])
        except:
            eg.PrintTraceback(
                eg.text.Error.pluginLoadError % self.path,
                1
            )
            raise eg.Exceptions.PluginLoadError()
        pluginCls = module.__pluginCls__
        self.module = module
        self.pluginCls = pluginCls

        englishText = pluginCls.text
        if englishText is None:
            englishText = ClassType("EmptyDefaultText", (), {})

        englishText.name = self.englishName
        englishText.description = self.englishDescription

        # TODO: the text class should be referenced by the GUID instead of
        #       pluginCls.__name__
        translatedText = getattr(eg.text.Plugin, pluginCls.__name__, None)
        if translatedText is None:
            setattr(eg.text.Plugin, pluginCls.__name__, englishText)
            text = englishText
        else:
            SetDefault(translatedText, englishText)
            text = translatedText

        pluginCls.text = text
        pluginCls.name = text.name
        pluginCls.description = text.description
        return self
Exemplo n.º 3
0
 def Translate(self, plugin, actionCls, actionClsName):
     defaultText = actionCls.text
     if defaultText is None:
         defaultText = ClassType(actionClsName, (), {})
     translatedText = getattr(plugin.text, actionClsName, None)
     if translatedText is None:
         translatedText = ClassType(actionClsName, (), {})
         setattr(plugin.text, actionClsName, translatedText)
     SetDefault(translatedText, defaultText)
     if not hasattr(translatedText, "name"):
         name = actionCls.name
         translatedText.name = actionClsName if name is None else name
     if not hasattr(translatedText, "description"):
         description = actionCls.description
         translatedText.description = (translatedText.name if
                                       description is None else description)
     return translatedText
Exemplo n.º 4
0
 def Translate(self, plugin, actionCls, actionClsName):
     defaultText = actionCls.text
     if defaultText is None:
         defaultText = ClassType(actionClsName, (), {})
     translatedText = getattr(plugin.text, actionClsName, None)
     if translatedText is None:
         translatedText = ClassType(actionClsName, (), {})
         setattr(plugin.text, actionClsName, translatedText)
     SetDefault(translatedText, defaultText)
     if not hasattr(translatedText, "name"):
         name = actionCls.name
         translatedText.name = actionClsName if name is None else name
     if not hasattr(translatedText, "description"):
         description = actionCls.description
         translatedText.description = (
             translatedText.name if description is None else description
         )
     return translatedText