# Setup logging
log = logging.getLogger("bricklayer.lang")
-supported_languages = (
- ( "de_DE", N_("Deutsch")),
- ( "en_US", N_("English (United States)")),
-)
+supported_languages = {
+ "de_DE" : N_("Deutsch"),
+ "en_US" : N_("English (United States)"),
+}
class SelectLanguage(step.Step):
"""
self.current_language = os.environ.get("LANG")
def run(self, tui):
- # Fetch a list of all langauges
- languages = [name for code, name in supported_languages]
-
# Let the user select
- choice = tui.select(
+ code = tui.select(
_("Language Selection"),
_("Select the language you wish to use for the installation"),
- languages, buttons=(_("Select"),)
+ supported_languages, buttons=(_("Select"),)
)
- # Pick language from the list
- try:
- code, name = supported_languages[choice]
- except ValueError:
- pass
-
- log.info("Language selected: %s (%s)" % (name, code))
+ log.info("Language selected: %s" % code)
return ProgressWindow(self, *args, **kwargs)
def select(self, title, text, items, buttons=None, default=None, help=None):
+ # Convert items into a list which is sorted by its values
+ items = sorted(items.items(), key=lambda item: item[1])
+
+ # Set some default buttons
if buttons is None:
buttons = (_("Select"), _("Cancel"))
- button, item = snack.ListboxChoiceWindow(self.screen, title, text, items,
- buttons=buttons, default=default, help=help)
+ # Show the window
+ button, item = snack.ListboxChoiceWindow(self.screen, title, text,
+ [value for key, value in items], buttons=buttons, default=default, help=help)
+
+ # Find the selected item
+ key, value = items[item]
- # Return the selected item
- return item
+ # Return the key
+ return key
class ProgressWindow(object):