OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
python3
/
dist-packages
/
LanguageSelector
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/17/2025 09:32:20 AM
rwxr-xr-x
📄
ImConfig.py
2.47 KB
05/20/2018 06:34:31 PM
rw-r--r--
📄
LangCache.py
6.06 KB
11/04/2013 09:47:29 PM
rw-r--r--
📄
LanguageSelector.py
4.17 KB
01/08/2017 09:11:34 PM
rw-r--r--
📄
LocaleInfo.py
12.56 KB
10/26/2017 01:58:06 PM
rw-r--r--
📄
__init__.py
3 bytes
11/04/2013 09:47:29 PM
rw-r--r--
📁
__pycache__
-
10/21/2019 03:50:05 PM
rwxr-xr-x
📄
macros.py
5.24 KB
11/04/2013 09:47:29 PM
rw-r--r--
📄
utils.py
1.63 KB
11/04/2013 09:47:29 PM
rw-r--r--
📄
xkb.py
3.25 KB
11/04/2013 09:47:29 PM
rw-r--r--
Editing: LanguageSelector.py
Close
# (c) 2006 Canonical # Author: Michael Vogt <michael.vogt@ubuntu.com> # # Released under the GPL # from __future__ import print_function from __future__ import absolute_import import warnings warnings.filterwarnings("ignore", "apt API not stable yet", FutureWarning) import apt import dbus import os import language_support_pkgs from LanguageSelector.LocaleInfo import LocaleInfo import LanguageSelector.LangCache from LanguageSelector.utils import * from LanguageSelector import macros # the language-selector abstraction class LanguageSelectorBase(object): """ base class for language-selector code """ def __init__(self, datadir=""): self._datadir = datadir # load the localeinfo "database" self._localeinfo = LocaleInfo("languagelist", self._datadir) self._cache = None def openCache(self, progress): self._cache = LanguageSelector.LangCache.LanguageSelectorPkgCache(self._localeinfo, progress) def getMissingLangPacks(self): """ return a list of language packs that are not installed but should be installed """ if self._datadir: ls = language_support_pkgs.LanguageSupport(self._cache, os.path.join(self._datadir, "data", "pkg_depends")) else: ls = language_support_pkgs.LanguageSupport(self._cache) missing = [] for pack in ls.missing(): # ls.missing() returns a set; we need a list missing.append(pack) return missing def writeSysFormatsSetting(self, sysFormats): """ write various LC_* variables (e.g. de_DE.UTF-8) """ bus = dbus.SystemBus() obj = bus.get_object('com.ubuntu.LanguageSelector','/') iface = dbus.Interface(obj,dbus_interface="com.ubuntu.LanguageSelector") iface.SetSystemDefaultFormatsEnv(sysFormats) def writeSysLanguageSetting(self, sysLanguage): """ write the system "LANGUAGE" and "LANG" variables """ bus = dbus.SystemBus() obj = bus.get_object('com.ubuntu.LanguageSelector','/') iface = dbus.Interface(obj,dbus_interface="com.ubuntu.LanguageSelector") iface.SetSystemDefaultLanguageEnv(sysLanguage) def writeUserFormatsSetting(self, userFormats): """ write various LC_* variables (e.g. de_DE.UTF-8) """ uid = os.getuid() if uid == 0: warnings.warn("No formats locale saved for user '%s'." % os.getenv('USER')) return bus = dbus.SystemBus() obj = bus.get_object('org.freedesktop.Accounts', '/org/freedesktop/Accounts/User%i' % uid) iface = dbus.Interface(obj, dbus_interface='org.freedesktop.Accounts.User') macr = macros.LangpackMacros(self._datadir, userFormats) iface.SetFormatsLocale(macr['SYSLOCALE']) def writeUserLanguageSetting(self, userLanguage): """ write the user "LANGUAGE" and "LANG" variables """ uid = os.getuid() if uid == 0: warnings.warn("No language saved for user '%s'." % os.getenv('USER')) return bus = dbus.SystemBus() obj = bus.get_object('org.freedesktop.Accounts', '/org/freedesktop/Accounts/User%i' % uid) iface = dbus.Interface(obj, dbus_interface='org.freedesktop.Accounts.User') iface.SetLanguage(self.validateLangList(userLanguage)) def validateLangList(self, userLanguage): """ remove elements which can be assumed to cause user confusion """ tmp = [] is_eng = False for lang in userLanguage.split(':'): if lang == 'en_US': tmp.extend(['en_US', 'en']) break elif lang.startswith('en_') or lang == 'en': tmp.append(lang) is_eng = True elif not is_eng: tmp.append(lang) validatedLangList = ':'.join(tmp) if validatedLangList != userLanguage: warnings.warn('The language list was modified by the program.') return validatedLangList if __name__ == "__main__": lsb = LanguageSelectorBase(datadir="..") lsb.openCache(apt.progress.OpProgress()) print(lsb.verifyPackageLists())