Index: zenmap/zenmapGUI/MainWindow.py =================================================================== --- zenmap/zenmapGUI/MainWindow.py (revision 33857) +++ zenmap/zenmapGUI/MainWindow.py (working copy) @@ -158,6 +158,10 @@ from zenmapCore.UmitConf import SearchConfig, is_maemo from zenmapCore.NetworkInventory import FilteredNetworkInventory +import zenmapCore.I18N +from zenmapCore.Name import APP_NAME +from zenmapCore.Paths import LOCALE_DIR + UmitScanWindow = None hildon = None @@ -312,6 +316,13 @@ _('Create a new scan profile using the current command'), self._new_scan_profile_cb), + ('Change Language', + None, + _('_Language'), + 'l', + _('Change Zenmap language'), + self._change_language), + ('Search Scan', gtk.STOCK_FIND, _('Search Scan Results'), @@ -370,6 +381,19 @@ _('Shows the application help'), self._help_cb), ] + + Langs = os.listdir(LOCALE_DIR) + for lang in Langs: + if os.path.isdir(os.path.join(LOCALE_DIR, lang)): + self.main_actions.append( + (lang, + None, + _(lang), # you can change this menuiterm name in translation + None, + _(lang), # and this info also + self._change_language + ) + ) # See info on UIManager at: # * http://www.pygtk.org/pygtk2reference/class-gtkuimanager.html @@ -411,6 +435,24 @@ + """ + + self.default_ui += """ + + """ + + # Add thoses languages to UI + for lang in Langs: + if(os.path.isdir(os.path.join(LOCALE_DIR, lang))): + self.default_ui += """ + + """ % lang + + self.default_ui += """ + + """ + + self.default_ui += """ @@ -928,7 +970,18 @@ self.scan_interface.inventory.get_scans()) self.diff_window.show_all() + def _change_language(self, widget=None): + """Change Zenmap language""" + # get language name that user choose + lang = gtk.Buildable.get_name(widget) + # below is just a test + import gettext + t = gettext.translation( + APP_NAME, LOCALE_DIR, languages=[lang, "UTF-8"], fallback=True) + t.install(unicode=True) + + def show_help(): import urllib import webbrowser