17 Commits

Author SHA1 Message Date
Martin Wagner
7ab40d5049 preparations for 0.9.9 2021-01-01 21:20:33 +01:00
Martin Wagner
a695d829d8 fixed play/pause (space key) when album popover is shown 2021-01-01 21:05:40 +01:00
Martin Wagner
ac749a10dd fixed error when GLib.UserDirectory.DIRECTORY_MUSIC returns None 2021-01-01 17:54:20 +01:00
Martin Wagner
f7ada87104 ensure window is shown before connecting client 2021-01-01 15:50:08 +01:00
Martin Wagner
4925b0288c improved open with button appearance 2021-01-01 15:37:17 +01:00
Martin Wagner
d920da9e52 fixed typo in german translation 2021-01-01 14:34:31 +01:00
Martin Wagner
fb60e4701f fixed license text in source code 2021-01-01 14:11:59 +01:00
Martin Wagner
35ef3deaab updated copyright 2021-01-01 13:19:05 +01:00
Martin Wagner
62c30b1b01 small ui fixes 2021-01-01 12:44:04 +01:00
Martin Wagner
2f28b91865 simplified SongPopover 2020-12-31 17:28:33 +01:00
Martin Wagner
72588b5b66 fixed placing of app chooser dialog 2020-12-31 14:54:13 +01:00
Martin Wagner
838e421466 added ability to open song files with any application 2020-12-31 14:47:25 +01:00
Martin Wagner
2d6e2aa3f5 improved progress indication while albums are loading 2020-12-29 18:42:53 +01:00
Martin Wagner
6fe8fa9d37 allow password revealing 2020-12-29 17:44:20 +01:00
Martin Wagner
2493255643 Update README.md 2020-12-28 13:45:12 +01:00
Martin Wagner
d86a52d1d3 replaced Gtk.FileChosserDialog with Gtk.FileChooserNative 2020-12-28 13:02:38 +01:00
Martin Wagner
36c25b54c4 added missing tags to appdata 2020-12-27 22:51:16 +01:00
7 changed files with 544 additions and 451 deletions

View File

