Compare commits

...

7 Commits

Author SHA1 Message Date
Martin Wagner f9b29f2a3c improved connecting process 2022-09-20 18:42:37 +02:00
Martin Wagner c9838118be clear window title on connection error 2022-09-19 23:27:38 +02:00
Martin Wagner 5e34ea7658 fixed "disconnected" signals 2022-09-19 23:18:32 +02:00
Martin Wagner 1307566b35 fixed play/pause button tooltip 2022-09-19 20:07:39 +02:00
Martin Wagner bf9157c9da always allow moving the window by dragging the album cover 2022-09-18 23:10:49 +02:00
Martin Wagner 2ce23a5b33 synced AboutDialog.ui and AUTHORS 2022-09-16 17:27:53 +02:00
Martin Wagner b1f9f0092d reworked tooltips in PlaybackControl 2022-09-16 17:19:48 +02:00
9 changed files with 811 additions and 803 deletions

View File

@ -6,6 +6,7 @@ Translators:
Martin de Reuver <martin@reuf.nl> (Dutch)
Georgi Kamenov (Bulgarian)
Oğuz Ersen (Turkish)
Łukasz Drukała (Polish)
Gentoo ebuild:
Martin Wagner <martin.wagner.dev@gmail.com>

View File

@ -6,9 +6,9 @@
<property name="version">1.8.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 de Reuver
<property name="translator_credits">Martin Wagner
Martin de Reuver
Georgi Kamenov
Martin Wagner
Oğuz Ersen
Łukasz Drukała</property>
<property name="website">https://github.com/SoongNoonien/mpdevil</property>

231
po/bg.po
View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: mpdevil\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-07 12:12+0200\n"
"PO-Revision-Date: 2022-04-07 12:14+0200\n"
"POT-Creation-Date: 2022-09-19 20:03+0200\n"
"PO-Revision-Date: 2022-09-19 20:06+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: bg\n"
@ -19,89 +19,85 @@ msgstr ""
"X-Generator: Poedit 2.3.1\n"
"X-Poedit-Bookmarks: -1,-1,-1,-1,30,-1,-1,-1,-1,-1\n"
#: src/mpdevil.py:504
#: src/mpdevil.py:502
#, python-brace-format
msgid "{days} day"
msgid_plural "{days} days"
msgstr[0] "{days} ден"
msgstr[1] "{days} дни"
#: src/mpdevil.py:541
#: src/mpdevil.py:539
#, python-brace-format
msgid "{channels} channel"
msgid_plural "{channels} channels"
msgstr[0] "{channels} канал"
msgstr[1] "{channels} канали"
#: src/mpdevil.py:1012
#: src/mpdevil.py:1015
msgid "(restart required)"
msgstr "(необходим е рестарт)"
#: src/mpdevil.py:1058
#: src/mpdevil.py:1061
msgid "Use Client-side decoration"
msgstr "Използвай декорация от Клиентска страна"
#: src/mpdevil.py:1059
#: src/mpdevil.py:1062
msgid "Show stop button"
msgstr "Покажи бутон стоп"
#: src/mpdevil.py:1060
#: src/mpdevil.py:1063
msgid "Show audio format"
msgstr "Покажи аудио формат"
#: src/mpdevil.py:1061
#: src/mpdevil.py:1064
msgid "Show lyrics button"
msgstr "Покажи бутон за лирики"
#: src/mpdevil.py:1062
#: src/mpdevil.py:1065
msgid "Place playlist at the side"
msgstr "Постави плейлитът на страни"
#: src/mpdevil.py:1068
msgid "Main cover size"
msgstr "Големина на главната обложка"
#: src/mpdevil.py:1069
#: src/mpdevil.py:1071
msgid "Album view cover size"
msgstr "Големина за основна облечка"
#: src/mpdevil.py:1070
#: src/mpdevil.py:1072
msgid "Action bar icon size"
msgstr "Големина за иконите на бутоните"
#: src/mpdevil.py:1080
#: src/mpdevil.py:1082
msgid "Support “MPRIS”"
msgstr "Поддръжка на “MPRIS”"
#: src/mpdevil.py:1081
#: src/mpdevil.py:1083
msgid "Sort albums by year"
msgstr "Сортирай албумите по година"
#: src/mpdevil.py:1082
#: src/mpdevil.py:1084
msgid "Send notification on title change"
msgstr "Прати известие при промяна на заглавие"
#: src/mpdevil.py:1083
#: src/mpdevil.py:1085
msgid "Play selected albums and titles immediately"
msgstr "Възпроизведи избраните албуми и заглавия веднага"
#: src/mpdevil.py:1084
#: src/mpdevil.py:1086
msgid "Rewind via previous button"
msgstr "Пренавий чрез бутон назад"
#: src/mpdevil.py:1085
#: src/mpdevil.py:1087
msgid "Stop playback on quit"
msgstr "Прекрати възпроизвеждането при изход"
#: src/mpdevil.py:1112
#: src/mpdevil.py:1114
msgid "Choose directory"
msgstr "Избери директория"
#: src/mpdevil.py:1125
#: src/mpdevil.py:1127
msgid "Connect via Unix domain socket"
msgstr "Свържи чрез Unix domain socket"
#: src/mpdevil.py:1144
#: src/mpdevil.py:1146
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 "
@ -111,146 +107,147 @@ msgstr ""
"този регулярен израз. %AlbumArtist% и %Album% ще бъдат заместени от "
"съответстващите тагове от песента."
#: src/mpdevil.py:1149
#: src/mpdevil.py:1151
msgid "Socket:"
msgstr "Сокет:"
#: src/mpdevil.py:1151
#: src/mpdevil.py:1153
msgid "Host:"
msgstr "Хост:"
#: src/mpdevil.py:1153
#: src/mpdevil.py:1155
msgid "Password:"
msgstr "Парола:"
#: src/mpdevil.py:1154
#: src/mpdevil.py:1156
msgid "Music lib:"
msgstr "Музикална библиотека:"
#: src/mpdevil.py:1156
#: src/mpdevil.py:1158
msgid "Cover regex:"
msgstr "Обложка - регулярен израз:"
#: src/mpdevil.py:1180 src/mpdevil.py:3560
#: src/mpdevil.py:1182 src/mpdevil.py:3577
msgid "Profile 1"
msgstr "Профил 1"
#: src/mpdevil.py:1181 src/mpdevil.py:3560
#: src/mpdevil.py:1183 src/mpdevil.py:3577
msgid "Profile 2"
msgstr "Профил 2"
#: src/mpdevil.py:1182 src/mpdevil.py:3560
#: src/mpdevil.py:1184 src/mpdevil.py:3577
msgid "Profile 3"
msgstr "Профил 3"
#. connect button
#: src/mpdevil.py:1186 src/mpdevil.py:3448
#: src/mpdevil.py:1188 src/mpdevil.py:3467
msgid "Connect"
msgstr "Свържи"
#: src/mpdevil.py:1209 src/mpdevil.py:1211 src/mpdevil.py:3449
#: src/mpdevil.py:3552
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
#: src/mpdevil.py:3569
msgid "Preferences"
msgstr "Предпочитания"
#: src/mpdevil.py:1224 src/mpdevil.py:1234
#: src/mpdevil.py:1225 src/mpdevil.py:1235
msgid "View"
msgstr "Поглед"
#: src/mpdevil.py:1225 src/mpdevil.py:1235
#: src/mpdevil.py:1226 src/mpdevil.py:1236
msgid "Behavior"
msgstr "Държане"
#: src/mpdevil.py:1226 src/mpdevil.py:1236
#: src/mpdevil.py:1227 src/mpdevil.py:1237
msgid "Profiles"
msgstr "Профили"
#: src/mpdevil.py:1253
#: src/mpdevil.py:1254
msgid "Stats"
msgstr "Статистика"
#: src/mpdevil.py:1262
#: src/mpdevil.py:1263
msgid "<b>Protocol:</b>"
msgstr "<b>Протокол:</b>"
#: src/mpdevil.py:1263
#: src/mpdevil.py:1264
msgid "<b>Uptime:</b>"
msgstr "<b>Време на работа:</b>"
#: src/mpdevil.py:1264
#: src/mpdevil.py:1265
msgid "<b>Playtime:</b>"
msgstr "<b>Време на възпроизвеждане:</b>"
#: src/mpdevil.py:1265
#: src/mpdevil.py:1266
msgid "<b>Artists:</b>"
msgstr "<b>Артисти:</b>"
#: src/mpdevil.py:1266
#: src/mpdevil.py:1267
msgid "<b>Albums:</b>"
msgstr "<b>Албуми:</b>"
#: src/mpdevil.py:1267
#: src/mpdevil.py:1268
msgid "<b>Songs:</b>"
msgstr "<b>Песни::</b>"
#: src/mpdevil.py:1268
#: src/mpdevil.py:1269
msgid "<b>Total Playtime:</b>"
msgstr "<b>Цялостно време на възпроизвеждане:</b>"
#: src/mpdevil.py:1269
#: src/mpdevil.py:1270
msgid "<b>Database Update:</b>"
msgstr "<b>Актуализация на базата с данни:</b>"
#: src/mpdevil.py:1348
#: src/mpdevil.py:1360
msgid "Add to playlist"
msgstr ""
#: src/mpdevil.py:1351
#: src/mpdevil.py:1363
msgid "Show in file manager"
msgstr ""
#: src/mpdevil.py:1355 src/mpdevil.py:1590 src/mpdevil.py:2304
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
msgid "Append"
msgstr "Добави"
#: src/mpdevil.py:1356 src/mpdevil.py:1591 src/mpdevil.py:2305
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
#: src/mpdevil.py:3018 src/mpdevil.py:3051
#, fuzzy
msgid "Play"
msgstr "Свири"
#: src/mpdevil.py:1357 src/mpdevil.py:1592 src/mpdevil.py:2306
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
msgid "Enqueue"
msgstr "На опашката"
#: src/mpdevil.py:1374
#: src/mpdevil.py:1386
msgid "MPD-Tag"
msgstr "MPD-Етикет"
#: src/mpdevil.py:1377
#: src/mpdevil.py:1389
msgid "Value"
msgstr "Стойност"
#: src/mpdevil.py:1448 src/mpdevil.py:2510
#: src/mpdevil.py:1460 src/mpdevil.py:2522
msgid "No"
msgstr "№"
#. the order of weight_set and weight seems to be important here
#: src/mpdevil.py:1449 src/mpdevil.py:2512
#: src/mpdevil.py:1461 src/mpdevil.py:2523
msgid "Title"
msgstr "Заглавие"
#: src/mpdevil.py:1450 src/mpdevil.py:2513
#: src/mpdevil.py:1462 src/mpdevil.py:2524
msgid "Length"
msgstr "Дължина"
#: src/mpdevil.py:1463
#: src/mpdevil.py:1475
msgid "Add all titles to playlist"
msgstr "Добави всички заглавия към плейлист"
#: src/mpdevil.py:1464
#: src/mpdevil.py:1476
msgid "Directly play all titles"
msgstr "Директно възпроизведи всички заглавия"
#: src/mpdevil.py:1465
#: src/mpdevil.py:1477
msgid ""
"Append all titles after the currently playing track and clear the playlist "
"from all other songs"
@ -258,150 +255,160 @@ msgstr ""
"Добави всички заглавия след песента която се възпроизвежда и изчисти от "
"всички други песни"
#: src/mpdevil.py:1559 src/mpdevil.py:2394 src/mpdevil.py:2671
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
#, python-brace-format
msgid "{number} song ({duration})"
msgid_plural "{number} songs ({duration})"
msgstr[0] "{number} песен ({duration})"
msgstr[1] "{number} песни ({duration})"
#: src/mpdevil.py:1658
#: src/mpdevil.py:1669
#, python-brace-format
msgid "{hits} hit"
msgid_plural "{hits} hits"
msgstr[0] "{hits} попадение"
msgstr[1] "{hits} попадения"
#: src/mpdevil.py:1743
#: src/mpdevil.py:1754
msgid "all tags"
msgstr "всички тагове"
#: src/mpdevil.py:1875
#: src/mpdevil.py:1884
msgid "all genres"
msgstr "всички жанрове"
#: src/mpdevil.py:1901
#: src/mpdevil.py:1907
msgid "all artists"
msgstr "всички артисти"
#: src/mpdevil.py:2314
#: src/mpdevil.py:2323
msgid "Save"
msgstr "Запазване"
#: src/mpdevil.py:2318
#: src/mpdevil.py:2327
msgid "Delete"
msgstr "Изтриване"
#: src/mpdevil.py:2439 data/ShortcutsWindow.ui:240
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
msgid "Clear playlist"
msgstr "Изчисти плейлист"
#: src/mpdevil.py:2701
#: src/mpdevil.py:2708
msgid "Scroll to current song"
msgstr "Превъртане до моментната песен"
#: src/mpdevil.py:2713
#: src/mpdevil.py:2718
msgid "Playlists"
msgstr "Плейлисти"
#: src/mpdevil.py:2814
#: src/mpdevil.py:2828
msgid "searching…"
msgstr "търсене…"
#: src/mpdevil.py:2819
#: src/mpdevil.py:2833
msgid "connection error"
msgstr "грешка при свързване"
#: src/mpdevil.py:2821
#: src/mpdevil.py:2835
msgid "lyrics not found"
msgstr "лириките не са намерени"
#: src/mpdevil.py:2924
#: src/mpdevil.py:2961
msgid "Lyrics"
msgstr "Лирики"
#: src/mpdevil.py:3015 src/mpdevil.py:3016
#, python-brace-format
msgid "{number} song"
msgid_plural "{number} songs"
msgstr[0] "{number} песен"
msgstr[1] "{number} песни"
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr "Спри"
#: src/mpdevil.py:3201
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr "Предишно заглавие"
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr "Следващо заглавие"
#: src/mpdevil.py:3048
#, fuzzy
msgid "Pause"
msgstr "Пауза"
#: src/mpdevil.py:3220
msgid "Repeat mode"
msgstr "Повтарящ режим"
#: src/mpdevil.py:3202
#: src/mpdevil.py:3221
msgid "Random mode"
msgstr "Случаен режим"
#: src/mpdevil.py:3203
#: src/mpdevil.py:3222
msgid "Single mode"
msgstr "Единичен режим"
#: src/mpdevil.py:3204
#: src/mpdevil.py:3223
msgid "Consume mode"
msgstr "Консумиращ режим"
#: src/mpdevil.py:3418
#: src/mpdevil.py:3437
msgid "Updating Database…"
msgstr "Актуализиране на базата с данни…"
#: src/mpdevil.py:3470
#: src/mpdevil.py:3489
#, python-brace-format
msgid "Connection to “{socket}” failed"
msgstr "Свързването със “{socket}” се провали"
#: src/mpdevil.py:3472
#: src/mpdevil.py:3491
#, python-brace-format
msgid "Connection to “{host}:{port}” failed"
msgstr "Свързването със “{host}:{port}” се провали"
#: src/mpdevil.py:3537
#: src/mpdevil.py:3553
msgid "Search"
msgstr "Търси"
#: src/mpdevil.py:3540 data/ShortcutsWindow.ui:99
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
msgid "Back to current album"
msgstr "Обратно в моментния албум"
#: src/mpdevil.py:3553
#: src/mpdevil.py:3570
msgid "Keyboard Shortcuts"
msgstr "Преки пътища на клавиатурата"
#: src/mpdevil.py:3554
#: src/mpdevil.py:3571
msgid "Help"
msgstr "Помощ"
#: src/mpdevil.py:3555
#: src/mpdevil.py:3572
msgid "About mpdevil"
msgstr "За mpdevil"
#: src/mpdevil.py:3557
#: src/mpdevil.py:3574
msgid "Update Database"
msgstr "Актуализирай базата с данни"
#: src/mpdevil.py:3558
#: src/mpdevil.py:3575
msgid "Server Stats"
msgstr "Статистика на сървърът"
#: src/mpdevil.py:3565
#: src/mpdevil.py:3582
msgid "Mini Player"
msgstr "Мини Плеър"
#: src/mpdevil.py:3566
#: src/mpdevil.py:3583
msgid "Genre Filter"
msgstr "Филтър на Жанрове"
#: src/mpdevil.py:3576
#: src/mpdevil.py:3593
msgid "Menu"
msgstr "Меню"
#: src/mpdevil.py:3629 src/mpdevil.py:3631
#: src/mpdevil.py:3644 src/mpdevil.py:3646
msgid "connecting…"
msgstr "свързване…"
#: src/mpdevil.py:3790
#: src/mpdevil.py:3825
msgid "Debug mode"
msgstr "Debug режим"
@ -474,25 +481,14 @@ msgid "Playback"
msgstr "Възпроизвеждане"
#: data/ShortcutsWindow.ui:112
#, fuzzy
msgid "Play/Pause"
msgstr "Пусни/Пауза"
#: data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr "Спри"
#: data/ShortcutsWindow.ui:126
msgid "Stop after current title"
msgstr "Спри след моментното заглавие"
#: data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr "Следващо заглавие"
#: data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr "Предишно заглавие"
#: data/ShortcutsWindow.ui:147
msgid "Seek forward"
msgstr "Превърти напред"
@ -557,6 +553,15 @@ msgstr "Плейлист"
msgid "Remove selected song"
msgstr "Премахни избраната песен"
#~ msgid "Main cover size"
#~ msgstr "Големина на главната обложка"
#, python-brace-format
#~ msgid "{number} song"
#~ msgid_plural "{number} songs"
#~ msgstr[0] "{number} песен"
#~ msgstr[1] "{number} песни"
#~ msgid "Open with…"
#~ msgstr "Отвори със…"

