simplified lyrics fetching

This commit is contained in:
Martin Wagner 2020-09-24 16:50:19 +02:00
parent be1a2446da
commit ef57d30153
5 changed files with 258 additions and 364 deletions

View File

@ -23,6 +23,8 @@ gi.require_version('Gtk', '3.0')
gi.require_version('Notify', '0.7') gi.require_version('Notify', '0.7')
from gi.repository import Gtk, Gio, Gdk, GdkPixbuf, Pango, GObject, GLib, Notify from gi.repository import Gtk, Gio, Gdk, GdkPixbuf, Pango, GObject, GLib, Notify
from mpd import MPDClient, base as MPDBase from mpd import MPDClient, base as MPDBase
import requests
from bs4 import BeautifulSoup
import threading import threading
import locale import locale
import gettext import gettext
@ -32,7 +34,6 @@ import datetime
import os import os
import sys import sys
import re import re
from mpdevil.lyrics import LyricsHelper
# MPRIS modules # MPRIS modules
import dbus import dbus
@ -2394,7 +2395,6 @@ class LyricsWindow(FocusFrame):
self._settings=settings self._settings=settings
self._client=client self._client=client
self._displayed_song_file=None self._displayed_song_file=None
self._lyrics_helper=LyricsHelper(debug=False)
# text view # text view
self._text_view=Gtk.TextView( self._text_view=Gtk.TextView(
@ -2405,6 +2405,7 @@ class LyricsWindow(FocusFrame):
opacity=0.9 opacity=0.9
) )
self._text_view.set_left_margin(5) self._text_view.set_left_margin(5)
self._text_view.set_right_margin(5)
self._text_view.set_bottom_margin(5) self._text_view.set_bottom_margin(5)
self._text_view.set_top_margin(3) self._text_view.set_top_margin(3)
self.set_widget(self._text_view) self.set_widget(self._text_view)
@ -2439,12 +2440,36 @@ class LyricsWindow(FocusFrame):
def disable(self, *args): def disable(self, *args):
self._client.emitter.handler_block(self._song_changed) self._client.emitter.handler_block(self._song_changed)
def _get_lyrics(self, title, artist):
replaces=((' ', '+'),('.', '_'),('@', '_'),(',', '_'),(';', '_'),('&', '_'),('\\', '_'),('/', '_'),('"', '_'),('(', '_'),(')', '_'))
for char1, char2 in replaces:
title=title.replace(char1, char2)
artist=artist.replace(char1, char2)
req=requests.get('https://www.letras.mus.br/winamp.php?musica={0}&artista={1}'.format(title,artist))
soup=BeautifulSoup(req.text, 'html.parser')
soup=soup.find(id="letra-cnt")
if soup is None:
raise ValueError("Not found")
paragraphs=[i for i in soup.children][1] # remove unneded paragraphs (NavigableString)
lyrics=""
for paragraph in paragraphs:
for line in paragraph.stripped_strings:
lyrics+=line+'\n'
lyrics+='\n'
output=lyrics[:-2] # omit last two newlines
if output == "": # assume song is instrumental when lyrics are empty
return "Instrumental"
else:
return output
def _display_lyrics(self, current_song): def _display_lyrics(self, current_song):
GLib.idle_add(self._text_buffer.set_text, _("searching..."), -1) GLib.idle_add(self._text_buffer.set_text, _("searching..."), -1)
text=None try:
if current_song.get("artist", "") != "" and current_song.get("title", "") != "": text=self._get_lyrics(current_song.get("title", ""), current_song.get("artist", ""))
text=self._lyrics_helper.get_lyrics(current_song["artist"], current_song["title"]) except requests.exceptions.ConnectionError:
if text is None: self._displayed_song_file=None
text=_("connection error")
except ValueError:
text=_("lyrics not found") text=_("lyrics not found")
GLib.idle_add(self._text_buffer.set_text, text, -1) GLib.idle_add(self._text_buffer.set_text, text, -1)

View File

@ -1,20 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# mpdevil - MPD Client.
# Copyright 2020 Martin Wagner <martin.wagner.dev@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 3 of the License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA

View File

