mirror of
https://github.com/SoongNoonien/mpdevil.git
synced 2023-08-10 21:12:44 +03:00
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
13d7c2d36f | ||
![]() |
b6c5718a02 | ||
![]() |
596adc9ca8 | ||
![]() |
050f453496 | ||
![]() |
eb4b8adfb1 | ||
![]() |
e644655bf7 | ||
![]() |
660ec71865 | ||
![]() |
ad1fd2339c |
1
AUTHORS
1
AUTHORS
@@ -3,6 +3,7 @@ Maintainer:
|
|||||||
|
|
||||||
Translators:
|
Translators:
|
||||||
Martin Wagner <martin.wagner.dev@gmail.com> (German)
|
Martin Wagner <martin.wagner.dev@gmail.com> (German)
|
||||||
|
Martin de Reuver <martin@reuf.nl> (Dutch)
|
||||||
|
|
||||||
Gentoo ebuild:
|
Gentoo ebuild:
|
||||||
Martin Wagner <martin.wagner.dev@gmail.com>
|
Martin Wagner <martin.wagner.dev@gmail.com>
|
||||||
|
@@ -74,5 +74,5 @@ sudo update-desktop-database
|
|||||||
Translation
|
Translation
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
mpdevil is currently available in English and German. If you speek another language you can easily translate mpdevil by using `poedit`. Just import `po/mpdevil.pot` from this repo into `poedit`. To test your translation copy the new `.po` file into the `po` directory of your cloned mpdevil repo and proceed as described in the Building section. To get your translation integrated into mpdevil just send me an e-mail or create a pull request. Link to `poedit`: https://poedit.net/
|
mpdevil is currently available in English, German and Dutch. If you speek another language you can easily translate mpdevil by using `poedit`. Just import `po/mpdevil.pot` from this repo into `poedit`. To test your translation copy the new `.po` file into the `po` directory of your cloned mpdevil repo and proceed as described in the Building section. To get your translation integrated into mpdevil just send me an e-mail or create a pull request. Link to `poedit`: https://poedit.net/
|
||||||
|
|
||||||
|
90
bin/mpdevil
90
bin/mpdevil
@@ -40,7 +40,7 @@ import dbus.service
|
|||||||
from dbus.mainloop.glib import DBusGMainLoop
|
from dbus.mainloop.glib import DBusGMainLoop
|
||||||
DBusGMainLoop(set_as_default=True)
|
DBusGMainLoop(set_as_default=True)
|
||||||
|
|
||||||
VERSION="0.9.5" # sync with setup.py
|
VERSION="0.9.6" # sync with setup.py
|
||||||
COVER_REGEX=r"^\.?(album|cover|folder|front).*\.(gif|jpeg|jpg|png)$"
|
COVER_REGEX=r"^\.?(album|cover|folder|front).*\.(gif|jpeg|jpg|png)$"
|
||||||
|
|
||||||
|
|
||||||
@@ -456,7 +456,7 @@ class MpdEventEmitter(GObject.Object):
|
|||||||
"playlist_changed": (GObject.SignalFlags.RUN_FIRST, None, (int,)),
|
"playlist_changed": (GObject.SignalFlags.RUN_FIRST, None, (int,)),
|
||||||
"repeat": (GObject.SignalFlags.RUN_FIRST, None, (bool,)),
|
"repeat": (GObject.SignalFlags.RUN_FIRST, None, (bool,)),
|
||||||
"random": (GObject.SignalFlags.RUN_FIRST, None, (bool,)),
|
"random": (GObject.SignalFlags.RUN_FIRST, None, (bool,)),
|
||||||
"single": (GObject.SignalFlags.RUN_FIRST, None, (bool,)),
|
"single": (GObject.SignalFlags.RUN_FIRST, None, (str,)),
|
||||||
"consume": (GObject.SignalFlags.RUN_FIRST, None, (bool,)),
|
"consume": (GObject.SignalFlags.RUN_FIRST, None, (bool,)),
|
||||||
"audio": (GObject.SignalFlags.RUN_FIRST, None, (str,str,str,)),
|
"audio": (GObject.SignalFlags.RUN_FIRST, None, (str,str,str,)),
|
||||||
"bitrate": (GObject.SignalFlags.RUN_FIRST, None, (float,))
|
"bitrate": (GObject.SignalFlags.RUN_FIRST, None, (float,))
|
||||||
@@ -590,7 +590,10 @@ class Client(MPDClient):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def toggle_option(self, option): # repeat, random, single, consume
|
def toggle_option(self, option): # repeat, random, single, consume
|
||||||
new_state=(int(self.status()[option])+1)%2 # toggle 0,1
|
state=self.status()[option]
|
||||||
|
if state != "1" and state != "0": # support single oneshot
|
||||||
|
state="1"
|
||||||
|
new_state=(int(state)+1)%2 # toggle 0,1
|
||||||
func=getattr(self, option)
|
func=getattr(self, option)
|
||||||
func(new_state)
|
func(new_state)
|
||||||
|
|
||||||
@@ -605,8 +608,8 @@ class Client(MPDClient):
|
|||||||
self.emitter.emit("bitrate", float(val))
|
self.emitter.emit("bitrate", float(val))
|
||||||
elif key == "songid":
|
elif key == "songid":
|
||||||
self.emitter.emit("current_song_changed")
|
self.emitter.emit("current_song_changed")
|
||||||
elif key == "state":
|
elif key in ["state", "single"]:
|
||||||
self.emitter.emit("state", val)
|
self.emitter.emit(key, val)
|
||||||
elif key == "audio":
|
elif key == "audio":
|
||||||
# see: https://www.musicpd.org/doc/html/user.html#audio-output-format
|
# see: https://www.musicpd.org/doc/html/user.html#audio-output-format
|
||||||
samplerate, bits, channels=val.split(":")
|
samplerate, bits, channels=val.split(":")
|
||||||
@@ -617,7 +620,7 @@ class Client(MPDClient):
|
|||||||
self.emitter.emit("volume_changed", float(val))
|
self.emitter.emit("volume_changed", float(val))
|
||||||
elif key == "playlist":
|
elif key == "playlist":
|
||||||
self.emitter.emit("playlist_changed", int(val))
|
self.emitter.emit("playlist_changed", int(val))
|
||||||
elif key in ["repeat", "random", "single", "consume"]:
|
elif key in ["repeat", "random", "consume"]:
|
||||||
if val == "1":
|
if val == "1":
|
||||||
self.emitter.emit(key, True)
|
self.emitter.emit(key, True)
|
||||||
else:
|
else:
|
||||||
@@ -1279,6 +1282,7 @@ class AboutDialog(Gtk.AboutDialog):
|
|||||||
self.set_version(VERSION)
|
self.set_version(VERSION)
|
||||||
self.set_comments(_("A simple music browser for MPD"))
|
self.set_comments(_("A simple music browser for MPD"))
|
||||||
self.set_authors(["Martin Wagner"])
|
self.set_authors(["Martin Wagner"])
|
||||||
|
self.set_translator_credits("Martin de Reuver\nMartin Wagner")
|
||||||
self.set_website("https://github.com/SoongNoonien/mpdevil")
|
self.set_website("https://github.com/SoongNoonien/mpdevil")
|
||||||
self.set_copyright("\xa9 2020 Martin Wagner")
|
self.set_copyright("\xa9 2020 Martin Wagner")
|
||||||
self.set_logo_icon_name("mpdevil")
|
self.set_logo_icon_name("mpdevil")
|
||||||
@@ -1474,7 +1478,6 @@ class SongsView(Gtk.TreeView):
|
|||||||
file_name=self._store[path][self._file_column_id]
|
file_name=self._store[path][self._file_column_id]
|
||||||
pop=SongPopover(self._client.wrapped_call("get_metadata", file_name), widget, int(event.x), int(event.y))
|
pop=SongPopover(self._client.wrapped_call("get_metadata", file_name), widget, int(event.x), int(event.y))
|
||||||
pop.popup()
|
pop.popup()
|
||||||
pop.show_all()
|
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -1496,7 +1499,6 @@ class SongsView(Gtk.TreeView):
|
|||||||
file_name=self._store[path][self._file_column_id]
|
file_name=self._store[path][self._file_column_id]
|
||||||
pop=SongPopover(self._client.wrapped_call("get_metadata", file_name), widget, int(cell.x), int(cell.y))
|
pop=SongPopover(self._client.wrapped_call("get_metadata", file_name), widget, int(cell.x), int(cell.y))
|
||||||
pop.popup()
|
pop.popup()
|
||||||
pop.show_all()
|
|
||||||
self.handler_unblock(self._key_press_event)
|
self.handler_unblock(self._key_press_event)
|
||||||
|
|
||||||
class SongsWindow(Gtk.Box):
|
class SongsWindow(Gtk.Box):
|
||||||
@@ -2765,7 +2767,6 @@ class PlaylistWindow(Gtk.Box):
|
|||||||
file_name=self._store[path][8]
|
file_name=self._store[path][8]
|
||||||
pop=SongPopover(self._client.wrapped_call("get_metadata", file_name), widget, int(cell.x), int(cell.y))
|
pop=SongPopover(self._client.wrapped_call("get_metadata", file_name), widget, int(cell.x), int(cell.y))
|
||||||
pop.popup()
|
pop.popup()
|
||||||
pop.show_all()
|
|
||||||
self._treeview.handler_unblock(self._key_press_event)
|
self._treeview.handler_unblock(self._key_press_event)
|
||||||
|
|
||||||
def _on_button_press_event(self, widget, event):
|
def _on_button_press_event(self, widget, event):
|
||||||
@@ -3119,7 +3120,7 @@ class SeekBar(Gtk.Box):
|
|||||||
if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS:
|
if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||||
self._update=False
|
self._update=False
|
||||||
self._scale.set_has_origin(False)
|
self._scale.set_has_origin(False)
|
||||||
if event.button == 3 and event.type == Gdk.EventType.BUTTON_PRESS:
|
elif event.button == 3 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||||
self._jumped=False
|
self._jumped=False
|
||||||
|
|
||||||
def _on_scale_button_release_event(self, widget, event):
|
def _on_scale_button_release_event(self, widget, event):
|
||||||
@@ -3163,6 +3164,34 @@ class SeekBar(Gtk.Box):
|
|||||||
if state == "stop":
|
if state == "stop":
|
||||||
self._disable()
|
self._disable()
|
||||||
|
|
||||||
|
class OutputPopover(Gtk.Popover):
|
||||||
|
def __init__(self, client, relative):
|
||||||
|
super().__init__()
|
||||||
|
self.set_relative_to(relative)
|
||||||
|
|
||||||
|
# adding vars
|
||||||
|
self._client=client
|
||||||
|
|
||||||
|
# widgets
|
||||||
|
box=Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6, border_width=6)
|
||||||
|
for output in self._client.wrapped_call("outputs"):
|
||||||
|
button=Gtk.CheckButton(label="{} ({})".format(output["outputname"], output["plugin"]))
|
||||||
|
if output["outputenabled"] == "1":
|
||||||
|
button.set_active(True)
|
||||||
|
button.connect("toggled", self._on_button_toggled, output["outputid"])
|
||||||
|
box.pack_start(button, False, False, 0)
|
||||||
|
|
||||||
|
# packing
|
||||||
|
self.add(box)
|
||||||
|
|
||||||
|
box.show_all()
|
||||||
|
|
||||||
|
def _on_button_toggled(self, button, out_id):
|
||||||
|
if button.get_active():
|
||||||
|
self._client.wrapped_call("enableoutput", out_id)
|
||||||
|
else:
|
||||||
|
self._client.wrapped_call("disableoutput", out_id)
|
||||||
|
|
||||||
class PlaybackOptions(Gtk.Box):
|
class PlaybackOptions(Gtk.Box):
|
||||||
def __init__(self, client, settings):
|
def __init__(self, client, settings):
|
||||||
super().__init__(spacing=6)
|
super().__init__(spacing=6)
|
||||||
@@ -3185,10 +3214,10 @@ class PlaybackOptions(Gtk.Box):
|
|||||||
self._consume_button.set_can_focus(False)
|
self._consume_button.set_can_focus(False)
|
||||||
self._volume_button=Gtk.VolumeButton(use_symbolic=True, size=self._settings.get_gtk_icon_size("icon-size"))
|
self._volume_button=Gtk.VolumeButton(use_symbolic=True, size=self._settings.get_gtk_icon_size("icon-size"))
|
||||||
self._volume_button.set_can_focus(False)
|
self._volume_button.set_can_focus(False)
|
||||||
self._volume_button.set_sensitive(False) # do not allow volume change by user when MPD has not yet reported volume
|
self._adj=self._volume_button.get_adjustment()
|
||||||
adj=self._volume_button.get_adjustment()
|
self._adj.set_step_increment(0.05)
|
||||||
adj.set_step_increment(0.05)
|
self._adj.set_page_increment(0.1)
|
||||||
adj.set_page_increment(0.1)
|
self._adj.set_upper(0) # do not allow volume change by user when MPD has not yet reported volume (no output enabled/avail)
|
||||||
|
|
||||||
# connect
|
# connect
|
||||||
self._random_button_toggled=self._random_button.connect("toggled", self._set_option, "random")
|
self._random_button_toggled=self._random_button.connect("toggled", self._set_option, "random")
|
||||||
@@ -3201,6 +3230,8 @@ class PlaybackOptions(Gtk.Box):
|
|||||||
self._single_changed=self._client.emitter.connect("single", self._single_refresh)
|
self._single_changed=self._client.emitter.connect("single", self._single_refresh)
|
||||||
self._consume_changed=self._client.emitter.connect("consume", self._consume_refresh)
|
self._consume_changed=self._client.emitter.connect("consume", self._consume_refresh)
|
||||||
self._volume_changed=self._client.emitter.connect("volume_changed", self._volume_refresh)
|
self._volume_changed=self._client.emitter.connect("volume_changed", self._volume_refresh)
|
||||||
|
self._single_button.connect("button-press-event", self._on_single_button_press_event)
|
||||||
|
self._volume_button.connect("button-press-event", self._on_volume_button_press_event)
|
||||||
self._client.emitter.connect("disconnected", self._on_disconnected)
|
self._client.emitter.connect("disconnected", self._on_disconnected)
|
||||||
self._client.emitter.connect("reconnected", self._on_reconnected)
|
self._client.emitter.connect("reconnected", self._on_reconnected)
|
||||||
self._settings.connect("notify::mini-player", self._on_mini_player)
|
self._settings.connect("notify::mini-player", self._on_mini_player)
|
||||||
@@ -3236,7 +3267,15 @@ class PlaybackOptions(Gtk.Box):
|
|||||||
|
|
||||||
def _single_refresh(self, emitter, val):
|
def _single_refresh(self, emitter, val):
|
||||||
self._single_button.handler_block(self._single_button_toggled)
|
self._single_button.handler_block(self._single_button_toggled)
|
||||||
self._single_button.set_active(val)
|
if val == "1":
|
||||||
|
self._single_button.get_style_context().remove_class("destructive-action")
|
||||||
|
self._single_button.set_active(True)
|
||||||
|
elif val == "oneshot":
|
||||||
|
self._single_button.get_style_context().add_class("destructive-action")
|
||||||
|
self._single_button.set_active(False)
|
||||||
|
else:
|
||||||
|
self._single_button.get_style_context().remove_class("destructive-action")
|
||||||
|
self._single_button.set_active(False)
|
||||||
self._single_button.handler_unblock(self._single_button_toggled)
|
self._single_button.handler_unblock(self._single_button_toggled)
|
||||||
|
|
||||||
def _consume_refresh(self, emitter, val):
|
def _consume_refresh(self, emitter, val):
|
||||||
@@ -3247,27 +3286,42 @@ class PlaybackOptions(Gtk.Box):
|
|||||||
def _volume_refresh(self, emitter, volume):
|
def _volume_refresh(self, emitter, volume):
|
||||||
self._volume_button.handler_block(self._volume_button_changed)
|
self._volume_button.handler_block(self._volume_button_changed)
|
||||||
if volume < 0:
|
if volume < 0:
|
||||||
self._volume_button.set_sensitive(False)
|
|
||||||
self._volume_button.set_value(0)
|
self._volume_button.set_value(0)
|
||||||
|
self._adj.set_upper(0)
|
||||||
else:
|
else:
|
||||||
|
self._adj.set_upper(1)
|
||||||
self._volume_button.set_value(volume/100)
|
self._volume_button.set_value(volume/100)
|
||||||
self._volume_button.set_sensitive(True)
|
|
||||||
self._volume_button.handler_unblock(self._volume_button_changed)
|
self._volume_button.handler_unblock(self._volume_button_changed)
|
||||||
|
|
||||||
|
def _on_volume_button_press_event(self, widget, event):
|
||||||
|
if event.button == 3 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||||
|
pop=OutputPopover(self._client, self._volume_button)
|
||||||
|
pop.popup()
|
||||||
|
|
||||||
|
def _on_single_button_press_event(self, widget, event):
|
||||||
|
if event.button == 3 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||||
|
state=self._client.wrapped_call("status")["single"]
|
||||||
|
if state == "oneshot":
|
||||||
|
self._client.wrapped_call("single", "0")
|
||||||
|
else:
|
||||||
|
self._client.wrapped_call("single", "oneshot")
|
||||||
|
|
||||||
def _on_reconnected(self, *args):
|
def _on_reconnected(self, *args):
|
||||||
self._repeat_button.set_sensitive(True)
|
self._repeat_button.set_sensitive(True)
|
||||||
self._random_button.set_sensitive(True)
|
self._random_button.set_sensitive(True)
|
||||||
self._single_button.set_sensitive(True)
|
self._single_button.set_sensitive(True)
|
||||||
self._consume_button.set_sensitive(True)
|
self._consume_button.set_sensitive(True)
|
||||||
|
self._volume_button.set_sensitive(True)
|
||||||
|
|
||||||
def _on_disconnected(self, *args):
|
def _on_disconnected(self, *args):
|
||||||
self._repeat_button.set_sensitive(False)
|
self._repeat_button.set_sensitive(False)
|
||||||
self._random_button.set_sensitive(False)
|
self._random_button.set_sensitive(False)
|
||||||
self._single_button.set_sensitive(False)
|
self._single_button.set_sensitive(False)
|
||||||
self._consume_button.set_sensitive(False)
|
self._consume_button.set_sensitive(False)
|
||||||
|
self._volume_button.set_sensitive(False)
|
||||||
self._repeat_refresh(None, False)
|
self._repeat_refresh(None, False)
|
||||||
self._random_refresh(None, False)
|
self._random_refresh(None, False)
|
||||||
self._single_refresh(None, False)
|
self._single_refresh(None, "0")
|
||||||
self._consume_refresh(None, False)
|
self._consume_refresh(None, False)
|
||||||
self._volume_refresh(None, -1)
|
self._volume_refresh(None, -1)
|
||||||
|
|
||||||
|
534
po/nl.po
Normal file
534
po/nl.po
Normal file
@@ -0,0 +1,534 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2020-10-20 18:10+0200\n"
|
||||||
|
"PO-Revision-Date: 2020-11-03 16:53+0100\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Language: nl\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 2.3.1\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: mpdevil:419
|
||||||
|
msgid "Unknown Title"
|
||||||
|
msgstr "Onbekende titel"
|
||||||
|
|
||||||
|
#: mpdevil:719
|
||||||
|
msgid "Main cover size:"
|
||||||
|
msgstr "Grootte albumhoes:"
|
||||||
|
|
||||||
|
#: mpdevil:720
|
||||||
|
msgid "Album view cover size:"
|
||||||
|
msgstr "Hoesgrootte in albumlijst:"
|
||||||
|
|
||||||
|
#: mpdevil:721
|
||||||
|
msgid "Action bar icon size:"
|
||||||
|
msgstr "Grootte iconen werkbalk:"
|
||||||
|
|
||||||
|
#: mpdevil:722
|
||||||
|
msgid "Secondary icon size:"
|
||||||
|
msgstr "Grootte overige iconen:"
|
||||||
|
|
||||||
|
#: mpdevil:735
|
||||||
|
msgid "Sort albums by:"
|
||||||
|
msgstr "Albums sorteren op:"
|
||||||
|
|
||||||
|
#: mpdevil:735
|
||||||
|
msgid "name"
|
||||||
|
msgstr "naam"
|
||||||
|
|
||||||
|
#: mpdevil:735
|
||||||
|
msgid "year"
|
||||||
|
msgstr "jaar"
|
||||||
|
|
||||||
|
#: mpdevil:736
|
||||||
|
msgid "Position of playlist:"
|
||||||
|
msgstr "Positie afspeellijst:"
|
||||||
|
|
||||||
|
#: mpdevil:736
|
||||||
|
msgid "bottom"
|
||||||
|
msgstr "onder"
|
||||||
|
|
||||||
|
#: mpdevil:736
|
||||||
|
msgid "right"
|
||||||
|
msgstr "rechts"
|
||||||
|
|
||||||
|
#: mpdevil:754
|
||||||
|
msgid "Use Client-side decoration"
|
||||||
|
msgstr "Gebruik vensterdecoratie van mpdevil"
|
||||||
|
|
||||||
|
#: mpdevil:755
|
||||||
|
msgid "Show stop button"
|
||||||
|
msgstr "Toon stopknop"
|
||||||
|
|
||||||
|
#: mpdevil:756
|
||||||
|
msgid "Show lyrics button"
|
||||||
|
msgstr "Toon songtekstknop"
|
||||||
|
|
||||||
|
#: mpdevil:757
|
||||||
|
msgid "Show initials in artist view"
|
||||||
|
msgstr "Toon beginletters in artiestenlijst"
|
||||||
|
|
||||||
|
#: mpdevil:758
|
||||||
|
msgid "Show tooltips in album view"
|
||||||
|
msgstr "Toon tooltip in albumlijst"
|
||||||
|
|
||||||
|
#: mpdevil:759
|
||||||
|
msgid "Use “Album Artist” tag"
|
||||||
|
msgstr "Gebruik tag \"Album Artist\""
|
||||||
|
|
||||||
|
#: mpdevil:760
|
||||||
|
msgid "Send notification on title change"
|
||||||
|
msgstr "Verstuur een melding bij titelwisseling"
|
||||||
|
|
||||||
|
#: mpdevil:761
|
||||||
|
msgid "Stop playback on quit"
|
||||||
|
msgstr "Stop afspelen bij afsluiten"
|
||||||
|
|
||||||
|
#: mpdevil:762
|
||||||
|
msgid "Play selected albums and titles immediately"
|
||||||
|
msgstr "Geselecteerde albums en titels direct afspelen"
|
||||||
|
|
||||||
|
#: mpdevil:775
|
||||||
|
msgid "<b>View</b>"
|
||||||
|
msgstr "<b>Beeld</b>"
|
||||||
|
|
||||||
|
#: mpdevil:776
|
||||||
|
msgid "<b>Behavior</b>"
|
||||||
|
msgstr "<b>Gedrag</b>"
|
||||||
|
|
||||||
|
#: mpdevil:808
|
||||||
|
msgid "(restart required)"
|
||||||
|
msgstr "(herstart vereist)"
|
||||||
|
|
||||||
|
#: mpdevil:870 mpdevil:3409
|
||||||
|
msgid "Connect"
|
||||||
|
msgstr "Verbinden"
|
||||||
|
|
||||||
|
#: mpdevil:886
|
||||||
|
msgid ""
|
||||||
|
"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 "
|
||||||
|
"corresponding tags of the song."
|
||||||
|
msgstr ""
|
||||||
|
"De eerste afbeelding in dezelfde map als het muziekbestand die overeenkomt "
|
||||||
|
"met deze regex wordt getoond. %AlbumArtist% en %Album% worden vervangen door "
|
||||||
|
"de bijbehorende tags van het muziekbestand."
|
||||||
|
|
||||||
|
#: mpdevil:891
|
||||||
|
msgid "Profile:"
|
||||||
|
msgstr "Profiel:"
|
||||||
|
|
||||||
|
#: mpdevil:892
|
||||||
|
msgid "Name:"
|
||||||
|
msgstr "Naam:"
|
||||||
|
|
||||||
|
#: mpdevil:893
|
||||||
|
msgid "Host:"
|
||||||
|
msgstr "Host:"
|
||||||
|
|
||||||
|
#: mpdevil:894
|
||||||
|
msgid "Password:"
|
||||||
|
msgstr "Wachtwoord:"
|
||||||
|
|
||||||
|
#: mpdevil:895
|
||||||
|
msgid "Music lib:"
|
||||||
|
msgstr "Muziekmap:"
|
||||||
|
|
||||||
|
#: mpdevil:896
|
||||||
|
msgid "Cover regex:"
|
||||||
|
msgstr "Regex albumhoes:"
|
||||||
|
|
||||||
|
#: mpdevil:1029
|
||||||
|
msgid "Choose directory"
|
||||||
|
msgstr "Kies een map"
|
||||||
|
|
||||||
|
#: mpdevil:1065
|
||||||
|
msgid "Choose the order of information to appear in the playlist:"
|
||||||
|
msgstr "Kies de volgorde van de informatie getoond in de afspeellijst:"
|
||||||
|
|
||||||
|
#: mpdevil:1082 mpdevil:1604 mpdevil:1930 mpdevil:2633
|
||||||
|
msgid "No"
|
||||||
|
msgstr "Nr"
|
||||||
|
|
||||||
|
#: mpdevil:1082 mpdevil:2634
|
||||||
|
msgid "Disc"
|
||||||
|
msgstr "Disc"
|
||||||
|
|
||||||
|
#: mpdevil:1082 mpdevil:1609 mpdevil:1933 mpdevil:2635
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "Titel"
|
||||||
|
|
||||||
|
#: mpdevil:1082 mpdevil:1615 mpdevil:2636
|
||||||
|
msgid "Artist"
|
||||||
|
msgstr "Artiest"
|
||||||
|
|
||||||
|
#: mpdevil:1082 mpdevil:1621 mpdevil:2637
|
||||||
|
msgid "Album"
|
||||||
|
msgstr "Album"
|
||||||
|
|
||||||
|
#: mpdevil:1082 mpdevil:1627 mpdevil:1937 mpdevil:2638
|
||||||
|
msgid "Length"
|
||||||
|
msgstr "Lengte"
|
||||||
|
|
||||||
|
#: mpdevil:1082 mpdevil:2639
|
||||||
|
msgid "Year"
|
||||||
|
msgstr "Jaar"
|
||||||
|
|
||||||
|
#: mpdevil:1082 mpdevil:2640
|
||||||
|
msgid "Genre"
|
||||||
|
msgstr "Genre"
|
||||||
|
|
||||||
|
#: mpdevil:1198 mpdevil:1200 mpdevil:3498
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Instellingen"
|
||||||
|
|
||||||
|
#: mpdevil:1213 mpdevil:1222 mpdevil:3345
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Algemeen"
|
||||||
|
|
||||||
|
#: mpdevil:1214 mpdevil:1223 mpdevil:3509
|
||||||
|
msgid "Profiles"
|
||||||
|
msgstr "Profielen"
|
||||||
|
|
||||||
|
#: mpdevil:1215 mpdevil:1224 mpdevil:3349
|
||||||
|
msgid "Playlist"
|
||||||
|
msgstr "Afspeellijst"
|
||||||
|
|
||||||
|
#: mpdevil:1238
|
||||||
|
msgid "Stats"
|
||||||
|
msgstr "Statistieken"
|
||||||
|
|
||||||
|
#: mpdevil:1248
|
||||||
|
msgid "<b>Protocol:</b>"
|
||||||
|
msgstr "<b>Protocol:</b>"
|
||||||
|
|
||||||
|
#: mpdevil:1249
|
||||||
|
msgid "<b>Uptime:</b>"
|
||||||
|
msgstr "<b>Uptime:</b>"
|
||||||
|
|
||||||
|
#: mpdevil:1250
|
||||||
|
msgid "<b>Playtime:</b>"
|
||||||
|
msgstr "<b>Afspeeltijd:</b>"
|
||||||
|
|
||||||
|
#: mpdevil:1251
|
||||||
|
msgid "<b>Artists:</b>"
|
||||||
|
msgstr "<b>Artiesten:</b>"
|
||||||
|
|
||||||
|
#: mpdevil:1252
|
||||||
|
msgid "<b>Albums:</b>"
|
||||||
|
msgstr "<b>Albums:</b>"
|
||||||
|
|
||||||
|
#: mpdevil:1253
|
||||||
|
msgid "<b>Songs:</b>"
|
||||||
|
msgstr "<b>Titels:</b>"
|
||||||
|
|
||||||
|
#: mpdevil:1254
|
||||||
|
msgid "<b>Total Playtime:</b>"
|
||||||
|
msgstr "<b>Totale speelduur:</b>"
|
||||||
|
|
||||||
|
#: mpdevil:1255
|
||||||
|
msgid "<b>Database Update:</b>"
|
||||||
|
msgstr "<b>Database bijgewerkt:</b>"
|
||||||
|
|
||||||
|
#: mpdevil:1280
|
||||||
|
msgid "A simple music browser for MPD"
|
||||||
|
msgstr "Een simpele muziekspeler voor MPD"
|
||||||
|
|
||||||
|
#: mpdevil:1360
|
||||||
|
msgid "MPD-Tag"
|
||||||
|
msgstr "MPD-Tag"
|
||||||
|
|
||||||
|
#: mpdevil:1363
|
||||||
|
msgid "Value"
|
||||||
|
msgstr "Waarde"
|
||||||
|
|
||||||
|
#: mpdevil:1522
|
||||||
|
msgid "_Append"
|
||||||
|
msgstr "_Toevoegen"
|
||||||
|
|
||||||
|
#: mpdevil:1524
|
||||||
|
msgid "Add all titles to playlist"
|
||||||
|
msgstr "Voeg alle titels toe aan de afspeellijst"
|
||||||
|
|
||||||
|
#: mpdevil:1525
|
||||||
|
msgid "_Play"
|
||||||
|
msgstr "_Afspelen"
|
||||||
|
|
||||||
|
#: mpdevil:1527
|
||||||
|
msgid "Directly play all titles"
|
||||||
|
msgstr "Alle titels direct afspelen"
|
||||||
|
|
||||||
|
#: mpdevil:1528
|
||||||
|
msgid "_Enqueue"
|
||||||
|
msgstr "_In wachtrij plaatsen"
|
||||||
|
|
||||||
|
#: mpdevil:1530
|
||||||
|
msgid ""
|
||||||
|
"Append all titles after the currently playing track and clear the playlist "
|
||||||
|
"from all other songs"
|
||||||
|
msgstr ""
|
||||||
|
"Alle titels toevoegen na de nu spelende titel en alle overige titels uit de "
|
||||||
|
"afspeellijst verwijderen"
|
||||||
|
|
||||||
|
#: mpdevil:1665
|
||||||
|
msgid "all tags"
|
||||||
|
msgstr "alle tags"
|
||||||
|
|
||||||
|
#: mpdevil:1689
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "{num} hits"
|
||||||
|
msgstr "{num} hits"
|
||||||
|
|
||||||
|
#: mpdevil:1727
|
||||||
|
msgid "all genres"
|
||||||
|
msgstr "alle genres"
|
||||||
|
|
||||||
|
#: mpdevil:1830
|
||||||
|
msgid "all artists"
|
||||||
|
msgstr "alle artiesten"
|
||||||
|
|
||||||
|
#: mpdevil:1942
|
||||||
|
msgid "Close"
|
||||||
|
msgstr "Afsluiten"
|
||||||
|
|
||||||
|
#: mpdevil:2113
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "{titles} titles on {discs} discs ({length})"
|
||||||
|
msgstr "{titles} titels op {discs} discs ({length})"
|
||||||
|
|
||||||
|
#: mpdevil:2116 mpdevil:2728
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "{titles} titles ({length})"
|
||||||
|
msgstr "{titles} titels ({length})"
|
||||||
|
|
||||||
|
#: mpdevil:2242 mpdevil:3368
|
||||||
|
msgid "Back to current album"
|
||||||
|
msgstr "Terug naar huidige album"
|
||||||
|
|
||||||
|
#: mpdevil:2244
|
||||||
|
msgid "Search"
|
||||||
|
msgstr "Zoeken"
|
||||||
|
|
||||||
|
#: mpdevil:2421
|
||||||
|
msgid "searching..."
|
||||||
|
msgstr "bezig met zoeken..."
|
||||||
|
|
||||||
|
#: mpdevil:2426
|
||||||
|
msgid "connection error"
|
||||||
|
msgstr "verbindingsfout"
|
||||||
|
|
||||||
|
#: mpdevil:2428
|
||||||
|
msgid "lyrics not found"
|
||||||
|
msgstr "geen songtekst gevonden"
|
||||||
|
|
||||||
|
#: mpdevil:2476
|
||||||
|
#, python-brace-format
|
||||||
|
msgid ""
|
||||||
|
"{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} channels, "
|
||||||
|
"{file_type}"
|
||||||
|
msgstr ""
|
||||||
|
"{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} kanalen, "
|
||||||
|
"{file_type}"
|
||||||
|
|
||||||
|
#: mpdevil:2606
|
||||||
|
msgid "Scroll to current song"
|
||||||
|
msgstr "Naar de huidige titel scrollen"
|
||||||
|
|
||||||
|
#: mpdevil:2614 mpdevil:3384
|
||||||
|
msgid "Clear playlist"
|
||||||
|
msgstr "Afspeellijst legen"
|
||||||
|
|
||||||
|
#: mpdevil:2883
|
||||||
|
msgid "Show lyrics"
|
||||||
|
msgstr "Toon songtekst"
|
||||||
|
|
||||||
|
#: mpdevil:3161
|
||||||
|
msgid "Random mode"
|
||||||
|
msgstr "Willekeurige modus"
|
||||||
|
|
||||||
|
#: mpdevil:3163
|
||||||
|
msgid "Repeat mode"
|
||||||
|
msgstr "Herhaalmodus"
|
||||||
|
|
||||||
|
#: mpdevil:3165
|
||||||
|
msgid "Single mode"
|
||||||
|
msgstr "Enkele modus"
|
||||||
|
|
||||||
|
#: mpdevil:3167
|
||||||
|
msgid "Consume mode"
|
||||||
|
msgstr "Verbruiksmodus"
|
||||||
|
|
||||||
|
#: mpdevil:3346
|
||||||
|
msgid "Window"
|
||||||
|
msgstr "Venster"
|
||||||
|
|
||||||
|
#: mpdevil:3347
|
||||||
|
msgid "Playback"
|
||||||
|
msgstr "Afspelen"
|
||||||
|
|
||||||
|
#: mpdevil:3348
|
||||||
|
msgid "Search, Album Dialog and Album List"
|
||||||
|
msgstr "Zoeken, Albumdialoog en Albumlijst"
|
||||||
|
|
||||||
|
#: mpdevil:3358
|
||||||
|
msgid "Open online help"
|
||||||
|
msgstr "Online hulp openen"
|
||||||
|
|
||||||
|
#: mpdevil:3359
|
||||||
|
msgid "Open shortcuts window"
|
||||||
|
msgstr "Venster met sneltoetsen openen"
|
||||||
|
|
||||||
|
#: mpdevil:3360
|
||||||
|
msgid "Open menu"
|
||||||
|
msgstr "Menu openen"
|
||||||
|
|
||||||
|
#: mpdevil:3361 mpdevil:3504
|
||||||
|
msgid "Update database"
|
||||||
|
msgstr "Database bijwerken"
|
||||||
|
|
||||||
|
#: mpdevil:3362 mpdevil:3502
|
||||||
|
msgid "Quit"
|
||||||
|
msgstr "Stoppen"
|
||||||
|
|
||||||
|
#: mpdevil:3363
|
||||||
|
msgid "Cycle through profiles"
|
||||||
|
msgstr "Profielen doorlopen"
|
||||||
|
|
||||||
|
#: mpdevil:3364
|
||||||
|
msgid "Cycle through profiles in reversed order"
|
||||||
|
msgstr "Profielen doorlopen in omgekeerde volgorde"
|
||||||
|
|
||||||
|
#: mpdevil:3365
|
||||||
|
msgid "Toggle mini player"
|
||||||
|
msgstr "Omschakelen naar minispeler"
|
||||||
|
|
||||||
|
#: mpdevil:3366
|
||||||
|
msgid "Toggle lyrics"
|
||||||
|
msgstr "Omschakelen naar songtekst"
|
||||||
|
|
||||||
|
#: mpdevil:3367
|
||||||
|
msgid "Toggle search"
|
||||||
|
msgstr "Omschakelen naar zoeken"
|
||||||
|
|
||||||
|
#: mpdevil:3369
|
||||||
|
msgid "Play/Pause"
|
||||||
|
msgstr "Afspelen/Pauzeren"
|
||||||
|
|
||||||
|
#: mpdevil:3370
|
||||||
|
msgid "Stop"
|
||||||
|
msgstr "Stoppen"
|
||||||
|
|
||||||
|
#: mpdevil:3371
|
||||||
|
msgid "Next title"
|
||||||
|
msgstr "Volgende titel"
|
||||||
|
|
||||||
|
#: mpdevil:3372
|
||||||
|
msgid "Previous title"
|
||||||
|
msgstr "Vorige titel"
|
||||||
|
|
||||||
|
#: mpdevil:3373
|
||||||
|
msgid "Seek forward"
|
||||||
|
msgstr "Vooruit spoelen"
|
||||||
|
|
||||||
|
#: mpdevil:3374
|
||||||
|
msgid "Seek backward"
|
||||||
|
msgstr "Achteruit spoelen"
|
||||||
|
|
||||||
|
#: mpdevil:3375
|
||||||
|
msgid "Toggle repeat mode"
|
||||||
|
msgstr "Omschakelen naar herhaalmodus"
|
||||||
|
|
||||||
|
#: mpdevil:3376
|
||||||
|
msgid "Toggle random mode"
|
||||||
|
msgstr "Omschakelen naar willekeurige modus"
|
||||||
|
|
||||||
|
#: mpdevil:3377
|
||||||
|
msgid "Toggle single mode"
|
||||||
|
msgstr "Omschakelen naar enkele modus"
|
||||||
|
|
||||||
|
#: mpdevil:3378
|
||||||
|
msgid "Toggle consume mode"
|
||||||
|
msgstr "Omschakelen naar verbruiksmodus"
|
||||||
|
|
||||||
|
#: mpdevil:3379
|
||||||
|
msgid "Play selected item (next)"
|
||||||
|
msgstr "Geselecteerde item afspelen (volgende)"
|
||||||
|
|
||||||
|
#: mpdevil:3379
|
||||||
|
msgid "Left-click"
|
||||||
|
msgstr "Linksklik"
|
||||||
|
|
||||||
|
#: mpdevil:3380
|
||||||
|
msgid "Append selected item"
|
||||||
|
msgstr "Geselecteerde item toevoegen"
|
||||||
|
|
||||||
|
#: mpdevil:3380 mpdevil:3383
|
||||||
|
msgid "Middle-click"
|
||||||
|
msgstr "Middelklik"
|
||||||
|
|
||||||
|
#: mpdevil:3381
|
||||||
|
msgid "Play selected item immediately"
|
||||||
|
msgstr "Geselecteerde item direct afspelen"
|
||||||
|
|
||||||
|
#: mpdevil:3381
|
||||||
|
msgid "Double-click"
|
||||||
|
msgstr "Dubbelklik"
|
||||||
|
|
||||||
|
#: mpdevil:3382 mpdevil:3385
|
||||||
|
msgid "Show additional information"
|
||||||
|
msgstr "Toon extra informatie"
|
||||||
|
|
||||||
|
#: mpdevil:3382 mpdevil:3385
|
||||||
|
msgid "Right-click"
|
||||||
|
msgstr "Rechtsklik"
|
||||||
|
|
||||||
|
#: mpdevil:3383
|
||||||
|
msgid "Remove selected song"
|
||||||
|
msgstr "Geselecteerde titel verwijderen"
|
||||||
|
|
||||||
|
#: mpdevil:3427
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Connection to “{profile}” ({host}:{port}) failed"
|
||||||
|
msgstr "Verbinding met “{profile}” ({host}:{port}) mislukt"
|
||||||
|
|
||||||
|
#: mpdevil:3499
|
||||||
|
msgid "Keyboard shortcuts"
|
||||||
|
msgstr "Sneltoetsen"
|
||||||
|
|
||||||
|
#: mpdevil:3500
|
||||||
|
msgid "Help"
|
||||||
|
msgstr "Hulp"
|
||||||
|
|
||||||
|
#: mpdevil:3501
|
||||||
|
msgid "About"
|
||||||
|
msgstr "Over"
|
||||||
|
|
||||||
|
#: mpdevil:3505
|
||||||
|
msgid "Server stats"
|
||||||
|
msgstr "Serverstatistieken"
|
||||||
|
|
||||||
|
#: mpdevil:3510
|
||||||
|
msgid "Mini player"
|
||||||
|
msgstr "Minispeler"
|
||||||
|
|
||||||
|
#: mpdevil:3511
|
||||||
|
msgid "Save window layout"
|
||||||
|
msgstr "Vensterindeling opslaan"
|
||||||
|
|
||||||
|
#: mpdevil:3516
|
||||||
|
msgid "Menu"
|
||||||
|
msgstr "Menu"
|
||||||
|
|
||||||
|
#: mpdevil:3566 mpdevil:3568
|
||||||
|
msgid "connecting…"
|
||||||
|
msgstr "verbinding maken…"
|
2
setup.py
2
setup.py
@@ -4,7 +4,7 @@ import DistUtilsExtra.auto
|
|||||||
|
|
||||||
DistUtilsExtra.auto.setup(
|
DistUtilsExtra.auto.setup(
|
||||||
name='mpdevil',
|
name='mpdevil',
|
||||||
version='0.9.5', # sync with bin/mpdevil
|
version='0.9.6', # sync with bin/mpdevil
|
||||||
author="Martin Wagner",
|
author="Martin Wagner",
|
||||||
author_email="martin.wagner.dev@gmail.com",
|
author_email="martin.wagner.dev@gmail.com",
|
||||||
description=('A simple music browser for MPD'),
|
description=('A simple music browser for MPD'),
|
||||||
|
Reference in New Issue
Block a user