230
po/de.po
View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-07 12:12+0200\n"
"PO-Revision-Date: 2022-04-07 12:13+0200\n"
"POT-Creation-Date: 2022-09-19 20:03+0200\n"
"PO-Revision-Date: 2022-09-19 20:04+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\n"
@ -18,89 +18,85 @@ msgstr ""
"X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/mpdevil.py:504
#: src/mpdevil.py:502
#, python-brace-format
msgid "{days} day"
msgid_plural "{days} days"
msgstr[0] "{days} Tag"
msgstr[1] "{days} Tage"
#: src/mpdevil.py:541
#: src/mpdevil.py:539
#, python-brace-format
msgid "{channels} channel"
msgid_plural "{channels} channels"
msgstr[0] "{channels} Kanal"
msgstr[1] "{channels} Kanäle"
#: src/mpdevil.py:1012
#: src/mpdevil.py:1015
msgid "(restart required)"
msgstr "(Neustart erforderlich)"
#: src/mpdevil.py:1058
#: src/mpdevil.py:1061
msgid "Use Client-side decoration"
msgstr "„Client-side decoration“ benutzen"
#: src/mpdevil.py:1059
#: src/mpdevil.py:1062
msgid "Show stop button"
msgstr "Stopp-Knopf anzeigen"
#: src/mpdevil.py:1060
#: src/mpdevil.py:1063
msgid "Show audio format"
msgstr "Audioformat anzeigen"
#: src/mpdevil.py:1061
#: src/mpdevil.py:1064
msgid "Show lyrics button"
msgstr "Liedtext-Knopf anzeigen"
#: src/mpdevil.py:1062
#: src/mpdevil.py:1065
msgid "Place playlist at the side"
msgstr "Wiedergabeliste seitlich anzeigen"
#: src/mpdevil.py:1068
msgid "Main cover size"
msgstr "Größe des Hauptcovers"
#: src/mpdevil.py:1069
#: src/mpdevil.py:1071
msgid "Album view cover size"
msgstr "Covergröße in Albumliste"
#: src/mpdevil.py:1070
#: src/mpdevil.py:1072
msgid "Action bar icon size"
msgstr "Symbolgröße Aktionsleiste"
#: src/mpdevil.py:1080
#: src/mpdevil.py:1082
msgid "Support “MPRIS”"
msgstr "„MPRIS“ unterstützen"
#: src/mpdevil.py:1081
#: src/mpdevil.py:1083
msgid "Sort albums by year"
msgstr "Alben nach Jahr sortieren"
#: src/mpdevil.py:1082
#: src/mpdevil.py:1084
msgid "Send notification on title change"
msgstr "Über Titelwechsel benachrichtigen"
#: src/mpdevil.py:1083
#: src/mpdevil.py:1085
msgid "Play selected albums and titles immediately"
msgstr "Ausgewählte Alben und Titel sofort abspielen"
#: src/mpdevil.py:1084
#: src/mpdevil.py:1086
msgid "Rewind via previous button"
msgstr "Klassischer Rück­spul­knopf"
#: src/mpdevil.py:1085
#: src/mpdevil.py:1087
msgid "Stop playback on quit"
msgstr "Wiedergabe beim Beenden stoppen"
#: src/mpdevil.py:1112
#: src/mpdevil.py:1114
msgid "Choose directory"
msgstr "Verzeichnis wählen"
#: src/mpdevil.py:1125
#: src/mpdevil.py:1127
msgid "Connect via Unix domain socket"
msgstr "Über „Unix domain socket“ verbinden"
#: src/mpdevil.py:1144
#: src/mpdevil.py:1146
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 "
@ -110,146 +106,146 @@ msgstr ""
"regulären Ausdruck entspricht, wird angezeigt. %AlbumArtist% und %Album% "
"werden durch die entsprechenden Tags des Liedes ersetzt."
#: src/mpdevil.py:1149
#: src/mpdevil.py:1151
msgid "Socket:"
msgstr "Socket:"
#: src/mpdevil.py:1151
#: src/mpdevil.py:1153
msgid "Host:"
msgstr "Host:"
#: src/mpdevil.py:1153
#: src/mpdevil.py:1155
msgid "Password:"
msgstr "Passwort:"
#: src/mpdevil.py:1154
#: src/mpdevil.py:1156
msgid "Music lib:"
msgstr "Musikverzeichnis:"
#: src/mpdevil.py:1156
#: src/mpdevil.py:1158
msgid "Cover regex:"
msgstr "Cover-Regex:"
#: src/mpdevil.py:1180 src/mpdevil.py:3560
#: src/mpdevil.py:1182 src/mpdevil.py:3577
msgid "Profile 1"
msgstr "Profil 1"
#: src/mpdevil.py:1181 src/mpdevil.py:3560
#: src/mpdevil.py:1183 src/mpdevil.py:3577
msgid "Profile 2"
msgstr "Profil 2"
#: src/mpdevil.py:1182 src/mpdevil.py:3560
#: src/mpdevil.py:1184 src/mpdevil.py:3577
msgid "Profile 3"
msgstr "Profil 3"
#. connect button
#: src/mpdevil.py:1186 src/mpdevil.py:3448
#: src/mpdevil.py:1188 src/mpdevil.py:3467
msgid "Connect"
msgstr "Verbinden"
#: src/mpdevil.py:1209 src/mpdevil.py:1211 src/mpdevil.py:3449
#: src/mpdevil.py:3552
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
#: src/mpdevil.py:3569
msgid "Preferences"
msgstr "Einstellungen"
#: src/mpdevil.py:1224 src/mpdevil.py:1234
#: src/mpdevil.py:1225 src/mpdevil.py:1235
msgid "View"
msgstr "Ansicht"
#: src/mpdevil.py:1225 src/mpdevil.py:1235
#: src/mpdevil.py:1226 src/mpdevil.py:1236
msgid "Behavior"
msgstr "Verhalten"
#: src/mpdevil.py:1226 src/mpdevil.py:1236
#: src/mpdevil.py:1227 src/mpdevil.py:1237
msgid "Profiles"
msgstr "Profile"
#: src/mpdevil.py:1253
#: src/mpdevil.py:1254
msgid "Stats"
msgstr "Statistik"
#: src/mpdevil.py:1262
#: src/mpdevil.py:1263
msgid "<b>Protocol:</b>"
msgstr "<b>Protokoll:</b>"
#: src/mpdevil.py:1263
#: src/mpdevil.py:1264
msgid "<b>Uptime:</b>"
msgstr "<b>Uptime:</b>"
#: src/mpdevil.py:1264
#: src/mpdevil.py:1265
msgid "<b>Playtime:</b>"
msgstr "<b>Wiedergabezeit:</b>"
#: src/mpdevil.py:1265
#: src/mpdevil.py:1266
msgid "<b>Artists:</b>"
msgstr "<b>Künstler:</b>"
#: src/mpdevil.py:1266
#: src/mpdevil.py:1267
msgid "<b>Albums:</b>"
msgstr "<b>Alben:</b>"
#: src/mpdevil.py:1267
#: src/mpdevil.py:1268
msgid "<b>Songs:</b>"
msgstr "<b>Titel:</b>"
#: src/mpdevil.py:1268
#: src/mpdevil.py:1269
msgid "<b>Total Playtime:</b>"
msgstr "<b>Gesamtwiedergabezeit:</b>"
#: src/mpdevil.py:1269
#: src/mpdevil.py:1270
msgid "<b>Database Update:</b>"
msgstr "<b>Datenbankaktualisierung:</b>"
#: src/mpdevil.py:1348
#: src/mpdevil.py:1360
msgid "Add to playlist"
msgstr "An Wiedergabeliste anhängen"
#: src/mpdevil.py:1351
#: src/mpdevil.py:1363
msgid "Show in file manager"
msgstr "In Dateimanager anzeigen"
#: src/mpdevil.py:1355 src/mpdevil.py:1590 src/mpdevil.py:2304
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
msgid "Append"
msgstr "Anhängen"
#: src/mpdevil.py:1356 src/mpdevil.py:1591 src/mpdevil.py:2305
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
#: src/mpdevil.py:3018 src/mpdevil.py:3051
msgid "Play"
msgstr "Abspielen"
msgstr "Wiedergabe"
#: src/mpdevil.py:1357 src/mpdevil.py:1592 src/mpdevil.py:2306
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
msgid "Enqueue"
msgstr "Einreihen"
#: src/mpdevil.py:1374
#: src/mpdevil.py:1386
msgid "MPD-Tag"
msgstr "MPD-Tag"
#: src/mpdevil.py:1377
#: src/mpdevil.py:1389
msgid "Value"
msgstr "Wert"
#: src/mpdevil.py:1448 src/mpdevil.py:2510
#: src/mpdevil.py:1460 src/mpdevil.py:2522
msgid "No"
msgstr "Nr."
#. the order of weight_set and weight seems to be important here
#: src/mpdevil.py:1449 src/mpdevil.py:2512
#: src/mpdevil.py:1461 src/mpdevil.py:2523
msgid "Title"
msgstr "Titel"
#: src/mpdevil.py:1450 src/mpdevil.py:2513
#: src/mpdevil.py:1462 src/mpdevil.py:2524
msgid "Length"
msgstr "Länge"
#: src/mpdevil.py:1463
#: src/mpdevil.py:1475
msgid "Add all titles to playlist"
msgstr "Alle Titel der Wiedergabeliste anhängen"
#: src/mpdevil.py:1464
#: src/mpdevil.py:1476
msgid "Directly play all titles"
msgstr "Alle Titel sofort abspielen"
#: src/mpdevil.py:1465
#: src/mpdevil.py:1477
msgid ""
"Append all titles after the currently playing track and clear the playlist "
"from all other songs"
@ -257,150 +253,159 @@ msgstr ""
"Alle Titel hinter dem aktuellen Stück einreihen und die weitere "
"Wiedergabeliste leeren"
#: src/mpdevil.py:1559 src/mpdevil.py:2394 src/mpdevil.py:2671
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
#, 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:1658
#: src/mpdevil.py:1669
#, python-brace-format
msgid "{hits} hit"
msgid_plural "{hits} hits"
msgstr[0] "{hits} Treffer"
msgstr[1] "{hits} Treffer"
#: src/mpdevil.py:1743
#: src/mpdevil.py:1754
msgid "all tags"
msgstr "Alle Tags"
#: src/mpdevil.py:1875
#: src/mpdevil.py:1884
msgid "all genres"
msgstr "Alle Genres"
#: src/mpdevil.py:1901
#: src/mpdevil.py:1907
msgid "all artists"
msgstr "Alle Interpreten"
#: src/mpdevil.py:2314
#: src/mpdevil.py:2323
msgid "Save"
msgstr "Speichern"
#: src/mpdevil.py:2318
#: src/mpdevil.py:2327
msgid "Delete"
msgstr "Löschen"
#: src/mpdevil.py:2439 data/ShortcutsWindow.ui:240
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
msgid "Clear playlist"
msgstr "Wiedergabeliste leeren"
#: src/mpdevil.py:2701
#: src/mpdevil.py:2708
msgid "Scroll to current song"
msgstr "Gehe zu aktuellem Lied"
#: src/mpdevil.py:2713
#: src/mpdevil.py:2718
msgid "Playlists"
msgstr "Wiedergabelisten"
#: src/mpdevil.py:2814
#: src/mpdevil.py:2828
msgid "searching…"
msgstr "suche…"
#: src/mpdevil.py:2819
#: src/mpdevil.py:2833
msgid "connection error"
msgstr "Verbindungsfehler"
#: src/mpdevil.py:2821
#: src/mpdevil.py:2835
msgid "lyrics not found"
msgstr "Liedtext nicht gefunden"
#: src/mpdevil.py:2924
#: src/mpdevil.py:2961
msgid "Lyrics"
msgstr "Liedtext"
#: src/mpdevil.py:3015 src/mpdevil.py:3016
#, python-brace-format
msgid "{number} song"
msgid_plural "{number} songs"
msgstr[0] "{number} Stück"
msgstr[1] "{number} Stücke"
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr "Stopp"
#: src/mpdevil.py:3201
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr "Vorheriger Titel"
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr "Nächster Titel"
#: src/mpdevil.py:3048
msgid "Pause"
msgstr "Pause"
#: src/mpdevil.py:3220
msgid "Repeat mode"
msgstr "Dauerschleife"
#: src/mpdevil.py:3202
#: src/mpdevil.py:3221
msgid "Random mode"
msgstr "Zufallsmodus"
#: src/mpdevil.py:3203
#: src/mpdevil.py:3222
msgid "Single mode"
msgstr "Einzelstückmodus"
#: src/mpdevil.py:3204
#: src/mpdevil.py:3223
msgid "Consume mode"
msgstr "Wiedergabeliste verbrauchen"
#: src/mpdevil.py:3418
#: src/mpdevil.py:3437
msgid "Updating Database…"
msgstr "Datenbank aktualisieren…"
#: src/mpdevil.py:3470
#: src/mpdevil.py:3489
#, python-brace-format
msgid "Connection to “{socket}” failed"
msgstr "Verbindung zu „{socket}“ fehlgeschlagen"
#: src/mpdevil.py:3472
#: src/mpdevil.py:3491
#, python-brace-format
msgid "Connection to “{host}:{port}” failed"
msgstr "Verbindung zu „{host}:{port}“ fehlgeschlagen"
#: src/mpdevil.py:3537
#: src/mpdevil.py:3553
msgid "Search"
msgstr "Suche"
#: src/mpdevil.py:3540 data/ShortcutsWindow.ui:99
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
msgid "Back to current album"
msgstr "Zurück zu aktuellem Album"
#: src/mpdevil.py:3553
#: src/mpdevil.py:3570
msgid "Keyboard Shortcuts"
msgstr "Tastenkürzel"
#: src/mpdevil.py:3554
#: src/mpdevil.py:3571
msgid "Help"
msgstr "Hilfe"
#: src/mpdevil.py:3555
#: src/mpdevil.py:3572
msgid "About mpdevil"
msgstr "Info zu mpdevil"
#: src/mpdevil.py:3557
#: src/mpdevil.py:3574
msgid "Update Database"
msgstr "Datenbank aktualisieren"
#: src/mpdevil.py:3558
#: src/mpdevil.py:3575
msgid "Server Stats"
msgstr "Serverstatistik"
#: src/mpdevil.py:3565
#: src/mpdevil.py:3582
msgid "Mini Player"
msgstr "Miniplayer"
#: src/mpdevil.py:3566
#: src/mpdevil.py:3583
msgid "Genre Filter"
msgstr "Genrefilter"
#: src/mpdevil.py:3576
#: src/mpdevil.py:3593
msgid "Menu"
msgstr "Menü"
#: src/mpdevil.py:3629 src/mpdevil.py:3631
#: src/mpdevil.py:3644 src/mpdevil.py:3646
msgid "connecting…"
msgstr "verbinden…"
#: src/mpdevil.py:3790
#: src/mpdevil.py:3825
msgid "Debug mode"
msgstr "Debugmodus"
@ -476,22 +481,10 @@ msgstr "Wiedergabe"
msgid "Play/Pause"
msgstr "Wiedergabe/Pause"
#: data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr "Stopp"
#: data/ShortcutsWindow.ui:126
msgid "Stop after current title"
msgstr "Nach aktuellem Titel stoppen"
#: data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr "Nächster Titel"
#: data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr "Vorheriger Titel"
#: data/ShortcutsWindow.ui:147
msgid "Seek forward"
msgstr "Vorspulen"
@ -556,6 +549,15 @@ msgstr "Wiedergabeliste"
msgid "Remove selected song"
msgstr "Ausgewählten Titel entfernen"
#~ msgid "Main cover size"
#~ msgstr "Größe des Hauptcovers"
#, python-brace-format
#~ msgid "{number} song"
#~ msgid_plural "{number} songs"
#~ msgstr[0] "{number} Stück"
#~ msgstr[1] "{number} Stücke"
#~ msgid "Open with…"
#~ msgstr "Öffnen mit…"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mpdevil\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-07 12:12+0200\n"
"POT-Creation-Date: 2022-09-19 20:03+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"
@ -18,384 +18,389 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#: src/mpdevil.py:504
#: src/mpdevil.py:502
#, python-brace-format
msgid "{days} day"
msgid_plural "{days} days"
msgstr[0] ""
msgstr[1] ""
#: src/mpdevil.py:541
#: src/mpdevil.py:539
#, python-brace-format
msgid "{channels} channel"
msgid_plural "{channels} channels"
msgstr[0] ""
msgstr[1] ""
#: src/mpdevil.py:1012
#: src/mpdevil.py:1015
msgid "(restart required)"
msgstr ""
#: src/mpdevil.py:1058
#: src/mpdevil.py:1061
msgid "Use Client-side decoration"
msgstr ""
#: src/mpdevil.py:1059
#: src/mpdevil.py:1062
msgid "Show stop button"
msgstr ""
#: src/mpdevil.py:1060
#: src/mpdevil.py:1063
msgid "Show audio format"
msgstr ""
#: src/mpdevil.py:1061
#: src/mpdevil.py:1064
msgid "Show lyrics button"
msgstr ""
#: src/mpdevil.py:1062
#: src/mpdevil.py:1065
msgid "Place playlist at the side"
msgstr ""
#: src/mpdevil.py:1068
msgid "Main cover size"
msgstr ""
#: src/mpdevil.py:1069
#: src/mpdevil.py:1071
msgid "Album view cover size"
msgstr ""
#: src/mpdevil.py:1070
#: src/mpdevil.py:1072
msgid "Action bar icon size"
msgstr ""
#: src/mpdevil.py:1080
#: src/mpdevil.py:1082
msgid "Support “MPRIS”"
msgstr ""
#: src/mpdevil.py:1081
#: src/mpdevil.py:1083
msgid "Sort albums by year"
msgstr ""
#: src/mpdevil.py:1082
#: src/mpdevil.py:1084
msgid "Send notification on title change"
msgstr ""
#: src/mpdevil.py:1083
#: src/mpdevil.py:1085
msgid "Play selected albums and titles immediately"
msgstr ""
#: src/mpdevil.py:1084
#: src/mpdevil.py:1086
msgid "Rewind via previous button"
msgstr ""
#: src/mpdevil.py:1085
#: src/mpdevil.py:1087
msgid "Stop playback on quit"
msgstr ""
#: src/mpdevil.py:1112
#: src/mpdevil.py:1114
msgid "Choose directory"
msgstr ""
#: src/mpdevil.py:1125
#: src/mpdevil.py:1127
msgid "Connect via Unix domain socket"
msgstr ""
#: src/mpdevil.py:1144
#: src/mpdevil.py:1146
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:1149
#: src/mpdevil.py:1151
msgid "Socket:"
msgstr ""
#: src/mpdevil.py:1151
#: src/mpdevil.py:1153
msgid "Host:"
msgstr ""
#: src/mpdevil.py:1153
#: src/mpdevil.py:1155
msgid "Password:"
msgstr ""
#: src/mpdevil.py:1154
#: src/mpdevil.py:1156
msgid "Music lib:"
msgstr ""
#: src/mpdevil.py:1156
#: src/mpdevil.py:1158
msgid "Cover regex:"
msgstr ""
#: src/mpdevil.py:1180 src/mpdevil.py:3560
#: src/mpdevil.py:1182 src/mpdevil.py:3577
msgid "Profile 1"
msgstr ""
#: src/mpdevil.py:1181 src/mpdevil.py:3560
#: src/mpdevil.py:1183 src/mpdevil.py:3577
msgid "Profile 2"
msgstr ""
#: src/mpdevil.py:1182 src/mpdevil.py:3560
#: src/mpdevil.py:1184 src/mpdevil.py:3577
msgid "Profile 3"
msgstr ""
#. connect button
#: src/mpdevil.py:1186 src/mpdevil.py:3448
#: src/mpdevil.py:1188 src/mpdevil.py:3467
msgid "Connect"
msgstr ""
#: src/mpdevil.py:1209 src/mpdevil.py:1211 src/mpdevil.py:3449
#: src/mpdevil.py:3552
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
#: src/mpdevil.py:3569
msgid "Preferences"
msgstr ""
#: src/mpdevil.py:1224 src/mpdevil.py:1234
#: src/mpdevil.py:1225 src/mpdevil.py:1235
msgid "View"
msgstr ""
#: src/mpdevil.py:1225 src/mpdevil.py:1235
#: src/mpdevil.py:1226 src/mpdevil.py:1236
msgid "Behavior"
msgstr ""
#: src/mpdevil.py:1226 src/mpdevil.py:1236
#: src/mpdevil.py:1227 src/mpdevil.py:1237
msgid "Profiles"
msgstr ""
#: src/mpdevil.py:1253
#: src/mpdevil.py:1254
msgid "Stats"
msgstr ""
#: src/mpdevil.py:1262
#: src/mpdevil.py:1263
msgid "<b>Protocol:</b>"
msgstr ""
#: src/mpdevil.py:1263
#: src/mpdevil.py:1264
msgid "<b>Uptime:</b>"
msgstr ""
#: src/mpdevil.py:1264
#: src/mpdevil.py:1265
msgid "<b>Playtime:</b>"
msgstr ""
#: src/mpdevil.py:1265
#: src/mpdevil.py:1266
msgid "<b>Artists:</b>"
msgstr ""
#: src/mpdevil.py:1266
#: src/mpdevil.py:1267
msgid "<b>Albums:</b>"
msgstr ""
#: src/mpdevil.py:1267
#: src/mpdevil.py:1268
msgid "<b>Songs:</b>"
msgstr ""
#: src/mpdevil.py:1268
#: src/mpdevil.py:1269
msgid "<b>Total Playtime:</b>"
msgstr ""
#: src/mpdevil.py:1269
#: src/mpdevil.py:1270
msgid "<b>Database Update:</b>"
msgstr ""
#: src/mpdevil.py:1348
#: src/mpdevil.py:1360
msgid "Add to playlist"
msgstr ""
#: src/mpdevil.py:1351
#: src/mpdevil.py:1363
msgid "Show in file manager"
msgstr ""
#: src/mpdevil.py:1355 src/mpdevil.py:1590 src/mpdevil.py:2304
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
msgid "Append"
msgstr ""
#: src/mpdevil.py:1356 src/mpdevil.py:1591 src/mpdevil.py:2305
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
#: src/mpdevil.py:3018 src/mpdevil.py:3051
msgid "Play"
msgstr ""
#: src/mpdevil.py:1357 src/mpdevil.py:1592 src/mpdevil.py:2306
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
msgid "Enqueue"
msgstr ""
#: src/mpdevil.py:1374
#: src/mpdevil.py:1386
msgid "MPD-Tag"
msgstr ""
#: src/mpdevil.py:1377
#: src/mpdevil.py:1389
msgid "Value"
msgstr ""
#: src/mpdevil.py:1448 src/mpdevil.py:2510
#: src/mpdevil.py:1460 src/mpdevil.py:2522
msgid "No"
msgstr ""
#. the order of weight_set and weight seems to be important here
#: src/mpdevil.py:1449 src/mpdevil.py:2512
#: src/mpdevil.py:1461 src/mpdevil.py:2523
msgid "Title"
msgstr ""
#: src/mpdevil.py:1450 src/mpdevil.py:2513
#: src/mpdevil.py:1462 src/mpdevil.py:2524
msgid "Length"
msgstr ""
#: src/mpdevil.py:1463
#: src/mpdevil.py:1475
msgid "Add all titles to playlist"
msgstr ""
#: src/mpdevil.py:1464
#: src/mpdevil.py:1476
msgid "Directly play all titles"
msgstr ""
#: src/mpdevil.py:1465
#: 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:1559 src/mpdevil.py:2394 src/mpdevil.py:2671
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
#, python-brace-format
msgid "{number} song ({duration})"
msgid_plural "{number} songs ({duration})"
msgstr[0] ""
msgstr[1] ""
#: src/mpdevil.py:1658
#: src/mpdevil.py:1669
#, python-brace-format
msgid "{hits} hit"
msgid_plural "{hits} hits"
msgstr[0] ""
msgstr[1] ""
#: src/mpdevil.py:1743
#: src/mpdevil.py:1754
msgid "all tags"
msgstr ""
#: src/mpdevil.py:1875
#: src/mpdevil.py:1884
msgid "all genres"
msgstr ""
#: src/mpdevil.py:1901
#: src/mpdevil.py:1907
msgid "all artists"
msgstr ""
#: src/mpdevil.py:2314
#: src/mpdevil.py:2323
msgid "Save"
msgstr ""
#: src/mpdevil.py:2318
#: src/mpdevil.py:2327
msgid "Delete"
msgstr ""
#: src/mpdevil.py:2439 data/ShortcutsWindow.ui:240
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
msgid "Clear playlist"
msgstr ""
#: src/mpdevil.py:2701
#: src/mpdevil.py:2708
msgid "Scroll to current song"
msgstr ""
#: src/mpdevil.py:2713
#: src/mpdevil.py:2718
msgid "Playlists"
msgstr ""
#: src/mpdevil.py:2814
#: src/mpdevil.py:2828
msgid "searching…"
msgstr ""
#: src/mpdevil.py:2819
#: src/mpdevil.py:2833
msgid "connection error"
msgstr ""
#: src/mpdevil.py:2821
#: src/mpdevil.py:2835
msgid "lyrics not found"
msgstr ""
#: src/mpdevil.py:2924
#: src/mpdevil.py:2961
msgid "Lyrics"
msgstr ""
#: src/mpdevil.py:3015 src/mpdevil.py:3016
#, python-brace-format
msgid "{number} song"
msgid_plural "{number} songs"
msgstr[0] ""
msgstr[1] ""
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr ""
#: src/mpdevil.py:3201
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr ""
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr ""
#: src/mpdevil.py:3048
msgid "Pause"
msgstr ""
#: src/mpdevil.py:3220
msgid "Repeat mode"
msgstr ""
#: src/mpdevil.py:3202
#: src/mpdevil.py:3221
msgid "Random mode"
msgstr ""
#: src/mpdevil.py:3203
#: src/mpdevil.py:3222
msgid "Single mode"
msgstr ""
#: src/mpdevil.py:3204
#: src/mpdevil.py:3223
msgid "Consume mode"
msgstr ""
#: src/mpdevil.py:3418
#: src/mpdevil.py:3437
msgid "Updating Database…"
msgstr ""
#: src/mpdevil.py:3470
#: src/mpdevil.py:3489
#, python-brace-format
msgid "Connection to “{socket}” failed"
msgstr ""
#: src/mpdevil.py:3472
#: src/mpdevil.py:3491
#, python-brace-format
msgid "Connection to “{host}:{port}” failed"
msgstr ""
#: src/mpdevil.py:3537
#: src/mpdevil.py:3553
msgid "Search"
msgstr ""
#: src/mpdevil.py:3540 data/ShortcutsWindow.ui:99
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
msgid "Back to current album"
msgstr ""
#: src/mpdevil.py:3553
#: src/mpdevil.py:3570
msgid "Keyboard Shortcuts"
msgstr ""
#: src/mpdevil.py:3554
#: src/mpdevil.py:3571
msgid "Help"
msgstr ""
#: src/mpdevil.py:3555
#: src/mpdevil.py:3572
msgid "About mpdevil"
msgstr ""
#: src/mpdevil.py:3557
#: src/mpdevil.py:3574
msgid "Update Database"
msgstr ""
#: src/mpdevil.py:3558
#: src/mpdevil.py:3575
msgid "Server Stats"
msgstr ""
#: src/mpdevil.py:3565
#: src/mpdevil.py:3582
msgid "Mini Player"
msgstr ""
#: src/mpdevil.py:3566
#: src/mpdevil.py:3583
msgid "Genre Filter"
msgstr ""
#: src/mpdevil.py:3576
#: src/mpdevil.py:3593
msgid "Menu"
msgstr ""
#: src/mpdevil.py:3629 src/mpdevil.py:3631
#: src/mpdevil.py:3644 src/mpdevil.py:3646
msgid "connecting…"
msgstr ""
#: src/mpdevil.py:3790
#: src/mpdevil.py:3825
msgid "Debug mode"
msgstr ""
@ -471,22 +476,10 @@ msgstr ""
msgid "Play/Pause"
msgstr ""
#: data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr ""
#: data/ShortcutsWindow.ui:126
msgid "Stop after current title"
msgstr ""
#: data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr ""
#: data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr ""
#: data/ShortcutsWindow.ui:147
msgid "Seek forward"
msgstr ""