@ -1,109 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# mpdevil - MPD Client.
# Copyright 2020 Martin Wagner <martin.wagner.dev@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 3 of the License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
import requests
from bs4 import BeautifulSoup
class LyricsHelper(object):
def __init__(self, debug=False):
self._debug=debug
def _debug_print(self, text):
if self._debug:
print(text)
def _get_lyrics_lyriki(self, singer, song):
self._debug_print("lyriki")
replaces=((' ', '_'),('.', '_'),('@', '_'),(',', '_'),(';', '_'),('&', '_'),('\\', '_'),('/', '_'),('"', '_'))
for char1, char2 in replaces:
singer=singer.replace(char1, char2)
song=song.replace(char1, char2)
self._debug_print('http://www.lyriki.com/{0}:{1}'.format(singer,song))
r=requests.get('http://www.lyriki.com/{0}:{1}'.format(singer,song))
s=BeautifulSoup(r.text, 'html.parser')
lyrics=s.p
if lyrics is None:
raise ValueError("Not found")
elif str(lyrics).startswith("<p>There is currently no text in this page."):
raise ValueError("Not found")
try:
lyrics.tt.unwrap()
except:
pass
output=str(lyrics)[3:-4].replace('\n','').replace('<br/>','\n')
return output
def _get_lyrics_songlyrics(self, singer, song):
self._debug_print("songlyrics")
replaces=((' ', '-'),('.', '-'),('_', '-'),('@', '-'),(',', '-'),(';', '-'),('&', '-'),('\\', '-'),('/', '-'),('"', '-'))
for char1, char2 in replaces:
singer=singer.replace(char1, char2)
song=song.replace(char1, char2)
self._debug_print('https://www.songlyrics.com/{0}/{1}-lyrics/'.format(singer,song))
r=requests.get('https://www.songlyrics.com/{0}/{1}-lyrics/'.format(singer,song))
s=BeautifulSoup(r.text, 'html.parser')
lyrics=s.find(id="songLyricsDiv")
if lyrics is None:
raise ValueError("Not found")
elif str(lyrics)[58:-4].startswith("Sorry, we have no"):
raise ValueError("Not found")
try:
lyrics.i.unwrap()
except:
pass
output=str(lyrics)[58:-4].replace('\n','').replace('\r','').replace(' /', '').replace('<br/>','\n')
return output
def _get_lyrics_letras(self, singer, song):
self._debug_print("letras")
replaces=((' ', '+'),('.', '_'),('@', '_'),(',', '_'),(';', '_'),('&', '_'),('\\', '_'),('/', '_'),('"', '_'),('(', '_'),(')', '_'))
for char1, char2 in replaces:
singer=singer.replace(char1, char2)
song=song.replace(char1, char2)
self._debug_print('https://www.letras.mus.br/winamp.php?musica={1}&artista={0}'.format(singer,song))
r=requests.get('https://www.letras.mus.br/winamp.php?musica={1}&artista={0}'.format(singer,song))
s=BeautifulSoup(r.text, 'html.parser')
s=s.find(id="letra-cnt")
if s is None:
raise ValueError("Not found")
paragraphs=[i for i in s.children][1] # remove unneded paragraphs (NavigableString)
lyrics=""
for p in paragraphs:
for line in p.stripped_strings:
lyrics+=line+'\n'
lyrics+='\n'
output=lyrics[:-2] # omit last two newlines
if output != "": # assume song is instrumental when lyrics are empty
return output
else:
return "Instrumental"
def get_lyrics(self, singer, song):
self._debug_print("fetching lyrics for '"+singer+"' - '"+song+"'")
providers=[self._get_lyrics_letras, self._get_lyrics_lyriki, self._get_lyrics_songlyrics]
text=None
for provider in providers:
try:
text=provider(singer, song)
break
except ValueError:
pass
return text

232
po/de.po
View File

