X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec873c943d71f0d5f13e3398557071448cda6c23..a4027e74873007e3430af3bd77019bcab76f6c04:/wxPython/demo/I18N.py diff --git a/wxPython/demo/I18N.py b/wxPython/demo/I18N.py deleted file mode 100644 index e35f483a9b..0000000000 --- a/wxPython/demo/I18N.py +++ /dev/null @@ -1,234 +0,0 @@ -#Boa:FramePanel:LanguageSelectPanel -import os, sys -import wx -from wx.lib import langlistctrl -from Main import opj - - -# Normally you would just set _ to be a reference to the -# wx.GetTranslation function, and then wrap all you literal strings in -# _() function calls. Then everytime you use one of your literals, it -# would first pass through the translation function and try to load a -# translated version of the string from the current message catalogs. -# For this example, since we are changinb language on the fly, and -# since we are only translating the label for one widget, we'll not do -# it the automatic way and we'll be more explicit. See the setup in -# __init__() and the translation done in updateLanguage() below. - -_ = wx.GetTranslation - -exampleStrings = [ - 'the quick brown fox jumps over the lazy dog', # demo string - 'Tip of the Day', # wx built in translation - 'Warning', # wx built in translation -] - - -[wxID_LANGUAGESELECTPANEL, wxID_LANGUAGESELECTPANELENGLISHBASECH, - wxID_LANGUAGESELECTPANELLANGCTRLCONTAINER, - wxID_LANGUAGESELECTPANELLANGFILTERRB, wxID_LANGUAGESELECTPANELSTATICLINE1, - wxID_LANGUAGESELECTPANELSTATICTEXT1, wxID_LANGUAGESELECTPANELSTATICTEXT2, - wxID_LANGUAGESELECTPANELSTATICTEXT3, wxID_LANGUAGESELECTPANELTRANSLATEDST, -] = [wx.NewId() for _init_ctrls in range(9)] - -class LanguageSelectPanel(wx.Panel): - def _init_coll_boxSizer3_Items(self, parent): - # generated method, don't edit - - parent.AddWindow(self.langCtrlContainer, 1, border=0, flag=wx.GROW) - parent.AddSpacer(wx.Size(8, 8), border=0, flag=0) - parent.AddWindow(self.langFilterRB, 0, border=0, flag=0) - - def _init_coll_flexGridSizer1_Growables(self, parent): - # generated method, don't edit - - parent.AddGrowableRow(1) - parent.AddGrowableCol(0) - - def _init_coll_boxSizer1_Items(self, parent): - # generated method, don't edit - - parent.AddWindow(self.staticText1, 0, border=8, flag=wx.ALL) - parent.AddSizer(self.boxSizer3, 1, border=8, flag=wx.ALL | wx.GROW) - parent.AddSizer(self.boxSizer2, 0, border=8, flag=wx.GROW | wx.ALL) - - def _init_coll_boxSizer2_Items(self, parent): - # generated method, don't edit - - parent.AddWindow(self.staticText2, 0, border=8, flag=wx.ALL) - parent.AddWindow(self.englishBaseCh, 0, border=8, flag=wx.GROW | wx.ALL) - parent.AddWindow(self.staticLine1, 0, border=8, flag=wx.GROW | wx.ALL) - parent.AddWindow(self.staticText3, 0, border=8, flag=wx.ALL) - parent.AddWindow(self.translatedST, 0, border=8, flag=wx.GROW | wx.ALL) - - def _init_sizers(self): - # generated method, don't edit - self.boxSizer1 = wx.BoxSizer(orient=wx.VERTICAL) - - self.flexGridSizer1 = wx.FlexGridSizer(cols=2, hgap=8, rows=0, vgap=8) - - self.boxSizer3 = wx.BoxSizer(orient=wx.HORIZONTAL) - - self.boxSizer2 = wx.BoxSizer(orient=wx.VERTICAL) - - self._init_coll_boxSizer1_Items(self.boxSizer1) - self._init_coll_flexGridSizer1_Growables(self.flexGridSizer1) - self._init_coll_boxSizer3_Items(self.boxSizer3) - self._init_coll_boxSizer2_Items(self.boxSizer2) - - self.SetSizer(self.boxSizer1) - - def _init_ctrls(self, prnt): - # generated method, don't edit - wx.Panel.__init__(self, id=wxID_LANGUAGESELECTPANEL, - name='LanguageSelectPanel', parent=prnt, - style=wx.RESIZE_BORDER | wx.DEFAULT_DIALOG_STYLE) - - self.staticText1 = wx.StaticText(id=wxID_LANGUAGESELECTPANELSTATICTEXT1, - label='Choose a language that will be used for example translation.', - name='staticText1', parent=self, style=0) - - self.langCtrlContainer = wx.Panel(id=wxID_LANGUAGESELECTPANELLANGCTRLCONTAINER, - name='langCtrlContainer', parent=self, style=wx.TAB_TRAVERSAL) - self.langCtrlContainer.SetBackgroundColour(wx.Colour(255, 255, 255)) - self.langCtrlContainer.Bind(wx.EVT_SIZE, self.OnLangCtrlContainerSize) - - self.langFilterRB = wx.RadioBox(choices=['Translated example languages', - 'Available languages on your system', 'All languages'], - id=wxID_LANGUAGESELECTPANELLANGFILTERRB, label='Filter', - majorDimension=1, name='langFilterRB', parent=self, - style=wx.RA_SPECIFY_COLS) - self.langFilterRB.Bind(wx.EVT_RADIOBOX, self.OnLangFilterRBRadiobox, - id=wxID_LANGUAGESELECTPANELLANGFILTERRB) - - self.staticText2 = wx.StaticText(id=wxID_LANGUAGESELECTPANELSTATICTEXT2, - label='English Text:', name='staticText2', parent=self, - style=0) - - self.staticText3 = wx.StaticText(id=wxID_LANGUAGESELECTPANELSTATICTEXT3, - label='Translated Text:', name='staticText3', parent=self, - style=0) - - self.englishBaseCh = wx.Choice(choices=self.choices, - id=wxID_LANGUAGESELECTPANELENGLISHBASECH, name='englishBaseCh', - parent=self, style=0) - self.englishBaseCh.Bind(wx.EVT_CHOICE, self.OnLangSelectAndTranslate, - id=wxID_LANGUAGESELECTPANELENGLISHBASECH) - - self.staticLine1 = wx.StaticLine(id=wxID_LANGUAGESELECTPANELSTATICLINE1, - name='staticLine1', parent=self, style=0) - - self.translatedST = wx.StaticText(id=wxID_LANGUAGESELECTPANELTRANSLATEDST, - label='', name='translatedST', parent=self, style=0) - - self._init_sizers() - - def __init__(self, parent, log): - self.choices = [] - self.choices = exampleStrings - - self._init_ctrls(parent) - - self.log = log - - lang = wx.LANGUAGE_DEFAULT - filter = 'demo' - langs = (wx.LANGUAGE_AFRIKAANS, wx.LANGUAGE_ENGLISH, wx.LANGUAGE_DEFAULT, - wx.LANGUAGE_SPANISH, wx.LANGUAGE_GERMAN, wx.LANGUAGE_ITALIAN, - wx.LANGUAGE_FRENCH) - - - # usually you would define wx.Locale in your wx.App.OnInit class. - # for the demo we just define it in this module - self.locale = None - wx.Locale.AddCatalogLookupPathPrefix(opj('data/locale')) - self.updateLanguage(wx.LANGUAGE_DEFAULT) - - - self.filterMap = {'demo': langlistctrl.LC_ONLY, - 'available': langlistctrl.LC_AVAILABLE, - 'all': langlistctrl.LC_ALL} - - self.filterIdxMap = {0: 'demo', - 1: 'available', - 2: 'all'} - self.langs = langs - self.langCtrl = langlistctrl.LanguageListCtrl(self.langCtrlContainer, -1, - filter=self.filterMap[filter], only=langs, select=lang) - - self.langCtrl.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnLangSelectAndTranslate) - self.langCtrl.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnClearTranslatedText) - - self.OnLangCtrlContainerSize() - - self.englishBaseCh.Select(0) - self.OnLangSelectAndTranslate() - - - def updateLanguage(self, lang): - # Make *sure* any existing locale is deleted before the new - # one is created. The old C++ object needs to be deleted - # before the new one is created, and if we just assign a new - # instance to the old Python variable, the old C++ locale will - # not be destroyed soon enough, likely causing a crash. - if self.locale: - assert sys.getrefcount(self.locale) <= 2 - del self.locale - - # create a locale object for this language - self.locale = wx.Locale(lang) - if self.locale.IsOk(): - self.locale.AddCatalog('wxpydemo') - else: - self.locale = None - - def translateExample(self): - self.translatedST.SetLabel(_(self.englishBaseCh.GetStringSelection())) - - def OnLangCtrlContainerSize(self, event=None): - if event: event.Skip() - self.langCtrl.SetSize(self.langCtrlContainer.GetSize()) - - def OnLangFilterRBRadiobox(self, event): - self.langCtrl.SetUpFilter( - self.filterMap[self.filterIdxMap[self.langFilterRB.GetSelection()]], - self.langs) - - def OnLangSelectAndTranslate(self, event=None): - lang = self.langCtrl.GetLanguage() - - if lang is not None: - # set to the selected language - self.updateLanguage(lang) - - self.translateExample() - - # set back to default - self.updateLanguage(wx.LANGUAGE_DEFAULT) - - def OnClearTranslatedText(self, event): - self.translatedST.SetLabel('') - - -def runTest(frame, nb, log): - win = LanguageSelectPanel(nb, log) - return win - -#------------------------------------------------------------------------------- - -overview = """
--This demo demonstrates how to setup and use the wx.Locale object to translate text. -
-It also shows the langlistctrl.LanguageListCtrl that can be used to display -languages with their associated countries flags, e.g. for setting the language -in your application. - - -""" - -if __name__ == '__main__': - import sys,os - import run - run.main(['', os.path.basename(sys.argv[0])])