228
po/nl.po
View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-07 12:12+0200\n"
"PO-Revision-Date: 2022-04-07 12:14+0200\n"
"POT-Creation-Date: 2022-09-19 20:03+0200\n"
"PO-Revision-Date: 2022-09-19 20:04+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: nl\n"
@ -18,89 +18,85 @@ msgstr ""
"X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/mpdevil.py:504
#: src/mpdevil.py:502
#, python-brace-format
msgid "{days} day"
msgid_plural "{days} days"
msgstr[0] "{days} dag"
msgstr[1] "{days} dagen"
#: src/mpdevil.py:541
#: src/mpdevil.py:539
#, python-brace-format
msgid "{channels} channel"
msgid_plural "{channels} channels"
msgstr[0] "{channels} kanaal"
msgstr[1] "{channels} kanalen"
#: src/mpdevil.py:1012
#: src/mpdevil.py:1015
msgid "(restart required)"
msgstr "(herstart vereist)"
#: src/mpdevil.py:1058
#: src/mpdevil.py:1061
msgid "Use Client-side decoration"
msgstr "Gebruik vensterdecoratie van mpdevil"
#: src/mpdevil.py:1059
#: src/mpdevil.py:1062
msgid "Show stop button"
msgstr "Toon stopknop"
#: src/mpdevil.py:1060
#: src/mpdevil.py:1063
msgid "Show audio format"
msgstr "Toon audioformaat"
#: src/mpdevil.py:1061
#: src/mpdevil.py:1064
msgid "Show lyrics button"
msgstr "Toon songtekstknop"
#: src/mpdevil.py:1062
#: src/mpdevil.py:1065
msgid "Place playlist at the side"
msgstr "Plaats afspeellijst aan de zijkant"
#: src/mpdevil.py:1068
msgid "Main cover size"
msgstr "Grootte albumhoes"
#: src/mpdevil.py:1069
#: src/mpdevil.py:1071
msgid "Album view cover size"
msgstr "Hoesgrootte in albumlijst"
#: src/mpdevil.py:1070
#: src/mpdevil.py:1072
msgid "Action bar icon size"
msgstr "Grootte iconen werkbalk"
#: src/mpdevil.py:1080
#: src/mpdevil.py:1082
msgid "Support “MPRIS”"
msgstr "Ondersteun „MPRIS”"
#: src/mpdevil.py:1081
#: src/mpdevil.py:1083
msgid "Sort albums by year"
msgstr "Sorteer albums op jaar"
#: src/mpdevil.py:1082
#: src/mpdevil.py:1084
msgid "Send notification on title change"
msgstr "Verstuur een melding bij titelwisseling"
#: src/mpdevil.py:1083
#: src/mpdevil.py:1085
msgid "Play selected albums and titles immediately"
msgstr "Geselecteerde albums en titels direct afspelen"
#: src/mpdevil.py:1084
#: src/mpdevil.py:1086
msgid "Rewind via previous button"
msgstr "Terugspoelen met „vorige” knop"
#: src/mpdevil.py:1085
#: src/mpdevil.py:1087
msgid "Stop playback on quit"
msgstr "Stop afspelen bij afsluiten"
#: src/mpdevil.py:1112
#: src/mpdevil.py:1114
msgid "Choose directory"
msgstr "Kies een map"
#: src/mpdevil.py:1125
#: src/mpdevil.py:1127
msgid "Connect via Unix domain socket"
msgstr "Verbinden via Unix domain socket"
#: src/mpdevil.py:1144
#: src/mpdevil.py:1146
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 "
@ -110,146 +106,146 @@ msgstr ""
"met deze regex wordt getoond. %AlbumArtist% en %Album% worden vervangen door "
"de bijbehorende tags van het muziekbestand."
#: src/mpdevil.py:1149
#: src/mpdevil.py:1151
msgid "Socket:"
msgstr "Socket:"
#: src/mpdevil.py:1151
#: src/mpdevil.py:1153
msgid "Host:"
msgstr "Host:"
#: src/mpdevil.py:1153
#: src/mpdevil.py:1155
msgid "Password:"
msgstr "Wachtwoord:"
#: src/mpdevil.py:1154
#: src/mpdevil.py:1156
msgid "Music lib:"
msgstr "Muziekmap:"
#: src/mpdevil.py:1156
#: src/mpdevil.py:1158
msgid "Cover regex:"
msgstr "Regex albumhoes:"
#: src/mpdevil.py:1180 src/mpdevil.py:3560
#: src/mpdevil.py:1182 src/mpdevil.py:3577
msgid "Profile 1"
msgstr "Profiel 1"
#: src/mpdevil.py:1181 src/mpdevil.py:3560
#: src/mpdevil.py:1183 src/mpdevil.py:3577
msgid "Profile 2"
msgstr "Profiel 2"
#: src/mpdevil.py:1182 src/mpdevil.py:3560
#: src/mpdevil.py:1184 src/mpdevil.py:3577
msgid "Profile 3"
msgstr "Profiel 3"
#. connect button
#: src/mpdevil.py:1186 src/mpdevil.py:3448
#: src/mpdevil.py:1188 src/mpdevil.py:3467
msgid "Connect"
msgstr "Verbinden"
#: src/mpdevil.py:1209 src/mpdevil.py:1211 src/mpdevil.py:3449
#: src/mpdevil.py:3552
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
#: src/mpdevil.py:3569
msgid "Preferences"
msgstr "Voorkeuren"
#: src/mpdevil.py:1224 src/mpdevil.py:1234
#: src/mpdevil.py:1225 src/mpdevil.py:1235
msgid "View"
msgstr "Beeld"
#: src/mpdevil.py:1225 src/mpdevil.py:1235
#: src/mpdevil.py:1226 src/mpdevil.py:1236
msgid "Behavior"
msgstr "Gedrag"
#: src/mpdevil.py:1226 src/mpdevil.py:1236
#: src/mpdevil.py:1227 src/mpdevil.py:1237
msgid "Profiles"
msgstr "Profielen"
#: src/mpdevil.py:1253
#: src/mpdevil.py:1254
msgid "Stats"
msgstr "Statistieken"
#: src/mpdevil.py:1262
#: src/mpdevil.py:1263
msgid "<b>Protocol:</b>"
msgstr "<b>Protocol:</b>"
#: src/mpdevil.py:1263
#: src/mpdevil.py:1264
msgid "<b>Uptime:</b>"
msgstr "<b>Uptime:</b>"
#: src/mpdevil.py:1264
#: src/mpdevil.py:1265
msgid "<b>Playtime:</b>"
msgstr "<b>Afspeeltijd:</b>"
#: src/mpdevil.py:1265
#: src/mpdevil.py:1266
msgid "<b>Artists:</b>"
msgstr "<b>Artiesten:</b>"
#: src/mpdevil.py:1266
#: src/mpdevil.py:1267
msgid "<b>Albums:</b>"
msgstr "<b>Albums:</b>"
#: src/mpdevil.py:1267
#: src/mpdevil.py:1268
msgid "<b>Songs:</b>"
msgstr "<b>Titels:</b>"
#: src/mpdevil.py:1268
#: src/mpdevil.py:1269
msgid "<b>Total Playtime:</b>"
msgstr "<b>Totale speelduur:</b>"
#: src/mpdevil.py:1269
#: src/mpdevil.py:1270
msgid "<b>Database Update:</b>"
msgstr "<b>Database bijgewerkt:</b>"
#: src/mpdevil.py:1348
#: src/mpdevil.py:1360
msgid "Add to playlist"
msgstr ""
#: src/mpdevil.py:1351
#: src/mpdevil.py:1363
msgid "Show in file manager"
msgstr ""
#: src/mpdevil.py:1355 src/mpdevil.py:1590 src/mpdevil.py:2304
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
msgid "Append"
msgstr "Toevoegen"
#: src/mpdevil.py:1356 src/mpdevil.py:1591 src/mpdevil.py:2305
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
#: src/mpdevil.py:3018 src/mpdevil.py:3051
msgid "Play"
msgstr "Afspelen"
#: src/mpdevil.py:1357 src/mpdevil.py:1592 src/mpdevil.py:2306
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
msgid "Enqueue"
msgstr "In wachtrij plaatsen"
#: src/mpdevil.py:1374
#: src/mpdevil.py:1386
msgid "MPD-Tag"
msgstr "MPD-Tag"
#: src/mpdevil.py:1377
#: src/mpdevil.py:1389
msgid "Value"
msgstr "Waarde"
#: src/mpdevil.py:1448 src/mpdevil.py:2510
#: src/mpdevil.py:1460 src/mpdevil.py:2522
msgid "No"
msgstr "Nr"
#. the order of weight_set and weight seems to be important here
#: src/mpdevil.py:1449 src/mpdevil.py:2512
#: src/mpdevil.py:1461 src/mpdevil.py:2523
msgid "Title"
msgstr "Titel"
#: src/mpdevil.py:1450 src/mpdevil.py:2513
#: src/mpdevil.py:1462 src/mpdevil.py:2524
msgid "Length"
msgstr "Lengte"
#: src/mpdevil.py:1463
#: src/mpdevil.py:1475
msgid "Add all titles to playlist"
msgstr "Voeg alle titels toe aan de afspeellijst"
#: src/mpdevil.py:1464
#: src/mpdevil.py:1476
msgid "Directly play all titles"
msgstr "Alle titels direct afspelen"
#: src/mpdevil.py:1465
#: src/mpdevil.py:1477
msgid ""
"Append all titles after the currently playing track and clear the playlist "
"from all other songs"
@ -257,150 +253,159 @@ msgstr ""
"Alle titels toevoegen na de nu spelende titel en alle overige titels uit de "
"afspeellijst verwijderen"
#: src/mpdevil.py:1559 src/mpdevil.py:2394 src/mpdevil.py:2671
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
#, 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:1658
#: src/mpdevil.py:1669
#, python-brace-format
msgid "{hits} hit"
msgid_plural "{hits} hits"
msgstr[0] "{hits} hit"
msgstr[1] "{hits} treffers"
#: src/mpdevil.py:1743
#: src/mpdevil.py:1754
msgid "all tags"
msgstr "alle tags"
#: src/mpdevil.py:1875
#: src/mpdevil.py:1884
msgid "all genres"
msgstr "alle genres"
#: src/mpdevil.py:1901
#: src/mpdevil.py:1907
msgid "all artists"
msgstr "alle artiesten"
#: src/mpdevil.py:2314
#: src/mpdevil.py:2323
msgid "Save"
msgstr "Opslaan"
#: src/mpdevil.py:2318
#: src/mpdevil.py:2327
msgid "Delete"
msgstr "Verwijderen"
#: src/mpdevil.py:2439 data/ShortcutsWindow.ui:240
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
msgid "Clear playlist"
msgstr "Afspeellijst legen"
#: src/mpdevil.py:2701
#: src/mpdevil.py:2708
msgid "Scroll to current song"
msgstr "Naar de huidige titel scrollen"
#: src/mpdevil.py:2713
#: src/mpdevil.py:2718
msgid "Playlists"
msgstr "Afspeellijsten"
#: src/mpdevil.py:2814
#: src/mpdevil.py:2828
msgid "searching…"
msgstr "bezig met zoeken…"
#: src/mpdevil.py:2819
#: src/mpdevil.py:2833
msgid "connection error"
msgstr "verbindingsfout"
#: src/mpdevil.py:2821
#: src/mpdevil.py:2835
msgid "lyrics not found"
msgstr "geen songtekst gevonden"
#: src/mpdevil.py:2924
#: src/mpdevil.py:2961
msgid "Lyrics"
msgstr "Songtekst"
#: src/mpdevil.py:3015 src/mpdevil.py:3016
#, python-brace-format
msgid "{number} song"
msgid_plural "{number} songs"
msgstr[0] "{number} nummer"
msgstr[1] "{number} nummers"
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr "Stoppen"
#: src/mpdevil.py:3201
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr "Vorige titel"
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr "Volgende titel"
#: src/mpdevil.py:3048
msgid "Pause"
msgstr "Pauzeren"
#: src/mpdevil.py:3220
msgid "Repeat mode"
msgstr "Herhaalmodus"
#: src/mpdevil.py:3202
#: src/mpdevil.py:3221
msgid "Random mode"
msgstr "Willekeurige modus"
#: src/mpdevil.py:3203
#: src/mpdevil.py:3222
msgid "Single mode"
msgstr "Enkele modus"
#: src/mpdevil.py:3204
#: src/mpdevil.py:3223
msgid "Consume mode"
msgstr "Verbruiksmodus"
#: src/mpdevil.py:3418
#: src/mpdevil.py:3437
msgid "Updating Database…"
msgstr "Database bijwerken…"
#: src/mpdevil.py:3470
#: src/mpdevil.py:3489
#, python-brace-format
msgid "Connection to “{socket}” failed"
msgstr "Verbinding met „{socket}” mislukt"
#: src/mpdevil.py:3472
#: src/mpdevil.py:3491
#, python-brace-format
msgid "Connection to “{host}:{port}” failed"
msgstr "Verbinding met „{host}:{port}” mislukt"
#: src/mpdevil.py:3537
#: src/mpdevil.py:3553
msgid "Search"
msgstr "Zoeken"
#: src/mpdevil.py:3540 data/ShortcutsWindow.ui:99
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
msgid "Back to current album"
msgstr "Terug naar huidige album"
#: src/mpdevil.py:3553
#: src/mpdevil.py:3570
msgid "Keyboard Shortcuts"
msgstr "Sneltoetsen"
#: src/mpdevil.py:3554
#: src/mpdevil.py:3571
msgid "Help"
msgstr "Hulp"
#: src/mpdevil.py:3555
#: src/mpdevil.py:3572
msgid "About mpdevil"
msgstr "Over mpdevil"
#: src/mpdevil.py:3557
#: src/mpdevil.py:3574
msgid "Update Database"
msgstr "Database bijwerken"
#: src/mpdevil.py:3558
#: src/mpdevil.py:3575
msgid "Server Stats"
msgstr "Serverstatistieken"
#: src/mpdevil.py:3565
#: src/mpdevil.py:3582
msgid "Mini Player"
msgstr "Minispeler"
#: src/mpdevil.py:3566
#: src/mpdevil.py:3583
msgid "Genre Filter"
msgstr "Genrefilter"
#: src/mpdevil.py:3576
#: src/mpdevil.py:3593
msgid "Menu"
msgstr "Menu"
#: src/mpdevil.py:3629 src/mpdevil.py:3631
#: src/mpdevil.py:3644 src/mpdevil.py:3646
msgid "connecting…"
msgstr "verbinding maken…"
#: src/mpdevil.py:3790
#: src/mpdevil.py:3825
msgid "Debug mode"
msgstr "Debugmodus"
@ -476,22 +481,10 @@ msgstr "Afspelen"
msgid "Play/Pause"
msgstr "Afspelen/Pauzeren"
#: data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr "Stoppen"
#: data/ShortcutsWindow.ui:126
msgid "Stop after current title"
msgstr "Stop na huidige titel"
#: data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr "Volgende titel"
#: data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr "Vorige titel"
#: data/ShortcutsWindow.ui:147
msgid "Seek forward"
msgstr "Vooruit spoelen"
@ -556,6 +549,15 @@ msgstr "Afspeellijst"
msgid "Remove selected song"
msgstr "Geselecteerde titel verwijderen"
#~ msgid "Main cover size"
#~ msgstr "Grootte albumhoes"
#, python-brace-format
#~ msgid "{number} song"
#~ msgid_plural "{number} songs"
#~ msgstr[0] "{number} nummer"
#~ msgstr[1] "{number} nummers"
#~ msgid "Open with…"
#~ msgstr "Openen met…"