@@ -46,6 +46,10 @@ Gentoo (see: https://wiki.gentoo.org/wiki/Custom_repository):
- Generate manifest file - Generate manifest file
- Run: `emerge mpdevil` - Run: `emerge mpdevil`
Flatpak:
<a href='https://flathub.org/apps/details/org.mpdevil.mpdevil'><img width='240' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'/></a>
Building Building
-------- --------

View File

@@ -2,21 +2,20 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# mpdevil - MPD Client. # mpdevil - MPD Client.
# Copyright 2020 Martin Wagner <martin.wagner.dev@gmail.com> # Copyright (C) 2020-2021 Martin Wagner <martin.wagner.dev@gmail.com>
# #
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 3 of the License. # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program. If not, see <https://www.gnu.org/licenses/>.
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
import gi import gi
gi.require_version("Gtk", "3.0") gi.require_version("Gtk", "3.0")
@@ -36,7 +35,7 @@ if os.path.isfile("/.flatpak-info"): # test for flatpak environment
gettext.bindtextdomain("mpdevil", "/app/share/locale") gettext.bindtextdomain("mpdevil", "/app/share/locale")
_=gettext.gettext _=gettext.gettext
VERSION="0.9.8" # sync with setup.py VERSION="0.9.9" # 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)$"
@@ -635,6 +634,17 @@ class Client(MPDClient):
pass pass
return meta_base return meta_base
def get_absolute_path(self, uri):
lib_path=self._settings.get_lib_path()
if lib_path is not None:
path=os.path.join(lib_path, uri)
if os.path.isfile(path):
return path
else:
return None
else:
return None
def toggle_play(self): def toggle_play(self):
status=self.status() status=self.status()
if status["state"] == "play": if status["state"] == "play":
@@ -763,6 +773,14 @@ class Settings(Gio.Settings):
else: else:
return ("artist") return ("artist")
def get_lib_path(self, profile=None):
if profile is None: # use current profile if none is given
profile=self.get_int("active-profile")
lib_path=self.get_value("paths")[profile]
if lib_path == "":
lib_path=GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_MUSIC)
return lib_path
################### ###################
# settings dialog # # settings dialog #
################### ###################
@@ -923,13 +941,13 @@ class ProfileSettings(Gtk.Grid):
# widgets # widgets
self._profiles_combo=Gtk.ComboBoxText(entry_text_column=0, hexpand=True) self._profiles_combo=Gtk.ComboBoxText(entry_text_column=0, hexpand=True)
add_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("list-add", Gtk.IconSize.BUTTON)) add_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("list-add-symbolic", Gtk.IconSize.BUTTON))
delete_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("list-remove", Gtk.IconSize.BUTTON)) delete_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("list-remove-symbolic", Gtk.IconSize.BUTTON))
add_delete_buttons=Gtk.ButtonBox(layout_style=Gtk.ButtonBoxStyle.EXPAND) add_delete_buttons=Gtk.ButtonBox(layout_style=Gtk.ButtonBoxStyle.EXPAND)
add_delete_buttons.pack_start(add_button, True, True, 0) add_delete_buttons.pack_start(add_button, True, True, 0)
add_delete_buttons.pack_start(delete_button, True, True, 0) add_delete_buttons.pack_start(delete_button, True, True, 0)
connect_button=Gtk.Button(label=_("Connect"), image=Gtk.Image.new_from_icon_name("system-run", Gtk.IconSize.BUTTON)) connect_button=Gtk.Button.new_with_mnemonic(_("_Connect"))
self._profile_entry=Gtk.Entry(hexpand=True) self._profile_entry=Gtk.Entry(hexpand=True)
self._host_entry=Gtk.Entry(hexpand=True) self._host_entry=Gtk.Entry(hexpand=True)
@@ -937,9 +955,9 @@ class ProfileSettings(Gtk.Grid):
address_entry=Gtk.Box(spacing=6) address_entry=Gtk.Box(spacing=6)
address_entry.pack_start(self._host_entry, True, True, 0) address_entry.pack_start(self._host_entry, True, True, 0)
address_entry.pack_start(self._port_entry, False, False, 0) address_entry.pack_start(self._port_entry, False, False, 0)
self._password_entry=Gtk.Entry(hexpand=True, visibility=False) self._password_entry=PasswordEntry(hexpand=True)
self._path_entry=Gtk.Entry(hexpand=True, placeholder_text=GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_MUSIC)) self._path_entry=Gtk.Entry(hexpand=True, placeholder_text=GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_MUSIC))
self._path_select_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("folder-open", Gtk.IconSize.BUTTON)) self._path_select_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("folder-open-symbolic", Gtk.IconSize.BUTTON))
path_box=Gtk.Box(spacing=6) path_box=Gtk.Box(spacing=6)
path_box.pack_start(self._path_entry, True, True, 0) path_box.pack_start(self._path_entry, True, True, 0)
path_box.pack_start(self._path_select_button, False, False, 0) path_box.pack_start(self._path_select_button, False, False, 0)
@@ -961,6 +979,8 @@ class ProfileSettings(Gtk.Grid):
add_button.connect("clicked", self._on_add_button_clicked) add_button.connect("clicked", self._on_add_button_clicked)
delete_button.connect("clicked", self._on_delete_button_clicked) delete_button.connect("clicked", self._on_delete_button_clicked)
connect_button.connect("clicked", self._on_connect_button_clicked) connect_button.connect("clicked", self._on_connect_button_clicked)
style_context=connect_button.get_style_context()
style_context.add_class("suggested-action")
self._path_select_button.connect("clicked", self._on_path_select_button_clicked, parent) self._path_select_button.connect("clicked", self._on_path_select_button_clicked, parent)
self._profiles_changed=self._profiles_combo.connect("changed", self._on_profiles_changed) self._profiles_changed=self._profiles_combo.connect("changed", self._on_profiles_changed)
self.entry_changed_handlers=[] self.entry_changed_handlers=[]
@@ -1088,17 +1108,12 @@ class ProfileSettings(Gtk.Grid):
self._settings.array_modify("as", "regex", self._profiles_combo.get_active(), self._regex_entry.get_text()) self._settings.array_modify("as", "regex", self._profiles_combo.get_active(), self._regex_entry.get_text())
def _on_path_select_button_clicked(self, widget, parent): def _on_path_select_button_clicked(self, widget, parent):
dialog=Gtk.FileChooserDialog(title=_("Choose directory"), transient_for=parent, action=Gtk.FileChooserAction.SELECT_FOLDER) dialog=Gtk.FileChooserNative(title=_("Choose directory"), transient_for=parent, action=Gtk.FileChooserAction.SELECT_FOLDER)
dialog.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL) folder=self._settings.get_lib_path(self._profiles_combo.get_active())
dialog.add_buttons(Gtk.STOCK_OK, Gtk.ResponseType.OK) if folder is not None:
dialog.set_default_size(800, 400)
folder=self._settings.get_value("paths")[self._profiles_combo.get_active()]
if folder == "":
dialog.set_current_folder(GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_MUSIC))
else:
dialog.set_current_folder(folder) dialog.set_current_folder(folder)
response=dialog.run() response=dialog.run()
if response == Gtk.ResponseType.OK: if response == Gtk.ResponseType.ACCEPT:
self._gui_modification=True self._gui_modification=True
self._settings.array_modify("as", "paths", self._profiles_combo.get_active(), dialog.get_filename()) self._settings.array_modify("as", "paths", self._profiles_combo.get_active(), dialog.get_filename())
self._path_entry.set_text(dialog.get_filename()) self._path_entry.set_text(dialog.get_filename())
@@ -1287,7 +1302,6 @@ class SettingsDialog(Gtk.Dialog):
vbox.set_property("spacing", 6) vbox.set_property("spacing", 6)
vbox.set_property("border-width", 6) vbox.set_property("border-width", 6)
vbox.pack_start(tabs, True, True, 0) vbox.pack_start(tabs, True, True, 0)
self.show_all() self.show_all()
################# #################
@@ -1330,7 +1344,6 @@ class ServerStats(Gtk.Dialog):
vbox=self.get_content_area() vbox=self.get_content_area()
vbox.set_property("border-width", 6) vbox.set_property("border-width", 6)
vbox.pack_start(grid, True, True, 0) vbox.pack_start(grid, True, True, 0)
self.show_all() self.show_all()
self.run() self.run()
@@ -1343,7 +1356,8 @@ class AboutDialog(Gtk.AboutDialog):
self.set_authors(["Martin Wagner"]) self.set_authors(["Martin Wagner"])
self.set_translator_credits("Martin de Reuver\nMartin 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("Copyright \xa9 2020-2021 Martin Wagner")
self.set_license_type(Gtk.License.GPL_3_0)
self.set_logo_icon_name("org.mpdevil.mpdevil") self.set_logo_icon_name("org.mpdevil.mpdevil")
########################### ###########################
@@ -1368,6 +1382,22 @@ class AutoSizedIcon(Gtk.Image):
def _on_icon_size_changed(self, *args): def _on_icon_size_changed(self, *args):
self.set_pixel_size(self._settings.get_int(self._settings_key)) self.set_pixel_size(self._settings.get_int(self._settings_key))
class PasswordEntry(Gtk.Entry):
def __init__(self, **kwargs):
super().__init__(visibility=False, caps_lock_warning=False, input_purpose=Gtk.InputPurpose.PASSWORD, **kwargs)
self.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, "view-conceal-symbolic")
# connect
self.connect("icon-release", self._on_icon_release)
def _on_icon_release(self, *args):
if self.get_icon_name(Gtk.EntryIconPosition.SECONDARY) == "view-conceal-symbolic":
self.set_visibility(True)
self.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, "view-reveal-symbolic")
else:
self.set_visibility(False)
self.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, "view-conceal-symbolic")
class FocusFrame(Gtk.Overlay): class FocusFrame(Gtk.Overlay):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
@@ -1396,7 +1426,7 @@ class FocusFrame(Gtk.Overlay):
self._widget.connect("focus-out-event", lambda *args: self._frame.hide()) self._widget.connect("focus-out-event", lambda *args: self._frame.hide())
class SongPopover(Gtk.Popover): class SongPopover(Gtk.Popover):
def __init__(self, song, relative, x, y, offset=26): def __init__(self, uri, client, relative, x, y, offset=26):
super().__init__() super().__init__()
rect=Gdk.Rectangle() rect=Gdk.Rectangle()
rect.x=x rect.x=x
@@ -1408,13 +1438,26 @@ class SongPopover(Gtk.Popover):
self.set_pointing_to(rect) self.set_pointing_to(rect)
self.set_relative_to(relative) self.set_relative_to(relative)
# css # client calls
song=client.wrapped_call("get_metadata", uri)
abs_path=client.wrapped_call("get_absolute_path", uri)
# popover css
style_context=self.get_style_context() style_context=self.get_style_context()
provider=Gtk.CssProvider() provider=Gtk.CssProvider()
css=b"""* {background-color: @theme_base_color}""" css=b"""* {background-color: @theme_base_color}"""
provider.load_from_data(css) provider.load_from_data(css)
style_context.add_provider(provider, 600) style_context.add_provider(provider, 600)
# open with button
open_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("document-open-symbolic",Gtk.IconSize.BUTTON),tooltip_text=_("Open with…"))
style_context=open_button.get_style_context()
style_context.add_class("circular")
open_button_revealer=Gtk.Revealer() # needed for open_button tooltip
open_button_revealer.set_halign(Gtk.Align.END)
open_button_revealer.set_valign(Gtk.Align.END)
open_button_revealer.add(open_button)
# treeview # treeview
# (tag, display-value, tooltip) # (tag, display-value, tooltip)
store=Gtk.ListStore(str, str, str) store=Gtk.ListStore(str, str, str)
@@ -1445,15 +1488,31 @@ class SongPopover(Gtk.Popover):
store.append([tag+":", value, tooltip]) store.append([tag+":", value, tooltip])
# packing # packing
overlay=Gtk.Overlay()
scroll=Gtk.ScrolledWindow(border_width=3) scroll=Gtk.ScrolledWindow(border_width=3)
scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
window=self.get_toplevel() window=self.get_toplevel()
scroll.set_max_content_height(window.get_size()[1]//2) scroll.set_max_content_height(window.get_size()[1]//2)
scroll.set_propagate_natural_height(True) scroll.set_propagate_natural_height(True)
scroll.add(treeview) scroll.add(treeview)
self.add(scroll) overlay.add(scroll)
overlay.add_overlay(open_button_revealer)
if abs_path is not None: # show open with button when song is on the same computer
self._gfile=Gio.File.new_for_path(abs_path)
open_button.connect("clicked", self._on_open_button_clicked)
open_button_revealer.set_reveal_child(True)
self.add(overlay)
overlay.show_all()
scroll.show_all() def _on_open_button_clicked(self, *args):
self.popdown()
dialog=Gtk.AppChooserDialog(gfile=self._gfile, transient_for=self.get_toplevel())
app_chooser=dialog.get_widget()
response=dialog.run()
if response == Gtk.ResponseType.OK:
app=app_chooser.get_app_info()
app.launch([self._gfile], None)
dialog.destroy()
class SongsView(Gtk.TreeView): class SongsView(Gtk.TreeView):
def __init__(self, client, store, file_column_id): def __init__(self, client, store, file_column_id):
@@ -1506,11 +1565,11 @@ class SongsView(Gtk.TreeView):
elif event.button == 2 and event.type == Gdk.EventType.BUTTON_RELEASE: elif event.button == 2 and event.type == Gdk.EventType.BUTTON_RELEASE:
self._client.wrapped_call("files_to_playlist", [self._store[path][self._file_column_id]], "append") self._client.wrapped_call("files_to_playlist", [self._store[path][self._file_column_id]], "append")
elif event.button == 3 and event.type == Gdk.EventType.BUTTON_RELEASE: elif event.button == 3 and event.type == Gdk.EventType.BUTTON_RELEASE:
song=self._client.wrapped_call("get_metadata", self._store[path][self._file_column_id]) uri=self._store[path][self._file_column_id]
if self.get_property("headers-visible"): if self.get_property("headers-visible"):
pop=SongPopover(song, widget, int(event.x), int(event.y)) pop=SongPopover(uri, self._client, widget, int(event.x), int(event.y))
else: else:
pop=SongPopover(song, widget, int(event.x), int(event.y), offset=0) pop=SongPopover(uri, self._client, widget, int(event.x), int(event.y), offset=0)
pop.popup() pop.popup()
self._button_event=(None, None) self._button_event=(None, None)
@@ -1524,8 +1583,7 @@ class SongsView(Gtk.TreeView):
elif event.keyval == Gdk.keyval_from_name("Menu"): elif event.keyval == Gdk.keyval_from_name("Menu"):
path=self._store.get_path(treeiter) path=self._store.get_path(treeiter)
cell=self.get_cell_area(path, None) cell=self.get_cell_area(path, None)
file_name=self._store[path][self._file_column_id] pop=SongPopover(self._store[path][self._file_column_id], self._client, widget, cell.x, cell.y)
pop=SongPopover(self._client.wrapped_call("get_metadata", file_name), widget, cell.x, cell.y)
pop.popup() pop.popup()
class SongsWindow(Gtk.Box): class SongsWindow(Gtk.Box):
@@ -1545,13 +1603,13 @@ class SongsWindow(Gtk.Box):
# buttons # buttons
append_button=Gtk.Button.new_with_mnemonic(_("_Append")) append_button=Gtk.Button.new_with_mnemonic(_("_Append"))
append_button.set_image(Gtk.Image.new_from_icon_name("list-add", Gtk.IconSize.BUTTON)) append_button.set_image(Gtk.Image.new_from_icon_name("list-add-symbolic", Gtk.IconSize.BUTTON))
append_button.set_tooltip_text(_("Add all titles to playlist")) append_button.set_tooltip_text(_("Add all titles to playlist"))
play_button=Gtk.Button.new_with_mnemonic(_("_Play")) play_button=Gtk.Button.new_with_mnemonic(_("_Play"))
play_button.set_image(Gtk.Image.new_from_icon_name("media-playback-start", Gtk.IconSize.BUTTON)) play_button.set_image(Gtk.Image.new_from_icon_name("media-playback-start-symbolic", Gtk.IconSize.BUTTON))
play_button.set_tooltip_text(_("Directly play all titles")) play_button.set_tooltip_text(_("Directly play all titles"))
enqueue_button=Gtk.Button.new_with_mnemonic(_("_Enqueue")) enqueue_button=Gtk.Button.new_with_mnemonic(_("_Enqueue"))
enqueue_button.set_image(Gtk.Image.new_from_icon_name("insert-object", Gtk.IconSize.BUTTON)) enqueue_button.set_image(Gtk.Image.new_from_icon_name("insert-object-symbolic", Gtk.IconSize.BUTTON))
enqueue_button.set_tooltip_text(_("Append all titles after the currently playing track and clear the playlist from all other songs")) enqueue_button.set_tooltip_text(_("Append all titles after the currently playing track and clear the playlist from all other songs"))
# button box # button box
@@ -1664,7 +1722,6 @@ class AlbumPopover(Gtk.Popover):
# packing # packing
self.add(songs_window) self.add(songs_window)
songs_window.show_all() songs_window.show_all()
class Cover(object): class Cover(object):
@@ -1674,9 +1731,7 @@ class Cover(object):
if song != {}: if song != {}:
song_file=song["file"] song_file=song["file"]
active_profile=settings.get_int("active-profile") active_profile=settings.get_int("active-profile")
lib_path=settings.get_value("paths")[active_profile] lib_path=settings.get_lib_path()
if lib_path == "":
lib_path=GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_MUSIC)
if lib_path is not None: if lib_path is not None:
regex_str=settings.get_value("regex")[active_profile] regex_str=settings.get_value("regex")[active_profile]
if regex_str == "": if regex_str == "":
@@ -2041,6 +2096,9 @@ class AlbumWindow(FocusFrame):
self._scroll_vadj=scroll.get_vadjustment() self._scroll_vadj=scroll.get_vadjustment()
self._scroll_hadj=scroll.get_hadjustment() self._scroll_hadj=scroll.get_hadjustment()
# progress bar
self._progress_bar=Gtk.ProgressBar(no_show_all=True)
# connect # connect
self._iconview.connect("item-activated", self._on_item_activated) self._iconview.connect("item-activated", self._on_item_activated)
self._iconview.connect("button-press-event", self._on_button_press_event) self._iconview.connect("button-press-event", self._on_button_press_event)
@@ -2055,8 +2113,12 @@ class AlbumWindow(FocusFrame):
self._settings.connect("changed::use-album-artist", self._clear) self._settings.connect("changed::use-album-artist", self._clear)
self._artist_window.connect("artists_changed", self._refresh) self._artist_window.connect("artists_changed", self._refresh)
# packing
self.set_widget(self._iconview) self.set_widget(self._iconview)
self.add(scroll) box=Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
box.pack_start(scroll, True, True, 0)
box.pack_start(self._progress_bar, False, False, 0)
self.add(box)
def _workaround_clear(self): def _workaround_clear(self):
self._store.clear() self._store.clear()
@@ -2110,6 +2172,7 @@ class AlbumWindow(FocusFrame):
if self._done: if self._done:
self._done=False self._done=False
self._settings.set_property("cursor-watch", True) self._settings.set_property("cursor-watch", True)
self._progress_bar.show()
GLib.idle_add(self._store.clear) GLib.idle_add(self._store.clear)
self._iconview.set_model(None) self._iconview.set_model(None)
try: # self._artist_window can still be empty (e.g. when client is not connected and cover size gets changed) try: # self._artist_window can still be empty (e.g. when client is not connected and cover size gets changed)
@@ -2125,12 +2188,14 @@ class AlbumWindow(FocusFrame):
# prepare albmus list (run all mpd related commands) # prepare albmus list (run all mpd related commands)
albums=[] albums=[]
artist_type=self._settings.get_artist_type() artist_type=self._settings.get_artist_type()
for artist in artists: for i, artist in enumerate(artists):
try: # client cloud meanwhile disconnect try: # client cloud meanwhile disconnect
if self.stop_flag: if self.stop_flag:
GLib.idle_add(self._done_callback) GLib.idle_add(self._done_callback)
return return
else: else:
if i > 0: # more than one artist to show (all artists)
GLib.idle_add(self._progress_bar.pulse)
if genre is None: if genre is None:
album_candidates=self._client.wrapped_call("comp_list", "album", artist_type, artist) album_candidates=self._client.wrapped_call("comp_list", "album", artist_type, artist)
else: else:
@@ -2184,10 +2249,12 @@ class AlbumWindow(FocusFrame):
def load_covers(): def load_covers():
size=self._settings.get_int("album-cover") size=self._settings.get_int("album-cover")
for album in albums: total_albums=len(albums)
for i, album in enumerate(albums):
if self.stop_flag: if self.stop_flag:
break break
album["cover"]=Cover(self._settings, album["songs"][0]).get_pixbuf(size) album["cover"]=Cover(self._settings, album["songs"][0]).get_pixbuf(size)
GLib.idle_add(self._progress_bar.set_fraction, (i+1)/total_albums)
if self.stop_flag: if self.stop_flag:
GLib.idle_add(self._done_callback) GLib.idle_add(self._done_callback)
else: else:
@@ -2207,6 +2274,8 @@ class AlbumWindow(FocusFrame):
def _done_callback(self, *args): def _done_callback(self, *args):
self._settings.set_property("cursor-watch", False) self._settings.set_property("cursor-watch", False)
self._progress_bar.hide()
self._progress_bar.set_fraction(0)
self.stop_flag=False self.stop_flag=False
self._done=True self._done=True
pending=self._pending pending=self._pending
@@ -2322,7 +2391,6 @@ class Browser(Gtk.Paned):
self._stack=Gtk.Stack(transition_type=Gtk.StackTransitionType.CROSSFADE) self._stack=Gtk.Stack(transition_type=Gtk.StackTransitionType.CROSSFADE)
self._stack.add_named(self._album_window, "albums") self._stack.add_named(self._album_window, "albums")
self._stack.add_named(self._search_window, "search") self._stack.add_named(self._search_window, "search")
hbox=Gtk.Box(spacing=6, border_width=6) hbox=Gtk.Box(spacing=6, border_width=6)
if self._use_csd: if self._use_csd:
hbox.pack_start(self._genre_select, True, True, 0) hbox.pack_start(self._genre_select, True, True, 0)
@@ -2336,7 +2404,6 @@ class Browser(Gtk.Paned):
box1.pack_start(self._artist_window, True, True, 0) box1.pack_start(self._artist_window, True, True, 0)
self.pack1(box1, False, False) self.pack1(box1, False, False)
self.pack2(self._stack, True, False) self.pack2(self._stack, True, False)
self.set_position(self._settings.get_int("paned1")) self.set_position(self._settings.get_int("paned1"))
def save_settings(self): def save_settings(self):
@@ -2827,8 +2894,7 @@ class PlaylistWindow(Gtk.Box):
if event.button == 2 and event.type == Gdk.EventType.BUTTON_RELEASE: if event.button == 2 and event.type == Gdk.EventType.BUTTON_RELEASE:
self._store.remove(self._store.get_iter(path)) self._store.remove(self._store.get_iter(path))
elif event.button == 3 and event.type == Gdk.EventType.BUTTON_RELEASE: elif event.button == 3 and event.type == Gdk.EventType.BUTTON_RELEASE:
song=self._client.wrapped_call("get_metadata", self._store[path][8]) pop=SongPopover(self._store[path][8], self._client, widget, int(event.x), int(event.y))
pop=SongPopover(song, widget, int(event.x), int(event.y))
pop.popup() pop.popup()
self._button_event=(None, None) self._button_event=(None, None)
@@ -2845,8 +2911,7 @@ class PlaylistWindow(Gtk.Box):
if treeiter is not None: if treeiter is not None:
path=self._store.get_path(treeiter) path=self._store.get_path(treeiter)
cell=self._treeview.get_cell_area(path, None) cell=self._treeview.get_cell_area(path, None)
file_name=self._store[path][8] pop=SongPopover(self._store[path][8], self._client, 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()
def _on_row_deleted(self, model, path): # sync treeview to mpd def _on_row_deleted(self, model, path): # sync treeview to mpd
@@ -3003,7 +3068,6 @@ class CoverPlaylistWindow(Gtk.Paned):
overlay.add_overlay(self._lyrics_button_revealer) overlay.add_overlay(self._lyrics_button_revealer)
self.pack1(overlay, False, False) self.pack1(overlay, False, False)
self.pack2(self._playlist_window, True, False) self.pack2(self._playlist_window, True, False)
self.set_position(self._settings.get_int("paned0")) self.set_position(self._settings.get_int("paned0"))
self._on_settings_changed() # hide lyrics button self._on_settings_changed() # hide lyrics button
@@ -3268,7 +3332,6 @@ class OutputPopover(Gtk.Popover):
# packing # packing
self.add(box) self.add(box)
box.show_all() box.show_all()
def _on_button_toggled(self, button, out_id): def _on_button_toggled(self, button, out_id):
@@ -3704,7 +3767,6 @@ class MainWindow(Gtk.ApplicationWindow):
overlay=Gtk.Overlay() overlay=Gtk.Overlay()
overlay.add(vbox) overlay.add(vbox)
overlay.add_overlay(connection_notify) overlay.add_overlay(connection_notify)
if self._use_csd: if self._use_csd:
self._header_bar=Gtk.HeaderBar() self._header_bar=Gtk.HeaderBar()
self._header_bar.set_show_close_button(True) self._header_bar.set_show_close_button(True)
@@ -3715,9 +3777,7 @@ class MainWindow(Gtk.ApplicationWindow):
else: else:
action_bar.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.VERTICAL)) action_bar.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.VERTICAL))
action_bar.pack_start(self._menu_button) action_bar.pack_start(self._menu_button)
self.add(overlay) self.add(overlay)
self._client.emitter.emit("disconnected") # bring player in defined state self._client.emitter.emit("disconnected") # bring player in defined state
# indicate connection process in window title # indicate connection process in window title
if self._use_csd: if self._use_csd:
@@ -3725,6 +3785,10 @@ class MainWindow(Gtk.ApplicationWindow):
else: else:
self.set_title("mpdevil "+_("connecting…")) self.set_title("mpdevil "+_("connecting…"))
self.show_all() self.show_all()
while Gtk.events_pending(): # ensure window is visible
Gtk.main_iteration_do(True)
# start client
def callback(*args): def callback(*args):
self._client.start() # connect client self._client.start() # connect client
return False return False
@@ -3887,6 +3951,8 @@ class mpdevil(Gtk.Application):
) )
for action, accels in action_accels: for action, accels in action_accels:
self.set_accels_for_action(action, accels) self.set_accels_for_action(action, accels)
# disable item activation on space key pressed in treeviews
Gtk.binding_entry_remove(Gtk.binding_set_find('GtkTreeView'), Gdk.keyval_from_name("space"), Gdk.ModifierType.MOD2_MASK)
self._window.present() self._window.present()
def do_startup(self): def do_startup(self):

