mirror of
https://github.com/SoongNoonien/mpdevil.git
synced 2023-08-10 21:12:44 +03:00
Compare commits
23 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
bc14370ef2 | ||
![]() |
5ac1a67806 | ||
![]() |
79183dc422 | ||
![]() |
d745ba0981 | ||
![]() |
ec543ed64a | ||
![]() |
0384bc8e47 | ||
![]() |
c37cfe62a8 | ||
![]() |
176540a488 | ||
![]() |
4d386d97e0 | ||
![]() |
1bd340927c | ||
![]() |
43236a60cd | ||
![]() |
4acaf5829e | ||
![]() |
c05a6f1937 | ||
![]() |
d1a6f3d66e | ||
![]() |
05b3cc9bbc | ||
![]() |
38f096cd56 | ||
![]() |
e46ec34ed5 | ||
![]() |
220cc772b5 | ||
![]() |
563d92f077 | ||
![]() |
8301a05520 | ||
![]() |
911e52b0f7 | ||
![]() |
da87188a78 | ||
![]() |
7d744f21dd |
19
README.md
19
README.md
@@ -1,19 +1,18 @@
|
||||
README for mpdevil
|
||||
==================
|
||||
mpdevil is a simple music browser for the Music Player Daemon (MPD) which is focused on playing local music without the need of managing playlists. Instead of maintaining a client side database of your music library, mpdevil loads all tags and covers on demand. So you'll never see any outdated information in the browser. mpdevil strongly relies on tags.
|
||||
Mpdevil is a simple music browser for the Music Player Daemon (MPD) which is focused on playing local music without the need of managing playlists. Instead of maintaining a client side database of your music library, mpdevil loads all tags and covers on demand. So you'll never see any outdated information in the browser. Mpdevil strongly relies on tags.
|
||||
|
||||

|
||||

