mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-01-18 05:23:07 +01:00
Merge remote-tracking branch 'origin/experimental' into experimental
This commit is contained in:
BIN
app/ui/lang/es/LC_MESSAGES/demon-editor.mo
Normal file
BIN
app/ui/lang/es/LC_MESSAGES/demon-editor.mo
Normal file
Binary file not shown.
Binary file not shown.
@@ -34,29 +34,20 @@ class Application(Gtk.Application):
|
||||
_TV_TYPES = ("TV", "TV (HD)", "TV (UHD)", "TV (H264)")
|
||||
|
||||
_SERVICE_LIST_NAME = "services_list_store"
|
||||
|
||||
_FAV_LIST_NAME = "fav_list_store"
|
||||
|
||||
_BOUQUETS_LIST_NAME = "bouquets_tree_store"
|
||||
|
||||
# dynamically active elements depending on the selected view
|
||||
# Dynamically active elements depending on the selected view
|
||||
_SERVICE_ELEMENTS = ("services_popup_menu",)
|
||||
|
||||
_BOUQUET_ELEMENTS = ("edit_tool_button", "new_tool_button", "bouquets_new_popup_item", "bouquets_edit_popup_item",
|
||||
"bouquets_cut_popup_item", "bouquets_copy_popup_item", "bouquets_paste_popup_item")
|
||||
|
||||
_COMMONS_ELEMENTS = ("edit_tool_button", "bouquets_remove_popup_item", "fav_remove_popup_item")
|
||||
|
||||
_FAV_ELEMENTS = ("fav_cut_popup_item", "fav_paste_popup_item", "fav_locate_popup_item", "fav_iptv_popup_item",
|
||||
"fav_insert_marker_popup_item", "fav_edit_sub_menu_popup_item", "fav_edit_popup_item",
|
||||
"fav_picon_popup_item", "fav_copy_popup_item")
|
||||
|
||||
_BOUQUET_ELEMENTS = ("edit_tool_button", "new_tool_button", "bouquets_new_popup_item", "bouquets_edit_popup_item",
|
||||
"bouquets_cut_popup_item", "bouquets_copy_popup_item", "bouquets_paste_popup_item")
|
||||
_COMMONS_ELEMENTS = ("edit_tool_button", "bouquets_remove_popup_item", "fav_remove_popup_item")
|
||||
_FAV_ENIGMA_ELEMENTS = ("fav_insert_marker_popup_item",)
|
||||
|
||||
_FAV_IPTV_ELEMENTS = ("fav_iptv_popup_item",)
|
||||
|
||||
_LOCK_HIDE_ELEMENTS = ("locked_tool_button", "hide_tool_button")
|
||||
|
||||
_DYNAMIC_ELEMENTS = ("services_popup_menu", "new_tool_button", "edit_tool_button", "locked_tool_button",
|
||||
"fav_cut_popup_item", "fav_paste_popup_item", "bouquets_new_popup_item", "hide_tool_button",
|
||||
"bouquets_remove_popup_item", "fav_remove_popup_item", "bouquets_edit_popup_item",
|
||||
@@ -64,6 +55,10 @@ class Application(Gtk.Application):
|
||||
"fav_locate_popup_item", "fav_picon_popup_item", "fav_iptv_popup_item", "fav_copy_popup_item",
|
||||
"bouquets_cut_popup_item", "bouquets_copy_popup_item", "bouquets_paste_popup_item")
|
||||
|
||||
# Colors
|
||||
_NEW_COLOR = "#ff5733" # Color for new services in the main list
|
||||
_EXTRA_COLOR = "#33a8ff" # Color for services with a extra name for the bouquet
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@@ -160,6 +155,7 @@ class Application(Gtk.Application):
|
||||
self._picons = {}
|
||||
self._blacklist = set()
|
||||
self._current_bq_name = None
|
||||
self._bq_selected = "" # Current selected bouquet
|
||||
# Current satellite positions in the services list
|
||||
self._sat_positions = []
|
||||
# Player
|
||||
@@ -220,6 +216,11 @@ class Application(Gtk.Application):
|
||||
# Force ctrl press event for view. Multiple selections in lists only with Space key(as in file managers)!!!
|
||||
self._services_view.connect("key-press-event", self.force_ctrl)
|
||||
self._fav_view.connect("key-press-event", self.force_ctrl)
|
||||
# Renders
|
||||
self._service_render = builder.get_object("service_cellrenderertext")
|
||||
self._fav_service_render = builder.get_object("fav_service_cellrenderertext")
|
||||
self._service_column = builder.get_object("service_column")
|
||||
self._fav_service_column = builder.get_object("fav_service_column")
|
||||
# Clipboard
|
||||
self._clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
|
||||
# Wait dialog
|
||||
@@ -242,6 +243,7 @@ class Application(Gtk.Application):
|
||||
|
||||
def do_startup(self):
|
||||
Gtk.Application.do_startup(self)
|
||||
self.init_service_renders()
|
||||
self.init_http_api()
|
||||
|
||||
def do_activate(self):
|
||||
@@ -281,6 +283,29 @@ class Application(Gtk.Application):
|
||||
""" Function for force ctrl press event for view """
|
||||
event.state |= Gdk.ModifierType.CONTROL_MASK
|
||||
|
||||
def init_service_renders(self):
|
||||
profile = Profile(self._profile)
|
||||
func = self.service_data_function if profile is Profile.ENIGMA_2 else None
|
||||
fav_func = self.fav_service_data_function if profile is Profile.ENIGMA_2 else None
|
||||
self._service_column.set_cell_data_func(self._service_render, func, None)
|
||||
self._fav_service_column.set_cell_data_func(self._fav_service_render, fav_func, None)
|
||||
|
||||
def service_data_function(self, column, render: Gtk.CellRendererText, model, itr, data):
|
||||
""" Data function for the service column of main list """
|
||||
render.set_property("foreground-set", None)
|
||||
cas_flags = model.get_value(itr, 0)
|
||||
if cas_flags:
|
||||
f_flags = list(filter(lambda x: x.startswith("f:"), cas_flags.split(",")))
|
||||
if f_flags and Flag.is_new(int(f_flags[0][2:])):
|
||||
render.set_property("foreground", self._NEW_COLOR)
|
||||
|
||||
def fav_service_data_function(self, column, render, model, itr, data):
|
||||
""" Data function for the service column of FAV list """
|
||||
fav_id = model.get_value(itr, 7)
|
||||
bq = self._extra_bouquets.get(self._bq_selected, None)
|
||||
has_id = bq.get(fav_id, None) if bq else bq
|
||||
render.set_property("foreground", self._EXTRA_COLOR) if has_id else render.set_property("foreground-set", None)
|
||||
|
||||
@run_idle
|
||||
def on_close_app(self, *args):
|
||||
self.quit()
|
||||
@@ -427,9 +452,8 @@ class Application(Gtk.Application):
|
||||
|
||||
def remove_favs(self, itrs, model):
|
||||
""" Deleting bouquet services """
|
||||
bq_selected = self.get_selected_bouquet()
|
||||
if bq_selected:
|
||||
fav_bouquet = self._bouquets.get(bq_selected, None)
|
||||
if self._bq_selected:
|
||||
fav_bouquet = self._bouquets.get(self._bq_selected, None)
|
||||
if fav_bouquet:
|
||||
for itr in itrs:
|
||||
del fav_bouquet[int(model.get_path(itr)[0])]
|
||||
@@ -560,9 +584,8 @@ class Application(Gtk.Application):
|
||||
|
||||
def update_bouquet_list(self):
|
||||
""" Update bouquet after move items """
|
||||
bq_selected = self.get_selected_bouquet()
|
||||
if bq_selected:
|
||||
fav_bouquet = self._bouquets[bq_selected]
|
||||
if self._bq_selected:
|
||||
fav_bouquet = self._bouquets[self._bq_selected]
|
||||
fav_bouquet.clear()
|
||||
for row in self._fav_model:
|
||||
fav_bouquet.append(row[7])
|
||||
@@ -902,6 +925,12 @@ class Application(Gtk.Application):
|
||||
self._bq_name_label.set_text(self._current_bq_name if self._current_bq_name else "")
|
||||
self._fav_model.clear()
|
||||
|
||||
if self._current_bq_name:
|
||||
ch_row = model[model.get_iter(path)][:]
|
||||
self._bq_selected = "{}:{}".format(ch_row[0], ch_row[3])
|
||||
else:
|
||||
self._bq_selected = ""
|
||||
|
||||
if self._bouquets_view.row_expanded(path):
|
||||
self._bouquets_view.collapse_row(path)
|
||||
else:
|
||||
@@ -935,30 +964,15 @@ class Application(Gtk.Application):
|
||||
|
||||
def check_bouquet_selection(self):
|
||||
""" checks and returns bouquet if selected """
|
||||
bq_selected = self.get_selected_bouquet()
|
||||
|
||||
if not bq_selected:
|
||||
if not self._bq_selected:
|
||||
show_dialog(DialogType.ERROR, self._main_window, "Error. No bouquet is selected!")
|
||||
return
|
||||
|
||||
if Profile(self._profile) is Profile.NEUTRINO_MP and bq_selected.endswith(BqType.WEBTV.value):
|
||||
if Profile(self._profile) is Profile.NEUTRINO_MP and self._bq_selected.endswith(BqType.WEBTV.value):
|
||||
show_dialog(DialogType.ERROR, self._main_window, "Operation not allowed in this context!")
|
||||
return
|
||||
|
||||
return bq_selected
|
||||
|
||||
def get_selected_bouquet(self):
|
||||
""" returns 'name:type' of last selected bouquet or False """
|
||||
if self._current_bq_name is None:
|
||||
return False
|
||||
|
||||
for row in self._bouquets_model:
|
||||
chs_rows = row.iterchildren()
|
||||
for ch_row in chs_rows:
|
||||
name = ch_row[0]
|
||||
if name == self._current_bq_name:
|
||||
return "{}:{}".format(name, ch_row[3])
|
||||
return False
|
||||
return self._bq_selected
|
||||
|
||||
@run_idle
|
||||
def update_bouquets_type(self):
|
||||
@@ -992,6 +1006,7 @@ class Application(Gtk.Application):
|
||||
self.update_services_counts()
|
||||
|
||||
self.update_profile_label()
|
||||
self.init_service_renders()
|
||||
self.init_http_api()
|
||||
|
||||
def on_tree_view_key_press(self, view, event):
|
||||
@@ -1092,21 +1107,19 @@ class Application(Gtk.Application):
|
||||
self._tool_elements[elem].set_sensitive(not_empty)
|
||||
else:
|
||||
is_service = model_name == self._SERVICE_LIST_NAME
|
||||
bq_selected = False
|
||||
if model_name == self._FAV_LIST_NAME:
|
||||
bq_selected = self.get_selected_bouquet()
|
||||
if profile is Profile.NEUTRINO_MP and bq_selected:
|
||||
name, bq_type = bq_selected.split(":")
|
||||
bq_selected = BqType(bq_type) is BqType.WEBTV
|
||||
if profile is Profile.NEUTRINO_MP and self._bq_selected:
|
||||
name, bq_type = self._bq_selected.split(":")
|
||||
self._bq_selected = BqType(bq_type) is BqType.WEBTV
|
||||
|
||||
for elem in self._FAV_ELEMENTS:
|
||||
if elem in ("paste_tool_button", "fav_paste_popup_item"):
|
||||
self._tool_elements[elem].set_sensitive(not is_service and self._rows_buffer)
|
||||
elif elem in self._FAV_ENIGMA_ELEMENTS:
|
||||
if profile is Profile.ENIGMA_2:
|
||||
self._tool_elements[elem].set_sensitive(bq_selected and not is_service)
|
||||
self._tool_elements[elem].set_sensitive(self._bq_selected and not is_service)
|
||||
elif elem in self._FAV_IPTV_ELEMENTS:
|
||||
self._tool_elements[elem].set_sensitive(bq_selected and not is_service)
|
||||
self._tool_elements[elem].set_sensitive(self._bq_selected and not is_service)
|
||||
else:
|
||||
self._tool_elements[elem].set_sensitive(not_empty and not is_service)
|
||||
for elem in self._SERVICE_ELEMENTS:
|
||||
@@ -1127,10 +1140,10 @@ class Application(Gtk.Application):
|
||||
|
||||
def set_service_flags(self, flag):
|
||||
profile = Profile(self._profile)
|
||||
bq_selected = self.get_selected_bouquet()
|
||||
|
||||
if profile is Profile.ENIGMA_2:
|
||||
set_flags(flag, self._services_view, self._fav_view, self._services, self._blacklist)
|
||||
elif profile is Profile.NEUTRINO_MP and bq_selected:
|
||||
elif profile is Profile.NEUTRINO_MP and self._bq_selected:
|
||||
model, paths = self._bouquets_view.get_selection().get_selected_rows()
|
||||
itr = model.get_iter(paths[0])
|
||||
value = model.get_value(itr, 1 if flag is Flag.LOCK else 2)
|
||||
@@ -1170,7 +1183,7 @@ class Application(Gtk.Application):
|
||||
|
||||
def on_insert_marker(self, view):
|
||||
""" Inserts marker into bouquet services list. """
|
||||
insert_marker(view, self._bouquets, self.get_selected_bouquet(), self._services, self._main_window)
|
||||
insert_marker(view, self._bouquets, self._bq_selected, self._services, self._main_window)
|
||||
self.update_fav_num_column(self._fav_model)
|
||||
|
||||
def on_fav_press(self, menu, event):
|
||||
@@ -1186,7 +1199,7 @@ class Application(Gtk.Application):
|
||||
response = IptvDialog(self._main_window,
|
||||
self._fav_view,
|
||||
self._services,
|
||||
self._bouquets.get(self.get_selected_bouquet(), None),
|
||||
self._bouquets.get(self._bq_selected, None),
|
||||
Profile(self._profile),
|
||||
Action.ADD).show()
|
||||
if response != Gtk.ResponseType.CANCEL:
|
||||
@@ -1204,11 +1217,10 @@ class Application(Gtk.Application):
|
||||
show_dialog(DialogType.ERROR, self._main_window, "This list does not contains IPTV streams!")
|
||||
return
|
||||
|
||||
bq_selected = self.get_selected_bouquet()
|
||||
if not bq_selected:
|
||||
if not self._bq_selected:
|
||||
return
|
||||
|
||||
bouquet = self._bouquets.get(bq_selected, [])
|
||||
bouquet = self._bouquets.get(self._bq_selected, [])
|
||||
IptvListConfigurationDialog(self._main_window, self._services, iptv_rows, bouquet, profile).show()
|
||||
|
||||
@run_idle
|
||||
@@ -1218,14 +1230,13 @@ class Application(Gtk.Application):
|
||||
show_dialog(DialogType.ERROR, self._main_window, "This list does not contains IPTV streams!")
|
||||
return
|
||||
|
||||
bq_selected = self.get_selected_bouquet()
|
||||
if not bq_selected:
|
||||
if not self._bq_selected:
|
||||
return
|
||||
|
||||
if show_dialog(DialogType.QUESTION, self._main_window) == Gtk.ResponseType.CANCEL:
|
||||
return
|
||||
|
||||
fav_bqt = self._bouquets.get(bq_selected, None)
|
||||
fav_bqt = self._bouquets.get(self._bq_selected, None)
|
||||
prf = Profile(self._profile)
|
||||
response = SearchUnavailableDialog(self._main_window, self._fav_model, fav_bqt, iptv_rows, prf).show()
|
||||
if response:
|
||||
@@ -1242,14 +1253,14 @@ class Application(Gtk.Application):
|
||||
return
|
||||
|
||||
channels = parse_m3u(response, Profile(self._profile))
|
||||
bq_selected = self.get_selected_bouquet()
|
||||
if channels and bq_selected:
|
||||
bq_services = self._bouquets.get(bq_selected)
|
||||
|
||||
if channels and self._bq_selected:
|
||||
bq_services = self._bouquets.get(self._bq_selected)
|
||||
self._fav_model.clear()
|
||||
for ch in channels:
|
||||
self._services[ch.fav_id] = ch
|
||||
bq_services.append(ch.fav_id)
|
||||
next(self.update_bouquet_services(self._fav_model, None, bq_selected), False)
|
||||
next(self.update_bouquet_services(self._fav_model, None, self._bq_selected), False)
|
||||
|
||||
# ***************** Player *********************#
|
||||
|
||||
@@ -1553,7 +1564,7 @@ class Application(Gtk.Application):
|
||||
return IptvDialog(self._main_window,
|
||||
self._fav_view,
|
||||
self._services,
|
||||
self._bouquets.get(self.get_selected_bouquet(), None),
|
||||
self._bouquets.get(self._bq_selected, None),
|
||||
Profile(self._profile),
|
||||
Action.EDIT).show()
|
||||
self.on_locate_in_services(view)
|
||||
@@ -1578,8 +1589,7 @@ class Application(Gtk.Application):
|
||||
|
||||
def on_bouquets_edit(self, view):
|
||||
""" Rename bouquets """
|
||||
bq_selected = self.get_selected_bouquet()
|
||||
if not bq_selected:
|
||||
if not self._bq_selected:
|
||||
show_dialog(DialogType.ERROR, self._main_window, "This item is not allowed to edit!")
|
||||
return
|
||||
|
||||
@@ -1623,18 +1633,17 @@ class Application(Gtk.Application):
|
||||
return
|
||||
|
||||
srv = self._services.get(fav_id, None)
|
||||
selected_bq = self.get_selected_bouquet()
|
||||
ex_bq = self._extra_bouquets.get(selected_bq, None)
|
||||
ex_bq = self._extra_bouquets.get(self._bq_selected, None)
|
||||
|
||||
if srv.service == response and ex_bq:
|
||||
ex_bq.pop(fav_id, None)
|
||||
if not ex_bq:
|
||||
self._extra_bouquets.pop(selected_bq, None)
|
||||
self._extra_bouquets.pop(self._bq_selected, None)
|
||||
else:
|
||||
if ex_bq:
|
||||
ex_bq[fav_id] = response
|
||||
else:
|
||||
self._extra_bouquets[selected_bq] = {fav_id: response}
|
||||
self._extra_bouquets[self._bq_selected] = {fav_id: response}
|
||||
|
||||
model.set_value(model.get_iter(paths), 2, response)
|
||||
|
||||
@@ -1646,8 +1655,7 @@ class Application(Gtk.Application):
|
||||
model, paths = selection
|
||||
fav_id = model[paths][7]
|
||||
srv = self._services.get(fav_id, None)
|
||||
selected_bq = self.get_selected_bouquet()
|
||||
ex_bq = self._extra_bouquets.get(selected_bq, None)
|
||||
ex_bq = self._extra_bouquets.get(self._bq_selected, None)
|
||||
|
||||
if not ex_bq:
|
||||
show_dialog(DialogType.ERROR, self._main_window, "No changes required!")
|
||||
@@ -1657,7 +1665,7 @@ class Application(Gtk.Application):
|
||||
show_dialog(DialogType.ERROR, self._main_window, "No changes required!")
|
||||
return
|
||||
if not ex_bq:
|
||||
self._extra_bouquets.pop(selected_bq, None)
|
||||
self._extra_bouquets.pop(self._bq_selected, None)
|
||||
|
||||
model.set_value(model.get_iter(paths), 2, srv.service)
|
||||
|
||||
|
||||
BIN
deb/usr/share/locale/es/LC_MESSAGES/demon-editor.mo
Normal file
BIN
deb/usr/share/locale/es/LC_MESSAGES/demon-editor.mo
Normal file
Binary file not shown.
Binary file not shown.
571
po/es/demon-editor.po
Normal file
571
po/es/demon-editor.po
Normal file
@@ -0,0 +1,571 @@
|
||||
# Copyright (C) 2018 Frank Neirynck
|
||||
# This file is distributed under the MIT license.
|
||||
#
|
||||
#Frank Neirynck <frank@insink.be>, 2018.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Last-Translator: Frank Neirynck\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
msgid "translator-credits"
|
||||
msgstr "Frank Neirynck <frank@insink.be>"
|
||||
|
||||
# Main
|
||||
msgid "Service"
|
||||
msgstr "Servicio"
|
||||
|
||||
msgid "Package"
|
||||
msgstr "Paquete"
|
||||
|
||||
msgid "Type"
|
||||
msgstr "Tipo"
|
||||
|
||||
msgid "Picon"
|
||||
msgstr "Picon"
|
||||
|
||||
msgid "Freq"
|
||||
msgstr "Frec."
|
||||
|
||||
msgid "Rate"
|
||||
msgstr "Rate"
|
||||
|
||||
msgid "Pol"
|
||||
msgstr "Pol."
|
||||
|
||||
msgid "System"
|
||||
msgstr "Sistema"
|
||||
|
||||
msgid "Pos"
|
||||
msgstr "Pos."
|
||||
|
||||
msgid "Num"
|
||||
msgstr "Núm"
|
||||
|
||||
msgid "Current IP:"
|
||||
msgstr "IP actual:"
|
||||
|
||||
msgid "Assign"
|
||||
msgstr "Assignar"
|
||||
|
||||
msgid "Bouquet details"
|
||||
msgstr "Detailes Ramo"
|
||||
|
||||
msgid "Bouquets"
|
||||
msgstr "Ramos"
|
||||
|
||||
msgid "Copy"
|
||||
msgstr "Copiar"
|
||||
|
||||
msgid "Copy reference"
|
||||
msgstr "Copia de Referencia"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Descargar"
|
||||
|
||||
msgid "Edit"
|
||||
msgstr "Editar"
|
||||
|
||||
msgid "Edit "
|
||||
msgstr "Editar "
|
||||
|
||||
msgid "Edit mаrker text"
|
||||
msgstr "Editar testo del mаrcador"
|
||||
|
||||
msgid "FTP-transfer"
|
||||
msgstr "Transferencia-FTP"
|
||||
|
||||
msgid "Global search"
|
||||
msgstr "Búsqueda Global"
|
||||
|
||||
msgid "Hide"
|
||||
msgstr "Esconder"
|
||||
|
||||
msgid "Hide/Skip On/Off Ctrl + H"
|
||||
msgstr "Esconder/Saltar Encender/Apagar Ctrl + H"
|
||||
|
||||
msgid "Add IPTV or stream service"
|
||||
msgstr "Añadir servicio IPTV"
|
||||
|
||||
msgid "Import m3u"
|
||||
msgstr "Importar m3u"
|
||||
|
||||
msgid "Import m3u file"
|
||||
msgstr "Importar fichero m3u"
|
||||
|
||||
msgid "List configuration"
|
||||
msgstr "Lista configuración"
|
||||
|
||||
msgid "Rename for this bouquet"
|
||||
msgstr "Renombrar para este ramo"
|
||||
|
||||
msgid "Set default name"
|
||||
msgstr "Establecer nombre predeterminado"
|
||||
|
||||
msgid "Insert marker"
|
||||
msgstr "Inserter marcador"
|
||||
|
||||
msgid "Locate in services"
|
||||
msgstr "Buscar en servicios"
|
||||
|
||||
msgid "Locked"
|
||||
msgstr "Cerrado"
|
||||
|
||||
msgid "Move"
|
||||
msgstr "Mover"
|
||||
|
||||
msgid "New"
|
||||
msgstr "Nuevo"
|
||||
|
||||
msgid "New bouquet"
|
||||
msgstr "Ramo nuevo"
|
||||
|
||||
msgid "Create bouquet"
|
||||
msgstr "Crear ramo"
|
||||
|
||||
msgid "For current satellite"
|
||||
msgstr "Para el Satélite actual"
|
||||
|
||||
msgid "For current package"
|
||||
msgstr "Para el paquete actual"
|
||||
|
||||
msgid "For current type"
|
||||
msgstr "Para el tipo actual"
|
||||
|
||||
msgid "For each satellite"
|
||||
msgstr "Para cada Satélite"
|
||||
|
||||
msgid "For each package"
|
||||
msgstr "Para cada paquete"
|
||||
|
||||
msgid "For each type"
|
||||
msgstr "Para cada tipo"
|
||||
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
msgid "Parent lock On/Off Ctrl + L"
|
||||
msgstr "Bloqueo parentesco Encender/Apagar Ctrl + L"
|
||||
|
||||
msgid "Picons"
|
||||
msgstr "Picons"
|
||||
|
||||
msgid "Picons downloader"
|
||||
msgstr "Picons descargar"
|
||||
|
||||
msgid "Satellites downloader"
|
||||
msgstr "Satélites descargar"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Remover"
|
||||
|
||||
msgid "Remove all unavailable"
|
||||
msgstr "Remover toto lo indisponible"
|
||||
|
||||
msgid "Satellites editor"
|
||||
msgstr "Editor Satélites"
|
||||
|
||||
msgid "Save"
|
||||
msgstr "Guardar"
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
||||
msgid "Services"
|
||||
msgstr "Servicios"
|
||||
|
||||
msgid "Services filter"
|
||||
msgstr "Filtro servicios"
|
||||
|
||||
msgid "Settings"
|
||||
msgstr "Configuraciones"
|
||||
|
||||
msgid "Up"
|
||||
msgstr "Arriba"
|
||||
|
||||
msgid "Down"
|
||||
msgstr "Abajo"
|
||||
|
||||
msgid "Active profile:"
|
||||
msgstr "Perfil activo:"
|
||||
|
||||
msgid "All"
|
||||
msgstr "Todo"
|
||||
|
||||
msgid "Are you sure?"
|
||||
msgstr "Estás seguro?"
|
||||
|
||||
msgid "Current data path:"
|
||||
msgstr "Ruta de datos actual:"
|
||||
|
||||
msgid "Data:"
|
||||
msgstr "Datos:"
|
||||
|
||||
msgid "Enigma2 channel and satellites list editor for GNU/Linux"
|
||||
msgstr "Editor de Canales y Satélites Enigma2 para GNU/Linux"
|
||||
|
||||
msgid "Host:"
|
||||
msgstr "Anfitrión:"
|
||||
|
||||
msgid "Loading data..."
|
||||
msgstr "Cargar datos..."
|
||||
|
||||
msgid "Receive"
|
||||
msgstr "Recibir"
|
||||
|
||||
msgid "Receive files from receiver"
|
||||
msgstr "Recibir ficheros de su receptor"
|
||||
|
||||
msgid "Receiver IP:"
|
||||
msgstr "Receptor IP:"
|
||||
|
||||
msgid "Remove unused bouquets"
|
||||
msgstr "Remover ramos sin usar"
|
||||
|
||||
msgid "Reset profile"
|
||||
msgstr "Restablecer perfil"
|
||||
|
||||
msgid "Satellites"
|
||||
msgstr "Satélites"
|
||||
|
||||
msgid "Satellites.xml file:"
|
||||
msgstr "Fichero Satellites.xml:"
|
||||
|
||||
msgid "Selected"
|
||||
msgstr "Seleccionado"
|
||||
|
||||
msgid "Send"
|
||||
msgstr "Enviar"
|
||||
|
||||
msgid "Send files to receiver"
|
||||
msgstr "Enviar ficheros al receptor"
|
||||
|
||||
msgid "Services and Bouquets files:"
|
||||
msgstr "Ficheros de Servicios y ramos:"
|
||||
|
||||
msgid "User bouquet files:"
|
||||
msgstr "Importar ficheros de ramos:"
|
||||
|
||||
msgid "Extra:"
|
||||
msgstr "Extra:"
|
||||
|
||||
# Filter bar
|
||||
msgid "Only free"
|
||||
msgstr "Solamente gratis"
|
||||
|
||||
msgid "All positions"
|
||||
msgstr "Todas las posiciones"
|
||||
|
||||
msgid "All types"
|
||||
msgstr "Todas los tipos"
|
||||
|
||||
# Streams player
|
||||
msgid "Play"
|
||||
msgstr "Play"
|
||||
|
||||
msgid "Stop playback"
|
||||
msgstr "Detener la reproducción"
|
||||
|
||||
msgid "Previous stream in the list"
|
||||
msgstr "Secuencia anterior en la lista"
|
||||
|
||||
msgid "Next stream in the list"
|
||||
msgstr "Secuencia siguiente en la lista"
|
||||
|
||||
msgid "Toggle in fullscreen"
|
||||
msgstr "Cambiar a pantalla completa"
|
||||
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
# Picons dialog
|
||||
msgid "Load providers"
|
||||
msgstr "Cargar Proveedores"
|
||||
|
||||
msgid "Providers"
|
||||
msgstr "Proveedores"
|
||||
|
||||
msgid "Receive picons"
|
||||
msgstr "Recibir picons"
|
||||
|
||||
msgid "Picons name format:"
|
||||
msgstr "Picons formato nombres:"
|
||||
|
||||
msgid "Resize:"
|
||||
msgstr "Redimensionar:"
|
||||
|
||||
msgid "Current picons path:"
|
||||
msgstr "Ruta acual Picons:"
|
||||
|
||||
msgid "Receiver picons path:"
|
||||
msgstr "Ruta picons receptor:"
|
||||
|
||||
msgid "Picons download tool"
|
||||
msgstr "Picons herramiento de descarga"
|
||||
|
||||
msgid "Transfer to receiver"
|
||||
msgstr "Transferir al receptor"
|
||||
|
||||
msgid "Downloader"
|
||||
msgstr "Descargador"
|
||||
|
||||
msgid "Converter"
|
||||
msgstr "Convertidor"
|
||||
|
||||
msgid "Convert"
|
||||
msgstr "Convertir"
|
||||
|
||||
msgid "Path to save:"
|
||||
msgstr "Ruto para guardar:"
|
||||
|
||||
msgid "Path to Enigma2 picons:"
|
||||
msgstr "Ruta a picons Enigma2:"
|
||||
|
||||
msgid "Specify the correct position value for the provider!"
|
||||
msgstr "Especifique la posición correcta para el proveedor!"
|
||||
|
||||
msgid "Converter between name formats"
|
||||
msgstr "Conversor entre formatos de nombre"
|
||||
|
||||
msgid "Receive picons for providers"
|
||||
msgstr "Recibir picons para proovedor"
|
||||
|
||||
msgid "Load satellite providers."
|
||||
msgstr "Cargar proovedores Satélite."
|
||||
|
||||
msgid "To automatically set the identifiers for picons,\nfirst load the required services list into the main application window."
|
||||
msgstr "Para configurar automáticamente los identificadores para picons, \nprimero cargue la lista de servicios requeridos en la ventana principal."
|
||||
|
||||
# Satellites editor
|
||||
msgid "Satellites edit tool"
|
||||
msgstr "Edito de Satélites"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Añadir"
|
||||
|
||||
msgid "Satellite"
|
||||
msgstr "Satélite"
|
||||
|
||||
msgid "Transponder"
|
||||
msgstr "Transpondedor"
|
||||
|
||||
msgid "Satellite properties:"
|
||||
msgstr "Propiedades del Satélite:"
|
||||
|
||||
msgid "Transponder properties:"
|
||||
msgstr "Propiedades del Transpondedor:"
|
||||
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
msgid "Position"
|
||||
msgstr "Posición"
|
||||
|
||||
# Satellites update dialog
|
||||
msgid "Satellites update"
|
||||
msgstr "Actualisar Satélite"
|
||||
|
||||
msgid "Remove selection"
|
||||
msgstr "Remover selección"
|
||||
|
||||
# Service details dialog
|
||||
msgid "Service data:"
|
||||
msgstr "Datos servicio:"
|
||||
|
||||
msgid "Transponder data:"
|
||||
msgstr "Datos Transpondedor:"
|
||||
|
||||
msgid "Service data"
|
||||
msgstr "Datos servicio"
|
||||
|
||||
msgid "Transponder details"
|
||||
msgstr "Detailes Transpondedor"
|
||||
|
||||
msgid "Changes will be applied to all services of this transponder!\nContinue?"
|
||||
msgstr "Los cambios se aplicarán a todos los servicios de este transpondedor!\nContinuar?"
|
||||
|
||||
msgid "Reference"
|
||||
msgstr "Referencia"
|
||||
|
||||
msgid "Namespace"
|
||||
msgstr "Namespace"
|
||||
|
||||
msgid "Flags:"
|
||||
msgstr "Flags:"
|
||||
|
||||
msgid "Delays (ms):"
|
||||
msgstr "Retraso (mc)"
|
||||
|
||||
msgid "Bitstream"
|
||||
msgstr "Secuencia de Bits"
|
||||
|
||||
msgid "Description"
|
||||
msgstr "Descripción"
|
||||
|
||||
msgid "Source:"
|
||||
msgstr "Fuente:"
|
||||
|
||||
msgid "Cancel"
|
||||
msgstr "Annular"
|
||||
|
||||
msgid "Update"
|
||||
msgstr "Actualisar"
|
||||
|
||||
msgid "Filter"
|
||||
msgstr "Filtrar"
|
||||
|
||||
msgid "Find"
|
||||
msgstr "Buscar"
|
||||
|
||||
# IPTV dialog
|
||||
msgid "Stream data"
|
||||
msgstr "Datos de la Secuencia"
|
||||
|
||||
# IPTV list configuration dialog
|
||||
msgid "Starting values"
|
||||
msgstr "Volores iniciales"
|
||||
|
||||
msgid "Reset to default"
|
||||
msgstr "Restablecer a predeterminado"
|
||||
|
||||
msgid "IPTV streams list configuration"
|
||||
msgstr "Configurar lista de Secuencias IPTV"
|
||||
|
||||
#Settings dialog
|
||||
msgid "Preferences"
|
||||
msgstr "Preferencias"
|
||||
|
||||
msgid "Profile:"
|
||||
msgstr "Perfil:"
|
||||
|
||||
msgid "Timeout between commands in seconds"
|
||||
msgstr "Tiempo de espera entre comandos en segundos"
|
||||
|
||||
msgid "Timeout:"
|
||||
msgstr "Time-out:"
|
||||
|
||||
msgid "Login:"
|
||||
msgstr "Usuario:"
|
||||
|
||||
msgid "Options"
|
||||
msgstr "Opciones"
|
||||
|
||||
msgid "Password:"
|
||||
msgstr "Contraseña:"
|
||||
|
||||
msgid "Picons:"
|
||||
msgstr "Picons:"
|
||||
|
||||
msgid "Port:"
|
||||
msgstr "Puerta:"
|
||||
|
||||
msgid "Data path:"
|
||||
msgstr "Ruta de datos:"
|
||||
|
||||
msgid "Picons path:"
|
||||
msgstr "Ruda de Picons:"
|
||||
|
||||
msgid "Network settings:"
|
||||
msgstr "Configuración de red:"
|
||||
|
||||
msgid "STB file paths:"
|
||||
msgstr "Ruta de ficherors STB:"
|
||||
|
||||
msgid "Local file paths:"
|
||||
msgstr "Ruta de ficheros local:"
|
||||
|
||||
# Dialogs messages
|
||||
msgid "Error. No bouquet is selected!"
|
||||
msgstr "Error. Ningún ramo está seleccionado!"
|
||||
|
||||
msgid "This item is not allowed to be removed!"
|
||||
msgstr "Este artículo no puede ser eliminado!"
|
||||
|
||||
msgid "This item is not allowed to edit!"
|
||||
msgstr "Este artículo no puede ser editado!"
|
||||
|
||||
msgid "Not allowed in this context!"
|
||||
msgstr "No permitido en este contexto!"
|
||||
|
||||
msgid "Please, download files from receiver or setup your path for read data!"
|
||||
msgstr "Por favor, descargue archivos desde el receptor o configure su ruta para leer los datos!"
|
||||
|
||||
msgid "Reading data error!"
|
||||
msgstr "Error de lectura de datos!"
|
||||
|
||||
msgid "No m3u file is selected!"
|
||||
msgstr "Ningún archivo m3u ha sido seleccionado!"
|
||||
|
||||
msgid "Not implemented yet!"
|
||||
msgstr "Aun no implementado!"
|
||||
|
||||
msgid "The text of marker is empty, please try again!"
|
||||
msgstr "El texto del marcador está vacío, inténtalo de nuevo!"
|
||||
|
||||
msgid "Please, select only one item!"
|
||||
msgstr "Por favor, seleccione solo un elemento!"
|
||||
|
||||
msgid "No png file is selected!"
|
||||
msgstr "Ningún fichero png seleccionado!"
|
||||
|
||||
msgid "No reference is present!"
|
||||
msgstr "Ninguna referencia presente!"
|
||||
|
||||
msgid "No selected item!"
|
||||
msgstr "Ningún elemento seleccionado!"
|
||||
|
||||
msgid "The task is already running!"
|
||||
msgstr "La tarea ya se está ejecutando!"
|
||||
|
||||
msgid "Done!"
|
||||
msgstr "Hecho!"
|
||||
|
||||
msgid "Please, wait..."
|
||||
msgstr "Por favor, espere..."
|
||||
|
||||
msgid "Resizing..."
|
||||
msgstr "Redimensionamiento..."
|
||||
|
||||
msgid "Select paths!"
|
||||
msgstr "Seleccione rutas!"
|
||||
|
||||
msgid "No satellite is selected!"
|
||||
msgstr "Ningún Satélite seleccionado!"
|
||||
|
||||
msgid "Please, select only one satellite!"
|
||||
msgstr "Seleccione solo un Satélite!"
|
||||
|
||||
msgid "Please check your parameters and try again."
|
||||
msgstr "Por favor revise sus parámetros y vuelva a intentar!"
|
||||
|
||||
msgid "No satellites.xml file is selected!"
|
||||
msgstr "Ningún satellites.xml seleccionado!"
|
||||
|
||||
msgid "Error. Verify the data!"
|
||||
msgstr "Error. Revise sus datos!"
|
||||
|
||||
msgid "Operation not allowed in this context!"
|
||||
msgstr "Operación no permitida en este contexto!"
|
||||
|
||||
msgid "No VLC is found. Check that it is installed!"
|
||||
msgstr "VLC no encontrado. Verifica si está instalado!"
|
||||
|
||||
# Search unavailable streams dialog
|
||||
msgid "Please wait, streams testing in progress..."
|
||||
msgstr "Por favor espera una prueba de las secuencias..."
|
||||
|
||||
msgid "Found"
|
||||
msgstr "Encontrado"
|
||||
|
||||
msgid "unavailable streams."
|
||||
msgstr "Secuencias no presentes"
|
||||
|
||||
msgid "No changes required!"
|
||||
msgstr "ningún cambio requerido!"
|
||||
|
||||
msgid "This list does not contains IPTV streams!"
|
||||
msgstr "La lista no contiene secuencias IPTV!"
|
||||
|
||||
Binary file not shown.
@@ -73,7 +73,7 @@ msgid "Edit "
|
||||
msgstr "Wijzig "
|
||||
|
||||
msgid "Edit mаrker text"
|
||||
msgstr "Wijzil mаrker tekst"
|
||||
msgstr "Wijzig mаrker tekst"
|
||||
|
||||
msgid "FTP-transfer"
|
||||
msgstr "FTP-overdracht"
|
||||
@@ -85,7 +85,7 @@ msgid "Hide"
|
||||
msgstr "Verberg"
|
||||
|
||||
msgid "Hide/Skip On/Off Ctrl + H"
|
||||
msgstr "verberg/Overalaan Aan/Uit Ctrl + H"
|
||||
msgstr "Verberg/Overslaan Aan/Uit Ctrl + H"
|
||||
|
||||
msgid "Add IPTV or stream service"
|
||||
msgstr "Voeg IPTV of stream dienst toe"
|
||||
@@ -100,7 +100,7 @@ msgid "List configuration"
|
||||
msgstr "Lijst configuratie"
|
||||
|
||||
msgid "Rename for this bouquet"
|
||||
msgstr "Hernoem dit boeket"
|
||||
msgstr "Hernoem voor dit boeket"
|
||||
|
||||
msgid "Set default name"
|
||||
msgstr "Stel standaard naam in"
|
||||
@@ -154,10 +154,10 @@ msgid "Picons"
|
||||
msgstr "Picons"
|
||||
|
||||
msgid "Picons downloader"
|
||||
msgstr "Загрузчик пиконов"
|
||||
msgstr "Picons downloader"
|
||||
|
||||
msgid "Satellites downloader"
|
||||
msgstr "Picons downloader"
|
||||
msgstr "Satellieten downloader"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Verwijder"
|
||||
@@ -286,7 +286,7 @@ msgid "Load providers"
|
||||
msgstr "Laad leveranciers"
|
||||
|
||||
msgid "Providers"
|
||||
msgstr "leveranciers"
|
||||
msgstr "Leveranciers"
|
||||
|
||||
msgid "Receive picons"
|
||||
msgstr "Ontvang picons"
|
||||
@@ -298,10 +298,10 @@ msgid "Resize:"
|
||||
msgstr "Verklein/vergroot:"
|
||||
|
||||
msgid "Current picons path:"
|
||||
msgstr "Huidig picon pad:"
|
||||
msgstr "Huidig pad picons:"
|
||||
|
||||
msgid "Receiver picons path:"
|
||||
msgstr "Ontvanger picon pad:"
|
||||
msgstr "Ontvanger picons pad:"
|
||||
|
||||
msgid "Picons download tool"
|
||||
msgstr "Picons download gereedschap"
|
||||
@@ -561,11 +561,10 @@ msgid "Found"
|
||||
msgstr "Gevonden"
|
||||
|
||||
msgid "unavailable streams."
|
||||
msgstr "Steams niet aanwegig."
|
||||
msgstr "Steams niet aanwezig."
|
||||
|
||||
msgid "No changes required!"
|
||||
msgstr "Geen wijzigingen vereist!"
|
||||
|
||||
msgid "This list does not contains IPTV streams!"
|
||||
msgstr "Deze lijst bevat geen IPTV streams!"
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user