mirror of
https://github.com/SoongNoonien/mpdevil.git
synced 2023-08-10 21:12:44 +03:00
Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ab7c9c6bd6 | ||
![]() |
4c7f953c98 | ||
![]() |
8ba986bb4d | ||
![]() |
0230544df4 | ||
![]() |
0b08bd80bf | ||
![]() |
b786b55644 | ||
![]() |
6f608d923b |
32
README.md
Normal file
32
README.md
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
README for mpdevil
|
||||||
|
==================
|
||||||
|
mpdevil is focused on playing your local music directly instead of managing playlists or playing network streams. So it neither supports saving playlists nor restoring them. Therefore mpdevil is mainly a music browser which aims to be easy to use. mpdevil dosen't store any client side database of your music library. Instead all tags and covers get presented to you in real time. So you'll never see any outdated information in your browser. mpdevil strongly relies on tags especially on the AlbumArtist tag.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
1. playing songs without doubleclicking
|
||||||
|
2. displaying covers
|
||||||
|
3. fetching lyrics form the web (based on PyLyrics 1.1.0)
|
||||||
|
4. searching songs in your music library
|
||||||
|
5. removing single tracks form playlist by hovering and pressing del
|
||||||
|
6. appending albums by rightclick
|
||||||
|
7. sending notifications on title change
|
||||||
|
8. managing multiple mpd servers
|
||||||
|
|
||||||
|
TODO
|
||||||
|
----
|
||||||
|
1. MPRIS interface
|
||||||
|
2. connecting to mpd servers with password
|
||||||
|
|
||||||
|
Building and installation
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
To build from source, use::
|
||||||
|
|
||||||
|
./autogen.sh
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
30
README.rst
30
README.rst
@@ -1,30 +0,0 @@
|
|||||||
README for mpdevil
|
|
||||||
==================
|
|
||||||
mpdevil is focused on playing your local music directly instead of managing playlists or playing network streams. So it neither supports saving playlists nor restoring them. Therefore mpdevil is mainly a music browser which aims to be easy to use. mpdevil dosen't store any client side database of your music library. Instead all tags and covers get presented to you in real time. So you'll never see any outdated information in your browser.
|
|
||||||
|
|
||||||
Features
|
|
||||||
--------
|
|
||||||
|
|
||||||
-playing songs without doubleclicking
|
|
||||||
|
|
||||||
-displaying covers
|
|
||||||
|
|
||||||
-fetching lyrics form the web (based on PyLyrics 1.1.0)
|
|
||||||
|
|
||||||
-searching songs in your music library
|
|
||||||
|
|
||||||
-removing single tracks form playlist by hovering and pressing del
|
|
||||||
|
|
||||||
-sending notifications on title change
|
|
||||||
|
|
||||||
-managing multiple mpd servers
|
|
||||||
|
|
||||||
Building and installation
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
To build from source, use::
|
|
||||||
|
|
||||||
./autogen.sh
|
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
@@ -113,7 +113,7 @@ class ArtistView(Gtk.ScrolledWindow):
|
|||||||
|
|
||||||
#Old Name Column
|
#Old Name Column
|
||||||
renderer_text = Gtk.CellRendererText()
|
renderer_text = Gtk.CellRendererText()
|
||||||
self.column_name = Gtk.TreeViewColumn(_("Artist"), renderer_text, text=0)
|
self.column_name = Gtk.TreeViewColumn(_("Album Artist"), renderer_text, text=0)
|
||||||
self.column_name.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
|
self.column_name.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
|
||||||
self.column_name.set_property("resizable", True)
|
self.column_name.set_property("resizable", True)
|
||||||
self.column_name.set_sort_column_id(0)
|
self.column_name.set_sort_column_id(0)
|
||||||
@@ -175,8 +175,12 @@ class AlbumView(Gtk.ScrolledWindow):
|
|||||||
track=song["track"].zfill(2)
|
track=song["track"].zfill(2)
|
||||||
except:
|
except:
|
||||||
track="00"
|
track="00"
|
||||||
length=length+float(song["duration"])
|
try:
|
||||||
duration=str(datetime.timedelta(seconds=int(float(song["duration"]))))
|
dura=float(song["duration"])
|
||||||
|
except:
|
||||||
|
dura=0.0
|
||||||
|
length=length+dura
|
||||||
|
duration=str(datetime.timedelta(seconds=int(dura)))
|
||||||
title_list=title_list+"\n"+(track+" - "+title+" ("+duration+")")
|
title_list=title_list+"\n"+(track+" - "+title+" ("+duration+")")
|
||||||
if not year == "":
|
if not year == "":
|
||||||
year=" ("+year+")"
|
year=" ("+year+")"
|
||||||
@@ -356,7 +360,11 @@ class TrackView(Gtk.Box):
|
|||||||
album=song["album"]
|
album=song["album"]
|
||||||
except:
|
except:
|
||||||
album=_("Unknown Album")
|
album=_("Unknown Album")
|
||||||
duration=str(datetime.timedelta(seconds=int(float(song["duration"]))))
|
try:
|
||||||
|
dura=float(song["duration"])
|
||||||
|
except:
|
||||||
|
dura=0.0
|
||||||
|
duration=str(datetime.timedelta(seconds=int(dura )))
|
||||||
self.store.append([track, title, artist, album, duration, song["file"].replace("&", "")])
|
self.store.append([track, title, artist, album, duration, song["file"].replace("&", "")])
|
||||||
self.playlist=self.client.playlist()
|
self.playlist=self.client.playlist()
|
||||||
else:
|
else:
|
||||||
@@ -882,13 +890,10 @@ class SeekBar(Gtk.Box):
|
|||||||
|
|
||||||
def seek(self, range, scroll, value):
|
def seek(self, range, scroll, value):
|
||||||
status=self.client.status()
|
status=self.client.status()
|
||||||
try:
|
duration=float(status["duration"])
|
||||||
duration=float(status["duration"])
|
factor=(value/100)
|
||||||
factor=(value/100)
|
pos=(duration*factor)
|
||||||
pos=(duration*factor)
|
self.client.seekcur(pos)
|
||||||
self.client.seekcur(pos)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
try:
|
try:
|
||||||
@@ -1270,7 +1275,11 @@ class Search(Gtk.Dialog):
|
|||||||
album=song["album"]
|
album=song["album"]
|
||||||
except:
|
except:
|
||||||
album=_("Unknown Album")
|
album=_("Unknown Album")
|
||||||
duration=str(datetime.timedelta(seconds=int(float(song["duration"]))))
|
try:
|
||||||
|
dura=float(song["duration"])
|
||||||
|
except:
|
||||||
|
dura=0.0
|
||||||
|
duration=str(datetime.timedelta(seconds=int(dura)))
|
||||||
self.store.append([track, title, artist, album, duration, song["file"].replace("&", "")] )
|
self.store.append([track, title, artist, album, duration, song["file"].replace("&", "")] )
|
||||||
self.label.set_text(_("Hits: %i") % (len(self.store)))
|
self.label.set_text(_("Hits: %i") % (len(self.store)))
|
||||||
|
|
||||||
@@ -1561,6 +1570,7 @@ class mpdevil(Gtk.Application):
|
|||||||
BASE_KEY = "org.mpdevil"
|
BASE_KEY = "org.mpdevil"
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, application_id="org.mpdevil", flags=Gio.ApplicationFlags.FLAGS_NONE, **kwargs)
|
super().__init__(*args, application_id="org.mpdevil", flags=Gio.ApplicationFlags.FLAGS_NONE, **kwargs)
|
||||||
|
#Gtk.window_set_default_icon_name("mpdevil")
|
||||||
self.client=Client()
|
self.client=Client()
|
||||||
self.settings = Gio.Settings.new(self.BASE_KEY)
|
self.settings = Gio.Settings.new(self.BASE_KEY)
|
||||||
self.window=None
|
self.window=None
|
||||||
@@ -1592,6 +1602,7 @@ class mpdevil(Gtk.Application):
|
|||||||
dialog.set_version(VERSION)
|
dialog.set_version(VERSION)
|
||||||
dialog.set_comments(_("A small MPD client written in python"))
|
dialog.set_comments(_("A small MPD client written in python"))
|
||||||
dialog.set_authors(["Martin Wagner"])
|
dialog.set_authors(["Martin Wagner"])
|
||||||
|
dialog.set_website("https://github.com/SoongNoonien/mpdevil")
|
||||||
dialog.set_logo_icon_name(PACKAGE)
|
dialog.set_logo_icon_name(PACKAGE)
|
||||||
dialog.run()
|
dialog.run()
|
||||||
dialog.destroy()
|
dialog.destroy()
|
||||||
|
18
configure.ac
18
configure.ac
@@ -1,7 +1,7 @@
|
|||||||
dnl -*- Mode: autoconf -*-
|
dnl -*- Mode: autoconf -*-
|
||||||
dnl Process this file with autoconf to produce a configure script.
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
AC_PREREQ([2.68])
|
AC_PREREQ([2.68])
|
||||||
AC_INIT([mpdevil], [0.3])
|
AC_INIT([mpdevil], [0.3.1])
|
||||||
AC_CONFIG_SRCDIR([bin/mpdevil.py])
|
AC_CONFIG_SRCDIR([bin/mpdevil.py])
|
||||||
AM_INIT_AUTOMAKE
|
AM_INIT_AUTOMAKE
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
@@ -50,7 +50,7 @@ if $PYTHON -c "$prog" 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
|
|||||||
AC_MSG_RESULT(found)
|
AC_MSG_RESULT(found)
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT(not found)
|
AC_MSG_RESULT(not found)
|
||||||
AC_MSG_ERROR(MPDClient not found)
|
AC_MSG_ERROR(python module mpd not found)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl Check for beautifulsoup
|
dnl Check for beautifulsoup
|
||||||
@@ -62,7 +62,19 @@ if $PYTHON -c "$prog" 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
|
|||||||
AC_MSG_RESULT(found)
|
AC_MSG_RESULT(found)
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT(not found)
|
AC_MSG_RESULT(not found)
|
||||||
AC_MSG_ERROR(beautifulsoup not found)
|
AC_MSG_ERROR(python module bs4 not found)
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Check for requests
|
||||||
|
AC_MSG_CHECKING(for requests installed)
|
||||||
|
prog="
|
||||||
|
import requests
|
||||||
|
"
|
||||||
|
if $PYTHON -c "$prog" 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
|
||||||
|
AC_MSG_RESULT(found)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(not found)
|
||||||
|
AC_MSG_ERROR(python module requests not found)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile
|
AC_CONFIG_FILES([Makefile
|
||||||
|
120
po/de.po
120
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-01-06 00:53+0100\n"
|
"POT-Creation-Date: 2020-01-12 16:18+0100\n"
|
||||||
"PO-Revision-Date: 2020-01-06 00:55+0100\n"
|
"PO-Revision-Date: 2020-01-12 16:18+0100\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
@@ -18,136 +18,140 @@ msgstr ""
|
|||||||
"X-Generator: Poedit 2.2.4\n"
|
"X-Generator: Poedit 2.2.4\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: mpdevil.py:116 mpdevil.py:250 mpdevil.py:1215
|
#: mpdevil.py:116
|
||||||
msgid "Artist"
|
msgid "Album Artist"
|
||||||
msgstr "Künstler"
|
msgstr "Albuminterpret"
|
||||||
|
|
||||||
#: mpdevil.py:173 mpdevil.py:346 mpdevil.py:1260
|
#: mpdevil.py:173 mpdevil.py:350 mpdevil.py:1265
|
||||||
msgid "Unknown Title"
|
msgid "Unknown Title"
|
||||||
msgstr "Unbekannter Titel"
|
msgstr "Unbekannter Titel"
|
||||||
|
|
||||||
#: mpdevil.py:184
|
#: mpdevil.py:188
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(album)s%(year)s (tracks: %(total_tracks)i) (%(total_length)s):"
|
msgid "%(album)s%(year)s (tracks: %(total_tracks)i) (%(total_length)s):"
|
||||||
msgstr "%(album)s%(year)s (Titel: %(total_tracks)i) (%(total_length)s):"
|
msgstr "%(album)s%(year)s (Titel: %(total_tracks)i) (%(total_length)s):"
|
||||||
|
|
||||||
#: mpdevil.py:240 mpdevil.py:1205
|
#: mpdevil.py:244 mpdevil.py:1210
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Nr."
|
msgstr "Nr."
|
||||||
|
|
||||||
#: mpdevil.py:245 mpdevil.py:1210
|
#: mpdevil.py:249 mpdevil.py:1215
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Titel"
|
msgstr "Titel"
|
||||||
|
|
||||||
#: mpdevil.py:255 mpdevil.py:1225
|
#: mpdevil.py:254 mpdevil.py:1220
|
||||||
|
msgid "Artist"
|
||||||
|
msgstr "Interpret"
|
||||||
|
|
||||||
|
#: mpdevil.py:259 mpdevil.py:1230
|
||||||
msgid "Length"
|
msgid "Length"
|
||||||
msgstr "Länge"
|
msgstr "Länge"
|
||||||
|
|
||||||
#: mpdevil.py:354 mpdevil.py:1268
|
#: mpdevil.py:358 mpdevil.py:1273
|
||||||
msgid "Unknown Artist"
|
msgid "Unknown Artist"
|
||||||
msgstr "Unbekannter Künstler"
|
msgstr "Unbekannter Künstler"
|
||||||
|
|
||||||
#: mpdevil.py:358 mpdevil.py:1272
|
#: mpdevil.py:362 mpdevil.py:1277
|
||||||
msgid "Unknown Album"
|
msgid "Unknown Album"
|
||||||
msgstr "Unbekanntes Album"
|
msgstr "Unbekanntes Album"
|
||||||
|
|
||||||
#: mpdevil.py:567
|
#: mpdevil.py:575
|
||||||
msgid "Select"
|
msgid "Select"
|
||||||
msgstr "Auswählen"
|
msgstr "Auswählen"
|
||||||
|
|
||||||
#: mpdevil.py:569
|
#: mpdevil.py:577
|
||||||
msgid "Profile:"
|
msgid "Profile:"
|
||||||
msgstr "Profil:"
|
msgstr "Profil:"
|
||||||
|
|
||||||
#: mpdevil.py:571
|
#: mpdevil.py:579
|
||||||
msgid "Name:"
|
msgid "Name:"
|
||||||
msgstr "Name:"
|
msgstr "Name:"
|
||||||
|
|
||||||
#: mpdevil.py:573
|
#: mpdevil.py:581
|
||||||
msgid "Host:"
|
msgid "Host:"
|
||||||
msgstr "Host:"
|
msgstr "Host:"
|
||||||
|
|
||||||
#: mpdevil.py:575
|
#: mpdevil.py:583
|
||||||
msgid "Port:"
|
msgid "Port:"
|
||||||
msgstr "Port:"
|
msgstr "Port:"
|
||||||
|
|
||||||
#: mpdevil.py:577
|
#: mpdevil.py:585
|
||||||
msgid "Music lib:"
|
msgid "Music lib:"
|
||||||
msgstr "Musikverzeichnis:"
|
msgstr "Musikverzeichnis:"
|
||||||
|
|
||||||
#: mpdevil.py:667
|
#: mpdevil.py:675
|
||||||
msgid "Choose directory"
|
msgid "Choose directory"
|
||||||
msgstr "Verzeichnis Wählen"
|
msgstr "Verzeichnis Wählen"
|
||||||
|
|
||||||
#: mpdevil.py:703
|
#: mpdevil.py:711
|
||||||
msgid "Main cover size:"
|
msgid "Main cover size:"
|
||||||
msgstr "Größe des Haupt-Covers:"
|
msgstr "Größe des Haupt-Covers:"
|
||||||
|
|
||||||
#: mpdevil.py:705
|
#: mpdevil.py:713
|
||||||
msgid "Album-view cover size:"
|
msgid "Album-view cover size:"
|
||||||
msgstr "Covergröße in Albumansicht:"
|
msgstr "Covergröße in Albumansicht:"
|
||||||
|
|
||||||
#: mpdevil.py:711
|
#: mpdevil.py:719
|
||||||
msgid "Show stop button"
|
msgid "Show stop button"
|
||||||
msgstr "Zeige Stopp-Knopf"
|
msgstr "Zeige Stopp-Knopf"
|
||||||
|
|
||||||
#: mpdevil.py:714
|
#: mpdevil.py:722
|
||||||
msgid "Show title list as tooltip in album view"
|
msgid "Show title list as tooltip in album view"
|
||||||
msgstr "Zeige Titellisten als Tooltips in Albumansicht"
|
msgstr "Zeige Titellisten als Tooltips in Albumansicht"
|
||||||
|
|
||||||
#: mpdevil.py:717
|
#: mpdevil.py:725
|
||||||
msgid "Send notification on title change"
|
msgid "Send notification on title change"
|
||||||
msgstr "Sende Benachrichtigung bei Titelwechsel"
|
msgstr "Sende Benachrichtigung bei Titelwechsel"
|
||||||
|
|
||||||
#: mpdevil.py:720
|
#: mpdevil.py:728
|
||||||
msgid "Stop playback on quit"
|
msgid "Stop playback on quit"
|
||||||
msgstr "Wiedergabe beim Beenden stoppen"
|
msgstr "Wiedergabe beim Beenden stoppen"
|
||||||
|
|
||||||
#: mpdevil.py:723
|
#: mpdevil.py:731
|
||||||
msgid "Play selected album after current title"
|
msgid "Play selected album after current title"
|
||||||
msgstr "Ausgewähltes Album hinter aktuellem Titel einreihen"
|
msgstr "Ausgewähltes Album hinter aktuellem Titel einreihen"
|
||||||
|
|
||||||
#: mpdevil.py:754 mpdevil.py:1432
|
#: mpdevil.py:762 mpdevil.py:1441
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Einstellungen"
|
msgstr "Einstellungen"
|
||||||
|
|
||||||
#: mpdevil.py:767
|
#: mpdevil.py:775
|
||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Allgemein"
|
msgstr "Allgemein"
|
||||||
|
|
||||||
#: mpdevil.py:768
|
#: mpdevil.py:776
|
||||||
msgid "Profiles"
|
msgid "Profiles"
|
||||||
msgstr "Profile"
|
msgstr "Profile"
|
||||||
|
|
||||||
#: mpdevil.py:919
|
#: mpdevil.py:924
|
||||||
msgid "Random mode"
|
msgid "Random mode"
|
||||||
msgstr "Zufallsmodus"
|
msgstr "Zufallsmodus"
|
||||||
|
|
||||||
#: mpdevil.py:921
|
#: mpdevil.py:926
|
||||||
msgid "Repeat mode"
|
msgid "Repeat mode"
|
||||||
msgstr "Dauerschleife"
|
msgstr "Dauerschleife"
|
||||||
|
|
||||||
#: mpdevil.py:923
|
#: mpdevil.py:928
|
||||||
msgid "Single mode"
|
msgid "Single mode"
|
||||||
msgstr "Einzelstückmodus"
|
msgstr "Einzelstückmodus"
|
||||||
|
|
||||||
#: mpdevil.py:925
|
#: mpdevil.py:930
|
||||||
msgid "Consume mode"
|
msgid "Consume mode"
|
||||||
msgstr "Playliste verbrauchen"
|
msgstr "Playliste verbrauchen"
|
||||||
|
|
||||||
#: mpdevil.py:1019
|
#: mpdevil.py:1024
|
||||||
msgid "Right click to show additional information"
|
msgid "Right click to show additional information"
|
||||||
msgstr "Rechtsclick für weitere Informationen"
|
msgstr "Rechtsclick für weitere Informationen"
|
||||||
|
|
||||||
#: mpdevil.py:1042
|
#: mpdevil.py:1047
|
||||||
msgid "MPD-Tag"
|
msgid "MPD-Tag"
|
||||||
msgstr "MPD-Tag"
|
msgstr "MPD-Tag"
|
||||||
|
|
||||||
#: mpdevil.py:1045 mpdevil.py:1153
|
#: mpdevil.py:1050 mpdevil.py:1158
|
||||||
msgid "Value"
|
msgid "Value"
|
||||||
msgstr "Wert"
|
msgstr "Wert"
|
||||||
|
|
||||||
#: mpdevil.py:1066
|
#: mpdevil.py:1071
|
||||||
#, 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 "
|
||||||
@@ -156,88 +160,88 @@ 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.py:1132
|
#: mpdevil.py:1137
|
||||||
msgid "Stats"
|
msgid "Stats"
|
||||||
msgstr "Statistik"
|
msgstr "Statistik"
|
||||||
|
|
||||||
#: mpdevil.py:1150
|
#: mpdevil.py:1155
|
||||||
msgid "Tag"
|
msgid "Tag"
|
||||||
msgstr "Tag"
|
msgstr "Tag"
|
||||||
|
|
||||||
#: mpdevil.py:1170
|
#: mpdevil.py:1175
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Suche"
|
msgstr "Suche"
|
||||||
|
|
||||||
#: mpdevil.py:1220
|
#: mpdevil.py:1225
|
||||||
msgid "Album"
|
msgid "Album"
|
||||||
msgstr "Album"
|
msgstr "Album"
|
||||||
|
|
||||||
#: mpdevil.py:1275
|
#: mpdevil.py:1284
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Hits: %i"
|
msgid "Hits: %i"
|
||||||
msgstr "Treffer: %i"
|
msgstr "Treffer: %i"
|
||||||
|
|
||||||
#: mpdevil.py:1279
|
#: mpdevil.py:1288
|
||||||
msgid "Lyrics"
|
msgid "Lyrics"
|
||||||
msgstr "Liedtext"
|
msgstr "Liedtext"
|
||||||
|
|
||||||
#: mpdevil.py:1323
|
#: mpdevil.py:1332
|
||||||
msgid "searching..."
|
msgid "searching..."
|
||||||
msgstr "suche..."
|
msgstr "suche..."
|
||||||
|
|
||||||
#: mpdevil.py:1327
|
#: mpdevil.py:1336
|
||||||
msgid "not found"
|
msgid "not found"
|
||||||
msgstr "nicht gefunden"
|
msgstr "nicht gefunden"
|
||||||
|
|
||||||
#: mpdevil.py:1332
|
#: mpdevil.py:1341
|
||||||
msgid "not connected"
|
msgid "not connected"
|
||||||
msgstr "nicht verbunden"
|
msgstr "nicht verbunden"
|
||||||
|
|
||||||
#: mpdevil.py:1412
|
#: mpdevil.py:1421
|
||||||
msgid "Select profile"
|
msgid "Select profile"
|
||||||
msgstr "Profil auswählen"
|
msgstr "Profil auswählen"
|
||||||
|
|
||||||
#: mpdevil.py:1416
|
#: mpdevil.py:1425
|
||||||
msgid "Return to album of current title"
|
msgid "Return to album of current title"
|
||||||
msgstr "Zu Album des aktuellen Titels zurückkehren"
|
msgstr "Zu Album des aktuellen Titels zurückkehren"
|
||||||
|
|
||||||
#: mpdevil.py:1418
|
#: mpdevil.py:1427
|
||||||
msgid "Title search"
|
msgid "Title search"
|
||||||
msgstr "Titelsuche"
|
msgstr "Titelsuche"
|
||||||
|
|
||||||
#: mpdevil.py:1420
|
#: mpdevil.py:1429
|
||||||
msgid "Show lyrics"
|
msgid "Show lyrics"
|
||||||
msgstr "Zeige Liedtext"
|
msgstr "Zeige Liedtext"
|
||||||
|
|
||||||
#: mpdevil.py:1427
|
#: mpdevil.py:1436
|
||||||
msgid "Not connected to MPD-server. Reconnect?"
|
msgid "Not connected to MPD-server. Reconnect?"
|
||||||
msgstr "Nicht mit MPD-Server verbunden. Verbindung wiederherstellen?"
|
msgstr "Nicht mit MPD-Server verbunden. Verbindung wiederherstellen?"
|
||||||
|
|
||||||
#: mpdevil.py:1431
|
#: mpdevil.py:1440
|
||||||
msgid "Save window size"
|
msgid "Save window size"
|
||||||
msgstr "Fenstergröße speichern"
|
msgstr "Fenstergröße speichern"
|
||||||
|
|
||||||
#: mpdevil.py:1433
|
#: mpdevil.py:1442
|
||||||
msgid "Update database"
|
msgid "Update database"
|
||||||
msgstr "Datenbank aktualisieren"
|
msgstr "Datenbank aktualisieren"
|
||||||
|
|
||||||
#: mpdevil.py:1434
|
#: mpdevil.py:1443
|
||||||
msgid "Server stats"
|
msgid "Server stats"
|
||||||
msgstr "Serverstatistik"
|
msgstr "Serverstatistik"
|
||||||
|
|
||||||
#: mpdevil.py:1435
|
#: mpdevil.py:1444
|
||||||
msgid "About"
|
msgid "About"
|
||||||
msgstr "Über"
|
msgstr "Über"
|
||||||
|
|
||||||
#: mpdevil.py:1436
|
#: mpdevil.py:1445
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Beenden"
|
msgstr "Beenden"
|
||||||
|
|
||||||
#: mpdevil.py:1441
|
#: mpdevil.py:1450
|
||||||
msgid "Main menu"
|
msgid "Main menu"
|
||||||
msgstr "Hauptmenu"
|
msgstr "Hauptmenu"
|
||||||
|
|
||||||
#: mpdevil.py:1593
|
#: mpdevil.py:1603
|
||||||
msgid "A small MPD client written in python"
|
msgid "A small MPD client written in python"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
116
po/mpdevil.pot
116
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-01-06 00:53+0100\n"
|
"POT-Creation-Date: 2020-01-12 16:18+0100\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"
|
||||||
@@ -17,223 +17,227 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=CHARSET\n"
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: mpdevil.py:116 mpdevil.py:250 mpdevil.py:1215
|
#: mpdevil.py:116
|
||||||
msgid "Artist"
|
msgid "Album Artist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:173 mpdevil.py:346 mpdevil.py:1260
|
#: mpdevil.py:173 mpdevil.py:350 mpdevil.py:1265
|
||||||
msgid "Unknown Title"
|
msgid "Unknown Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:184
|
#: mpdevil.py:188
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(album)s%(year)s (tracks: %(total_tracks)i) (%(total_length)s):"
|
msgid "%(album)s%(year)s (tracks: %(total_tracks)i) (%(total_length)s):"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:240 mpdevil.py:1205
|
#: mpdevil.py:244 mpdevil.py:1210
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:245 mpdevil.py:1210
|
#: mpdevil.py:249 mpdevil.py:1215
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:255 mpdevil.py:1225
|
#: mpdevil.py:254 mpdevil.py:1220
|
||||||
|
msgid "Artist"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mpdevil.py:259 mpdevil.py:1230
|
||||||
msgid "Length"
|
msgid "Length"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:354 mpdevil.py:1268
|
#: mpdevil.py:358 mpdevil.py:1273
|
||||||
msgid "Unknown Artist"
|
msgid "Unknown Artist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:358 mpdevil.py:1272
|
#: mpdevil.py:362 mpdevil.py:1277
|
||||||
msgid "Unknown Album"
|
msgid "Unknown Album"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:567
|
#: mpdevil.py:575
|
||||||
msgid "Select"
|
msgid "Select"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:569
|
#: mpdevil.py:577
|
||||||
msgid "Profile:"
|
msgid "Profile:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:571
|
#: mpdevil.py:579
|
||||||
msgid "Name:"
|
msgid "Name:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:573
|
#: mpdevil.py:581
|
||||||
msgid "Host:"
|
msgid "Host:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:575
|
#: mpdevil.py:583
|
||||||
msgid "Port:"
|
msgid "Port:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:577
|
#: mpdevil.py:585
|
||||||
msgid "Music lib:"
|
msgid "Music lib:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:667
|
#: mpdevil.py:675
|
||||||
msgid "Choose directory"
|
msgid "Choose directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:703
|
#: mpdevil.py:711
|
||||||
msgid "Main cover size:"
|
msgid "Main cover size:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:705
|
#: mpdevil.py:713
|
||||||
msgid "Album-view cover size:"
|
msgid "Album-view cover size:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:711
|
#: mpdevil.py:719
|
||||||
msgid "Show stop button"
|
msgid "Show stop button"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:714
|
#: mpdevil.py:722
|
||||||
msgid "Show title list as tooltip in album view"
|
msgid "Show title list as tooltip in album view"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:717
|
#: mpdevil.py:725
|
||||||
msgid "Send notification on title change"
|
msgid "Send notification on title change"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:720
|
#: mpdevil.py:728
|
||||||
msgid "Stop playback on quit"
|
msgid "Stop playback on quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:723
|
#: mpdevil.py:731
|
||||||
msgid "Play selected album after current title"
|
msgid "Play selected album after current title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:754 mpdevil.py:1432
|
#: mpdevil.py:762 mpdevil.py:1441
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:767
|
#: mpdevil.py:775
|
||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:768
|
#: mpdevil.py:776
|
||||||
msgid "Profiles"
|
msgid "Profiles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:919
|
#: mpdevil.py:924
|
||||||
msgid "Random mode"
|
msgid "Random mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:921
|
#: mpdevil.py:926
|
||||||
msgid "Repeat mode"
|
msgid "Repeat mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:923
|
#: mpdevil.py:928
|
||||||
msgid "Single mode"
|
msgid "Single mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:925
|
#: mpdevil.py:930
|
||||||
msgid "Consume mode"
|
msgid "Consume mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1019
|
#: mpdevil.py:1024
|
||||||
msgid "Right click to show additional information"
|
msgid "Right click to show additional information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1042
|
#: mpdevil.py:1047
|
||||||
msgid "MPD-Tag"
|
msgid "MPD-Tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1045 mpdevil.py:1153
|
#: mpdevil.py:1050 mpdevil.py:1158
|
||||||
msgid "Value"
|
msgid "Value"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1066
|
#: mpdevil.py:1071
|
||||||
#, 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.py:1132
|
#: mpdevil.py:1137
|
||||||
msgid "Stats"
|
msgid "Stats"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1150
|
#: mpdevil.py:1155
|
||||||
msgid "Tag"
|
msgid "Tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1170
|
#: mpdevil.py:1175
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1220
|
#: mpdevil.py:1225
|
||||||
msgid "Album"
|
msgid "Album"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1275
|
#: mpdevil.py:1284
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Hits: %i"
|
msgid "Hits: %i"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1279
|
#: mpdevil.py:1288
|
||||||
msgid "Lyrics"
|
msgid "Lyrics"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1323
|
#: mpdevil.py:1332
|
||||||
msgid "searching..."
|
msgid "searching..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1327
|
#: mpdevil.py:1336
|
||||||
msgid "not found"
|
msgid "not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1332
|
#: mpdevil.py:1341
|
||||||
msgid "not connected"
|
msgid "not connected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1412
|
#: mpdevil.py:1421
|
||||||
msgid "Select profile"
|
msgid "Select profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1416
|
#: mpdevil.py:1425
|
||||||
msgid "Return to album of current title"
|
msgid "Return to album of current title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1418
|
#: mpdevil.py:1427
|
||||||
msgid "Title search"
|
msgid "Title search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1420
|
#: mpdevil.py:1429
|
||||||
msgid "Show lyrics"
|
msgid "Show lyrics"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1427
|
#: mpdevil.py:1436
|
||||||
msgid "Not connected to MPD-server. Reconnect?"
|
msgid "Not connected to MPD-server. Reconnect?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1431
|
#: mpdevil.py:1440
|
||||||
msgid "Save window size"
|
msgid "Save window size"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1433
|
#: mpdevil.py:1442
|
||||||
msgid "Update database"
|
msgid "Update database"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1434
|
#: mpdevil.py:1443
|
||||||
msgid "Server stats"
|
msgid "Server stats"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1435
|
#: mpdevil.py:1444
|
||||||
msgid "About"
|
msgid "About"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1436
|
#: mpdevil.py:1445
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1441
|
#: mpdevil.py:1450
|
||||||
msgid "Main menu"
|
msgid "Main menu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mpdevil.py:1593
|
#: mpdevil.py:1603
|
||||||
msgid "A small MPD client written in python"
|
msgid "A small MPD client written in python"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
BIN
screenshots/mainwindow.png
Normal file
BIN
screenshots/mainwindow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1021 KiB |
Reference in New Issue
Block a user