mirror of
https://github.com/SoongNoonien/mpdevil.git
synced 2023-08-10 21:12:44 +03:00
fixed gui stall caused by auto reconnect
This commit is contained in:
parent
291507ca1c
commit
053dbbe08f
120
bin/mpdevil
120
bin/mpdevil
@ -610,6 +610,7 @@ class MpdEventEmitter(GObject.Object):
|
|||||||
'update': (GObject.SignalFlags.RUN_FIRST, None, ()),
|
'update': (GObject.SignalFlags.RUN_FIRST, None, ()),
|
||||||
'disconnected': (GObject.SignalFlags.RUN_FIRST, None, ()),
|
'disconnected': (GObject.SignalFlags.RUN_FIRST, None, ()),
|
||||||
'reconnected': (GObject.SignalFlags.RUN_FIRST, None, ()),
|
'reconnected': (GObject.SignalFlags.RUN_FIRST, None, ()),
|
||||||
|
'connection_error': (GObject.SignalFlags.RUN_FIRST, None, ()),
|
||||||
'current_song_changed': (GObject.SignalFlags.RUN_FIRST, None, ()),
|
'current_song_changed': (GObject.SignalFlags.RUN_FIRST, None, ()),
|
||||||
'state': (GObject.SignalFlags.RUN_FIRST, None, (str,)),
|
'state': (GObject.SignalFlags.RUN_FIRST, None, (str,)),
|
||||||
'elapsed_changed': (GObject.SignalFlags.RUN_FIRST, None, (float,float,)),
|
'elapsed_changed': (GObject.SignalFlags.RUN_FIRST, None, (float,float,)),
|
||||||
@ -636,6 +637,9 @@ class MpdEventEmitter(GObject.Object):
|
|||||||
def do_reconnected(self):
|
def do_reconnected(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def do_connection_error(self):
|
||||||
|
print("Connection error!")
|
||||||
|
|
||||||
def do_current_file_changed(self):
|
def do_current_file_changed(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -666,6 +670,7 @@ class Client(MPDClient):
|
|||||||
self.emitter=MpdEventEmitter()
|
self.emitter=MpdEventEmitter()
|
||||||
self._last_status={}
|
self._last_status={}
|
||||||
self._refresh_interval=self._settings.get_int("refresh-interval")
|
self._refresh_interval=self._settings.get_int("refresh-interval")
|
||||||
|
self._main_timeout_id=None
|
||||||
|
|
||||||
#connect
|
#connect
|
||||||
self._settings.connect("changed::active-profile", self._on_active_profile_changed)
|
self._settings.connect("changed::active-profile", self._on_active_profile_changed)
|
||||||
@ -678,9 +683,27 @@ class Client(MPDClient):
|
|||||||
return func(*args)
|
return func(*args)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
if self._disconnected_loop():
|
self.emitter.emit("disconnected") # bring player in defined state
|
||||||
self.emitter.emit("disconnected")
|
active=self._settings.get_int("active-profile")
|
||||||
self._disconnected_timeout_id=GLib.timeout_add(1000, self._disconnected_loop)
|
try:
|
||||||
|
self.connect(self._settings.get_value("hosts")[active], self._settings.get_value("ports")[active])
|
||||||
|
if self._settings.get_value("passwords")[active] != "":
|
||||||
|
self.password(self._settings.get_value("passwords")[active])
|
||||||
|
except:
|
||||||
|
self.emitter.emit("connection_error")
|
||||||
|
return False
|
||||||
|
# connect successful
|
||||||
|
self._main_timeout_id=GLib.timeout_add(self._refresh_interval, self._main_loop)
|
||||||
|
self.emitter.emit("reconnected")
|
||||||
|
return True
|
||||||
|
|
||||||
|
def reconnect(self):
|
||||||
|
if self._main_timeout_id is not None:
|
||||||
|
GLib.source_remove(self._main_timeout_id)
|
||||||
|
self._main_timeout_id=None
|
||||||
|
self._last_status={}
|
||||||
|
self.disconnect()
|
||||||
|
self.start()
|
||||||
|
|
||||||
def connected(self):
|
def connected(self):
|
||||||
try:
|
try:
|
||||||
@ -785,27 +808,13 @@ class Client(MPDClient):
|
|||||||
self.disconnect()
|
self.disconnect()
|
||||||
self._last_status={}
|
self._last_status={}
|
||||||
self.emitter.emit("disconnected")
|
self.emitter.emit("disconnected")
|
||||||
if self._disconnected_loop():
|
self.emitter.emit("connection_error")
|
||||||
self._disconnected_timeout_id=GLib.timeout_add(1000, self._disconnected_loop)
|
self._main_timeout_id=None
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _disconnected_loop(self, *args):
|
|
||||||
active=self._settings.get_int("active-profile")
|
|
||||||
try:
|
|
||||||
self.connect(self._settings.get_value("hosts")[active], self._settings.get_value("ports")[active])
|
|
||||||
if self._settings.get_value("passwords")[active] != "":
|
|
||||||
self.password(self._settings.get_value("passwords")[active])
|
|
||||||
except:
|
|
||||||
print("connect failed")
|
|
||||||
return True
|
|
||||||
# connect successful
|
|
||||||
self._main_timeout_id=GLib.timeout_add(self._refresh_interval, self._main_loop)
|
|
||||||
self.emitter.emit("reconnected")
|
|
||||||
return False
|
|
||||||
|
|
||||||
def _on_active_profile_changed(self, *args):
|
def _on_active_profile_changed(self, *args):
|
||||||
self.disconnect()
|
self.reconnect()
|
||||||
|
|
||||||
########################
|
########################
|
||||||
# gio settings wrapper #
|
# gio settings wrapper #
|
||||||
@ -2488,10 +2497,11 @@ class GeneralSettings(Gtk.Box):
|
|||||||
self._settings.set_boolean(key, widget.get_active())
|
self._settings.set_boolean(key, widget.get_active())
|
||||||
|
|
||||||
class ProfileSettings(Gtk.Grid):
|
class ProfileSettings(Gtk.Grid):
|
||||||
def __init__(self, parent, settings):
|
def __init__(self, parent, client, settings):
|
||||||
super().__init__(row_spacing=6, column_spacing=12, border_width=18)
|
super().__init__(row_spacing=6, column_spacing=12, border_width=18)
|
||||||
|
|
||||||
# adding vars
|
# adding vars
|
||||||
|
self._client=client
|
||||||
self._settings=settings
|
self._settings=settings
|
||||||
self._gui_modification=False # indicates whether the settings were changed from the settings dialog
|
self._gui_modification=False # indicates whether the settings were changed from the settings dialog
|
||||||
|
|
||||||
@ -2504,6 +2514,8 @@ class ProfileSettings(Gtk.Grid):
|
|||||||
add_delete_buttons.pack_start(add_button, True, True, 0)
|
add_delete_buttons.pack_start(add_button, True, True, 0)
|
||||||
add_delete_buttons.pack_start(delete_button, True, True, 0)
|
add_delete_buttons.pack_start(delete_button, True, True, 0)
|
||||||
|
|
||||||
|
connect_button=Gtk.Button(label=_("Connect"), image=Gtk.Image.new_from_icon_name("system-run", Gtk.IconSize.BUTTON))
|
||||||
|
|
||||||
self._profile_entry=Gtk.Entry(hexpand=True)
|
self._profile_entry=Gtk.Entry(hexpand=True)
|
||||||
self._host_entry=Gtk.Entry(hexpand=True)
|
self._host_entry=Gtk.Entry(hexpand=True)
|
||||||
self._port_entry=Gtk.SpinButton.new_with_range(0, 65535, 1)
|
self._port_entry=Gtk.SpinButton.new_with_range(0, 65535, 1)
|
||||||
@ -2529,6 +2541,7 @@ class ProfileSettings(Gtk.Grid):
|
|||||||
# connect
|
# connect
|
||||||
add_button.connect("clicked", self._on_add_button_clicked)
|
add_button.connect("clicked", self._on_add_button_clicked)
|
||||||
delete_button.connect("clicked", self._on_delete_button_clicked)
|
delete_button.connect("clicked", self._on_delete_button_clicked)
|
||||||
|
connect_button.connect("clicked", self._on_connect_button_clicked)
|
||||||
self._path_select_button.connect("clicked", self._on_path_select_button_clicked, parent)
|
self._path_select_button.connect("clicked", self._on_path_select_button_clicked, parent)
|
||||||
self._profiles_combo.connect("changed", self._on_profiles_changed)
|
self._profiles_combo.connect("changed", self._on_profiles_changed)
|
||||||
self.entry_changed_handlers=[]
|
self.entry_changed_handlers=[]
|
||||||
@ -2564,6 +2577,8 @@ class ProfileSettings(Gtk.Grid):
|
|||||||
self.attach_next_to(self._password_entry, password_label, Gtk.PositionType.RIGHT, 2, 1)
|
self.attach_next_to(self._password_entry, password_label, Gtk.PositionType.RIGHT, 2, 1)
|
||||||
self.attach_next_to(path_box, path_label, Gtk.PositionType.RIGHT, 2, 1)
|
self.attach_next_to(path_box, path_label, Gtk.PositionType.RIGHT, 2, 1)
|
||||||
self.attach_next_to(self._regex_entry, regex_label, Gtk.PositionType.RIGHT, 2, 1)
|
self.attach_next_to(self._regex_entry, regex_label, Gtk.PositionType.RIGHT, 2, 1)
|
||||||
|
connect_button.set_margin_top(12)
|
||||||
|
self.attach_next_to(connect_button, self._regex_entry, Gtk.PositionType.BOTTOM, 2, 1)
|
||||||
|
|
||||||
def _block_entry_changed_handlers(self, *args):
|
def _block_entry_changed_handlers(self, *args):
|
||||||
for obj, handler in self.entry_changed_handlers:
|
for obj, handler in self.entry_changed_handlers:
|
||||||
@ -2620,6 +2635,10 @@ class ProfileSettings(Gtk.Grid):
|
|||||||
new_pos=max(pos-1,0)
|
new_pos=max(pos-1,0)
|
||||||
self._profiles_combo.set_active(new_pos)
|
self._profiles_combo.set_active(new_pos)
|
||||||
|
|
||||||
|
def _on_connect_button_clicked(self, *args):
|
||||||
|
self._settings.set_int("active-profile", self._profiles_combo.get_active())
|
||||||
|
self._client.reconnect()
|
||||||
|
|
||||||
def _on_profile_entry_changed(self, *args):
|
def _on_profile_entry_changed(self, *args):
|
||||||
self._gui_modification=True
|
self._gui_modification=True
|
||||||
pos=self._profiles_combo.get_active()
|
pos=self._profiles_combo.get_active()
|
||||||
@ -2818,7 +2837,7 @@ class PlaylistSettings(Gtk.Box):
|
|||||||
self._store.handler_unblock(self._row_deleted)
|
self._store.handler_unblock(self._row_deleted)
|
||||||
|
|
||||||
class SettingsDialog(Gtk.Dialog):
|
class SettingsDialog(Gtk.Dialog):
|
||||||
def __init__(self, parent, settings):
|
def __init__(self, parent, client, settings):
|
||||||
use_csd=settings.get_boolean("use-csd")
|
use_csd=settings.get_boolean("use-csd")
|
||||||
if use_csd:
|
if use_csd:
|
||||||
super().__init__(title=_("Settings"), transient_for=parent, use_header_bar=True)
|
super().__init__(title=_("Settings"), transient_for=parent, use_header_bar=True)
|
||||||
@ -2835,7 +2854,7 @@ class SettingsDialog(Gtk.Dialog):
|
|||||||
|
|
||||||
# widgets
|
# widgets
|
||||||
general=GeneralSettings(settings)
|
general=GeneralSettings(settings)
|
||||||
profiles=ProfileSettings(parent, settings)
|
profiles=ProfileSettings(parent, client, settings)
|
||||||
playlist=PlaylistSettings(settings)
|
playlist=PlaylistSettings(settings)
|
||||||
|
|
||||||
# packing
|
# packing
|
||||||
@ -3017,6 +3036,7 @@ class SeekBar(Gtk.Box):
|
|||||||
|
|
||||||
def _disable(self, *args):
|
def _disable(self, *args):
|
||||||
self.set_sensitive(False)
|
self.set_sensitive(False)
|
||||||
|
self.scale.set_fill_level(0)
|
||||||
self.scale.set_range(0, 0)
|
self.scale.set_range(0, 0)
|
||||||
self._elapsed.set_text("00:00")
|
self._elapsed.set_text("00:00")
|
||||||
self._rest.set_text("-00:00")
|
self._rest.set_text("-00:00")
|
||||||
@ -3298,6 +3318,52 @@ class ProfileSelect(Gtk.ComboBoxText):
|
|||||||
active=self.get_active()
|
active=self.get_active()
|
||||||
self._settings.set_int("active-profile", active)
|
self._settings.set_int("active-profile", active)
|
||||||
|
|
||||||
|
class ConnectionNotify(Gtk.Revealer):
|
||||||
|
def __init__(self, client, settings):
|
||||||
|
super().__init__(valign=Gtk.Align.START, halign=Gtk.Align.CENTER)
|
||||||
|
|
||||||
|
# adding vars
|
||||||
|
self._client=client
|
||||||
|
self._settings=settings
|
||||||
|
|
||||||
|
# widgets
|
||||||
|
self._label=Gtk.Label(wrap=True)
|
||||||
|
close_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("window-close-symbolic", Gtk.IconSize.BUTTON))
|
||||||
|
close_button.set_relief(Gtk.ReliefStyle.NONE)
|
||||||
|
connect_button=Gtk.Button(label=_("Connect"))
|
||||||
|
|
||||||
|
# connect
|
||||||
|
close_button.connect("clicked", self._on_close_button_clicked)
|
||||||
|
connect_button.connect("clicked", self._on_connect_button_clicked)
|
||||||
|
self._client.emitter.connect("connection_error", self._on_connection_error)
|
||||||
|
self._client.emitter.connect("reconnected", self._on_reconnected)
|
||||||
|
|
||||||
|
# packing
|
||||||
|
box=Gtk.Box(spacing=12)
|
||||||
|
box.get_style_context().add_class("app-notification")
|
||||||
|
box.pack_start(self._label, False, True, 6)
|
||||||
|
box.pack_end(close_button, False, True, 0)
|
||||||
|
box.pack_end(connect_button, False, True, 0)
|
||||||
|
self.add(box)
|
||||||
|
|
||||||
|
def _on_connection_error(self, *args):
|
||||||
|
active=self._settings.get_int("active-profile")
|
||||||
|
profile=self._settings.get_value("profiles")[active]
|
||||||
|
host=self._settings.get_value("hosts")[active]
|
||||||
|
port=self._settings.get_value("ports")[active]
|
||||||
|
string=_('Connection to "%(profile)s" (%(host)s:%(port)s) failed') % {"profile": profile, "host": host, "port": port}
|
||||||
|
self._label.set_text(string)
|
||||||
|
self.set_reveal_child(True)
|
||||||
|
|
||||||
|
def _on_reconnected(self, *args):
|
||||||
|
self.set_reveal_child(False)
|
||||||
|
|
||||||
|
def _on_close_button_clicked(self, *args):
|
||||||
|
self.set_reveal_child(False)
|
||||||
|
|
||||||
|
def _on_connect_button_clicked(self, *args):
|
||||||
|
self._client.reconnect()
|
||||||
|
|
||||||
class MainWindow(Gtk.ApplicationWindow):
|
class MainWindow(Gtk.ApplicationWindow):
|
||||||
def __init__(self, app, client, settings):
|
def __init__(self, app, client, settings):
|
||||||
super().__init__(title=("mpdevil"), icon_name="mpdevil", application=app)
|
super().__init__(title=("mpdevil"), icon_name="mpdevil", application=app)
|
||||||
@ -3350,6 +3416,7 @@ class MainWindow(Gtk.ApplicationWindow):
|
|||||||
self._playback_control=PlaybackControl(self._client, self._settings)
|
self._playback_control=PlaybackControl(self._client, self._settings)
|
||||||
self._seek_bar=SeekBar(self._client)
|
self._seek_bar=SeekBar(self._client)
|
||||||
playback_options=PlaybackOptions(self._client, self._settings)
|
playback_options=PlaybackOptions(self._client, self._settings)
|
||||||
|
connection_notify=ConnectionNotify(self._client, self._settings)
|
||||||
|
|
||||||
# menu
|
# menu
|
||||||
subsection=Gio.Menu()
|
subsection=Gio.Menu()
|
||||||
@ -3397,6 +3464,9 @@ class MainWindow(Gtk.ApplicationWindow):
|
|||||||
vbox=Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
vbox=Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
||||||
vbox.pack_start(self._paned2, True, True, 0)
|
vbox.pack_start(self._paned2, True, True, 0)
|
||||||
vbox.pack_start(action_bar, False, False, 0)
|
vbox.pack_start(action_bar, False, False, 0)
|
||||||
|
overlay=Gtk.Overlay()
|
||||||
|
overlay.add(vbox)
|
||||||
|
overlay.add_overlay(connection_notify)
|
||||||
|
|
||||||
if self._use_csd:
|
if self._use_csd:
|
||||||
self._header_bar=Gtk.HeaderBar()
|
self._header_bar=Gtk.HeaderBar()
|
||||||
@ -3412,7 +3482,7 @@ class MainWindow(Gtk.ApplicationWindow):
|
|||||||
action_bar.pack_start(self._profile_select)
|
action_bar.pack_start(self._profile_select)
|
||||||
action_bar.pack_start(menu_button)
|
action_bar.pack_start(menu_button)
|
||||||
|
|
||||||
self.add(vbox)
|
self.add(overlay)
|
||||||
|
|
||||||
self.show_all()
|
self.show_all()
|
||||||
if self._settings.get_boolean("maximize"):
|
if self._settings.get_boolean("maximize"):
|
||||||
@ -3511,7 +3581,7 @@ class MainWindow(Gtk.ApplicationWindow):
|
|||||||
self._settings.set_int("paned2", self._paned2.get_position())
|
self._settings.set_int("paned2", self._paned2.get_position())
|
||||||
|
|
||||||
def _on_settings(self, action, param):
|
def _on_settings(self, action, param):
|
||||||
settings=SettingsDialog(self, self._settings)
|
settings=SettingsDialog(self, self._client, self._settings)
|
||||||
settings.run()
|
settings.run()
|
||||||
settings.destroy()
|
settings.destroy()
|
||||||
|
|
||||||
|
171
po/de.po
171
po/de.po
@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-10 16:59+0200\n"
|
"POT-Creation-Date: 2020-09-10 21:43+0200\n"
|
||||||
"PO-Revision-Date: 2020-09-10 17:00+0200\n"
|
"PO-Revision-Date: 2020-09-10 21:45+0200\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
@ -38,52 +38,52 @@ msgstr "Unbekannter Interpret"
|
|||||||
msgid "Unknown Album"
|
msgid "Unknown Album"
|
||||||
msgstr "Unbekanntes Album"
|
msgstr "Unbekanntes Album"
|
||||||
|
|
||||||
#: mpdevil:898 mpdevil:1198 mpdevil:2056 mpdevil:2708
|
#: mpdevil:907 mpdevil:1207 mpdevil:2065 mpdevil:2727
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Nr."
|
msgstr "Nr."
|
||||||
|
|
||||||
#: mpdevil:903 mpdevil:1203 mpdevil:2058 mpdevil:2708
|
#: mpdevil:912 mpdevil:1212 mpdevil:2067 mpdevil:2727
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Titel"
|
msgstr "Titel"
|
||||||
|
|
||||||
#: mpdevil:909 mpdevil:1380 mpdevil:2059 mpdevil:2708
|
#: mpdevil:918 mpdevil:1389 mpdevil:2068 mpdevil:2727
|
||||||
msgid "Artist"
|
msgid "Artist"
|
||||||
msgstr "Interpret"
|
msgstr "Interpret"
|
||||||
|
|
||||||
#: mpdevil:915 mpdevil:2060 mpdevil:2708
|
#: mpdevil:924 mpdevil:2069 mpdevil:2727
|
||||||
msgid "Album"
|
msgid "Album"
|
||||||
msgstr "Album"
|
msgstr "Album"
|
||||||
|
|
||||||
#: mpdevil:921 mpdevil:1209 mpdevil:2061 mpdevil:2708
|
#: mpdevil:930 mpdevil:1218 mpdevil:2070 mpdevil:2727
|
||||||
msgid "Length"
|
msgid "Length"
|
||||||
msgstr "Länge"
|
msgstr "Länge"
|
||||||
|
|
||||||
#: mpdevil:981
|
#: mpdevil:990
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%i hits"
|
msgid "%i hits"
|
||||||
msgstr "%i Treffer"
|
msgstr "%i Treffer"
|
||||||
|
|
||||||
#: mpdevil:1082
|
#: mpdevil:1091
|
||||||
msgid "Append"
|
msgid "Append"
|
||||||
msgstr "Anhängen"
|
msgstr "Anhängen"
|
||||||
|
|
||||||
#: mpdevil:1083
|
#: mpdevil:1092
|
||||||
msgid "Add all titles to playlist"
|
msgid "Add all titles to playlist"
|
||||||
msgstr "Alle Titel der Wiedergabeliste anhängen"
|
msgstr "Alle Titel der Wiedergabeliste anhängen"
|
||||||
|
|
||||||
#: mpdevil:1084
|
#: mpdevil:1093
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "Abspielen"
|
msgstr "Abspielen"
|
||||||
|
|
||||||
#: mpdevil:1085
|
#: mpdevil:1094
|
||||||
msgid "Directly play all titles"
|
msgid "Directly play all titles"
|
||||||
msgstr "Alle Titel sofort abspielen"
|
msgstr "Alle Titel sofort abspielen"
|
||||||
|
|
||||||
#: mpdevil:1086
|
#: mpdevil:1095
|
||||||
msgid "Enqueue"
|
msgid "Enqueue"
|
||||||
msgstr "Einreihen"
|
msgstr "Einreihen"
|
||||||
|
|
||||||
#: mpdevil:1087
|
#: mpdevil:1096
|
||||||
msgid ""
|
msgid ""
|
||||||
"Append all titles after the currently playing track and clear the playlist "
|
"Append all titles after the currently playing track and clear the playlist "
|
||||||
"from all other songs"
|
"from all other songs"
|
||||||
@ -91,49 +91,49 @@ msgstr ""
|
|||||||
"Alle Titel hinter dem aktuellen Stück einreihen und die weitere "
|
"Alle Titel hinter dem aktuellen Stück einreihen und die weitere "
|
||||||
"Wiedergabeliste leeren"
|
"Wiedergabeliste leeren"
|
||||||
|
|
||||||
#: mpdevil:1215
|
#: mpdevil:1224
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Schließen"
|
msgstr "Schließen"
|
||||||
|
|
||||||
#: mpdevil:1268
|
#: mpdevil:1277
|
||||||
msgid "all genres"
|
msgid "all genres"
|
||||||
msgstr "Alle Genres"
|
msgstr "Alle Genres"
|
||||||
|
|
||||||
#: mpdevil:1378
|
#: mpdevil:1387
|
||||||
msgid "Album Artist"
|
msgid "Album Artist"
|
||||||
msgstr "Albuminterpret"
|
msgstr "Albuminterpret"
|
||||||
|
|
||||||
#: mpdevil:1381
|
#: mpdevil:1390
|
||||||
msgid "all artists"
|
msgid "all artists"
|
||||||
msgstr "Alle Interpreten"
|
msgstr "Alle Interpreten"
|
||||||
|
|
||||||
#: mpdevil:1554
|
#: mpdevil:1563
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(total_tracks)i titles on %(discs)i discs (%(total_length)s)"
|
msgid "%(total_tracks)i titles on %(discs)i discs (%(total_length)s)"
|
||||||
msgstr "%(total_tracks)i Titel auf %(discs)i CDs (%(total_length)s)"
|
msgstr "%(total_tracks)i Titel auf %(discs)i CDs (%(total_length)s)"
|
||||||
|
|
||||||
#: mpdevil:1556 mpdevil:2150
|
#: mpdevil:1565 mpdevil:2159
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(total_tracks)i titles (%(total_length)s)"
|
msgid "%(total_tracks)i titles (%(total_length)s)"
|
||||||
msgstr "%(total_tracks)i Titel (%(total_length)s)"
|
msgstr "%(total_tracks)i Titel (%(total_length)s)"
|
||||||
|
|
||||||
#: mpdevil:1672
|
#: mpdevil:1681
|
||||||
msgid "Back to current album"
|
msgid "Back to current album"
|
||||||
msgstr "Zurück zu aktuellem Album"
|
msgstr "Zurück zu aktuellem Album"
|
||||||
|
|
||||||
#: mpdevil:1673
|
#: mpdevil:1682
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Suche"
|
msgstr "Suche"
|
||||||
|
|
||||||
#: mpdevil:1827
|
#: mpdevil:1836
|
||||||
msgid "searching..."
|
msgid "searching..."
|
||||||
msgstr "suche..."
|
msgstr "suche..."
|
||||||
|
|
||||||
#: mpdevil:1831
|
#: mpdevil:1840
|
||||||
msgid "lyrics not found"
|
msgid "lyrics not found"
|
||||||
msgstr "Liedtext nicht gefunden"
|
msgstr "Liedtext nicht gefunden"
|
||||||
|
|
||||||
#: mpdevil:1901
|
#: mpdevil:1910
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
|
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
|
||||||
@ -142,119 +142,123 @@ msgstr ""
|
|||||||
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
|
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
|
||||||
"Kanäle, %(file_type)s"
|
"Kanäle, %(file_type)s"
|
||||||
|
|
||||||
#: mpdevil:2031
|
#: mpdevil:2040
|
||||||
msgid "Scroll to current song"
|
msgid "Scroll to current song"
|
||||||
msgstr "Gehe zu aktuellem Lied"
|
msgstr "Gehe zu aktuellem Lied"
|
||||||
|
|
||||||
#: mpdevil:2034
|
#: mpdevil:2043
|
||||||
msgid "Clear playlist"
|
msgid "Clear playlist"
|
||||||
msgstr "Wiedergabeliste leeren"
|
msgstr "Wiedergabeliste leeren"
|
||||||
|
|
||||||
#: mpdevil:2057 mpdevil:2708
|
#: mpdevil:2066 mpdevil:2727
|
||||||
msgid "Disc"
|
msgid "Disc"
|
||||||
msgstr "CD"
|
msgstr "CD"
|
||||||
|
|
||||||
#: mpdevil:2062 mpdevil:2708
|
#: mpdevil:2071 mpdevil:2727
|
||||||
msgid "Year"
|
msgid "Year"
|
||||||
msgstr "Jahr"
|
msgstr "Jahr"
|
||||||
|
|
||||||
#: mpdevil:2063 mpdevil:2708
|
#: mpdevil:2072 mpdevil:2727
|
||||||
msgid "Genre"
|
msgid "Genre"
|
||||||
msgstr "Genre"
|
msgstr "Genre"
|
||||||
|
|
||||||
#: mpdevil:2280
|
#: mpdevil:2289
|
||||||
msgid "Show lyrics"
|
msgid "Show lyrics"
|
||||||
msgstr "Zeige Liedtext"
|
msgstr "Zeige Liedtext"
|
||||||
|
|
||||||
#: mpdevil:2372
|
#: mpdevil:2381
|
||||||
msgid "Main cover size:"
|
msgid "Main cover size:"
|
||||||
msgstr "Größe des Haupt-Covers:"
|
msgstr "Größe des Haupt-Covers:"
|
||||||
|
|
||||||
#: mpdevil:2373
|
#: mpdevil:2382
|
||||||
msgid "Album view cover size:"
|
msgid "Album view cover size:"
|
||||||
msgstr "Covergröße in Albumliste:"
|
msgstr "Covergröße in Albumliste:"
|
||||||
|
|
||||||
#: mpdevil:2374
|
#: mpdevil:2383
|
||||||
msgid "Action bar icon size:"
|
msgid "Action bar icon size:"
|
||||||
msgstr "Symbolgröße Aktionsleiste:"
|
msgstr "Symbolgröße Aktionsleiste:"
|
||||||
|
|
||||||
#: mpdevil:2375
|
#: mpdevil:2384
|
||||||
msgid "Secondary icon size:"
|
msgid "Secondary icon size:"
|
||||||
msgstr "Sekundäre Symbolgröße:"
|
msgstr "Sekundäre Symbolgröße:"
|
||||||
|
|
||||||
#: mpdevil:2384
|
#: mpdevil:2393
|
||||||
msgid "Sort albums by:"
|
msgid "Sort albums by:"
|
||||||
msgstr "Sortiere Alben nach:"
|
msgstr "Sortiere Alben nach:"
|
||||||
|
|
||||||
#: mpdevil:2384
|
#: mpdevil:2393
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: mpdevil:2384
|
#: mpdevil:2393
|
||||||
msgid "year"
|
msgid "year"
|
||||||
msgstr "Jahr"
|
msgstr "Jahr"
|
||||||
|
|
||||||
#: mpdevil:2385
|
#: mpdevil:2394
|
||||||
msgid "Position of playlist:"
|
msgid "Position of playlist:"
|
||||||
msgstr "Wiedergabelistenposition:"
|
msgstr "Wiedergabelistenposition:"
|
||||||
|
|
||||||
#: mpdevil:2385
|
#: mpdevil:2394
|
||||||
msgid "bottom"
|
msgid "bottom"
|
||||||
msgstr "unten"
|
msgstr "unten"
|
||||||
|
|
||||||
#: mpdevil:2385
|
#: mpdevil:2394
|
||||||
msgid "right"
|
msgid "right"
|
||||||
msgstr "rechts"
|
msgstr "rechts"
|
||||||
|
|
||||||
#: mpdevil:2399
|
#: mpdevil:2408
|
||||||
msgid "Use Client-side decoration"
|
msgid "Use Client-side decoration"
|
||||||
msgstr "Benutze \"Client-side decoration\""
|
msgstr "Benutze \"Client-side decoration\""
|
||||||
|
|
||||||
#: mpdevil:2400
|
#: mpdevil:2409
|
||||||
msgid "Show stop button"
|
msgid "Show stop button"
|
||||||
msgstr "Zeige Stopp-Knopf"
|
msgstr "Zeige Stopp-Knopf"
|
||||||
|
|
||||||
#: mpdevil:2401
|
#: mpdevil:2410
|
||||||
msgid "Show lyrics button"
|
msgid "Show lyrics button"
|
||||||
msgstr "Zeige Liedtext-Knopf"
|
msgstr "Zeige Liedtext-Knopf"
|
||||||
|
|
||||||
#: mpdevil:2402
|
#: mpdevil:2411
|
||||||
msgid "Show initials in artist view"
|
msgid "Show initials in artist view"
|
||||||
msgstr "Zeige Anfangsbuchstaben in Interpretenliste"
|
msgstr "Zeige Anfangsbuchstaben in Interpretenliste"
|
||||||
|
|
||||||
#: mpdevil:2403
|
#: mpdevil:2412
|
||||||
msgid "Show tooltips in album view"
|
msgid "Show tooltips in album view"
|
||||||
msgstr "Zeige Tooltips in Albumliste"
|
msgstr "Zeige Tooltips in Albumliste"
|
||||||
|
|
||||||
#: mpdevil:2404
|
#: mpdevil:2413
|
||||||
msgid "Use 'Album Artist' tag"
|
msgid "Use 'Album Artist' tag"
|
||||||
msgstr "Benutze \"Album Artist\" Tag"
|
msgstr "Benutze \"Album Artist\" Tag"
|
||||||
|
|
||||||
#: mpdevil:2405
|
#: mpdevil:2414
|
||||||
msgid "Send notification on title change"
|
msgid "Send notification on title change"
|
||||||
msgstr "Sende Benachrichtigung bei Titelwechsel"
|
msgstr "Sende Benachrichtigung bei Titelwechsel"
|
||||||
|
|
||||||
#: mpdevil:2406
|
#: mpdevil:2415
|
||||||
msgid "Stop playback on quit"
|
msgid "Stop playback on quit"
|
||||||
msgstr "Wiedergabe beim Beenden stoppen"
|
msgstr "Wiedergabe beim Beenden stoppen"
|
||||||
|
|
||||||
#: mpdevil:2407
|
#: mpdevil:2416
|
||||||
msgid "Play selected albums and titles immediately"
|
msgid "Play selected albums and titles immediately"
|
||||||
msgstr "Ausgewählte Alben und Titel sofort abspielen"
|
msgstr "Ausgewählte Alben und Titel sofort abspielen"
|
||||||
|
|
||||||
#: mpdevil:2417
|
#: mpdevil:2426
|
||||||
msgid "<b>View</b>"
|
msgid "<b>View</b>"
|
||||||
msgstr "<b>Ansicht</b>"
|
msgstr "<b>Ansicht</b>"
|
||||||
|
|
||||||
#: mpdevil:2418
|
#: mpdevil:2427
|
||||||
msgid "<b>Behavior</b>"
|
msgid "<b>Behavior</b>"
|
||||||
msgstr "<b>Verhalten</b>"
|
msgstr "<b>Verhalten</b>"
|
||||||
|
|
||||||
#: mpdevil:2446
|
#: mpdevil:2455
|
||||||
msgid "(restart required)"
|
msgid "(restart required)"
|
||||||
msgstr "(Neustart erforderlich)"
|
msgstr "(Neustart erforderlich)"
|
||||||
|
|
||||||
#: mpdevil:2520
|
#: mpdevil:2517 mpdevil:3333
|
||||||
|
msgid "Connect"
|
||||||
|
msgstr "Verbinden"
|
||||||
|
|
||||||
|
#: mpdevil:2532
|
||||||
msgid ""
|
msgid ""
|
||||||
"The first image in the same directory as the song file matching this regex "
|
"The first image in the same directory as the song file matching this regex "
|
||||||
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
||||||
@ -264,113 +268,118 @@ msgstr ""
|
|||||||
"regulären Ausdruck entspricht, wird angezeigt. %AlbumArtist% und %Album% "
|
"regulären Ausdruck entspricht, wird angezeigt. %AlbumArtist% und %Album% "
|
||||||
"werden durch die entsprechenden Tags des Liedes ersetzt."
|
"werden durch die entsprechenden Tags des Liedes ersetzt."
|
||||||
|
|
||||||
#: mpdevil:2522
|
#: mpdevil:2534
|
||||||
msgid "Profile:"
|
msgid "Profile:"
|
||||||
msgstr "Profil:"
|
msgstr "Profil:"
|
||||||
|
|
||||||
#: mpdevil:2523
|
#: mpdevil:2535
|
||||||
msgid "Name:"
|
msgid "Name:"
|
||||||
msgstr "Name:"
|
msgstr "Name:"
|
||||||
|
|
||||||
#: mpdevil:2524
|
#: mpdevil:2536
|
||||||
msgid "Host:"
|
msgid "Host:"
|
||||||
msgstr "Host:"
|
msgstr "Host:"
|
||||||
|
|
||||||
#: mpdevil:2525
|
#: mpdevil:2537
|
||||||
msgid "Password:"
|
msgid "Password:"
|
||||||
msgstr "Passwort:"
|
msgstr "Passwort:"
|
||||||
|
|
||||||
#: mpdevil:2526
|
#: mpdevil:2538
|
||||||
msgid "Music lib:"
|
msgid "Music lib:"
|
||||||
msgstr "Musikverzeichnis:"
|
msgstr "Musikverzeichnis:"
|
||||||
|
|
||||||
#: mpdevil:2527
|
#: mpdevil:2539
|
||||||
msgid "Cover regex:"
|
msgid "Cover regex:"
|
||||||
msgstr "Cover-Regex:"
|
msgstr "Cover-Regex:"
|
||||||
|
|
||||||
#: mpdevil:2651
|
#: mpdevil:2670
|
||||||
msgid "Choose directory"
|
msgid "Choose directory"
|
||||||
msgstr "Verzeichnis Wählen"
|
msgstr "Verzeichnis Wählen"
|
||||||
|
|
||||||
#: mpdevil:2684
|
#: mpdevil:2703
|
||||||
msgid "Choose the order of information to appear in the playlist:"
|
msgid "Choose the order of information to appear in the playlist:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Lege die Reihenfolge fest, in der Informationen in der Wiedergabeliste "
|
"Lege die Reihenfolge fest, in der Informationen in der Wiedergabeliste "
|
||||||
"angezeigt werden sollen:"
|
"angezeigt werden sollen:"
|
||||||
|
|
||||||
#: mpdevil:2824 mpdevil:2832 mpdevil:3356
|
#: mpdevil:2843 mpdevil:2851 mpdevil:3423
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Einstellungen"
|
msgstr "Einstellungen"
|
||||||
|
|
||||||
#: mpdevil:2843
|
#: mpdevil:2862
|
||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Allgemein"
|
msgstr "Allgemein"
|
||||||
|
|
||||||
#: mpdevil:2844
|
#: mpdevil:2863
|
||||||
msgid "Profiles"
|
msgid "Profiles"
|
||||||
msgstr "Profile"
|
msgstr "Profile"
|
||||||
|
|
||||||
#: mpdevil:2845
|
#: mpdevil:2864
|
||||||
msgid "Playlist"
|
msgid "Playlist"
|
||||||
msgstr "Wiedergabeliste"
|
msgstr "Wiedergabeliste"
|
||||||
|
|
||||||
#: mpdevil:3100
|
#: mpdevil:3120
|
||||||
msgid "Random mode"
|
msgid "Random mode"
|
||||||
msgstr "Zufallsmodus"
|
msgstr "Zufallsmodus"
|
||||||
|
|
||||||
#: mpdevil:3101
|
#: mpdevil:3121
|
||||||
msgid "Repeat mode"
|
msgid "Repeat mode"
|
||||||
msgstr "Dauerschleife"
|
msgstr "Dauerschleife"
|
||||||
|
|
||||||
#: mpdevil:3102
|
#: mpdevil:3122
|
||||||
msgid "Single mode"
|
msgid "Single mode"
|
||||||
msgstr "Einzelstückmodus"
|
msgstr "Einzelstückmodus"
|
||||||
|
|
||||||
#: mpdevil:3103
|
#: mpdevil:3123
|
||||||
msgid "Consume mode"
|
msgid "Consume mode"
|
||||||
msgstr "Wiedergabeliste verbrauchen"
|
msgstr "Wiedergabeliste verbrauchen"
|
||||||
|
|
||||||
#: mpdevil:3204 mpdevil:3212
|
#: mpdevil:3224 mpdevil:3232
|
||||||
msgid "Stats"
|
msgid "Stats"
|
||||||
msgstr "Statistik"
|
msgstr "Statistik"
|
||||||
|
|
||||||
#: mpdevil:3261
|
#: mpdevil:3281
|
||||||
msgid "A small MPD client written in python"
|
msgid "A small MPD client written in python"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3273
|
#: mpdevil:3293
|
||||||
msgid "Select profile"
|
msgid "Select profile"
|
||||||
msgstr "Profil auswählen"
|
msgstr "Profil auswählen"
|
||||||
|
|
||||||
#: mpdevil:3357
|
#: mpdevil:3354
|
||||||
|
#, python-format
|
||||||
|
msgid "Connection to \"%(profile)s\" (%(host)s:%(port)s) failed"
|
||||||
|
msgstr "Verbindung zu \"%(profile)s\" (%(host)s:%(port)s) fehlgeschlagen"
|
||||||
|
|
||||||
|
#: mpdevil:3424
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr "Hilfe"
|
msgstr "Hilfe"
|
||||||
|
|
||||||
#: mpdevil:3358
|
#: mpdevil:3425
|
||||||
msgid "About"
|
msgid "About"
|
||||||
msgstr "Über"
|
msgstr "Über"
|
||||||
|
|
||||||
#: mpdevil:3359
|
#: mpdevil:3426
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Beenden"
|
msgstr "Beenden"
|
||||||
|
|
||||||
#: mpdevil:3362
|
#: mpdevil:3429
|
||||||
msgid "Save window layout"
|
msgid "Save window layout"
|
||||||
msgstr "Fensterlayout speichern"
|
msgstr "Fensterlayout speichern"
|
||||||
|
|
||||||
#: mpdevil:3363
|
#: mpdevil:3430
|
||||||
msgid "Update database"
|
msgid "Update database"
|
||||||
msgstr "Datenbank aktualisieren"
|
msgstr "Datenbank aktualisieren"
|
||||||
|
|
||||||
#: mpdevil:3364
|
#: mpdevil:3431
|
||||||
msgid "Server stats"
|
msgid "Server stats"
|
||||||
msgstr "Serverstatistik"
|
msgstr "Serverstatistik"
|
||||||
|
|
||||||
#: mpdevil:3367
|
#: mpdevil:3434
|
||||||
msgid "Menu"
|
msgid "Menu"
|
||||||
msgstr "Menü"
|
msgstr "Menü"
|
||||||
|
|
||||||
#: mpdevil:3457 mpdevil:3459
|
#: mpdevil:3527 mpdevil:3529
|
||||||
msgid "not connected"
|
msgid "not connected"
|
||||||
msgstr "nicht verbunden"
|
msgstr "nicht verbunden"
|
||||||
|
|
||||||
|
169
po/mpdevil.pot
169
po/mpdevil.pot
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-10 16:59+0200\n"
|
"POT-Creation-Date: 2020-09-10 21:43+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -37,329 +37,338 @@ msgstr ""
|
|||||||
msgid "Unknown Album"
|
msgid "Unknown Album"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:898 mpdevil:1198 mpdevil:2056 mpdevil:2708
|
#: mpdevil:907 mpdevil:1207 mpdevil:2065 mpdevil:2727
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:903 mpdevil:1203 mpdevil:2058 mpdevil:2708
|
#: mpdevil:912 mpdevil:1212 mpdevil:2067 mpdevil:2727
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:909 mpdevil:1380 mpdevil:2059 mpdevil:2708
|
#: mpdevil:918 mpdevil:1389 mpdevil:2068 mpdevil:2727
|
||||||
msgid "Artist"
|
msgid "Artist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:915 mpdevil:2060 mpdevil:2708
|
#: mpdevil:924 mpdevil:2069 mpdevil:2727
|
||||||
msgid "Album"
|
msgid "Album"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:921 mpdevil:1209 mpdevil:2061 mpdevil:2708
|
#: mpdevil:930 mpdevil:1218 mpdevil:2070 mpdevil:2727
|
||||||
msgid "Length"
|
msgid "Length"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:981
|
#: mpdevil:990
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%i hits"
|
msgid "%i hits"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1082
|
#: mpdevil:1091
|
||||||
msgid "Append"
|
msgid "Append"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1083
|
#: mpdevil:1092
|
||||||
msgid "Add all titles to playlist"
|
msgid "Add all titles to playlist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1084
|
#: mpdevil:1093
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1085
|
#: mpdevil:1094
|
||||||
msgid "Directly play all titles"
|
msgid "Directly play all titles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1086
|
#: mpdevil:1095
|
||||||
msgid "Enqueue"
|
msgid "Enqueue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1087
|
#: mpdevil:1096
|
||||||
msgid ""
|
msgid ""
|
||||||
"Append all titles after the currently playing track and clear the playlist "
|
"Append all titles after the currently playing track and clear the playlist "
|
||||||
"from all other songs"
|
"from all other songs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1215
|
#: mpdevil:1224
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1268
|
#: mpdevil:1277
|
||||||
msgid "all genres"
|
msgid "all genres"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1378
|
#: mpdevil:1387
|
||||||
msgid "Album Artist"
|
msgid "Album Artist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1381
|
#: mpdevil:1390
|
||||||
msgid "all artists"
|
msgid "all artists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1554
|
#: mpdevil:1563
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(total_tracks)i titles on %(discs)i discs (%(total_length)s)"
|
msgid "%(total_tracks)i titles on %(discs)i discs (%(total_length)s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1556 mpdevil:2150
|
#: mpdevil:1565 mpdevil:2159
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(total_tracks)i titles (%(total_length)s)"
|
msgid "%(total_tracks)i titles (%(total_length)s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1672
|
#: mpdevil:1681
|
||||||
msgid "Back to current album"
|
msgid "Back to current album"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1673
|
#: mpdevil:1682
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1827
|
#: mpdevil:1836
|
||||||
msgid "searching..."
|
msgid "searching..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1831
|
#: mpdevil:1840
|
||||||
msgid "lyrics not found"
|
msgid "lyrics not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:1901
|
#: mpdevil:1910
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
|
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
|
||||||
"channels, %(file_type)s"
|
"channels, %(file_type)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2031
|
#: mpdevil:2040
|
||||||
msgid "Scroll to current song"
|
msgid "Scroll to current song"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2034
|
#: mpdevil:2043
|
||||||
msgid "Clear playlist"
|
msgid "Clear playlist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2057 mpdevil:2708
|
#: mpdevil:2066 mpdevil:2727
|
||||||
msgid "Disc"
|
msgid "Disc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2062 mpdevil:2708
|
#: mpdevil:2071 mpdevil:2727
|
||||||
msgid "Year"
|
msgid "Year"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2063 mpdevil:2708
|
#: mpdevil:2072 mpdevil:2727
|
||||||
msgid "Genre"
|
msgid "Genre"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2280
|
#: mpdevil:2289
|
||||||
msgid "Show lyrics"
|
msgid "Show lyrics"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2372
|
#: mpdevil:2381
|
||||||
msgid "Main cover size:"
|
msgid "Main cover size:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2373
|
#: mpdevil:2382
|
||||||
msgid "Album view cover size:"
|
msgid "Album view cover size:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2374
|
#: mpdevil:2383
|
||||||
msgid "Action bar icon size:"
|
msgid "Action bar icon size:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2375
|
#: mpdevil:2384
|
||||||
msgid "Secondary icon size:"
|
msgid "Secondary icon size:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2384
|
#: mpdevil:2393
|
||||||
msgid "Sort albums by:"
|
msgid "Sort albums by:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2384
|
#: mpdevil:2393
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2384
|
#: mpdevil:2393
|
||||||
msgid "year"
|
msgid "year"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2385
|
#: mpdevil:2394
|
||||||
msgid "Position of playlist:"
|
msgid "Position of playlist:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2385
|
#: mpdevil:2394
|
||||||
msgid "bottom"
|
msgid "bottom"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2385
|
#: mpdevil:2394
|
||||||
msgid "right"
|
msgid "right"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2399
|
#: mpdevil:2408
|
||||||
msgid "Use Client-side decoration"
|
msgid "Use Client-side decoration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2400
|
#: mpdevil:2409
|
||||||
msgid "Show stop button"
|
msgid "Show stop button"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2401
|
#: mpdevil:2410
|
||||||
msgid "Show lyrics button"
|
msgid "Show lyrics button"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2402
|
#: mpdevil:2411
|
||||||
msgid "Show initials in artist view"
|
msgid "Show initials in artist view"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2403
|
#: mpdevil:2412
|
||||||
msgid "Show tooltips in album view"
|
msgid "Show tooltips in album view"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2404
|
#: mpdevil:2413
|
||||||
msgid "Use 'Album Artist' tag"
|
msgid "Use 'Album Artist' tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2405
|
#: mpdevil:2414
|
||||||
msgid "Send notification on title change"
|
msgid "Send notification on title change"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2406
|
#: mpdevil:2415
|
||||||
msgid "Stop playback on quit"
|
msgid "Stop playback on quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2407
|
#: mpdevil:2416
|
||||||
msgid "Play selected albums and titles immediately"
|
msgid "Play selected albums and titles immediately"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2417
|
#: mpdevil:2426
|
||||||
msgid "<b>View</b>"
|
msgid "<b>View</b>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2418
|
#: mpdevil:2427
|
||||||
msgid "<b>Behavior</b>"
|
msgid "<b>Behavior</b>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2446
|
#: mpdevil:2455
|
||||||
msgid "(restart required)"
|
msgid "(restart required)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2520
|
#: mpdevil:2517 mpdevil:3333
|
||||||
|
msgid "Connect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mpdevil:2532
|
||||||
msgid ""
|
msgid ""
|
||||||
"The first image in the same directory as the song file matching this regex "
|
"The first image in the same directory as the song file matching this regex "
|
||||||
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
||||||
"corresponding tags of the song."
|
"corresponding tags of the song."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2522
|
#: mpdevil:2534
|
||||||
msgid "Profile:"
|
msgid "Profile:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2523
|
#: mpdevil:2535
|
||||||
msgid "Name:"
|
msgid "Name:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2524
|
#: mpdevil:2536
|
||||||
msgid "Host:"
|
msgid "Host:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2525
|
#: mpdevil:2537
|
||||||
msgid "Password:"
|
msgid "Password:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2526
|
#: mpdevil:2538
|
||||||
msgid "Music lib:"
|
msgid "Music lib:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2527
|
#: mpdevil:2539
|
||||||
msgid "Cover regex:"
|
msgid "Cover regex:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2651
|
#: mpdevil:2670
|
||||||
msgid "Choose directory"
|
msgid "Choose directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2684
|
#: mpdevil:2703
|
||||||
msgid "Choose the order of information to appear in the playlist:"
|
msgid "Choose the order of information to appear in the playlist:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2824 mpdevil:2832 mpdevil:3356
|
#: mpdevil:2843 mpdevil:2851 mpdevil:3423
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2843
|
#: mpdevil:2862
|
||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2844
|
#: mpdevil:2863
|
||||||
msgid "Profiles"
|
msgid "Profiles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:2845
|
#: mpdevil:2864
|
||||||
msgid "Playlist"
|
msgid "Playlist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3100
|
#: mpdevil:3120
|
||||||
msgid "Random mode"
|
msgid "Random mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3101
|
#: mpdevil:3121
|
||||||
msgid "Repeat mode"
|
msgid "Repeat mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3102
|
#: mpdevil:3122
|
||||||
msgid "Single mode"
|
msgid "Single mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3103
|
#: mpdevil:3123
|
||||||
msgid "Consume mode"
|
msgid "Consume mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3204 mpdevil:3212
|
#: mpdevil:3224 mpdevil:3232
|
||||||
msgid "Stats"
|
msgid "Stats"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3261
|
#: mpdevil:3281
|
||||||
msgid "A small MPD client written in python"
|
msgid "A small MPD client written in python"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3273
|
#: mpdevil:3293
|
||||||
msgid "Select profile"
|
msgid "Select profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3357
|
#: mpdevil:3354
|
||||||
|
#, python-format
|
||||||
|
msgid "Connection to \"%(profile)s\" (%(host)s:%(port)s) failed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mpdevil:3424
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3358
|
#: mpdevil:3425
|
||||||
msgid "About"
|
msgid "About"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3359
|
#: mpdevil:3426
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3362
|
#: mpdevil:3429
|
||||||
msgid "Save window layout"
|
msgid "Save window layout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3363
|
#: mpdevil:3430
|
||||||
msgid "Update database"
|
msgid "Update database"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3364
|
#: mpdevil:3431
|
||||||
msgid "Server stats"
|
msgid "Server stats"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3367
|
#: mpdevil:3434
|
||||||
msgid "Menu"
|
msgid "Menu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil:3457 mpdevil:3459
|
#: mpdevil:3527 mpdevil:3529
|
||||||
msgid "not connected"
|
msgid "not connected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user