[ui][settings] more improvements and settings

This commit is contained in:
Vinícius Moreira
2020-01-27 19:05:46 -03:00
parent ce673dda5d
commit ab8b7d5f0b
11 changed files with 289 additions and 101 deletions

View File

@@ -157,11 +157,12 @@ class FormComponent(ViewComponent):
class FileChooserComponent(ViewComponent):
def __init__(self, allowed_extensions: Set[str] = None, label: str = None, id_: str = None):
def __init__(self, allowed_extensions: Set[str] = None, label: str = None, tooltip: str = None, file_path: str = None, id_: str = None):
super(FileChooserComponent, self).__init__(id_=id_)
self.label = label
self.allowed_extensions = allowed_extensions
self.file_path = None
self.file_path = file_path
self.tooltip = tooltip
class TabComponent(ViewComponent):

View File

@@ -4,16 +4,17 @@ import traceback
from threading import Thread
from typing import List, Set, Type, Tuple
from PyQt5.QtWidgets import QStyleFactory, QApplication
from bauh import ROOT_DIR
from bauh.api.abstract.controller import SoftwareManager, SearchResult, ApplicationContext
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, TwoStateButtonComponent
InputOption, PanelComponent, SelectViewType, TextInputComponent, FileChooserComponent
from bauh.api.exception import NoInternetException
from bauh.commons import internet
from bauh.commons.config import save_config
from bauh.view.core import config
from bauh.view.core.config import read_config
from bauh.view.util import translation
@@ -418,8 +419,7 @@ class GenericSoftwareManager(SoftwareManager):
max_per_line=len(opts),
id_=id_)
def _gen_settings_panel(self) -> TabComponent:
core_config = read_config()
def _gen_general_settings(self, core_config: dict) -> TabComponent:
locale_opts = [InputOption(label=self.i18n['locale.{}'.format(k)].capitalize(), value=k) for k in translation.get_available_keys()]
select_locale = SingleSelectComponent(label=self.i18n['core.config.locale.label'],
options=locale_opts,
@@ -427,40 +427,32 @@ class GenericSoftwareManager(SoftwareManager):
type_=SelectViewType.COMBO,
id_='locale')
select_dcache = self._gen_bool_component(label=self.i18n['core.config.disk_cache'],
tooltip=self.i18n['core.config.disk_cache.tip'].format(app=self.context.app_name),
value=core_config['disk_cache']['enabled'],
id_='dcache')
input_update_interval = TextInputComponent(label=self.i18n['core.config.updates.interval'].capitalize(),
tooltip=self.i18n['core.config.updates.interval.tip'],
only_int=True,
value=str(core_config['updates']['check_interval']),
id_="updates_interval")
form_general = FormComponent(label=self.i18n['core.config.tab_label'].capitalize(),
components=[select_locale, input_update_interval, select_dcache],
id_="form_general")
select_dicons = self._gen_bool_component(label=self.i18n['core.config.download.icons'],
tooltip=self.i18n['core.config.download.icons.tip'],
id_="down_icons",
value=core_config['download']['icons'])
select_dmthread = self._gen_bool_component(label=self.i18n['core.config.download.multithreaded'],
tooltip=self.i18n['core.config.download.multithreaded.tip'],
id_="down_mthread",
value=core_config['download']['multithreaded'])
form_download = FormComponent(label=self.i18n['download'].capitalize(), components=[select_dicons, select_dmthread], id_='form_download')
select_sysnotify = self._gen_bool_component(label=self.i18n['core.config.system.notifications'].capitalize(),
tooltip=self.i18n['core.config.system.notifications.tip'].capitalize(),
value=bool(core_config['system']['notifications']),
id_="sys_notify")
select_sugs = self._gen_bool_component(label=self.i18n['core.config.suggestions.activated'].capitalize(),
tooltip=self.i18n['core.config.suggestions.activated.tip'].format(app=self.context.app_name),
tooltip=self.i18n['core.config.suggestions.activated.tip'].capitalize(),
id_="sugs_enabled",
value=bool(core_config['suggestions']['enabled']))
form_sugs = FormComponent(label=self.i18n['core.config.suggestions'].capitalize(),
components=[select_sugs], id_='form_sugs')
inp_sugs = TextInputComponent(label=self.i18n['core.config.suggestions.by_type'],
tooltip=self.i18n['core.config.suggestions.by_type.tip'],
value=str(core_config['suggestions']['by_type']),
only_int=True,
id_="sugs_by_type")
sub_comps = [FormComponent([select_locale, select_sysnotify, select_sugs, inp_sugs])]
return TabComponent(self.i18n['core.config.tab.general'].capitalize(), PanelComponent(sub_comps), None, 'core.gen')
def _gen_adv_settings(self, core_config: dict) -> TabComponent:
select_dcache = self._gen_bool_component(label=self.i18n['core.config.disk_cache'],
tooltip=self.i18n['core.config.disk_cache.tip'].format(
app=self.context.app_name),
value=core_config['disk_cache']['enabled'],
id_='dcache')
input_data_exp = TextInputComponent(label=self.i18n['core.config.mem_cache.data_exp'],
tooltip=self.i18n['core.config.mem_cache.data_exp.tip'],
@@ -474,39 +466,126 @@ class GenericSoftwareManager(SoftwareManager):
only_int=True,
id_="icon_exp")
form_cache = FormComponent(label=self.i18n['core.config.mem_cache'].capitalize(),
components=[input_data_exp, input_icon_exp],
id_='form_memcache')
select_dep_check = self._gen_bool_component(label=self.i18n['core.config.system.dep_checking'],
tooltip=self.i18n['core.config.system.dep_checking.tip'],
value=core_config['system']['single_dependency_checking'],
id_='dep_check')
sub_comps = [form_general, form_download, form_sugs, form_cache]
return TabComponent(self.i18n['core.config.tab_label'].capitalize(), PanelComponent([FormComponent(sub_comps)]), None, 'core')
select_dmthread = self._gen_bool_component(label=self.i18n['core.config.download.multithreaded'],
tooltip=self.i18n['core.config.download.multithreaded.tip'],
id_="down_mthread",
value=core_config['download']['multithreaded'])
def _save_settings(self, panel: PanelComponent) -> Tuple[bool, List[str]]:
sub_comps = [FormComponent([select_dcache, select_dmthread, select_dep_check, input_data_exp, input_icon_exp])]
return TabComponent(self.i18n['core.config.tab.advanced'].capitalize(), PanelComponent(sub_comps), None, 'core.adv')
def _gen_tray_settings(self, core_config: dict) -> TabComponent:
input_update_interval = TextInputComponent(label=self.i18n['core.config.updates.interval'].capitalize(),
tooltip=self.i18n['core.config.updates.interval.tip'],
only_int=True,
value=str(core_config['updates']['check_interval']),
id_="updates_interval")
allowed_exts = {'png', 'svg', 'jpg', 'jpeg', 'ico', 'xpm'}
select_def_icon = FileChooserComponent(id_='def_icon',
label=self.i18n["core.config.ui.tray.default_icon"].capitalize(),
tooltip=self.i18n["core.config.ui.tray.default_icon.tip"].capitalize(),
file_path=str(core_config['ui']['tray']['default_icon']) if core_config['ui']['tray']['default_icon'] else None,
allowed_extensions=allowed_exts)
select_up_icon = FileChooserComponent(id_='up_icon',
label=self.i18n["core.config.ui.tray.updates_icon"].capitalize(),
tooltip=self.i18n["core.config.ui.tray.updates_icon.tip"].capitalize(),
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])]
return TabComponent(self.i18n['core.config.tab.tray'].capitalize(), PanelComponent(sub_comps), None, 'core.tray')
def _gen_ui_settings(self, core_config: dict) -> TabComponent:
select_hdpi = self._gen_bool_component(label=self.i18n['core.config.ui.hdpi'],
tooltip=self.i18n['core.config.ui.hdpi.tip'].format(
app=self.context.app_name),
value=bool(core_config['ui']['hdpi']),
id_='hdpi')
cur_style = QApplication.instance().style().objectName().lower() if not core_config['ui']['style'] else core_config['ui']['style']
style_opts = [InputOption(label=s.capitalize(), value=s.lower()) for s in QStyleFactory.keys()]
select_style = SingleSelectComponent(label=self.i18n['style'].capitalize(),
options=style_opts,
default_option=[o for o in style_opts if o.value == cur_style][0],
type_=SelectViewType.COMBO,
id_="style")
input_maxd = TextInputComponent(label=self.i18n['core.config.ui.max_displayed'].capitalize(),
tooltip=self.i18n['core.config.ui.max_displayed.tip'].capitalize(),
only_int=True,
id_="table_max",
value=str(core_config['ui']['table']['max_displayed']))
select_dicons = self._gen_bool_component(label=self.i18n['core.config.download.icons'],
tooltip=self.i18n['core.config.download.icons.tip'],
id_="down_icons",
value=core_config['download']['icons'])
sub_comps = [FormComponent([select_hdpi, select_dicons, select_style, input_maxd])]
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]]:
core_config = config.read_config()
main_form = panel.components[0]
locale = main_form.get_component('form_general').get_component('locale').get_selected()
# general
general_form = general.components[0]
locale = general_form.get_component('locale').get_selected()
if locale != self.i18n.current_key:
core_config['locale'] = locale
core_config['disk_cache']['enabled'] = main_form.get_component('form_general').get_component('dcache').get_selected()
core_config['updates']['check_interval'] = main_form.get_component('form_general').get_component('updates_interval').get_int_value()
core_config['system']['notifications'] = general_form.get_component('sys_notify').get_selected()
core_config['suggestions']['enabled'] = general_form.get_component('sugs_enabled').get_selected()
download_icons = main_form.get_component('form_download').get_component('down_icons').get_selected()
core_config['download']['icons'] = download_icons
sugs_by_type = general_form.get_component('sugs_by_type').get_int_value()
core_config['suggestions']['by_type'] = sugs_by_type
download_mthreaded = main_form.get_component('form_download').get_component('down_mthread').get_selected()
# advanced
adv_form = advanced.components[0]
core_config['disk_cache']['enabled'] = adv_form.get_component('dcache').get_selected()
download_mthreaded = adv_form.get_component('down_mthread').get_selected()
core_config['download']['multithreaded'] = download_mthreaded
data_exp = main_form.get_component('form_memcache').get_component('data_exp').get_int_value()
single_dep_check = adv_form.get_component('dep_check').get_selected()
core_config['system']['single_dependency_checking'] = single_dep_check
data_exp = adv_form.get_component('data_exp').get_int_value()
core_config['memory_cache']['data_expiration'] = data_exp
icon_exp = main_form.get_component('form_memcache').get_component('icon_exp').get_int_value()
icon_exp = adv_form.get_component('icon_exp').get_int_value()
core_config['memory_cache']['icon_expiration'] = icon_exp
sugs_enabled = main_form.get_component('form_sugs').get_component('sugs_enabled').get_value()
core_config['suggestions']['enabled'] = sugs_enabled
# tray
tray_form = tray.components[0]
core_config['updates']['check_interval'] = tray_form.get_component('updates_interval').get_int_value()
def_icon_path = tray_form.get_component('def_icon').file_path
core_config['ui']['tray']['default_icon'] = def_icon_path if def_icon_path else None
up_icon_path = tray_form.get_component('up_icon').file_path
core_config['ui']['tray']['updates_icon'] = up_icon_path if up_icon_path else None
# ui
ui_form = ui.components[0]
core_config['download']['icons'] = ui_form.get_component('down_icons').get_selected()
core_config['ui']['hdpi'] = ui_form.get_component('hdpi').get_selected()
core_config['ui']['table']['max_displayed'] = ui_form.get_component('table_max').get_int_value()
style = ui_form.get_component('style').get_selected()
cur_style = core_config['ui']['style'] if core_config['ui']['style'] else QApplication.instance().style().objectName().lower()
if style != cur_style:
core_config['ui']['style'] = style
try:
config.save(core_config)
@@ -517,7 +596,11 @@ class GenericSoftwareManager(SoftwareManager):
def get_settings(self) -> ViewComponent:
tabs = list()
tabs.append(self._gen_settings_panel())
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))
for man in self.managers:
if self._can_work(man):
@@ -534,7 +617,10 @@ class GenericSoftwareManager(SoftwareManager):
saved, warnings = True, []
success, errors = self._save_settings(component.get_tab('core').content)
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)
if not success:
saved = False