View File

@@ -22,6 +22,10 @@
<li>manage multiple mpd servers</li> <li>manage multiple mpd servers</li>
</ul> </ul>
</description> </description>
<releases>
<release version="0.9.8" date="2020-12-27"/>
<release version="0.9.9" date="2021-01-01"/>
</releases>
<launchable type="desktop-id">org.mpdevil.mpdevil.desktop</launchable> <launchable type="desktop-id">org.mpdevil.mpdevil.desktop</launchable>
<screenshots> <screenshots>
<screenshot type="default"> <screenshot type="default">
@@ -30,6 +34,7 @@
</screenshots> </screenshots>
<url type="homepage">https://github.com/SoongNoonien/mpdevil</url> <url type="homepage">https://github.com/SoongNoonien/mpdevil</url>
<url type="bugtracker">https://github.com/SoongNoonien/mpdevil/issues</url> <url type="bugtracker">https://github.com/SoongNoonien/mpdevil/issues</url>
<content_rating type="oars-1.1" />
<provides> <provides>
<binary>mpdevil</binary> <binary>mpdevil</binary>
</provides> </provides>

271
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-10-20 18:10+0200\n" "POT-Creation-Date: 2021-01-01 12:34+0100\n"
"PO-Revision-Date: 2020-10-20 18:14+0200\n" "PO-Revision-Date: 2021-01-01 14:33+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: de\n" "Language: de\n"
@@ -18,103 +18,103 @@ msgstr ""
"X-Generator: Poedit 2.3.1\n" "X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: mpdevil:419 #: mpdevil:471
msgid "Unknown Title" msgid "Unknown Title"
msgstr "Unbekannter Titel" msgstr "Unbekannter Titel"
#: mpdevil:719 #: mpdevil:795
msgid "Main cover size:" msgid "Main cover size:"
msgstr "Größe des Haupt-Covers:" msgstr "Größe des Haupt-Covers:"
#: mpdevil:720 #: mpdevil:796
msgid "Album view cover size:" msgid "Album view cover size:"
msgstr "Covergröße in Albumliste:" msgstr "Covergröße in Albumliste:"
#: mpdevil:721 #: mpdevil:797
msgid "Action bar icon size:" msgid "Action bar icon size:"
msgstr "Symbolgröße Aktionsleiste:" msgstr "Symbolgröße Aktionsleiste:"
#: mpdevil:722 #: mpdevil:798
msgid "Secondary icon size:" msgid "Secondary icon size:"
msgstr "Sekundäre Symbolgröße:" msgstr "Sekundäre Symbolgröße:"
#: mpdevil:735 #: mpdevil:811
msgid "Sort albums by:" msgid "Sort albums by:"
msgstr "Sortiere Alben nach:" msgstr "Sortiere Alben nach:"
#: mpdevil:735 #: mpdevil:811
msgid "name" msgid "name"
msgstr "Name" msgstr "Name"
#: mpdevil:735 #: mpdevil:811
msgid "year" msgid "year"
msgstr "Jahr" msgstr "Jahr"
#: mpdevil:736 #: mpdevil:812
msgid "Position of playlist:" msgid "Position of playlist:"
msgstr "Wiedergabelistenposition:" msgstr "Wiedergabelistenposition:"
#: mpdevil:736 #: mpdevil:812
msgid "bottom" msgid "bottom"
msgstr "unten" msgstr "unten"
#: mpdevil:736 #: mpdevil:812
msgid "right" msgid "right"
msgstr "rechts" msgstr "rechts"
#: mpdevil:754 #: mpdevil:830
msgid "Use Client-side decoration" msgid "Use Client-side decoration"
msgstr "Benutze „Client-side decoration“" msgstr "Benutze „Client-side decoration“"
#: mpdevil:755 #: mpdevil:831
msgid "Show stop button" msgid "Show stop button"
msgstr "Zeige Stopp-Knopf" msgstr "Zeige Stopp-Knopf"
#: mpdevil:756 #: mpdevil:832
msgid "Show lyrics button" msgid "Show lyrics button"
msgstr "Zeige Liedtext-Knopf" msgstr "Zeige Liedtext-Knopf"
#: mpdevil:757 #: mpdevil:833
msgid "Show initials in artist view" msgid "Show initials in artist view"
msgstr "Zeige Anfangsbuchstaben in Interpretenliste" msgstr "Zeige Anfangsbuchstaben in Interpretenliste"
#: mpdevil:758 #: mpdevil:834
msgid "Show tooltips in album view" msgid "Show tooltips in album view"
msgstr "Zeige Tooltips in Albumliste" msgstr "Zeige Tooltips in Albumliste"
#: mpdevil:759 #: mpdevil:835
msgid "Use “Album Artist” tag" msgid "Use “Album Artist” tag"
msgstr "Benutze „Album Artist“ Tag" msgstr "Benutze „Album Artist“ Tag"
#: mpdevil:760 #: mpdevil:836
msgid "Send notification on title change" msgid "Send notification on title change"
msgstr "Sende Benachrichtigung bei Titelwechsel" msgstr "Sende Benachrichtigung bei Titelwechsel"
#: mpdevil:761 #: mpdevil:837
msgid "Stop playback on quit" msgid "Stop playback on quit"
msgstr "Wiedergabe beim Beenden stoppen" msgstr "Wiedergabe beim Beenden stoppen"
#: mpdevil:762 #: mpdevil:838
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:775 #: mpdevil:851
msgid "<b>View</b>" msgid "<b>View</b>"
msgstr "<b>Ansicht</b>" msgstr "<b>Ansicht</b>"
#: mpdevil:776 #: mpdevil:852
msgid "<b>Behavior</b>" msgid "<b>Behavior</b>"
msgstr "<b>Verhalten</b>" msgstr "<b>Verhalten</b>"
#: mpdevil:808 #: mpdevil:884
msgid "(restart required)" msgid "(restart required)"
msgstr "(Neustart erforderlich)" msgstr "(Neustart erforderlich)"
#: mpdevil:870 mpdevil:3409 #: mpdevil:946
msgid "Connect" msgid "_Connect"
msgstr "Verbinden" msgstr "_Verbinden"
#: mpdevil:886 #: mpdevil:962
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 "
@@ -124,157 +124,161 @@ 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:891 #: mpdevil:967
msgid "Profile:" msgid "Profile:"
msgstr "Profil:" msgstr "Profil:"
#: mpdevil:892 #: mpdevil:968
msgid "Name:" msgid "Name:"
msgstr "Name:" msgstr "Name:"
#: mpdevil:893 #: mpdevil:969
msgid "Host:" msgid "Host:"
msgstr "Host:" msgstr "Host:"
#: mpdevil:894 #: mpdevil:970
msgid "Password:" msgid "Password:"
msgstr "Passwort:" msgstr "Passwort:"
#: mpdevil:895 #: mpdevil:971
msgid "Music lib:" msgid "Music lib:"
msgstr "Musikverzeichnis:" msgstr "Musikverzeichnis:"
#: mpdevil:896 #: mpdevil:972
msgid "Cover regex:" msgid "Cover regex:"
msgstr "Cover-Regex:" msgstr "Cover-Regex:"
#: mpdevil:1029 #: mpdevil:1107
msgid "Choose directory" msgid "Choose directory"
msgstr "Verzeichnis Wählen" msgstr "Verzeichnis wählen"
#: mpdevil:1065 #: mpdevil:1140
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:1082 mpdevil:1604 mpdevil:1930 mpdevil:2633 #: mpdevil:1157 mpdevil:1703 mpdevil:1799 mpdevil:2753
msgid "No" msgid "No"
msgstr "Nr." msgstr "Nr."
#: mpdevil:1082 mpdevil:2634 #: mpdevil:1157 mpdevil:2754
msgid "Disc" msgid "Disc"
msgstr "CD" msgstr "CD"
#: mpdevil:1082 mpdevil:1609 mpdevil:1933 mpdevil:2635 #: mpdevil:1157 mpdevil:1706 mpdevil:1804 mpdevil:2755
msgid "Title" msgid "Title"
msgstr "Titel" msgstr "Titel"
#: mpdevil:1082 mpdevil:1615 mpdevil:2636 #: mpdevil:1157 mpdevil:1810 mpdevil:2756
msgid "Artist" msgid "Artist"
msgstr "Interpret" msgstr "Interpret"
#: mpdevil:1082 mpdevil:1621 mpdevil:2637 #: mpdevil:1157 mpdevil:1816 mpdevil:2757
msgid "Album" msgid "Album"
msgstr "Album" msgstr "Album"
#: mpdevil:1082 mpdevil:1627 mpdevil:1937 mpdevil:2638 #: mpdevil:1157 mpdevil:1710 mpdevil:1822 mpdevil:2758
msgid "Length" msgid "Length"
msgstr "Länge" msgstr "Länge"
#: mpdevil:1082 mpdevil:2639 #: mpdevil:1157 mpdevil:2759
msgid "Year" msgid "Year"
msgstr "Jahr" msgstr "Jahr"
#: mpdevil:1082 mpdevil:2640 #: mpdevil:1157 mpdevil:2760
msgid "Genre" msgid "Genre"
msgstr "Genre" msgstr "Genre"
#: mpdevil:1198 mpdevil:1200 mpdevil:3498 #: mpdevil:1273 mpdevil:1275 mpdevil:3714
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#: mpdevil:1213 mpdevil:1222 mpdevil:3345 #: mpdevil:1288 mpdevil:1297 mpdevil:3560
msgid "General" msgid "General"
msgstr "Allgemein" msgstr "Allgemein"
#: mpdevil:1214 mpdevil:1223 mpdevil:3509 #: mpdevil:1289 mpdevil:1298 mpdevil:3725
msgid "Profiles" msgid "Profiles"
msgstr "Profile" msgstr "Profile"
#: mpdevil:1215 mpdevil:1224 mpdevil:3349 #: mpdevil:1290 mpdevil:1299 mpdevil:3564
msgid "Playlist" msgid "Playlist"
msgstr "Wiedergabeliste" msgstr "Wiedergabeliste"
#: mpdevil:1238 #: mpdevil:1313
msgid "Stats" msgid "Stats"
msgstr "Statistik" msgstr "Statistik"
#: mpdevil:1248 #: mpdevil:1323
msgid "<b>Protocol:</b>" msgid "<b>Protocol:</b>"
msgstr "<b>Protokoll:</b>" msgstr "<b>Protokoll:</b>"
#: mpdevil:1249 #: mpdevil:1324
msgid "<b>Uptime:</b>" msgid "<b>Uptime:</b>"
msgstr "<b>Uptime:</b>" msgstr "<b>Uptime:</b>"
#: mpdevil:1250 #: mpdevil:1325
msgid "<b>Playtime:</b>" msgid "<b>Playtime:</b>"
msgstr "<b>Wiedergabezeit:</b>" msgstr "<b>Wiedergabezeit:</b>"
#: mpdevil:1251 #: mpdevil:1326
msgid "<b>Artists:</b>" msgid "<b>Artists:</b>"
msgstr "<b>Künstler:</b>" msgstr "<b>Künstler:</b>"
#: mpdevil:1252 #: mpdevil:1327
msgid "<b>Albums:</b>" msgid "<b>Albums:</b>"
msgstr "<b>Alben:</b>" msgstr "<b>Alben:</b>"
#: mpdevil:1253 #: mpdevil:1328
msgid "<b>Songs:</b>" msgid "<b>Songs:</b>"
msgstr "<b>Titel:</b>" msgstr "<b>Titel:</b>"
#: mpdevil:1254 #: mpdevil:1329
msgid "<b>Total Playtime:</b>" msgid "<b>Total Playtime:</b>"
msgstr "<b>Gesamt Wiedergabezeit:</b>" msgstr "<b>Gesamt Wiedergabezeit:</b>"
#: mpdevil:1255 #: mpdevil:1330
msgid "<b>Database Update:</b>" msgid "<b>Database Update:</b>"
msgstr "<b>Datenbankaktualisierung:</b>" msgstr "<b>Datenbankaktualisierung:</b>"
#: mpdevil:1280 #: mpdevil:1355
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:1360 #: mpdevil:1461
msgid "MPD-Tag" msgid "MPD-Tag"
msgstr "MPD-Tag" msgstr "MPD-Tag"
#: mpdevil:1363 #: mpdevil:1464
msgid "Value" msgid "Value"
msgstr "Wert" msgstr "Wert"
#: mpdevil:1522 #: mpdevil:1490
msgid "Open with…"
msgstr "Öffnen mit…"
#: mpdevil:1596
msgid "_Append" msgid "_Append"
msgstr "_Anhängen" msgstr "_Anhängen"
#: mpdevil:1524 #: mpdevil:1598
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:1525 #: mpdevil:1599
msgid "_Play" msgid "_Play"
msgstr "Ab_spielen" msgstr "Ab_spielen"
#: mpdevil:1527 #: mpdevil:1601
msgid "Directly play all titles" msgid "Directly play all titles"
msgstr "Alle Titel sofort abspielen" msgstr "Alle Titel sofort abspielen"
#: mpdevil:1528 #: mpdevil:1602
msgid "_Enqueue" msgid "_Enqueue"
msgstr "_Einreihen" msgstr "_Einreihen"
#: mpdevil:1530 #: mpdevil:1604
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"
@@ -282,58 +286,54 @@ 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:1665 #: mpdevil:1860
msgid "all tags" msgid "all tags"
msgstr "Alle Tags" msgstr "Alle Tags"
#: mpdevil:1689 #: mpdevil:1888
#, python-brace-format #, python-brace-format
msgid "{num} hits" msgid "{num} hits"
msgstr "{num} Treffer" msgstr "{num} Treffer"
#: mpdevil:1727 #: mpdevil:1926
msgid "all genres" msgid "all genres"
msgstr "Alle Genres" msgstr "Alle Genres"
#: mpdevil:1830 #: mpdevil:2028
msgid "all artists" msgid "all artists"
msgstr "Alle Interpreten" msgstr "Alle Interpreten"
#: mpdevil:1942 #: mpdevil:2220
msgid "Close"
msgstr "Schließen"
#: mpdevil:2113
#, python-brace-format #, python-brace-format
msgid "{titles} titles on {discs} discs ({length})" msgid "{titles} titles on {discs} discs ({length})"
msgstr "{titles} Titel auf {discs} CDs ({length})" msgstr "{titles} Titel auf {discs} CDs ({length})"
#: mpdevil:2116 mpdevil:2728 #: mpdevil:2223 mpdevil:2857 mpdevil:3144 mpdevil:3145
#, python-brace-format #, python-brace-format
msgid "{titles} titles ({length})" msgid "{titles} titles ({length})"
msgstr "{titles} Titel ({length})" msgstr "{titles} Titel ({length})"
#: mpdevil:2242 mpdevil:3368 #: mpdevil:2363 mpdevil:3583
msgid "Back to current album" msgid "Back to current album"
msgstr "Zurück zu aktuellem Album" msgstr "Zurück zu aktuellem Album"
#: mpdevil:2244 #: mpdevil:2365
msgid "Search" msgid "Search"
msgstr "Suche" msgstr "Suche"
#: mpdevil:2421 #: mpdevil:2542
msgid "searching..." msgid "searching..."
msgstr "suche..." msgstr "suche..."
#: mpdevil:2426 #: mpdevil:2547
msgid "connection error" msgid "connection error"
msgstr "Verbindungsfehler" msgstr "Verbindungsfehler"
#: mpdevil:2428 #: mpdevil:2549
msgid "lyrics not found" msgid "lyrics not found"
msgstr "Liedtext nicht gefunden" msgstr "Liedtext nicht gefunden"
#: mpdevil:2476 #: mpdevil:2597
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} channels, " "{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} channels, "
@@ -342,199 +342,206 @@ msgstr ""
"{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} Kanäle, " "{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} Kanäle, "
"{file_type}" "{file_type}"
#: mpdevil:2606 #: mpdevil:2727
msgid "Scroll to current song" msgid "Scroll to current song"
msgstr "Gehe zu aktuellem Lied" msgstr "Gehe zu aktuellem Lied"
#: mpdevil:2614 mpdevil:3384 #: mpdevil:2735 mpdevil:3599
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Wiedergabeliste leeren" msgstr "Wiedergabeliste leeren"
#: mpdevil:2883 #: mpdevil:3029
msgid "Show lyrics" msgid "Show lyrics"
msgstr "Zeige Liedtext" msgstr "Zeige Liedtext"
#: mpdevil:3161 #: mpdevil:3351
msgid "Random mode" msgid "Random mode"
msgstr "Zufallsmodus" msgstr "Zufallsmodus"
#: mpdevil:3163 #: mpdevil:3353
msgid "Repeat mode" msgid "Repeat mode"
msgstr "Dauerschleife" msgstr "Dauerschleife"
#: mpdevil:3165 #: mpdevil:3355
msgid "Single mode" msgid "Single mode"
msgstr "Einzelstückmodus" msgstr "Einzelstückmodus"
#: mpdevil:3167 #: mpdevil:3357
msgid "Consume mode" msgid "Consume mode"
msgstr "Wiedergabeliste verbrauchen" msgstr "Wiedergabeliste verbrauchen"
#: mpdevil:3346 #: mpdevil:3561
msgid "Window" msgid "Window"
msgstr "Fenster" msgstr "Fenster"
#: mpdevil:3347 #: mpdevil:3562
msgid "Playback" msgid "Playback"
msgstr "Wiedergabe" msgstr "Wiedergabe"
#: mpdevil:3348 #: mpdevil:3563
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:3358 #: mpdevil:3573
msgid "Open online help" msgid "Open online help"
msgstr "Onlinehilfe öffnen" msgstr "Onlinehilfe öffnen"
#: mpdevil:3359 #: mpdevil:3574
msgid "Open shortcuts window" msgid "Open shortcuts window"
msgstr "Tastenkürzelfenster öffnen" msgstr "Tastenkürzelfenster öffnen"
#: mpdevil:3360 #: mpdevil:3575
msgid "Open menu" msgid "Open menu"
msgstr "Menü öffnen" msgstr "Menü öffnen"
#: mpdevil:3361 mpdevil:3504 #: mpdevil:3576 mpdevil:3720
msgid "Update database" msgid "Update database"
msgstr "Datenbank aktualisieren" msgstr "Datenbank aktualisieren"
#: mpdevil:3362 mpdevil:3502 #: mpdevil:3577 mpdevil:3718
msgid "Quit" msgid "Quit"
msgstr "Beenden" msgstr "Beenden"
#: mpdevil:3363 #: mpdevil:3578
msgid "Cycle through profiles" msgid "Cycle through profiles"
msgstr "Profile durchschalten" msgstr "Profile durchschalten"
#: mpdevil:3364 #: mpdevil:3579
msgid "Cycle through profiles in reversed order" msgid "Cycle through profiles in reversed order"
msgstr "Profile rückwärts durchschalten" msgstr "Profile rückwärts durchschalten"
#: mpdevil:3365 #: mpdevil:3580
msgid "Toggle mini player" msgid "Toggle mini player"
msgstr "Miniplayer ein-/ausschalten" msgstr "Miniplayer ein-/ausschalten"
#: mpdevil:3366 #: mpdevil:3581
msgid "Toggle lyrics" msgid "Toggle lyrics"
msgstr "Liedtext ein-/ausblenden" msgstr "Liedtext ein-/ausblenden"
#: mpdevil:3367 #: mpdevil:3582
msgid "Toggle search" msgid "Toggle search"
msgstr "Suche ein-/ausblenden" msgstr "Suche ein-/ausblenden"
#: mpdevil:3369 #: mpdevil:3584
msgid "Play/Pause" msgid "Play/Pause"
msgstr "Wiedergabe/Pause" msgstr "Wiedergabe/Pause"
#: mpdevil:3370 #: mpdevil:3585
msgid "Stop" msgid "Stop"
msgstr "Stopp" msgstr "Stopp"
#: mpdevil:3371 #: mpdevil:3586
msgid "Next title" msgid "Next title"
msgstr "Nächster Titel" msgstr "Nächster Titel"
#: mpdevil:3372 #: mpdevil:3587
msgid "Previous title" msgid "Previous title"
msgstr "Vorheriger Titel" msgstr "Vorheriger Titel"
#: mpdevil:3373 #: mpdevil:3588
msgid "Seek forward" msgid "Seek forward"
msgstr "Vorspulen" msgstr "Vorspulen"
#: mpdevil:3374 #: mpdevil:3589
msgid "Seek backward" msgid "Seek backward"
msgstr "Zurückspulen" msgstr "Zurückspulen"
#: mpdevil:3375 #: mpdevil:3590
msgid "Toggle repeat mode" msgid "Toggle repeat mode"
msgstr "Dauerschleife ein-/ausschalten" msgstr "Dauerschleife ein-/ausschalten"
#: mpdevil:3376 #: mpdevil:3591
msgid "Toggle random mode" msgid "Toggle random mode"
msgstr "Zufallsmodus ein-/ausschalten" msgstr "Zufallsmodus ein-/ausschalten"
#: mpdevil:3377 #: mpdevil:3592
msgid "Toggle single mode" msgid "Toggle single mode"
msgstr "Einzelstückmodus ein-/ausschalten" msgstr "Einzelstückmodus ein-/ausschalten"
#: mpdevil:3378 #: mpdevil:3593
msgid "Toggle consume mode" msgid "Toggle consume mode"
msgstr "Wiedergabeliste verbrauchen ein-/ausschalten" msgstr "Wiedergabeliste verbrauchen ein-/ausschalten"
#: mpdevil:3379 #: mpdevil:3594
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:3379 #: mpdevil:3594
msgid "Left-click" msgid "Left-click"
msgstr "Linksklick" msgstr "Linksklick"
#: mpdevil:3380 #: mpdevil:3595
msgid "Append selected item" msgid "Append selected item"
msgstr "Ausgewähltes Element anhängen" msgstr "Ausgewähltes Element anhängen"
#: mpdevil:3380 mpdevil:3383 #: mpdevil:3595 mpdevil:3598
msgid "Middle-click" msgid "Middle-click"
msgstr "Mittelklick" msgstr "Mittelklick"
#: mpdevil:3381 #: mpdevil:3596
msgid "Play selected item immediately" msgid "Play selected item immediately"
msgstr "Ausgewähltes Element sofort abspielen" msgstr "Ausgewähltes Element sofort abspielen"
#: mpdevil:3381 #: mpdevil:3596
msgid "Double-click" msgid "Double-click"
msgstr "Doppelklick" msgstr "Doppelklick"
#: mpdevil:3382 mpdevil:3385 #: mpdevil:3597 mpdevil:3600
msgid "Show additional information" msgid "Show additional information"
msgstr "Zeige weitere Informationen" msgstr "Zeige weitere Informationen"
#: mpdevil:3382 mpdevil:3385 #: mpdevil:3597 mpdevil:3600
msgid "Right-click" msgid "Right-click"
msgstr "Rechtsklick" msgstr "Rechtsklick"
#: mpdevil:3383 #: mpdevil:3598
msgid "Remove selected song" msgid "Remove selected song"
msgstr "Ausgewählten Titel entfernen" msgstr "Ausgewählten Titel entfernen"
#: mpdevil:3427 #: mpdevil:3624
msgid "Connect"
msgstr "Verbinden"
#: mpdevil:3642
#, python-brace-format #, python-brace-format
msgid "Connection to “{profile}” ({host}:{port}) failed" msgid "Connection to “{profile}” ({host}:{port}) failed"
msgstr "Verbindung zu „{profile}“ ({host}:{port}) fehlgeschlagen" msgstr "Verbindung zu „{profile}“ ({host}:{port}) fehlgeschlagen"
#: mpdevil:3499 #: mpdevil:3715
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Tastenkürzel" msgstr "Tastenkürzel"
#: mpdevil:3500 #: mpdevil:3716
msgid "Help" msgid "Help"
msgstr "Hilfe" msgstr "Hilfe"
#: mpdevil:3501 #: mpdevil:3717
msgid "About" msgid "About"
msgstr "Über" msgstr "Über"
#: mpdevil:3505 #: mpdevil:3721
msgid "Server stats" msgid "Server stats"
msgstr "Serverstatistik" msgstr "Serverstatistik"
#: mpdevil:3510 #: mpdevil:3726
msgid "Mini player" msgid "Mini player"
msgstr "Miniplayer" msgstr "Miniplayer"
#: mpdevil:3511 #: mpdevil:3727
msgid "Save window layout" msgid "Save window layout"
msgstr "Fensterlayout speichern" msgstr "Fensterlayout speichern"
#: mpdevil:3516 #: mpdevil:3732
msgid "Menu" msgid "Menu"
msgstr "Menü" msgstr "Menü"
#: mpdevil:3566 mpdevil:3568 #: mpdevil:3783 mpdevil:3785
msgid "connecting…" msgid "connecting…"
msgstr "verbinden…" msgstr "verbinden…"
#~ msgid "Close"
#~ msgstr "Schließen"
#~ msgid "Album Artist" #~ msgid "Album Artist"
#~ msgstr "Albuminterpret" #~ msgstr "Albuminterpret"

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-10-20 18:10+0200\n" "POT-Creation-Date: 2021-01-01 12:34+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,510 +17,514 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: mpdevil:419 #: mpdevil:471
msgid "Unknown Title" msgid "Unknown Title"
msgstr "" msgstr ""
#: mpdevil:719 #: mpdevil:795
msgid "Main cover size:" msgid "Main cover size:"
msgstr "" msgstr ""
#: mpdevil:720 #: mpdevil:796
msgid "Album view cover size:" msgid "Album view cover size:"
msgstr "" msgstr ""
#: mpdevil:721 #: mpdevil:797
msgid "Action bar icon size:" msgid "Action bar icon size:"
msgstr "" msgstr ""
#: mpdevil:722 #: mpdevil:798
msgid "Secondary icon size:" msgid "Secondary icon size:"
msgstr "" msgstr ""
#: mpdevil:735 #: mpdevil:811
msgid "Sort albums by:" msgid "Sort albums by:"
msgstr "" msgstr ""
#: mpdevil:735 #: mpdevil:811
msgid "name" msgid "name"
msgstr "" msgstr ""
#: mpdevil:735 #: mpdevil:811
msgid "year" msgid "year"
msgstr "" msgstr ""
#: mpdevil:736 #: mpdevil:812
msgid "Position of playlist:" msgid "Position of playlist:"
msgstr "" msgstr ""
#: mpdevil:736 #: mpdevil:812
msgid "bottom" msgid "bottom"
msgstr "" msgstr ""
#: mpdevil:736 #: mpdevil:812
msgid "right" msgid "right"
msgstr "" msgstr ""
#: mpdevil:754 #: mpdevil:830
msgid "Use Client-side decoration" msgid "Use Client-side decoration"
msgstr "" msgstr ""
#: mpdevil:755 #: mpdevil:831
msgid "Show stop button" msgid "Show stop button"
msgstr "" msgstr ""
#: mpdevil:756 #: mpdevil:832
msgid "Show lyrics button" msgid "Show lyrics button"
msgstr "" msgstr ""
#: mpdevil:757 #: mpdevil:833
msgid "Show initials in artist view" msgid "Show initials in artist view"
msgstr "" msgstr ""
#: mpdevil:758 #: mpdevil:834
msgid "Show tooltips in album view" msgid "Show tooltips in album view"
msgstr "" msgstr ""
#: mpdevil:759 #: mpdevil:835
msgid "Use “Album Artist” tag" msgid "Use “Album Artist” tag"
msgstr "" msgstr ""
#: mpdevil:760 #: mpdevil:836
msgid "Send notification on title change" msgid "Send notification on title change"
msgstr "" msgstr ""
#: mpdevil:761 #: mpdevil:837
msgid "Stop playback on quit" msgid "Stop playback on quit"
msgstr "" msgstr ""
#: mpdevil:762 #: mpdevil:838
msgid "Play selected albums and titles immediately" msgid "Play selected albums and titles immediately"
msgstr "" msgstr ""
#: mpdevil:775 #: mpdevil:851
msgid "<b>View</b>" msgid "<b>View</b>"
msgstr "" msgstr ""
#: mpdevil:776 #: mpdevil:852
msgid "<b>Behavior</b>" msgid "<b>Behavior</b>"
msgstr "" msgstr ""
#: mpdevil:808 #: mpdevil:884
msgid "(restart required)" msgid "(restart required)"
msgstr "" msgstr ""
#: mpdevil:870 mpdevil:3409 #: mpdevil:946
msgid "Connect" msgid "_Connect"
msgstr "" msgstr ""
#: mpdevil:886 #: mpdevil:962
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:891 #: mpdevil:967
msgid "Profile:" msgid "Profile:"
msgstr "" msgstr ""
#: mpdevil:892 #: mpdevil:968
msgid "Name:" msgid "Name:"
msgstr "" msgstr ""
#: mpdevil:893 #: mpdevil:969
msgid "Host:" msgid "Host:"
msgstr "" msgstr ""
#: mpdevil:894 #: mpdevil:970
msgid "Password:" msgid "Password:"
msgstr "" msgstr ""
#: mpdevil:895 #: mpdevil:971
msgid "Music lib:" msgid "Music lib:"
msgstr "" msgstr ""
#: mpdevil:896 #: mpdevil:972
msgid "Cover regex:" msgid "Cover regex:"
msgstr "" msgstr ""
#: mpdevil:1029 #: mpdevil:1107
msgid "Choose directory" msgid "Choose directory"
msgstr "" msgstr ""
#: mpdevil:1065 #: mpdevil:1140
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:1082 mpdevil:1604 mpdevil:1930 mpdevil:2633 #: mpdevil:1157 mpdevil:1703 mpdevil:1799 mpdevil:2753
msgid "No" msgid "No"
msgstr "" msgstr ""
#: mpdevil:1082 mpdevil:2634 #: mpdevil:1157 mpdevil:2754
msgid "Disc" msgid "Disc"
msgstr "" msgstr ""
#: mpdevil:1082 mpdevil:1609 mpdevil:1933 mpdevil:2635 #: mpdevil:1157 mpdevil:1706 mpdevil:1804 mpdevil:2755
msgid "Title" msgid "Title"
msgstr "" msgstr ""
#: mpdevil:1082 mpdevil:1615 mpdevil:2636 #: mpdevil:1157 mpdevil:1810 mpdevil:2756
msgid "Artist" msgid "Artist"
msgstr "" msgstr ""
#: mpdevil:1082 mpdevil:1621 mpdevil:2637 #: mpdevil:1157 mpdevil:1816 mpdevil:2757
msgid "Album" msgid "Album"
msgstr "" msgstr ""
#: mpdevil:1082 mpdevil:1627 mpdevil:1937 mpdevil:2638 #: mpdevil:1157 mpdevil:1710 mpdevil:1822 mpdevil:2758
msgid "Length" msgid "Length"
msgstr "" msgstr ""
#: mpdevil:1082 mpdevil:2639 #: mpdevil:1157 mpdevil:2759
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: mpdevil:1082 mpdevil:2640 #: mpdevil:1157 mpdevil:2760
msgid "Genre" msgid "Genre"
msgstr "" msgstr ""
#: mpdevil:1198 mpdevil:1200 mpdevil:3498 #: mpdevil:1273 mpdevil:1275 mpdevil:3714
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: mpdevil:1213 mpdevil:1222 mpdevil:3345 #: mpdevil:1288 mpdevil:1297 mpdevil:3560
msgid "General" msgid "General"
msgstr "" msgstr ""
#: mpdevil:1214 mpdevil:1223 mpdevil:3509 #: mpdevil:1289 mpdevil:1298 mpdevil:3725
msgid "Profiles" msgid "Profiles"
msgstr "" msgstr ""
#: mpdevil:1215 mpdevil:1224 mpdevil:3349 #: mpdevil:1290 mpdevil:1299 mpdevil:3564
msgid "Playlist" msgid "Playlist"
msgstr "" msgstr ""
#: mpdevil:1238 #: mpdevil:1313
msgid "Stats" msgid "Stats"
msgstr "" msgstr ""
#: mpdevil:1248 #: mpdevil:1323
msgid "<b>Protocol:</b>" msgid "<b>Protocol:</b>"
msgstr "" msgstr ""
#: mpdevil:1249 #: mpdevil:1324
msgid "<b>Uptime:</b>" msgid "<b>Uptime:</b>"
msgstr "" msgstr ""
#: mpdevil:1250 #: mpdevil:1325
msgid "<b>Playtime:</b>" msgid "<b>Playtime:</b>"
msgstr "" msgstr ""
#: mpdevil:1251 #: mpdevil:1326
msgid "<b>Artists:</b>" msgid "<b>Artists:</b>"
msgstr "" msgstr ""
#: mpdevil:1252 #: mpdevil:1327
msgid "<b>Albums:</b>" msgid "<b>Albums:</b>"
msgstr "" msgstr ""
#: mpdevil:1253 #: mpdevil:1328
msgid "<b>Songs:</b>" msgid "<b>Songs:</b>"
msgstr "" msgstr ""
#: mpdevil:1254 #: mpdevil:1329
msgid "<b>Total Playtime:</b>" msgid "<b>Total Playtime:</b>"
msgstr "" msgstr ""
#: mpdevil:1255 #: mpdevil:1330
msgid "<b>Database Update:</b>" msgid "<b>Database Update:</b>"
msgstr "" msgstr ""
#: mpdevil:1280 #: mpdevil:1355
msgid "A simple music browser for MPD" msgid "A simple music browser for MPD"
msgstr "" msgstr ""
#: mpdevil:1360 #: mpdevil:1461
msgid "MPD-Tag" msgid "MPD-Tag"
msgstr "" msgstr ""
#: mpdevil:1363 #: mpdevil:1464
msgid "Value" msgid "Value"
msgstr "" msgstr ""
#: mpdevil:1522 #: mpdevil:1490
msgid "Open with…"
msgstr ""
#: mpdevil:1596
msgid "_Append" msgid "_Append"
msgstr "" msgstr ""
#: mpdevil:1524 #: mpdevil:1598
msgid "Add all titles to playlist" msgid "Add all titles to playlist"
msgstr "" msgstr ""
#: mpdevil:1525 #: mpdevil:1599
msgid "_Play" msgid "_Play"
msgstr "" msgstr ""
#: mpdevil:1527 #: mpdevil:1601
msgid "Directly play all titles" msgid "Directly play all titles"
msgstr "" msgstr ""
#: mpdevil:1528 #: mpdevil:1602
msgid "_Enqueue" msgid "_Enqueue"
msgstr "" msgstr ""
#: mpdevil:1530 #: mpdevil:1604
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:1665 #: mpdevil:1860
msgid "all tags" msgid "all tags"
msgstr "" msgstr ""
#: mpdevil:1689 #: mpdevil:1888
#, python-brace-format #, python-brace-format
msgid "{num} hits" msgid "{num} hits"
msgstr "" msgstr ""
#: mpdevil:1727 #: mpdevil:1926
msgid "all genres" msgid "all genres"
msgstr "" msgstr ""
#: mpdevil:1830 #: mpdevil:2028
msgid "all artists" msgid "all artists"
msgstr "" msgstr ""
#: mpdevil:1942 #: mpdevil:2220
msgid "Close"
msgstr ""
#: mpdevil:2113
#, python-brace-format #, python-brace-format
msgid "{titles} titles on {discs} discs ({length})" msgid "{titles} titles on {discs} discs ({length})"
msgstr "" msgstr ""
#: mpdevil:2116 mpdevil:2728 #: mpdevil:2223 mpdevil:2857 mpdevil:3144 mpdevil:3145
#, python-brace-format #, python-brace-format
msgid "{titles} titles ({length})" msgid "{titles} titles ({length})"
msgstr "" msgstr ""
#: mpdevil:2242 mpdevil:3368 #: mpdevil:2363 mpdevil:3583
msgid "Back to current album" msgid "Back to current album"
msgstr "" msgstr ""
#: mpdevil:2244 #: mpdevil:2365
msgid "Search" msgid "Search"
msgstr "" msgstr ""
#: mpdevil:2421 #: mpdevil:2542
msgid "searching..." msgid "searching..."
msgstr "" msgstr ""
#: mpdevil:2426 #: mpdevil:2547
msgid "connection error" msgid "connection error"
msgstr "" msgstr ""
#: mpdevil:2428 #: mpdevil:2549
msgid "lyrics not found" msgid "lyrics not found"
msgstr "" msgstr ""
#: mpdevil:2476 #: mpdevil:2597
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} channels, " "{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} channels, "
"{file_type}" "{file_type}"
msgstr "" msgstr ""
#: mpdevil:2606 #: mpdevil:2727
msgid "Scroll to current song" msgid "Scroll to current song"
msgstr "" msgstr ""
#: mpdevil:2614 mpdevil:3384 #: mpdevil:2735 mpdevil:3599
msgid "Clear playlist" msgid "Clear playlist"
msgstr "" msgstr ""
#: mpdevil:2883 #: mpdevil:3029
msgid "Show lyrics" msgid "Show lyrics"
msgstr "" msgstr ""
#: mpdevil:3161 #: mpdevil:3351
msgid "Random mode" msgid "Random mode"
msgstr "" msgstr ""
#: mpdevil:3163 #: mpdevil:3353
msgid "Repeat mode" msgid "Repeat mode"
msgstr "" msgstr ""
#: mpdevil:3165 #: mpdevil:3355
msgid "Single mode" msgid "Single mode"
msgstr "" msgstr ""
#: mpdevil:3167 #: mpdevil:3357
msgid "Consume mode" msgid "Consume mode"
msgstr "" msgstr ""
#: mpdevil:3346 #: mpdevil:3561
msgid "Window" msgid "Window"
msgstr "" msgstr ""
#: mpdevil:3347 #: mpdevil:3562
msgid "Playback" msgid "Playback"
msgstr "" msgstr ""
#: mpdevil:3348 #: mpdevil:3563
msgid "Search, Album Dialog and Album List" msgid "Search, Album Dialog and Album List"
msgstr "" msgstr ""
#: mpdevil:3358 #: mpdevil:3573
msgid "Open online help" msgid "Open online help"
msgstr "" msgstr ""
#: mpdevil:3359 #: mpdevil:3574
msgid "Open shortcuts window" msgid "Open shortcuts window"
msgstr "" msgstr ""
#: mpdevil:3360 #: mpdevil:3575
msgid "Open menu" msgid "Open menu"
msgstr "" msgstr ""
#: mpdevil:3361 mpdevil:3504 #: mpdevil:3576 mpdevil:3720
msgid "Update database" msgid "Update database"
msgstr "" msgstr ""
#: mpdevil:3362 mpdevil:3502 #: mpdevil:3577 mpdevil:3718
msgid "Quit" msgid "Quit"
msgstr "" msgstr ""
#: mpdevil:3363 #: mpdevil:3578
msgid "Cycle through profiles" msgid "Cycle through profiles"
msgstr "" msgstr ""
#: mpdevil:3364 #: mpdevil:3579
msgid "Cycle through profiles in reversed order" msgid "Cycle through profiles in reversed order"
msgstr "" msgstr ""
#: mpdevil:3365 #: mpdevil:3580
msgid "Toggle mini player" msgid "Toggle mini player"
msgstr "" msgstr ""
#: mpdevil:3366 #: mpdevil:3581
msgid "Toggle lyrics" msgid "Toggle lyrics"
msgstr "" msgstr ""
#: mpdevil:3367 #: mpdevil:3582
msgid "Toggle search" msgid "Toggle search"
msgstr "" msgstr ""
#: mpdevil:3369 #: mpdevil:3584
msgid "Play/Pause" msgid "Play/Pause"
msgstr "" msgstr ""
#: mpdevil:3370 #: mpdevil:3585
msgid "Stop" msgid "Stop"
msgstr "" msgstr ""
#: mpdevil:3371 #: mpdevil:3586
msgid "Next title" msgid "Next title"
msgstr "" msgstr ""
#: mpdevil:3372 #: mpdevil:3587
msgid "Previous title" msgid "Previous title"
msgstr "" msgstr ""
#: mpdevil:3373 #: mpdevil:3588
msgid "Seek forward" msgid "Seek forward"
msgstr "" msgstr ""
#: mpdevil:3374 #: mpdevil:3589
msgid "Seek backward" msgid "Seek backward"
msgstr "" msgstr ""
#: mpdevil:3375 #: mpdevil:3590
msgid "Toggle repeat mode" msgid "Toggle repeat mode"
msgstr "" msgstr ""
#: mpdevil:3376 #: mpdevil:3591
msgid "Toggle random mode" msgid "Toggle random mode"
msgstr "" msgstr ""
#: mpdevil:3377 #: mpdevil:3592
msgid "Toggle single mode" msgid "Toggle single mode"
msgstr "" msgstr ""
#: mpdevil:3378 #: mpdevil:3593
msgid "Toggle consume mode" msgid "Toggle consume mode"
msgstr "" msgstr ""
#: mpdevil:3379 #: mpdevil:3594
msgid "Play selected item (next)" msgid "Play selected item (next)"
msgstr "" msgstr ""
#: mpdevil:3379 #: mpdevil:3594
msgid "Left-click" msgid "Left-click"
msgstr "" msgstr ""
#: mpdevil:3380 #: mpdevil:3595
msgid "Append selected item" msgid "Append selected item"
msgstr "" msgstr ""
#: mpdevil:3380 mpdevil:3383 #: mpdevil:3595 mpdevil:3598
msgid "Middle-click" msgid "Middle-click"
msgstr "" msgstr ""
#: mpdevil:3381 #: mpdevil:3596
msgid "Play selected item immediately" msgid "Play selected item immediately"
msgstr "" msgstr ""
#: mpdevil:3381 #: mpdevil:3596
msgid "Double-click" msgid "Double-click"
msgstr "" msgstr ""
#: mpdevil:3382 mpdevil:3385 #: mpdevil:3597 mpdevil:3600
msgid "Show additional information" msgid "Show additional information"
msgstr "" msgstr ""
#: mpdevil:3382 mpdevil:3385 #: mpdevil:3597 mpdevil:3600
msgid "Right-click" msgid "Right-click"
msgstr "" msgstr ""
#: mpdevil:3383 #: mpdevil:3598
msgid "Remove selected song" msgid "Remove selected song"
msgstr "" msgstr ""
#: mpdevil:3427 #: mpdevil:3624
msgid "Connect"
msgstr ""
#: mpdevil:3642
#, python-brace-format #, python-brace-format
msgid "Connection to “{profile}” ({host}:{port}) failed" msgid "Connection to “{profile}” ({host}:{port}) failed"
msgstr "" msgstr ""
#: mpdevil:3499 #: mpdevil:3715
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "" msgstr ""
#: mpdevil:3500 #: mpdevil:3716
msgid "Help" msgid "Help"
msgstr "" msgstr ""
#: mpdevil:3501 #: mpdevil:3717
msgid "About" msgid "About"
msgstr "" msgstr ""
#: mpdevil:3505 #: mpdevil:3721
msgid "Server stats" msgid "Server stats"
msgstr "" msgstr ""
#: mpdevil:3510 #: mpdevil:3726
msgid "Mini player" msgid "Mini player"
msgstr "" msgstr ""
#: mpdevil:3511 #: mpdevil:3727
msgid "Save window layout" msgid "Save window layout"
msgstr "" msgstr ""
#: mpdevil:3516 #: mpdevil:3732
msgid "Menu" msgid "Menu"
msgstr "" msgstr ""
#: mpdevil:3566 mpdevil:3568 #: mpdevil:3783 mpdevil:3785
msgid "connecting…" msgid "connecting…"
msgstr "" msgstr ""

