mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-06 22:54:16 +02:00
[ui][settings] more improvements and settings
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user