View File

@@ -1,3 +1,4 @@
import os
from pathlib import Path
from typing import Tuple
@@ -434,6 +435,9 @@ class FormQt(QGroupBox):
chooser = QLineEdit()
chooser.setReadOnly(True)
if c.file_path:
chooser.setText(c.file_path)
chooser.setPlaceholderText(self.i18n['view.components.file_chooser.placeholder'])
def open_chooser(e):
@@ -444,7 +448,12 @@ class FormQt(QGroupBox):
else:
exts = '{}} (*);;'.format(self.i18n['all_files'].capitalize())
file_path, _ = QFileDialog.getOpenFileName(self, self.i18n['file_chooser.title'], str(Path.home()), exts, options=options)
if c.file_path and os.path.isfile(c.file_path):
cur_path = c.file_path
else:
cur_path = str(Path.home())
file_path, _ = QFileDialog.getOpenFileName(self, self.i18n['file_chooser.title'], cur_path, exts, options=options)
if file_path:
c.file_path = file_path
@@ -457,7 +466,8 @@ class FormQt(QGroupBox):
chooser.mousePressEvent = open_chooser
return QLabel(c.label if c.label else ''), chooser
label = self._new_label(c)
return label, chooser
class TabGroupQt(QTabWidget):
@@ -465,6 +475,7 @@ class TabGroupQt(QTabWidget):
def __init__(self, model: TabGroupComponent, i18n: I18n, parent: QWidget = None):
super(TabGroupQt, self).__init__(parent=parent)
self.model = model
self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
self.setTabPosition(QTabWidget.North)
for c in model.tabs:

View File

@@ -1,6 +1,7 @@
from io import StringIO
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QToolBar, QSizePolicy, QToolButton, QPushButton
from PyQt5.QtCore import QSize
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QToolBar, QSizePolicy, QPushButton
from bauh.api.abstract.controller import SoftwareManager
from bauh.api.abstract.view import MessageType
@@ -11,20 +12,22 @@ from bauh.view.util.translation import I18n
class SettingsWindow(QWidget):
def __init__(self, manager: SoftwareManager, i18n: I18n, parent: QWidget = None):
def __init__(self, manager: SoftwareManager, i18n: I18n, screen_size: QSize, parent: QWidget = None):
super(SettingsWindow, self).__init__(parent=parent)
self.setWindowTitle(i18n['settings'].capitalize())
self.setLayout(QVBoxLayout())
self.manager = manager
self.i18n = i18n
self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
self.settings_model = self.manager.get_settings()
self.layout().addWidget(to_widget(self.settings_model, i18n))
tab_group = to_widget(self.settings_model, i18n)
tab_group.setMinimumWidth(int(screen_size.width() / 3))
self.layout().addWidget(tab_group)
action_bar = QToolBar()
action_bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
action_bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
bt_close = QPushButton()
bt_close.setText(self.i18n['close'].capitalize())