236
po/pl.po
View File

@ -7,19 +7,19 @@ msgid ""
msgstr ""
"Project-Id-Version: mpdevil\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-07 12:12+0200\n"
"PO-Revision-Date: 2022-06-20 19:15+0200\n"
"POT-Creation-Date: 2022-09-19 20:03+0200\n"
"PO-Revision-Date: 2022-09-19 20:04+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && "
"(n%100<12 || n%100>14) ? 1 : 2);\n"
"X-Generator: Poedit 3.1\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 "
"|| n%100>14) ? 1 : 2);\n"
"X-Generator: Poedit 2.3.1\n"
#: src/mpdevil.py:504
#: src/mpdevil.py:502
#, python-brace-format
msgid "{days} day"
msgid_plural "{days} days"
@ -27,7 +27,7 @@ msgstr[0] "{days} dzień"
msgstr[1] "{days} dni"
msgstr[2] "{days} dni"
#: src/mpdevil.py:541
#: src/mpdevil.py:539
#, python-brace-format
msgid "{channels} channel"
msgid_plural "{channels} channels"
@ -35,75 +35,71 @@ msgstr[0] "{channels} kanał"
msgstr[1] "{channels} kanały"
msgstr[2] "{channels} kanałów"
#: src/mpdevil.py:1012
#: src/mpdevil.py:1015
msgid "(restart required)"
msgstr "(wymagane ponowne uruchomienie)"
#: src/mpdevil.py:1058
#: src/mpdevil.py:1061
msgid "Use Client-side decoration"
msgstr "Używaj dekoracji po stronie klienta"
#: src/mpdevil.py:1059
#: src/mpdevil.py:1062
msgid "Show stop button"
msgstr "Pokaż przycisk „stop”"
#: src/mpdevil.py:1060
#: src/mpdevil.py:1063
msgid "Show audio format"
msgstr "Pokaż format audio"
#: src/mpdevil.py:1061
#: src/mpdevil.py:1064
msgid "Show lyrics button"
msgstr "Pokaż przycisk tekstu utworu"
#: src/mpdevil.py:1062
#: src/mpdevil.py:1065
msgid "Place playlist at the side"
msgstr "Umieść playlistę z boku"
#: src/mpdevil.py:1068
msgid "Main cover size"
msgstr "Rozmiar głównej okładki"
#: src/mpdevil.py:1069
#: src/mpdevil.py:1071
msgid "Album view cover size"
msgstr "Rozmiar okładek w przeglądarce"
#: src/mpdevil.py:1070
#: src/mpdevil.py:1072
msgid "Action bar icon size"
msgstr "Rozmiar ikon na pasku akcji"
#: src/mpdevil.py:1080
#: src/mpdevil.py:1082
msgid "Support “MPRIS”"
msgstr "Wspieraj „MPRIS”"
#: src/mpdevil.py:1081
#: src/mpdevil.py:1083
msgid "Sort albums by year"
msgstr "Sortuj albumy według roku"
#: src/mpdevil.py:1082
#: src/mpdevil.py:1084
msgid "Send notification on title change"
msgstr "Wysyłaj powiadomienie przy zmianie utworu"
#: src/mpdevil.py:1083
#: src/mpdevil.py:1085
msgid "Play selected albums and titles immediately"
msgstr "Odtwarzaj wybrane albumy i utwory od razu"
#: src/mpdevil.py:1084
#: src/mpdevil.py:1086
msgid "Rewind via previous button"
msgstr "Przewijaj w tył za pomocą przycisku „poprzedni”"
#: src/mpdevil.py:1085
#: src/mpdevil.py:1087
msgid "Stop playback on quit"
msgstr "Zatrzymaj odtwarzanie przy wyjściu"
#: src/mpdevil.py:1112
#: src/mpdevil.py:1114
msgid "Choose directory"
msgstr "Wybierz katalog"
#: src/mpdevil.py:1125
#: src/mpdevil.py:1127
msgid "Connect via Unix domain socket"
msgstr "Połącz się poprzez Unix domain socket"
#: src/mpdevil.py:1144
#: src/mpdevil.py:1146
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 "
@ -113,146 +109,146 @@ msgstr ""
"wyrażenia regularnego, zostanie wyświetlony. %AlbumArtist% oraz %Album% "
"zostaną zastąpione odpowiednimi tagami utworu."
#: src/mpdevil.py:1149
#: src/mpdevil.py:1151
msgid "Socket:"
msgstr "Socket:"
#: src/mpdevil.py:1151
#: src/mpdevil.py:1153
msgid "Host:"
msgstr "Host:"
#: src/mpdevil.py:1153
#: src/mpdevil.py:1155
msgid "Password:"
msgstr "Hasło:"
#: src/mpdevil.py:1154
#: src/mpdevil.py:1156
msgid "Music lib:"
msgstr "Biblioteka muzyczna:"
#: src/mpdevil.py:1156
#: src/mpdevil.py:1158
msgid "Cover regex:"
msgstr "Wyrażenie regularne okładki:"
#: src/mpdevil.py:1180 src/mpdevil.py:3560
#: src/mpdevil.py:1182 src/mpdevil.py:3577
msgid "Profile 1"
msgstr "Profil 1"
#: src/mpdevil.py:1181 src/mpdevil.py:3560
#: src/mpdevil.py:1183 src/mpdevil.py:3577
msgid "Profile 2"
msgstr "Profil 2"
#: src/mpdevil.py:1182 src/mpdevil.py:3560
#: src/mpdevil.py:1184 src/mpdevil.py:3577
msgid "Profile 3"
msgstr "Profil 3"
#. connect button
#: src/mpdevil.py:1186 src/mpdevil.py:3448
#: src/mpdevil.py:1188 src/mpdevil.py:3467
msgid "Connect"
msgstr "Połącz się"
#: src/mpdevil.py:1209 src/mpdevil.py:1211 src/mpdevil.py:3449
#: src/mpdevil.py:3552
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
#: src/mpdevil.py:3569
msgid "Preferences"
msgstr "Preferencje"
#: src/mpdevil.py:1224 src/mpdevil.py:1234
#: src/mpdevil.py:1225 src/mpdevil.py:1235
msgid "View"
msgstr "Widok"
#: src/mpdevil.py:1225 src/mpdevil.py:1235
#: src/mpdevil.py:1226 src/mpdevil.py:1236
msgid "Behavior"
msgstr "Zachowanie"
#: src/mpdevil.py:1226 src/mpdevil.py:1236
#: src/mpdevil.py:1227 src/mpdevil.py:1237
msgid "Profiles"
msgstr "Profile"
#: src/mpdevil.py:1253
#: src/mpdevil.py:1254
msgid "Stats"
msgstr "Statystyki"
#: src/mpdevil.py:1262
#: src/mpdevil.py:1263
msgid "<b>Protocol:</b>"
msgstr "<b>Protokół:</b>"
#: src/mpdevil.py:1263
#: src/mpdevil.py:1264
msgid "<b>Uptime:</b>"
msgstr "<b>Czas działania:</b>"
#: src/mpdevil.py:1264
#: src/mpdevil.py:1265
msgid "<b>Playtime:</b>"
msgstr "<b>Czas odtwarzania:</b>"
#: src/mpdevil.py:1265
#: src/mpdevil.py:1266
msgid "<b>Artists:</b>"
msgstr "<b>Artyści:</b>"
#: src/mpdevil.py:1266
#: src/mpdevil.py:1267
msgid "<b>Albums:</b>"
msgstr "<b>Albumy:</b>"
#: src/mpdevil.py:1267
#: src/mpdevil.py:1268
msgid "<b>Songs:</b>"
msgstr "<b>Utwory:</b>"
#: src/mpdevil.py:1268
#: src/mpdevil.py:1269
msgid "<b>Total Playtime:</b>"
msgstr "<b>Całkowity czas odtwarzania:</b>"
#: src/mpdevil.py:1269
#: src/mpdevil.py:1270
msgid "<b>Database Update:</b>"
msgstr "<b>Aktualizacja bazy danych:</b>"
#: src/mpdevil.py:1348
#: src/mpdevil.py:1360
msgid "Add to playlist"
msgstr "Dodaj do playlisty"
#: src/mpdevil.py:1351
#: src/mpdevil.py:1363
msgid "Show in file manager"
msgstr "Pokaż w menedżerze plików"
#: src/mpdevil.py:1355 src/mpdevil.py:1590 src/mpdevil.py:2304
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
msgid "Append"
msgstr "Dodaj"
#: src/mpdevil.py:1356 src/mpdevil.py:1591 src/mpdevil.py:2305
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
#: src/mpdevil.py:3018 src/mpdevil.py:3051
msgid "Play"
msgstr "Odtwórz"
#: src/mpdevil.py:1357 src/mpdevil.py:1592 src/mpdevil.py:2306
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
msgid "Enqueue"
msgstr "Dodaj do kolejki"
#: src/mpdevil.py:1374
#: src/mpdevil.py:1386
msgid "MPD-Tag"
msgstr "Tag MPD"
#: src/mpdevil.py:1377
#: src/mpdevil.py:1389
msgid "Value"
msgstr "Wartość"
#: src/mpdevil.py:1448 src/mpdevil.py:2510
#: src/mpdevil.py:1460 src/mpdevil.py:2522
msgid "No"
msgstr "Nie"
#. the order of weight_set and weight seems to be important here
#: src/mpdevil.py:1449 src/mpdevil.py:2512
#: src/mpdevil.py:1461 src/mpdevil.py:2523
msgid "Title"
msgstr "Tytuł"
#: src/mpdevil.py:1450 src/mpdevil.py:2513
#: src/mpdevil.py:1462 src/mpdevil.py:2524
msgid "Length"
msgstr "Długość"
#: src/mpdevil.py:1463
#: src/mpdevil.py:1475
msgid "Add all titles to playlist"
msgstr "Dodaj wszystkie utwory do playlisty"
#: src/mpdevil.py:1464
#: src/mpdevil.py:1476
msgid "Directly play all titles"
msgstr "Bezpośrednio odtwórz wszystkie utwory"
#: src/mpdevil.py:1465
#: src/mpdevil.py:1477
msgid ""
"Append all titles after the currently playing track and clear the playlist "
"from all other songs"
@ -260,7 +256,7 @@ msgstr ""
"Dodaj wszystkie utwory po aktualnie odtwarzanym i usuń wszystkie inne z "
"playlisty"
#: src/mpdevil.py:1559 src/mpdevil.py:2394 src/mpdevil.py:2671
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
#, python-brace-format
msgid "{number} song ({duration})"
msgid_plural "{number} songs ({duration})"
@ -268,7 +264,7 @@ msgstr[0] "{number} utwór ({duration})"
msgstr[1] "{number} utwory ({duration})"
msgstr[2] "{number} utworów ({duration})"
#: src/mpdevil.py:1658
#: src/mpdevil.py:1669
#, python-brace-format
msgid "{hits} hit"
msgid_plural "{hits} hits"
@ -276,137 +272,145 @@ msgstr[0] "{hits} trafienie"
msgstr[1] "{hits} trafienia"
msgstr[2] "{hits} trafień"
#: src/mpdevil.py:1743
#: src/mpdevil.py:1754
msgid "all tags"
msgstr "wszystkie tagi"
#: src/mpdevil.py:1875
#: src/mpdevil.py:1884
msgid "all genres"
msgstr "wszystkie gatunki"
#: src/mpdevil.py:1901
#: src/mpdevil.py:1907
msgid "all artists"
msgstr "wszyscy artyści"
#: src/mpdevil.py:2314
#: src/mpdevil.py:2323
msgid "Save"
msgstr "Zapisz"
#: src/mpdevil.py:2318
#: src/mpdevil.py:2327
msgid "Delete"
msgstr "Usuń"
#: src/mpdevil.py:2439 data/ShortcutsWindow.ui:240
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
msgid "Clear playlist"
msgstr "Wyczyść playlistę"
#: src/mpdevil.py:2701
#: src/mpdevil.py:2708
msgid "Scroll to current song"
msgstr "Przewiń do aktualnego utworu"
#: src/mpdevil.py:2713
#: src/mpdevil.py:2718
msgid "Playlists"
msgstr "Playlisty"
#: src/mpdevil.py:2814
#: src/mpdevil.py:2828
msgid "searching…"
msgstr "wyszukiwanie…"
#: src/mpdevil.py:2819
#: src/mpdevil.py:2833
msgid "connection error"
msgstr "błąd połączenia"
#: src/mpdevil.py:2821
#: src/mpdevil.py:2835
msgid "lyrics not found"
msgstr "nie znaleziono tekstu utworu"
#: src/mpdevil.py:2924
#: src/mpdevil.py:2961
msgid "Lyrics"
msgstr "Tekst utworu"
#: src/mpdevil.py:3015 src/mpdevil.py:3016
#, python-brace-format
msgid "{number} song"
msgid_plural "{number} songs"
msgstr[0] "{number} utwór"
msgstr[1] "{number} utwory"
msgstr[2] "{number} utworów"
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr "Stop"
#: src/mpdevil.py:3201
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr "Poprzedni utwór"
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr "Następny utwór"
#: src/mpdevil.py:3048
msgid "Pause"
msgstr "Pauza"
#: src/mpdevil.py:3220
msgid "Repeat mode"
msgstr "Tryb powtarzania"
#: src/mpdevil.py:3202
#: src/mpdevil.py:3221
msgid "Random mode"
msgstr "Tryb losowy"
#: src/mpdevil.py:3203
#: src/mpdevil.py:3222
msgid "Single mode"
msgstr "Tryb pojedynczy"
#: src/mpdevil.py:3204
#: src/mpdevil.py:3223
msgid "Consume mode"
msgstr "Tryb wyczerpywania"
#: src/mpdevil.py:3418
#: src/mpdevil.py:3437
msgid "Updating Database…"
msgstr "Aktualizowanie bazy danych…"
#: src/mpdevil.py:3470
#: src/mpdevil.py:3489
#, python-brace-format
msgid "Connection to “{socket}” failed"
msgstr "Nie udało połączyć się do „{socket}”"
#: src/mpdevil.py:3472
#: src/mpdevil.py:3491
#, python-brace-format
msgid "Connection to “{host}:{port}” failed"
msgstr "Nie udało połączyć się do „{host}:{port}”"
#: src/mpdevil.py:3537
#: src/mpdevil.py:3553
msgid "Search"
msgstr "Szukaj"
#: src/mpdevil.py:3540 data/ShortcutsWindow.ui:99
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
msgid "Back to current album"
msgstr "Wróć do aktualnego albumu"
#: src/mpdevil.py:3553
#: src/mpdevil.py:3570
msgid "Keyboard Shortcuts"
msgstr "Skróty klawiszowe"
#: src/mpdevil.py:3554
#: src/mpdevil.py:3571
msgid "Help"
msgstr "Pomoc"
#: src/mpdevil.py:3555
#: src/mpdevil.py:3572
msgid "About mpdevil"
msgstr "O mpdevil"
#: src/mpdevil.py:3557
#: src/mpdevil.py:3574
msgid "Update Database"
msgstr "Aktualizuj bazę danych"
#: src/mpdevil.py:3558
#: src/mpdevil.py:3575
msgid "Server Stats"
msgstr "Statystyki serwera"
#: src/mpdevil.py:3565
#: src/mpdevil.py:3582
msgid "Mini Player"
msgstr "Mini odtwarzacz"
#: src/mpdevil.py:3566
#: src/mpdevil.py:3583
msgid "Genre Filter"
msgstr "Filtr gatunku"
#: src/mpdevil.py:3576
#: src/mpdevil.py:3593
msgid "Menu"
msgstr "Menu"
#: src/mpdevil.py:3629 src/mpdevil.py:3631
#: src/mpdevil.py:3644 src/mpdevil.py:3646
msgid "connecting…"
msgstr "łączenie…"
#: src/mpdevil.py:3790
#: src/mpdevil.py:3825
msgid "Debug mode"
msgstr "Tryb debugowania"
@ -482,22 +486,10 @@ msgstr "Odtwarzanie"
msgid "Play/Pause"
msgstr "Odtwórz/Pauza"
#: data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr "Stop"
#: data/ShortcutsWindow.ui:126
msgid "Stop after current title"
msgstr "Stop po tym utworze"
#: data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr "Następny utwór"
#: data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr "Poprzedni utwór"
#: data/ShortcutsWindow.ui:147
msgid "Seek forward"
msgstr "Przewiń do przodu"
@ -561,3 +553,13 @@ msgstr "Playlista"
#: data/ShortcutsWindow.ui:232
msgid "Remove selected song"
msgstr "Usuń wybrany utwór"
#~ msgid "Main cover size"
#~ msgstr "Rozmiar głównej okładki"
#, python-brace-format
#~ msgid "{number} song"
#~ msgid_plural "{number} songs"
#~ msgstr[0] "{number} utwór"
#~ msgstr[1] "{number} utwory"
#~ msgstr[2] "{number} utworów"

