]> git.ipfire.org Git - people/ms/bricklayer.git/commitdiff
welcome: Merge language selection into welcome screen
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 8 May 2021 14:06:01 +0000 (14:06 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 8 May 2021 14:06:01 +0000 (14:06 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
src/python/__init__.py
src/python/i18n.py
src/python/lang.py [deleted file]
src/python/step.py
src/python/tui.py

index 5694d421db1192f8142388a1fc654e5461eb67f1..d1c3155b226916e9ce66bc93de21eb45b8e0c3fc 100644 (file)
@@ -48,7 +48,6 @@ dist_pkgpython_PYTHON = \
        src/python/disk.py \
        src/python/errors.py \
        src/python/i18n.py \
-       src/python/lang.py \
        src/python/logger.py \
        src/python/step.py \
        src/python/tui.py \
index d01099419d379f62cc0af37ef24d894d4961fafe..59d340f28cbe2a012a09f1364ed60f10915ad8cc 100644 (file)
@@ -24,7 +24,7 @@ import sys
 import traceback
 
 from . import disk
-from . import lang
+from . import i18n
 from . import logger
 from . import step
 from . import tui
@@ -49,7 +49,7 @@ class Bricklayer(object):
 
                # Settings
                self.settings = {
-                       "language" : lang.default_language,
+                       "language" : i18n.default_language,
 
                        # Set the default swap size to 1 GiB
                        "swap-size": 1024 ** 3,
@@ -75,7 +75,6 @@ class Bricklayer(object):
        # An ordered list of all available steps
        steps = (
                step.UnattendedWarning,
-               lang.SelectLanguage,
                step.Welcome,
                disk.SelectDisk,
                disk.CalculatePartitionLayout,
index da467842b8772623e97bebabbdf6b90d5755330d..8594a4916504414a4a7a16fcec96a624ee730bc8 100644 (file)
 
 import gettext
 
+supported_languages = {
+       "de_DE.UTF-8" : "Deutsch",
+       "en_US.UTF-8" : "English (United States)",
+}
+
+default_language = "en_US.UTF-8"
+
+assert default_language in supported_languages
+
 N_ = lambda x: x
 
 def _(singular, plural=None, n=None):
diff --git a/src/python/lang.py b/src/python/lang.py
deleted file mode 100644 (file)
index baf38a4..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-###############################################################################
-#                                                                             #
-# Bricklayer - An Installer for IPFire                                        #
-# Copyright (C) 2021 IPFire Development Team                                  #
-#                                                                             #
-# This program is free software; you can redistribute it and/or               #
-# modify it under the terms of the GNU General Public License                 #
-# as published by the Free Software Foundation; either version 2              #
-# of the License, or (at your option) any later version.                      #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-import logging
-import os
-
-from . import step
-from .i18n import _
-
-# Setup logging
-log = logging.getLogger("bricklayer.lang")
-
-supported_languages = {
-       "de_DE.UTF-8" : "Deutsch",
-       "en_US.UTF-8" : "English (United States)",
-}
-
-default_language = "en_US.UTF-8"
-
-assert default_language in supported_languages
-
-class SelectLanguage(step.InteractiveStep):
-       """
-               Ask the user which language to use for the installation process
-       """
-       def initialize(self):
-               self.current_language = self.bricklayer.settings.get("language")
-
-       def run(self, tui):
-               # Let the user select
-               code = tui.select(
-                       _("Language Selection"),
-                       _("Select the language you wish to use for the installation"),
-                       supported_languages, default=self.current_language, buttons=(_("Select"),)
-               )
-
-               log.info("Language selected: %s" % code)
-
-               # Store in settings
-               self.bricklayer.settings["language"] = code
-
-               # Set to environment
-               os.environ["LANGUAGE"] = code
index 1e6c930b4c2a572bdc0a5c81e610717450bf4b9a..e58b9035d6a7187b3cbfb65f07e43e5b97734410 100644 (file)
 ###############################################################################
 
 import logging
+import os
 import time
 
 import snack
 
+from . import i18n
 from .i18n import _
 
 # Setup logging
@@ -73,15 +75,24 @@ class Welcome(InteractiveStep):
        """
        def run(self, tui):
                name = self.bricklayer.os.get("NAME")
-
-               tui.message(
-                       title=_("Welcome"),
-                       text=_("Welcome to the %s installation program.\n\n"
-                               "Selecting Cancel on any of the following screens will reboot the "
-                               "computer.") % name,
-                       buttons=(_("Start Installation"), _("Cancel"))
+               current_language = self.bricklayer.settings.get("language")
+
+               # Let the user select
+               lang = tui.select(
+                       _("Willkommen, Bienvenue, Welcome!"),
+                       _("Select the language you wish to use for the installation"),
+                       i18n.supported_languages, default=current_language,
+                       buttons=[_("Start Installation")], width=60,
                )
 
+               log.info("Language selected: %s" % lang)
+
+               # Store in settings
+               self.bricklayer.settings["language"] = lang
+
+               # Set to environment
+               os.environ["LANGUAGE"] = lang
+
 
 class Congratulations(InteractiveStep):
        """
index 83da597f015fea52ec5eb97b4762e58dc1cc8718..80d5c3bab45366f5cb22174c7dce145b2cda1a59 100644 (file)
@@ -137,7 +137,7 @@ class Tui(object):
        def progress(self, *args, **kwargs):
                return ProgressWindow(self, *args, **kwargs)
 
-       def select(self, title, text, items, buttons=None, default=None, help=None):
+       def select(self, title, text, items, buttons=None, default=None, help=None, width=40):
                # Translate default
                if default:
                        default = items.get(default, None)
@@ -151,7 +151,8 @@ class Tui(object):
 
                # Show the window
                button, item = snack.ListboxChoiceWindow(self.screen, title, text,
-                       [value for key, value in items], buttons=buttons, default=default, help=help)
+                       [value for key, value in items], buttons=buttons, default=default, help=help,
+                       width=width)
 
                # Find the selected item
                key, value = items[item]