View File

@@ -1166,7 +1166,7 @@ class ManageWindow(QWidget):
gem_panel.show()
def show_settings_window(self):
self.settings_window = SettingsWindow(self.manager, self.i18n)
self.settings_window = SettingsWindow(self.manager, self.i18n, self.screen_size)
self.settings_window.setMinimumWidth(int(self.screen_size.width() / 4))
self.settings_window.resize(self.size())
self.settings_window.adjustSize()

View File

@@ -221,23 +221,36 @@ message.file.not_exist.body=El fitxer {} sembla no existir
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.ui=Interface
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
core.config.updates.interval=Updates interval
core.config.updates.interval.tip=Defines the time interval in which the update-checking for the installed applications will happen ( in SECONDS )
core.config.downloads=downloads
core.config.download.icons=Icons
core.config.download.icons=Download icons
core.config.download.icons.tip=If the application icons should be downloaded and displayed on the table
core.config.download.multithreaded=Parallelism
core.config.download.multithreaded.tip=Whether applications, packages and files should be downloaded with a tool that works with parallelism / multi-thread (faster). At the moment only the aria2 application is supported
core.config.download.multithreaded=Multithreaded download
core.config.download.multithreaded.tip=Whether applications, packages and files should be downloaded with a tool that works with threads ( faster ). At the moment this setting will only work if the aria2 package is installed
core.config.mem_cache=Memory storage
core.config.mem_cache.data_exp=Data expiration
core.config.mem_cache.data_exp.tip=Defines the in-memory data lifetime ( in SECONDS )
core.config.suggestions=Suggestions
core.config.suggestions.activated=Activated
core.config.suggestions.activated.tip=If {app} can suggest applications to install
core.config.suggestions.activated=Suggestions
core.config.suggestions.activated.tip=If new applications can be suggested for installation
core.config.system.notifications=Notifications
core.config.system.notifications.tip=If notifications should be displayed when an action is finished or there are updates
core.config.ui.hdpi=HDPI
core.config.ui.hdpi.tip=If the improvements related to HDPI resolutions should be activated
core.config.ui.max_displayed=Applications displayed
core.config.ui.max_displayed.tip=Maximum number of applications displayed on the table
core.config.ui.tray.default_icon=Default icon
core.config.ui.tray.updates_icon=Update icon
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
locale.en=anglès
locale.es=castellà
locale.pt=portuguès