269
po/nl.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-10-20 18:10+0200\n" "POT-Creation-Date: 2021-01-01 12:34+0100\n"
"PO-Revision-Date: 2020-11-03 16:53+0100\n" "PO-Revision-Date: 2021-01-01 12:35+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: nl\n" "Language: nl\n"
@@ -18,103 +18,103 @@ msgstr ""
"X-Generator: Poedit 2.3.1\n" "X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: mpdevil:419 #: mpdevil:471
msgid "Unknown Title" msgid "Unknown Title"
msgstr "Onbekende titel" msgstr "Onbekende titel"
#: mpdevil:719 #: mpdevil:795
msgid "Main cover size:" msgid "Main cover size:"
msgstr "Grootte albumhoes:" msgstr "Grootte albumhoes:"
#: mpdevil:720 #: mpdevil:796
msgid "Album view cover size:" msgid "Album view cover size:"
msgstr "Hoesgrootte in albumlijst:" msgstr "Hoesgrootte in albumlijst:"
#: mpdevil:721 #: mpdevil:797
msgid "Action bar icon size:" msgid "Action bar icon size:"
msgstr "Grootte iconen werkbalk:" msgstr "Grootte iconen werkbalk:"
#: mpdevil:722 #: mpdevil:798
msgid "Secondary icon size:" msgid "Secondary icon size:"
msgstr "Grootte overige iconen:" msgstr "Grootte overige iconen:"
#: mpdevil:735 #: mpdevil:811
msgid "Sort albums by:" msgid "Sort albums by:"
msgstr "Albums sorteren op:" msgstr "Albums sorteren op:"
#: mpdevil:735 #: mpdevil:811
msgid "name" msgid "name"
msgstr "naam" msgstr "naam"
#: mpdevil:735 #: mpdevil:811
msgid "year" msgid "year"
msgstr "jaar" msgstr "jaar"
#: mpdevil:736 #: mpdevil:812
msgid "Position of playlist:" msgid "Position of playlist:"
msgstr "Positie afspeellijst:" msgstr "Positie afspeellijst:"
#: mpdevil:736 #: mpdevil:812
msgid "bottom" msgid "bottom"
msgstr "onder" msgstr "onder"
#: mpdevil:736 #: mpdevil:812
msgid "right" msgid "right"
msgstr "rechts" msgstr "rechts"
#: mpdevil:754 #: mpdevil:830
msgid "Use Client-side decoration" msgid "Use Client-side decoration"
msgstr "Gebruik vensterdecoratie van mpdevil" msgstr "Gebruik vensterdecoratie van mpdevil"
#: mpdevil:755 #: mpdevil:831
msgid "Show stop button" msgid "Show stop button"
msgstr "Toon stopknop" msgstr "Toon stopknop"
#: mpdevil:756 #: mpdevil:832
msgid "Show lyrics button" msgid "Show lyrics button"
msgstr "Toon songtekstknop" msgstr "Toon songtekstknop"
#: mpdevil:757 #: mpdevil:833
msgid "Show initials in artist view" msgid "Show initials in artist view"
msgstr "Toon beginletters in artiestenlijst" msgstr "Toon beginletters in artiestenlijst"
#: mpdevil:758 #: mpdevil:834
msgid "Show tooltips in album view" msgid "Show tooltips in album view"
msgstr "Toon tooltip in albumlijst" msgstr "Toon tooltip in albumlijst"
#: mpdevil:759 #: mpdevil:835
msgid "Use “Album Artist” tag" msgid "Use “Album Artist” tag"
msgstr "Gebruik tag \"Album Artist\"" msgstr "Gebruik tag \"Album Artist\""
#: mpdevil:760 #: mpdevil:836
msgid "Send notification on title change" msgid "Send notification on title change"
msgstr "Verstuur een melding bij titelwisseling" msgstr "Verstuur een melding bij titelwisseling"
#: mpdevil:761 #: mpdevil:837
msgid "Stop playback on quit" msgid "Stop playback on quit"
msgstr "Stop afspelen bij afsluiten" msgstr "Stop afspelen bij afsluiten"
#: mpdevil:762 #: mpdevil:838
msgid "Play selected albums and titles immediately" msgid "Play selected albums and titles immediately"
msgstr "Geselecteerde albums en titels direct afspelen" msgstr "Geselecteerde albums en titels direct afspelen"
#: mpdevil:775 #: mpdevil:851
msgid "<b>View</b>" msgid "<b>View</b>"
msgstr "<b>Beeld</b>" msgstr "<b>Beeld</b>"
#: mpdevil:776 #: mpdevil:852
msgid "<b>Behavior</b>" msgid "<b>Behavior</b>"
msgstr "<b>Gedrag</b>" msgstr "<b>Gedrag</b>"
#: mpdevil:808 #: mpdevil:884
msgid "(restart required)" msgid "(restart required)"
msgstr "(herstart vereist)" msgstr "(herstart vereist)"
#: mpdevil:870 mpdevil:3409 #: mpdevil:946
msgid "Connect" msgid "_Connect"
msgstr "Verbinden" msgstr "_Verbinden"
#: mpdevil:886 #: mpdevil:962
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 "
@@ -124,155 +124,159 @@ msgstr ""
"met deze regex wordt getoond. %AlbumArtist% en %Album% worden vervangen door " "met deze regex wordt getoond. %AlbumArtist% en %Album% worden vervangen door "
"de bijbehorende tags van het muziekbestand." "de bijbehorende tags van het muziekbestand."
#: mpdevil:891 #: mpdevil:967
msgid "Profile:" msgid "Profile:"
msgstr "Profiel:" msgstr "Profiel:"
#: mpdevil:892 #: mpdevil:968
msgid "Name:" msgid "Name:"
msgstr "Naam:" msgstr "Naam:"
#: mpdevil:893 #: mpdevil:969
msgid "Host:" msgid "Host:"
msgstr "Host:" msgstr "Host:"
#: mpdevil:894 #: mpdevil:970
msgid "Password:" msgid "Password:"
msgstr "Wachtwoord:" msgstr "Wachtwoord:"
#: mpdevil:895 #: mpdevil:971
msgid "Music lib:" msgid "Music lib:"
msgstr "Muziekmap:" msgstr "Muziekmap:"
#: mpdevil:896 #: mpdevil:972
msgid "Cover regex:" msgid "Cover regex:"
msgstr "Regex albumhoes:" msgstr "Regex albumhoes:"
#: mpdevil:1029 #: mpdevil:1107
msgid "Choose directory" msgid "Choose directory"
msgstr "Kies een map" msgstr "Kies een map"
#: mpdevil:1065 #: mpdevil:1140
msgid "Choose the order of information to appear in the playlist:" msgid "Choose the order of information to appear in the playlist:"
msgstr "Kies de volgorde van de informatie getoond in de afspeellijst:" msgstr "Kies de volgorde van de informatie getoond in de afspeellijst:"
#: mpdevil:1082 mpdevil:1604 mpdevil:1930 mpdevil:2633 #: mpdevil:1157 mpdevil:1703 mpdevil:1799 mpdevil:2753
msgid "No" msgid "No"
msgstr "Nr" msgstr "Nr"
#: mpdevil:1082 mpdevil:2634 #: mpdevil:1157 mpdevil:2754
msgid "Disc" msgid "Disc"
msgstr "Disc" msgstr "Disc"
#: mpdevil:1082 mpdevil:1609 mpdevil:1933 mpdevil:2635 #: mpdevil:1157 mpdevil:1706 mpdevil:1804 mpdevil:2755
msgid "Title" msgid "Title"
msgstr "Titel" msgstr "Titel"
#: mpdevil:1082 mpdevil:1615 mpdevil:2636 #: mpdevil:1157 mpdevil:1810 mpdevil:2756
msgid "Artist" msgid "Artist"
msgstr "Artiest" msgstr "Artiest"
#: mpdevil:1082 mpdevil:1621 mpdevil:2637 #: mpdevil:1157 mpdevil:1816 mpdevil:2757
msgid "Album" msgid "Album"
msgstr "Album" msgstr "Album"
#: mpdevil:1082 mpdevil:1627 mpdevil:1937 mpdevil:2638 #: mpdevil:1157 mpdevil:1710 mpdevil:1822 mpdevil:2758
msgid "Length" msgid "Length"
msgstr "Lengte" msgstr "Lengte"
#: mpdevil:1082 mpdevil:2639 #: mpdevil:1157 mpdevil:2759
msgid "Year" msgid "Year"
msgstr "Jaar" msgstr "Jaar"
#: mpdevil:1082 mpdevil:2640 #: mpdevil:1157 mpdevil:2760
msgid "Genre" msgid "Genre"
msgstr "Genre" msgstr "Genre"
#: mpdevil:1198 mpdevil:1200 mpdevil:3498 #: mpdevil:1273 mpdevil:1275 mpdevil:3714
msgid "Settings" msgid "Settings"
msgstr "Instellingen" msgstr "Instellingen"
#: mpdevil:1213 mpdevil:1222 mpdevil:3345 #: mpdevil:1288 mpdevil:1297 mpdevil:3560
msgid "General" msgid "General"
msgstr "Algemeen" msgstr "Algemeen"
#: mpdevil:1214 mpdevil:1223 mpdevil:3509 #: mpdevil:1289 mpdevil:1298 mpdevil:3725
msgid "Profiles" msgid "Profiles"
msgstr "Profielen" msgstr "Profielen"
#: mpdevil:1215 mpdevil:1224 mpdevil:3349 #: mpdevil:1290 mpdevil:1299 mpdevil:3564
msgid "Playlist" msgid "Playlist"
msgstr "Afspeellijst" msgstr "Afspeellijst"
#: mpdevil:1238 #: mpdevil:1313
msgid "Stats" msgid "Stats"
msgstr "Statistieken" msgstr "Statistieken"
#: mpdevil:1248 #: mpdevil:1323
msgid "<b>Protocol:</b>" msgid "<b>Protocol:</b>"
msgstr "<b>Protocol:</b>" msgstr "<b>Protocol:</b>"
#: mpdevil:1249 #: mpdevil:1324
msgid "<b>Uptime:</b>" msgid "<b>Uptime:</b>"
msgstr "<b>Uptime:</b>" msgstr "<b>Uptime:</b>"
#: mpdevil:1250 #: mpdevil:1325
msgid "<b>Playtime:</b>" msgid "<b>Playtime:</b>"
msgstr "<b>Afspeeltijd:</b>" msgstr "<b>Afspeeltijd:</b>"
#: mpdevil:1251 #: mpdevil:1326
msgid "<b>Artists:</b>" msgid "<b>Artists:</b>"
msgstr "<b>Artiesten:</b>" msgstr "<b>Artiesten:</b>"
#: mpdevil:1252 #: mpdevil:1327
msgid "<b>Albums:</b>" msgid "<b>Albums:</b>"
msgstr "<b>Albums:</b>" msgstr "<b>Albums:</b>"
#: mpdevil:1253 #: mpdevil:1328
msgid "<b>Songs:</b>" msgid "<b>Songs:</b>"
msgstr "<b>Titels:</b>" msgstr "<b>Titels:</b>"
#: mpdevil:1254 #: mpdevil:1329
msgid "<b>Total Playtime:</b>" msgid "<b>Total Playtime:</b>"
msgstr "<b>Totale speelduur:</b>" msgstr "<b>Totale speelduur:</b>"
#: mpdevil:1255 #: mpdevil:1330
msgid "<b>Database Update:</b>" msgid "<b>Database Update:</b>"
msgstr "<b>Database bijgewerkt:</b>" msgstr "<b>Database bijgewerkt:</b>"
#: mpdevil:1280 #: mpdevil:1355
msgid "A simple music browser for MPD" msgid "A simple music browser for MPD"
msgstr "Een simpele muziekspeler voor MPD" msgstr "Een simpele muziekspeler voor MPD"
#: mpdevil:1360 #: mpdevil:1461
msgid "MPD-Tag" msgid "MPD-Tag"
msgstr "MPD-Tag" msgstr "MPD-Tag"
#: mpdevil:1363 #: mpdevil:1464
msgid "Value" msgid "Value"
msgstr "Waarde" msgstr "Waarde"
#: mpdevil:1522 #: mpdevil:1490
msgid "Open with…"
msgstr "Openen met…"
#: mpdevil:1596
msgid "_Append" msgid "_Append"
msgstr "_Toevoegen" msgstr "_Toevoegen"
#: mpdevil:1524 #: mpdevil:1598
msgid "Add all titles to playlist" msgid "Add all titles to playlist"
msgstr "Voeg alle titels toe aan de afspeellijst" msgstr "Voeg alle titels toe aan de afspeellijst"
#: mpdevil:1525 #: mpdevil:1599
msgid "_Play" msgid "_Play"
msgstr "_Afspelen" msgstr "_Afspelen"
#: mpdevil:1527 #: mpdevil:1601
msgid "Directly play all titles" msgid "Directly play all titles"
msgstr "Alle titels direct afspelen" msgstr "Alle titels direct afspelen"
#: mpdevil:1528 #: mpdevil:1602
msgid "_Enqueue" msgid "_Enqueue"
msgstr "_In wachtrij plaatsen" msgstr "_In wachtrij plaatsen"
#: mpdevil:1530 #: mpdevil:1604
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"
@@ -280,58 +284,54 @@ msgstr ""
"Alle titels toevoegen na de nu spelende titel en alle overige titels uit de " "Alle titels toevoegen na de nu spelende titel en alle overige titels uit de "
"afspeellijst verwijderen" "afspeellijst verwijderen"
#: mpdevil:1665 #: mpdevil:1860
msgid "all tags" msgid "all tags"
msgstr "alle tags" msgstr "alle tags"
#: mpdevil:1689 #: mpdevil:1888
#, python-brace-format #, python-brace-format
msgid "{num} hits" msgid "{num} hits"
msgstr "{num} hits" msgstr "{num} hits"
#: mpdevil:1727 #: mpdevil:1926
msgid "all genres" msgid "all genres"
msgstr "alle genres" msgstr "alle genres"
#: mpdevil:1830 #: mpdevil:2028
msgid "all artists" msgid "all artists"
msgstr "alle artiesten" msgstr "alle artiesten"
#: mpdevil:1942 #: mpdevil:2220
msgid "Close"
msgstr "Afsluiten"
#: mpdevil:2113
#, python-brace-format #, python-brace-format
msgid "{titles} titles on {discs} discs ({length})" msgid "{titles} titles on {discs} discs ({length})"
msgstr "{titles} titels op {discs} discs ({length})" msgstr "{titles} titels op {discs} discs ({length})"
#: mpdevil:2116 mpdevil:2728 #: mpdevil:2223 mpdevil:2857 mpdevil:3144 mpdevil:3145
#, python-brace-format #, python-brace-format
msgid "{titles} titles ({length})" msgid "{titles} titles ({length})"
msgstr "{titles} titels ({length})" msgstr "{titles} titels ({length})"
#: mpdevil:2242 mpdevil:3368 #: mpdevil:2363 mpdevil:3583
msgid "Back to current album" msgid "Back to current album"
msgstr "Terug naar huidige album" msgstr "Terug naar huidige album"
#: mpdevil:2244 #: mpdevil:2365
msgid "Search" msgid "Search"
msgstr "Zoeken" msgstr "Zoeken"
#: mpdevil:2421 #: mpdevil:2542
msgid "searching..." msgid "searching..."
msgstr "bezig met zoeken..." msgstr "bezig met zoeken..."
#: mpdevil:2426 #: mpdevil:2547
msgid "connection error" msgid "connection error"
msgstr "verbindingsfout" msgstr "verbindingsfout"
#: mpdevil:2428 #: mpdevil:2549
msgid "lyrics not found" msgid "lyrics not found"
msgstr "geen songtekst gevonden" msgstr "geen songtekst gevonden"
#: mpdevil:2476 #: mpdevil:2597
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} channels, " "{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} channels, "
@@ -340,195 +340,202 @@ msgstr ""
"{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} kanalen, " "{bitrate} kb/s, {frequency} kHz, {resolution} bit, {channels} kanalen, "
"{file_type}" "{file_type}"
#: mpdevil:2606 #: mpdevil:2727
msgid "Scroll to current song" msgid "Scroll to current song"
msgstr "Naar de huidige titel scrollen" msgstr "Naar de huidige titel scrollen"
#: mpdevil:2614 mpdevil:3384 #: mpdevil:2735 mpdevil:3599
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Afspeellijst legen" msgstr "Afspeellijst legen"
#: mpdevil:2883 #: mpdevil:3029
msgid "Show lyrics" msgid "Show lyrics"
msgstr "Toon songtekst" msgstr "Toon songtekst"
#: mpdevil:3161 #: mpdevil:3351
msgid "Random mode" msgid "Random mode"
msgstr "Willekeurige modus" msgstr "Willekeurige modus"
#: mpdevil:3163 #: mpdevil:3353
msgid "Repeat mode" msgid "Repeat mode"
msgstr "Herhaalmodus" msgstr "Herhaalmodus"
#: mpdevil:3165 #: mpdevil:3355
msgid "Single mode" msgid "Single mode"
msgstr "Enkele modus" msgstr "Enkele modus"
#: mpdevil:3167 #: mpdevil:3357
msgid "Consume mode" msgid "Consume mode"
msgstr "Verbruiksmodus" msgstr "Verbruiksmodus"
#: mpdevil:3346 #: mpdevil:3561
msgid "Window" msgid "Window"
msgstr "Venster" msgstr "Venster"
#: mpdevil:3347 #: mpdevil:3562
msgid "Playback" msgid "Playback"
msgstr "Afspelen" msgstr "Afspelen"
#: mpdevil:3348 #: mpdevil:3563
msgid "Search, Album Dialog and Album List" msgid "Search, Album Dialog and Album List"
msgstr "Zoeken, Albumdialoog en Albumlijst" msgstr "Zoeken, Albumdialoog en Albumlijst"
#: mpdevil:3358 #: mpdevil:3573
msgid "Open online help" msgid "Open online help"
msgstr "Online hulp openen" msgstr "Online hulp openen"
#: mpdevil:3359 #: mpdevil:3574
msgid "Open shortcuts window" msgid "Open shortcuts window"
msgstr "Venster met sneltoetsen openen" msgstr "Venster met sneltoetsen openen"
#: mpdevil:3360 #: mpdevil:3575
msgid "Open menu" msgid "Open menu"
msgstr "Menu openen" msgstr "Menu openen"
#: mpdevil:3361 mpdevil:3504 #: mpdevil:3576 mpdevil:3720
msgid "Update database" msgid "Update database"
msgstr "Database bijwerken" msgstr "Database bijwerken"
#: mpdevil:3362 mpdevil:3502 #: mpdevil:3577 mpdevil:3718
msgid "Quit" msgid "Quit"
msgstr "Stoppen" msgstr "Stoppen"
#: mpdevil:3363 #: mpdevil:3578
msgid "Cycle through profiles" msgid "Cycle through profiles"
msgstr "Profielen doorlopen" msgstr "Profielen doorlopen"
#: mpdevil:3364 #: mpdevil:3579
msgid "Cycle through profiles in reversed order" msgid "Cycle through profiles in reversed order"
msgstr "Profielen doorlopen in omgekeerde volgorde" msgstr "Profielen doorlopen in omgekeerde volgorde"
#: mpdevil:3365 #: mpdevil:3580
msgid "Toggle mini player" msgid "Toggle mini player"
msgstr "Omschakelen naar minispeler" msgstr "Omschakelen naar minispeler"
#: mpdevil:3366 #: mpdevil:3581
msgid "Toggle lyrics" msgid "Toggle lyrics"
msgstr "Omschakelen naar songtekst" msgstr "Omschakelen naar songtekst"
#: mpdevil:3367 #: mpdevil:3582
msgid "Toggle search" msgid "Toggle search"
msgstr "Omschakelen naar zoeken" msgstr "Omschakelen naar zoeken"
#: mpdevil:3369 #: mpdevil:3584
msgid "Play/Pause" msgid "Play/Pause"
msgstr "Afspelen/Pauzeren" msgstr "Afspelen/Pauzeren"
#: mpdevil:3370 #: mpdevil:3585
msgid "Stop" msgid "Stop"
msgstr "Stoppen" msgstr "Stoppen"
#: mpdevil:3371 #: mpdevil:3586
msgid "Next title" msgid "Next title"
msgstr "Volgende titel" msgstr "Volgende titel"
#: mpdevil:3372 #: mpdevil:3587
msgid "Previous title" msgid "Previous title"
msgstr "Vorige titel" msgstr "Vorige titel"
#: mpdevil:3373 #: mpdevil:3588
msgid "Seek forward" msgid "Seek forward"
msgstr "Vooruit spoelen" msgstr "Vooruit spoelen"
#: mpdevil:3374 #: mpdevil:3589
msgid "Seek backward" msgid "Seek backward"
msgstr "Achteruit spoelen" msgstr "Achteruit spoelen"
#: mpdevil:3375 #: mpdevil:3590
msgid "Toggle repeat mode" msgid "Toggle repeat mode"
msgstr "Omschakelen naar herhaalmodus" msgstr "Omschakelen naar herhaalmodus"
#: mpdevil:3376 #: mpdevil:3591
msgid "Toggle random mode" msgid "Toggle random mode"
msgstr "Omschakelen naar willekeurige modus" msgstr "Omschakelen naar willekeurige modus"
#: mpdevil:3377 #: mpdevil:3592
msgid "Toggle single mode" msgid "Toggle single mode"
msgstr "Omschakelen naar enkele modus" msgstr "Omschakelen naar enkele modus"
#: mpdevil:3378 #: mpdevil:3593
msgid "Toggle consume mode" msgid "Toggle consume mode"
msgstr "Omschakelen naar verbruiksmodus" msgstr "Omschakelen naar verbruiksmodus"
#: mpdevil:3379 #: mpdevil:3594
msgid "Play selected item (next)" msgid "Play selected item (next)"
msgstr "Geselecteerde item afspelen (volgende)" msgstr "Geselecteerde item afspelen (volgende)"
#: mpdevil:3379 #: mpdevil:3594
msgid "Left-click" msgid "Left-click"
msgstr "Linksklik" msgstr "Linksklik"
#: mpdevil:3380 #: mpdevil:3595
msgid "Append selected item" msgid "Append selected item"
msgstr "Geselecteerde item toevoegen" msgstr "Geselecteerde item toevoegen"
#: mpdevil:3380 mpdevil:3383 #: mpdevil:3595 mpdevil:3598
msgid "Middle-click" msgid "Middle-click"
msgstr "Middelklik" msgstr "Middelklik"
#: mpdevil:3381 #: mpdevil:3596
msgid "Play selected item immediately" msgid "Play selected item immediately"
msgstr "Geselecteerde item direct afspelen" msgstr "Geselecteerde item direct afspelen"
#: mpdevil:3381 #: mpdevil:3596
msgid "Double-click" msgid "Double-click"
msgstr "Dubbelklik" msgstr "Dubbelklik"
#: mpdevil:3382 mpdevil:3385 #: mpdevil:3597 mpdevil:3600
msgid "Show additional information" msgid "Show additional information"
msgstr "Toon extra informatie" msgstr "Toon extra informatie"
#: mpdevil:3382 mpdevil:3385 #: mpdevil:3597 mpdevil:3600
msgid "Right-click" msgid "Right-click"
msgstr "Rechtsklik" msgstr "Rechtsklik"
#: mpdevil:3383 #: mpdevil:3598
msgid "Remove selected song" msgid "Remove selected song"
msgstr "Geselecteerde titel verwijderen" msgstr "Geselecteerde titel verwijderen"
#: mpdevil:3427 #: mpdevil:3624
msgid "Connect"
msgstr "Verbinden"
#: mpdevil:3642
#, python-brace-format #, python-brace-format
msgid "Connection to “{profile}” ({host}:{port}) failed" msgid "Connection to “{profile}” ({host}:{port}) failed"
msgstr "Verbinding met “{profile}” ({host}:{port}) mislukt" msgstr "Verbinding met “{profile}” ({host}:{port}) mislukt"
#: mpdevil:3499 #: mpdevil:3715
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Sneltoetsen" msgstr "Sneltoetsen"
#: mpdevil:3500 #: mpdevil:3716
msgid "Help" msgid "Help"
msgstr "Hulp" msgstr "Hulp"
#: mpdevil:3501 #: mpdevil:3717
msgid "About" msgid "About"
msgstr "Over" msgstr "Over"
#: mpdevil:3505 #: mpdevil:3721
msgid "Server stats" msgid "Server stats"
msgstr "Serverstatistieken" msgstr "Serverstatistieken"
#: mpdevil:3510 #: mpdevil:3726
msgid "Mini player" msgid "Mini player"
msgstr "Minispeler" msgstr "Minispeler"
#: mpdevil:3511 #: mpdevil:3727
msgid "Save window layout" msgid "Save window layout"
msgstr "Vensterindeling opslaan" msgstr "Vensterindeling opslaan"
#: mpdevil:3516 #: mpdevil:3732
msgid "Menu" msgid "Menu"
msgstr "Menu" msgstr "Menu"
#: mpdevil:3566 mpdevil:3568 #: mpdevil:3783 mpdevil:3785
msgid "connecting…" msgid "connecting…"
msgstr "verbinding maken…" msgstr "verbinding maken…"
#~ msgid "Close"
#~ msgstr "Afsluiten"

View File

@@ -4,7 +4,7 @@ import DistUtilsExtra.auto
DistUtilsExtra.auto.setup( DistUtilsExtra.auto.setup(
name='mpdevil', name='mpdevil',
version='0.9.8', # sync with bin/mpdevil version='0.9.9', # 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'),