226
po/tr.po
View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: mpdevil\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-07 12:12+0200\n"
"PO-Revision-Date: 2022-04-07 12:14+0200\n"
"POT-Creation-Date: 2022-09-19 20:03+0200\n"
"PO-Revision-Date: 2022-09-19 20:05+0200\n"
"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
"Language-Team: Turkish <tr>\n"
"Language: tr\n"
@ -19,87 +19,83 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 2.3.1\n"
#: src/mpdevil.py:504
#: src/mpdevil.py:502
#, python-brace-format
msgid "{days} day"
msgid_plural "{days} days"
msgstr[0] "{days} gün"
#: src/mpdevil.py:541
#: src/mpdevil.py:539
#, python-brace-format
msgid "{channels} channel"
msgid_plural "{channels} channels"
msgstr[0] "{channels} kanal"
#: src/mpdevil.py:1012
#: src/mpdevil.py:1015
msgid "(restart required)"
msgstr "(yeniden başlatma gerekli)"
#: src/mpdevil.py:1058
#: src/mpdevil.py:1061
msgid "Use Client-side decoration"
msgstr "İstemci tarafı süslemelerini kullan"
#: src/mpdevil.py:1059
#: src/mpdevil.py:1062
msgid "Show stop button"
msgstr "Durdur düğmesini göster"
#: src/mpdevil.py:1060
#: src/mpdevil.py:1063
msgid "Show audio format"
msgstr "Ses biçimini göster"
#: src/mpdevil.py:1061
#: src/mpdevil.py:1064
msgid "Show lyrics button"
msgstr "Şarkı sözleri düğmesini göster"
#: src/mpdevil.py:1062
#: src/mpdevil.py:1065
msgid "Place playlist at the side"
msgstr "Oynatma listesini yan tarafa yerleştir"
#: src/mpdevil.py:1068
msgid "Main cover size"
msgstr "Ana kapak resmi boyutu"
#: src/mpdevil.py:1069
#: src/mpdevil.py:1071
msgid "Album view cover size"
msgstr "Albüm görünümü kapak resmi boyutu"
#: src/mpdevil.py:1070
#: src/mpdevil.py:1072
msgid "Action bar icon size"
msgstr "Eylem çubuğu simge boyutu"
#: src/mpdevil.py:1080
#: src/mpdevil.py:1082
msgid "Support “MPRIS”"
msgstr "“MPRIS” destekle"
#: src/mpdevil.py:1081
#: src/mpdevil.py:1083
msgid "Sort albums by year"
msgstr "Albümleri yıla göre sırala"
#: src/mpdevil.py:1082
#: src/mpdevil.py:1084
msgid "Send notification on title change"
msgstr "Şarkı değişikliğinde bildirim gönder"
#: src/mpdevil.py:1083
#: src/mpdevil.py:1085
msgid "Play selected albums and titles immediately"
msgstr "Seçilen albümleri ve şarkıları hemen oynat"
#: src/mpdevil.py:1084
#: src/mpdevil.py:1086
msgid "Rewind via previous button"
msgstr "Önceki düğmesi ile geri sar"
#: src/mpdevil.py:1085
#: src/mpdevil.py:1087
msgid "Stop playback on quit"
msgstr "Çıkışta oynatmayı durdur"
#: src/mpdevil.py:1112
#: src/mpdevil.py:1114
msgid "Choose directory"
msgstr "Dizin seç"
#: src/mpdevil.py:1125
#: src/mpdevil.py:1127
msgid "Connect via Unix domain socket"
msgstr "Unix etki alanı soketi ile bağlan"
#: src/mpdevil.py:1144
#: src/mpdevil.py:1146
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,146 +105,146 @@ msgstr ""
"görüntülenecektir. %AlbumArtist% ve %Album% şarkının ilgili etiketleri ile "
"değiştirilecektir."
#: src/mpdevil.py:1149
#: src/mpdevil.py:1151
msgid "Socket:"
msgstr "Soket:"
#: src/mpdevil.py:1151
#: src/mpdevil.py:1153
msgid "Host:"
msgstr "Ana makine:"
#: src/mpdevil.py:1153
#: src/mpdevil.py:1155
msgid "Password:"
msgstr "Parola:"
#: src/mpdevil.py:1154
#: src/mpdevil.py:1156
msgid "Music lib:"
msgstr "Müzik kütüphanesi:"
#: src/mpdevil.py:1156
#: src/mpdevil.py:1158
msgid "Cover regex:"
msgstr "Kapak resmi düzenli ifadesi:"
#: src/mpdevil.py:1180 src/mpdevil.py:3560
#: src/mpdevil.py:1182 src/mpdevil.py:3577
msgid "Profile 1"
msgstr "Profil 1"
#: src/mpdevil.py:1181 src/mpdevil.py:3560
#: src/mpdevil.py:1183 src/mpdevil.py:3577
msgid "Profile 2"
msgstr "Profil 2"
#: src/mpdevil.py:1182 src/mpdevil.py:3560
#: src/mpdevil.py:1184 src/mpdevil.py:3577
msgid "Profile 3"
msgstr "Profil 3"
#. connect button
#: src/mpdevil.py:1186 src/mpdevil.py:3448
#: src/mpdevil.py:1188 src/mpdevil.py:3467
msgid "Connect"
msgstr "Bağlan"
#: src/mpdevil.py:1209 src/mpdevil.py:1211 src/mpdevil.py:3449
#: src/mpdevil.py:3552
#: src/mpdevil.py:1211 src/mpdevil.py:1213 src/mpdevil.py:3468
#: src/mpdevil.py:3569
msgid "Preferences"
msgstr "Tercihler"
#: src/mpdevil.py:1224 src/mpdevil.py:1234
#: src/mpdevil.py:1225 src/mpdevil.py:1235
msgid "View"
msgstr "Gürünüm"
#: src/mpdevil.py:1225 src/mpdevil.py:1235
#: src/mpdevil.py:1226 src/mpdevil.py:1236
msgid "Behavior"
msgstr "Davranış"
#: src/mpdevil.py:1226 src/mpdevil.py:1236
#: src/mpdevil.py:1227 src/mpdevil.py:1237
msgid "Profiles"
msgstr "Profiller"
#: src/mpdevil.py:1253
#: src/mpdevil.py:1254
msgid "Stats"
msgstr "İstatistikler"
#: src/mpdevil.py:1262
#: src/mpdevil.py:1263
msgid "<b>Protocol:</b>"
msgstr "<b>Protokol:</b>"
#: src/mpdevil.py:1263
#: src/mpdevil.py:1264
msgid "<b>Uptime:</b>"
msgstr "<b>Çalışma Süresi:</b>"
#: src/mpdevil.py:1264
#: src/mpdevil.py:1265
msgid "<b>Playtime:</b>"
msgstr "<b>Oynatma Süresi:</b>"
#: src/mpdevil.py:1265
#: src/mpdevil.py:1266
msgid "<b>Artists:</b>"
msgstr "<b>Sanatçılar:</b>"
#: src/mpdevil.py:1266
#: src/mpdevil.py:1267
msgid "<b>Albums:</b>"
msgstr "<b>Albümler:</b>"
#: src/mpdevil.py:1267
#: src/mpdevil.py:1268
msgid "<b>Songs:</b>"
msgstr "<b>Şarkılar:</b>"
#: src/mpdevil.py:1268
#: src/mpdevil.py:1269
msgid "<b>Total Playtime:</b>"
msgstr "<b>Toplam Oynatma Süresi:</b>"
#: src/mpdevil.py:1269
#: src/mpdevil.py:1270
msgid "<b>Database Update:</b>"
msgstr "<b>Veri Tabanı Güncellemesi:</b>"
#: src/mpdevil.py:1348
#: src/mpdevil.py:1360
msgid "Add to playlist"
msgstr ""
#: src/mpdevil.py:1351
#: src/mpdevil.py:1363
msgid "Show in file manager"
msgstr "Dosya yöneticisinde göster"
#: src/mpdevil.py:1355 src/mpdevil.py:1590 src/mpdevil.py:2304
#: src/mpdevil.py:1367 src/mpdevil.py:1601 src/mpdevil.py:2313
msgid "Append"
msgstr "Sona ekle"
#: src/mpdevil.py:1356 src/mpdevil.py:1591 src/mpdevil.py:2305
#: src/mpdevil.py:1368 src/mpdevil.py:1602 src/mpdevil.py:2314
#: src/mpdevil.py:3018 src/mpdevil.py:3051
msgid "Play"
msgstr "Oynat"
#: src/mpdevil.py:1357 src/mpdevil.py:1592 src/mpdevil.py:2306
#: src/mpdevil.py:1369 src/mpdevil.py:1603 src/mpdevil.py:2315
msgid "Enqueue"
msgstr "Sıraya al"
#: src/mpdevil.py:1374
#: src/mpdevil.py:1386
msgid "MPD-Tag"
msgstr "MPD-Etiketi"
#: src/mpdevil.py:1377
#: src/mpdevil.py:1389
msgid "Value"
msgstr "Değer"
#: src/mpdevil.py:1448 src/mpdevil.py:2510
#: src/mpdevil.py:1460 src/mpdevil.py:2522
msgid "No"
msgstr "Sayı"
#. the order of weight_set and weight seems to be important here
#: src/mpdevil.py:1449 src/mpdevil.py:2512
#: src/mpdevil.py:1461 src/mpdevil.py:2523
msgid "Title"
msgstr "Şarkı"
#: src/mpdevil.py:1450 src/mpdevil.py:2513
#: src/mpdevil.py:1462 src/mpdevil.py:2524
msgid "Length"
msgstr "Uzunluk"
#: src/mpdevil.py:1463
#: src/mpdevil.py:1475
msgid "Add all titles to playlist"
msgstr "Tüm şarkıları oynatma listesine ekle"
#: src/mpdevil.py:1464
#: src/mpdevil.py:1476
msgid "Directly play all titles"
msgstr "Tüm şarkıları doğrudan oynat"
#: src/mpdevil.py:1465
#: src/mpdevil.py:1477
msgid ""
"Append all titles after the currently playing track and clear the playlist "
"from all other songs"
@ -256,147 +252,157 @@ msgstr ""
"Tüm şarkıları oynatılan parçadan sonra ekle ve diğer şarkıları oynatma "
"listesinden kaldır"
#: src/mpdevil.py:1559 src/mpdevil.py:2394 src/mpdevil.py:2671
#: src/mpdevil.py:1570 src/mpdevil.py:2403 src/mpdevil.py:2676
#, python-brace-format
msgid "{number} song ({duration})"
msgid_plural "{number} songs ({duration})"
msgstr[0] "{number} şarkı ({duration})"
#: src/mpdevil.py:1658
#: src/mpdevil.py:1669
#, python-brace-format
msgid "{hits} hit"
msgid_plural "{hits} hits"
msgstr[0] "{hits} oynatma"
#: src/mpdevil.py:1743
#: src/mpdevil.py:1754
msgid "all tags"
msgstr "tüm etiketler"
#: src/mpdevil.py:1875
#: src/mpdevil.py:1884
msgid "all genres"
msgstr "tüm türler"
#: src/mpdevil.py:1901
#: src/mpdevil.py:1907
msgid "all artists"
msgstr "tüm sanatçılar"
#: src/mpdevil.py:2314
#: src/mpdevil.py:2323
msgid "Save"
msgstr "Kaydet"
#: src/mpdevil.py:2318
#: src/mpdevil.py:2327
msgid "Delete"
msgstr "Sil"
#: src/mpdevil.py:2439 data/ShortcutsWindow.ui:240
#: src/mpdevil.py:2448 data/ShortcutsWindow.ui:240
msgid "Clear playlist"
msgstr "Oynatma listesini temizle"
#: src/mpdevil.py:2701
#: src/mpdevil.py:2708
msgid "Scroll to current song"
msgstr "Geçerli şarkıya kaydır"
#: src/mpdevil.py:2713
#: src/mpdevil.py:2718
msgid "Playlists"
msgstr "Oynatma listeleri"
#: src/mpdevil.py:2814
#: src/mpdevil.py:2828
msgid "searching…"
msgstr "aranıyor…"
#: src/mpdevil.py:2819
#: src/mpdevil.py:2833
msgid "connection error"
msgstr "bağlantı hatası"
#: src/mpdevil.py:2821
#: src/mpdevil.py:2835
msgid "lyrics not found"
msgstr "şarkı sözleri bulunamadı"
#: src/mpdevil.py:2924
#: src/mpdevil.py:2961
msgid "Lyrics"
msgstr "Şarkı sözleri"
#: src/mpdevil.py:3015 src/mpdevil.py:3016
#, python-brace-format
msgid "{number} song"
msgid_plural "{number} songs"
msgstr[0] "{number} şarkı"
#: src/mpdevil.py:3020 data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr "Durdur"
#: src/mpdevil.py:3201
#: src/mpdevil.py:3024 data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr "Önceki şarkı"
#: src/mpdevil.py:3027 data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr "Sonraki şarkı"
#: src/mpdevil.py:3048
msgid "Pause"
msgstr "Duraklat"
#: src/mpdevil.py:3220
msgid "Repeat mode"
msgstr "Tekrar modu"
#: src/mpdevil.py:3202
#: src/mpdevil.py:3221
msgid "Random mode"
msgstr "Rastgele modu"
#: src/mpdevil.py:3203
#: src/mpdevil.py:3222
msgid "Single mode"
msgstr "Tekli modu"
#: src/mpdevil.py:3204
#: src/mpdevil.py:3223
msgid "Consume mode"
msgstr "Tüketim modu"
#: src/mpdevil.py:3418
#: src/mpdevil.py:3437
msgid "Updating Database…"
msgstr "Veri Tabanı Güncelleniyor…"
#: src/mpdevil.py:3470
#: src/mpdevil.py:3489
#, python-brace-format
msgid "Connection to “{socket}” failed"
msgstr "“{socket}” bağlantısı başarısız"
#: src/mpdevil.py:3472
#: src/mpdevil.py:3491
#, python-brace-format
msgid "Connection to “{host}:{port}” failed"
msgstr "“{host}:{port}” bağlantısı başarısız"
#: src/mpdevil.py:3537
#: src/mpdevil.py:3553
msgid "Search"
msgstr "Ara"
#: src/mpdevil.py:3540 data/ShortcutsWindow.ui:99
#: src/mpdevil.py:3556 data/ShortcutsWindow.ui:99
msgid "Back to current album"
msgstr "Geçerli albüme geri dön"
#: src/mpdevil.py:3553
#: src/mpdevil.py:3570
msgid "Keyboard Shortcuts"
msgstr "Klavye Kısayolları"
#: src/mpdevil.py:3554
#: src/mpdevil.py:3571
msgid "Help"
msgstr "Yardım"
#: src/mpdevil.py:3555
#: src/mpdevil.py:3572
msgid "About mpdevil"
msgstr "mpdevil Hakkında"
#: src/mpdevil.py:3557
#: src/mpdevil.py:3574
msgid "Update Database"
msgstr "Veri Tabanını Güncelle"
#: src/mpdevil.py:3558
#: src/mpdevil.py:3575
msgid "Server Stats"
msgstr "Sunucu İstatistikleri"
#: src/mpdevil.py:3565
#: src/mpdevil.py:3582
msgid "Mini Player"
msgstr "Küçük Oynatıcı"
#: src/mpdevil.py:3566
#: src/mpdevil.py:3583
msgid "Genre Filter"
msgstr "Tür Filtresi"
#: src/mpdevil.py:3576
#: src/mpdevil.py:3593
msgid "Menu"
msgstr "Menü"
#: src/mpdevil.py:3629 src/mpdevil.py:3631
#: src/mpdevil.py:3644 src/mpdevil.py:3646
msgid "connecting…"
msgstr "bağlanıyor…"
#: src/mpdevil.py:3790
#: src/mpdevil.py:3825
msgid "Debug mode"
msgstr "Hata ayıklama modu"
@ -472,22 +478,10 @@ msgstr "Oynatım"
msgid "Play/Pause"
msgstr "Oynat/Duraklat"
#: data/ShortcutsWindow.ui:119
msgid "Stop"
msgstr "Durdur"
#: data/ShortcutsWindow.ui:126
msgid "Stop after current title"
msgstr "Oynatılan şarkıdan sonra durdur"
#: data/ShortcutsWindow.ui:133
msgid "Next title"
msgstr "Sonraki şarkı"
#: data/ShortcutsWindow.ui:140
msgid "Previous title"
msgstr "Önceki şarkı"
#: data/ShortcutsWindow.ui:147
msgid "Seek forward"
msgstr "İleri sar"
@ -551,3 +545,11 @@ msgstr "Oynatma listesi"
#: data/ShortcutsWindow.ui:232
msgid "Remove selected song"
msgstr "Seçilen şarkıyı kaldır"
#~ msgid "Main cover size"
#~ msgstr "Ana kapak resmi boyutu"
#, python-brace-format
#~ msgid "{number} song"
#~ msgid_plural "{number} songs"
#~ msgstr[0] "{number} şarkı"