View File

@@ -176,23 +176,36 @@ development=Entwicklung
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.ui=Interface
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
core.config.updates.interval=Updates interval
core.config.updates.interval.tip=Defines the time interval in which the update-checking for the installed applications will happen ( in SECONDS )
core.config.downloads=downloads
core.config.download.icons=Icons
core.config.download.icons=Download icons
core.config.download.icons.tip=If the application icons should be downloaded and displayed on the table
core.config.download.multithreaded=Parallelism
core.config.download.multithreaded.tip=Whether applications, packages and files should be downloaded with a tool that works with parallelism / multi-thread (faster). At the moment only the aria2 application is supported
core.config.download.multithreaded=Multithreaded download
core.config.download.multithreaded.tip=Whether applications, packages and files should be downloaded with a tool that works with threads ( faster ). At the moment this setting will only work if the aria2 package is installed
core.config.mem_cache=Memory storage
core.config.mem_cache.data_exp=Data expiration
core.config.mem_cache.data_exp.tip=Defines the in-memory data lifetime ( in SECONDS )
core.config.suggestions=Suggestions
core.config.suggestions.activated=Activated
core.config.suggestions.activated.tip=If {app} can suggest applications to install
core.config.suggestions.activated=Suggestions
core.config.suggestions.activated.tip=If new applications can be suggested for installation
core.config.system.notifications=Notifications
core.config.system.notifications.tip=If notifications should be displayed when an action is finished or there are updates
core.config.ui.hdpi=HDPI
core.config.ui.hdpi.tip=If the improvements related to HDPI resolutions should be activated
core.config.ui.max_displayed=Applications displayed
core.config.ui.max_displayed.tip=Maximum number of applications displayed on the table
core.config.ui.tray.default_icon=Default icon
core.config.ui.tray.updates_icon=Update icon
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
locale.en=englisch
locale.es=spanisch
locale.pt=portugiesisch

View File

@@ -180,24 +180,40 @@ development=development
icon_button.tooltip.disabled=This action is unavailable
user=user
example.short=e.g
core.config.tab_label=general
core.config.tab.advanced=Advanced
core.config.tab.general=General
core.config.tab.ui=Interface
core.config.tab.tray=Tray
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
core.config.updates.interval=Updates interval
core.config.updates.interval.tip=Defines the time interval in which the update-checking for the installed applications will happen ( in SECONDS )
core.config.download.icons=Icons
core.config.download.icons=Download icons
core.config.download.icons.tip=If the application icons should be downloaded and displayed on the table
core.config.download.multithreaded=Parallelism
core.config.download.multithreaded.tip=Whether applications, packages and files should be downloaded with a tool that works with parallelism / multi-thread ( faster ). At the moment only the aria2 application is supported
core.config.download.multithreaded=Multithreaded download
core.config.download.multithreaded.tip=Whether applications, packages and files should be downloaded with a tool that works with threads ( faster ). At the moment this setting will only work if the aria2 package is installed
core.config.mem_cache=Memory storage
core.config.mem_cache.data_exp=Data expiration
core.config.mem_cache.data_exp.tip=Defines the in-memory data lifetime ( in SECONDS )
core.config.mem_cache.icon_exp=Icons expiration
core.config.mem_cache.icon_exp.tip=Defines the in-memory icons lifetime ( in SECONDS )
core.config.suggestions=Suggestions
core.config.suggestions.activated=Activated
core.config.suggestions.activated.tip=If {app} can suggest applications to install
core.config.suggestions.activated=Suggestions
core.config.suggestions.activated.tip=If new applications can be suggested for installation
core.config.system.notifications=Notifications
core.config.system.notifications.tip=If notifications should be displayed when an action is finished or there are updates
core.config.ui.hdpi=HDPI
core.config.ui.hdpi.tip=If the improvements related to HDPI resolutions should be activated
core.config.ui.max_displayed=Applications displayed
core.config.ui.max_displayed.tip=Maximum number of applications displayed on the table
core.config.ui.tray.default_icon=Default icon
core.config.ui.tray.default_icon.tip=The default icon for {app} displayed on the tray
core.config.ui.tray.updates_icon=Update icon
core.config.ui.tray.updates_icon.tip=The displayed icon when there are updates available
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
locale.en=english
locale.es=spanish
locale.pt=portuguese