|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
- display large covers
|
||||
- play songs without double click
|
||||
- lyrics from: https://www.letras.mus.br
|
||||
- Display large covers
|
||||
- Play songs without double click
|
||||
- Lyrics from: https://www.letras.mus.br
|
||||
- MPRIS interface (based on mpDris2)
|
||||
- manage multiple MPD servers
|
||||
- basic queue manipulation (move and delete single tracks)
|
||||
- save and load playlists
|
||||
- Manage multiple MPD servers
|
||||
- Basic queue manipulation (move and delete single tracks)
|
||||
|
||||
See: https://github.com/SoongNoonien/mpdevil/wiki/Usage
|
||||
|
||||
@@ -59,6 +58,7 @@ Dependencies:
|
||||
Python modules:
|
||||
- mpd (python-mpd2 >=1.1)
|
||||
- gi (Gtk, Gio, Gdk, GdkPixbuf, Pango, GObject, GLib)
|
||||
- cairo (pycairo)
|
||||
|
||||
Run:
|
||||
```bash
|
||||
@@ -74,5 +74,4 @@ sudo update-desktop-database
|
||||
Translation
|
||||
-----------
|
||||
|
||||
mpdevil is currently available in English, German, Dutch, Bulgarian, Turkish and Polish. If you speak another language, you can easily translate mpdevil by using `poedit`. Just import `po/mpdevil.pot` from this repo into `poedit`. To test your translation, copy the new `.po` file into the `po` directory of your cloned mpdevil repo and proceed as described in the [Building](#building) section. To get your translation integrated into mpdevil, just send me an e-mail or create a pull request. Link to `poedit`: https://poedit.net/
|
||||
|
||||
This program is currently available in English, German, Dutch, Bulgarian, Turkish and Polish. If you speak one of these or even another language, you can easily translate it by using [poedit](https://poedit.net). Just import `po/mpdevil.pot` from this repo into `poedit`. To test your translation, copy the new `.po` file into the `po` directory of your cloned mpdevil repo and proceed as described in the [Building](#building) section. To get your translation merged, just send me an e-mail or create a pull request.
|
||||
|
@@ -3,7 +3,7 @@
|
||||
<object class="GtkAboutDialog" id="about_dialog">
|
||||
<property name="modal">True</property>
|
||||
<property name="program_name">mpdevil</property>
|
||||
<property name="version">1.8.1</property>
|
||||
<property name="version">1.9.0</property>
|
||||
<property name="comments" translatable="yes">A simple music browser for MPD</property>
|
||||
<property name="authors">Martin Wagner</property>
|
||||
<property name="translator_credits">Martin Wagner
|
||||
|
@@ -51,20 +51,6 @@
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Window</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Cycle through profiles</property>
|
||||
<property name="accelerator"><Control>p</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Cycle through profiles in reversed order</property>
|
||||
<property name="accelerator"><Shift><Control>p</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
@@ -124,35 +110,35 @@
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Stop after current title</property>
|
||||
<property name="accelerator"><Control>space</property>
|
||||
<property name="accelerator"><Shift><Control>s</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Next title</property>
|
||||
<property name="accelerator">KP_Add</property>
|
||||
<property name="accelerator"><Alt>Down</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Previous title</property>
|
||||
<property name="accelerator">KP_Subtract</property>
|
||||
<property name="accelerator"><Alt>Up</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Seek forward</property>
|
||||
<property name="accelerator">KP_Multiply</property>
|
||||
<property name="accelerator"><Alt>Right</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Seek backward</property>
|
||||
<property name="accelerator">KP_Divide</property>
|
||||
<property name="accelerator"><Alt>Left</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
@@ -166,14 +152,14 @@
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Toggle random mode</property>
|
||||
<property name="accelerator"><Control>s</property>
|
||||
<property name="accelerator"><Control>n</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Toggle single mode</property>
|
||||
<property name="accelerator"><Control>1</property>
|
||||
<property name="accelerator"><Control>s</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
@@ -185,43 +171,6 @@
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Search, Album Dialog, Album List and Artist List</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Enqueue selected item</property>
|
||||
<property name="accelerator"><Control>e</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Append selected item</property>
|
||||
<property name="subtitle" translatable="yes">Middle-click</property>
|
||||
<property name="accelerator"><Control>plus</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Play selected item immediately</property>
|
||||
<property name="subtitle" translatable="yes">Double-click</property>
|
||||
<property name="accelerator"><Control>Return</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Show additional information</property>
|
||||
<property name="subtitle" translatable="yes">Right-click</property>
|
||||
<property name="accelerator"><Control>i Menu</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">True</property>
|
||||
@@ -229,8 +178,7 @@
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Remove selected song</property>
|
||||
<property name="subtitle" translatable="yes">Middle-click</property>
|
||||
<property name="title" translatable="yes">Remove song</property>
|
||||
<property name="accelerator">Delete</property>
|
||||
</object>
|
||||
</child>
|
||||
@@ -244,8 +192,61 @@
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Show additional information</property>
|
||||
<property name="subtitle" translatable="yes">Right-click</property>
|
||||
<property name="title" translatable="yes">Show information</property>
|
||||
<property name="accelerator"><Control>i Menu</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Profiles</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Profile 1</property>
|
||||
<property name="accelerator"><Control>1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Profile 2</property>
|
||||
<property name="accelerator"><Control>2</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Profile 3</property>
|
||||
<property name="accelerator"><Control>3</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Search, Album Dialog and Album List</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Append</property>
|
||||
<property name="accelerator"><Control>plus</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Play immediately</property>
|
||||
<property name="accelerator"><Control>p</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Show information</property>
|
||||
<property name="accelerator"><Control>i Menu</property>
|
||||
</object>
|
||||
</child>
|
||||
|
@@ -9,22 +9,21 @@
|
||||
<description>
|
||||
<p>Mpdevil is a simple music browser for the Music Player Daemon (MPD) which is focused on playing local music without the need of managing playlists. Instead of maintaining a client side database of your music library mpdevil loads all tags and covers on demand. So you'll never see any outdated information in the browser. Mpdevil strongly relies on tags.</p>
|
||||
<ul>
|
||||
<li>display large covers</li>
|
||||
<li>play songs without doubleclick</li>
|
||||
<li>fetch lyrics</li>
|
||||
<li>Display large covers</li>
|
||||
<li>Play songs without doubleclick</li>
|
||||
<li>Fetch lyrics</li>
|
||||
<li>MPRIS interface</li>
|
||||
<li>manage multiple mpd servers</li>
|
||||
<li>basic queue manipulation (move and delete single tracks)</li>
|
||||
<li>save and load playlists</li>
|
||||
<li>Manage multiple mpd servers</li>
|
||||
<li>Basic queue manipulation (move and delete single tracks)</li>
|
||||
</ul>
|
||||
</description>
|
||||
<releases>
|
||||
<release version="1.8.1" date="2022-09-25"/>
|
||||
<release version="1.9.0" date="2022-10-23"/>
|
||||
</releases>
|
||||
<launchable type="desktop-id">org.mpdevil.mpdevil.desktop</launchable>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image type="source" width="1121" height="790">https://raw.githubusercontent.com/SoongNoonien/mpdevil/v1.8.0/screenshots/mainwindow_1.8.0.png</image>
|
||||
<image type="source" width="1121" height="790">https://raw.githubusercontent.com/SoongNoonien/mpdevil/v1.9.0/screenshots/mainwindow_1.9.0.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<url type="homepage">https://github.com/SoongNoonien/mpdevil</url>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
project('mpdevil', version: '1.8.1')
|
||||
project('mpdevil', version: '1.9.0')
|
||||
|
||||
i18n = import('i18n')
|
||||
gnome = import('gnome')
|
||||
|
332
po/bg.po
332
po/bg.po
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mpdevil\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-19 20:03+0200\n"
|
||||
"PO-Revision-Date: 2022-09-19 20:06+0200\n"
|
||||
"POT-Creation-Date: 2022-10-22 11:02+0200\n"
|
||||
"PO-Revision-Date: 2022-10-22 11:10+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: bg\n"
|
||||
@@ -33,71 +33,71 @@ msgid_plural "{channels} channels"
|
||||
msgstr[0] "{channels} канал"
|
||||
msgstr[1] "{channels} канали"
|
||||
|
||||
#: src/mpdevil.py:1015
|
||||
#: src/mpdevil.py:1004
|
||||
msgid "(restart required)"
|
||||
msgstr "(необходим е рестарт)"
|
||||
|
||||
#: src/mpdevil.py:1061
|
||||
#: src/mpdevil.py:1050
|
||||
msgid "Use Client-side decoration"
|
||||
msgstr "Използвай декорация от Клиентска страна"
|
||||
|
||||
#: src/mpdevil.py:1062
|
||||
#: src/mpdevil.py:1051
|
||||
msgid "Show stop button"
|
||||
msgstr "Покажи бутон стоп"
|
||||
|
||||
#: src/mpdevil.py:1063
|
||||
#: src/mpdevil.py:1052
|
||||
msgid "Show audio format"
|
||||
msgstr "Покажи аудио формат"
|
||||
|
||||
#: src/mpdevil.py:1064
|
||||
#: src/mpdevil.py:1053
|
||||
msgid "Show lyrics button"
|
||||
msgstr "Покажи бутон за лирики"
|
||||
|
||||
#: src/mpdevil.py:1065
|
||||
#: src/mpdevil.py:1054
|
||||
msgid "Place playlist at the side"
|
||||
msgstr "Постави плейлитът на страни"
|
||||
|
||||
#: src/mpdevil.py:1071
|
||||
#: src/mpdevil.py:1060
|
||||
msgid "Album view cover size"
|
||||
msgstr "Големина за основна облечка"
|
||||
|
||||
#: src/mpdevil.py:1072
|
||||
#: src/mpdevil.py:1061
|
||||
msgid "Action bar icon size"
|
||||
msgstr "Големина за иконите на бутоните"
|
||||
|
||||
#: src/mpdevil.py:1082
|
||||
#: src/mpdevil.py:1071
|
||||
msgid "Support “MPRIS”"
|
||||
msgstr "Поддръжка на “MPRIS”"
|
||||
|
||||
#: src/mpdevil.py:1083
|
||||
#: src/mpdevil.py:1072
|
||||
msgid "Sort albums by year"
|
||||
msgstr "Сортирай албумите по година"
|
||||
|
||||
#: src/mpdevil.py:1084
|
||||
#: src/mpdevil.py:1073
|
||||
msgid "Send notification on title change"
|
||||
msgstr "Прати известие при промяна на заглавие"
|
||||
|
||||
#: src/mpdevil.py:1085
|
||||
#: src/mpdevil.py:1074
|
||||
msgid "Play selected albums and titles immediately"
|
||||
msgstr "Възпроизведи избраните албуми и заглавия веднага"
|
||||
|
||||
#: src/mpdevil.py:1086
|
||||
#: src/mpdevil.py:1075
|
||||
msgid "Rewind via previous button"
|
||||
msgstr "Пренавий чрез бутон назад"
|
||||
|
||||
#: src/mpdevil.py:1087
|
||||
#: src/mpdevil.py:1076
|
||||
msgid "Stop playback on quit"
|
||||
msgstr "Прекрати възпроизвеждането при изход"
|
||||
|
||||
#: src/mpdevil.py:1114
|
||||
#: src/mpdevil.py:1103
|
||||
msgid "Choose directory"
|
||||
msgstr "Избери директория"
|
||||
|
||||
#: src/mpdevil.py:1127
|
||||
#: src/mpdevil.py:1116
|
||||
msgid "Connect via Unix domain socket"
|
||||
msgstr "Свържи чрез Unix domain socket"
|
||||
|
||||
#: src/mpdevil.py:1146
|
||||
#: src/mpdevil.py:1135
|
||||
msgid ""
|
||||
"The first image in the same directory as the song file matching this regex "
|
||||
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
||||
@@ -107,308 +107,275 @@ msgstr ""
|
||||
"този регулярен израз. %AlbumArtist% и %Album% ще бъдат заместени от "
|
||||
"съответстващите тагове от песента."
|
||||
|
||||
#: src/mpdevil.py:1151
|
||||
#: src/mpdevil.py:1140
|
||||
msgid "Socket:"
|
||||
msgstr "Сокет:"
|
||||
|
||||
#: src/mpdevil.py:1153
|
||||
#: src/mpdevil.py:1142
|
||||
msgid "Host:"
|
||||
msgstr "Хост:"
|
||||
|
||||
#: src/mpdevil.py:1155
|
||||
#: src/mpdevil.py:1144
|
||||
msgid "Password:"
|
||||
msgstr "Парола:"
|
||||
|
||||
#: src/mpdevil.py:1156
|
||||
#: src/mpdevil.py:1145
|
||||
msgid "Music lib:"
|
||||
msgstr "Музикална библиотека:"
|
||||
|
||||
#: src/mpdevil.py:1158
|
||||
#: src/mpdevil.py:1147
|
||||
msgid "Cover regex:"
|
||||
msgstr "Обложка - регулярен израз:"
|
||||
|
||||
#: src/mpdevil.py:1182 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1171 src/mpdevil.py:3280 data/ShortcutsWindow.ui:208
|
||||
msgid "Profile 1"
|
||||
msgstr "Профил 1"
|
||||
|
||||
#: src/mpdevil.py:1183 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1172 src/mpdevil.py:3280 data/ShortcutsWindow.ui:215
|
||||
msgid "Profile 2"
|
||||
msgstr "Профил 2"
|
||||
|
||||
#: src/mpdevil.py:1184 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1173 src/mpdevil.py:3280 data/ShortcutsWindow.ui:222
|
||||
msgid "Profile 3"
|
||||
msgstr "Профил 3"
|
||||
|
||||
#. connect button
|
||||
#: src/mpdevil.py:1188 src/mpdevil.py:3467
|
||||
#: src/mpdevil.py:1177 src/mpdevil.py:3167
|
||||
msgid "Connect"
|
||||
msgstr "Свържи"
|
||||
|
||||
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
|
||||
#: src/mpdevil.py:3569
|
||||
#: src/mpdevil.py:1200 src/mpdevil.py:1202 src/mpdevil.py:3168
|
||||
#: src/mpdevil.py:3272
|
||||
msgid "Preferences"
|
||||
msgstr "Предпочитания"
|
||||
|
||||
#: src/mpdevil.py:1225 src/mpdevil.py:1235
|
||||
#: src/mpdevil.py:1214 src/mpdevil.py:1224
|
||||
msgid "View"
|
||||
msgstr "Поглед"
|
||||
|
||||
#: src/mpdevil.py:1226 src/mpdevil.py:1236
|
||||
#: src/mpdevil.py:1215 src/mpdevil.py:1225
|
||||
msgid "Behavior"
|
||||
msgstr "Държане"
|
||||
|
||||
#: src/mpdevil.py:1227 src/mpdevil.py:1237
|
||||
#: src/mpdevil.py:1216 src/mpdevil.py:1226 data/ShortcutsWindow.ui:204
|
||||
msgid "Profiles"
|
||||
msgstr "Профили"
|
||||
|
||||
#: src/mpdevil.py:1254
|
||||
#: src/mpdevil.py:1243
|
||||
msgid "Stats"
|
||||
msgstr "Статистика"
|
||||
|
||||
#: src/mpdevil.py:1263
|
||||
#: src/mpdevil.py:1252
|
||||
msgid "<b>Protocol:</b>"
|
||||
msgstr "<b>Протокол:</b>"
|
||||
|
||||
#: src/mpdevil.py:1264
|
||||
#: src/mpdevil.py:1253
|
||||
msgid "<b>Uptime:</b>"
|
||||
msgstr "<b>Време на работа:</b>"
|
||||
|
||||
#: src/mpdevil.py:1265
|
||||
#: src/mpdevil.py:1254
|
||||
msgid "<b>Playtime:</b>"
|
||||
msgstr "<b>Време на възпроизвеждане:</b>"
|
||||
|
||||
#: src/mpdevil.py:1266
|
||||
#: src/mpdevil.py:1255
|
||||
msgid "<b>Artists:</b>"
|
||||
msgstr "<b>Артисти:</b>"
|
||||
|
||||
#: src/mpdevil.py:1267
|
||||
#: src/mpdevil.py:1256
|
||||
msgid "<b>Albums:</b>"
|
||||
msgstr "<b>Албуми:</b>"
|
||||
|
||||
#: src/mpdevil.py:1268
|
||||
#: src/mpdevil.py:1257
|
||||
msgid "<b>Songs:</b>"
|
||||
msgstr "<b>Песни::</b>"
|
||||
|
||||
#: src/mpdevil.py:1269
|
||||
#: src/mpdevil.py:1258
|
||||
msgid "<b>Total Playtime:</b>"
|
||||
msgstr "<b>Цялостно време на възпроизвеждане:</b>"
|
||||
|
||||
#: src/mpdevil.py:1270
|
||||
#: src/mpdevil.py:1259
|
||||
msgid "<b>Database Update:</b>"
|
||||
msgstr "<b>Актуализация на базата с данни:</b>"
|
||||
|
||||
#: src/mpdevil.py:1360
|
||||
msgid "Add to playlist"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1363
|
||||
#: src/mpdevil.py:1319
|
||||
msgid "Show in file manager"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
|
||||
#: src/mpdevil.py:1323 data/ShortcutsWindow.ui:235
|
||||
msgid "Append"
|
||||
msgstr "Добави"
|
||||
|
||||
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
|
||||
#: src/mpdevil.py:3018 src/mpdevil.py:3051
|
||||
#: src/mpdevil.py:1323 src/mpdevil.py:2718 src/mpdevil.py:2751
|
||||
#, fuzzy
|
||||
msgid "Play"
|
||||
msgstr "Свири"
|
||||
|
||||
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
|
||||
msgid "Enqueue"
|
||||
msgstr "На опашката"
|
||||
|
||||
#: src/mpdevil.py:1386
|
||||
#: src/mpdevil.py:1339
|
||||
msgid "MPD-Tag"
|
||||
msgstr "MPD-Етикет"
|
||||
|
||||
#: src/mpdevil.py:1389
|
||||
#: src/mpdevil.py:1342
|
||||
msgid "Value"
|
||||
msgstr "Стойност"
|
||||
|
||||
#: src/mpdevil.py:1460 src/mpdevil.py:2522
|
||||
#: src/mpdevil.py:1412 src/mpdevil.py:2239
|
||||
msgid "No"
|
||||
msgstr "№"
|
||||
|
||||
#: src/mpdevil.py:1461 src/mpdevil.py:2523
|
||||
#: src/mpdevil.py:1413 src/mpdevil.py:2240
|
||||
msgid "Title"
|
||||
msgstr "Заглавие"
|
||||
|
||||
#: src/mpdevil.py:1462 src/mpdevil.py:2524
|
||||
#: src/mpdevil.py:1414 src/mpdevil.py:2241
|
||||
msgid "Length"
|
||||
msgstr "Дължина"
|
||||
|
||||
#: src/mpdevil.py:1475
|
||||
#: src/mpdevil.py:1427
|
||||
msgid "Add all titles to playlist"
|
||||
msgstr "Добави всички заглавия към плейлист"
|
||||
|
||||
#: src/mpdevil.py:1476
|
||||
#: src/mpdevil.py:1428
|
||||
msgid "Directly play all titles"
|
||||
msgstr "Директно възпроизведи всички заглавия"
|
||||
|
||||
#: src/mpdevil.py:1477
|
||||
msgid ""
|
||||
"Append all titles after the currently playing track and clear the playlist "
|
||||
"from all other songs"
|
||||
msgstr ""
|
||||
"Добави всички заглавия след песента която се възпроизвежда и изчисти от "
|
||||
"всички други песни"
|
||||
|
||||
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
|
||||
#: src/mpdevil.py:1521
|
||||
#, python-brace-format
|
||||
msgid "{number} song ({duration})"
|
||||
msgid_plural "{number} songs ({duration})"
|
||||
msgstr[0] "{number} песен ({duration})"
|
||||
msgstr[1] "{number} песни ({duration})"
|
||||
|
||||
#: src/mpdevil.py:1669
|
||||
#: src/mpdevil.py:1584
|
||||
#, python-brace-format
|
||||
msgid "{hits} hit"
|
||||
msgid_plural "{hits} hits"
|
||||
msgstr[0] "{hits} попадение"
|
||||
msgstr[1] "{hits} попадения"
|
||||
|
||||
#: src/mpdevil.py:1754
|
||||
#: src/mpdevil.py:1669
|
||||
msgid "all tags"
|
||||
msgstr "всички тагове"
|
||||
|
||||
#: src/mpdevil.py:1884
|
||||
#: src/mpdevil.py:1801
|
||||
msgid "all genres"
|
||||
msgstr "всички жанрове"
|
||||
|
||||
#: src/mpdevil.py:1907
|
||||
#: src/mpdevil.py:1824
|
||||
msgid "all artists"
|
||||
msgstr "всички артисти"
|
||||
|
||||
#: src/mpdevil.py:2323
|
||||
msgid "Save"
|
||||
msgstr "Запазване"
|
||||
|
||||
#: src/mpdevil.py:2327
|
||||
msgid "Delete"
|
||||
msgstr "Изтриване"
|
||||
|
||||
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
|
||||
msgid "Clear playlist"
|
||||
msgstr "Изчисти плейлист"
|
||||
|
||||
#: src/mpdevil.py:2708
|
||||
#: src/mpdevil.py:2411
|
||||
msgid "Scroll to current song"
|
||||
msgstr "Превъртане до моментната песен"
|
||||
|
||||
#: src/mpdevil.py:2718
|
||||
msgid "Playlists"
|
||||
msgstr "Плейлисти"
|
||||
|
||||
#: src/mpdevil.py:2828
|
||||
#: src/mpdevil.py:2528
|
||||
msgid "searching…"
|
||||
msgstr "търсене…"
|
||||
|
||||
#: src/mpdevil.py:2833
|
||||
#: src/mpdevil.py:2533
|
||||
msgid "connection error"
|
||||
msgstr "грешка при свързване"
|
||||
|
||||
#: src/mpdevil.py:2835
|
||||
#: src/mpdevil.py:2535
|
||||
msgid "lyrics not found"
|
||||
msgstr "лириките не са намерени"
|
||||
|
||||
#: src/mpdevil.py:2961
|
||||
#: src/mpdevil.py:2662
|
||||
msgid "Lyrics"
|
||||
msgstr "Лирики"
|
||||
|
||||
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
|
||||
#: src/mpdevil.py:2720 data/ShortcutsWindow.ui:105
|
||||
msgid "Stop"
|
||||
msgstr "Спри"
|
||||
|
||||
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
|
||||
#: src/mpdevil.py:2724 data/ShortcutsWindow.ui:126
|
||||
msgid "Previous title"
|
||||
msgstr "Предишно заглавие"
|
||||
|
||||
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
|
||||
#: src/mpdevil.py:2727 data/ShortcutsWindow.ui:119
|
||||
msgid "Next title"
|
||||
msgstr "Следващо заглавие"
|
||||
|
||||
#: src/mpdevil.py:3048
|
||||
#: src/mpdevil.py:2748
|
||||
#, fuzzy
|
||||
msgid "Pause"
|
||||
msgstr "Пауза"
|
||||
|
||||
#: src/mpdevil.py:3220
|
||||
#: src/mpdevil.py:2920
|
||||
msgid "Repeat mode"
|
||||
msgstr "Повтарящ режим"
|
||||
|
||||
#: src/mpdevil.py:3221
|
||||
#: src/mpdevil.py:2921
|
||||
msgid "Random mode"
|
||||
msgstr "Случаен режим"
|
||||
|
||||
#: src/mpdevil.py:3222
|
||||
#: src/mpdevil.py:2922
|
||||
msgid "Single mode"
|
||||
msgstr "Единичен режим"
|
||||
|
||||
#: src/mpdevil.py:3223
|
||||
#: src/mpdevil.py:2923
|
||||
msgid "Consume mode"
|
||||
msgstr "Консумиращ режим"
|
||||
|
||||
#: src/mpdevil.py:3437
|
||||
#: src/mpdevil.py:3137
|
||||
msgid "Updating Database…"
|
||||
msgstr "Актуализиране на базата с данни…"
|
||||
|
||||
#: src/mpdevil.py:3489
|
||||
#: src/mpdevil.py:3189
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{socket}” failed"
|
||||
msgstr "Свързването със “{socket}” се провали"
|
||||
|
||||
#: src/mpdevil.py:3491
|
||||
#: src/mpdevil.py:3191
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{host}:{port}” failed"
|
||||
msgstr "Свързването със “{host}:{port}” се провали"
|
||||
|
||||
#: src/mpdevil.py:3553
|
||||
#: src/mpdevil.py:3256
|
||||
msgid "Search"
|
||||
msgstr "Търси"
|
||||
|
||||
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
|
||||
#: src/mpdevil.py:3259 data/ShortcutsWindow.ui:85
|
||||
msgid "Back to current album"
|
||||
msgstr "Обратно в моментния албум"
|
||||
|
||||
#: src/mpdevil.py:3570
|
||||
#: src/mpdevil.py:3273
|
||||
msgid "Keyboard Shortcuts"
|
||||
msgstr "Преки пътища на клавиатурата"
|
||||
|
||||
#: src/mpdevil.py:3571
|
||||
#: src/mpdevil.py:3274
|
||||
msgid "Help"
|
||||
msgstr "Помощ"
|
||||
|
||||
#: src/mpdevil.py:3572
|
||||
#: src/mpdevil.py:3275
|
||||
msgid "About mpdevil"
|
||||
msgstr "За mpdevil"
|
||||
|
||||
#: src/mpdevil.py:3574
|
||||
#: src/mpdevil.py:3277
|
||||
msgid "Update Database"
|
||||
msgstr "Актуализирай базата с данни"
|
||||
|
||||
#: src/mpdevil.py:3575
|
||||
#: src/mpdevil.py:3278
|
||||
msgid "Server Stats"
|
||||
msgstr "Статистика на сървърът"
|
||||
|
||||
#: src/mpdevil.py:3582
|
||||
#: src/mpdevil.py:3285
|
||||
msgid "Mini Player"
|
||||
msgstr "Мини Плеър"
|
||||
|
||||
#: src/mpdevil.py:3583
|
||||
#: src/mpdevil.py:3286
|
||||
msgid "Genre Filter"
|
||||
msgstr "Филтър на Жанрове"
|
||||
|
||||
#: src/mpdevil.py:3593
|
||||
#: src/mpdevil.py:3296
|
||||
msgid "Menu"
|
||||
msgstr "Меню"
|
||||
|
||||
#: src/mpdevil.py:3644 src/mpdevil.py:3646
|
||||
#: src/mpdevil.py:3483 src/mpdevil.py:3485
|
||||
msgid "connecting…"
|
||||
msgstr "свързване…"
|
||||
|
||||
#: src/mpdevil.py:3825
|
||||
#: src/mpdevil.py:3523
|
||||
msgid "Debug mode"
|
||||
msgstr "Debug режим"
|
||||
|
||||
@@ -453,106 +420,125 @@ msgid "Window"
|
||||
msgstr "Прозорец"
|
||||
|
||||
#: data/ShortcutsWindow.ui:57
|
||||
msgid "Cycle through profiles"
|
||||
msgstr "Превключи между профилите"
|
||||
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Cycle through profiles in reversed order"
|
||||
msgstr "Превключи между профилите в обратен ред"
|
||||
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle mini player"
|
||||
msgstr "Превключи Мини Плеър"
|
||||
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Toggle genre filter"
|
||||
msgstr "Превключи Филтър на Жанрове"
|
||||
|
||||
#: data/ShortcutsWindow.ui:85
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle lyrics"
|
||||
msgstr "Превключи лириките"
|
||||
|
||||
#: data/ShortcutsWindow.ui:92
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
msgid "Toggle search"
|
||||
msgstr "Превключи търсенето"
|
||||
|
||||
#: data/ShortcutsWindow.ui:108
|
||||
#: data/ShortcutsWindow.ui:94
|
||||
msgid "Playback"
|
||||
msgstr "Възпроизвеждане"
|
||||
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
#: data/ShortcutsWindow.ui:98
|
||||
#, fuzzy
|
||||
msgid "Play/Pause"
|
||||
msgstr "Пусни/Пауза"
|
||||
|
||||
#: data/ShortcutsWindow.ui:126
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
msgid "Stop after current title"
|
||||
msgstr "Спри след моментното заглавие"
|
||||
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
#: data/ShortcutsWindow.ui:133
|
||||
msgid "Seek forward"
|
||||
msgstr "Превърти напред"
|
||||
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
#: data/ShortcutsWindow.ui:140
|
||||
msgid "Seek backward"
|
||||
msgstr "Превърти назад"
|
||||
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
msgid "Toggle repeat mode"
|
||||
msgstr "Превключи повтарящ режим"
|
||||
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
msgid "Toggle random mode"
|
||||
msgstr "Превключи случаен режим"
|
||||
|
||||
#: data/ShortcutsWindow.ui:175
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
msgid "Toggle single mode"
|
||||
msgstr "Превключи единичен режим"
|
||||
|
||||
#: data/ShortcutsWindow.ui:182
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
msgid "Toggle consume mode"
|
||||
msgstr "Превключи консумиращ режим"
|
||||
|
||||
#: data/ShortcutsWindow.ui:191
|
||||
msgid "Search, Album Dialog, Album List and Artist List"
|
||||
msgstr "Търси, Диалог за албум, Лист на Албум и лист на Артист"
|
||||
|
||||
#: data/ShortcutsWindow.ui:195
|
||||
msgid "Enqueue selected item"
|
||||
msgstr "На опашка избрания предмет"
|
||||
|
||||
#: data/ShortcutsWindow.ui:202
|
||||
msgid "Append selected item"
|
||||
msgstr "Добави избрания предмет"
|
||||
|
||||
#: data/ShortcutsWindow.ui:203 data/ShortcutsWindow.ui:233
|
||||
msgid "Middle-click"
|
||||
msgstr "Среден-Клик"
|
||||
|
||||
#: data/ShortcutsWindow.ui:210
|
||||
msgid "Play selected item immediately"
|
||||
msgstr "Възпроизведи избрания предмет веднага"
|
||||
|
||||
#: data/ShortcutsWindow.ui:211
|
||||
msgid "Double-click"
|
||||
msgstr "Двоен-клик"
|
||||
|
||||
#: data/ShortcutsWindow.ui:218 data/ShortcutsWindow.ui:247
|
||||
msgid "Show additional information"
|
||||
msgstr "Покажи допълнителна информация"
|
||||
|
||||
#: data/ShortcutsWindow.ui:219 data/ShortcutsWindow.ui:248
|
||||
msgid "Right-click"
|
||||
msgstr "Десен-клик"
|
||||
|
||||
#: data/ShortcutsWindow.ui:228
|
||||
#: data/ShortcutsWindow.ui:177
|
||||
msgid "Playlist"
|
||||
msgstr "Плейлист"
|
||||
|
||||
#: data/ShortcutsWindow.ui:232
|
||||
msgid "Remove selected song"
|
||||
#: data/ShortcutsWindow.ui:181
|
||||
#, fuzzy
|
||||
msgid "Remove song"
|
||||
msgstr "Премахни избраната песен"
|
||||
|
||||
#: data/ShortcutsWindow.ui:188
|
||||
msgid "Clear playlist"
|
||||
msgstr "Изчисти плейлист"
|
||||
|
||||
#: data/ShortcutsWindow.ui:195 data/ShortcutsWindow.ui:249
|
||||
#, fuzzy
|
||||
msgid "Show information"
|
||||
msgstr "Покажи допълнителна информация"
|
||||
|
||||
#: data/ShortcutsWindow.ui:231
|
||||
msgid "Search, Album Dialog and Album List"
|
||||
msgstr "Търси, Диалог за албум и Лист на Албум"
|
||||
|
||||
#: data/ShortcutsWindow.ui:242
|
||||
#, fuzzy
|
||||
msgid "Play immediately"
|
||||
msgstr "Възпроизведи избрания предмет веднага"
|
||||
|
||||
#~ msgid "Enqueue"
|
||||
#~ msgstr "На опашката"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Append all titles after the currently playing track and clear the "
|
||||
#~ "playlist from all other songs"
|
||||
#~ msgstr ""
|
||||
#~ "Добави всички заглавия след песента която се възпроизвежда и изчисти от "
|
||||
#~ "всички други песни"
|
||||
|
||||
#~ msgid "Save"
|
||||
#~ msgstr "Запазване"
|
||||
|
||||
#~ msgid "Delete"
|
||||
#~ msgstr "Изтриване"
|
||||
|
||||
#~ msgid "Playlists"
|
||||
#~ msgstr "Плейлисти"
|
||||
|
||||
#~ msgid "Cycle through profiles"
|
||||
#~ msgstr "Превключи между профилите"
|
||||
|
||||
#~ msgid "Cycle through profiles in reversed order"
|
||||
#~ msgstr "Превключи между профилите в обратен ред"
|
||||
|
||||
#~ msgid "Enqueue selected item"
|
||||
#~ msgstr "На опашка избрания предмет"
|
||||
|
||||
#~ msgid "Append selected item"
|
||||
#~ msgstr "Добави избрания предмет"
|
||||
|
||||
#~ msgid "Middle-click"
|
||||
#~ msgstr "Среден-Клик"
|
||||
|
||||
#~ msgid "Double-click"
|
||||
#~ msgstr "Двоен-клик"
|
||||
|
||||
#~ msgid "Right-click"
|
||||
#~ msgstr "Десен-клик"
|
||||
|
||||
#~ msgid "Main cover size"
|
||||
#~ msgstr "Големина на главната обложка"
|
||||
|
||||
|
334
po/de.po
334
po/de.po
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-19 20:03+0200\n"
|
||||
"PO-Revision-Date: 2022-09-19 20:04+0200\n"
|
||||
"POT-Creation-Date: 2022-10-22 11:02+0200\n"
|
||||
"PO-Revision-Date: 2022-10-22 11:04+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: de\n"
|
||||
@@ -32,71 +32,71 @@ msgid_plural "{channels} channels"
|
||||
msgstr[0] "{channels} Kanal"
|
||||
msgstr[1] "{channels} Kanäle"
|
||||
|
||||
#: src/mpdevil.py:1015
|
||||
#: src/mpdevil.py:1004
|
||||
msgid "(restart required)"
|
||||
msgstr "(Neustart erforderlich)"
|
||||
|
||||
#: src/mpdevil.py:1061
|
||||
#: src/mpdevil.py:1050
|
||||
msgid "Use Client-side decoration"
|
||||
msgstr "„Client-side decoration“ benutzen"
|
||||
|
||||
#: src/mpdevil.py:1062
|
||||
#: src/mpdevil.py:1051
|
||||
msgid "Show stop button"
|
||||
msgstr "Stopp-Knopf anzeigen"
|
||||
|
||||
#: src/mpdevil.py:1063
|
||||
#: src/mpdevil.py:1052
|
||||
msgid "Show audio format"
|
||||
msgstr "Audioformat anzeigen"
|
||||
|
||||
#: src/mpdevil.py:1064
|
||||
#: src/mpdevil.py:1053
|
||||
msgid "Show lyrics button"
|
||||
msgstr "Liedtext-Knopf anzeigen"
|
||||
|
||||
#: src/mpdevil.py:1065
|
||||
#: src/mpdevil.py:1054
|
||||
msgid "Place playlist at the side"
|
||||
msgstr "Wiedergabeliste seitlich anzeigen"
|
||||
|
||||
#: src/mpdevil.py:1071
|
||||
#: src/mpdevil.py:1060
|
||||
msgid "Album view cover size"
|
||||
msgstr "Covergröße in Albumliste"
|
||||
|
||||
#: src/mpdevil.py:1072
|
||||
#: src/mpdevil.py:1061
|
||||
msgid "Action bar icon size"
|
||||
msgstr "Symbolgröße Aktionsleiste"
|
||||
|
||||
#: src/mpdevil.py:1082
|
||||
#: src/mpdevil.py:1071
|
||||
msgid "Support “MPRIS”"
|
||||
msgstr "„MPRIS“ unterstützen"
|
||||
|
||||
#: src/mpdevil.py:1083
|
||||
#: src/mpdevil.py:1072
|
||||
msgid "Sort albums by year"
|
||||
msgstr "Alben nach Jahr sortieren"
|
||||
|
||||
#: src/mpdevil.py:1084
|
||||
#: src/mpdevil.py:1073
|
||||
msgid "Send notification on title change"
|
||||
msgstr "Über Titelwechsel benachrichtigen"
|
||||
|
||||
#: src/mpdevil.py:1085
|
||||
#: src/mpdevil.py:1074
|
||||
msgid "Play selected albums and titles immediately"
|
||||
msgstr "Ausgewählte Alben und Titel sofort abspielen"
|
||||
|
||||
#: src/mpdevil.py:1086
|
||||
#: src/mpdevil.py:1075
|
||||
msgid "Rewind via previous button"
|
||||
msgstr "Klassischer Rückspulknopf"
|
||||
|
||||
#: src/mpdevil.py:1087
|
||||
#: src/mpdevil.py:1076
|
||||
msgid "Stop playback on quit"
|
||||
msgstr "Wiedergabe beim Beenden stoppen"
|
||||
|
||||
#: src/mpdevil.py:1114
|
||||
#: src/mpdevil.py:1103
|
||||
msgid "Choose directory"
|
||||
msgstr "Verzeichnis wählen"
|
||||
|
||||
#: src/mpdevil.py:1127
|
||||
#: src/mpdevil.py:1116
|
||||
msgid "Connect via Unix domain socket"
|
||||
msgstr "Über „Unix domain socket“ verbinden"
|
||||
|
||||
#: src/mpdevil.py:1146
|
||||
#: src/mpdevil.py:1135
|
||||
msgid ""
|
||||
"The first image in the same directory as the song file matching this regex "
|
||||
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
||||
@@ -106,306 +106,273 @@ msgstr ""
|
||||
"regulären Ausdruck entspricht, wird angezeigt. %AlbumArtist% und %Album% "
|
||||
"werden durch die entsprechenden Tags des Liedes ersetzt."
|
||||
|
||||
#: src/mpdevil.py:1151
|
||||
#: src/mpdevil.py:1140
|
||||
msgid "Socket:"
|
||||
msgstr "Socket:"
|
||||
|
||||
#: src/mpdevil.py:1153
|
||||
#: src/mpdevil.py:1142
|
||||
msgid "Host:"
|
||||
msgstr "Host:"
|
||||
|
||||
#: src/mpdevil.py:1155
|
||||
#: src/mpdevil.py:1144
|
||||
msgid "Password:"
|
||||
msgstr "Passwort:"
|
||||
|
||||
#: src/mpdevil.py:1156
|
||||
#: src/mpdevil.py:1145
|
||||
msgid "Music lib:"
|
||||
msgstr "Musikverzeichnis:"
|
||||
|
||||
#: src/mpdevil.py:1158
|
||||
#: src/mpdevil.py:1147
|
||||
msgid "Cover regex:"
|
||||
msgstr "Cover-Regex:"
|
||||
|
||||
#: src/mpdevil.py:1182 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1171 src/mpdevil.py:3280 data/ShortcutsWindow.ui:208
|
||||
msgid "Profile 1"
|
||||
msgstr "Profil 1"
|
||||
|
||||
#: src/mpdevil.py:1183 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1172 src/mpdevil.py:3280 data/ShortcutsWindow.ui:215
|
||||
msgid "Profile 2"
|
||||
msgstr "Profil 2"
|
||||
|
||||
#: src/mpdevil.py:1184 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1173 src/mpdevil.py:3280 data/ShortcutsWindow.ui:222
|
||||
msgid "Profile 3"
|
||||
msgstr "Profil 3"
|
||||
|
||||
#. connect button
|
||||
#: src/mpdevil.py:1188 src/mpdevil.py:3467
|
||||
#: src/mpdevil.py:1177 src/mpdevil.py:3167
|
||||
msgid "Connect"
|
||||
msgstr "Verbinden"
|
||||
|
||||
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
|
||||
#: src/mpdevil.py:3569
|
||||
#: src/mpdevil.py:1200 src/mpdevil.py:1202 src/mpdevil.py:3168
|
||||
#: src/mpdevil.py:3272
|
||||
msgid "Preferences"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: src/mpdevil.py:1225 src/mpdevil.py:1235
|
||||
#: src/mpdevil.py:1214 src/mpdevil.py:1224
|
||||
msgid "View"
|
||||
msgstr "Ansicht"
|
||||
|
||||
#: src/mpdevil.py:1226 src/mpdevil.py:1236
|
||||
#: src/mpdevil.py:1215 src/mpdevil.py:1225
|
||||
msgid "Behavior"
|
||||
msgstr "Verhalten"
|
||||
|
||||
#: src/mpdevil.py:1227 src/mpdevil.py:1237
|
||||
#: src/mpdevil.py:1216 src/mpdevil.py:1226 data/ShortcutsWindow.ui:204
|
||||
msgid "Profiles"
|
||||
msgstr "Profile"
|
||||
|
||||
#: src/mpdevil.py:1254
|
||||
#: src/mpdevil.py:1243
|
||||
msgid "Stats"
|
||||
msgstr "Statistik"
|
||||
|
||||
#: src/mpdevil.py:1263
|
||||
#: src/mpdevil.py:1252
|
||||
msgid "<b>Protocol:</b>"
|
||||
msgstr "<b>Protokoll:</b>"
|
||||
|
||||
#: src/mpdevil.py:1264
|
||||
#: src/mpdevil.py:1253
|
||||
msgid "<b>Uptime:</b>"
|
||||
msgstr "<b>Uptime:</b>"
|
||||
|
||||
#: src/mpdevil.py:1265
|
||||
#: src/mpdevil.py:1254
|
||||
msgid "<b>Playtime:</b>"
|
||||
msgstr "<b>Wiedergabezeit:</b>"
|
||||
|
||||
#: src/mpdevil.py:1266
|
||||
#: src/mpdevil.py:1255
|
||||
msgid "<b>Artists:</b>"
|
||||
msgstr "<b>Künstler:</b>"
|
||||
|
||||
#: src/mpdevil.py:1267
|
||||
#: src/mpdevil.py:1256
|
||||
msgid "<b>Albums:</b>"
|
||||
msgstr "<b>Alben:</b>"
|
||||
|
||||
#: src/mpdevil.py:1268
|
||||
#: src/mpdevil.py:1257
|
||||
msgid "<b>Songs:</b>"
|
||||
msgstr "<b>Titel:</b>"
|
||||
|
||||
#: src/mpdevil.py:1269
|
||||
#: src/mpdevil.py:1258
|
||||
msgid "<b>Total Playtime:</b>"
|
||||
msgstr "<b>Gesamtwiedergabezeit:</b>"
|
||||
|
||||
#: src/mpdevil.py:1270
|
||||
#: src/mpdevil.py:1259
|
||||
msgid "<b>Database Update:</b>"
|
||||
msgstr "<b>Datenbankaktualisierung:</b>"
|
||||
|
||||
#: src/mpdevil.py:1360
|
||||
msgid "Add to playlist"
|
||||
msgstr "An Wiedergabeliste anhängen"
|
||||
|
||||
#: src/mpdevil.py:1363
|
||||
#: src/mpdevil.py:1319
|
||||
msgid "Show in file manager"
|
||||
msgstr "In Dateimanager anzeigen"
|
||||
|
||||
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
|
||||
#: src/mpdevil.py:1323 data/ShortcutsWindow.ui:235
|
||||
msgid "Append"
|
||||
msgstr "Anhängen"
|
||||
|
||||
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
|
||||
#: src/mpdevil.py:3018 src/mpdevil.py:3051
|
||||
#: src/mpdevil.py:1323 src/mpdevil.py:2718 src/mpdevil.py:2751
|
||||
msgid "Play"
|
||||
msgstr "Wiedergabe"
|
||||
|
||||
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
|
||||
msgid "Enqueue"
|
||||
msgstr "Einreihen"
|
||||
|
||||
#: src/mpdevil.py:1386
|
||||
#: src/mpdevil.py:1339
|
||||
msgid "MPD-Tag"
|
||||
msgstr "MPD-Tag"
|
||||
|
||||
#: src/mpdevil.py:1389
|
||||
#: src/mpdevil.py:1342
|
||||
msgid "Value"
|
||||
msgstr "Wert"
|
||||
|
||||
#: src/mpdevil.py:1460 src/mpdevil.py:2522
|
||||
#: src/mpdevil.py:1412 src/mpdevil.py:2239
|
||||
msgid "No"
|
||||
msgstr "Nr."
|
||||
|
||||
#: src/mpdevil.py:1461 src/mpdevil.py:2523
|
||||
#: src/mpdevil.py:1413 src/mpdevil.py:2240
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: src/mpdevil.py:1462 src/mpdevil.py:2524
|
||||
#: src/mpdevil.py:1414 src/mpdevil.py:2241
|
||||
msgid "Length"
|
||||
msgstr "Länge"
|
||||
|
||||
#: src/mpdevil.py:1475
|
||||
#: src/mpdevil.py:1427
|
||||
msgid "Add all titles to playlist"
|
||||
msgstr "Alle Titel der Wiedergabeliste anhängen"
|
||||
|
||||
#: src/mpdevil.py:1476
|
||||
#: src/mpdevil.py:1428
|
||||
msgid "Directly play all titles"
|
||||
msgstr "Alle Titel sofort abspielen"
|
||||
|
||||
#: src/mpdevil.py:1477
|
||||
msgid ""
|
||||
"Append all titles after the currently playing track and clear the playlist "
|
||||
"from all other songs"
|
||||
msgstr ""
|
||||
"Alle Titel hinter dem aktuellen Stück einreihen und die weitere "
|
||||
"Wiedergabeliste leeren"
|
||||
|
||||
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
|
||||
#: src/mpdevil.py:1521
|
||||
#, python-brace-format
|
||||
msgid "{number} song ({duration})"
|
||||
msgid_plural "{number} songs ({duration})"
|
||||
msgstr[0] "{number} Stück ({duration})"
|
||||
msgstr[1] "{number} Stücke ({duration})"
|
||||
|
||||
#: src/mpdevil.py:1669
|
||||
#: src/mpdevil.py:1584
|
||||
#, python-brace-format
|
||||
msgid "{hits} hit"
|
||||
msgid_plural "{hits} hits"
|
||||
msgstr[0] "{hits} Treffer"
|
||||
msgstr[1] "{hits} Treffer"
|
||||
|
||||
#: src/mpdevil.py:1754
|
||||
#: src/mpdevil.py:1669
|
||||
msgid "all tags"
|
||||
msgstr "Alle Tags"
|
||||
|
||||
#: src/mpdevil.py:1884
|
||||
#: src/mpdevil.py:1801
|
||||
msgid "all genres"
|
||||
msgstr "Alle Genres"
|
||||
|
||||
#: src/mpdevil.py:1907
|
||||
#: src/mpdevil.py:1824
|
||||
msgid "all artists"
|
||||
msgstr "Alle Interpreten"
|
||||
|
||||
#: src/mpdevil.py:2323
|
||||
msgid "Save"
|
||||
msgstr "Speichern"
|
||||
|
||||
#: src/mpdevil.py:2327
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
|
||||
msgid "Clear playlist"
|
||||
msgstr "Wiedergabeliste leeren"
|
||||
|
||||
#: src/mpdevil.py:2708
|
||||
#: src/mpdevil.py:2411
|
||||
msgid "Scroll to current song"
|
||||
msgstr "Gehe zu aktuellem Lied"
|
||||
|
||||
#: src/mpdevil.py:2718
|
||||
msgid "Playlists"
|
||||
msgstr "Wiedergabelisten"
|
||||
|
||||
#: src/mpdevil.py:2828
|
||||
#: src/mpdevil.py:2528
|
||||
msgid "searching…"
|
||||
msgstr "suche…"
|
||||
|
||||
#: src/mpdevil.py:2833
|
||||
#: src/mpdevil.py:2533
|
||||
msgid "connection error"
|
||||
msgstr "Verbindungsfehler"
|
||||
|
||||
#: src/mpdevil.py:2835
|
||||
#: src/mpdevil.py:2535
|
||||
msgid "lyrics not found"
|
||||
msgstr "Liedtext nicht gefunden"
|
||||
|
||||
#: src/mpdevil.py:2961
|
||||
#: src/mpdevil.py:2662
|
||||
msgid "Lyrics"
|
||||
msgstr "Liedtext"
|
||||
|
||||
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
|
||||
#: src/mpdevil.py:2720 data/ShortcutsWindow.ui:105
|
||||
msgid "Stop"
|
||||
msgstr "Stopp"
|
||||
|
||||
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
|
||||
#: src/mpdevil.py:2724 data/ShortcutsWindow.ui:126
|
||||
msgid "Previous title"
|
||||
msgstr "Vorheriger Titel"
|
||||
|
||||
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
|
||||
#: src/mpdevil.py:2727 data/ShortcutsWindow.ui:119
|
||||
msgid "Next title"
|
||||
msgstr "Nächster Titel"
|
||||
|
||||
#: src/mpdevil.py:3048
|
||||
#: src/mpdevil.py:2748
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: src/mpdevil.py:3220
|
||||
#: src/mpdevil.py:2920
|
||||
msgid "Repeat mode"
|
||||
msgstr "Dauerschleife"
|
||||
|
||||
#: src/mpdevil.py:3221
|
||||
#: src/mpdevil.py:2921
|
||||
msgid "Random mode"
|
||||
msgstr "Zufallsmodus"
|
||||
|
||||
#: src/mpdevil.py:3222
|
||||
#: src/mpdevil.py:2922
|
||||
msgid "Single mode"
|
||||
msgstr "Einzelstückmodus"
|
||||
|
||||
#: src/mpdevil.py:3223
|
||||
#: src/mpdevil.py:2923
|
||||
msgid "Consume mode"
|
||||
msgstr "Wiedergabeliste verbrauchen"
|
||||
|
||||
#: src/mpdevil.py:3437
|
||||
#: src/mpdevil.py:3137
|
||||
msgid "Updating Database…"
|
||||
msgstr "Datenbank aktualisieren…"
|
||||
|
||||
#: src/mpdevil.py:3489
|
||||
#: src/mpdevil.py:3189
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{socket}” failed"
|
||||
msgstr "Verbindung zu „{socket}“ fehlgeschlagen"
|
||||
|
||||
#: src/mpdevil.py:3491
|
||||
#: src/mpdevil.py:3191
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{host}:{port}” failed"
|
||||
msgstr "Verbindung zu „{host}:{port}“ fehlgeschlagen"
|
||||
|
||||
#: src/mpdevil.py:3553
|
||||
#: src/mpdevil.py:3256
|
||||
msgid "Search"
|
||||
msgstr "Suche"
|
||||
|
||||
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
|
||||
#: src/mpdevil.py:3259 data/ShortcutsWindow.ui:85
|
||||
msgid "Back to current album"
|
||||
msgstr "Zurück zu aktuellem Album"
|
||||
|
||||
#: src/mpdevil.py:3570
|
||||
#: src/mpdevil.py:3273
|
||||
msgid "Keyboard Shortcuts"
|
||||
msgstr "Tastenkürzel"
|
||||
|
||||
#: src/mpdevil.py:3571
|
||||
#: src/mpdevil.py:3274
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
#: src/mpdevil.py:3572
|
||||
#: src/mpdevil.py:3275
|
||||
msgid "About mpdevil"
|
||||
msgstr "Info zu mpdevil"
|
||||
|
||||
#: src/mpdevil.py:3574
|
||||
#: src/mpdevil.py:3277
|
||||
msgid "Update Database"
|
||||
msgstr "Datenbank aktualisieren"
|
||||
|
||||
#: src/mpdevil.py:3575
|
||||
#: src/mpdevil.py:3278
|
||||
msgid "Server Stats"
|
||||
msgstr "Serverstatistik"
|
||||
|
||||
#: src/mpdevil.py:3582
|
||||
#: src/mpdevil.py:3285
|
||||
msgid "Mini Player"
|
||||
msgstr "Miniplayer"
|
||||
|
||||
#: src/mpdevil.py:3583
|
||||
#: src/mpdevil.py:3286
|
||||
msgid "Genre Filter"
|
||||
msgstr "Genrefilter"
|
||||
|
||||
#: src/mpdevil.py:3593
|
||||
#: src/mpdevil.py:3296
|
||||
msgid "Menu"
|
||||
msgstr "Menü"
|
||||
|
||||
#: src/mpdevil.py:3644 src/mpdevil.py:3646
|
||||
#: src/mpdevil.py:3483 src/mpdevil.py:3485
|
||||
msgid "connecting…"
|
||||
msgstr "verbinden…"
|
||||
|
||||
#: src/mpdevil.py:3825
|
||||
#: src/mpdevil.py:3523
|
||||
msgid "Debug mode"
|
||||
msgstr "Debugmodus"
|
||||
|
||||
@@ -450,104 +417,123 @@ msgid "Window"
|
||||
msgstr "Fenster"
|
||||
|
||||
#: data/ShortcutsWindow.ui:57
|
||||
msgid "Cycle through profiles"
|
||||
msgstr "Profile durchschalten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Cycle through profiles in reversed order"
|
||||
msgstr "Profile rückwärts durchschalten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle mini player"
|
||||
msgstr "Miniplayer ein-/ausschalten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Toggle genre filter"
|
||||
msgstr "Genrefilter ein-/ausschalten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:85
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle lyrics"
|
||||
msgstr "Liedtext ein-/ausblenden"
|
||||
|
||||
#: data/ShortcutsWindow.ui:92
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
msgid "Toggle search"
|
||||
msgstr "Suche ein-/ausblenden"
|
||||
|
||||
#: data/ShortcutsWindow.ui:108
|
||||
#: data/ShortcutsWindow.ui:94
|
||||
msgid "Playback"
|
||||
msgstr "Wiedergabe"
|
||||
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
#: data/ShortcutsWindow.ui:98
|
||||
msgid "Play/Pause"
|
||||
msgstr "Wiedergabe/Pause"
|
||||
|
||||
#: data/ShortcutsWindow.ui:126
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
msgid "Stop after current title"
|
||||
msgstr "Nach aktuellem Titel stoppen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
#: data/ShortcutsWindow.ui:133
|
||||
msgid "Seek forward"
|
||||
msgstr "Vorspulen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
#: data/ShortcutsWindow.ui:140
|
||||
msgid "Seek backward"
|
||||
msgstr "Zurückspulen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
msgid "Toggle repeat mode"
|
||||
msgstr "Dauerschleife ein-/ausschalten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
msgid "Toggle random mode"
|
||||
msgstr "Zufallsmodus ein-/ausschalten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:175
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
msgid "Toggle single mode"
|
||||
msgstr "Einzelstückmodus ein-/ausschalten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:182
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
msgid "Toggle consume mode"
|
||||
msgstr "Wiedergabeliste verbrauchen ein-/ausschalten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:191
|
||||
msgid "Search, Album Dialog, Album List and Artist List"
|
||||
msgstr "Suche, Albumdialog, Albumliste und Interpretenliste"
|
||||
|
||||
#: data/ShortcutsWindow.ui:195
|
||||
msgid "Enqueue selected item"
|
||||
msgstr "Ausgewähltes Element einreihen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:202
|
||||
msgid "Append selected item"
|
||||
msgstr "Ausgewähltes Element anhängen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:203 data/ShortcutsWindow.ui:233
|
||||
msgid "Middle-click"
|
||||
msgstr "Mittelklick"
|
||||
|
||||
#: data/ShortcutsWindow.ui:210
|
||||
msgid "Play selected item immediately"
|
||||
msgstr "Ausgewähltes Element sofort abspielen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:211
|
||||
msgid "Double-click"
|
||||
msgstr "Doppelklick"
|
||||
|
||||
#: data/ShortcutsWindow.ui:218 data/ShortcutsWindow.ui:247
|
||||
msgid "Show additional information"
|
||||
msgstr "Zeige weitere Informationen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:219 data/ShortcutsWindow.ui:248
|
||||
msgid "Right-click"
|
||||
msgstr "Rechtsklick"
|
||||
|
||||
#: data/ShortcutsWindow.ui:228
|
||||
#: data/ShortcutsWindow.ui:177
|
||||
msgid "Playlist"
|
||||
msgstr "Wiedergabeliste"
|
||||
|
||||
#: data/ShortcutsWindow.ui:232
|
||||
msgid "Remove selected song"
|
||||
msgstr "Ausgewählten Titel entfernen"
|
||||
#: data/ShortcutsWindow.ui:181
|
||||
msgid "Remove song"
|
||||
msgstr "Titel entfernen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:188
|
||||
msgid "Clear playlist"
|
||||
msgstr "Wiedergabeliste leeren"
|
||||
|
||||
#: data/ShortcutsWindow.ui:195 data/ShortcutsWindow.ui:249
|
||||
msgid "Show information"
|
||||
msgstr "Informationen anzeigen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:231
|
||||
msgid "Search, Album Dialog and Album List"
|
||||
msgstr "Suche, Albumdialog und Albumliste"
|
||||
|
||||
#: data/ShortcutsWindow.ui:242
|
||||
msgid "Play immediately"
|
||||
msgstr "Sofort abspielen"
|
||||
|
||||
#~ msgid "Add to playlist"
|
||||
#~ msgstr "An Wiedergabeliste anhängen"
|
||||
|
||||
#~ msgid "Enqueue"
|
||||
#~ msgstr "Einreihen"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Append all titles after the currently playing track and clear the "
|
||||
#~ "playlist from all other songs"
|
||||
#~ msgstr ""
|
||||
#~ "Alle Titel hinter dem aktuellen Stück einreihen und die weitere "
|
||||
#~ "Wiedergabeliste leeren"
|
||||
|
||||
#~ msgid "Save"
|
||||
#~ msgstr "Speichern"
|
||||
|
||||
#~ msgid "Delete"
|
||||
#~ msgstr "Löschen"
|
||||
|
||||
#~ msgid "Playlists"
|
||||
#~ msgstr "Wiedergabelisten"
|
||||
|
||||
#~ msgid "Cycle through profiles"
|
||||
#~ msgstr "Profile durchschalten"
|
||||
|
||||
#~ msgid "Cycle through profiles in reversed order"
|
||||
#~ msgstr "Profile rückwärts durchschalten"
|
||||
|
||||
#~ msgid "Enqueue selected item"
|
||||
#~ msgstr "Ausgewähltes Element einreihen"
|
||||
|
||||
#~ msgid "Append selected item"
|
||||
#~ msgstr "Ausgewähltes Element anhängen"
|
||||
|
||||
#~ msgid "Middle-click"
|
||||
#~ msgstr "Mittelklick"
|
||||
|
||||
#~ msgid "Double-click"
|
||||
#~ msgstr "Doppelklick"
|
||||
|
||||
#~ msgid "Right-click"
|
||||
#~ msgstr "Rechtsklick"
|
||||
|
||||
#~ msgid "Main cover size"
|
||||
#~ msgstr "Größe des Hauptcovers"
|
||||
|
285
po/mpdevil.pot
285
po/mpdevil.pot
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mpdevil\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-19 20:03+0200\n"
|
||||
"POT-Creation-Date: 2022-10-22 11:02+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -32,375 +32,344 @@ msgid_plural "{channels} channels"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/mpdevil.py:1015
|
||||
#: src/mpdevil.py:1004
|
||||
msgid "(restart required)"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1061
|
||||
#: src/mpdevil.py:1050
|
||||
msgid "Use Client-side decoration"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1062
|
||||
#: src/mpdevil.py:1051
|
||||
msgid "Show stop button"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1063
|
||||
#: src/mpdevil.py:1052
|
||||
msgid "Show audio format"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1064
|
||||
#: src/mpdevil.py:1053
|
||||
msgid "Show lyrics button"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1065
|
||||
#: src/mpdevil.py:1054
|
||||
msgid "Place playlist at the side"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1071
|
||||
#: src/mpdevil.py:1060
|
||||
msgid "Album view cover size"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1072
|
||||
#: src/mpdevil.py:1061
|
||||
msgid "Action bar icon size"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1082
|
||||
#: src/mpdevil.py:1071
|
||||
msgid "Support “MPRIS”"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1083
|
||||
#: src/mpdevil.py:1072
|
||||
msgid "Sort albums by year"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1084
|
||||
#: src/mpdevil.py:1073
|
||||
msgid "Send notification on title change"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1085
|
||||
#: src/mpdevil.py:1074
|
||||
msgid "Play selected albums and titles immediately"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1086
|
||||
#: src/mpdevil.py:1075
|
||||
msgid "Rewind via previous button"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1087
|
||||
#: src/mpdevil.py:1076
|
||||
msgid "Stop playback on quit"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1114
|
||||
#: src/mpdevil.py:1103
|
||||
msgid "Choose directory"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1127
|
||||
#: src/mpdevil.py:1116
|
||||
msgid "Connect via Unix domain socket"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1146
|
||||
#: src/mpdevil.py:1135
|
||||
msgid ""
|
||||
"The first image in the same directory as the song file matching this regex "
|
||||
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
||||
"corresponding tags of the song."
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1151
|
||||
#: src/mpdevil.py:1140
|
||||
msgid "Socket:"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1153
|
||||
#: src/mpdevil.py:1142
|
||||
msgid "Host:"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1155
|
||||
#: src/mpdevil.py:1144
|
||||
msgid "Password:"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1156
|
||||
#: src/mpdevil.py:1145
|
||||
msgid "Music lib:"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1158
|
||||
#: src/mpdevil.py:1147
|
||||
msgid "Cover regex:"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1182 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1171 src/mpdevil.py:3280 data/ShortcutsWindow.ui:208
|
||||
msgid "Profile 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1183 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1172 src/mpdevil.py:3280 data/ShortcutsWindow.ui:215
|
||||
msgid "Profile 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1184 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1173 src/mpdevil.py:3280 data/ShortcutsWindow.ui:222
|
||||
msgid "Profile 3"
|
||||
msgstr ""
|
||||
|
||||
#. connect button
|
||||
#: src/mpdevil.py:1188 src/mpdevil.py:3467
|
||||
#: src/mpdevil.py:1177 src/mpdevil.py:3167
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
|
||||
#: src/mpdevil.py:3569
|
||||
#: src/mpdevil.py:1200 src/mpdevil.py:1202 src/mpdevil.py:3168
|
||||
#: src/mpdevil.py:3272
|
||||
msgid "Preferences"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1225 src/mpdevil.py:1235
|
||||
#: src/mpdevil.py:1214 src/mpdevil.py:1224
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1226 src/mpdevil.py:1236
|
||||
#: src/mpdevil.py:1215 src/mpdevil.py:1225
|
||||
msgid "Behavior"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1227 src/mpdevil.py:1237
|
||||
#: src/mpdevil.py:1216 src/mpdevil.py:1226 data/ShortcutsWindow.ui:204
|
||||
msgid "Profiles"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1254
|
||||
#: src/mpdevil.py:1243
|
||||
msgid "Stats"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1263
|
||||
#: src/mpdevil.py:1252
|
||||
msgid "<b>Protocol:</b>"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1264
|
||||
#: src/mpdevil.py:1253
|
||||
msgid "<b>Uptime:</b>"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1265
|
||||
#: src/mpdevil.py:1254
|
||||
msgid "<b>Playtime:</b>"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1266
|
||||
#: src/mpdevil.py:1255
|
||||
msgid "<b>Artists:</b>"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1267
|
||||
#: src/mpdevil.py:1256
|
||||
msgid "<b>Albums:</b>"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1268
|
||||
#: src/mpdevil.py:1257
|
||||
msgid "<b>Songs:</b>"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1269
|
||||
#: src/mpdevil.py:1258
|
||||
msgid "<b>Total Playtime:</b>"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1270
|
||||
#: src/mpdevil.py:1259
|
||||
msgid "<b>Database Update:</b>"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1360
|
||||
msgid "Add to playlist"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1363
|
||||
#: src/mpdevil.py:1319
|
||||
msgid "Show in file manager"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
|
||||
#: src/mpdevil.py:1323 data/ShortcutsWindow.ui:235
|
||||
msgid "Append"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
|
||||
#: src/mpdevil.py:3018 src/mpdevil.py:3051
|
||||
#: src/mpdevil.py:1323 src/mpdevil.py:2718 src/mpdevil.py:2751
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
|
||||
msgid "Enqueue"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1386
|
||||
#: src/mpdevil.py:1339
|
||||
msgid "MPD-Tag"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1389
|
||||
#: src/mpdevil.py:1342
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1460 src/mpdevil.py:2522
|
||||
#: src/mpdevil.py:1412 src/mpdevil.py:2239
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1461 src/mpdevil.py:2523
|
||||
#: src/mpdevil.py:1413 src/mpdevil.py:2240
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1462 src/mpdevil.py:2524
|
||||
#: src/mpdevil.py:1414 src/mpdevil.py:2241
|
||||
msgid "Length"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1475
|
||||
#: src/mpdevil.py:1427
|
||||
msgid "Add all titles to playlist"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1476
|
||||
#: src/mpdevil.py:1428
|
||||
msgid "Directly play all titles"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1477
|
||||
msgid ""
|
||||
"Append all titles after the currently playing track and clear the playlist "
|
||||
"from all other songs"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
|
||||
#: src/mpdevil.py:1521
|
||||
#, python-brace-format
|
||||
msgid "{number} song ({duration})"
|
||||
msgid_plural "{number} songs ({duration})"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/mpdevil.py:1669
|
||||
#: src/mpdevil.py:1584
|
||||
#, python-brace-format
|
||||
msgid "{hits} hit"
|
||||
msgid_plural "{hits} hits"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/mpdevil.py:1754
|
||||
#: src/mpdevil.py:1669
|
||||
msgid "all tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1884
|
||||
#: src/mpdevil.py:1801
|
||||
msgid "all genres"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1907
|
||||
#: src/mpdevil.py:1824
|
||||
msgid "all artists"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2323
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2327
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
|
||||
msgid "Clear playlist"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2708
|
||||
#: src/mpdevil.py:2411
|
||||
msgid "Scroll to current song"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2718
|
||||
msgid "Playlists"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2828
|
||||
#: src/mpdevil.py:2528
|
||||
msgid "searching…"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2833
|
||||
#: src/mpdevil.py:2533
|
||||
msgid "connection error"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2835
|
||||
#: src/mpdevil.py:2535
|
||||
msgid "lyrics not found"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:2961
|
||||
#: src/mpdevil.py:2662
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
|
||||
#: src/mpdevil.py:2720 data/ShortcutsWindow.ui:105
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
|
||||
#: src/mpdevil.py:2724 data/ShortcutsWindow.ui:126
|
||||
msgid "Previous title"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
|
||||
#: src/mpdevil.py:2727 data/ShortcutsWindow.ui:119
|
||||
msgid "Next title"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3048
|
||||
#: src/mpdevil.py:2748
|
||||
msgid "Pause"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3220
|
||||
#: src/mpdevil.py:2920
|
||||
msgid "Repeat mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3221
|
||||
#: src/mpdevil.py:2921
|
||||
msgid "Random mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3222
|
||||
#: src/mpdevil.py:2922
|
||||
msgid "Single mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3223
|
||||
#: src/mpdevil.py:2923
|
||||
msgid "Consume mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3437
|
||||
#: src/mpdevil.py:3137
|
||||
msgid "Updating Database…"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3489
|
||||
#: src/mpdevil.py:3189
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{socket}” failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3491
|
||||
#: src/mpdevil.py:3191
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{host}:{port}” failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3553
|
||||
#: src/mpdevil.py:3256
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
|
||||
#: src/mpdevil.py:3259 data/ShortcutsWindow.ui:85
|
||||
msgid "Back to current album"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3570
|
||||
#: src/mpdevil.py:3273
|
||||
msgid "Keyboard Shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3571
|
||||
#: src/mpdevil.py:3274
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3572
|
||||
#: src/mpdevil.py:3275
|
||||
msgid "About mpdevil"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3574
|
||||
#: src/mpdevil.py:3277
|
||||
msgid "Update Database"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3575
|
||||
#: src/mpdevil.py:3278
|
||||
msgid "Server Stats"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3582
|
||||
#: src/mpdevil.py:3285
|
||||
msgid "Mini Player"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3583
|
||||
#: src/mpdevil.py:3286
|
||||
msgid "Genre Filter"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3593
|
||||
#: src/mpdevil.py:3296
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3644 src/mpdevil.py:3646
|
||||
#: src/mpdevil.py:3483 src/mpdevil.py:3485
|
||||
msgid "connecting…"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:3825
|
||||
#: src/mpdevil.py:3523
|
||||
msgid "Debug mode"
|
||||
msgstr ""
|
||||
|
||||
@@ -445,101 +414,77 @@ msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:57
|
||||
msgid "Cycle through profiles"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Cycle through profiles in reversed order"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle mini player"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Toggle genre filter"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:85
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:92
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
msgid "Toggle search"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:108
|
||||
#: data/ShortcutsWindow.ui:94
|
||||
msgid "Playback"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
#: data/ShortcutsWindow.ui:98
|
||||
msgid "Play/Pause"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:126
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
msgid "Stop after current title"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
#: data/ShortcutsWindow.ui:133
|
||||
msgid "Seek forward"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
#: data/ShortcutsWindow.ui:140
|
||||
msgid "Seek backward"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
msgid "Toggle repeat mode"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
msgid "Toggle random mode"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:175
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
msgid "Toggle single mode"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:182
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
msgid "Toggle consume mode"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:191
|
||||
msgid "Search, Album Dialog, Album List and Artist List"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:195
|
||||
msgid "Enqueue selected item"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:202
|
||||
msgid "Append selected item"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:203 data/ShortcutsWindow.ui:233
|
||||
msgid "Middle-click"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:210
|
||||
msgid "Play selected item immediately"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:211
|
||||
msgid "Double-click"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:218 data/ShortcutsWindow.ui:247
|
||||
msgid "Show additional information"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:219 data/ShortcutsWindow.ui:248
|
||||
msgid "Right-click"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:228
|
||||
#: data/ShortcutsWindow.ui:177
|
||||
msgid "Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:232
|
||||
msgid "Remove selected song"
|
||||
#: data/ShortcutsWindow.ui:181
|
||||
msgid "Remove song"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:188
|
||||
msgid "Clear playlist"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:195 data/ShortcutsWindow.ui:249
|
||||
msgid "Show information"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:231
|
||||
msgid "Search, Album Dialog and Album List"
|
||||
msgstr ""
|
||||
|
||||
#: data/ShortcutsWindow.ui:242
|
||||
msgid "Play immediately"
|
||||
msgstr ""
|
||||
|
334
po/nl.po
334
po/nl.po
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-19 20:03+0200\n"
|
||||
"PO-Revision-Date: 2022-09-19 20:04+0200\n"
|
||||
"POT-Creation-Date: 2022-10-22 11:02+0200\n"
|
||||
"PO-Revision-Date: 2022-10-22 11:13+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: nl\n"
|
||||
@@ -32,71 +32,71 @@ msgid_plural "{channels} channels"
|
||||
msgstr[0] "{channels} kanaal"
|
||||
msgstr[1] "{channels} kanalen"
|
||||
|
||||
#: src/mpdevil.py:1015
|
||||
#: src/mpdevil.py:1004
|
||||
msgid "(restart required)"
|
||||
msgstr "(herstart vereist)"
|
||||
|
||||
#: src/mpdevil.py:1061
|
||||
#: src/mpdevil.py:1050
|
||||
msgid "Use Client-side decoration"
|
||||
msgstr "Gebruik vensterdecoratie van mpdevil"
|
||||
|
||||
#: src/mpdevil.py:1062
|
||||
#: src/mpdevil.py:1051
|
||||
msgid "Show stop button"
|
||||
msgstr "Toon stopknop"
|
||||
|
||||
#: src/mpdevil.py:1063
|
||||
#: src/mpdevil.py:1052
|
||||
msgid "Show audio format"
|
||||
msgstr "Toon audioformaat"
|
||||
|
||||
#: src/mpdevil.py:1064
|
||||
#: src/mpdevil.py:1053
|
||||
msgid "Show lyrics button"
|
||||
msgstr "Toon songtekstknop"
|
||||
|
||||
#: src/mpdevil.py:1065
|
||||
#: src/mpdevil.py:1054
|
||||
msgid "Place playlist at the side"
|
||||
msgstr "Plaats afspeellijst aan de zijkant"
|
||||
|
||||
#: src/mpdevil.py:1071
|
||||
#: src/mpdevil.py:1060
|
||||
msgid "Album view cover size"
|
||||
msgstr "Hoesgrootte in albumlijst"
|
||||
|
||||
#: src/mpdevil.py:1072
|
||||
#: src/mpdevil.py:1061
|
||||
msgid "Action bar icon size"
|
||||
msgstr "Grootte iconen werkbalk"
|
||||
|
||||
#: src/mpdevil.py:1082
|
||||
#: src/mpdevil.py:1071
|
||||
msgid "Support “MPRIS”"
|
||||
msgstr "Ondersteun „MPRIS”"
|
||||
|
||||
#: src/mpdevil.py:1083
|
||||
#: src/mpdevil.py:1072
|
||||
msgid "Sort albums by year"
|
||||
msgstr "Sorteer albums op jaar"
|
||||
|
||||
#: src/mpdevil.py:1084
|
||||
#: src/mpdevil.py:1073
|
||||
msgid "Send notification on title change"
|
||||
msgstr "Verstuur een melding bij titelwisseling"
|
||||
|
||||
#: src/mpdevil.py:1085
|
||||
#: src/mpdevil.py:1074
|
||||
msgid "Play selected albums and titles immediately"
|
||||
msgstr "Geselecteerde albums en titels direct afspelen"
|
||||
|
||||
#: src/mpdevil.py:1086
|
||||
#: src/mpdevil.py:1075
|
||||
msgid "Rewind via previous button"
|
||||
msgstr "Terugspoelen met „vorige” knop"
|
||||
|
||||
#: src/mpdevil.py:1087
|
||||
#: src/mpdevil.py:1076
|
||||
msgid "Stop playback on quit"
|
||||
msgstr "Stop afspelen bij afsluiten"
|
||||
|
||||
#: src/mpdevil.py:1114
|
||||
#: src/mpdevil.py:1103
|
||||
msgid "Choose directory"
|
||||
msgstr "Kies een map"
|
||||
|
||||
#: src/mpdevil.py:1127
|
||||
#: src/mpdevil.py:1116
|
||||
msgid "Connect via Unix domain socket"
|
||||
msgstr "Verbinden via Unix domain socket"
|
||||
|
||||
#: src/mpdevil.py:1146
|
||||
#: src/mpdevil.py:1135
|
||||
msgid ""
|
||||
"The first image in the same directory as the song file matching this regex "
|
||||
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
||||
@@ -106,306 +106,273 @@ msgstr ""
|
||||
"met deze regex wordt getoond. %AlbumArtist% en %Album% worden vervangen door "
|
||||
"de bijbehorende tags van het muziekbestand."
|
||||
|
||||
#: src/mpdevil.py:1151
|
||||
#: src/mpdevil.py:1140
|
||||
msgid "Socket:"
|
||||
msgstr "Socket:"
|
||||
|
||||
#: src/mpdevil.py:1153
|
||||
#: src/mpdevil.py:1142
|
||||
msgid "Host:"
|
||||
msgstr "Host:"
|
||||
|
||||
#: src/mpdevil.py:1155
|
||||
#: src/mpdevil.py:1144
|
||||
msgid "Password:"
|
||||
msgstr "Wachtwoord:"
|
||||
|
||||
#: src/mpdevil.py:1156
|
||||
#: src/mpdevil.py:1145
|
||||
msgid "Music lib:"
|
||||
msgstr "Muziekmap:"
|
||||
|
||||
#: src/mpdevil.py:1158
|
||||
#: src/mpdevil.py:1147
|
||||
msgid "Cover regex:"
|
||||
msgstr "Regex albumhoes:"
|
||||
|
||||
#: src/mpdevil.py:1182 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1171 src/mpdevil.py:3280 data/ShortcutsWindow.ui:208
|
||||
msgid "Profile 1"
|
||||
msgstr "Profiel 1"
|
||||
|
||||
#: src/mpdevil.py:1183 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1172 src/mpdevil.py:3280 data/ShortcutsWindow.ui:215
|
||||
msgid "Profile 2"
|
||||
msgstr "Profiel 2"
|
||||
|
||||
#: src/mpdevil.py:1184 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1173 src/mpdevil.py:3280 data/ShortcutsWindow.ui:222
|
||||
msgid "Profile 3"
|
||||
msgstr "Profiel 3"
|
||||
|
||||
#. connect button
|
||||
#: src/mpdevil.py:1188 src/mpdevil.py:3467
|
||||
#: src/mpdevil.py:1177 src/mpdevil.py:3167
|
||||
msgid "Connect"
|
||||
msgstr "Verbinden"
|
||||
|
||||
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
|
||||
#: src/mpdevil.py:3569
|
||||
#: src/mpdevil.py:1200 src/mpdevil.py:1202 src/mpdevil.py:3168
|
||||
#: src/mpdevil.py:3272
|
||||
msgid "Preferences"
|
||||
msgstr "Voorkeuren"
|
||||
|
||||
#: src/mpdevil.py:1225 src/mpdevil.py:1235
|
||||
#: src/mpdevil.py:1214 src/mpdevil.py:1224
|
||||
msgid "View"
|
||||
msgstr "Beeld"
|
||||
|
||||
#: src/mpdevil.py:1226 src/mpdevil.py:1236
|
||||
#: src/mpdevil.py:1215 src/mpdevil.py:1225
|
||||
msgid "Behavior"
|
||||
msgstr "Gedrag"
|
||||
|
||||
#: src/mpdevil.py:1227 src/mpdevil.py:1237
|
||||
#: src/mpdevil.py:1216 src/mpdevil.py:1226 data/ShortcutsWindow.ui:204
|
||||
msgid "Profiles"
|
||||
msgstr "Profielen"
|
||||
|
||||
#: src/mpdevil.py:1254
|
||||
#: src/mpdevil.py:1243
|
||||
msgid "Stats"
|
||||
msgstr "Statistieken"
|
||||
|
||||
#: src/mpdevil.py:1263
|
||||
#: src/mpdevil.py:1252
|
||||
msgid "<b>Protocol:</b>"
|
||||
msgstr "<b>Protocol:</b>"
|
||||
|
||||
#: src/mpdevil.py:1264
|
||||
#: src/mpdevil.py:1253
|
||||
msgid "<b>Uptime:</b>"
|
||||
msgstr "<b>Uptime:</b>"
|
||||
|
||||
#: src/mpdevil.py:1265
|
||||
#: src/mpdevil.py:1254
|
||||
msgid "<b>Playtime:</b>"
|
||||
msgstr "<b>Afspeeltijd:</b>"
|
||||
|
||||
#: src/mpdevil.py:1266
|
||||
#: src/mpdevil.py:1255
|
||||
msgid "<b>Artists:</b>"
|
||||
msgstr "<b>Artiesten:</b>"
|
||||
|
||||
#: src/mpdevil.py:1267
|
||||
#: src/mpdevil.py:1256
|
||||
msgid "<b>Albums:</b>"
|
||||
msgstr "<b>Albums:</b>"
|
||||
|
||||
#: src/mpdevil.py:1268
|
||||
#: src/mpdevil.py:1257
|
||||
msgid "<b>Songs:</b>"
|
||||
msgstr "<b>Titels:</b>"
|
||||
|
||||
#: src/mpdevil.py:1269
|
||||
#: src/mpdevil.py:1258
|
||||
msgid "<b>Total Playtime:</b>"
|
||||
msgstr "<b>Totale speelduur:</b>"
|
||||
|
||||
#: src/mpdevil.py:1270
|
||||
#: src/mpdevil.py:1259
|
||||
msgid "<b>Database Update:</b>"
|
||||
msgstr "<b>Database bijgewerkt:</b>"
|
||||
|
||||
#: src/mpdevil.py:1360
|
||||
msgid "Add to playlist"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1363
|
||||
#: src/mpdevil.py:1319
|
||||
msgid "Show in file manager"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
|
||||
#: src/mpdevil.py:1323 data/ShortcutsWindow.ui:235
|
||||
msgid "Append"
|
||||
msgstr "Toevoegen"
|
||||
|
||||
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
|
||||
#: src/mpdevil.py:3018 src/mpdevil.py:3051
|
||||
#: src/mpdevil.py:1323 src/mpdevil.py:2718 src/mpdevil.py:2751
|
||||
msgid "Play"
|
||||
msgstr "Afspelen"
|
||||
|
||||
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
|
||||
msgid "Enqueue"
|
||||
msgstr "In wachtrij plaatsen"
|
||||
|
||||
#: src/mpdevil.py:1386
|
||||
#: src/mpdevil.py:1339
|
||||
msgid "MPD-Tag"
|
||||
msgstr "MPD-Tag"
|
||||
|
||||
#: src/mpdevil.py:1389
|
||||
#: src/mpdevil.py:1342
|
||||
msgid "Value"
|
||||
msgstr "Waarde"
|
||||
|
||||
#: src/mpdevil.py:1460 src/mpdevil.py:2522
|
||||
#: src/mpdevil.py:1412 src/mpdevil.py:2239
|
||||
msgid "No"
|
||||
msgstr "Nr"
|
||||
|
||||
#: src/mpdevil.py:1461 src/mpdevil.py:2523
|
||||
#: src/mpdevil.py:1413 src/mpdevil.py:2240
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: src/mpdevil.py:1462 src/mpdevil.py:2524
|
||||
#: src/mpdevil.py:1414 src/mpdevil.py:2241
|
||||
msgid "Length"
|
||||
msgstr "Lengte"
|
||||
|
||||
#: src/mpdevil.py:1475
|
||||
#: src/mpdevil.py:1427
|
||||
msgid "Add all titles to playlist"
|
||||
msgstr "Voeg alle titels toe aan de afspeellijst"
|
||||
|
||||
#: src/mpdevil.py:1476
|
||||
#: src/mpdevil.py:1428
|
||||
msgid "Directly play all titles"
|
||||
msgstr "Alle titels direct afspelen"
|
||||
|
||||
#: src/mpdevil.py:1477
|
||||
msgid ""
|
||||
"Append all titles after the currently playing track and clear the playlist "
|
||||
"from all other songs"
|
||||
msgstr ""
|
||||
"Alle titels toevoegen na de nu spelende titel en alle overige titels uit de "
|
||||
"afspeellijst verwijderen"
|
||||
|
||||
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
|
||||
#: src/mpdevil.py:1521
|
||||
#, python-brace-format
|
||||
msgid "{number} song ({duration})"
|
||||
msgid_plural "{number} songs ({duration})"
|
||||
msgstr[0] "{number} nummer ({duration})"
|
||||
msgstr[1] "{number} nummers ({duration})"
|
||||
|
||||
#: src/mpdevil.py:1669
|
||||
#: src/mpdevil.py:1584
|
||||
#, python-brace-format
|
||||
msgid "{hits} hit"
|
||||
msgid_plural "{hits} hits"
|
||||
msgstr[0] "{hits} hit"
|
||||
msgstr[1] "{hits} treffers"
|
||||
|
||||
#: src/mpdevil.py:1754
|
||||
#: src/mpdevil.py:1669
|
||||
msgid "all tags"
|
||||
msgstr "alle tags"
|
||||
|
||||
#: src/mpdevil.py:1884
|
||||
#: src/mpdevil.py:1801
|
||||
msgid "all genres"
|
||||
msgstr "alle genres"
|
||||
|
||||
#: src/mpdevil.py:1907
|
||||
#: src/mpdevil.py:1824
|
||||
msgid "all artists"
|
||||
msgstr "alle artiesten"
|
||||
|
||||
#: src/mpdevil.py:2323
|
||||
msgid "Save"
|
||||
msgstr "Opslaan"
|
||||
|
||||
#: src/mpdevil.py:2327
|
||||
msgid "Delete"
|
||||
msgstr "Verwijderen"
|
||||
|
||||
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
|
||||
msgid "Clear playlist"
|
||||
msgstr "Afspeellijst legen"
|
||||
|
||||
#: src/mpdevil.py:2708
|
||||
#: src/mpdevil.py:2411
|
||||
msgid "Scroll to current song"
|
||||
msgstr "Naar de huidige titel scrollen"
|
||||
|
||||
#: src/mpdevil.py:2718
|
||||
msgid "Playlists"
|
||||
msgstr "Afspeellijsten"
|
||||
|
||||
#: src/mpdevil.py:2828
|
||||
#: src/mpdevil.py:2528
|
||||
msgid "searching…"
|
||||
msgstr "bezig met zoeken…"
|
||||
|
||||
#: src/mpdevil.py:2833
|
||||
#: src/mpdevil.py:2533
|
||||
msgid "connection error"
|
||||
msgstr "verbindingsfout"
|
||||
|
||||
#: src/mpdevil.py:2835
|
||||
#: src/mpdevil.py:2535
|
||||
msgid "lyrics not found"
|
||||
msgstr "geen songtekst gevonden"
|
||||
|
||||
#: src/mpdevil.py:2961
|
||||
#: src/mpdevil.py:2662
|
||||
msgid "Lyrics"
|
||||
msgstr "Songtekst"
|
||||
|
||||
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
|
||||
#: src/mpdevil.py:2720 data/ShortcutsWindow.ui:105
|
||||
msgid "Stop"
|
||||
msgstr "Stoppen"
|
||||
|
||||
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
|
||||
#: src/mpdevil.py:2724 data/ShortcutsWindow.ui:126
|
||||
msgid "Previous title"
|
||||
msgstr "Vorige titel"
|
||||
|
||||
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
|
||||
#: src/mpdevil.py:2727 data/ShortcutsWindow.ui:119
|
||||
msgid "Next title"
|
||||
msgstr "Volgende titel"
|
||||
|
||||
#: src/mpdevil.py:3048
|
||||
#: src/mpdevil.py:2748
|
||||
msgid "Pause"
|
||||
msgstr "Pauzeren"
|
||||
|
||||
#: src/mpdevil.py:3220
|
||||
#: src/mpdevil.py:2920
|
||||
msgid "Repeat mode"
|
||||
msgstr "Herhaalmodus"
|
||||
|
||||
#: src/mpdevil.py:3221
|
||||
#: src/mpdevil.py:2921
|
||||
msgid "Random mode"
|
||||
msgstr "Willekeurige modus"
|
||||
|
||||
#: src/mpdevil.py:3222
|
||||
#: src/mpdevil.py:2922
|
||||
msgid "Single mode"
|
||||
msgstr "Enkele modus"
|
||||
|
||||
#: src/mpdevil.py:3223
|
||||
#: src/mpdevil.py:2923
|
||||
msgid "Consume mode"
|
||||
msgstr "Verbruiksmodus"
|
||||
|
||||
#: src/mpdevil.py:3437
|
||||
#: src/mpdevil.py:3137
|
||||
msgid "Updating Database…"
|
||||
msgstr "Database bijwerken…"
|
||||
|
||||
#: src/mpdevil.py:3489
|
||||
#: src/mpdevil.py:3189
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{socket}” failed"
|
||||
msgstr "Verbinding met „{socket}” mislukt"
|
||||
|
||||
#: src/mpdevil.py:3491
|
||||
#: src/mpdevil.py:3191
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{host}:{port}” failed"
|
||||
msgstr "Verbinding met „{host}:{port}” mislukt"
|
||||
|
||||
#: src/mpdevil.py:3553
|
||||
#: src/mpdevil.py:3256
|
||||
msgid "Search"
|
||||
msgstr "Zoeken"
|
||||
|
||||
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
|
||||
#: src/mpdevil.py:3259 data/ShortcutsWindow.ui:85
|
||||
msgid "Back to current album"
|
||||
msgstr "Terug naar huidige album"
|
||||
|
||||
#: src/mpdevil.py:3570
|
||||
#: src/mpdevil.py:3273
|
||||
msgid "Keyboard Shortcuts"
|
||||
msgstr "Sneltoetsen"
|
||||
|
||||
#: src/mpdevil.py:3571
|
||||
#: src/mpdevil.py:3274
|
||||
msgid "Help"
|
||||
msgstr "Hulp"
|
||||
|
||||
#: src/mpdevil.py:3572
|
||||
#: src/mpdevil.py:3275
|
||||
msgid "About mpdevil"
|
||||
msgstr "Over mpdevil"
|
||||
|
||||
#: src/mpdevil.py:3574
|
||||
#: src/mpdevil.py:3277
|
||||
msgid "Update Database"
|
||||
msgstr "Database bijwerken"
|
||||
|
||||
#: src/mpdevil.py:3575
|
||||
#: src/mpdevil.py:3278
|
||||
msgid "Server Stats"
|
||||
msgstr "Serverstatistieken"
|
||||
|
||||
#: src/mpdevil.py:3582
|
||||
#: src/mpdevil.py:3285
|
||||
msgid "Mini Player"
|
||||
msgstr "Minispeler"
|
||||
|
||||
#: src/mpdevil.py:3583
|
||||
#: src/mpdevil.py:3286
|
||||
msgid "Genre Filter"
|
||||
msgstr "Genrefilter"
|
||||
|
||||
#: src/mpdevil.py:3593
|
||||
#: src/mpdevil.py:3296
|
||||
msgid "Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
#: src/mpdevil.py:3644 src/mpdevil.py:3646
|
||||
#: src/mpdevil.py:3483 src/mpdevil.py:3485
|
||||
msgid "connecting…"
|
||||
msgstr "verbinding maken…"
|
||||
|
||||
#: src/mpdevil.py:3825
|
||||
#: src/mpdevil.py:3523
|
||||
msgid "Debug mode"
|
||||
msgstr "Debugmodus"
|
||||
|
||||
@@ -450,104 +417,123 @@ msgid "Window"
|
||||
msgstr "Venster"
|
||||
|
||||
#: data/ShortcutsWindow.ui:57
|
||||
msgid "Cycle through profiles"
|
||||
msgstr "Profielen doorlopen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Cycle through profiles in reversed order"
|
||||
msgstr "Profielen doorlopen in omgekeerde volgorde"
|
||||
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle mini player"
|
||||
msgstr "Omschakelen naar minispeler"
|
||||
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Toggle genre filter"
|
||||
msgstr "Genrefilter aan/uitzetten"
|
||||
|
||||
#: data/ShortcutsWindow.ui:85
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle lyrics"
|
||||
msgstr "Omschakelen naar songtekst"
|
||||
|
||||
#: data/ShortcutsWindow.ui:92
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
msgid "Toggle search"
|
||||
msgstr "Omschakelen naar zoeken"
|
||||
|
||||
#: data/ShortcutsWindow.ui:108
|
||||
#: data/ShortcutsWindow.ui:94
|
||||
msgid "Playback"
|
||||
msgstr "Afspelen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
#: data/ShortcutsWindow.ui:98
|
||||
msgid "Play/Pause"
|
||||
msgstr "Afspelen/Pauzeren"
|
||||
|
||||
#: data/ShortcutsWindow.ui:126
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
msgid "Stop after current title"
|
||||
msgstr "Stop na huidige titel"
|
||||
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
#: data/ShortcutsWindow.ui:133
|
||||
msgid "Seek forward"
|
||||
msgstr "Vooruit spoelen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
#: data/ShortcutsWindow.ui:140
|
||||
msgid "Seek backward"
|
||||
msgstr "Achteruit spoelen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
msgid "Toggle repeat mode"
|
||||
msgstr "Omschakelen naar herhaalmodus"
|
||||
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
msgid "Toggle random mode"
|
||||
msgstr "Omschakelen naar willekeurige modus"
|
||||
|
||||
#: data/ShortcutsWindow.ui:175
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
msgid "Toggle single mode"
|
||||
msgstr "Omschakelen naar enkele modus"
|
||||
|
||||
#: data/ShortcutsWindow.ui:182
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
msgid "Toggle consume mode"
|
||||
msgstr "Omschakelen naar verbruiksmodus"
|
||||
|
||||
#: data/ShortcutsWindow.ui:191
|
||||
msgid "Search, Album Dialog, Album List and Artist List"
|
||||
msgstr "Zoeken, Albumdialoog, Albumlijst en Artiestenlijst"
|
||||
|
||||
#: data/ShortcutsWindow.ui:195
|
||||
msgid "Enqueue selected item"
|
||||
msgstr "Geselecteerde item in wachtrij plaatsen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:202
|
||||
msgid "Append selected item"
|
||||
msgstr "Geselecteerde item toevoegen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:203 data/ShortcutsWindow.ui:233
|
||||
msgid "Middle-click"
|
||||
msgstr "Middelklik"
|
||||
|
||||
#: data/ShortcutsWindow.ui:210
|
||||
msgid "Play selected item immediately"
|
||||
msgstr "Geselecteerde item direct afspelen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:211
|
||||
msgid "Double-click"
|
||||
msgstr "Dubbelklik"
|
||||
|
||||
#: data/ShortcutsWindow.ui:218 data/ShortcutsWindow.ui:247
|
||||
msgid "Show additional information"
|
||||
msgstr "Toon extra informatie"
|
||||
|
||||
#: data/ShortcutsWindow.ui:219 data/ShortcutsWindow.ui:248
|
||||
msgid "Right-click"
|
||||
msgstr "Rechtsklik"
|
||||
|
||||
#: data/ShortcutsWindow.ui:228
|
||||
#: data/ShortcutsWindow.ui:177
|
||||
msgid "Playlist"
|
||||
msgstr "Afspeellijst"
|
||||
|
||||
#: data/ShortcutsWindow.ui:232
|
||||
msgid "Remove selected song"
|
||||
msgstr "Geselecteerde titel verwijderen"
|
||||
#: data/ShortcutsWindow.ui:181
|
||||
#, fuzzy
|
||||
msgid "Remove song"
|
||||
msgstr "Titel verwijderen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:188
|
||||
msgid "Clear playlist"
|
||||
msgstr "Afspeellijst legen"
|
||||
|
||||
#: data/ShortcutsWindow.ui:195 data/ShortcutsWindow.ui:249
|
||||
#, fuzzy
|
||||
msgid "Show information"
|
||||
msgstr "Toon informatie"
|
||||
|
||||
#: data/ShortcutsWindow.ui:231
|
||||
msgid "Search, Album Dialog and Album List"
|
||||
msgstr "Zoeken, Albumdialoog en Albumlijst"
|
||||
|
||||
#: data/ShortcutsWindow.ui:242
|
||||
#, fuzzy
|
||||
msgid "Play immediately"
|
||||
msgstr "Direct afspelen"
|
||||
|
||||
#~ msgid "Enqueue"
|
||||
#~ msgstr "In wachtrij plaatsen"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Append all titles after the currently playing track and clear the "
|
||||
#~ "playlist from all other songs"
|
||||
#~ msgstr ""
|
||||
#~ "Alle titels toevoegen na de nu spelende titel en alle overige titels uit "
|
||||
#~ "de afspeellijst verwijderen"
|
||||
|
||||
#~ msgid "Save"
|
||||
#~ msgstr "Opslaan"
|
||||
|
||||
#~ msgid "Delete"
|
||||
#~ msgstr "Verwijderen"
|
||||
|
||||
#~ msgid "Playlists"
|
||||
#~ msgstr "Afspeellijsten"
|
||||
|
||||
#~ msgid "Cycle through profiles"
|
||||
#~ msgstr "Profielen doorlopen"
|
||||
|
||||
#~ msgid "Cycle through profiles in reversed order"
|
||||
#~ msgstr "Profielen doorlopen in omgekeerde volgorde"
|
||||
|
||||
#~ msgid "Enqueue selected item"
|
||||
#~ msgstr "Geselecteerde item in wachtrij plaatsen"
|
||||
|
||||
#~ msgid "Append selected item"
|
||||
#~ msgstr "Geselecteerde item toevoegen"
|
||||
|
||||
#~ msgid "Middle-click"
|
||||
#~ msgstr "Middelklik"
|
||||
|
||||
#~ msgid "Double-click"
|
||||
#~ msgstr "Dubbelklik"
|
||||
|
||||
#~ msgid "Right-click"
|
||||
#~ msgstr "Rechtsklik"
|
||||
|
||||
#~ msgid "Main cover size"
|
||||
#~ msgstr "Grootte albumhoes"
|
||||
|
335
po/pl.po
335
po/pl.po
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mpdevil\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-19 20:03+0200\n"
|
||||
"PO-Revision-Date: 2022-09-19 20:04+0200\n"
|
||||
"POT-Creation-Date: 2022-10-22 11:02+0200\n"
|
||||
"PO-Revision-Date: 2022-10-22 11:14+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: pl\n"
|
||||
@@ -35,71 +35,71 @@ msgstr[0] "{channels} kanał"
|
||||
msgstr[1] "{channels} kanały"
|
||||
msgstr[2] "{channels} kanałów"
|
||||
|
||||
#: src/mpdevil.py:1015
|
||||
#: src/mpdevil.py:1004
|
||||
msgid "(restart required)"
|
||||
msgstr "(wymagane ponowne uruchomienie)"
|
||||
|
||||
#: src/mpdevil.py:1061
|
||||
#: src/mpdevil.py:1050
|
||||
msgid "Use Client-side decoration"
|
||||
msgstr "Używaj dekoracji po stronie klienta"
|
||||
|
||||
#: src/mpdevil.py:1062
|
||||
#: src/mpdevil.py:1051
|
||||
msgid "Show stop button"
|
||||
msgstr "Pokaż przycisk „stop”"
|
||||
|
||||
#: src/mpdevil.py:1063
|
||||
#: src/mpdevil.py:1052
|
||||
msgid "Show audio format"
|
||||
msgstr "Pokaż format audio"
|
||||
|
||||
#: src/mpdevil.py:1064
|
||||
#: src/mpdevil.py:1053
|
||||
msgid "Show lyrics button"
|
||||
msgstr "Pokaż przycisk tekstu utworu"
|
||||
|
||||
#: src/mpdevil.py:1065
|
||||
#: src/mpdevil.py:1054
|
||||
msgid "Place playlist at the side"
|
||||
msgstr "Umieść playlistę z boku"
|
||||
|
||||
#: src/mpdevil.py:1071
|
||||
#: src/mpdevil.py:1060
|
||||
msgid "Album view cover size"
|
||||
msgstr "Rozmiar okładek w przeglądarce"
|
||||
|
||||
#: src/mpdevil.py:1072
|
||||
#: src/mpdevil.py:1061
|
||||
msgid "Action bar icon size"
|
||||
msgstr "Rozmiar ikon na pasku akcji"
|
||||
|
||||
#: src/mpdevil.py:1082
|
||||
#: src/mpdevil.py:1071
|
||||
msgid "Support “MPRIS”"
|
||||
msgstr "Wspieraj „MPRIS”"
|
||||
|
||||
#: src/mpdevil.py:1083
|
||||
#: src/mpdevil.py:1072
|
||||
msgid "Sort albums by year"
|
||||
msgstr "Sortuj albumy według roku"
|
||||
|
||||
#: src/mpdevil.py:1084
|
||||
#: src/mpdevil.py:1073
|
||||
msgid "Send notification on title change"
|
||||
msgstr "Wysyłaj powiadomienie przy zmianie utworu"
|
||||
|
||||
#: src/mpdevil.py:1085
|
||||
#: src/mpdevil.py:1074
|
||||
msgid "Play selected albums and titles immediately"
|
||||
msgstr "Odtwarzaj wybrane albumy i utwory od razu"
|
||||
|
||||
#: src/mpdevil.py:1086
|
||||
#: src/mpdevil.py:1075
|
||||
msgid "Rewind via previous button"
|
||||
msgstr "Przewijaj w tył za pomocą przycisku „poprzedni”"
|
||||
|
||||
#: src/mpdevil.py:1087
|
||||
#: src/mpdevil.py:1076
|
||||
msgid "Stop playback on quit"
|
||||
msgstr "Zatrzymaj odtwarzanie przy wyjściu"
|
||||
|
||||
#: src/mpdevil.py:1114
|
||||
#: src/mpdevil.py:1103
|
||||
msgid "Choose directory"
|
||||
msgstr "Wybierz katalog"
|
||||
|
||||
#: src/mpdevil.py:1127
|
||||
#: src/mpdevil.py:1116
|
||||
msgid "Connect via Unix domain socket"
|
||||
msgstr "Połącz się poprzez Unix domain socket"
|
||||
|
||||
#: src/mpdevil.py:1146
|
||||
#: src/mpdevil.py:1135
|
||||
msgid ""
|
||||
"The first image in the same directory as the song file matching this regex "
|
||||
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
||||
@@ -109,154 +109,137 @@ msgstr ""
|
||||
"wyrażenia regularnego, zostanie wyświetlony. %AlbumArtist% oraz %Album% "
|
||||
"zostaną zastąpione odpowiednimi tagami utworu."
|
||||
|
||||
#: src/mpdevil.py:1151
|
||||
#: src/mpdevil.py:1140
|
||||
msgid "Socket:"
|
||||
msgstr "Socket:"
|
||||
|
||||
#: src/mpdevil.py:1153
|
||||
#: src/mpdevil.py:1142
|
||||
msgid "Host:"
|
||||
msgstr "Host:"
|
||||
|
||||
#: src/mpdevil.py:1155
|
||||
#: src/mpdevil.py:1144
|
||||
msgid "Password:"
|
||||
msgstr "Hasło:"
|
||||
|
||||
#: src/mpdevil.py:1156
|
||||
#: src/mpdevil.py:1145
|
||||
msgid "Music lib:"
|
||||
msgstr "Biblioteka muzyczna:"
|
||||
|
||||
#: src/mpdevil.py:1158
|
||||
#: src/mpdevil.py:1147
|
||||
msgid "Cover regex:"
|
||||
msgstr "Wyrażenie regularne okładki:"
|
||||
|
||||
#: src/mpdevil.py:1182 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1171 src/mpdevil.py:3280 data/ShortcutsWindow.ui:208
|
||||
msgid "Profile 1"
|
||||
msgstr "Profil 1"
|
||||
|
||||
#: src/mpdevil.py:1183 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1172 src/mpdevil.py:3280 data/ShortcutsWindow.ui:215
|
||||
msgid "Profile 2"
|
||||
msgstr "Profil 2"
|
||||
|
||||
#: src/mpdevil.py:1184 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1173 src/mpdevil.py:3280 data/ShortcutsWindow.ui:222
|
||||
msgid "Profile 3"
|
||||
msgstr "Profil 3"
|
||||
|
||||
#. connect button
|
||||
#: src/mpdevil.py:1188 src/mpdevil.py:3467
|
||||
#: src/mpdevil.py:1177 src/mpdevil.py:3167
|
||||
msgid "Connect"
|
||||
msgstr "Połącz się"
|
||||
|
||||
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
|
||||
#: src/mpdevil.py:3569
|
||||
#: src/mpdevil.py:1200 src/mpdevil.py:1202 src/mpdevil.py:3168
|
||||
#: src/mpdevil.py:3272
|
||||
msgid "Preferences"
|
||||
msgstr "Preferencje"
|
||||
|
||||
#: src/mpdevil.py:1225 src/mpdevil.py:1235
|
||||
#: src/mpdevil.py:1214 src/mpdevil.py:1224
|
||||
msgid "View"
|
||||
msgstr "Widok"
|
||||
|
||||
#: src/mpdevil.py:1226 src/mpdevil.py:1236
|
||||
#: src/mpdevil.py:1215 src/mpdevil.py:1225
|
||||
msgid "Behavior"
|
||||
msgstr "Zachowanie"
|
||||
|
||||
#: src/mpdevil.py:1227 src/mpdevil.py:1237
|
||||
#: src/mpdevil.py:1216 src/mpdevil.py:1226 data/ShortcutsWindow.ui:204
|
||||
msgid "Profiles"
|
||||
msgstr "Profile"
|
||||
|
||||
#: src/mpdevil.py:1254
|
||||
#: src/mpdevil.py:1243
|
||||
msgid "Stats"
|
||||
msgstr "Statystyki"
|
||||
|
||||
#: src/mpdevil.py:1263
|
||||
#: src/mpdevil.py:1252
|
||||
msgid "<b>Protocol:</b>"
|
||||
msgstr "<b>Protokół:</b>"
|
||||
|
||||
#: src/mpdevil.py:1264
|
||||
#: src/mpdevil.py:1253
|
||||
msgid "<b>Uptime:</b>"
|
||||
msgstr "<b>Czas działania:</b>"
|
||||
|
||||
#: src/mpdevil.py:1265
|
||||
#: src/mpdevil.py:1254
|
||||
msgid "<b>Playtime:</b>"
|
||||
msgstr "<b>Czas odtwarzania:</b>"
|
||||
|
||||
#: src/mpdevil.py:1266
|
||||
#: src/mpdevil.py:1255
|
||||
msgid "<b>Artists:</b>"
|
||||
msgstr "<b>Artyści:</b>"
|
||||
|
||||
#: src/mpdevil.py:1267
|
||||
#: src/mpdevil.py:1256
|
||||
msgid "<b>Albums:</b>"
|
||||
msgstr "<b>Albumy:</b>"
|
||||
|
||||
#: src/mpdevil.py:1268
|
||||
#: src/mpdevil.py:1257
|
||||
msgid "<b>Songs:</b>"
|
||||
msgstr "<b>Utwory:</b>"
|
||||
|
||||
#: src/mpdevil.py:1269
|
||||
#: src/mpdevil.py:1258
|
||||
msgid "<b>Total Playtime:</b>"
|
||||
msgstr "<b>Całkowity czas odtwarzania:</b>"
|
||||
|
||||
#: src/mpdevil.py:1270
|
||||
#: src/mpdevil.py:1259
|
||||
msgid "<b>Database Update:</b>"
|
||||
msgstr "<b>Aktualizacja bazy danych:</b>"
|
||||
|
||||
#: src/mpdevil.py:1360
|
||||
msgid "Add to playlist"
|
||||
msgstr "Dodaj do playlisty"
|
||||
|
||||
#: src/mpdevil.py:1363
|
||||
#: src/mpdevil.py:1319
|
||||
msgid "Show in file manager"
|
||||
msgstr "Pokaż w menedżerze plików"
|
||||
|
||||
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
|
||||
#: src/mpdevil.py:1323 data/ShortcutsWindow.ui:235
|
||||
msgid "Append"
|
||||
msgstr "Dodaj"
|
||||
|
||||
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
|
||||
#: src/mpdevil.py:3018 src/mpdevil.py:3051
|
||||
#: src/mpdevil.py:1323 src/mpdevil.py:2718 src/mpdevil.py:2751
|
||||
msgid "Play"
|
||||
msgstr "Odtwórz"
|
||||
|
||||
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
|
||||
msgid "Enqueue"
|
||||
msgstr "Dodaj do kolejki"
|
||||
|
||||
#: src/mpdevil.py:1386
|
||||
#: src/mpdevil.py:1339
|
||||
msgid "MPD-Tag"
|
||||
msgstr "Tag MPD"
|
||||
|
||||
#: src/mpdevil.py:1389
|
||||
#: src/mpdevil.py:1342
|
||||
msgid "Value"
|
||||
msgstr "Wartość"
|
||||
|
||||
#: src/mpdevil.py:1460 src/mpdevil.py:2522
|
||||
#: src/mpdevil.py:1412 src/mpdevil.py:2239
|
||||
msgid "No"
|
||||
msgstr "Nie"
|
||||
|
||||
#: src/mpdevil.py:1461 src/mpdevil.py:2523
|
||||
#: src/mpdevil.py:1413 src/mpdevil.py:2240
|
||||
msgid "Title"
|
||||
msgstr "Tytuł"
|
||||
|
||||
#: src/mpdevil.py:1462 src/mpdevil.py:2524
|
||||
#: src/mpdevil.py:1414 src/mpdevil.py:2241
|
||||
msgid "Length"
|
||||
msgstr "Długość"
|
||||
|
||||
#: src/mpdevil.py:1475
|
||||
#: src/mpdevil.py:1427
|
||||
msgid "Add all titles to playlist"
|
||||
msgstr "Dodaj wszystkie utwory do playlisty"
|
||||
|
||||
#: src/mpdevil.py:1476
|
||||
#: src/mpdevil.py:1428
|
||||
msgid "Directly play all titles"
|
||||
msgstr "Bezpośrednio odtwórz wszystkie utwory"
|
||||
|
||||
#: src/mpdevil.py:1477
|
||||
msgid ""
|
||||
"Append all titles after the currently playing track and clear the playlist "
|
||||
"from all other songs"
|
||||
msgstr ""
|
||||
"Dodaj wszystkie utwory po aktualnie odtwarzanym i usuń wszystkie inne z "
|
||||
"playlisty"
|
||||
|
||||
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
|
||||
#: src/mpdevil.py:1521
|
||||
#, python-brace-format
|
||||
msgid "{number} song ({duration})"
|
||||
msgid_plural "{number} songs ({duration})"
|
||||
@@ -264,7 +247,7 @@ msgstr[0] "{number} utwór ({duration})"
|
||||
msgstr[1] "{number} utwory ({duration})"
|
||||
msgstr[2] "{number} utworów ({duration})"
|
||||
|
||||
#: src/mpdevil.py:1669
|
||||
#: src/mpdevil.py:1584
|
||||
#, python-brace-format
|
||||
msgid "{hits} hit"
|
||||
msgid_plural "{hits} hits"
|
||||
@@ -272,145 +255,129 @@ msgstr[0] "{hits} trafienie"
|
||||
msgstr[1] "{hits} trafienia"
|
||||
msgstr[2] "{hits} trafień"
|
||||
|
||||
#: src/mpdevil.py:1754
|
||||
#: src/mpdevil.py:1669
|
||||
msgid "all tags"
|
||||
msgstr "wszystkie tagi"
|
||||
|
||||
#: src/mpdevil.py:1884
|
||||
#: src/mpdevil.py:1801
|
||||
msgid "all genres"
|
||||
msgstr "wszystkie gatunki"
|
||||
|
||||
#: src/mpdevil.py:1907
|
||||
#: src/mpdevil.py:1824
|
||||
msgid "all artists"
|
||||
msgstr "wszyscy artyści"
|
||||
|
||||
#: src/mpdevil.py:2323
|
||||
msgid "Save"
|
||||
msgstr "Zapisz"
|
||||
|
||||
#: src/mpdevil.py:2327
|
||||
msgid "Delete"
|
||||
msgstr "Usuń"
|
||||
|
||||
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
|
||||
msgid "Clear playlist"
|
||||
msgstr "Wyczyść playlistę"
|
||||
|
||||
#: src/mpdevil.py:2708
|
||||
#: src/mpdevil.py:2411
|
||||
msgid "Scroll to current song"
|
||||
msgstr "Przewiń do aktualnego utworu"
|
||||
|
||||
#: src/mpdevil.py:2718
|
||||
msgid "Playlists"
|
||||
msgstr "Playlisty"
|
||||
|
||||
#: src/mpdevil.py:2828
|
||||
#: src/mpdevil.py:2528
|
||||
msgid "searching…"
|
||||
msgstr "wyszukiwanie…"
|
||||
|
||||
#: src/mpdevil.py:2833
|
||||
#: src/mpdevil.py:2533
|
||||
msgid "connection error"
|
||||
msgstr "błąd połączenia"
|
||||
|
||||
#: src/mpdevil.py:2835
|
||||
#: src/mpdevil.py:2535
|
||||
msgid "lyrics not found"
|
||||
msgstr "nie znaleziono tekstu utworu"
|
||||
|
||||
#: src/mpdevil.py:2961
|
||||
#: src/mpdevil.py:2662
|
||||
msgid "Lyrics"
|
||||
msgstr "Tekst utworu"
|
||||
|
||||
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
|
||||
#: src/mpdevil.py:2720 data/ShortcutsWindow.ui:105
|
||||
msgid "Stop"
|
||||
msgstr "Stop"
|
||||
|
||||
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
|
||||
#: src/mpdevil.py:2724 data/ShortcutsWindow.ui:126
|
||||
msgid "Previous title"
|
||||
msgstr "Poprzedni utwór"
|
||||
|
||||
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
|
||||
#: src/mpdevil.py:2727 data/ShortcutsWindow.ui:119
|
||||
msgid "Next title"
|
||||
msgstr "Następny utwór"
|
||||
|
||||
#: src/mpdevil.py:3048
|
||||
#: src/mpdevil.py:2748
|
||||
msgid "Pause"
|
||||
msgstr "Pauza"
|
||||
|
||||
#: src/mpdevil.py:3220
|
||||
#: src/mpdevil.py:2920
|
||||
msgid "Repeat mode"
|
||||
msgstr "Tryb powtarzania"
|
||||
|
||||
#: src/mpdevil.py:3221
|
||||
#: src/mpdevil.py:2921
|
||||
msgid "Random mode"
|
||||
msgstr "Tryb losowy"
|
||||
|
||||
#: src/mpdevil.py:3222
|
||||
#: src/mpdevil.py:2922
|
||||
msgid "Single mode"
|
||||
msgstr "Tryb pojedynczy"
|
||||
|
||||
#: src/mpdevil.py:3223
|
||||
#: src/mpdevil.py:2923
|
||||
msgid "Consume mode"
|
||||
msgstr "Tryb wyczerpywania"
|
||||
|
||||
#: src/mpdevil.py:3437
|
||||
#: src/mpdevil.py:3137
|
||||
msgid "Updating Database…"
|
||||
msgstr "Aktualizowanie bazy danych…"
|
||||
|
||||
#: src/mpdevil.py:3489
|
||||
#: src/mpdevil.py:3189
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{socket}” failed"
|
||||
msgstr "Nie udało połączyć się do „{socket}”"
|
||||
|
||||
#: src/mpdevil.py:3491
|
||||
#: src/mpdevil.py:3191
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{host}:{port}” failed"
|
||||
msgstr "Nie udało połączyć się do „{host}:{port}”"
|
||||
|
||||
#: src/mpdevil.py:3553
|
||||
#: src/mpdevil.py:3256
|
||||
msgid "Search"
|
||||
msgstr "Szukaj"
|
||||
|
||||
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
|
||||
#: src/mpdevil.py:3259 data/ShortcutsWindow.ui:85
|
||||
msgid "Back to current album"
|
||||
msgstr "Wróć do aktualnego albumu"
|
||||
|
||||
#: src/mpdevil.py:3570
|
||||
#: src/mpdevil.py:3273
|
||||
msgid "Keyboard Shortcuts"
|
||||
msgstr "Skróty klawiszowe"
|
||||
|
||||
#: src/mpdevil.py:3571
|
||||
#: src/mpdevil.py:3274
|
||||
msgid "Help"
|
||||
msgstr "Pomoc"
|
||||
|
||||
#: src/mpdevil.py:3572
|
||||
#: src/mpdevil.py:3275
|
||||
msgid "About mpdevil"
|
||||
msgstr "O mpdevil"
|
||||
|
||||
#: src/mpdevil.py:3574
|
||||
#: src/mpdevil.py:3277
|
||||
msgid "Update Database"
|
||||
msgstr "Aktualizuj bazę danych"
|
||||
|
||||
#: src/mpdevil.py:3575
|
||||
#: src/mpdevil.py:3278
|
||||
msgid "Server Stats"
|
||||
msgstr "Statystyki serwera"
|
||||
|
||||
#: src/mpdevil.py:3582
|
||||
#: src/mpdevil.py:3285
|
||||
msgid "Mini Player"
|
||||
msgstr "Mini odtwarzacz"
|
||||
|
||||
#: src/mpdevil.py:3583
|
||||
#: src/mpdevil.py:3286
|
||||
msgid "Genre Filter"
|
||||
msgstr "Filtr gatunku"
|
||||
|
||||
#: src/mpdevil.py:3593
|
||||
#: src/mpdevil.py:3296
|
||||
msgid "Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
#: src/mpdevil.py:3644 src/mpdevil.py:3646
|
||||
#: src/mpdevil.py:3483 src/mpdevil.py:3485
|
||||
msgid "connecting…"
|
||||
msgstr "łączenie…"
|
||||
|
||||
#: src/mpdevil.py:3825
|
||||
#: src/mpdevil.py:3523
|
||||
msgid "Debug mode"
|
||||
msgstr "Tryb debugowania"
|
||||
|
||||
@@ -455,105 +422,127 @@ msgid "Window"
|
||||
msgstr "Okno"
|
||||
|
||||
#: data/ShortcutsWindow.ui:57
|
||||
msgid "Cycle through profiles"
|
||||
msgstr "Przełącz między profilami"
|
||||
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Cycle through profiles in reversed order"
|
||||
msgstr "Przełącz między profilami w odwrotnej kolejności"
|
||||
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle mini player"
|
||||
msgstr "Włącz/wyłącz mini odtwarzacz"
|
||||
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Toggle genre filter"
|
||||
msgstr "Włącz/wyłącz filtr gatunku"
|
||||
|
||||
#: data/ShortcutsWindow.ui:85
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle lyrics"
|
||||
msgstr "Włącz/wyłącz tekst utworu"
|
||||
|
||||
#: data/ShortcutsWindow.ui:92
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
msgid "Toggle search"
|
||||
msgstr "Włącz/wyłącz wyszukiwanie"
|
||||
|
||||
#: data/ShortcutsWindow.ui:108
|
||||
#: data/ShortcutsWindow.ui:94
|
||||
msgid "Playback"
|
||||
msgstr "Odtwarzanie"
|
||||
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
#: data/ShortcutsWindow.ui:98
|
||||
msgid "Play/Pause"
|
||||
msgstr "Odtwórz/Pauza"
|
||||
|
||||
#: data/ShortcutsWindow.ui:126
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
msgid "Stop after current title"
|
||||
msgstr "Stop po tym utworze"
|
||||
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
#: data/ShortcutsWindow.ui:133
|
||||
msgid "Seek forward"
|
||||
msgstr "Przewiń do przodu"
|
||||
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
#: data/ShortcutsWindow.ui:140
|
||||
msgid "Seek backward"
|
||||
msgstr "Przewiń do tyłu"
|
||||
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
msgid "Toggle repeat mode"
|
||||
msgstr "Włącz/wyłącz tryb powtarzania"
|
||||
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
msgid "Toggle random mode"
|
||||
msgstr "Włącz/wyłącz tryb losowy"
|
||||
|
||||
#: data/ShortcutsWindow.ui:175
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
msgid "Toggle single mode"
|
||||
msgstr "Włącz/wyłącz tryb pojedynczy"
|
||||
|
||||
#: data/ShortcutsWindow.ui:182
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
msgid "Toggle consume mode"
|
||||
msgstr "Włącz/wyłącz tryb wyczerpywania"
|
||||
|
||||
#: data/ShortcutsWindow.ui:191
|
||||
msgid "Search, Album Dialog, Album List and Artist List"
|
||||
msgstr "Wyszukiwanie, Okno albumu, Lista albumów i Lista artystów"
|
||||
|
||||
#: data/ShortcutsWindow.ui:195
|
||||
msgid "Enqueue selected item"
|
||||
msgstr "Dodaj wybraną pozycję do kolejki"
|
||||
|
||||
#: data/ShortcutsWindow.ui:202
|
||||
msgid "Append selected item"
|
||||
msgstr "Dodaj wybraną pozycję"
|
||||
|
||||
#: data/ShortcutsWindow.ui:203 data/ShortcutsWindow.ui:233
|
||||
msgid "Middle-click"
|
||||
msgstr "Kółko myszy"
|
||||
|
||||
#: data/ShortcutsWindow.ui:210
|
||||
msgid "Play selected item immediately"
|
||||
msgstr "Odtwórz wybraną pozycję natychmiast"
|
||||
|
||||
#: data/ShortcutsWindow.ui:211
|
||||
msgid "Double-click"
|
||||
msgstr "Podwójne kliknięcie"
|
||||
|
||||
#: data/ShortcutsWindow.ui:218 data/ShortcutsWindow.ui:247
|
||||
msgid "Show additional information"
|
||||
msgstr "Wyświetl dodatkowe informacje"
|
||||
|
||||
#: data/ShortcutsWindow.ui:219 data/ShortcutsWindow.ui:248
|
||||
msgid "Right-click"
|
||||
msgstr "Prawy przycisk myszy"
|
||||
|
||||
#: data/ShortcutsWindow.ui:228
|
||||
#: data/ShortcutsWindow.ui:177
|
||||
msgid "Playlist"
|
||||
msgstr "Playlista"
|
||||
|
||||
#: data/ShortcutsWindow.ui:232
|
||||
msgid "Remove selected song"
|
||||
#: data/ShortcutsWindow.ui:181
|
||||
#, fuzzy
|
||||
msgid "Remove song"
|
||||
msgstr "Usuń wybrany utwór"
|
||||
|
||||
#: data/ShortcutsWindow.ui:188
|
||||
msgid "Clear playlist"
|
||||
msgstr "Wyczyść playlistę"
|
||||
|
||||
#: data/ShortcutsWindow.ui:195 data/ShortcutsWindow.ui:249
|
||||
#, fuzzy
|
||||
msgid "Show information"
|
||||
msgstr "Wyświetl dodatkowe informacje"
|
||||
|
||||
#: data/ShortcutsWindow.ui:231
|
||||
msgid "Search, Album Dialog and Album List"
|
||||
msgstr "Wyszukiwanie, Okno albumu i Lista albumów"
|
||||
|
||||
#: data/ShortcutsWindow.ui:242
|
||||
#, fuzzy
|
||||
msgid "Play immediately"
|
||||
msgstr "Odtwórz wybraną pozycję natychmiast"
|
||||
|
||||
#~ msgid "Add to playlist"
|
||||
#~ msgstr "Dodaj do playlisty"
|
||||
|
||||
#~ msgid "Enqueue"
|
||||
#~ msgstr "Dodaj do kolejki"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Append all titles after the currently playing track and clear the "
|
||||
#~ "playlist from all other songs"
|
||||
#~ msgstr ""
|
||||
#~ "Dodaj wszystkie utwory po aktualnie odtwarzanym i usuń wszystkie inne z "
|
||||
#~ "playlisty"
|
||||
|
||||
#~ msgid "Save"
|
||||
#~ msgstr "Zapisz"
|
||||
|
||||
#~ msgid "Delete"
|
||||
#~ msgstr "Usuń"
|
||||
|
||||
#~ msgid "Playlists"
|
||||
#~ msgstr "Playlisty"
|
||||
|
||||
#~ msgid "Cycle through profiles"
|
||||
#~ msgstr "Przełącz między profilami"
|
||||
|
||||
#~ msgid "Cycle through profiles in reversed order"
|
||||
#~ msgstr "Przełącz między profilami w odwrotnej kolejności"
|
||||
|
||||
#~ msgid "Enqueue selected item"
|
||||
#~ msgstr "Dodaj wybraną pozycję do kolejki"
|
||||
|
||||
#~ msgid "Append selected item"
|
||||
#~ msgstr "Dodaj wybraną pozycję"
|
||||
|
||||
#~ msgid "Middle-click"
|
||||
#~ msgstr "Kółko myszy"
|
||||
|
||||
#~ msgid "Double-click"
|
||||
#~ msgstr "Podwójne kliknięcie"
|
||||
|
||||
#~ msgid "Right-click"
|
||||
#~ msgstr "Prawy przycisk myszy"
|
||||
|
||||
#~ msgid "Main cover size"
|
||||
#~ msgstr "Rozmiar głównej okładki"
|
||||
|
||||
|
332
po/tr.po
332
po/tr.po
@@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mpdevil\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-19 20:03+0200\n"
|
||||
"PO-Revision-Date: 2022-09-19 20:05+0200\n"
|
||||
"POT-Creation-Date: 2022-10-22 11:02+0200\n"
|
||||
"PO-Revision-Date: 2022-10-22 11:12+0200\n"
|
||||
"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
|
||||
"Language-Team: Turkish <tr>\n"
|
||||
"Language: tr\n"
|
||||
@@ -31,71 +31,71 @@ msgid "{channels} channel"
|
||||
msgid_plural "{channels} channels"
|
||||
msgstr[0] "{channels} kanal"
|
||||
|
||||
#: src/mpdevil.py:1015
|
||||
#: src/mpdevil.py:1004
|
||||
msgid "(restart required)"
|
||||
msgstr "(yeniden başlatma gerekli)"
|
||||
|
||||
#: src/mpdevil.py:1061
|
||||
#: src/mpdevil.py:1050
|
||||
msgid "Use Client-side decoration"
|
||||
msgstr "İstemci tarafı süslemelerini kullan"
|
||||
|
||||
#: src/mpdevil.py:1062
|
||||
#: src/mpdevil.py:1051
|
||||
msgid "Show stop button"
|
||||
msgstr "Durdur düğmesini göster"
|
||||
|
||||
#: src/mpdevil.py:1063
|
||||
#: src/mpdevil.py:1052
|
||||
msgid "Show audio format"
|
||||
msgstr "Ses biçimini göster"
|
||||
|
||||
#: src/mpdevil.py:1064
|
||||
#: src/mpdevil.py:1053
|
||||
msgid "Show lyrics button"
|
||||
msgstr "Şarkı sözleri düğmesini göster"
|
||||
|
||||
#: src/mpdevil.py:1065
|
||||
#: src/mpdevil.py:1054
|
||||
msgid "Place playlist at the side"
|
||||
msgstr "Oynatma listesini yan tarafa yerleştir"
|
||||
|
||||
#: src/mpdevil.py:1071
|
||||
#: src/mpdevil.py:1060
|
||||
msgid "Album view cover size"
|
||||
msgstr "Albüm görünümü kapak resmi boyutu"
|
||||
|
||||
#: src/mpdevil.py:1072
|
||||
#: src/mpdevil.py:1061
|
||||
msgid "Action bar icon size"
|
||||
msgstr "Eylem çubuğu simge boyutu"
|
||||
|
||||
#: src/mpdevil.py:1082
|
||||
#: src/mpdevil.py:1071
|
||||
msgid "Support “MPRIS”"
|
||||
msgstr "“MPRIS” destekle"
|
||||
|
||||
#: src/mpdevil.py:1083
|
||||
#: src/mpdevil.py:1072
|
||||
msgid "Sort albums by year"
|
||||
msgstr "Albümleri yıla göre sırala"
|
||||
|
||||
#: src/mpdevil.py:1084
|
||||
#: src/mpdevil.py:1073
|
||||
msgid "Send notification on title change"
|
||||
msgstr "Şarkı değişikliğinde bildirim gönder"
|
||||
|
||||
#: src/mpdevil.py:1085
|
||||
#: src/mpdevil.py:1074
|
||||
msgid "Play selected albums and titles immediately"
|
||||
msgstr "Seçilen albümleri ve şarkıları hemen oynat"
|
||||
|
||||
#: src/mpdevil.py:1086
|
||||
#: src/mpdevil.py:1075
|
||||
msgid "Rewind via previous button"
|
||||
msgstr "Önceki düğmesi ile geri sar"
|
||||
|
||||
#: src/mpdevil.py:1087
|
||||
#: src/mpdevil.py:1076
|
||||
msgid "Stop playback on quit"
|
||||
msgstr "Çıkışta oynatmayı durdur"
|
||||
|
||||
#: src/mpdevil.py:1114
|
||||
#: src/mpdevil.py:1103
|
||||
msgid "Choose directory"
|
||||
msgstr "Dizin seç"
|
||||
|
||||
#: src/mpdevil.py:1127
|
||||
#: src/mpdevil.py:1116
|
||||
msgid "Connect via Unix domain socket"
|
||||
msgstr "Unix etki alanı soketi ile bağlan"
|
||||
|
||||
#: src/mpdevil.py:1146
|
||||
#: src/mpdevil.py:1135
|
||||
msgid ""
|
||||
"The first image in the same directory as the song file matching this regex "
|
||||
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
||||
@@ -105,304 +105,271 @@ msgstr ""
|
||||
"görüntülenecektir. %AlbumArtist% ve %Album% şarkının ilgili etiketleri ile "
|
||||
"değiştirilecektir."
|
||||
|
||||
#: src/mpdevil.py:1151
|
||||
#: src/mpdevil.py:1140
|
||||
msgid "Socket:"
|
||||
msgstr "Soket:"
|
||||
|
||||
#: src/mpdevil.py:1153
|
||||
#: src/mpdevil.py:1142
|
||||
msgid "Host:"
|
||||
msgstr "Ana makine:"
|
||||
|
||||
#: src/mpdevil.py:1155
|
||||
#: src/mpdevil.py:1144
|
||||
msgid "Password:"
|
||||
msgstr "Parola:"
|
||||
|
||||
#: src/mpdevil.py:1156
|
||||
#: src/mpdevil.py:1145
|
||||
msgid "Music lib:"
|
||||
msgstr "Müzik kütüphanesi:"
|
||||
|
||||
#: src/mpdevil.py:1158
|
||||
#: src/mpdevil.py:1147
|
||||
msgid "Cover regex:"
|
||||
msgstr "Kapak resmi düzenli ifadesi:"
|
||||
|
||||
#: src/mpdevil.py:1182 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1171 src/mpdevil.py:3280 data/ShortcutsWindow.ui:208
|
||||
msgid "Profile 1"
|
||||
msgstr "Profil 1"
|
||||
|
||||
#: src/mpdevil.py:1183 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1172 src/mpdevil.py:3280 data/ShortcutsWindow.ui:215
|
||||
msgid "Profile 2"
|
||||
msgstr "Profil 2"
|
||||
|
||||
#: src/mpdevil.py:1184 src/mpdevil.py:3577
|
||||
#: src/mpdevil.py:1173 src/mpdevil.py:3280 data/ShortcutsWindow.ui:222
|
||||
msgid "Profile 3"
|
||||
msgstr "Profil 3"
|
||||
|
||||
#. connect button
|
||||
#: src/mpdevil.py:1188 src/mpdevil.py:3467
|
||||
#: src/mpdevil.py:1177 src/mpdevil.py:3167
|
||||
msgid "Connect"
|
||||
msgstr "Bağlan"
|
||||
|
||||
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
|
||||
#: src/mpdevil.py:3569
|
||||
#: src/mpdevil.py:1200 src/mpdevil.py:1202 src/mpdevil.py:3168
|
||||
#: src/mpdevil.py:3272
|
||||
msgid "Preferences"
|
||||
msgstr "Tercihler"
|
||||
|
||||
#: src/mpdevil.py:1225 src/mpdevil.py:1235
|
||||
#: src/mpdevil.py:1214 src/mpdevil.py:1224
|
||||
msgid "View"
|
||||
msgstr "Gürünüm"
|
||||
|
||||
#: src/mpdevil.py:1226 src/mpdevil.py:1236
|
||||
#: src/mpdevil.py:1215 src/mpdevil.py:1225
|
||||
msgid "Behavior"
|
||||
msgstr "Davranış"
|
||||
|
||||
#: src/mpdevil.py:1227 src/mpdevil.py:1237
|
||||
#: src/mpdevil.py:1216 src/mpdevil.py:1226 data/ShortcutsWindow.ui:204
|
||||
msgid "Profiles"
|
||||
msgstr "Profiller"
|
||||
|
||||
#: src/mpdevil.py:1254
|
||||
#: src/mpdevil.py:1243
|
||||
msgid "Stats"
|
||||
msgstr "İstatistikler"
|
||||
|
||||
#: src/mpdevil.py:1263
|
||||
#: src/mpdevil.py:1252
|
||||
msgid "<b>Protocol:</b>"
|
||||
msgstr "<b>Protokol:</b>"
|
||||
|
||||
#: src/mpdevil.py:1264
|
||||
#: src/mpdevil.py:1253
|
||||
msgid "<b>Uptime:</b>"
|
||||
msgstr "<b>Çalışma Süresi:</b>"
|
||||
|
||||
#: src/mpdevil.py:1265
|
||||
#: src/mpdevil.py:1254
|
||||
msgid "<b>Playtime:</b>"
|
||||
msgstr "<b>Oynatma Süresi:</b>"
|
||||
|
||||
#: src/mpdevil.py:1266
|
||||
#: src/mpdevil.py:1255
|
||||
msgid "<b>Artists:</b>"
|
||||
msgstr "<b>Sanatçılar:</b>"
|
||||
|
||||
#: src/mpdevil.py:1267
|
||||
#: src/mpdevil.py:1256
|
||||
msgid "<b>Albums:</b>"
|
||||
msgstr "<b>Albümler:</b>"
|
||||
|
||||
#: src/mpdevil.py:1268
|
||||
#: src/mpdevil.py:1257
|
||||
msgid "<b>Songs:</b>"
|
||||
msgstr "<b>Şarkılar:</b>"
|
||||
|
||||
#: src/mpdevil.py:1269
|
||||
#: src/mpdevil.py:1258
|
||||
msgid "<b>Total Playtime:</b>"
|
||||
msgstr "<b>Toplam Oynatma Süresi:</b>"
|
||||
|
||||
#: src/mpdevil.py:1270
|
||||
#: src/mpdevil.py:1259
|
||||
msgid "<b>Database Update:</b>"
|
||||
msgstr "<b>Veri Tabanı Güncellemesi:</b>"
|
||||
|
||||
#: src/mpdevil.py:1360
|
||||
msgid "Add to playlist"
|
||||
msgstr ""
|
||||
|
||||
#: src/mpdevil.py:1363
|
||||
#: src/mpdevil.py:1319
|
||||
msgid "Show in file manager"
|
||||
msgstr "Dosya yöneticisinde göster"
|
||||
|
||||
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
|
||||
#: src/mpdevil.py:1323 data/ShortcutsWindow.ui:235
|
||||
msgid "Append"
|
||||
msgstr "Sona ekle"
|
||||
|
||||
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
|
||||
#: src/mpdevil.py:3018 src/mpdevil.py:3051
|
||||
#: src/mpdevil.py:1323 src/mpdevil.py:2718 src/mpdevil.py:2751
|
||||
msgid "Play"
|
||||
msgstr "Oynat"
|
||||
|
||||
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
|
||||
msgid "Enqueue"
|
||||
msgstr "Sıraya al"
|
||||
|
||||
#: src/mpdevil.py:1386
|
||||
#: src/mpdevil.py:1339
|
||||
msgid "MPD-Tag"
|
||||
msgstr "MPD-Etiketi"
|
||||
|
||||
#: src/mpdevil.py:1389
|
||||
#: src/mpdevil.py:1342
|
||||
msgid "Value"
|
||||
msgstr "Değer"
|
||||
|
||||
#: src/mpdevil.py:1460 src/mpdevil.py:2522
|
||||
#: src/mpdevil.py:1412 src/mpdevil.py:2239
|
||||
msgid "No"
|
||||
msgstr "Sayı"
|
||||
|
||||
#: src/mpdevil.py:1461 src/mpdevil.py:2523
|
||||
#: src/mpdevil.py:1413 src/mpdevil.py:2240
|
||||
msgid "Title"
|
||||
msgstr "Şarkı"
|
||||
|
||||
#: src/mpdevil.py:1462 src/mpdevil.py:2524
|
||||
#: src/mpdevil.py:1414 src/mpdevil.py:2241
|
||||
msgid "Length"
|
||||
msgstr "Uzunluk"
|
||||
|
||||
#: src/mpdevil.py:1475
|
||||
#: src/mpdevil.py:1427
|
||||
msgid "Add all titles to playlist"
|
||||
msgstr "Tüm şarkıları oynatma listesine ekle"
|
||||
|
||||
#: src/mpdevil.py:1476
|
||||
#: src/mpdevil.py:1428
|
||||
msgid "Directly play all titles"
|
||||
msgstr "Tüm şarkıları doğrudan oynat"
|
||||
|
||||
#: src/mpdevil.py:1477
|
||||
msgid ""
|
||||
"Append all titles after the currently playing track and clear the playlist "
|
||||
"from all other songs"
|
||||
msgstr ""
|
||||
"Tüm şarkıları oynatılan parçadan sonra ekle ve diğer şarkıları oynatma "
|
||||
"listesinden kaldır"
|
||||
|
||||
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
|
||||
#: src/mpdevil.py:1521
|
||||
#, python-brace-format
|
||||
msgid "{number} song ({duration})"
|
||||
msgid_plural "{number} songs ({duration})"
|
||||
msgstr[0] "{number} şarkı ({duration})"
|
||||
|
||||
#: src/mpdevil.py:1669
|
||||
#: src/mpdevil.py:1584
|
||||
#, python-brace-format
|
||||
msgid "{hits} hit"
|
||||
msgid_plural "{hits} hits"
|
||||
msgstr[0] "{hits} oynatma"
|
||||
|
||||
#: src/mpdevil.py:1754
|
||||
#: src/mpdevil.py:1669
|
||||
msgid "all tags"
|
||||
msgstr "tüm etiketler"
|
||||
|
||||
#: src/mpdevil.py:1884
|
||||
#: src/mpdevil.py:1801
|
||||
msgid "all genres"
|
||||
msgstr "tüm türler"
|
||||
|
||||
#: src/mpdevil.py:1907
|
||||
#: src/mpdevil.py:1824
|
||||
msgid "all artists"
|
||||
msgstr "tüm sanatçılar"
|
||||
|
||||
#: src/mpdevil.py:2323
|
||||
msgid "Save"
|
||||
msgstr "Kaydet"
|
||||
|
||||
#: src/mpdevil.py:2327
|
||||
msgid "Delete"
|
||||
msgstr "Sil"
|
||||
|
||||
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
|
||||
msgid "Clear playlist"
|
||||
msgstr "Oynatma listesini temizle"
|
||||
|
||||
#: src/mpdevil.py:2708
|
||||
#: src/mpdevil.py:2411
|
||||
msgid "Scroll to current song"
|
||||
msgstr "Geçerli şarkıya kaydır"
|
||||
|
||||
#: src/mpdevil.py:2718
|
||||
msgid "Playlists"
|
||||
msgstr "Oynatma listeleri"
|
||||
|
||||
#: src/mpdevil.py:2828
|
||||
#: src/mpdevil.py:2528
|
||||
msgid "searching…"
|
||||
msgstr "aranıyor…"
|
||||
|
||||
#: src/mpdevil.py:2833
|
||||
#: src/mpdevil.py:2533
|
||||
msgid "connection error"
|
||||
msgstr "bağlantı hatası"
|
||||
|
||||
#: src/mpdevil.py:2835
|
||||
#: src/mpdevil.py:2535
|
||||
msgid "lyrics not found"
|
||||
msgstr "şarkı sözleri bulunamadı"
|
||||
|
||||
#: src/mpdevil.py:2961
|
||||
#: src/mpdevil.py:2662
|
||||
msgid "Lyrics"
|
||||
msgstr "Şarkı sözleri"
|
||||
|
||||
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
|
||||
#: src/mpdevil.py:2720 data/ShortcutsWindow.ui:105
|
||||
msgid "Stop"
|
||||
msgstr "Durdur"
|
||||
|
||||
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
|
||||
#: src/mpdevil.py:2724 data/ShortcutsWindow.ui:126
|
||||
msgid "Previous title"
|
||||
msgstr "Önceki şarkı"
|
||||
|
||||
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
|
||||
#: src/mpdevil.py:2727 data/ShortcutsWindow.ui:119
|
||||
msgid "Next title"
|
||||
msgstr "Sonraki şarkı"
|
||||
|
||||
#: src/mpdevil.py:3048
|
||||
#: src/mpdevil.py:2748
|
||||
msgid "Pause"
|
||||
msgstr "Duraklat"
|
||||
|
||||
#: src/mpdevil.py:3220
|
||||
#: src/mpdevil.py:2920
|
||||
msgid "Repeat mode"
|
||||
msgstr "Tekrar modu"
|
||||
|
||||
#: src/mpdevil.py:3221
|
||||
#: src/mpdevil.py:2921
|
||||
msgid "Random mode"
|
||||
msgstr "Rastgele modu"
|
||||
|
||||
#: src/mpdevil.py:3222
|
||||
#: src/mpdevil.py:2922
|
||||
msgid "Single mode"
|
||||
msgstr "Tekli modu"
|
||||
|
||||
#: src/mpdevil.py:3223
|
||||
#: src/mpdevil.py:2923
|
||||
msgid "Consume mode"
|
||||
msgstr "Tüketim modu"
|
||||
|
||||
#: src/mpdevil.py:3437
|
||||
#: src/mpdevil.py:3137
|
||||
msgid "Updating Database…"
|
||||
msgstr "Veri Tabanı Güncelleniyor…"
|
||||
|
||||
#: src/mpdevil.py:3489
|
||||
#: src/mpdevil.py:3189
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{socket}” failed"
|
||||
msgstr "“{socket}” bağlantısı başarısız"
|
||||
|
||||
#: src/mpdevil.py:3491
|
||||
#: src/mpdevil.py:3191
|
||||
#, python-brace-format
|
||||
msgid "Connection to “{host}:{port}” failed"
|
||||
msgstr "“{host}:{port}” bağlantısı başarısız"
|
||||
|
||||
#: src/mpdevil.py:3553
|
||||
#: src/mpdevil.py:3256
|
||||
msgid "Search"
|
||||
msgstr "Ara"
|
||||
|
||||
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
|
||||
#: src/mpdevil.py:3259 data/ShortcutsWindow.ui:85
|
||||
msgid "Back to current album"
|
||||
msgstr "Geçerli albüme geri dön"
|
||||
|
||||
#: src/mpdevil.py:3570
|
||||
#: src/mpdevil.py:3273
|
||||
msgid "Keyboard Shortcuts"
|
||||
msgstr "Klavye Kısayolları"
|
||||
|
||||
#: src/mpdevil.py:3571
|
||||
#: src/mpdevil.py:3274
|
||||
msgid "Help"
|
||||
msgstr "Yardım"
|
||||
|
||||
#: src/mpdevil.py:3572
|
||||
#: src/mpdevil.py:3275
|
||||
msgid "About mpdevil"
|
||||
msgstr "mpdevil Hakkında"
|
||||
|
||||
#: src/mpdevil.py:3574
|
||||
#: src/mpdevil.py:3277
|
||||
msgid "Update Database"
|
||||
msgstr "Veri Tabanını Güncelle"
|
||||
|
||||
#: src/mpdevil.py:3575
|
||||
#: src/mpdevil.py:3278
|
||||
msgid "Server Stats"
|
||||
msgstr "Sunucu İstatistikleri"
|
||||
|
||||
#: src/mpdevil.py:3582
|
||||
#: src/mpdevil.py:3285
|
||||
msgid "Mini Player"
|
||||
msgstr "Küçük Oynatıcı"
|
||||
|
||||
#: src/mpdevil.py:3583
|
||||
#: src/mpdevil.py:3286
|
||||
msgid "Genre Filter"
|
||||
msgstr "Tür Filtresi"
|
||||
|
||||
#: src/mpdevil.py:3593
|
||||
#: src/mpdevil.py:3296
|
||||
msgid "Menu"
|
||||
msgstr "Menü"
|
||||
|
||||
#: src/mpdevil.py:3644 src/mpdevil.py:3646
|
||||
#: src/mpdevil.py:3483 src/mpdevil.py:3485
|
||||
msgid "connecting…"
|
||||
msgstr "bağlanıyor…"
|
||||
|
||||
#: src/mpdevil.py:3825
|
||||
#: src/mpdevil.py:3523
|
||||
msgid "Debug mode"
|
||||
msgstr "Hata ayıklama modu"
|
||||
|
||||
@@ -447,105 +414,124 @@ msgid "Window"
|
||||
msgstr "Pencere"
|
||||
|
||||
#: data/ShortcutsWindow.ui:57
|
||||
msgid "Cycle through profiles"
|
||||
msgstr "Profiller arasında geçiş yap"
|
||||
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Cycle through profiles in reversed order"
|
||||
msgstr "Profiller arasında ters sırada geçiş yap"
|
||||
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle mini player"
|
||||
msgstr "Küçük oynatıcıyı aç/kapat"
|
||||
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
#: data/ShortcutsWindow.ui:64
|
||||
msgid "Toggle genre filter"
|
||||
msgstr "Tür filtresini aç/kapat"
|
||||
|
||||
#: data/ShortcutsWindow.ui:85
|
||||
#: data/ShortcutsWindow.ui:71
|
||||
msgid "Toggle lyrics"
|
||||
msgstr "Şarkı sözlerini aç/kapat"
|
||||
|
||||
#: data/ShortcutsWindow.ui:92
|
||||
#: data/ShortcutsWindow.ui:78
|
||||
msgid "Toggle search"
|
||||
msgstr "Aramayı aç/kapat"
|
||||
|
||||
#: data/ShortcutsWindow.ui:108
|
||||
#: data/ShortcutsWindow.ui:94
|
||||
msgid "Playback"
|
||||
msgstr "Oynatım"
|
||||
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
#: data/ShortcutsWindow.ui:98
|
||||
msgid "Play/Pause"
|
||||
msgstr "Oynat/Duraklat"
|
||||
|
||||
#: data/ShortcutsWindow.ui:126
|
||||
#: data/ShortcutsWindow.ui:112
|
||||
msgid "Stop after current title"
|
||||
msgstr "Oynatılan şarkıdan sonra durdur"
|
||||
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
#: data/ShortcutsWindow.ui:133
|
||||
msgid "Seek forward"
|
||||
msgstr "İleri sar"
|
||||
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
#: data/ShortcutsWindow.ui:140
|
||||
msgid "Seek backward"
|
||||
msgstr "Geri sar"
|
||||
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
#: data/ShortcutsWindow.ui:147
|
||||
msgid "Toggle repeat mode"
|
||||
msgstr "Tekrar modunu aç/kapat"
|
||||
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
#: data/ShortcutsWindow.ui:154
|
||||
msgid "Toggle random mode"
|
||||
msgstr "Rastgele modunu aç/kapat"
|
||||
|
||||
#: data/ShortcutsWindow.ui:175
|
||||
#: data/ShortcutsWindow.ui:161
|
||||
msgid "Toggle single mode"
|
||||
msgstr "Tekli modunu aç/kapat"
|
||||
|
||||
#: data/ShortcutsWindow.ui:182
|
||||
#: data/ShortcutsWindow.ui:168
|
||||
msgid "Toggle consume mode"
|
||||
msgstr "Tüketim modunu aç/kapat"
|
||||
|
||||
#: data/ShortcutsWindow.ui:191
|
||||
msgid "Search, Album Dialog, Album List and Artist List"
|
||||
msgstr "Ara, Albüm İletişim Kutusu, Albüm Listesi ve Sanatçı Listesi"
|
||||
|
||||
#: data/ShortcutsWindow.ui:195
|
||||
msgid "Enqueue selected item"
|
||||
msgstr "Seçilen ögeyi sıraya al"
|
||||
|
||||
#: data/ShortcutsWindow.ui:202
|
||||
msgid "Append selected item"
|
||||
msgstr "Seçilen ögeyi sona ekle"
|
||||
|
||||
#: data/ShortcutsWindow.ui:203 data/ShortcutsWindow.ui:233
|
||||
msgid "Middle-click"
|
||||
msgstr "Orta tık"
|
||||
|
||||
#: data/ShortcutsWindow.ui:210
|
||||
msgid "Play selected item immediately"
|
||||
msgstr "Seçilen ögeyi hemen oynat"
|
||||
|
||||
#: data/ShortcutsWindow.ui:211
|
||||
msgid "Double-click"
|
||||
msgstr "Çift tık"
|
||||
|
||||
#: data/ShortcutsWindow.ui:218 data/ShortcutsWindow.ui:247
|
||||
msgid "Show additional information"
|
||||
msgstr "Ek bilgileri göster"
|
||||
|
||||
#: data/ShortcutsWindow.ui:219 data/ShortcutsWindow.ui:248
|
||||
msgid "Right-click"
|
||||
msgstr "Sağ tık"
|
||||
|
||||
#: data/ShortcutsWindow.ui:228
|
||||
#: data/ShortcutsWindow.ui:177
|
||||
msgid "Playlist"
|
||||
msgstr "Oynatma listesi"
|
||||
|
||||
#: data/ShortcutsWindow.ui:232
|
||||
msgid "Remove selected song"
|
||||
#: data/ShortcutsWindow.ui:181
|
||||
#, fuzzy
|
||||
msgid "Remove song"
|
||||
msgstr "Seçilen şarkıyı kaldır"
|
||||
|
||||
#: data/ShortcutsWindow.ui:188
|
||||
msgid "Clear playlist"
|
||||
msgstr "Oynatma listesini temizle"
|
||||
|
||||
#: data/ShortcutsWindow.ui:195 data/ShortcutsWindow.ui:249
|
||||
#, fuzzy
|
||||
msgid "Show information"
|
||||
msgstr "Ek bilgileri göster"
|
||||
|
||||
#: data/ShortcutsWindow.ui:231
|
||||
msgid "Search, Album Dialog and Album List"
|
||||
msgstr "Ara, Albüm İletişim Kutusu ve Albüm Listesi"
|
||||
|
||||
#: data/ShortcutsWindow.ui:242
|
||||
#, fuzzy
|
||||
msgid "Play immediately"
|
||||
msgstr "Seçilen ögeyi hemen oynat"
|
||||
|
||||
#~ msgid "Enqueue"
|
||||
#~ msgstr "Sıraya al"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Append all titles after the currently playing track and clear the "
|
||||
#~ "playlist from all other songs"
|
||||
#~ msgstr ""
|
||||
#~ "Tüm şarkıları oynatılan parçadan sonra ekle ve diğer şarkıları oynatma "
|
||||
#~ "listesinden kaldır"
|
||||
|
||||
#~ msgid "Save"
|
||||
#~ msgstr "Kaydet"
|
||||
|
||||
#~ msgid "Delete"
|
||||
#~ msgstr "Sil"
|
||||
|
||||
#~ msgid "Playlists"
|
||||
#~ msgstr "Oynatma listeleri"
|
||||
|
||||
#~ msgid "Cycle through profiles"
|
||||
#~ msgstr "Profiller arasında geçiş yap"
|
||||
|
||||
#~ msgid "Cycle through profiles in reversed order"
|
||||
#~ msgstr "Profiller arasında ters sırada geçiş yap"
|
||||
|
||||
#~ msgid "Enqueue selected item"
|
||||
#~ msgstr "Seçilen ögeyi sıraya al"
|
||||
|
||||
#~ msgid "Append selected item"
|
||||
#~ msgstr "Seçilen ögeyi sona ekle"
|
||||
|
||||
#~ msgid "Middle-click"
|
||||
#~ msgstr "Orta tık"
|
||||
|
||||
#~ msgid "Double-click"
|
||||
#~ msgstr "Çift tık"
|
||||
|
||||
#~ msgid "Right-click"
|
||||
#~ msgstr "Sağ tık"
|
||||
|
||||
#~ msgid "Main cover size"
|
||||
#~ msgstr "Ana kapak resmi boyutu"
|
||||
|
||||
|
@@ -1,2 +1,3 @@
|
||||
python-mpd2 >=1.1
|
||||
PyGObject
|
||||
pycairo
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 896 KiB |
BIN
screenshots/mainwindow_1.9.0.png
Normal file
BIN
screenshots/mainwindow_1.9.0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 966 KiB |
495
src/mpdevil.py
495
src/mpdevil.py
@@ -653,6 +653,7 @@ class Client(MPDClient):
|
||||
self._last_status={}
|
||||
self._refresh_interval=self._settings.get_int("refresh-interval")
|
||||
self._main_timeout_id=None
|
||||
self._start_idle_id=None
|
||||
self.lib_path=None
|
||||
self.current_cover=None
|
||||
|
||||
@@ -723,6 +724,7 @@ class Client(MPDClient):
|
||||
self.password(profile.get_string("password"))
|
||||
except:
|
||||
self.emitter.emit("connection_error")
|
||||
self._start_idle_id=None
|
||||
return False
|
||||
# connect successful
|
||||
if profile.get_boolean("socket-connection"):
|
||||
@@ -738,13 +740,17 @@ class Client(MPDClient):
|
||||
self.disconnect()
|
||||
self.emitter.emit("connection_error")
|
||||
print("No read permission, check your mpd config.")
|
||||
self._start_idle_id=None
|
||||
return False
|
||||
GLib.idle_add(callback)
|
||||
self._start_idle_id=GLib.idle_add(callback)
|
||||
|
||||
def reconnect(self):
|
||||
if self._main_timeout_id is not None:
|
||||
GLib.source_remove(self._main_timeout_id)
|
||||
self._main_timeout_id=None
|
||||
if self._start_idle_id is not None:
|
||||
GLib.source_remove(self._start_idle_id)
|
||||
self._start_idle_id=None
|
||||
self.disconnect()
|
||||
self.start()
|
||||
|
||||
@@ -790,7 +796,6 @@ class Client(MPDClient):
|
||||
self.move(0, duplicates[1]["pos"])
|
||||
self.delete(int(duplicates[1]["pos"])-1)
|
||||
|
||||
|
||||
def files_to_playlist(self, files, mode="default"):
|
||||
def append():
|
||||
for f in files:
|
||||
@@ -808,25 +813,6 @@ class Client(MPDClient):
|
||||
def album_to_playlist(self, albumartist, album, date, mode="default"):
|
||||
self.filter_to_playlist(("albumartist", albumartist, "album", album, "date", date), mode)
|
||||
|
||||
def artist_to_playlist(self, artist, genre, mode="default"):
|
||||
def append():
|
||||
if genre is None:
|
||||
genre_filter=()
|
||||
else:
|
||||
genre_filter=("genre", genre)
|
||||
if artist is None:
|
||||
artists=self.comp_list("albumartist", *genre_filter)
|
||||
else:
|
||||
artists=[artist]
|
||||
for albumartist in artists:
|
||||
albums=self.list("album", "albumartist", albumartist, *genre_filter, "group", "date")
|
||||
for album in albums:
|
||||
self.findadd("albumartist", albumartist, "album", album["album"], "date", album["date"])
|
||||
self._to_playlist(append, mode)
|
||||
|
||||
def stored_to_playlist(self, name, mode="default"):
|
||||
self._to_playlist(lambda: self.load(name), mode)
|
||||
|
||||
def comp_list(self, *args): # simulates listing behavior of python-mpd2 1.0
|
||||
native_list=self.list(*args)
|
||||
if len(native_list) > 0:
|
||||
@@ -1320,33 +1306,6 @@ class AutoSizedIcon(Gtk.Image):
|
||||
super().__init__(icon_name=icon_name)
|
||||
settings.bind(settings_key, self, "pixel-size", Gio.SettingsBindFlags.GET)
|
||||
|
||||
class AddToPlaylistPopover(Gtk.Popover):
|
||||
def __init__(self, client):
|
||||
super().__init__()
|
||||
self._client=client
|
||||
self.uri=None
|
||||
self._vbox=Gtk.ButtonBox(orientation=Gtk.Orientation.VERTICAL, margin=10, valign=Gtk.Align.START)
|
||||
self._scroll=Gtk.ScrolledWindow(child=self._vbox, propagate_natural_height=True)
|
||||
self._scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
|
||||
self.connect("show", self._on_show)
|
||||
self.add(self._scroll)
|
||||
|
||||
def _on_show(self, *args):
|
||||
for playlist in self._vbox.get_children():
|
||||
self._vbox.remove(playlist)
|
||||
for playlist in sorted((p["playlist"] for p in self._client.listplaylists()), key=locale.strxfrm):
|
||||
button=Gtk.ModelButton(label=playlist)
|
||||
button.get_child().set_property("xalign", 0)
|
||||
button.connect("clicked", self._on_playlist_clicked, playlist)
|
||||
self._vbox.pack_start(button, True, True, 0)
|
||||
window=self.get_toplevel()
|
||||
self._scroll.set_max_content_height(window.get_size()[1]//2)
|
||||
self._scroll.show_all()
|
||||
|
||||
def _on_playlist_clicked(self, button, name):
|
||||
if self.uri:
|
||||
self._client.playlistadd(name, self.uri)
|
||||
|
||||
class SongPopover(Gtk.Popover):
|
||||
def __init__(self, client, show_buttons=True):
|
||||
super().__init__(position=Gtk.PositionType.BOTTOM)
|
||||
@@ -1354,23 +1313,14 @@ class SongPopover(Gtk.Popover):
|
||||
self._rect=Gdk.Rectangle()
|
||||
self._uri=None
|
||||
|
||||
# playlists popover
|
||||
self._playlists_popover=AddToPlaylistPopover(self._client)
|
||||
|
||||
# buttons
|
||||
hbox=Gtk.Box(spacing=6)
|
||||
playlist_button=Gtk.MenuButton(image=Gtk.Image.new_from_icon_name("view-list-symbolic", Gtk.IconSize.BUTTON),
|
||||
tooltip_text=_("Add to playlist"), popover=self._playlists_popover)
|
||||
hbox.pack_start(playlist_button, False, False, 0)
|
||||
self._open_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("folder-open-symbolic", Gtk.IconSize.BUTTON),
|
||||
tooltip_text=_("Show in file manager"))
|
||||
hbox.pack_end(self._open_button, False, False, 0)
|
||||
if show_buttons:
|
||||
button_box=Gtk.ButtonBox(layout_style=Gtk.ButtonBoxStyle.EXPAND)
|
||||
data=((_("Append"), "list-add-symbolic", "append"),
|
||||
(_("Play"), "media-playback-start-symbolic", "play"),
|
||||
(_("Enqueue"), "insert-object-symbolic", "enqueue")
|
||||
)
|
||||
data=((_("Append"), "list-add-symbolic", "append"), (_("Play"), "media-playback-start-symbolic", "play"))
|
||||
for tooltip, icon, mode in data:
|
||||
button=Gtk.Button(tooltip_text=tooltip, image=Gtk.Image.new_from_icon_name(icon, Gtk.IconSize.BUTTON))
|
||||
button.connect("clicked", self._on_button_clicked, mode)
|
||||
@@ -1410,7 +1360,6 @@ class SongPopover(Gtk.Popover):
|
||||
|
||||
def open(self, uri, widget, x, y):
|
||||
self._uri=uri
|
||||
self._playlists_popover.uri=uri
|
||||
self._rect.x,self._rect.y=x,y
|
||||
self.set_pointing_to(self._rect)
|
||||
self.set_relative_to(widget)
|
||||
@@ -1445,7 +1394,7 @@ class SongPopover(Gtk.Popover):
|
||||
class SongsList(TreeView):
|
||||
__gsignals__={"button-clicked": (GObject.SignalFlags.RUN_FIRST, None, ())}
|
||||
def __init__(self, client, width=-1):
|
||||
super().__init__(search_column=-1, activate_on_single_click=True, headers_visible=False)
|
||||
super().__init__(enable_search=False, activate_on_single_click=True, headers_visible=False)
|
||||
self._client=client
|
||||
|
||||
# store
|
||||
@@ -1476,9 +1425,7 @@ class SongsList(TreeView):
|
||||
# buttons
|
||||
self.buttons=Gtk.ButtonBox(layout_style=Gtk.ButtonBoxStyle.EXPAND)
|
||||
data=((_("Add all titles to playlist"), "list-add-symbolic", "append"),
|
||||
(_("Directly play all titles"), "media-playback-start-symbolic", "play"),
|
||||
(_("Append all titles after the currently playing track and clear the playlist from all other songs"),
|
||||
"insert-object-symbolic", "enqueue")
|
||||
(_("Directly play all titles"), "media-playback-start-symbolic", "play")
|
||||
)
|
||||
for tooltip, icon, mode in data:
|
||||
button=Gtk.Button(image=Gtk.Image.new_from_icon_name(icon, Gtk.IconSize.BUTTON))
|
||||
@@ -1592,42 +1539,6 @@ class AlbumPopover(Gtk.Popover):
|
||||
self.popup()
|
||||
self._songs_list.columns_autosize()
|
||||
|
||||
class ArtistPopover(Gtk.Popover):
|
||||
def __init__(self, client):
|
||||
super().__init__()
|
||||
self._client=client
|
||||
self._rect=Gdk.Rectangle()
|
||||
self._artist=None
|
||||
self._genre=None
|
||||
|
||||
# buttons
|
||||
vbox=Gtk.ButtonBox(orientation=Gtk.Orientation.VERTICAL, margin=10)
|
||||
data=((_("Append"), "list-add-symbolic", "append"),
|
||||
(_("Play"), "media-playback-start-symbolic", "play"),
|
||||
(_("Enqueue"), "insert-object-symbolic", "enqueue")
|
||||
)
|
||||
for label, icon, mode in data:
|
||||
button=Gtk.ModelButton(label=label, image=Gtk.Image.new_from_icon_name(icon, Gtk.IconSize.BUTTON))
|
||||
button.get_child().set_property("xalign", 0)
|
||||
button.connect("clicked", self._on_button_clicked, mode)
|
||||
vbox.pack_start(button, True, True, 0)
|
||||
|
||||
self.add(vbox)
|
||||
vbox.show_all()
|
||||
|
||||
def open(self, artist, genre, widget, x, y):
|
||||
self._rect.x=x
|
||||
self._rect.y=y
|
||||
self.set_pointing_to(self._rect)
|
||||
self.set_relative_to(widget)
|
||||
self._artist=artist
|
||||
self._genre=genre
|
||||
self.popup()
|
||||
|
||||
def _on_button_clicked(self, widget, mode):
|
||||
self._client.artist_to_playlist(self._artist, self._genre, mode)
|
||||
self.popdown()
|
||||
|
||||
##########
|
||||
# search #
|
||||
##########
|
||||
@@ -1823,6 +1734,7 @@ class SelectionList(TreeView):
|
||||
self._selection.connect("changed", self._on_selection_changed)
|
||||
|
||||
def clear(self):
|
||||
self._selection.set_mode(Gtk.SelectionMode.NONE)
|
||||
self._store.clear()
|
||||
self._store.append([self.select_all_string, "", Pango.Weight.NORMAL])
|
||||
self._selected_path=None
|
||||
@@ -1840,6 +1752,7 @@ class SelectionList(TreeView):
|
||||
else:
|
||||
self._store.insert_with_valuesv(-1, range(3), [item[0], char, Pango.Weight.BOLD])
|
||||
char=""
|
||||
self._selection.set_mode(Gtk.SelectionMode.BROWSE)
|
||||
|
||||
def get_item_at_path(self, path):
|
||||
if path == Gtk.TreePath(0):
|
||||
@@ -1916,12 +1829,7 @@ class ArtistList(SelectionList):
|
||||
# selection
|
||||
self._selection=self.get_selection()
|
||||
|
||||
# artist popover
|
||||
self._artist_popover=ArtistPopover(self._client)
|
||||
|
||||
# connect
|
||||
self.connect("clear", lambda *args: self._artist_popover.popdown())
|
||||
self.connect("button-press-event", self._on_button_press_event)
|
||||
self._client.emitter.connect("disconnected", self._on_disconnected)
|
||||
self._client.emitter.connect("connected", self._on_connected)
|
||||
self.genre_list.connect_after("item-selected", self._refresh)
|
||||
@@ -1950,15 +1858,6 @@ class ArtistList(SelectionList):
|
||||
self.select_path(Gtk.TreePath(0))
|
||||
self.scroll_to_selected()
|
||||
|
||||
def _on_button_press_event(self, widget, event):
|
||||
if (path_re:=widget.get_path_at_pos(int(event.x), int(event.y))) is not None:
|
||||
path=path_re[0]
|
||||
artist,genre=self.get_artist_at_path(path)
|
||||
if event.button == 2 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
self._client.artist_to_playlist(artist, genre, "append")
|
||||
elif event.button == 3 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
self._artist_popover.open(artist, genre, self, event.x, event.y)
|
||||
|
||||
def get_artist_at_path(self, path):
|
||||
genre=self.genre_list.get_item_selected()
|
||||
artist=self.get_item_at_path(path)
|
||||
@@ -1967,16 +1866,6 @@ class ArtistList(SelectionList):
|
||||
def get_artist_selected(self):
|
||||
return self.get_artist_at_path(self.get_path_selected())
|
||||
|
||||
def add_to_playlist(self, mode):
|
||||
if (path:=self.get_cursor()[0]) is not None:
|
||||
artist,genre=self.get_artist_at_path(path)
|
||||
self._client.artist_to_playlist(artist, genre, mode)
|
||||
|
||||
def show_info(self):
|
||||
if (path:=self.get_cursor()[0]) is not None:
|
||||
artist,genre=self.get_artist_at_path(path)
|
||||
self._artist_popover.open(artist, genre, self, *self.get_popover_point(path))
|
||||
|
||||
def _on_disconnected(self, *args):
|
||||
self.set_sensitive(False)
|
||||
self.clear()
|
||||
@@ -1996,9 +1885,17 @@ class AlbumLoadingThread(threading.Thread):
|
||||
self._genre=genre
|
||||
|
||||
def _get_albums(self):
|
||||
@main_thread_function
|
||||
def client_list(*args):
|
||||
if self._stop_flag:
|
||||
raise ValueError("Stop requested")
|
||||
else:
|
||||
return self._client.list(*args)
|
||||
for albumartist in self._artists:
|
||||
albums=main_thread_function(self._client.list)(
|
||||
"albumsort", "albumartist", albumartist, *self._genre_filter, "group", "date", "group", "album")
|
||||
try:
|
||||
albums=client_list("albumsort", "albumartist", albumartist, *self._genre_filter, "group", "date", "group", "album")
|
||||
except ValueError:
|
||||
break
|
||||
for _, album in itertools.groupby(albums, key=lambda x: (x["album"], x["date"])):
|
||||
tmp=next(album)
|
||||
# ignore multiple albumsort values
|
||||
@@ -2053,6 +1950,9 @@ class AlbumLoadingThread(threading.Thread):
|
||||
self._exit()
|
||||
return
|
||||
idle_add(self._progress_bar.pulse)
|
||||
if self._stop_flag:
|
||||
self._exit()
|
||||
return
|
||||
# sort model
|
||||
if main_thread_function(self._settings.get_boolean)("sort-albums-by-year"):
|
||||
main_thread_function(self._store.set_sort_column_id)(5, Gtk.SortType.ASCENDING)
|
||||
@@ -2060,7 +1960,17 @@ class AlbumLoadingThread(threading.Thread):
|
||||
main_thread_function(self._store.set_sort_column_id)(6, Gtk.SortType.ASCENDING)
|
||||
idle_add(self._iconview.set_model, self._store)
|
||||
# select album
|
||||
path=main_thread_function(self._iconview.get_current_album_path)()
|
||||
@main_thread_function
|
||||
def get_current_album_path():
|
||||
if self._stop_flag:
|
||||
raise ValueError("Stop requested")
|
||||
else:
|
||||
return self._iconview.get_current_album_path()
|
||||
try:
|
||||
path=get_current_album_path()
|
||||
except ValueError:
|
||||
self._exit()
|
||||
return
|
||||
if path is None:
|
||||
path=Gtk.TreePath(0)
|
||||
idle_add(self._iconview.set_cursor, path, None, False)
|
||||
@@ -2283,11 +2193,11 @@ class Browser(Gtk.Paned):
|
||||
song=self._client.currentsong()
|
||||
artist,genre=self._artist_list.get_artist_selected()
|
||||
if genre is None or song["genre"][0] == genre:
|
||||
if artist is not None and song["albumartist"][0] != artist:
|
||||
self._artist_list.select(song["albumartist"][0])
|
||||
self._artist_list.scroll_to_selected()
|
||||
else:
|
||||
if artist is None or song["albumartist"][0] == artist:
|
||||
self._album_list.scroll_to_current_album()
|
||||
else:
|
||||
self._artist_list.select(song["albumartist"][0])
|
||||
self._artist_list.scroll_to_selected()
|
||||
else:
|
||||
self._genre_list.select_all()
|
||||
self._genre_list.scroll_to_selected()
|
||||
@@ -2301,204 +2211,10 @@ class Browser(Gtk.Paned):
|
||||
# playlist #
|
||||
############
|
||||
|
||||
class PlaylistPopover(Gtk.Popover):
|
||||
__gsignals__={
|
||||
"playlist-changed": (GObject.SignalFlags.RUN_FIRST, None, (str, int, int)),
|
||||
"playlist-deleted": (GObject.SignalFlags.RUN_FIRST, None, (int, int)),
|
||||
}
|
||||
def __init__(self, client):
|
||||
super().__init__()
|
||||
self._client=client
|
||||
self._name=None
|
||||
self._rect=Gdk.Rectangle()
|
||||
|
||||
# buttons
|
||||
vbox=Gtk.Box(orientation=Gtk.Orientation.VERTICAL, margin=10)
|
||||
data=((_("Append"), "list-add-symbolic", "append"),
|
||||
(_("Play"), "media-playback-start-symbolic", "play"),
|
||||
(_("Enqueue"), "insert-object-symbolic", "enqueue")
|
||||
)
|
||||
for label, icon, mode in data:
|
||||
button=Gtk.ModelButton(label=label, image=Gtk.Image.new_from_icon_name(icon, Gtk.IconSize.BUTTON))
|
||||
button.get_child().set_property("xalign", 0)
|
||||
button.connect("clicked", self._on_button_clicked, mode)
|
||||
vbox.pack_start(button, True, True, 0)
|
||||
vbox.pack_start(Gtk.Separator(), False, False, 0)
|
||||
save_button=Gtk.ModelButton(label=_("Save"), image=Gtk.Image.new_from_icon_name("document-save-symbolic", Gtk.IconSize.BUTTON))
|
||||
save_button.get_child().set_property("xalign", 0)
|
||||
save_button.connect("clicked", self._on_save_button_clicked)
|
||||
vbox.pack_start(save_button, True, True, 0)
|
||||
delete_button=Gtk.ModelButton(label=_("Delete"), image=Gtk.Image.new_from_icon_name("edit-delete-symbolic", Gtk.IconSize.BUTTON))
|
||||
delete_button.get_child().set_property("xalign", 0)
|
||||
delete_button.connect("clicked", self._on_delete_button_clicked)
|
||||
vbox.pack_start(delete_button, True, True, 0)
|
||||
|
||||
self.add(vbox)
|
||||
vbox.show_all()
|
||||
|
||||
def open(self, name, widget, x, y):
|
||||
self._rect.x=x
|
||||
self._rect.y=y
|
||||
self.set_pointing_to(self._rect)
|
||||
self.set_relative_to(widget)
|
||||
self._name=name
|
||||
self.popup()
|
||||
|
||||
def _on_button_clicked(self, widget, mode):
|
||||
self._client.stored_to_playlist(self._name, mode)
|
||||
self.popdown()
|
||||
|
||||
def _on_delete_button_clicked(self, *args):
|
||||
self._client.rm(self._name)
|
||||
self.popdown()
|
||||
self.emit("playlist-deleted", self._rect.x, self._rect.y)
|
||||
|
||||
def _on_save_button_clicked(self, *args):
|
||||
self._client.rm(self._name)
|
||||
self._client.save(self._name)
|
||||
self.popdown()
|
||||
self.emit("playlist-changed", self._name, self._rect.x, self._rect.y)
|
||||
|
||||
class PlaylistsView(TreeView):
|
||||
def __init__(self, client):
|
||||
super().__init__(search_column=-1, activate_on_single_click=True, headers_visible=False)
|
||||
self._client=client
|
||||
self._selection=self.get_selection()
|
||||
|
||||
# store
|
||||
# display name, name
|
||||
self._store=Gtk.ListStore(str, str)
|
||||
self._store.set_sort_column_id(1, Gtk.SortType.ASCENDING)
|
||||
self.set_model(self._store)
|
||||
|
||||
# columns
|
||||
renderer_text=Gtk.CellRendererText(width_chars=80, ellipsize=Pango.EllipsizeMode.END, ellipsize_set=True, ypad=6)
|
||||
column=Gtk.TreeViewColumn("", renderer_text, markup=0)
|
||||
column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
|
||||
column.set_property("resizable", False)
|
||||
column.set_property("expand", True)
|
||||
self.append_column(column)
|
||||
|
||||
# popover
|
||||
self._playlist_popover=PlaylistPopover(self._client)
|
||||
|
||||
# connect
|
||||
self.connect("row-activated", self._on_row_activated)
|
||||
self.connect("button-press-event", self._on_button_press_event)
|
||||
self._playlist_popover.connect("playlist-changed", self._on_playlist_changed)
|
||||
self._playlist_popover.connect("playlist-deleted", self._on_playlist_deleted)
|
||||
|
||||
def add(self, name):
|
||||
self._client.save(name)
|
||||
self._store.insert_with_valuesv(-1, range(2), (self._get_display_name(name), name))
|
||||
self.columns_autosize()
|
||||
|
||||
def refresh(self):
|
||||
self._store.clear()
|
||||
for playlist in self._client.listplaylists():
|
||||
self._store.insert_with_valuesv(-1, range(2), (self._get_display_name(playlist["playlist"]), playlist["playlist"]))
|
||||
|
||||
def _get_display_name(self, name):
|
||||
self._client.restrict_tagtypes()
|
||||
metadata=self._client.listplaylistinfo(name)
|
||||
self._client.tagtypes("all")
|
||||
duration=Duration(sum((float(x["duration"]) for x in metadata)))
|
||||
length=len(metadata)
|
||||
translated_string=ngettext("{number} song ({duration})", "{number} songs ({duration})", length)
|
||||
formatted_string=translated_string.format(number=length, duration=duration)
|
||||
return f"<b>{GLib.markup_escape_text(name)}</b> • {GLib.markup_escape_text(formatted_string)}"
|
||||
|
||||
def _on_row_activated(self, widget, path, view_column):
|
||||
self._client.stored_to_playlist(self._store[path][1])
|
||||
|
||||
def _on_button_press_event(self, widget, event):
|
||||
if (path_re:=widget.get_path_at_pos(int(event.x), int(event.y))) is not None:
|
||||
path=path_re[0]
|
||||
if event.button == 1 and event.type == Gdk.EventType._2BUTTON_PRESS:
|
||||
self._client.stored_to_playlist(self._store[path][1], "play")
|
||||
elif event.button == 2 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
self._client.stored_to_playlist(self._store[path][1], "append")
|
||||
elif event.button == 3 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
self._playlist_popover.open(self._store[path][1], widget, event.x, event.y)
|
||||
|
||||
def _on_playlist_changed(self, widget, name, x, y):
|
||||
self._store.set(self._store.get_iter(self.get_path_at_pos(x, y)[0]), 0, self._get_display_name(name), 1, name)
|
||||
self.columns_autosize()
|
||||
|
||||
def _on_playlist_deleted(self, widget, x, y):
|
||||
self._store.remove(self._store.get_iter(self.get_path_at_pos(x, y)[0]))
|
||||
self.columns_autosize()
|
||||
|
||||
def show_info(self):
|
||||
if (treeiter:=self._selection.get_selected()[1]) is not None:
|
||||
path=self._store.get_path(treeiter)
|
||||
self._playlist_popover.open(self._store[path][1], self, *self.get_popover_point(path))
|
||||
|
||||
def add_to_playlist(self, mode):
|
||||
if (treeiter:=self._selection.get_selected()[1]) is not None:
|
||||
self._client.stored_to_playlist(self._store.get_value(treeiter, 1), mode)
|
||||
|
||||
class PlaylistsPopover(Gtk.Popover):
|
||||
def __init__(self, client, label):
|
||||
super().__init__(position=Gtk.PositionType.TOP)
|
||||
self._client=client
|
||||
|
||||
# widgets
|
||||
self._entry=Gtk.Entry()
|
||||
self._add_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("list-add-symbolic", Gtk.IconSize.BUTTON), sensitive=False)
|
||||
self._add_button.get_style_context().add_class("suggested-action")
|
||||
clear_button=Gtk.Button(
|
||||
image=Gtk.Image.new_from_icon_name("edit-clear-symbolic", Gtk.IconSize.BUTTON),
|
||||
tooltip_text=_("Clear playlist"),
|
||||
action_name="mpd.clear",
|
||||
can_focus=False
|
||||
)
|
||||
clear_button.get_style_context().add_class("destructive-action")
|
||||
|
||||
# playlists view
|
||||
self._playlists_view=PlaylistsView(self._client)
|
||||
self._scroll=Gtk.ScrolledWindow(child=self._playlists_view, propagate_natural_height=True)
|
||||
self._scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
|
||||
|
||||
# connect
|
||||
self.connect("show", self._on_show)
|
||||
self._entry.connect("activate", self._add)
|
||||
self._entry.connect("changed", self._on_entry_changed)
|
||||
self._add_button.connect("clicked", self._add)
|
||||
|
||||
# packing
|
||||
hbox0=Gtk.Box(spacing=6)
|
||||
hbox0.pack_start(label, False, False, 6)
|
||||
hbox0.pack_end(clear_button, False, False, 0)
|
||||
hbox=Gtk.Box(spacing=6)
|
||||
hbox.pack_start(self._entry, True, True, 0)
|
||||
hbox.pack_start(self._add_button, False, False, 0)
|
||||
vbox=Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6, border_width=6)
|
||||
vbox.pack_start(hbox, False, False, 0)
|
||||
vbox.pack_end(hbox0, False, False, 0)
|
||||
vbox.pack_end(Gtk.Frame(child=self._scroll), True, True, 0)
|
||||
self.add(vbox)
|
||||
vbox.show_all()
|
||||
|
||||
def _add(self, *args):
|
||||
if self._add_button.get_sensitive():
|
||||
self._playlists_view.add(self._entry.get_text())
|
||||
self._add_button.set_sensitive(False)
|
||||
|
||||
def _on_entry_changed(self, *args):
|
||||
name=self._entry.get_text()
|
||||
self._add_button.set_sensitive(name and not name in (x["playlist"] for x in self._client.listplaylists()))
|
||||
|
||||
def _on_show(self, *args):
|
||||
window=self.get_toplevel()
|
||||
self._scroll.set_max_content_height(window.get_size()[1]//2)
|
||||
self._playlists_view.refresh()
|
||||
self._playlists_view.columns_autosize()
|
||||
|
||||
class PlaylistView(TreeView):
|
||||
selected_path=GObject.Property(type=Gtk.TreePath, default=None) # currently marked song
|
||||
def __init__(self, client, settings):
|
||||
super().__init__(activate_on_single_click=True, reorderable=True, search_column=5, headers_visible=False)
|
||||
super().__init__(activate_on_single_click=True, reorderable=True, search_column=4, headers_visible=False)
|
||||
self._client=client
|
||||
self._settings=settings
|
||||
self._playlist_version=None
|
||||
@@ -2508,12 +2224,9 @@ class PlaylistView(TreeView):
|
||||
self._selection=self.get_selection()
|
||||
self._selection.set_select_function(self._select_function)
|
||||
|
||||
# label
|
||||
self.label=Gtk.Label(xalign=0, ellipsize=Pango.EllipsizeMode.END)
|
||||
|
||||
# store
|
||||
# (track, title, human duration, file, duration, search)
|
||||
self._store=Gtk.ListStore(str, str, str, str, float, str)
|
||||
# (track, title, duration, file, search)
|
||||
self._store=Gtk.ListStore(str, str, str, str, str)
|
||||
self.set_model(self._store)
|
||||
|
||||
# columns
|
||||
@@ -2551,7 +2264,6 @@ class PlaylistView(TreeView):
|
||||
|
||||
def _clear(self, *args):
|
||||
self._song_popover.popdown()
|
||||
self._set_playlist_info("")
|
||||
self._playlist_version=None
|
||||
self.set_property("selected-path", None)
|
||||
self._store.handler_block(self._row_inserted)
|
||||
@@ -2576,10 +2288,12 @@ class PlaylistView(TreeView):
|
||||
except IndexError: # invalid path
|
||||
pass
|
||||
|
||||
def _scroll_to_path(self, path):
|
||||
self.save_scroll_to_cell(path, None, True, 0.25)
|
||||
|
||||
def scroll_to_selected_title(self):
|
||||
if (treeiter:=self._selection.get_selected()[1]) is not None:
|
||||
path=self._store.get_path(treeiter)
|
||||
self.save_scroll_to_cell(path, None, True, 0.25)
|
||||
if (path:=self.get_property("selected-path")) is not None:
|
||||
self._scroll_to_path(path)
|
||||
|
||||
def _refresh_selection(self): # Gtk.TreePath(len(self._store) is used to generate an invalid TreePath (needed to unset cursor)
|
||||
self.set_cursor(Gtk.TreePath(len(self._store)), None, False)
|
||||
@@ -2590,9 +2304,6 @@ class PlaylistView(TreeView):
|
||||
path=Gtk.TreePath(int(song))
|
||||
self._select(path)
|
||||
|
||||
def _set_playlist_info(self, text):
|
||||
self.label.set_label(text)
|
||||
|
||||
def _on_button_press_event(self, widget, event):
|
||||
if (path_re:=widget.get_path_at_pos(int(event.x), int(event.y))) is not None:
|
||||
path=path_re[0]
|
||||
@@ -2639,7 +2350,7 @@ class PlaylistView(TreeView):
|
||||
self._store.handler_block(self._row_deleted)
|
||||
self._song_popover.popdown()
|
||||
self._unselect()
|
||||
self._client.restrict_tagtypes("track", "disc", "title", "artist", "album", "date", "genre")
|
||||
self._client.restrict_tagtypes("track", "title", "artist", "album", "date")
|
||||
songs=[]
|
||||
if self._playlist_version is not None:
|
||||
songs=self._client.plchanges(self._playlist_version)
|
||||
@@ -2648,40 +2359,28 @@ class PlaylistView(TreeView):
|
||||
self._client.tagtypes("all")
|
||||
if songs:
|
||||
self.freeze_child_notify()
|
||||
self._set_playlist_info("")
|
||||
for song in songs:
|
||||
title=song.get_markup()
|
||||
try:
|
||||
treeiter=self._store.get_iter(song["pos"])
|
||||
except ValueError:
|
||||
self._store.insert_with_valuesv(-1, range(8), [
|
||||
song["track"][0], title,
|
||||
str(song["duration"]), song["file"],
|
||||
float(song["duration"]), song["title"][0]
|
||||
])
|
||||
self._store.insert_with_valuesv(-1, range(5),
|
||||
[song["track"][0], title, str(song["duration"]), song["file"], song["title"][0]]
|
||||
)
|
||||
else:
|
||||
self._store.set(treeiter,
|
||||
0, song["track"][0],
|
||||
1, title,
|
||||
2, str(song["duration"]),
|
||||
3, song["file"],
|
||||
4, float(song["duration"]),
|
||||
5, song["title"][0]
|
||||
0, song["track"][0], 1, title, 2, str(song["duration"]), 3, song["file"], 4, song["title"][0]
|
||||
)
|
||||
self.thaw_child_notify()
|
||||
for i in reversed(range(int(self._client.status()["playlistlength"]), len(self._store))):
|
||||
treeiter=self._store.get_iter(i)
|
||||
self._store.remove(treeiter)
|
||||
playlist_length=len(self._store)
|
||||
if playlist_length == 0:
|
||||
self._set_playlist_info("")
|
||||
else:
|
||||
duration=Duration(sum((row[4] for row in self._store)))
|
||||
translated_string=ngettext("{number} song ({duration})", "{number} songs ({duration})", playlist_length)
|
||||
self._set_playlist_info(translated_string.format(number=playlist_length, duration=duration))
|
||||
self._refresh_selection()
|
||||
if self._playlist_version != version:
|
||||
self.scroll_to_selected_title()
|
||||
if (path:=self.get_property("selected-path")) is None:
|
||||
if len(self._store) > 0:
|
||||
self._scroll_to_path(Gtk.TreePath(0))
|
||||
else:
|
||||
self._scroll_to_path(path)
|
||||
self._playlist_version=version
|
||||
self._store.handler_unblock(self._row_inserted)
|
||||
self._store.handler_unblock(self._row_deleted)
|
||||
@@ -2689,7 +2388,7 @@ class PlaylistView(TreeView):
|
||||
def _on_song_changed(self, *args):
|
||||
self._refresh_selection()
|
||||
if self._client.status()["state"] == "play":
|
||||
self.scroll_to_selected_title()
|
||||
self._scroll_to_path(self.get_property("selected-path"))
|
||||
|
||||
def _on_disconnected(self, *args):
|
||||
self.set_sensitive(False)
|
||||
@@ -2717,9 +2416,6 @@ class PlaylistWindow(Gtk.Overlay):
|
||||
)
|
||||
self._treeview=PlaylistView(client, settings)
|
||||
scroll=Gtk.ScrolledWindow(child=self._treeview)
|
||||
self.popover_button=Gtk.MenuButton(image=AutoSizedIcon("view-list-symbolic", "icon-size", settings),
|
||||
popover=PlaylistsPopover(client, self._treeview.label),
|
||||
tooltip_text=_("Playlists"), can_focus=False)
|
||||
|
||||
# connect
|
||||
self._back_to_current_song_button.connect("clicked", self._on_back_to_current_song_button_clicked)
|
||||
@@ -2733,27 +2429,28 @@ class PlaylistWindow(Gtk.Overlay):
|
||||
self.add_overlay(self._back_button_revealer)
|
||||
|
||||
def _on_show_hide_back_button(self, *args):
|
||||
visible_range=self._treeview.get_visible_range() # not always accurate possibly due to a bug in Gtk
|
||||
if visible_range is None or self._treeview.get_property("selected-path") is None:
|
||||
self._back_button_revealer.set_reveal_child(False)
|
||||
else:
|
||||
if visible_range[0] > self._treeview.get_property("selected-path"): # current song is above upper edge
|
||||
self._back_button_icon.set_property("icon-name", "go-up-symbolic")
|
||||
self._back_button_revealer.set_valign(Gtk.Align.START)
|
||||
self._back_button_revealer.set_reveal_child(True)
|
||||
elif self._treeview.get_property("selected-path") > visible_range[1]: # current song is below lower edge
|
||||
self._back_button_icon.set_property("icon-name", "go-down-symbolic")
|
||||
self._back_button_revealer.set_valign(Gtk.Align.END)
|
||||
self._back_button_revealer.set_reveal_child(True)
|
||||
else: # current song is visible
|
||||
def callback():
|
||||
visible_range=self._treeview.get_visible_range() # not always accurate possibly due to a bug in Gtk
|
||||
if visible_range is None or self._treeview.get_property("selected-path") is None:
|
||||
self._back_button_revealer.set_reveal_child(False)
|
||||
else:
|
||||
if visible_range[0] > self._treeview.get_property("selected-path"): # current song is above upper edge
|
||||
self._back_button_icon.set_property("icon-name", "go-up-symbolic")
|
||||
self._back_button_revealer.set_valign(Gtk.Align.START)
|
||||
self._back_button_revealer.set_reveal_child(True)
|
||||
elif self._treeview.get_property("selected-path") > visible_range[1]: # current song is below lower edge
|
||||
self._back_button_icon.set_property("icon-name", "go-down-symbolic")
|
||||
self._back_button_revealer.set_valign(Gtk.Align.END)
|
||||
self._back_button_revealer.set_reveal_child(True)
|
||||
else: # current song is visible
|
||||
self._back_button_revealer.set_reveal_child(False)
|
||||
GLib.idle_add(callback) # workaround for the Gtk bug from above
|
||||
|
||||
def _on_back_to_current_song_button_clicked(self, *args):
|
||||
self._treeview.set_cursor(Gtk.TreePath(len(self._treeview.get_model())), None, False) # unset cursor
|
||||
if self._treeview.get_property("selected-path") is not None:
|
||||
self._treeview.get_selection().select_path(self._treeview.get_property("selected-path"))
|
||||
self._treeview.scroll_to_selected_title()
|
||||
self._back_button_revealer.set_reveal_child(False) # workaround for Gtk bug in _on_show_hide_back_button
|
||||
|
||||
####################
|
||||
# cover and lyrics #
|
||||
@@ -2790,7 +2487,7 @@ class LyricsWindow(Gtk.ScrolledWindow):
|
||||
# text view
|
||||
self._text_view=Gtk.TextView(
|
||||
editable=False, cursor_visible=False, wrap_mode=Gtk.WrapMode.WORD,
|
||||
justification=Gtk.Justification.CENTER, opacity=0.9,
|
||||
justification=Gtk.Justification.CENTER,
|
||||
left_margin=5, right_margin=5, bottom_margin=5, top_margin=3
|
||||
)
|
||||
|
||||
@@ -2884,8 +2581,6 @@ class CoverEventBox(Gtk.EventBox):
|
||||
tags=(song["albumartist"][0], song["album"][0], song["date"][0])
|
||||
if event.button == 1:
|
||||
self._client.album_to_playlist(*tags)
|
||||
elif event.button == 2:
|
||||
self._client.album_to_playlist(*tags, "append")
|
||||
elif event.button == 3:
|
||||
self._album_popover.open(*tags, widget, event.x, event.y)
|
||||
self._click_pos=()
|
||||
@@ -2959,6 +2654,7 @@ class CoverLyricsWindow(Gtk.Overlay):
|
||||
# cover
|
||||
main_cover=MainCover(self._client, self._settings)
|
||||
self._cover_event_box=CoverEventBox(self._client, self._settings)
|
||||
self._cover_event_box.add(Gtk.AspectFrame(child=main_cover, shadow_type=Gtk.ShadowType.NONE))
|
||||
|
||||
# lyrics button
|
||||
self.lyrics_button=Gtk.ToggleButton(
|
||||
@@ -2976,7 +2672,7 @@ class CoverLyricsWindow(Gtk.Overlay):
|
||||
self._settings.bind("show-lyrics-button", self._lyrics_button_revealer, "reveal-child", Gio.SettingsBindFlags.DEFAULT)
|
||||
|
||||
# stack
|
||||
self._stack=Gtk.Stack(transition_type=Gtk.StackTransitionType.OVER_DOWN_UP)
|
||||
self._stack=Gtk.Stack(transition_type=Gtk.StackTransitionType.CROSSFADE)
|
||||
self._stack.add_named(self._cover_event_box, "cover")
|
||||
self._stack.add_named(self._lyrics_window, "lyrics")
|
||||
self._stack.set_visible_child(self._cover_event_box)
|
||||
@@ -2987,8 +2683,7 @@ class CoverLyricsWindow(Gtk.Overlay):
|
||||
self._client.emitter.connect("connected", self._on_connected)
|
||||
|
||||
# packing
|
||||
self.add(Gtk.AspectFrame(child=main_cover, shadow_type=Gtk.ShadowType.NONE))
|
||||
self.add_overlay(self._stack)
|
||||
self.add(self._stack)
|
||||
self.add_overlay(self._lyrics_button_revealer)
|
||||
|
||||
def _on_connected(self, *args):
|
||||
@@ -3514,14 +3209,17 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
# actions
|
||||
simple_actions_data=(
|
||||
"settings","profile-settings","stats","help","menu",
|
||||
"toggle-lyrics","back-to-current-album","toggle-search",
|
||||
"profile-next","profile-prev","show-info"
|
||||
"toggle-lyrics","back-to-current-album","toggle-search","show-info"
|
||||
)
|
||||
for name in simple_actions_data:
|
||||
action=Gio.SimpleAction.new(name, None)
|
||||
action.connect("activate", getattr(self, ("_on_"+name.replace("-","_"))))
|
||||
self.add_action(action)
|
||||
for name in ("append","play","enqueue"):
|
||||
for i, name in enumerate(("profile-1","profile-2","profile-3")):
|
||||
action=Gio.SimpleAction.new(name, None)
|
||||
action.connect("activate", self._on_profile, i)
|
||||
self.add_action(action)
|
||||
for name in ("append","play"):
|
||||
action=Gio.SimpleAction.new(name, None)
|
||||
action.connect("activate", self._on_add_to_playlist, name)
|
||||
self.add_action(action)
|
||||
@@ -3632,7 +3330,6 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
action_bar.pack_start(playback_control)
|
||||
action_bar.pack_start(seek_bar)
|
||||
action_bar.pack_start(audio)
|
||||
playback_options.pack_start(playlist_window.popover_button, True, True, 0)
|
||||
action_bar.pack_start(playback_options)
|
||||
action_bar.pack_start(volume_button)
|
||||
vbox=Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
||||
@@ -3720,13 +3417,8 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
def _on_menu(self, action, param):
|
||||
self._menu_button.emit("clicked")
|
||||
|
||||
def _on_profile_next(self, action, param):
|
||||
current_profile=self._settings.get_int("active-profile")
|
||||
self._settings.set_int("active-profile", ((current_profile+1)%3))
|
||||
|
||||
def _on_profile_prev(self, action, param):
|
||||
current_profile=self._settings.get_int("active-profile")
|
||||
self._settings.set_int("active-profile", ((current_profile-1)%3))
|
||||
def _on_profile(self, action, param, profile):
|
||||
self._settings.set_int("active-profile", profile)
|
||||
|
||||
def _on_show_info(self, action, param):
|
||||
widget=self.get_focus()
|
||||
@@ -3851,14 +3543,13 @@ class mpdevil(Gtk.Application):
|
||||
action_accels=(
|
||||
("app.quit", ["<Control>q"]),("win.mini-player", ["<Control>m"]),("win.help", ["F1"]),("win.menu", ["F10"]),
|
||||
("win.show-help-overlay", ["<Control>question"]),("win.toggle-lyrics", ["<Control>l"]),
|
||||
("win.back-to-current-album", ["Escape"]),("win.toggle-search", ["<control>f"]),
|
||||
("mpd.update", ["F5"]),("mpd.clear", ["<Shift>Delete"]),("mpd.toggle-play", ["space"]),
|
||||
("mpd.stop", ["<Shift>space"]),("mpd.next", ["KP_Add"]),("mpd.prev", ["KP_Subtract"]),
|
||||
("mpd.repeat", ["<Control>r"]),("mpd.random", ["<Control>s"]),("mpd.single", ["<Control>1"]),
|
||||
("mpd.consume", ["<Control>o"]),("mpd.single-oneshot", ["<Control>space"]),("mpd.seek-forward", ["KP_Multiply"]),
|
||||
("mpd.seek-backward", ["KP_Divide"]),("win.profile-next", ["<Control>p"]),("win.profile-prev", ["<Shift><Control>p"]),
|
||||
("win.show-info", ["<Control>i","Menu"]),("win.append", ["<Control>plus"]),
|
||||
("win.play", ["<Control>Return"]),("win.enqueue", ["<Control>e"]),("win.genre-filter", ["<Control>g"])
|
||||
("win.profile-1", ["<Control>1"]),("win.profile-2", ["<Control>2"]),("win.profile-3", ["<Control>3"]),
|
||||
("win.show-info", ["<Control>i","Menu"]),("win.append", ["<Control>plus"]),("win.play", ["<Control>p"]),
|
||||
("win.genre-filter", ["<Control>g"]),("win.back-to-current-album", ["Escape"]),("win.toggle-search", ["<Control>f"]),
|
||||
("mpd.update", ["F5"]),("mpd.clear", ["<Shift>Delete"]),("mpd.toggle-play", ["space"]),("mpd.stop", ["<Shift>space"]),
|
||||
("mpd.next", ["<Alt>Down"]),("mpd.prev", ["<Alt>Up"]),("mpd.repeat", ["<Control>r"]),("mpd.random", ["<Control>n"]),
|
||||
("mpd.single", ["<Control>s"]),("mpd.consume", ["<Control>o"]),("mpd.single-oneshot", ["<Shift><Control>s"]),
|
||||
("mpd.seek-forward", ["<Alt>Right"]),("mpd.seek-backward", ["<Alt>Left"])
|
||||
)
|
||||
for action, accels in action_accels:
|
||||
self.set_accels_for_action(action, accels)
|
||||
|
Reference in New Issue
Block a user