View File

@ -221,7 +221,7 @@ class MPRISInterface: # TODO emit Seeked if needed
self._client.emitter.connect("single", self._on_loop_changed)
self._client.emitter.connect("random", self._on_random_changed)
self._client.emitter.connect("connection_error", self._on_connection_error)
self._client.emitter.connect("reconnected", self._on_reconnected)
self._client.emitter.connect("connected", self._on_connected)
self._client.emitter.connect("disconnected", self._on_disconnected)
def _handle_method_call(self, connection, sender, object_path, interface_name, method_name, parameters, invocation):
@ -462,7 +462,7 @@ class MPRISInterface: # TODO emit Seeked if needed
def _on_random_changed(self, *args):
self._update_property(self._MPRIS_PLAYER_IFACE, "Shuffle")
def _on_reconnected(self, *args):
def _on_connected(self, *args):
for p in ("CanPlay","CanPause","CanSeek"):
self._update_property(self._MPRIS_PLAYER_IFACE, p)
@ -629,7 +629,8 @@ class EventEmitter(GObject.Object):
"updating_db": (GObject.SignalFlags.RUN_FIRST, None, ()),
"updated_db": (GObject.SignalFlags.RUN_FIRST, None, ()),
"disconnected": (GObject.SignalFlags.RUN_FIRST, None, ()),
"reconnected": (GObject.SignalFlags.RUN_FIRST, None, ()),
"connected": (GObject.SignalFlags.RUN_FIRST, None, ()),
"connecting": (GObject.SignalFlags.RUN_FIRST, None, ()),
"connection_error": (GObject.SignalFlags.RUN_FIRST, None, ()),
"current_song": (GObject.SignalFlags.RUN_FIRST, None, ()),
"state": (GObject.SignalFlags.RUN_FIRST, None, (str,)),
@ -689,7 +690,7 @@ class Client(MPDClient):
yield obj
_parse_objects_direct = _parse_objects
# overloads
# overloads to use Song class
def currentsong(self, *args):
return Song(super().currentsong(*args))
def search(self, *args):
@ -706,48 +707,52 @@ class Client(MPDClient):
return [Song(song) for song in super().listplaylistinfo(name)]
def start(self):
profile=self._settings.get_active_profile()
if profile.get_boolean("socket-connection"):
socket=profile.get_string("socket")
if not socket:
socket=FALLBACK_SOCKET
args=(socket, None)
else:
args=(profile.get_string("host"), profile.get_int("port"))
try:
self.connect(*args)
if profile.get_string("password"):
self.password(profile.get_string("password"))
except:
self.emitter.emit("disconnected")
self.emitter.emit("connection_error")
return False
# connect successful
if profile.get_boolean("socket-connection"):
self.lib_path=self.config()
else:
self.lib_path=self._settings.get_active_profile().get_string("path")
if not self.lib_path:
self.lib_path=FALLBACK_LIB
if "status" in self.commands():
self._main_timeout_id=GLib.timeout_add(self._refresh_interval, self._main_loop)
self.emitter.emit("reconnected")
return True
else:
self.disconnect()
self.emitter.emit("disconnected")
self.emitter.emit("connection_error")
print("No read permission, check your mpd config.")
self.emitter.emit("connecting")
def callback():
profile=self._settings.get_active_profile()
if profile.get_boolean("socket-connection"):
socket=profile.get_string("socket")
if not socket:
socket=FALLBACK_SOCKET
args=(socket, None)
else:
args=(profile.get_string("host"), profile.get_int("port"))
try:
self.connect(*args)
if profile.get_string("password"):
self.password(profile.get_string("password"))
except:
self.emitter.emit("connection_error")
return False
# connect successful
if profile.get_boolean("socket-connection"):
self.lib_path=self.config()
else:
self.lib_path=self._settings.get_active_profile().get_string("path")
if not self.lib_path:
self.lib_path=FALLBACK_LIB
if "status" in self.commands():
self._main_timeout_id=GLib.timeout_add(self._refresh_interval, self._main_loop)
self.emitter.emit("connected")
else:
self.disconnect()
self.emitter.emit("connection_error")
print("No read permission, check your mpd config.")
return False
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
self._last_status={}
self.disconnect()
self.start()
def disconnect(self):
super().disconnect()
self._last_status={}
self.emitter.emit("disconnected")
def connected(self):
try:
self.ping()
@ -968,8 +973,6 @@ class Client(MPDClient):
self._last_status=status
except (ConnectionError, ConnectionResetError) as e:
self.disconnect()
self._last_status={}
self.emitter.emit("disconnected")
self.emitter.emit("connection_error")
self._main_timeout_id=None
self.lib_path=None
@ -1724,7 +1727,7 @@ class SearchWindow(Gtk.Box):
self.search_entry.connect("focus_in_event", self._on_search_entry_focus_event, True)
self.search_entry.connect("focus_out_event", self._on_search_entry_focus_event, False)
self._tag_combo_box_changed=self._tag_combo_box.connect("changed", self._search)
self._client.emitter.connect("reconnected", self._on_reconnected)
self._client.emitter.connect("connected", self._on_connected)
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect("updated_db", self._search)
@ -1741,7 +1744,7 @@ class SearchWindow(Gtk.Box):
def _on_disconnected(self, *args):
self._search_thread.stop()
def _on_reconnected(self, *args):
def _on_connected(self, *args):
def callback():
self._songs_list.buttons.set_sensitive(False)
self._songs_list.clear()
@ -1886,7 +1889,7 @@ class GenreList(SelectionList):
# connect
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect_after("reconnected", self._on_reconnected)
self._client.emitter.connect_after("connected", self._on_connected)
self._client.emitter.connect("updated_db", self._refresh)
def _refresh(self, *args):
@ -1898,7 +1901,7 @@ class GenreList(SelectionList):
self.set_sensitive(False)
self.clear()
def _on_reconnected(self, *args):
def _on_connected(self, *args):
self._refresh()
self.set_sensitive(True)
@ -1919,7 +1922,7 @@ class ArtistList(SelectionList):
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("reconnected", self._on_reconnected)
self._client.emitter.connect("connected", self._on_connected)
self.genre_list.connect_after("item-selected", self._refresh)
def _refresh(self, *args):
@ -1977,7 +1980,7 @@ class ArtistList(SelectionList):
self.set_sensitive(False)
self.clear()
def _on_reconnected(self, *args):
def _on_connected(self, *args):
self.set_sensitive(True)
class AlbumLoadingThread(threading.Thread):
@ -2135,7 +2138,7 @@ class AlbumList(Gtk.IconView):
self.connect("item-activated", self._on_item_activated)
self.connect("button-press-event", self._on_button_press_event)
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect("reconnected", self._on_reconnected)
self._client.emitter.connect("connected", self._on_connected)
self._settings.connect("changed::sort-albums-by-year", self._sort_settings)
self._settings.connect("changed::album-cover", self._on_cover_size_changed)
self._artist_list.connect("item-selected", self._refresh)
@ -2226,7 +2229,7 @@ class AlbumList(Gtk.IconView):
def _on_disconnected(self, *args):
self.set_sensitive(False)
def _on_reconnected(self, *args):
def _on_connected(self, *args):
self.set_sensitive(True)
def show_info(self):
@ -2543,7 +2546,7 @@ class PlaylistView(TreeView):
self._client.emitter.connect("playlist", self._on_playlist_changed)
self._client.emitter.connect("current_song", self._on_song_changed)
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect("reconnected", self._on_reconnected)
self._client.emitter.connect("connected", self._on_connected)
def _clear(self, *args):
self._song_popover.popdown()
@ -2691,7 +2694,7 @@ class PlaylistView(TreeView):
self.set_sensitive(False)
self._clear()
def _on_reconnected(self, *args):
def _on_connected(self, *args):
self.set_sensitive(True)
def _select_function(self, selection, model, path, path_currently_selected):
@ -2857,31 +2860,45 @@ class CoverEventBox(Gtk.EventBox):
super().__init__()
self._client=client
self._settings=settings
self._click_pos=()
self.set_events(Gdk.EventMask.POINTER_MOTION_MASK)
# album popover
self._album_popover=AlbumPopover(self._client, self._settings)
# connect
self._button_press_event=self.connect("button-press-event", self._on_button_press_event)
self.connect("button-press-event", self._on_button_press_event)
self.connect("button-release-event", self._on_button_release_event)
self.connect("motion-notify-event", self._on_motion_notify_event)
self._client.emitter.connect("disconnected", self._on_disconnected)
def _on_button_press_event(self, widget, event):
if self._settings.get_boolean("mini-player"):
if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS:
window=self.get_toplevel()
window.begin_move_drag(1, event.x_root, event.y_root, Gdk.CURRENT_TIME)
else:
if self._client.connected():
if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS:
self._click_pos=(event.x, event.y)
def _on_button_release_event(self, widget, event):
if event.button != 1 or self._click_pos:
if not self._settings.get_boolean("mini-player") and self._client.connected():
if (song:=self._client.currentsong()):
tags=(song["albumartist"][0], song["album"][0], song["date"][0])
if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS:
if event.button == 1:
self._client.album_to_playlist(*tags)
elif event.button == 1 and event.type == Gdk.EventType._2BUTTON_PRESS:
self._client.album_to_playlist(*tags, "play")
elif event.button == 2 and event.type == Gdk.EventType.BUTTON_PRESS:
elif event.button == 2:
self._client.album_to_playlist(*tags, "append")
elif event.button == 3 and event.type == Gdk.EventType.BUTTON_PRESS:
elif event.button == 3:
self._album_popover.open(*tags, widget, event.x, event.y)
self._click_pos=()
def _on_motion_notify_event(self, widget, event):
if self._click_pos:
# gtk-double-click-distance seems to be the right threshold for this
# according to: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1839
# I verified this via manipulating gtk-double-click-distance.
pointer_travel=max(abs(self._click_pos[0]-event.x), abs(self._click_pos[1]-event.y))
if pointer_travel > Gtk.Settings.get_default().get_property("gtk-double-click-distance"):
window=self.get_toplevel()
window.begin_move_drag(1, event.x_root, event.y_root, Gdk.CURRENT_TIME)
self._click_pos=()
def _on_disconnected(self, *args):
self._album_popover.popdown()
@ -2896,7 +2913,7 @@ class MainCover(Gtk.DrawingArea):
# connect
self._client.emitter.connect("current_song", self._refresh)
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect("reconnected", self._on_reconnected)
self._client.emitter.connect("connected", self._on_connected)
def _clear(self):
self._fallback=True
@ -2915,7 +2932,7 @@ class MainCover(Gtk.DrawingArea):
self.set_sensitive(False)
self._clear()
def _on_reconnected(self, *args):
def _on_connected(self, *args):
self.set_sensitive(True)
def do_draw(self, context):
@ -2966,14 +2983,14 @@ class CoverLyricsWindow(Gtk.Overlay):
# connect
self.lyrics_button.connect("toggled", self._on_lyrics_toggled)
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect("reconnected", self._on_reconnected)
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_overlay(self._lyrics_button_revealer)
def _on_reconnected(self, *args):
def _on_connected(self, *args):
self.lyrics_button.set_sensitive(True)
def _on_disconnected(self, *args):
@ -3000,23 +3017,22 @@ class PlaybackControl(Gtk.ButtonBox):
# widgets
self._play_button_icon=AutoSizedIcon("media-playback-start-symbolic", "icon-size", self._settings)
self._play_button=Gtk.Button(image=self._play_button_icon, action_name="mpd.toggle-play", can_focus=False)
self._play_button=Gtk.Button(
image=self._play_button_icon, action_name="mpd.toggle-play", tooltip_text=_("Play"), can_focus=False)
self._stop_button=Gtk.Button(
image=AutoSizedIcon("media-playback-stop-symbolic", "icon-size", self._settings), action_name="mpd.stop",
can_focus=False, no_show_all=True
)
image=AutoSizedIcon("media-playback-stop-symbolic", "icon-size", self._settings), tooltip_text=_("Stop"),
action_name="mpd.stop", can_focus=False, no_show_all=True)
self._prev_button=Gtk.Button(
image=AutoSizedIcon("media-skip-backward-symbolic", "icon-size", self._settings), action_name="mpd.prev", can_focus=False)
image=AutoSizedIcon("media-skip-backward-symbolic", "icon-size", self._settings),
tooltip_text=_("Previous title"), action_name="mpd.prev", can_focus=False)
self._next_button=Gtk.Button(
image=AutoSizedIcon("media-skip-forward-symbolic", "icon-size", self._settings), action_name="mpd.next", can_focus=False)
image=AutoSizedIcon("media-skip-forward-symbolic", "icon-size", self._settings),
tooltip_text=_("Next title"), action_name="mpd.next", can_focus=False)
# connect
self._settings.connect("changed::mini-player", self._mini_player)
self._settings.connect("changed::show-stop", self._mini_player)
self._client.emitter.connect("state", self._on_state)
self._client.emitter.connect("playlist", self._refresh_tooltips)
self._client.emitter.connect("current_song", self._refresh_tooltips)
self._client.emitter.connect("disconnected", self._on_disconnected)
# packing
self.pack_start(self._prev_button, True, True, 0)
@ -3025,21 +3041,6 @@ class PlaybackControl(Gtk.ButtonBox):
self.pack_start(self._next_button, True, True, 0)
self._mini_player()
def _refresh_tooltips(self, *args):
status=self._client.status()
song=status.get("song")
length=status.get("playlistlength")
if song is None or length is None:
self._prev_button.set_tooltip_text("")
self._next_button.set_tooltip_text("")
else:
elapsed=int(song)
rest=int(length)-elapsed-1
elapsed_songs=ngettext("{number} song", "{number} songs", elapsed).format(number=elapsed)
rest_songs=ngettext("{number} song", "{number} songs", rest).format(number=rest)
self._prev_button.set_tooltip_text(elapsed_songs)
self._next_button.set_tooltip_text(rest_songs)
def _mini_player(self, *args):
visibility=(self._settings.get_boolean("show-stop") and not self._settings.get_boolean("mini-player"))
self._stop_button.set_property("visible", visibility)
@ -3047,12 +3048,10 @@ class PlaybackControl(Gtk.ButtonBox):
def _on_state(self, emitter, state):
if state == "play":
self._play_button_icon.set_property("icon-name", "media-playback-pause-symbolic")
self._play_button.set_tooltip_text(_("Pause"))
else:
self._play_button_icon.set_property("icon-name", "media-playback-start-symbolic")
def _on_disconnected(self, *args):
self._prev_button.set_tooltip_text("")
self._next_button.set_tooltip_text("")
self._play_button.set_tooltip_text(_("Play"))
class SeekBar(Gtk.Box):
def __init__(self, client):
@ -3163,7 +3162,7 @@ class AudioFormat(Gtk.Box):
self._client.emitter.connect("bitrate", self._on_bitrate)
self._client.emitter.connect("current_song", self._on_song_changed)
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect("reconnected", self._on_reconnected)
self._client.emitter.connect("connected", self._on_connected)
# packing
hbox=Gtk.Box(halign=Gtk.Align.END, visible=True)
@ -3209,7 +3208,7 @@ class AudioFormat(Gtk.Box):
self._file_type_label.set_text("")
self._format_label.set_markup("<small> </small>")
def _on_reconnected(self, *args):
def _on_connected(self, *args):
self.set_sensitive(True)
class PlaybackOptions(Gtk.ButtonBox):
@ -3242,7 +3241,7 @@ class PlaybackOptions(Gtk.ButtonBox):
self._client.emitter.connect("single", self._single_refresh)
self._buttons["single"][0].connect("button-press-event", self._on_single_button_press_event)
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect("reconnected", self._on_reconnected)
self._client.emitter.connect("connected", self._on_connected)
self._settings.bind("mini-player", self, "no-show-all", Gio.SettingsBindFlags.GET)
self._settings.bind("mini-player", self, "visible", Gio.SettingsBindFlags.INVERT_BOOLEAN|Gio.SettingsBindFlags.GET)
@ -3280,7 +3279,7 @@ class PlaybackOptions(Gtk.ButtonBox):
self._button_refresh(None, False, name)
self._single_refresh(None, "0")
def _on_reconnected(self, *args):
def _on_connected(self, *args):
self.set_sensitive(True)
class VolumeButton(Gtk.VolumeButton):
@ -3312,7 +3311,7 @@ class VolumeButton(Gtk.VolumeButton):
self._changed=self.connect("value-changed", self._set_volume)
self._client.emitter.connect("volume", self._refresh)
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect("reconnected", self._on_reconnected)
self._client.emitter.connect("connected", self._on_connected)
def _set_volume(self, widget, value):
self._client.setvol(str(int(value)))
@ -3346,7 +3345,7 @@ class VolumeButton(Gtk.VolumeButton):
self._client.enableoutput(out_id)
button.set_property("active", True)
def _on_reconnected(self, *args):
def _on_connected(self, *args):
self.set_sensitive(True)
def _on_disconnected(self, *args):
@ -3373,7 +3372,7 @@ class MPDActionGroup(Gio.SimpleActionGroup):
# connect
self._client.emitter.connect("state", self._on_state)
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect("reconnected", self._on_reconnected)
self._client.emitter.connect("connected", self._on_connected)
def _on_toggle_play(self, action, param):
self._client.toggle_play()
@ -3423,7 +3422,7 @@ class MPDActionGroup(Gio.SimpleActionGroup):
for action in self._data:
self.lookup_action(action).set_enabled(False)
def _on_reconnected(self, *args):
def _on_connected(self, *args):
for action in self._enable_on_reconnect_data:
self.lookup_action(action).set_enabled(True)
@ -3474,7 +3473,7 @@ class ConnectionNotify(Gtk.Revealer):
# connect
connect_button.connect("clicked", self._on_connect_button_clicked)
self._client.emitter.connect("connection_error", self._on_connection_error)
self._client.emitter.connect("reconnected", self._on_reconnected)
self._client.emitter.connect("connected", self._on_connected)
# packing
box=Gtk.Box(spacing=12)
@ -3496,7 +3495,7 @@ class ConnectionNotify(Gtk.Revealer):
self._label.set_text(text)
self.set_reveal_child(True)
def _on_reconnected(self, *args):
def _on_connected(self, *args):
self.set_reveal_child(False)
def _on_connect_button_clicked(self, *args):
@ -3604,8 +3603,10 @@ class MainWindow(Gtk.ApplicationWindow):
self._settings.connect_after("notify::cursor-watch", self._on_cursor_watch)
self._settings.connect("changed::playlist-right", self._on_playlist_pos_changed)
self._client.emitter.connect("current_song", self._on_song_changed)
self._client.emitter.connect("connected", self._on_connected)
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect("reconnected", self._on_reconnected)
self._client.emitter.connect("connecting", self._on_connecting)
self._client.emitter.connect("connection_error", self._on_connection_error)
# auto save window state and size
self.connect("size-allocate", self._on_size_allocate)
self._settings.bind("maximize", self, "is-maximized", Gio.SettingsBindFlags.SET)
@ -3641,32 +3642,22 @@ class MainWindow(Gtk.ApplicationWindow):
overlay.add_overlay(connection_notify)
self.add(overlay)
def open(self):
# bring player in consistent state
self._client.emitter.emit("disconnected")
# indicate connection process in window title
if self._use_csd:
self._header_bar.set_subtitle(_("connecting…"))
else:
self.set_title("mpdevil "+_("connecting…"))
# set default window size
if self._settings.get_boolean("mini-player"):
self.set_default_size(settings.get_int("mini-player-width"), settings.get_int("mini-player-height"))
self.set_default_size(self._settings.get_int("mini-player-width"), self._settings.get_int("mini-player-height"))
else:
self.set_default_size(settings.get_int("width"), settings.get_int("height"))
if settings.get_boolean("maximize"):
self.set_default_size(self._settings.get_int("width"), self._settings.get_int("height"))
if self._settings.get_boolean("maximize"):
self.maximize() # request maximize
# show window
self.show_all()
while Gtk.events_pending(): # ensure window is visible
Gtk.main_iteration_do(True)
if not self._settings.get_boolean("mini-player"):
self._bind_paned_settings() # restore paned settings when window is visible (fixes a bug when window is maximized)
# start client
def callback(*args):
self._client.start() # connect client
return False
idle_add(callback)
self._client.start()
def _clear_title(self):
self.set_title("mpdevil")
@ -3780,7 +3771,7 @@ class MainWindow(Gtk.ApplicationWindow):
self._clear_title()
self.get_application().withdraw_notification("title-change")
def _on_reconnected(self, *args):
def _on_connected(self, *args):
self._clear_title()
for action in ("stats","toggle-lyrics","toggle-search"):
self.lookup_action(action).set_enabled(True)
@ -3793,6 +3784,15 @@ class MainWindow(Gtk.ApplicationWindow):
self._search_button.set_active(False)
self._search_button.set_sensitive(False)
def _on_connecting(self, *args):
if self._use_csd:
self._header_bar.set_subtitle(_("connecting…"))
else:
self.set_title("mpdevil "+_("connecting…"))
def _on_connection_error(self, *args):
self._clear_title()
def _on_size_allocate(self, widget, rect):
if not self.is_maximized():
if (size:=self.get_size()) != self._size: # prevent unneeded write operations
@ -3835,6 +3835,7 @@ class mpdevil(Gtk.Application):
self._window=MainWindow(self._client, self._settings, application=self)
self._window.connect("delete-event", self._on_quit)
self._window.insert_action_group("mpd", MPDActionGroup(self._client))
self._window.open()
# MPRIS
if self._settings.get_boolean("mpris"):
dbus_service=MPRISInterface(self, self._window, self._client, self._settings)