@ -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-17 12:53+0200\n" "POT-Creation-Date: 2020-09-24 16:49+0200\n"
"PO-Revision-Date: 2020-09-17 16:28+0200\n" "PO-Revision-Date: 2020-09-24 16:50+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: de\n" "Language: de\n"
@ -22,107 +22,99 @@ msgstr ""
msgid "Unknown Title" msgid "Unknown Title"
msgstr "Unbekannter Titel" msgstr "Unbekannter Titel"
#: mpdevil:476 #: mpdevil:749
msgid "Unknown Artist"
msgstr "Unbekannter Interpret"
#: mpdevil:477
msgid "Unknown Album"
msgstr "Unbekanntes Album"
#: mpdevil:753
msgid "Main cover size:" msgid "Main cover size:"
msgstr "Größe des Haupt-Covers:" msgstr "Größe des Haupt-Covers:"
#: mpdevil:754 #: mpdevil:750
msgid "Album view cover size:" msgid "Album view cover size:"
msgstr "Covergröße in Albumliste:" msgstr "Covergröße in Albumliste:"
#: mpdevil:755 #: mpdevil:751
msgid "Action bar icon size:" msgid "Action bar icon size:"
msgstr "Symbolgröße Aktionsleiste:" msgstr "Symbolgröße Aktionsleiste:"
#: mpdevil:756 #: mpdevil:752
msgid "Secondary icon size:" msgid "Secondary icon size:"
msgstr "Sekundäre Symbolgröße:" msgstr "Sekundäre Symbolgröße:"
#: mpdevil:769 #: mpdevil:765
msgid "Sort albums by:" msgid "Sort albums by:"
msgstr "Sortiere Alben nach:" msgstr "Sortiere Alben nach:"
#: mpdevil:769 #: mpdevil:765
msgid "name" msgid "name"
msgstr "Name" msgstr "Name"
#: mpdevil:769 #: mpdevil:765
msgid "year" msgid "year"
msgstr "Jahr" msgstr "Jahr"
#: mpdevil:770 #: mpdevil:766
msgid "Position of playlist:" msgid "Position of playlist:"
msgstr "Wiedergabelistenposition:" msgstr "Wiedergabelistenposition:"
#: mpdevil:770 #: mpdevil:766
msgid "bottom" msgid "bottom"
msgstr "unten" msgstr "unten"
#: mpdevil:770 #: mpdevil:766
msgid "right" msgid "right"
msgstr "rechts" msgstr "rechts"
#: mpdevil:788 #: mpdevil:784
msgid "Use Client-side decoration" msgid "Use Client-side decoration"
msgstr "Benutze \"Client-side decoration\"" msgstr "Benutze \"Client-side decoration\""
#: mpdevil:789 #: mpdevil:785
msgid "Show stop button" msgid "Show stop button"
msgstr "Zeige Stopp-Knopf" msgstr "Zeige Stopp-Knopf"
#: mpdevil:790 #: mpdevil:786
msgid "Show lyrics button" msgid "Show lyrics button"
msgstr "Zeige Liedtext-Knopf" msgstr "Zeige Liedtext-Knopf"
#: mpdevil:791 #: mpdevil:787
msgid "Show initials in artist view" msgid "Show initials in artist view"
msgstr "Zeige Anfangsbuchstaben in Interpretenliste" msgstr "Zeige Anfangsbuchstaben in Interpretenliste"
#: mpdevil:792 #: mpdevil:788
msgid "Show tooltips in album view" msgid "Show tooltips in album view"
msgstr "Zeige Tooltips in Albumliste" msgstr "Zeige Tooltips in Albumliste"
#: mpdevil:793 #: mpdevil:789
msgid "Use 'Album Artist' tag" msgid "Use 'Album Artist' tag"
msgstr "Benutze \"Album Artist\" Tag" msgstr "Benutze \"Album Artist\" Tag"
#: mpdevil:794 #: mpdevil:790
msgid "Send notification on title change" msgid "Send notification on title change"
msgstr "Sende Benachrichtigung bei Titelwechsel" msgstr "Sende Benachrichtigung bei Titelwechsel"
#: mpdevil:795 #: mpdevil:791
msgid "Stop playback on quit" msgid "Stop playback on quit"
msgstr "Wiedergabe beim Beenden stoppen" msgstr "Wiedergabe beim Beenden stoppen"
#: mpdevil:796 #: mpdevil:792
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:809 #: mpdevil:805
msgid "<b>View</b>" msgid "<b>View</b>"
msgstr "<b>Ansicht</b>" msgstr "<b>Ansicht</b>"
#: mpdevil:810 #: mpdevil:806
msgid "<b>Behavior</b>" msgid "<b>Behavior</b>"
msgstr "<b>Verhalten</b>" msgstr "<b>Verhalten</b>"
#: mpdevil:842 #: mpdevil:838
msgid "(restart required)" msgid "(restart required)"
msgstr "(Neustart erforderlich)" msgstr "(Neustart erforderlich)"
#: mpdevil:904 mpdevil:3514 #: mpdevil:900 mpdevil:3460
msgid "Connect" msgid "Connect"
msgstr "Verbinden" msgstr "Verbinden"
#: mpdevil:920 #: mpdevil:916
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 "
@ -132,125 +124,125 @@ 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:925 #: mpdevil:921
msgid "Profile:" msgid "Profile:"
msgstr "Profil:" msgstr "Profil:"
#: mpdevil:926 #: mpdevil:922
msgid "Name:" msgid "Name:"
msgstr "Name:" msgstr "Name:"
#: mpdevil:927 #: mpdevil:923
msgid "Host:" msgid "Host:"
msgstr "Host:" msgstr "Host:"
#: mpdevil:928 #: mpdevil:924
msgid "Password:" msgid "Password:"
msgstr "Passwort:" msgstr "Passwort:"
#: mpdevil:929 #: mpdevil:925
msgid "Music lib:" msgid "Music lib:"
msgstr "Musikverzeichnis:" msgstr "Musikverzeichnis:"
#: mpdevil:930 #: mpdevil:926
msgid "Cover regex:" msgid "Cover regex:"
msgstr "Cover-Regex:" msgstr "Cover-Regex:"
#: mpdevil:1061 #: mpdevil:1057
msgid "Choose directory" msgid "Choose directory"
msgstr "Verzeichnis Wählen" msgstr "Verzeichnis Wählen"
#: mpdevil:1094 #: mpdevil:1090
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:1118 mpdevil:1642 mpdevil:1980 mpdevil:2718 #: mpdevil:1114 mpdevil:1631 mpdevil:1970 mpdevil:2687
msgid "No" msgid "No"
msgstr "Nr." msgstr "Nr."
#: mpdevil:1118 mpdevil:2719 #: mpdevil:1114 mpdevil:2688
msgid "Disc" msgid "Disc"
msgstr "CD" msgstr "CD"
#: mpdevil:1118 mpdevil:1647 mpdevil:1985 mpdevil:2720 #: mpdevil:1114 mpdevil:1636 mpdevil:1975 mpdevil:2689
msgid "Title" msgid "Title"
msgstr "Titel" msgstr "Titel"
#: mpdevil:1118 mpdevil:1653 mpdevil:1871 mpdevil:2721 #: mpdevil:1114 mpdevil:1642 mpdevil:1861 mpdevil:2690
msgid "Artist" msgid "Artist"
msgstr "Interpret" msgstr "Interpret"
#: mpdevil:1118 mpdevil:1659 mpdevil:2722 #: mpdevil:1114 mpdevil:1648 mpdevil:2691
msgid "Album" msgid "Album"
msgstr "Album" msgstr "Album"
#: mpdevil:1118 mpdevil:1665 mpdevil:1991 mpdevil:2723 #: mpdevil:1114 mpdevil:1654 mpdevil:1981 mpdevil:2692
msgid "Length" msgid "Length"
msgstr "Länge" msgstr "Länge"
#: mpdevil:1118 mpdevil:2724 #: mpdevil:1114 mpdevil:2693
msgid "Year" msgid "Year"
msgstr "Jahr" msgstr "Jahr"
#: mpdevil:1118 mpdevil:2725 #: mpdevil:1114 mpdevil:2694
msgid "Genre" msgid "Genre"
msgstr "Genre" msgstr "Genre"
#: mpdevil:1234 mpdevil:1242 mpdevil:3597 #: mpdevil:1230 mpdevil:1238 mpdevil:3543
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#: mpdevil:1253 mpdevil:3415 #: mpdevil:1249 mpdevil:3361
msgid "General" msgid "General"
msgstr "Allgemein" msgstr "Allgemein"
#: mpdevil:1254 #: mpdevil:1250
msgid "Profiles" msgid "Profiles"
msgstr "Profile" msgstr "Profile"
#: mpdevil:1255 mpdevil:3419 #: mpdevil:1251 mpdevil:3365
msgid "Playlist" msgid "Playlist"
msgstr "Wiedergabeliste" msgstr "Wiedergabeliste"
#: mpdevil:1270 mpdevil:1278 #: mpdevil:1266 mpdevil:1274
msgid "Stats" msgid "Stats"
msgstr "Statistik" msgstr "Statistik"
#: mpdevil:1327 #: mpdevil:1323
msgid "A simple music browser for MPD" msgid "A simple music browser for MPD"
msgstr "Ein einfacher Musikbrowser für MPD" msgstr "Ein einfacher Musikbrowser für MPD"
#: mpdevil:1399 #: mpdevil:1395
msgid "MPD-Tag" msgid "MPD-Tag"
msgstr "MPD-Tag" msgstr "MPD-Tag"
#: mpdevil:1403 #: mpdevil:1399
msgid "Value" msgid "Value"
msgstr "Wert" msgstr "Wert"
#: mpdevil:1564 #: mpdevil:1552
msgid "Append" msgid "Append"
msgstr "Anhängen" msgstr "Anhängen"
#: mpdevil:1565 #: mpdevil:1553
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:1566 #: mpdevil:1554
msgid "Play" msgid "Play"
msgstr "Abspielen" msgstr "Abspielen"
#: mpdevil:1567 #: mpdevil:1555
msgid "Directly play all titles" msgid "Directly play all titles"
msgstr "Alle Titel sofort abspielen" msgstr "Alle Titel sofort abspielen"
#: mpdevil:1568 #: mpdevil:1556
msgid "Enqueue" msgid "Enqueue"
msgstr "Einreihen" msgstr "Einreihen"
#: mpdevil:1569 #: mpdevil:1557
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"
@ -258,54 +250,58 @@ 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:1723 #: mpdevil:1713
#, python-format #, python-format
msgid "%i hits" msgid "%i hits"
msgstr "%i Treffer" msgstr "%i Treffer"
#: mpdevil:1761 #: mpdevil:1751
msgid "all genres" msgid "all genres"
msgstr "Alle Genres" msgstr "Alle Genres"
#: mpdevil:1869 #: mpdevil:1859
msgid "Album Artist" msgid "Album Artist"
msgstr "Albuminterpret" msgstr "Albuminterpret"
#: mpdevil:1872 #: mpdevil:1862
msgid "all artists" msgid "all artists"
msgstr "Alle Interpreten" msgstr "Alle Interpreten"
#: mpdevil:1997 #: mpdevil:1987
msgid "Close" msgid "Close"
msgstr "Schließen" msgstr "Schließen"
#: mpdevil:2168 #: mpdevil:2152
#, 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:2171 mpdevil:2813 #: mpdevil:2155 mpdevil:2782
#, 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:2297 mpdevil:3431 #: mpdevil:2281 mpdevil:3377
msgid "Back to current album" msgid "Back to current album"
msgstr "Zurück zu aktuellem Album" msgstr "Zurück zu aktuellem Album"
#: mpdevil:2298 #: mpdevil:2282
msgid "Search" msgid "Search"
msgstr "Suche" msgstr "Suche"
#: mpdevil:2462 #: mpdevil:2466
msgid "searching..." msgid "searching..."
msgstr "suche..." msgstr "suche..."
#: mpdevil:2466 #: mpdevil:2471
msgid "connection error"
msgstr "Verbindungsfehler"
#: mpdevil:2473
msgid "lyrics not found" msgid "lyrics not found"
msgstr "Liedtext nicht gefunden" msgstr "Liedtext nicht gefunden"
#: mpdevil:2543 #: mpdevil:2521
#, 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 "
@ -314,163 +310,169 @@ 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:2687 #: mpdevil:2656
msgid "Scroll to current song" msgid "Scroll to current song"
msgstr "Gehe zu aktuellem Lied" msgstr "Gehe zu aktuellem Lied"
#: mpdevil:2694 #: mpdevil:2663
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Wiedergabeliste leeren" msgstr "Wiedergabeliste leeren"
#: mpdevil:2970 #: mpdevil:2939
msgid "Show lyrics" msgid "Show lyrics"
msgstr "Zeige Liedtext" msgstr "Zeige Liedtext"
#: mpdevil:3307 #: mpdevil:3253
msgid "Random mode" msgid "Random mode"
msgstr "Zufallsmodus" msgstr "Zufallsmodus"
#: mpdevil:3308 #: mpdevil:3254
msgid "Repeat mode" msgid "Repeat mode"
msgstr "Dauerschleife" msgstr "Dauerschleife"
#: mpdevil:3309 #: mpdevil:3255
msgid "Single mode" msgid "Single mode"
msgstr "Einzelstückmodus" msgstr "Einzelstückmodus"
#: mpdevil:3310 #: mpdevil:3256
msgid "Consume mode" msgid "Consume mode"
msgstr "Wiedergabeliste verbrauchen" msgstr "Wiedergabeliste verbrauchen"
#: mpdevil:3416 #: mpdevil:3362
msgid "Window" msgid "Window"
msgstr "Fenster" msgstr "Fenster"
#: mpdevil:3417 #: mpdevil:3363
msgid "Playback" msgid "Playback"
msgstr "Wiedergabe" msgstr "Wiedergabe"
#: mpdevil:3418 #: mpdevil:3364
msgid "Search, Album Dialog and Album List" msgid "Search, Album Dialog and Album List"
msgstr "Suche, Albumdialog und Albumliste" msgstr "Suche, Albumdialog und Albumliste"
#: mpdevil:3428 #: mpdevil:3374
msgid "Toggle mini player" msgid "Toggle mini player"
msgstr "Miniplayer ein-/ausschalten" msgstr "Miniplayer ein-/ausschalten"
#: mpdevil:3429 #: mpdevil:3375
msgid "Toggle lyrics" msgid "Toggle lyrics"
msgstr "Liedtext ein-/ausblenden" msgstr "Liedtext ein-/ausblenden"
#: mpdevil:3430 #: mpdevil:3376
msgid "Toggle search" msgid "Toggle search"
msgstr "Suche ein-/ausblenden" msgstr "Suche ein-/ausblenden"
#: mpdevil:3432 #: mpdevil:3378
msgid "Open online help" msgid "Open online help"
msgstr "Onlinehilfe öffnen" msgstr "Onlinehilfe öffnen"
#: mpdevil:3433 mpdevil:3601 #: mpdevil:3379 mpdevil:3547
msgid "Quit" msgid "Quit"
msgstr "Beenden" msgstr "Beenden"
#: mpdevil:3434 #: mpdevil:3380
msgid "Play/Pause" msgid "Play/Pause"
msgstr "Wiedergabe/Pause" msgstr "Wiedergabe/Pause"
#: mpdevil:3435 #: mpdevil:3381
msgid "Next title" msgid "Next title"
msgstr "Nächster Titel" msgstr "Nächster Titel"
#: mpdevil:3436 #: mpdevil:3382
msgid "Previous title" msgid "Previous title"
msgstr "Vorheriger Titel" msgstr "Vorheriger Titel"
#: mpdevil:3437 #: mpdevil:3383
msgid "Seek forward" msgid "Seek forward"
msgstr "Vorspulen" msgstr "Vorspulen"
#: mpdevil:3438 #: mpdevil:3384
msgid "Seek backward" msgid "Seek backward"
msgstr "Zurückspulen" msgstr "Zurückspulen"
#: mpdevil:3439 mpdevil:3604 #: mpdevil:3385 mpdevil:3550
msgid "Update database" msgid "Update database"
msgstr "Datenbank aktualisieren" msgstr "Datenbank aktualisieren"
#: mpdevil:3440 #: mpdevil:3386
msgid "Play selected item (next)" msgid "Play selected item (next)"
msgstr "Ausgewähltes Element (als Nächstes) abspielen" msgstr "Ausgewähltes Element (als Nächstes) abspielen"
#: mpdevil:3440 #: mpdevil:3386
msgid "Left-click" msgid "Left-click"
msgstr "Linksklick" msgstr "Linksklick"
#: mpdevil:3441 #: mpdevil:3387
msgid "Append selected item" msgid "Append selected item"
msgstr "Ausgewähltes Element anhängen" msgstr "Ausgewähltes Element anhängen"
#: mpdevil:3441 mpdevil:3444 #: mpdevil:3387 mpdevil:3390
msgid "Middle-click" msgid "Middle-click"
msgstr "Mittelklick" msgstr "Mittelklick"
#: mpdevil:3442 #: mpdevil:3388
msgid "Play selected item immediately" msgid "Play selected item immediately"
msgstr "Ausgewähltes Element sofort abspielen" msgstr "Ausgewähltes Element sofort abspielen"
#: mpdevil:3442 #: mpdevil:3388
msgid "Double-click" msgid "Double-click"
msgstr "Doppelklick" msgstr "Doppelklick"
#: mpdevil:3443 mpdevil:3445 #: mpdevil:3389 mpdevil:3391
msgid "Show additional information" msgid "Show additional information"
msgstr "Zeige weitere Informationen" msgstr "Zeige weitere Informationen"
#: mpdevil:3443 mpdevil:3445 #: mpdevil:3389 mpdevil:3391
msgid "Right-click" msgid "Right-click"
msgstr "Rechtsklick" msgstr "Rechtsklick"
#: mpdevil:3444 #: mpdevil:3390
msgid "Remove selected song" msgid "Remove selected song"
msgstr "Ausgewählten Titel entfernen" msgstr "Ausgewählten Titel entfernen"
#: mpdevil:3459 #: mpdevil:3405
msgid "Select profile" msgid "Select profile"
msgstr "Profil auswählen" msgstr "Profil auswählen"
#: mpdevil:3535 #: mpdevil:3481
#, python-format #, python-format
msgid "Connection to \"%(profile)s\" (%(host)s:%(port)s) failed" msgid "Connection to \"%(profile)s\" (%(host)s:%(port)s) failed"
msgstr "Verbindung zu \"%(profile)s\" (%(host)s:%(port)s) fehlgeschlagen" msgstr "Verbindung zu \"%(profile)s\" (%(host)s:%(port)s) fehlgeschlagen"
#: mpdevil:3598 #: mpdevil:3544
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Tastenkürzel" msgstr "Tastenkürzel"
#: mpdevil:3599 #: mpdevil:3545
msgid "Help" msgid "Help"
msgstr "Hilfe" msgstr "Hilfe"
#: mpdevil:3600 #: mpdevil:3546
msgid "About" msgid "About"
msgstr "Über" msgstr "Über"
#: mpdevil:3605 #: mpdevil:3551
msgid "Server stats" msgid "Server stats"
msgstr "Serverstatistik" msgstr "Serverstatistik"
#: mpdevil:3608 #: mpdevil:3554
msgid "Save window layout" msgid "Save window layout"
msgstr "Fensterlayout speichern" msgstr "Fensterlayout speichern"
#: mpdevil:3609 #: mpdevil:3555
msgid "Mini player" msgid "Mini player"
msgstr "Miniplayer" msgstr "Miniplayer"
#: mpdevil:3613 #: mpdevil:3559
msgid "Menu" msgid "Menu"
msgstr "Menü" msgstr "Menü"
#~ msgid "Unknown Artist"
#~ msgstr "Unbekannter Interpret"
#~ msgid "Unknown Album"
#~ msgstr "Unbekanntes Album"
#~ msgid "not connected" #~ msgid "not connected"
#~ msgstr "nicht verbunden" #~ msgstr "nicht verbunden"

