diff --git a/etg/_core.py b/etg/_core.py index fbcdeea2..622ffb8f 100644 --- a/etg/_core.py +++ b/etg/_core.py @@ -48,6 +48,7 @@ INCLUDES = [ # core 'vidmode', 'display', 'intl', + 'translation', 'cmndata', 'gdicmn', diff --git a/etg/translation.py b/etg/translation.py new file mode 100644 index 00000000..1f37a8f2 --- /dev/null +++ b/etg/translation.py @@ -0,0 +1,77 @@ +#--------------------------------------------------------------------------- +# Name: etg/translation.py +# Author: Robin Dunn +# +# Created: 07-Apr-2012 +# Copyright: (c) 2012 by Total Control Software +# License: wxWindows License +#--------------------------------------------------------------------------- + +import etgtools +import etgtools.tweaker_tools as tools + +PACKAGE = "wx" +MODULE = "_core" +NAME = "translation" # Base name of the file to generate to for this script +DOCSTRING = "" + +# The classes and/or the basename of the Doxygen XML files to be processed by +# this script. +ITEMS = [ "wxTranslations", + "wxTranslationsLoader", + "wxFileTranslationsLoader", + #"wxMsgCatalog", TODO: Getting link errors on this + ] + +#--------------------------------------------------------------------------- + +def run(): + # Parse the XML file(s) building a collection of Extractor objects + module = etgtools.ModuleDef(PACKAGE, MODULE, NAME, DOCSTRING) + etgtools.parseDoxyXML(module, ITEMS) + + #----------------------------------------------------------------- + # Tweak the parsed meta objects in the module object as needed for + # customizing the generated code and docstrings. + + c = module.find('wxTranslations') + assert isinstance(c, etgtools.ClassDef) + c.find('Set.t').transfer = True + c.find('SetLoader.loader').transfer = True + c.find('AddCatalog').findOverload('msgIdCharset').ignore() + + + c = module.find('wxTranslationsLoader') + c.abstract = True + c.find('LoadCatalog').factory = True + + + c = module.find('wxFileTranslationsLoader') + c.addItem(etgtools.WigCode("""\ + virtual wxMsgCatalog *LoadCatalog(const wxString& domain, const wxString& lang); + virtual wxArrayString GetAvailableTranslations(const wxString& domain) const; + """)) + + + #c = module.find('wxMsgCatalog') + #c.find('CreateFromFile').factory = True + #c.find('CreateFromData').ignore() # Needs wxScopedCharBuffer + ##c.find('CreateFromData').factory = True + #c.addPrivateCopyCtor() + + # Just add a forward declaration for now + module.insertItem(0, etgtools.WigCode("class wxMsgCatalog;")) + + + module.find('_').ignore() + + + #----------------------------------------------------------------- + tools.doCommonTweaks(module) + tools.runGenerators(module) + + +#--------------------------------------------------------------------------- +if __name__ == '__main__': + run() + diff --git a/unittests/test_translation.py b/unittests/test_translation.py new file mode 100644 index 00000000..64c997d5 --- /dev/null +++ b/unittests/test_translation.py @@ -0,0 +1,16 @@ +import imp_unittest, unittest +import wtc +import wx + +#--------------------------------------------------------------------------- + +class translation_Tests(wtc.WidgetTestCase): + + def test_translation1(self): + ldr = wx.FileTranslationsLoader() + wx.GetTranslation('hello') + +#--------------------------------------------------------------------------- + +if __name__ == '__main__': + unittest.main()