8 Commits

Author SHA1 Message Date
Martin Wagner
13d7c2d36f preparations for 0.9.6 2020-11-06 18:03:55 +01:00
Martin Wagner
b6c5718a02 Update README.md 2020-11-03 17:10:43 +01:00
Martin Wagner
596adc9ca8 added Dutch translation by Martin de Reuver 2020-11-03 17:04:25 +01:00
Martin Wagner
050f453496 fixed spacing in OutputPopover 2020-11-01 13:58:26 +01:00
Martin Wagner
eb4b8adfb1 support single mode oneshot 2020-11-01 13:27:23 +01:00
Martin Wagner
e644655bf7 added missing elif 2020-11-01 13:00:10 +01:00
Martin Wagner
660ec71865 removed unneeded show_all() 2020-11-01 12:58:13 +01:00
Martin Wagner
ad1fd2339c added audio output control to volume button 2020-11-01 12:54:53 +01:00
5 changed files with 609 additions and 20 deletions

View File

@@ -3,6 +3,7 @@ Maintainer:
Translators:
Martin Wagner <martin.wagner.dev@gmail.com> (German)
Martin de Reuver <martin@reuf.nl> (Dutch)
Gentoo ebuild:
Martin Wagner <martin.wagner.dev@gmail.com>

View File

@@ -74,5 +74,5 @@ sudo update-desktop-database
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/

View File

@@ -40,7 +40,7 @@ import dbus.service
from dbus.mainloop.glib import DBusGMainLoop
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)$"
@@ -456,7 +456,7 @@ class MpdEventEmitter(GObject.Object):
"playlist_changed": (GObject.SignalFlags.RUN_FIRST, None, (int,)),
"repeat": (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,)),
"audio": (GObject.SignalFlags.RUN_FIRST, None, (str,str,str,)),
"bitrate": (GObject.SignalFlags.RUN_FIRST, None, (float,))
@@ -590,7 +590,10 @@ class Client(MPDClient):
pass
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(new_state)
@@ -605,8 +608,8 @@ class Client(MPDClient):
self.emitter.emit("bitrate", float(val))
elif key == "songid":
self.emitter.emit("current_song_changed")
elif key == "state":
self.emitter.emit("state", val)
elif key in ["state", "single"]:
self.emitter.emit(key, val)
elif key == "audio":
# see: https://www.musicpd.org/doc/html/user.html#audio-output-format
samplerate, bits, channels=val.split(":")
@@ -617,7 +620,7 @@ class Client(MPDClient):
self.emitter.emit("volume_changed", float(val))
elif key == "playlist":
self.emitter.emit("playlist_changed", int(val))
elif key in ["repeat", "random", "single", "consume"]:
elif key in ["repeat", "random", "consume"]:
if val == "1":
self.emitter.emit(key, True)
else:
@@ -1279,6 +1282,7 @@ class AboutDialog(Gtk.AboutDialog):
self.set_version(VERSION)
self.set_comments(_("A simple music browser for MPD"))
self.set_authors(["Martin Wagner"])
self.set_translator_credits("Martin de Reuver\nMartin Wagner")
self.set_website("https://github.com/SoongNoonien/mpdevil")
self.set_copyright("\xa9 2020 Martin Wagner")
self.set_logo_icon_name("mpdevil")
@@ -1474,7 +1478,6 @@ class SongsView(Gtk.TreeView):
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.popup()
pop.show_all()
except:
pass
@@ -1496,7 +1499,6 @@ class SongsView(Gtk.TreeView):
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.popup()
pop.show_all()
self.handler_unblock(self._key_press_event)
class SongsWindow(Gtk.Box):
@@ -2765,7 +2767,6 @@ class PlaylistWindow(Gtk.Box):
file_name=self._store[path][8]
pop=SongPopover(self._client.wrapped_call("get_metadata", file_name), widget, int(cell.x), int(cell.y))
pop.popup()
pop.show_all()
self._treeview.handler_unblock(self._key_press_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:
self._update=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
def _on_scale_button_release_event(self, widget, event):
@@ -3163,6 +3164,34 @@ class SeekBar(Gtk.Box):
if state == "stop":
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):
def __init__(self, client, settings):
super().__init__(spacing=6)
@@ -3185,10 +3214,10 @@ class PlaybackOptions(Gtk.Box):
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.set_can_focus(False)
self._volume_button.set_sensitive(False) # do not allow volume change by user when MPD has not yet reported volume
adj=self._volume_button.get_adjustment()
adj.set_step_increment(0.05)
adj.set_page_increment(0.1)
self._adj=self._volume_button.get_adjustment()
self._adj.set_step_increment(0.05)
self._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
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._consume_changed=self._client.emitter.connect("consume", self._consume_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("reconnected", self._on_reconnected)
self._settings.connect("notify::mini-player", self._on_mini_player)
@@ -3236,7 +3267,15 @@ class PlaybackOptions(Gtk.Box):
def _single_refresh(self, emitter, val):
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)
def _consume_refresh(self, emitter, val):
@@ -3247,27 +3286,42 @@ class PlaybackOptions(Gtk.Box):
def _volume_refresh(self, emitter, volume):
self._volume_button.handler_block(self._volume_button_changed)
if volume < 0:
self._volume_button.set_sensitive(False)
self._volume_button.set_value(0)
self._adj.set_upper(0)
else:
self._adj.set_upper(1)
self._volume_button.set_value(volume/100)
self._volume_button.set_sensitive(True)
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):
self._repeat_button.set_sensitive(True)
self._random_button.set_sensitive(True)
self._single_button.set_sensitive(True)
self._consume_button.set_sensitive(True)
self._volume_button.set_sensitive(True)
def _on_disconnected(self, *args):
self._repeat_button.set_sensitive(False)
self._random_button.set_sensitive(False)
self._single_button.set_sensitive(False)
self._consume_button.set_sensitive(False)
self._volume_button.set_sensitive(False)
self._repeat_refresh(None, False)
self._random_refresh(None, False)
self._single_refresh(None, False)
self._single_refresh(None, "0")
self._consume_refresh(None, False)
self._volume_refresh(None, -1)

534
po/nl.po Normal file
View 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…"

View File

@@ -4,7 +4,7 @@ import DistUtilsExtra.auto
DistUtilsExtra.auto.setup(
name='mpdevil',
version='0.9.5', # sync with bin/mpdevil
version='0.9.6', # sync with bin/mpdevil
author="Martin Wagner",
author_email="martin.wagner.dev@gmail.com",
description=('A simple music browser for MPD'),