lang = store[itr][2]
self.language.select_translation(lang)
-
self.data.lang.lang = lang
+ if self.data.keyboard.layouts_list:
+ #do not add layouts if there are any specified in the kickstart
+ return
+
+ #get language name without any additional specifications
+ #e.g. 'English (United States)' -> 'English'
+ lang_name = store[itr][1]
+ lang_name = lang_name.split()[0]
+
+ #add one language-related and 'English (US)' layouts by default
+ new_layouts = ['us']
+ language_layout = self._xklwrapper.get_default_language_layout(lang_ name)
+ if language_layout:
+ new_layouts.append(language_layout)
+
+ for layout in new_layouts:
+ if layout not in self.data.keyboard.layouts_list:
+ self.data.keyboard.layouts_list.append(layout)
+
@property
def completed(self):
return self.data.lang.lang and self.data.lang.lang != ""
diff --git a/pyanaconda/xklavier.py b/pyanaconda/xklavier.py
index d0ac444..386dea2 100755
--- a/pyanaconda/xklavier.py
+++ b/pyanaconda/xklavier.py
@@ -105,7 +105,7 @@ class XklWrapper(object):
def _get_country_variants(self, c_reg, item, user_data=None):
#helper "global" variable
@@ -119,7 +119,18 @@ class XklWrapper(object):
def get_available_layouts(self):
"""A generator yielding layouts (no need to store them as a bunch)"""
- for (lang_name, lang_desc), variants in sorted(self._language_keyboard_variants.items()):
+ for lang_desc, variants in sorted(self._language_keyboard_variants.items()):
for layout in variants:
yield layout.name
+ def get_default_language_layout(self, language):
+ """Get the default layout for a given language"""
+
+ language_layouts = self._language_keyboard_variants.get(language, None)
+
+ if not language_layouts:
+ return None
+
+ #first layout (should exist for every language)
+ return language_layouts[0].name
+
--
1.7.4.4
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list