View File

@ -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-17 12:53+0200\n" "POT-Creation-Date: 2020-09-24 16:49+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"
@ -21,442 +21,438 @@ msgstr ""
msgid "Unknown Title" msgid "Unknown Title"
msgstr "" msgstr ""
#: mpdevil:476 #: mpdevil:749
msgid "Unknown Artist"
msgstr ""
#: mpdevil:477
msgid "Unknown Album"
msgstr ""
#: mpdevil:753
msgid "Main cover size:" msgid "Main cover size:"
msgstr "" msgstr ""
#: mpdevil:754 #: mpdevil:750
msgid "Album view cover size:" msgid "Album view cover size:"
msgstr "" msgstr ""
#: mpdevil:755 #: mpdevil:751
msgid "Action bar icon size:" msgid "Action bar icon size:"
msgstr "" msgstr ""
#: mpdevil:756 #: mpdevil:752
msgid "Secondary icon size:" msgid "Secondary icon size:"
msgstr "" msgstr ""
#: mpdevil:769 #: mpdevil:765
msgid "Sort albums by:" msgid "Sort albums by:"
msgstr "" msgstr ""
#: mpdevil:769 #: mpdevil:765
msgid "name" msgid "name"
msgstr "" msgstr ""
#: mpdevil:769 #: mpdevil:765
msgid "year" msgid "year"
msgstr "" msgstr ""
#: mpdevil:770 #: mpdevil:766
msgid "Position of playlist:" msgid "Position of playlist:"
msgstr "" msgstr ""
#: mpdevil:770 #: mpdevil:766
msgid "bottom" msgid "bottom"
msgstr "" msgstr ""
#: mpdevil:770 #: mpdevil:766
msgid "right" msgid "right"
msgstr "" msgstr ""
#: mpdevil:788 #: mpdevil:784
msgid "Use Client-side decoration" msgid "Use Client-side decoration"
msgstr "" msgstr ""
#: mpdevil:789 #: mpdevil:785
msgid "Show stop button" msgid "Show stop button"
msgstr "" msgstr ""
#: mpdevil:790 #: mpdevil:786
msgid "Show lyrics button" msgid "Show lyrics button"
msgstr "" msgstr ""
#: mpdevil:791 #: mpdevil:787
msgid "Show initials in artist view" msgid "Show initials in artist view"
msgstr "" msgstr ""
#: mpdevil:792 #: mpdevil:788
msgid "Show tooltips in album view" msgid "Show tooltips in album view"
msgstr "" msgstr ""
#: mpdevil:793 #: mpdevil:789
msgid "Use 'Album Artist' tag" msgid "Use 'Album Artist' tag"
msgstr "" msgstr ""
#: mpdevil:794 #: mpdevil:790
msgid "Send notification on title change" msgid "Send notification on title change"
msgstr "" msgstr ""
#: mpdevil:795 #: mpdevil:791
msgid "Stop playback on quit" msgid "Stop playback on quit"
msgstr "" msgstr ""
#: mpdevil:796 #: mpdevil:792
msgid "Play selected albums and titles immediately" msgid "Play selected albums and titles immediately"
msgstr "" msgstr ""
#: mpdevil:809 #: mpdevil:805
msgid "<b>View</b>" msgid "<b>View</b>"
msgstr "" msgstr ""
#: mpdevil:810 #: mpdevil:806
msgid "<b>Behavior</b>" msgid "<b>Behavior</b>"
msgstr "" msgstr ""
#: mpdevil:842 #: mpdevil:838
msgid "(restart required)" msgid "(restart required)"
msgstr "" msgstr ""
#: mpdevil:904 mpdevil:3514 #: mpdevil:900 mpdevil:3460
msgid "Connect" msgid "Connect"
msgstr "" msgstr ""
#: mpdevil:920 #: mpdevil:916
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:925 #: mpdevil:921
msgid "Profile:" msgid "Profile:"
msgstr "" msgstr ""
#: mpdevil:926 #: mpdevil:922
msgid "Name:" msgid "Name:"
msgstr "" msgstr ""
#: mpdevil:927 #: mpdevil:923
msgid "Host:" msgid "Host:"
msgstr "" msgstr ""
#: mpdevil:928 #: mpdevil:924
msgid "Password:" msgid "Password:"
msgstr "" msgstr ""
#: mpdevil:929 #: mpdevil:925
msgid "Music lib:" msgid "Music lib:"
msgstr "" msgstr ""
#: mpdevil:930 #: mpdevil:926
msgid "Cover regex:" msgid "Cover regex:"
msgstr "" msgstr ""
#: mpdevil:1061 #: mpdevil:1057
msgid "Choose directory" msgid "Choose directory"
msgstr "" msgstr ""
#: mpdevil:1094 #: mpdevil:1090
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:1118 mpdevil:1642 mpdevil:1980 mpdevil:2718 #: mpdevil:1114 mpdevil:1631 mpdevil:1970 mpdevil:2687
msgid "No" msgid "No"
msgstr "" msgstr ""
#: mpdevil:1118 mpdevil:2719 #: mpdevil:1114 mpdevil:2688
msgid "Disc" msgid "Disc"
msgstr "" msgstr ""
#: mpdevil:1118 mpdevil:1647 mpdevil:1985 mpdevil:2720 #: mpdevil:1114 mpdevil:1636 mpdevil:1975 mpdevil:2689
msgid "Title" msgid "Title"
msgstr "" msgstr ""
#: mpdevil:1118 mpdevil:1653 mpdevil:1871 mpdevil:2721 #: mpdevil:1114 mpdevil:1642 mpdevil:1861 mpdevil:2690
msgid "Artist" msgid "Artist"
msgstr "" msgstr ""
#: mpdevil:1118 mpdevil:1659 mpdevil:2722 #: mpdevil:1114 mpdevil:1648 mpdevil:2691
msgid "Album" msgid "Album"
msgstr "" msgstr ""
#: mpdevil:1118 mpdevil:1665 mpdevil:1991 mpdevil:2723 #: mpdevil:1114 mpdevil:1654 mpdevil:1981 mpdevil:2692
msgid "Length" msgid "Length"
msgstr "" msgstr ""
#: mpdevil:1118 mpdevil:2724 #: mpdevil:1114 mpdevil:2693
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: mpdevil:1118 mpdevil:2725 #: mpdevil:1114 mpdevil:2694
msgid "Genre" msgid "Genre"
msgstr "" msgstr ""
#: mpdevil:1234 mpdevil:1242 mpdevil:3597 #: mpdevil:1230 mpdevil:1238 mpdevil:3543
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: mpdevil:1253 mpdevil:3415 #: mpdevil:1249 mpdevil:3361
msgid "General" msgid "General"
msgstr "" msgstr ""
#: mpdevil:1254 #: mpdevil:1250
msgid "Profiles" msgid "Profiles"
msgstr "" msgstr ""
#: mpdevil:1255 mpdevil:3419 #: mpdevil:1251 mpdevil:3365
msgid "Playlist" msgid "Playlist"
msgstr "" msgstr ""
#: mpdevil:1270 mpdevil:1278 #: mpdevil:1266 mpdevil:1274
msgid "Stats" msgid "Stats"
msgstr "" msgstr ""
#: mpdevil:1327 #: mpdevil:1323
msgid "A simple music browser for MPD" msgid "A simple music browser for MPD"
msgstr "" msgstr ""
#: mpdevil:1399 #: mpdevil:1395
msgid "MPD-Tag" msgid "MPD-Tag"
msgstr "" msgstr ""
#: mpdevil:1403 #: mpdevil:1399
msgid "Value" msgid "Value"
msgstr "" msgstr ""
#: mpdevil:1564 #: mpdevil:1552
msgid "Append" msgid "Append"
msgstr "" msgstr ""
#: mpdevil:1565 #: mpdevil:1553
msgid "Add all titles to playlist" msgid "Add all titles to playlist"
msgstr "" msgstr ""
#: mpdevil:1566 #: mpdevil:1554
msgid "Play" msgid "Play"
msgstr "" msgstr ""
#: mpdevil:1567 #: mpdevil:1555
msgid "Directly play all titles" msgid "Directly play all titles"
msgstr "" msgstr ""
#: mpdevil:1568 #: mpdevil:1556
msgid "Enqueue" msgid "Enqueue"
msgstr "" msgstr ""
#: mpdevil:1569 #: mpdevil:1557
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:1723 #: mpdevil:1713
#, python-format #, python-format
msgid "%i hits" msgid "%i hits"
msgstr "" msgstr ""
#: mpdevil:1761 #: mpdevil:1751
msgid "all genres" msgid "all genres"
msgstr "" msgstr ""
#: mpdevil:1869 #: mpdevil:1859
msgid "Album Artist" msgid "Album Artist"
msgstr "" msgstr ""
#: mpdevil:1872 #: mpdevil:1862
msgid "all artists" msgid "all artists"
msgstr "" msgstr ""
#: mpdevil:1997 #: mpdevil:1987
msgid "Close" msgid "Close"
msgstr "" msgstr ""
#: mpdevil:2168 #: mpdevil:2152
#, 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:2171 mpdevil:2813 #: mpdevil:2155 mpdevil:2782
#, python-format #, python-format
msgid "%(total_tracks)i titles (%(total_length)s)" msgid "%(total_tracks)i titles (%(total_length)s)"
msgstr "" msgstr ""
#: mpdevil:2297 mpdevil:3431 #: mpdevil:2281 mpdevil:3377
msgid "Back to current album" msgid "Back to current album"
msgstr "" msgstr ""
#: mpdevil:2298 #: mpdevil:2282
msgid "Search" msgid "Search"
msgstr "" msgstr ""
#: mpdevil:2462 #: mpdevil:2466
msgid "searching..." msgid "searching..."
msgstr "" msgstr ""
#: mpdevil:2466 #: mpdevil:2471
msgid "connection error"
msgstr ""
#: mpdevil:2473
msgid "lyrics not found" msgid "lyrics not found"
msgstr "" msgstr ""
#: mpdevil:2543 #: mpdevil:2521
#, 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:2687 #: mpdevil:2656
msgid "Scroll to current song" msgid "Scroll to current song"
msgstr "" msgstr ""
#: mpdevil:2694 #: mpdevil:2663
msgid "Clear playlist" msgid "Clear playlist"
msgstr "" msgstr ""
#: mpdevil:2970 #: mpdevil:2939
msgid "Show lyrics" msgid "Show lyrics"
msgstr "" msgstr ""
#: mpdevil:3307 #: mpdevil:3253
msgid "Random mode" msgid "Random mode"
msgstr "" msgstr ""
#: mpdevil:3308 #: mpdevil:3254
msgid "Repeat mode" msgid "Repeat mode"
msgstr "" msgstr ""
#: mpdevil:3309 #: mpdevil:3255
msgid "Single mode" msgid "Single mode"
msgstr "" msgstr ""
#: mpdevil:3310 #: mpdevil:3256
msgid "Consume mode" msgid "Consume mode"
msgstr "" msgstr ""
#: mpdevil:3416 #: mpdevil:3362
msgid "Window" msgid "Window"
msgstr "" msgstr ""
#: mpdevil:3417 #: mpdevil:3363
msgid "Playback" msgid "Playback"
msgstr "" msgstr ""
#: mpdevil:3418 #: mpdevil:3364
msgid "Search, Album Dialog and Album List" msgid "Search, Album Dialog and Album List"
msgstr "" msgstr ""
#: mpdevil:3428 #: mpdevil:3374
msgid "Toggle mini player" msgid "Toggle mini player"
msgstr "" msgstr ""
#: mpdevil:3429 #: mpdevil:3375
msgid "Toggle lyrics" msgid "Toggle lyrics"
msgstr "" msgstr ""
#: mpdevil:3430 #: mpdevil:3376
msgid "Toggle search" msgid "Toggle search"
msgstr "" msgstr ""
#: mpdevil:3432 #: mpdevil:3378
msgid "Open online help" msgid "Open online help"
msgstr "" msgstr ""
#: mpdevil:3433 mpdevil:3601 #: mpdevil:3379 mpdevil:3547
msgid "Quit" msgid "Quit"
msgstr "" msgstr ""
#: mpdevil:3434 #: mpdevil:3380
msgid "Play/Pause" msgid "Play/Pause"
msgstr "" msgstr ""
#: mpdevil:3435 #: mpdevil:3381
msgid "Next title" msgid "Next title"
msgstr "" msgstr ""
#: mpdevil:3436 #: mpdevil:3382
msgid "Previous title" msgid "Previous title"
msgstr "" msgstr ""
#: mpdevil:3437 #: mpdevil:3383
msgid "Seek forward" msgid "Seek forward"
msgstr "" msgstr ""
#: mpdevil:3438 #: mpdevil:3384
msgid "Seek backward" msgid "Seek backward"
msgstr "" msgstr ""
#: mpdevil:3439 mpdevil:3604 #: mpdevil:3385 mpdevil:3550
msgid "Update database" msgid "Update database"
msgstr "" msgstr ""
#: mpdevil:3440 #: mpdevil:3386
msgid "Play selected item (next)" msgid "Play selected item (next)"
msgstr "" msgstr ""
#: mpdevil:3440 #: mpdevil:3386
msgid "Left-click" msgid "Left-click"
msgstr "" msgstr ""
#: mpdevil:3441 #: mpdevil:3387
msgid "Append selected item" msgid "Append selected item"
msgstr "" msgstr ""
#: mpdevil:3441 mpdevil:3444 #: mpdevil:3387 mpdevil:3390
msgid "Middle-click" msgid "Middle-click"
msgstr "" msgstr ""
#: mpdevil:3442 #: mpdevil:3388
msgid "Play selected item immediately" msgid "Play selected item immediately"
msgstr "" msgstr ""
#: mpdevil:3442 #: mpdevil:3388
msgid "Double-click" msgid "Double-click"
msgstr "" msgstr ""
#: mpdevil:3443 mpdevil:3445 #: mpdevil:3389 mpdevil:3391
msgid "Show additional information" msgid "Show additional information"
msgstr "" msgstr ""
#: mpdevil:3443 mpdevil:3445 #: mpdevil:3389 mpdevil:3391
msgid "Right-click" msgid "Right-click"
msgstr "" msgstr ""
#: mpdevil:3444 #: mpdevil:3390
msgid "Remove selected song" msgid "Remove selected song"
msgstr "" msgstr ""
#: mpdevil:3459 #: mpdevil:3405
msgid "Select profile" msgid "Select profile"
msgstr "" msgstr ""
#: mpdevil:3535 #: mpdevil:3481
#, python-format #, python-format
msgid "Connection to \"%(profile)s\" (%(host)s:%(port)s) failed" msgid "Connection to \"%(profile)s\" (%(host)s:%(port)s) failed"
msgstr "" msgstr ""
#: mpdevil:3598 #: mpdevil:3544
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "" msgstr ""
#: mpdevil:3599 #: mpdevil:3545
msgid "Help" msgid "Help"
msgstr "" msgstr ""
#: mpdevil:3600 #: mpdevil:3546
msgid "About" msgid "About"
msgstr "" msgstr ""
#: mpdevil:3605 #: mpdevil:3551
msgid "Server stats" msgid "Server stats"
msgstr "" msgstr ""
#: mpdevil:3608 #: mpdevil:3554
msgid "Save window layout" msgid "Save window layout"
msgstr "" msgstr ""
#: mpdevil:3609 #: mpdevil:3555
msgid "Mini player" msgid "Mini player"
msgstr "" msgstr ""
#: mpdevil:3613 #: mpdevil:3559
msgid "Menu" msgid "Menu"
msgstr "" msgstr ""