def test_get_locale(self): locale_param = r'^LANG=' locale_regex = r'{}\(.*\)$'.format(locale_param) locale_cmd = r'locale | grep "{locale_param}" | sed "s/{regex}/\1/g"'.format(locale_param=locale_param, regex=locale_regex) locale_out, _, _ = utils.run_cmd(locale_cmd) locale_test = locale_out.rstrip() locale_setting = locale.get_locale() self.assertEqual(locale_setting, locale_test)
def test_get_locale(self): locale_param = r'^LANG=' locale_regex = r'{}\(.*\)$'.format(locale_param) locale_cmd = r'locale | grep "{locale_param}" | sed "s/{regex}/\1/g"'.format( locale_param=locale_param, regex=locale_regex) locale_out, _, _ = utils.run_cmd(locale_cmd) locale_test = locale_out.rstrip() locale_setting = locale.get_locale() self.assertEqual(locale_setting, locale_test)
def _load_saved_settings(self): locale_setting = strip_encoding_from_locale(get_locale()) locale_setting = get_setting('Locale') lang_code, region_code = Locales.get_codes_from_locale_code( locale_setting) lang = Locales.lang_code_to_lang(lang_code) region = Locales.region_code_to_region(region_code) selected_index = self._language_combo.get_items().index(lang) self._language_combo.set_selected_item_index(selected_index) self._on_language_changed(self._language_combo) selected_index = self._region_combo.get_items().index(region) self._region_combo.set_selected_item_index(selected_index)
def get_applications(parse_cmds=True): """ Get all the applications installed on the system. :param parse_cmds: :type parse_cmds: bool :returns: A dict with all apps. :rtype: dict """ loc = os.path.expanduser(_SYSTEM_APPLICATIONS_LOC) blacklist = [ "idle3.desktop", "idle.desktop", "idle-python2.7.desktop", "idle-python3.2.desktop", "xarchiver.desktop", "make-minecraft.desktop", "make-music.desktop", "make-pong.desktop", "make-snake.desktop", "kano-video.desktop", "lxsession-edit.desktop", "lxrandr.desktop", "lxinput.desktop", "obconf.desktop", "openbox.desktop", "libfm-pref-apps.desktop", "lxappearance.desktop", "htop.desktop", "pcmanfm-desktop-pref.desktop", "video-cli.desktop", "lxsession-default-apps.desktop", "pcmanfm.desktop", "help.desktop", "rxvt-unicode.desktop", "org.gnome.gedit.desktop", "chromium-browser.desktop", "openjdk-7-policytool.desktop" ] def _collect_apps(application_dir): if not os.path.exists(application_dir): return {} _applications = {} for f in os.listdir(os.path.join(application_dir, '')): fp = os.path.join(application_dir, f) if os.path.isdir(fp): continue if f[-4:] == ".app": data = load_from_app_file(fp, parse_cmds) if data is not None: if not is_app_installed(data): data["_install"] = True _applications[f] = data if "overrides" in data: blacklist.extend(data["overrides"]) elif f[-8:] == ".desktop" and f[0:5] != "auto_": data = _load_from_dentry(fp) if data is not None: _applications[f] = data return _applications apps = _collect_apps(loc) # get localised apps current_locale = ensure_utf_locale(get_locale()) if current_locale and get_current_translation(): locale_code = current_locale.split('.')[0] locale_path = os.path.join( _SYSTEM_APPLICATIONS_LOC, "locale", locale_code ) localised_apps = _collect_apps(locale_path) apps.update(localised_apps) filtered_apps = [ app for f, app in apps.iteritems() if os.path.basename(app['origin']) not in blacklist ] return sorted(filtered_apps, key=lambda a: a["title"])
def get_applications(parse_cmds=True, all_locales=False, current_locale=True): """ Get all the applications installed on the system. :param parse_cmds: :type parse_cmds: bool :returns: A dict with all apps. :rtype: dict """ loc = os.path.expanduser(_SYSTEM_APPLICATIONS_LOC) blacklist = [ "idle3.desktop", "idle.desktop", "idle-python2.7.desktop", "idle-python3.2.desktop", "xarchiver.desktop", "make-minecraft.desktop", "make-music.desktop", "make-pong.desktop", "make-snake.desktop", "kano-video.desktop", "lxsession-edit.desktop", "lxrandr.desktop", "lxinput.desktop", "obconf.desktop", "openbox.desktop", "libfm-pref-apps.desktop", "lxappearance.desktop", "htop.desktop", "pcmanfm-desktop-pref.desktop", "video-cli.desktop", "lxsession-default-apps.desktop", "pcmanfm.desktop", "help.desktop", "rxvt-unicode.desktop", "org.gnome.gedit.desktop", "chromium-browser.desktop", "openjdk-7-policytool.desktop" ] def _collect_apps(application_dir, skip_checks=False): if not os.path.exists(application_dir): return {} _applications = {} for f in os.listdir(os.path.join(application_dir, '')): fp = os.path.join(application_dir, f) if os.path.isdir(fp): continue if f[-4:] == ".app": data = load_from_app_file(fp, not skip_checks and parse_cmds) if data is not None: if not skip_checks and not is_app_installed(data): data["_install"] = True _applications[f] = data if "overrides" in data: blacklist.extend(data["overrides"]) elif f[-8:] == ".desktop" and f[0:5] != "auto_": data = _load_from_dentry(fp) if data is not None: _applications[f] = data return _applications locales = [ (DEFAULT_LOCALE, _SYSTEM_APPLICATIONS_LOC) ] locale_code = None if all_locales: locales += [ (locale, get_locale_dir(locale)) for locale in os.listdir(APP_LOCALE_DIR) ] elif current_locale: current_locale = ensure_utf_locale(get_locale()) if current_locale and get_current_translation(): locale_code = current_locale.split('.')[0] locales.append( (locale_code, get_locale_dir(locale_code)) ) apps = {} for locale, locale_dir in locales: locale_apps = _collect_apps( locale_dir, skip_checks=locale != DEFAULT_LOCALE ) for app_name, app_data in locale_apps.iteritems(): if app_name not in apps: apps[app_name] = {} if locale == DEFAULT_LOCALE: apps[app_name].update(app_data) else: if LOCALE_KEY not in apps[app_name]: apps[app_name][LOCALE_KEY] = {} apps[app_name][LOCALE_KEY][locale] = app_data if locale_code: apps = flatten_locale(apps, locale_code) filtered_apps = [ app for f, app in apps.iteritems() if os.path.basename(app['origin']) not in blacklist ] return sorted(filtered_apps, key=lambda a: a["title"]) return apps