Merge pull request #281 from CanonicalLtd/mwhudson/initial-language

have initial language match users choice in isolinux screen
This commit is contained in:
Michael Hudson-Doyle 2018-02-13 09:59:15 +13:00 committed by GitHub
commit 1e1e710a7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 6 deletions

View File

@ -15,6 +15,7 @@
import gettext
import logging
import os
from subiquitycore import i18n
log = logging.getLogger('subiquity.models.locale')
@ -25,9 +26,6 @@ class LocaleModel(object):
XXX Only represents *language* selection for now.
"""
def __init__(self, signal):
self.signal = signal
supported_languages = [
('en_US', 'English'),
('ca_EN', 'Catalan'),
@ -35,9 +33,17 @@ class LocaleModel(object):
('lv_LV', 'Latvian'),
('ru_RU', 'Russian'),
]
selected_language = None
def __init__(self, signal):
self.signal = signal
lang = os.environ.get("LANG")
if lang.endswith(".UTF-8"):
lang = lang.rsplit('.', 1)[0]
for code, name in self.supported_languages:
if code == lang:
self.switch_language(code)
def get_languages(self):
languages = []
for code, name in self.supported_languages:

View File

@ -42,10 +42,16 @@ class WelcomeView(BaseView):
def _build_model_inputs(self):
sl = []
for code, native in self.model.get_languages():
current_index = None
for i, (code, native) in enumerate(self.model.get_languages()):
if code == self.model.selected_language:
current_index = i
sl.append(forward_btn(label=native, on_press=self.confirm, user_arg=code))
return SimpleList(sl)
lb = SimpleList(sl)
if current_index is not None:
lb._w.focus_position = current_index
return lb
def confirm(self, sender, code):
self.model.switch_language(code)