View File

@@ -220,25 +220,41 @@ message.file.not_exist.body=El archivo {} parece no existir
icon_button.tooltip.disabled=This action is unavailable
user=usuario
example.short=p.ej
core.config.tab_label=general
core.config.tab.advanced=Avanzadas
core.config.tab.general=Generales
core.config.tab.ui=Interfaz
core.config.tab.tray=Bandeja
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
core.config.updates.interval=Intervalo de actualizaciones
core.config.updates.interval.tip=Define el intervalo de tiempo en el que se realizará la verificación de actualizaciones para las aplicaciones instaladas ( en SEGUNDOS )
core.config.downloads=downloads
core.config.download.icons=Iconos
core.config.download.icons=Descargar iconos
core.config.download.icons.tip=Si los íconos de las aplicaciones se deben descargar y mostrar en la tabla
core.config.download.multithreaded=Paralelismo
core.config.download.multithreaded.tip=Si las aplicaciones, paquetes y archivos deben descargarse con una herramienta que funcione con paralelismo / multi-thread ( más rápido ). Por el momento solo se admite la aplicación aria2
core.config.download.multithreaded=Descarga segmentada
core.config.download.multithreaded.tip=Si las aplicaciones, paquetes y archivos deben descargarse con una herramienta que usa segmentación / threads ( más rápido ). Por el momento, esta configuración solo funcionará si el paquete aria2 esté instalado
core.config.mem_cache=Almacenamiento de memoria
core.config.mem_cache.data_exp=Expiración de datos
core.config.mem_cache.data_exp.tip=Define la vida útil de los datos en memoria ( en SEGUNDOS )
core.config.mem_cache.icon_exp=Expiración de íconos
core.config.mem_cache.icon_exp.tip=Define la vida útil de los íconos en memoria ( en SEGUNDOS )
core.config.suggestions=Sugerencias
core.config.suggestions.activated=Activadas
core.config.suggestions.activated.tip=Si {app} puede sugerir aplicaciones para instalar
core.config.suggestions.activated=Suggestions
core.config.suggestions.activated.tip=Si se pueden sugerir nuevas aplicaciones para instalación
core.config.system.notifications=Notificaciones
core.config.system.notifications.tip=Si notificaciones deben mostrarse cuando finaliza una acción o hay actualizaciones
core.config.ui.hdpi=HDPI
core.config.ui.hdpi.tip=Si se deben activar las mejoras relacionadas con las resoluciones HDPI
core.config.ui.max_displayed=Aplicaciones mostradas
core.config.ui.max_displayed.tip=Número máximo de aplicaciones que se muestran en la tabla
core.config.ui.tray.default_icon=Ícono predeterminado
core.config.ui.tray.default_icon.tip=El icono predeterminado para {app} que se muestra en la bandeja
core.config.ui.tray.updates_icon=Icono de actualización
core.config.ui.tray.updates_icon.tip=El icono que se muestra cuando hay actualizaciones disponibles
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
locale.es=inglés
locale.es=español
locale.pt=portugués

View File

