diff --git a/bauh/api/abstract/view.py b/bauh/api/abstract/view.py index 617ce1ab..bb7b6137 100644 --- a/bauh/api/abstract/view.py +++ b/bauh/api/abstract/view.py @@ -84,14 +84,17 @@ class SingleSelectComponent(InputViewComponent): class MultipleSelectComponent(InputViewComponent): - def __init__(self, label: str, options: List[InputOption], default_options: Set[InputOption] = None, max_per_line: int = 1, id_: str = None): + def __init__(self, label: str, options: List[InputOption], default_options: Set[InputOption] = None, + max_per_line: int = 1, tooltip: str = None, spaces: bool = True, id_: str = None): super(MultipleSelectComponent, self).__init__(id_=id_) if not options: raise Exception("'options' cannot be None or empty") self.options = options + self.spaces= spaces self.label = label + self.tooltip = tooltip self.values = default_options if default_options else set() self.max_per_line = max_per_line @@ -144,9 +147,10 @@ class TextInputComponent(ViewComponent): class FormComponent(ViewComponent): - def __init__(self, components: List[ViewComponent], label: str = None, id_: str = None): + def __init__(self, components: List[ViewComponent], label: str = None, spaces: bool = True, id_: str = None): super(FormComponent, self).__init__(id_=id_) self.label = label + self.spaces = spaces self.components = components self.component_map = {c.id: c for c in components if c.id} if components else None @@ -167,12 +171,11 @@ class FileChooserComponent(ViewComponent): class TabComponent(ViewComponent): - def __init__(self, label: str, content: ViewComponent, icon_path: str = None, tooltip: str = None, id_: str = None): + def __init__(self, label: str, content: ViewComponent, icon_path: str = None, id_: str = None): super(TabComponent, self).__init__(id_=id_) self.label = label self.content = content self.icon_path = icon_path - self.tooltip = tooltip class TabGroupComponent(ViewComponent): diff --git a/bauh/gems/flatpak/resources/locale/ca b/bauh/gems/flatpak/resources/locale/ca index ff4eb81f..3a61c697 100644 --- a/bauh/gems/flatpak/resources/locale/ca +++ b/bauh/gems/flatpak/resources/locale/ca @@ -1,4 +1,4 @@ -gem.flatpak.info=Aplicacions disponibles als dipòsits configurats en el vostre sistema +gem.flatpak.info=Aplicacions disponibles a Flathub i altres repositoris configurats al vostre sistema flatpak.info.arch=arquitectura flatpak.info.branch=branca flatpak.info.collection=col·lecció diff --git a/bauh/gems/flatpak/resources/locale/en b/bauh/gems/flatpak/resources/locale/en index eca20851..fb571bbd 100644 --- a/bauh/gems/flatpak/resources/locale/en +++ b/bauh/gems/flatpak/resources/locale/en @@ -1,4 +1,4 @@ -gem.flatpak.info=Applications available in the repositories configured on your system +gem.flatpak.info=Applications available on Flathub and other repositories configured on your system flatpak.notification.no_remotes=No Flatpak remotes set. It will not be possible to search for Flatpak apps. flatpak.notification.disable=If you do not want to use Flatpak applications, uncheck {} in {} flatpak.downgrade.impossible.title=Error diff --git a/bauh/gems/flatpak/resources/locale/es b/bauh/gems/flatpak/resources/locale/es index 65de1b2e..afeb3383 100644 --- a/bauh/gems/flatpak/resources/locale/es +++ b/bauh/gems/flatpak/resources/locale/es @@ -1,4 +1,4 @@ -gem.flatpak.info=Aplicativos disponibles en los repositorios configurados en su sistema +gem.flatpak.info=Aplicativos disponibles en Flathub y otros repositorios configurados en su sistema flatpak.info.arch=arquitectura flatpak.info.branch=rama flatpak.info.collection=colección diff --git a/bauh/gems/flatpak/resources/locale/it b/bauh/gems/flatpak/resources/locale/it index 7a12fd5e..c0351a93 100644 --- a/bauh/gems/flatpak/resources/locale/it +++ b/bauh/gems/flatpak/resources/locale/it @@ -1,4 +1,4 @@ -gem.flatpak.info=Applicazioni disponibili nei repository configurati sul sistema +gem.flatpak.info=Applicazioni disponibili su Flathub e altri repository configurati sul tuo sistema flatpak.notification.no_remotes=Nessun set remoti Flatpak. Non sarà possibile cercare app Flatpak. flatpak.notification.disable=Ise non si desidera utilizzare le applicazioni Flatpak, deselezionare {} in {} flatpak.downgrade.impossible.title=Errore diff --git a/bauh/gems/flatpak/resources/locale/pt b/bauh/gems/flatpak/resources/locale/pt index ed1f4345..1d0b3e82 100644 --- a/bauh/gems/flatpak/resources/locale/pt +++ b/bauh/gems/flatpak/resources/locale/pt @@ -1,4 +1,4 @@ -gem.flatpak.info=Aplicativos disponíveis nos repositórios configurados do seu sistema +gem.flatpak.info=Aplicativos disponíveis no Flathub e outros repositórios configurados no seu sistema flatpak.info.arch=arquitetura flatpak.info.branch=ramo flatpak.info.collection=coleção diff --git a/bauh/view/core/controller.py b/bauh/view/core/controller.py index 50d163f3..facf11e3 100755 --- a/bauh/view/core/controller.py +++ b/bauh/view/core/controller.py @@ -12,9 +12,11 @@ from bauh.api.abstract.disk import DiskCacheLoader from bauh.api.abstract.handler import ProcessWatcher from bauh.api.abstract.model import SoftwarePackage, PackageUpdate, PackageHistory, PackageSuggestion, PackageAction from bauh.api.abstract.view import FormComponent, ViewComponent, TabGroupComponent, TabComponent, SingleSelectComponent, \ - InputOption, PanelComponent, SelectViewType, TextInputComponent, FileChooserComponent, MultipleSelectComponent + InputOption, PanelComponent, SelectViewType, TextInputComponent, FileChooserComponent, MultipleSelectComponent, \ + TextComponent from bauh.api.exception import NoInternetException from bauh.commons import internet +from bauh.commons.html import bold from bauh.view.core import config from bauh.view.core.config import read_config from bauh.view.util import translation @@ -409,7 +411,7 @@ class GenericSoftwareManager(SoftwareManager): def _gen_bool_component(self, label: str, tooltip: str, value: bool, id_: str) -> SingleSelectComponent: opts = [InputOption(label=self.i18n['yes'].capitalize(), value=True), - InputOption(label=self.i18n['no'].capitalize(), value=False)] + InputOption(label=self.i18n['no'].capitalize(), value=False)] return SingleSelectComponent(label=label, options=opts, @@ -443,7 +445,7 @@ class GenericSoftwareManager(SoftwareManager): only_int=True, id_="sugs_by_type") - sub_comps = [FormComponent([select_locale, select_sysnotify, select_sugs, inp_sugs])] + sub_comps = [FormComponent([select_locale, select_sysnotify, select_sugs, inp_sugs], spaces=False)] return TabComponent(self.i18n['core.config.tab.general'].capitalize(), PanelComponent(sub_comps), None, 'core.gen') def _gen_adv_settings(self, core_config: dict) -> TabComponent: @@ -476,7 +478,7 @@ class GenericSoftwareManager(SoftwareManager): id_="down_mthread", value=core_config['download']['multithreaded']) - sub_comps = [FormComponent([select_dcache, select_dmthread, select_dep_check, input_data_exp, input_icon_exp])] + sub_comps = [FormComponent([select_dcache, select_dmthread, select_dep_check, input_data_exp, input_icon_exp], spaces=False)] return TabComponent(self.i18n['core.config.tab.advanced'].capitalize(), PanelComponent(sub_comps), None, 'core.adv') def _gen_tray_settings(self, core_config: dict) -> TabComponent: @@ -499,7 +501,7 @@ class GenericSoftwareManager(SoftwareManager): file_path=str(core_config['ui']['tray']['updates_icon']) if core_config['ui']['tray']['updates_icon'] else None, allowed_extensions=allowed_exts) - sub_comps = [FormComponent([input_update_interval, select_def_icon, select_up_icon])] + sub_comps = [FormComponent([input_update_interval, select_def_icon, select_up_icon], spaces=False)] return TabComponent(self.i18n['core.config.tab.tray'].capitalize(), PanelComponent(sub_comps), None, 'core.tray') def _gen_ui_settings(self, core_config: dict) -> TabComponent: @@ -528,10 +530,14 @@ class GenericSoftwareManager(SoftwareManager): id_="down_icons", value=core_config['download']['icons']) - sub_comps = [FormComponent([select_hdpi, select_dicons, select_style, input_maxd])] + sub_comps = [FormComponent([select_hdpi, select_dicons, select_style, input_maxd], spaces=False)] return TabComponent(self.i18n['core.config.tab.ui'].capitalize(), PanelComponent(sub_comps), None, 'core.ui') - def _save_settings(self, general: PanelComponent, advanced: PanelComponent, ui: PanelComponent, tray: PanelComponent) -> Tuple[bool, List[str]]: + def _save_settings(self, general: PanelComponent, + advanced: PanelComponent, + ui: PanelComponent, + tray: PanelComponent, + gems_panel: PanelComponent) -> Tuple[bool, List[str]]: core_config = config.read_config() # general @@ -587,6 +593,16 @@ class GenericSoftwareManager(SoftwareManager): if style != cur_style: core_config['ui']['style'] = style + # gems + checked_gems = gems_panel.get_component('gems').get_selected_values() + + for man in self.managers: + modname = man.__module__.split('.')[-2] + enabled = modname in checked_gems + man.set_enabled(enabled) + + core_config['gems'] = None if core_config['gems'] is None and len(checked_gems) == len(self.managers) else checked_gems + try: config.save(core_config) return True, None @@ -596,12 +612,6 @@ class GenericSoftwareManager(SoftwareManager): def get_settings(self) -> ViewComponent: tabs = list() - core_config = read_config() - tabs.append(self._gen_general_settings(core_config)) - tabs.append(self._gen_ui_settings(core_config)) - tabs.append(self._gen_tray_settings(core_config)) - tabs.append(self._gen_adv_settings(core_config)) - gem_opts, def_gem_opts, gem_tabs = [], set(), [] for man in self.managers: @@ -611,7 +621,7 @@ class GenericSoftwareManager(SoftwareManager): icon_path = "{r}/gems/{n}/resources/img/{n}.svg".format(r=ROOT_DIR, n=modname) if man_comp: - gem_tabs.append(TabComponent(label=None, content=man_comp, icon_path=icon_path, tooltip=modname.capitalize(), id_=modname)) + gem_tabs.append(TabComponent(label=modname.capitalize(), content=man_comp, icon_path=icon_path, id_=modname)) opt = InputOption(label=self.i18n.get('gem.{}.label'.format(modname), modname.capitalize()), tooltip=self.i18n.get('gem.{}.info'.format(modname)), @@ -622,9 +632,23 @@ class GenericSoftwareManager(SoftwareManager): if man.is_enabled() and man in self.working_managers: def_gem_opts.add(opt) + core_config = read_config() + tabs.append(self._gen_general_settings(core_config)) + if gem_opts: - form_types = FormComponent(components=[MultipleSelectComponent(label=None, options=gem_opts, default_options=def_gem_opts)]) - tabs.append(TabComponent(label='Types', content=PanelComponent([form_types]))) + type_help = TextComponent(html=self.i18n['core.config.types.tip']) + gem_selector = MultipleSelectComponent(label=None, + tooltip=None, + options=gem_opts, + default_options=def_gem_opts, + id_="gems") + tabs.append(TabComponent(label=self.i18n['core.config.tab.types'], + content=PanelComponent([type_help, gem_selector]), + id_='core.types')) + + tabs.append(self._gen_ui_settings(core_config)) + tabs.append(self._gen_tray_settings(core_config)) + tabs.append(self._gen_adv_settings(core_config)) for tab in gem_tabs: tabs.append(tab) @@ -638,7 +662,8 @@ class GenericSoftwareManager(SoftwareManager): success, errors = self._save_settings(general=component.get_tab('core.gen').content, advanced=component.get_tab('core.adv').content, tray=component.get_tab('core.tray').content, - ui=component.get_tab('core.ui').content) + ui=component.get_tab('core.ui').content, + gems_panel=component.get_tab('core.types').content) if not success: saved = False diff --git a/bauh/view/qt/components.py b/bauh/view/qt/components.py index 3efde7b5..fe31d784 100644 --- a/bauh/view/qt/components.py +++ b/bauh/view/qt/components.py @@ -10,7 +10,7 @@ from PyQt5.QtWidgets import QRadioButton, QGroupBox, QCheckBox, QComboBox, QGrid from bauh.api.abstract.view import SingleSelectComponent, InputOption, MultipleSelectComponent, SelectViewType, \ TextInputComponent, FormComponent, FileChooserComponent, ViewComponent, TabGroupComponent, PanelComponent, \ - TwoStateButtonComponent + TwoStateButtonComponent, TextComponent from bauh.view.qt import css from bauh.view.util import resource from bauh.view.util.translation import I18n @@ -267,6 +267,62 @@ class MultipleSelectQt(QGroupBox): self.layout().addWidget(QLabel(), line + 1, 1) +class FormMultipleSelectQt(QWidget): + + def __init__(self, model: MultipleSelectComponent, parent: QWidget = None): + super(FormMultipleSelectQt, self).__init__(parent=parent) + self.model = model + self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) + + self._layout = QGridLayout() + self.setLayout(self._layout) + + if model.label: + line = 1 + self.layout().addWidget(QLabel(), 0, 1) + else: + line = 0 + + col = 0 + + pixmap_help = QPixmap() + + for op in model.options: # loads the help icon if at least one option has a tooltip + if op.tooltip: + with open(resource.get_path('img/about.svg'), 'rb') as f: + pixmap_help.loadFromData(f.read()) + pixmap_help = pixmap_help.scaled(16, 16, Qt.KeepAspectRatio, Qt.SmoothTransformation) + break + + for op in model.options: + comp = CheckboxQt(op, model, None) + + if model.values and op in model.values: + self.value = comp + comp.setChecked(True) + + widget = QWidget() + widget.setLayout(QHBoxLayout()) + widget.layout().addWidget(comp) + + if op.tooltip: + help_icon = QLabel() + help_icon.setPixmap(pixmap_help) + help_icon.setToolTip(op.tooltip) + widget.layout().addWidget(help_icon) + + self._layout.addWidget(widget, line, col) + + if col + 1 == self.model.max_per_line: + line += 1 + col = 0 + else: + col += 1 + + if model.label: + self.layout().addWidget(QLabel(), line + 1, 1) + + class InputFilter(QLineEdit): def __init__(self, on_key_press): @@ -348,7 +404,8 @@ class FormQt(QGroupBox): self.setLayout(QFormLayout()) self.setStyleSheet(css.GROUP_BOX) - self.layout().addRow(QLabel(), QLabel()) + if model.spaces: + self.layout().addRow(QLabel(), QLabel()) for c in model.components: if isinstance(c, TextInputComponent): @@ -366,10 +423,14 @@ class FormQt(QGroupBox): elif isinstance(c, TwoStateButtonComponent): label = self._new_label(c) self.layout().addRow(label, TwoStateButtonQt(c)) + elif isinstance(c, MultipleSelectComponent): + label = self._new_label(c) + self.layout().addRow(label, FormMultipleSelectQt(c)) else: raise Exception('Unsupported component type {}'.format(c.__class__.__name__)) - self.layout().addRow(QLabel(), QLabel()) + if model.spaces: + self.layout().addRow(QLabel(), QLabel()) def _new_label(self, comp) -> QWidget: label = QWidget() @@ -517,5 +578,7 @@ def to_widget(comp: ViewComponent, i18n: I18n, parent: QWidget = None) -> QWidge return PanelQt(comp, i18n, parent) elif isinstance(comp, TwoStateButtonComponent): return TwoStateButtonQt(comp) + elif isinstance(comp, TextComponent): + return QLabel(comp.value) else: raise Exception("Cannot render instances of " + comp.__class__.__name__) diff --git a/bauh/view/qt/styles.py b/bauh/view/qt/styles.py deleted file mode 100644 index d092bd76..00000000 --- a/bauh/view/qt/styles.py +++ /dev/null @@ -1,45 +0,0 @@ -from PyQt5.QtWidgets import QComboBox, QStyleFactory, QWidget, QApplication - -from bauh import __app_name__ -from bauh.commons.html import bold -from bauh.view.core import config -from bauh.view.util import util -from bauh.view.qt import dialog -from bauh.view.util.translation import I18n - - -class StylesComboBox(QComboBox): - - def __init__(self, parent: QWidget, i18n: I18n, show_panel_after_restart: bool): - super(StylesComboBox, self).__init__(parent=parent) - self.app = QApplication.instance() - self.styles = [] - self.i18n = i18n - self.last_index = 0 - self.show_panel_after_restart = show_panel_after_restart - - for idx, style in enumerate(QStyleFactory.keys()): - self.styles.append(style) - self.addItem('{}: {}'.format(i18n['style'].capitalize(), style), style) - - if style.lower() == self.app.style().objectName(): - self.setCurrentIndex(idx) - self.last_index = idx - - self.currentIndexChanged.connect(self.change_style) - - def change_style(self, idx: int): - - if dialog.ask_confirmation(self.i18n['style.change.title'], self.i18n['style.change.question'].format(bold(__app_name__)), self.i18n): - self.last_index = idx - style = self.styles[idx] - - user_config = config.read_config() - user_config['ui']['style'] = style - config.save(user_config) - - util.restart_app(self.show_panel_after_restart) - else: - self.blockSignals(True) - self.setCurrentIndex(self.last_index) - self.blockSignals(False) diff --git a/bauh/view/qt/window.py b/bauh/view/qt/window.py index c8b81685..8c06d76b 100755 --- a/bauh/view/qt/window.py +++ b/bauh/view/qt/window.py @@ -16,19 +16,16 @@ from bauh.api.abstract.view import MessageType from bauh.api.http import HttpClient from bauh.commons import user from bauh.commons.html import bold -from bauh.view.core.controller import GenericSoftwareManager -from bauh.view.qt import dialog, commons, qt_utils, root, view_utils +from bauh.view.qt import dialog, commons, qt_utils, root from bauh.view.qt.about import AboutDialog from bauh.view.qt.apps_table import AppsTable, UpdateToggleButton -from bauh.view.qt.components import new_spacer, InputFilter, IconButton, to_widget +from bauh.view.qt.components import new_spacer, InputFilter, IconButton from bauh.view.qt.confirmation import ConfirmationDialog -from bauh.view.qt.gem_selector import GemSelectorPanel from bauh.view.qt.history import HistoryDialog from bauh.view.qt.info import InfoDialog from bauh.view.qt.root import ask_root_password from bauh.view.qt.screenshots import ScreenshotsDialog from bauh.view.qt.settings import SettingsWindow -from bauh.view.qt.styles import StylesComboBox from bauh.view.qt.thread import UpdateSelectedApps, RefreshApps, UninstallApp, DowngradeApp, GetAppInfo, \ GetAppHistory, SearchPackages, InstallPackage, AnimateProgress, VerifyModels, FindSuggestions, ListWarnings, \ AsyncAction, LaunchApp, ApplyFilters, CustomAction, GetScreenshots @@ -1152,13 +1149,6 @@ class ManageWindow(QWidget): else: self.checkbox_console.setChecked(True) - def show_gems_selector(self): - gem_panel = GemSelectorPanel(window=self, - manager=self.manager, i18n=self.i18n, - config=self.config, - show_panel_after_restart=bool(self.tray_icon)) - gem_panel.show() - def show_settings_window(self): self.settings_window = SettingsWindow(self.manager, self.i18n, self.screen_size, bool(self.tray_icon)) self.settings_window.setMinimumWidth(int(self.screen_size.width() / 4)) @@ -1170,13 +1160,6 @@ class ManageWindow(QWidget): def _show_settings_menu(self): menu_row = QMenu() - if isinstance(self.manager, GenericSoftwareManager): - action_gems = QAction(self.i18n['manage_window.settings.gems']) - action_gems.setIcon(self.icon_app) - - action_gems.triggered.connect(self.show_gems_selector) - menu_row.addAction(action_gems) - action_settings = QAction(self.i18n['settings'].capitalize()) action_settings.triggered.connect(self.show_settings_window) action_settings.setIcon(QIcon(resource.get_path('img/tools.svg'))) diff --git a/bauh/view/resources/locale/ca b/bauh/view/resources/locale/ca index 0935f81d..9cff9e9a 100644 --- a/bauh/view/resources/locale/ca +++ b/bauh/view/resources/locale/ca @@ -220,8 +220,10 @@ icon_button.tooltip.disabled=Aquesta acció no està disponible user=usuari example.short=e.g core.config.tab.advanced=Advanced -core.config.tab_label=general +core.config.tab.general=General core.config.tab.ui=Interface +core.config.tab.tray=Tray +core.config.tab.types=Types core.config.locale.label=language core.config.disk_cache=Disk cache core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations @@ -249,6 +251,7 @@ core.config.system.dep_checking=Single system checking core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once core.config.suggestions.by_type=Suggestions by type core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type +core.config.types.tip=Check the application types you want to manage locale.en=anglès locale.es=castellà locale.pt=portuguès diff --git a/bauh/view/resources/locale/de b/bauh/view/resources/locale/de index 7fb62726..adf959ad 100644 --- a/bauh/view/resources/locale/de +++ b/bauh/view/resources/locale/de @@ -175,8 +175,10 @@ icon_button.tooltip.disabled=Diese Aktion ist nicht verfügbar user=Benutzer example.short=e.g core.config.tab.advanced=Advanced -core.config.tab_label=general +core.config.tab.general=General core.config.tab.ui=Interface +core.config.tab.tray=Tray +core.config.tab.types=Types core.config.locale.label=language core.config.disk_cache=Disk cache core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations @@ -204,6 +206,7 @@ core.config.system.dep_checking=Single system checking core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once core.config.suggestions.by_type=Suggestions by type core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type +core.config.types.tip=Check the application types you want to manage locale.en=englisch locale.es=spanisch locale.pt=portugiesisch diff --git a/bauh/view/resources/locale/en b/bauh/view/resources/locale/en index 29c4cd24..e8f3cbea 100644 --- a/bauh/view/resources/locale/en +++ b/bauh/view/resources/locale/en @@ -182,6 +182,7 @@ core.config.tab.advanced=Advanced core.config.tab.general=General core.config.tab.ui=Interface core.config.tab.tray=Tray +core.config.tab.types=Types core.config.locale.label=language core.config.disk_cache=Disk cache core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations @@ -212,6 +213,7 @@ core.config.system.dep_checking=Single system checking core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once core.config.suggestions.by_type=Suggestions by type core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type +core.config.types.tip=Check the application types you want to manage locale.en=english locale.es=spanish locale.pt=portuguese diff --git a/bauh/view/resources/locale/es b/bauh/view/resources/locale/es index 3f47b248..e8bdd025 100644 --- a/bauh/view/resources/locale/es +++ b/bauh/view/resources/locale/es @@ -222,6 +222,7 @@ core.config.tab.advanced=Avanzadas core.config.tab.general=Generales core.config.tab.ui=Interfaz core.config.tab.tray=Bandeja +core.config.tab.types=Tipos core.config.locale.label=idioma core.config.disk_cache=Cache em disco core.config.disk_cache.tip={app} guardará algunos datos sobre sus aplicaciones instaladas en el disco para cargarlas más rápido en las próximas inicializaciones @@ -253,6 +254,7 @@ core.config.system.dep_checking=Verificación única de sistema core.config.system.dep_checking.tip=Si la verificación de disponibilidad de las tecnologías de su sistema debe ocurrir solo una vez core.config.suggestions.by_type=Sugerencias por tipo core.config.suggestions.by_type.tip=Número máximo de sugerencias que deberían mostrarse por tipo de aplicación +core.config.types.tip=Marque los tipos de aplicaciones que desea administrar locale.es=inglés locale.es=español locale.pt=portugués diff --git a/bauh/view/resources/locale/it b/bauh/view/resources/locale/it index d6c6c177..ecd3f08a 100644 --- a/bauh/view/resources/locale/it +++ b/bauh/view/resources/locale/it @@ -178,6 +178,7 @@ example.short=e.g core.config.tab.advanced=Advanced core.config.tab_label=general core.config.tab.ui=Interface +core.config.tab.types=Types core.config.locale.label=language core.config.disk_cache=Disk cache core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations @@ -205,6 +206,7 @@ core.config.system.dep_checking=Single system checking core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once core.config.suggestions.by_type=Suggestions by type core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type +core.config.types.tip=Check the application types you want to manage locale.en=inglese locale.es=spagnolo locale.pt=portoghese diff --git a/bauh/view/resources/locale/pt b/bauh/view/resources/locale/pt index 6344fc01..2726a99d 100644 --- a/bauh/view/resources/locale/pt +++ b/bauh/view/resources/locale/pt @@ -225,6 +225,7 @@ core.config.tab.advanced=Avançadas core.config.tab.general=Gerais core.config.tab.ui=Interface core.config.tab.tray=Bandeja +core.config.tab.types=Tipos core.config.locale.label=idioma core.config.disk_cache=Cache em disco core.config.disk_cache.tip={app} gravará alguns dados sobre seus aplicativos instalados no disco para que eles sejam carregados rapidamente nas próximas inicializações @@ -256,6 +257,7 @@ core.config.system.dep_checking=Verificação única de sistema core.config.system.dep_checking.tip=Se a verificação da disponibilidade das tecnologias do seu sistema devem ocorrer somente uma vez core.config.suggestions.by_type=Sugestões por tipo core.config.suggestions.by_type.tip=Número máximo de sugestões que devem ser exibidas por tipo de aplicativo +core.config.types.tip=Marque os tipos de aplicativo que você quer gerenciar locale.en=inglês locale.es=espanhol locale.pt=português