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 \
import traceback
from . import disk
-from . import lang
+from . import i18n
from . import logger
from . import step
from . import tui
# Settings
self.settings = {
- "language" : lang.default_language,
+ "language" : i18n.default_language,
# Set the default swap size to 1 GiB
"swap-size": 1024 ** 3,
# An ordered list of all available steps
steps = (
step.UnattendedWarning,
- lang.SelectLanguage,
step.Welcome,
disk.SelectDisk,
disk.CalculatePartitionLayout,
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):
+++ /dev/null
-###############################################################################
-# #
-# 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
###############################################################################
import logging
+import os
import time
import snack
+from . import i18n
from .i18n import _
# Setup logging
"""
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):
"""
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)
# 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]