language-provider: Store availability of locale

GnomeDesktop acts differently depending on whether a locale is available
or not.
This commit is contained in:
Peter Eisenmann
2025-01-14 21:51:12 +08:00
parent b51db2e6bf
commit cc77577c14

View File

@@ -48,12 +48,13 @@ language_to_default_locale = {
class LanguageInfo(GObject.Object):
__gtype_name__ = __qualname__
def __init__(self, name, code, locale):
def __init__(self, name, code, locale, available=True):
super().__init__()
self.name = name
self.available = available
self.code = code
self.locale = locale
self.name = name
class LanguageProvider(Preloadable):
@@ -92,6 +93,9 @@ class LanguageProvider(Preloadable):
if name := GnomeDesktop.get_language_from_locale(locale, locale):
return LanguageInfo(name, language_code, locale)
if name := GnomeDesktop.get_language_from_locale(locale):
return LanguageInfo(name, language_code, locale, False)
national_code = language_code.split('_')[0]
if lang := GnomeDesktop.get_language_from_code(national_code, locale):
name = f'{lang} ({language_code})'