@@ -177,23 +177,36 @@ development=sviluppo
icon_button.tooltip.disabled=Questa azione non è disponibile
user=utente
example.short=e.g
core.config.tab.advanced=Advanced
core.config.tab_label=general
core.config.tab.ui=Interface
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
core.config.updates.interval=Updates interval
core.config.updates.interval.tip=Defines the time interval in which the update-checking for the installed applications will happen ( in SECONDS )
core.config.downloads=downloads
core.config.download.icons=Icons
core.config.download.icons=Download icons
core.config.download.icons.tip=If the application icons should be downloaded and displayed on the table
core.config.download.multithreaded=Parallelism
core.config.download.multithreaded.tip=Whether applications, packages and files should be downloaded with a tool that works with parallelism / multi-thread (faster). At the moment only the aria2 application is supported
core.config.download.multithreaded=Multithreaded download
core.config.download.multithreaded.tip=Whether applications, packages and files should be downloaded with a tool that works with threads ( faster ). At the moment this setting will only work if the aria2 package is installed
core.config.mem_cache=Memory storage
core.config.mem_cache.data_exp=Data expiration
core.config.mem_cache.data_exp.tip=Defines the in-memory data lifetime ( in SECONDS )
core.config.suggestions=Suggestions
core.config.suggestions.activated=Activated
core.config.suggestions.activated.tip=If {app} can suggest applications to install
core.config.suggestions.activated=Suggestions
core.config.suggestions.activated.tip=If new applications can be suggested for installation
core.config.system.notifications=Notifications
core.config.system.notifications.tip=If notifications should be displayed when an action is finished or there are updates
core.config.ui.hdpi=HDPI
core.config.ui.hdpi.tip=If the improvements related to HDPI resolutions should be activated
core.config.ui.max_displayed=Applications displayed
core.config.ui.max_displayed.tip=Maximum number of applications displayed on the table
core.config.ui.tray.default_icon=Default icon
core.config.ui.tray.updates_icon=Update icon
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
locale.en=inglese
locale.es=spagnolo
locale.pt=portoghese

View File

@@ -223,25 +223,41 @@ message.file.not_exist.body=O arquivo {} parece não existir
icon_button.tooltip.disabled=Esta ação está indisponível
user=usuário
example.short=ex
core.config.tab_label=geral
core.config.tab.advanced=Avançadas
core.config.tab.general=Gerais
core.config.tab.ui=Interface
core.config.tab.tray=Bandeja
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
core.config.updates.interval=Intervalo de atualizações
core.config.updates.interval.tip=Define o intervalo de tempo em que ocorrerá a verificação de atualizações para os aplicativos instalados ( em SEGUNDOS )
core.config.downloads=downloads
core.config.download.icons=Ícones
core.config.download.icons=Baixar ícones
core.config.download.icons.tip=Se os ícones dos aplicativos devem ser baixados e exibidos na tabela
core.config.download.multithreaded=Paralelismo
core.config.download.multithreaded.tip=Se os aplicativos, pacotes e arquivos devem ser baixados através de uma ferramenta que trabalha com paralelismo / multi-thread ( mais rápido ). No momento somente o aplicativo aria2 é suportado.
core.config.download.multithreaded=Download segmentado
core.config.download.multithreaded.tip=Se os aplicativos, pacotes e arquivos devem ser baixados através de uma ferramenta que trabalha com segmentação / threads ( mais rápido ). No momento esta propriedade somente funcionará se o pacote aria2 estiver instalado.
core.config.mem_cache=Armazenamento em memória
core.config.mem_cache.data_exp=Expiração dos dados
core.config.mem_cache.data_exp.tip=Define o tempo de vida dos dados em memória ( em SEGUNDOS )
core.config.mem_cache.icon_exp=Expiração de ícones
core.config.mem_cache.icon_exp.tip=Define o tempo de vida dos ícones em memória ( em SEGUNDOS )
core.config.suggestions=Sugestões
core.config.suggestions.activated=Ativadas
core.config.suggestions.activated.tip=Se o {app} pode sugerir aplicativos para a instalação
core.config.suggestions.activated=Sugestões
core.config.suggestions.activated.tip=Se novos aplicativos podem ser sugeridos para instalação
core.config.system.notifications=Notificações
core.config.system.notifications.tip=Se notificações devem ser exibidas quando uma ação é finalizada ou existem atualizações
core.config.ui.hdpi=HDPI
core.config.ui.hdpi.tip=Se as melhorias para resoluções HDPI devem ser ativadas
core.config.ui.max_displayed=Aplicativos exibidos
core.config.ui.max_displayed.tip=Número máximo de aplicativos exibidos na tabela
core.config.ui.tray.default_icon=Ícone padrão
core.config.ui.tray.default_icon.tip=O ícone padrão exibido na bandeja
core.config.ui.tray.updates_icon=Ícone de atualização
core.config.ui.tray.updates_icon.tip=O ícone exibido quando há atualizações disponíveis
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
locale.en=inglês
locale.es=espanhol
locale.pt=português