[PATCH] Try fallback if none exactly matching language is found (#891487)
Martin Sivak
msivak at redhat.com
Fri Jan 4 11:29:18 UTC 2013
I hate it when we have to do hacks like this, but ack.
Martin
----- Original Message -----
> From the language selection we get e.g. "Greek" as a language name.
> But
> while iterating over all languages libxklavier knows we get "Greek,
> Modern
> (1453-)" which is not an exact match. If exact match is not found we
> should
> try to find language starting with the string we got from the
> language
> selection.
>
> Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
> ---
> pyanaconda/keyboard.py | 29 +++++++++++++++++++++++------
> 1 file changed, 23 insertions(+), 6 deletions(-)
>
> diff --git a/pyanaconda/keyboard.py b/pyanaconda/keyboard.py
> index d6c8f5c..e865f08 100755
> --- a/pyanaconda/keyboard.py
> +++ b/pyanaconda/keyboard.py
> @@ -440,15 +440,32 @@ class XklWrapper(object):
> return self._switching_options
>
> def get_default_language_layout(self, language):
> - """Get the default layout for a given language"""
> + """Get the default layout for a given language."""
> +
> + layouts = self.get_language_layouts(language)
> + if layouts:
> + #first layout (should exist for every language)
> + return layouts[0].name
> + else:
> + return None
> +
> + def get_language_layouts(self, language):
> + """Get layouts for a given language."""
>
> language_layouts =
> self._language_keyboard_variants.get(language, None)
>
> - if not language_layouts:
> - return None
> + if language_layouts:
> + return language_layouts
>
> - #first layout (should exist for every language)
> - return language_layouts[0].name
> + #else try some magic and if everything fails, return None
> + for (lang, layouts) in
> self._language_keyboard_variants.iteritems():
> + #XXX: some languages are returned in a weird form from
> the
> + # libxklavier iterations (e.g. "Greek, Modern
> (1453-)")
> + if lang.startswith(language):
> + #first layout (should exist for every language)
> + return layouts
> +
> + return None
>
> def get_default_lang_country_layout(self, language, country):
> """
> @@ -457,7 +474,7 @@ class XklWrapper(object):
>
> """
>
> - language_layouts =
> self._language_keyboard_variants.get(language, None)
> + language_layouts = self.get_language_layouts(language)
> country_layouts =
> self._country_keyboard_variants.get(country, None)
> if not language_layouts:
> return None
> --
> 1.7.11.7
>
> _______________________________________________
> anaconda-patches mailing list
> anaconda-patches at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches
>
More information about the anaconda-patches
mailing list