Compare commits

...

63 Commits
0.8.2 ... 0.8.3

Author SHA1 Message Date
Jonas Kvinge
f91b6c3468 Release 0.8.3 2020-10-24 01:32:25 +02:00
Jonas Kvinge
abe6eeb350 Update Changelog 2020-10-23 19:35:07 +02:00
Jonas Kvinge
64f90a7912 Remove Qt MacExtras, no longer used 2020-10-22 23:11:44 +02:00
Jonas Kvinge
5733966843 Dont reset settingspage changed status when window is shown
This is done by Init in Load() when the settings is opened.
2020-10-22 20:25:31 +02:00
Jonas Kvinge
eb1344fcec Unref caps in HandoffCallback 2020-10-22 17:49:13 +02:00
Strawbs Bot
c5fb29f00e Update translations 2020-10-22 01:02:03 +02:00
Jonas Kvinge
63135b9c54 Engine will never be in playing state on error 2020-10-21 23:27:15 +02:00
Jonas Kvinge
f7c666584e Remove debug line 2020-10-21 21:33:26 +02:00
Jonas Kvinge
6834324de2 Add more unit tests for organizeformat 2020-10-21 21:32:30 +02:00
Jonas Kvinge
3a0d59e66f Only append path if not empty 2020-10-21 21:32:12 +02:00
Jonas Kvinge
ffd2e2188a Fix crash with empty APE tag for MPC files 2020-10-21 20:29:06 +02:00
Jonas Kvinge
0e8d5bdc5d Fix crash with empty APE tag for WavPack and APE files 2020-10-21 20:27:43 +02:00
Jonas Kvinge
14806f6614 Update Changelog 2020-10-21 19:57:00 +02:00
Jonas Kvinge
00ece83b9d Tidal: Set default quality to lossless 2020-10-21 19:56:37 +02:00
Jonas Kvinge
8197ae2a2d Tidal: Guess filetype by filename extension in URL when missing codec. 2020-10-21 01:12:46 +02:00
Strawbs Bot
5fe658bb16 Update translations 2020-10-21 01:02:16 +02:00
Jonas Kvinge
617179f0c6 Always set state to NULL in destructor 2020-10-21 00:32:55 +02:00
Jonas Kvinge
95ac85f642 Move stream discoverer from pipeline to engine
Fixes #491
2020-10-21 00:07:58 +02:00
Jonas Kvinge
ca8877ad47 Revert gst_discoverer_stop 2020-10-20 18:47:40 +02:00
Jonas Kvinge
6d8f31048c Add call to gst_discoverer_stop
Stream discoverer currently only works on Linux
2020-10-20 18:28:09 +02:00
Jonas Kvinge
ac859eb576 Make sure we query empty instead of null 2020-10-20 17:14:38 +02:00
Jonas Kvinge
2dfa171b6a Save effective_albumartist as empty istead of null
Since we use the metadata now instead of the container keys for queries in
the model, there is a regression when the values are null.
2020-10-20 17:12:28 +02:00
Jonas Kvinge
6f72e3e2ea Always append divider key to sort text if the key is a digit 2020-10-20 17:11:14 +02:00
Strawbs Bot
c2b73ae963 Update translations 2020-10-20 01:04:50 +02:00
Jonas Kvinge
6c50077409 Fix concurrentrun test 2020-10-19 22:33:08 +02:00
Jonas Kvinge
06746449a1 Disable TestContainerNodes 2020-10-19 22:32:50 +02:00
Jonas Kvinge
da7b8edf51 Revert back to using PathWithoutFilenameExtension in organizedialog 2020-10-19 21:35:39 +02:00
Jonas Kvinge
6e29b41f23 Update Changelog 2020-10-19 21:07:25 +02:00
Jonas Kvinge
912bb069af Fix updating album cover to collection for edit tag dialog 2020-10-19 21:05:59 +02:00
Jonas Kvinge
6b2d7a67d8 Use Utilities::FiddleFileExtension in organize 2020-10-19 19:56:40 +02:00
Jonas Kvinge
dbb8ec0290 Remove debug in bus callbacks 2020-10-19 19:09:48 +02:00
Strawbs Bot
60b32760f2 Update translations 2020-10-19 01:03:27 +02:00
Jonas Kvinge
73a40bcb49 Update Changelog 2020-10-18 17:08:28 +02:00
Jonas Kvinge
0e258a5a32 Remove unused utilities functions 2020-10-18 14:12:01 +02:00
Jonas Kvinge
7ca65c81d8 Use QFileInfo instead of custom functions 2020-10-18 14:07:48 +02:00
Jonas Kvinge
2ad1a60e59 Use correct file extension in organize preview and resulting filename
Fixes #564
2020-10-18 13:24:33 +02:00
Jonas Kvinge
cf17ff4478 Update Changelog 2020-10-18 00:29:28 +02:00
Jonas Kvinge
fffc3aac68 Update Changelog 2020-10-17 21:11:06 +02:00
Jonas Kvinge
295ac3c458 Add back thumbbar 2020-10-17 21:10:57 +02:00
Jonas Kvinge
b6693a71f9 Rename initialise to initialize 2020-10-17 17:29:09 +02:00
Jonas Kvinge
5b21118a8c Replace gst_tag_list_free with gst_tag_list_unref 2020-10-17 04:54:46 +02:00
Jonas Kvinge
0235b19801 Only update buttons once 2020-10-17 04:21:11 +02:00
Jonas Kvinge
7426399aa2 Enable thumbbar for debug build 2020-10-17 03:41:28 +02:00
Jonas Kvinge
6861b0d668 Possible fix Windows thumbbar 2020-10-17 03:37:39 +02:00
Jonas Kvinge
c30fb0d38c Log errors in MM device finder 2020-10-17 03:19:13 +02:00
Jonas Kvinge
e45521c6c0 Fix updating playing widget song details in small mode 2020-10-16 23:57:18 +02:00
Strawbs Bot
d11fe8d4fc Update translations 2020-10-16 01:01:51 +02:00
Jonas Kvinge
8e83e63e3d Add snap warning dialog 2020-10-15 21:47:52 +02:00
Jonas Kvinge
c8fd0ac4b3 Update snapcraft.yaml 2020-10-15 18:51:21 +02:00
Jonas Kvinge
d78419eb33 Enable WASAPI plugin
Fixes #283
2020-10-15 16:08:59 +02:00
Jonas Kvinge
e44a3d013d Disable windows thumbbar
Fixes stability issues with WASAPI
2020-10-15 16:07:20 +02:00
Jonas Kvinge
aeb0d05017 Add CoInitializeEx() to mmdevice finder and refactor code 2020-10-15 16:06:07 +02:00
Jonas Kvinge
62702e4b3d Add space 2020-10-14 22:53:58 +02:00
Jonas Kvinge
5146cdfa2f Improve windows thumbbar code 2020-10-14 22:53:08 +02:00
Jonas Kvinge
246e7018c3 Remove concurrentrun.h 2020-10-14 22:50:19 +02:00
Jonas Kvinge
24286dbe9d Use QtConcurrent::run directly 2020-10-14 22:49:37 +02:00
Jonas Kvinge
2f442dfbe1 Ignore return value 2020-10-14 22:38:32 +02:00
Jonas Kvinge
b2fb01ee9c Use QtConcurrent 2020-10-14 22:35:54 +02:00
Jonas Kvinge
45e0a9a4ef Remove build-snap from CI 2020-10-14 18:36:29 +02:00
Jonas Kvinge
675b7b4bf4 Fix CI 2020-10-14 18:05:04 +02:00
Jonas Kvinge
be7a35443e Add gdb to nsi 2020-10-14 16:55:17 +02:00
Strawbs Bot
9918615fcd Update translations 2020-10-14 01:02:02 +02:00
Jonas Kvinge
4b72ef77c1 Turn back git revision 2020-10-14 00:26:35 +02:00
92 changed files with 2269 additions and 1753 deletions

View File

@@ -1000,10 +1000,10 @@ jobs:
runs-on: macos-latest runs-on: macos-latest
steps: steps:
- uses: actions/checkout@v1.2.0 - uses: actions/checkout@v1.2.0
- name: Update #- name: Update
run: brew update # run: brew update
- name: Upgrade #- name: Upgrade
run: brew upgrade # run: brew upgrade
- name: Install packages - name: Install packages
run: > run: >
brew install brew install
@@ -1230,22 +1230,3 @@ jobs:
for i in $(find uploads -type f -name '*.dmg'); do for i in $(find uploads -type f -name '*.dmg'); do
rsync -e "ssh -p 50220 -o StrictHostKeyChecking=no" -va $i travis@echoes.jkvinge.net:/home/travis/builds/macos/catalina/ rsync -e "ssh -p 50220 -o StrictHostKeyChecking=no" -va $i travis@echoes.jkvinge.net:/home/travis/builds/macos/catalina/
done done
build_snap:
name: Build Snap
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1.2.0
- uses: snapcore/action-build@v1
id: snapcraft
- uses: snapcore/action-publish@v1
if: github.ref == 'refs/heads/master'
with:
store_login: ${{ secrets.SNAP_STORE_LOGIN }}
snap: ${{ steps.snapcraft.outputs.snap }}
release: beta
- uses: actions/upload-artifact@v2
with:
name: release_snap
path: ${{ steps.snapcraft.outputs.snap }}

View File

@@ -151,9 +151,6 @@ endif()
if(DBUS_FOUND) if(DBUS_FOUND)
list(APPEND QT_COMPONENTS DBus) list(APPEND QT_COMPONENTS DBus)
endif() endif()
if(APPLE)
list(APPEND QT_COMPONENTS MacExtras)
endif()
if(WIN32) if(WIN32)
list(APPEND QT_COMPONENTS WinExtras) list(APPEND QT_COMPONENTS WinExtras)
endif() endif()
@@ -176,10 +173,6 @@ if(BUILD_WITH_QT6)
set(QtX11Extras_LIBRARIES Qt6::X11Extras) set(QtX11Extras_LIBRARIES Qt6::X11Extras)
list(APPEND QT_LIBRARIES Qt6::X11Extras) list(APPEND QT_LIBRARIES Qt6::X11Extras)
endif() endif()
if(Qt6MacExtras_FOUND)
set(QtMacExtras_LIBRARIES Qt6::MacExtras)
list(APPEND QT_LIBRARIES Qt6::MacExtras)
endif()
if(Qt6WinExtras_FOUND) if(Qt6WinExtras_FOUND)
set(QtWinExtras_LIBRARIES Qt6::WinExtras) set(QtWinExtras_LIBRARIES Qt6::WinExtras)
list(APPEND QT_LIBRARIES Qt6::WinExtras) list(APPEND QT_LIBRARIES Qt6::WinExtras)
@@ -209,11 +202,6 @@ elseif(BUILD_WITH_QT5)
list(APPEND QT_LIBRARIES ${Qt5X11Extras_LIBRARIES}) list(APPEND QT_LIBRARIES ${Qt5X11Extras_LIBRARIES})
list(APPEND QT_INCLUDE_DIRS ${Qt5X11Extras_INCLUDE_DIRS}) list(APPEND QT_INCLUDE_DIRS ${Qt5X11Extras_INCLUDE_DIRS})
endif() endif()
if(Qt5MacExtras_FOUND)
set(QtMacExtras_LIBRARIES ${Qt5MacExtras_LIBRARIES})
list(APPEND QT_LIBRARIES ${Qt5MacExtras_LIBRARIES})
list(APPEND QT_INCLUDE_DIRS ${Qt5MacExtras_INCLUDE_DIRS})
endif()
if(Qt5WinExtras_FOUND) if(Qt5WinExtras_FOUND)
set(QtWinExtras_LIBRARIES ${Qt5WinExtras_LIBRARIES}) set(QtWinExtras_LIBRARIES ${Qt5WinExtras_LIBRARIES})
list(APPEND QT_LIBRARIES ${Qt5WinExtras_LIBRARIES}) list(APPEND QT_LIBRARIES ${Qt5WinExtras_LIBRARIES})

View File

@@ -2,6 +2,21 @@ Strawberry Music Player
======================= =======================
ChangeLog ChangeLog
0.8.3:
Bugfixes:
* Fixed updating playing widget song details in small cover mode.
* Fixed file extension when transcoding songs.
* Fixed updating album cover to collection in edit tag dialog when pressing save.
* Fixed songs with empty artist in collection.
* Fixed possible crashes with stream discovery.
* Fixed setting engine state to null.
* Fixed tagreader crash with empty APE tags.
* Fixed a gstreamer memory leak.
Enhancements:
* (Windows) Added WASAPI plugin.
0.8.2: 0.8.2:
Bugfixes: Bugfixes:

View File

@@ -65,11 +65,11 @@ To build Strawberry from source you need the following installed on your system
* [GLib](https://developer.gnome.org/glib/) * [GLib](https://developer.gnome.org/glib/)
* [Protobuf library and compiler](https://developers.google.com/protocol-buffers/) * [Protobuf library and compiler](https://developers.google.com/protocol-buffers/)
* [Qt 5.8 or higher (or Qt 6) with components Core, Gui, Widgets, Concurrent, Network and Sql](https://www.qt.io/) * [Qt 5.8 or higher (or Qt 6) with components Core, Gui, Widgets, Concurrent, Network and Sql](https://www.qt.io/)
* [Qt components X11Extras and DBus for Linux/BSD, MacExtras for macOS and WinExtras for Windows](https://www.qt.io/) * [Qt components X11Extras and D-Bus for Linux/BSD and WinExtras for Windows](https://www.qt.io/)
* [SQLite 3.9 or newer with FTS5](https://www.sqlite.org) * [SQLite 3.9 or newer with FTS5](https://www.sqlite.org)
* [Chromaprint library](https://acoustid.org/chromaprint) * [Chromaprint library](https://acoustid.org/chromaprint)
* [ALSA library (linux)](https://www.alsa-project.org/) * [ALSA library (linux)](https://www.alsa-project.org/)
* [DBus (linux)](https://www.freedesktop.org/wiki/Software/dbus/) * [D-Bus (linux)](https://www.freedesktop.org/wiki/Software/dbus/)
* [PulseAudio (linux optional)](https://www.freedesktop.org/wiki/Software/PulseAudio/?) * [PulseAudio (linux optional)](https://www.freedesktop.org/wiki/Software/PulseAudio/?)
* [GStreamer](https://gstreamer.freedesktop.org/) or [VLC](https://www.videolan.org) * [GStreamer](https://gstreamer.freedesktop.org/) or [VLC](https://www.videolan.org)
* [GnuTLS](https://www.gnutls.org/) * [GnuTLS](https://www.gnutls.org/)

View File

@@ -1,6 +1,6 @@
set(STRAWBERRY_VERSION_MAJOR 0) set(STRAWBERRY_VERSION_MAJOR 0)
set(STRAWBERRY_VERSION_MINOR 8) set(STRAWBERRY_VERSION_MINOR 8)
set(STRAWBERRY_VERSION_PATCH 2) set(STRAWBERRY_VERSION_PATCH 3)
#set(STRAWBERRY_VERSION_PRERELEASE rc1) #set(STRAWBERRY_VERSION_PRERELEASE rc1)
set(INCLUDE_GIT_REVISION OFF) set(INCLUDE_GIT_REVISION OFF)

1
dist/CMakeLists.txt vendored
View File

@@ -7,7 +7,6 @@ endif (APPLE)
if (WIN32) if (WIN32)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/windows/strawberry.nsi.in ${CMAKE_CURRENT_SOURCE_DIR}/windows/strawberry.nsi @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/windows/strawberry.nsi.in ${CMAKE_CURRENT_SOURCE_DIR}/windows/strawberry.nsi @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/windows/strawberry-wasapi.nsi.in ${CMAKE_CURRENT_SOURCE_DIR}/windows/strawberry-wasapi.nsi @ONLY)
endif (WIN32) endif (WIN32)
if (UNIX AND NOT APPLE) if (UNIX AND NOT APPLE)

View File

@@ -1,182 +0,0 @@
!if "@ARCH@" == x86
!define arch_x86
!endif
!if "@ARCH@" == i686-w64-mingw32.shared
!define arch_x86
!endif
!if "@ARCH@" == x86_64
!define arch_x64
!endif
!if "@ARCH@" == x86_64-w64-mingw32.shared
!define arch_x64
!endif
!if "@CMAKE_BUILD_TYPE@" == Debug
!define debug
!endif
!if "@BUILD_WITH_QT6@" == "ON"
!define with_qt6
!endif
!ifdef debug
!define PRODUCT_NAME "Strawberry Music Player Debug WASAPI plugin"
!define PRODUCT_NAME_SHORT "StrawberryWASAPI"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME_SHORT}Debug"
!ifdef arch_x86
!define PRODUCT_INSTALL_DIR "$PROGRAMFILES\Strawberry Music Player Debug"
!endif
!ifdef arch_x64
!define PRODUCT_INSTALL_DIR "$PROGRAMFILES64\Strawberry Music Player Debug"
!endif
!else
!define PRODUCT_NAME "Strawberry Music Player WASAPI plugin"
!define PRODUCT_NAME_SHORT "StrawberryWASAPI"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME_SHORT}"
!ifdef arch_x86
!define PRODUCT_INSTALL_DIR "$PROGRAMFILES\Strawberry Music Player"
!endif
!ifdef arch_x64
!define PRODUCT_INSTALL_DIR "$PROGRAMFILES64\Strawberry Music Player"
!endif
!endif
!define PRODUCT_VERSION_MAJOR @STRAWBERRY_VERSION_MAJOR@
!define PRODUCT_VERSION_MINOR @STRAWBERRY_VERSION_MINOR@
!define PRODUCT_VERSION_PATCH @STRAWBERRY_VERSION_PATCH@
!define PRODUCT_DISPLAY_VERSION "@STRAWBERRY_VERSION_PACKAGE@"
!define PRODUCT_DISPLAY_VERSION_SHORT "@STRAWBERRY_VERSION_PACKAGE@"
!define PRODUCT_PUBLISHER "Jonas Kvinge"
!define PRODUCT_WEB_SITE "https://www.strawberrymusicplayer.org/"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
SetCompressor /SOLID lzma
!addplugindir nsisplugins
!include "MUI2.nsh"
!include "FileAssociation.nsh"
!include "Capabilities.nsh"
!include LogicLib.nsh
!include x64.nsh
!define MUI_ICON "strawberry.ico"
!define MUI_COMPONENTSPAGE_SMALLDESC
; Installer pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
Name "${PRODUCT_NAME}"
!ifdef arch_x86
!ifdef debug
!ifdef with_qt6
OutFile "${PRODUCT_NAME_SHORT}Setup-${PRODUCT_DISPLAY_VERSION}-Qt6-Debug-x86.exe"
!else
OutFile "${PRODUCT_NAME_SHORT}Setup-${PRODUCT_DISPLAY_VERSION}-Debug-x86.exe"
!endif
!else
!ifdef with_qt6
OutFile "${PRODUCT_NAME_SHORT}Setup-${PRODUCT_DISPLAY_VERSION}-Qt6-x86.exe"
!else
OutFile "${PRODUCT_NAME_SHORT}Setup-${PRODUCT_DISPLAY_VERSION}-x86.exe"
!endif
!endif
!endif
!ifdef arch_x64
!ifdef debug
!ifdef with_qt6
OutFile "${PRODUCT_NAME_SHORT}Setup-${PRODUCT_DISPLAY_VERSION}-Qt6-Debug-x64.exe"
!else
OutFile "${PRODUCT_NAME_SHORT}Setup-${PRODUCT_DISPLAY_VERSION}-Debug-x64.exe"
!endif
!else
!ifdef with_qt6
OutFile "${PRODUCT_NAME_SHORT}Setup-${PRODUCT_DISPLAY_VERSION}-Qt6-x64.exe"
!else
OutFile "${PRODUCT_NAME_SHORT}Setup-${PRODUCT_DISPLAY_VERSION}-x64.exe"
!endif
!endif
!endif
InstallDir "${PRODUCT_INSTALL_DIR}"
; Get the path where Strawberry was installed previously and set it as default path
InstallDirRegKey ${PRODUCT_UNINST_ROOT_KEY} ${PRODUCT_UNINST_KEY} "UninstallString"
ShowInstDetails show
ShowUnInstDetails show
RequestExecutionLevel admin
; Check for previous installation, and call the uninstaller if any
Function CheckPreviousInstall
ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} ${PRODUCT_UNINST_KEY} "UninstallString"
StrCmp $R0 "" done
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
"${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \
previous version or `Cancel` to cancel this upgrade." \
IDOK uninst
Abort
; Run the uninstaller
uninst:
ClearErrors
ExecWait '$R0' ; Do not copy the uninstaller to a temp file
done:
FunctionEnd
Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
Call CheckPreviousInstall
FunctionEnd
Section "Gstreamer wasapi plugin" gstreamer-wasapi-plugin
SetOutPath "$INSTDIR\gstreamer-plugins"
File "/oname=libgstwasapi.dll" "gstreamer-plugins\libgstwasapi.dll"
SectionEnd
Section "Uninstaller"
; Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall-WASAPI.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall-WASAPI.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\strawberry.ico"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_DISPLAY_VERSION}"
WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "VersionMajor" "${PRODUCT_VERSION_MAJOR}"
WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "VersionMinor" "${PRODUCT_VERSION_MINOR}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
SectionEnd
Section "Uninstall"
Delete "$INSTDIR\gstreamer-plugins\libgstwasapi.dll"
Delete "$INSTDIR\Uninstall-WASAPI.exe"
; Remove the entry from 'installed programs list'
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SectionEnd

View File

@@ -279,6 +279,16 @@ Section "Strawberry" Strawberry
File "libqtsparkle-qt5.dll" File "libqtsparkle-qt5.dll"
!endif !endif
!ifdef debug
File "gdb.exe"
File "libdl.dll"
File "libexpat-1.dll"
File "libmman.dll"
File "libmpfr-6.dll"
File "libreadline8.dll"
File "libtermcap.dll"
!endif
File "killproc.exe" File "killproc.exe"
; Register Strawberry with Default Programs ; Register Strawberry with Default Programs
@@ -361,7 +371,7 @@ Section "Gstreamer plugins" gstreamer-plugins
File "/oname=libgsttypefindfunctions.dll" "gstreamer-plugins\libgsttypefindfunctions.dll" File "/oname=libgsttypefindfunctions.dll" "gstreamer-plugins\libgsttypefindfunctions.dll"
File "/oname=libgstgio.dll" "gstreamer-plugins\libgstgio.dll" File "/oname=libgstgio.dll" "gstreamer-plugins\libgstgio.dll"
File "/oname=libgstdirectsound.dll" "gstreamer-plugins\libgstdirectsound.dll" File "/oname=libgstdirectsound.dll" "gstreamer-plugins\libgstdirectsound.dll"
;File "/oname=libgstwasapi.dll" "gstreamer-plugins\libgstwasapi.dll" File "/oname=libgstwasapi.dll" "gstreamer-plugins\libgstwasapi.dll"
File "/oname=libgstapetag.dll" "gstreamer-plugins\libgstapetag.dll" File "/oname=libgstapetag.dll" "gstreamer-plugins\libgstapetag.dll"
File "/oname=libgsticydemux.dll" "gstreamer-plugins\libgsticydemux.dll" File "/oname=libgsticydemux.dll" "gstreamer-plugins\libgsticydemux.dll"
File "/oname=libgstid3demux.dll" "gstreamer-plugins\libgstid3demux.dll" File "/oname=libgstid3demux.dll" "gstreamer-plugins\libgstid3demux.dll"
@@ -533,6 +543,16 @@ Section "Uninstall"
Delete "$INSTDIR\swscale-5.dll" Delete "$INSTDIR\swscale-5.dll"
Delete "$INSTDIR\zlib1.dll" Delete "$INSTDIR\zlib1.dll"
!ifdef debug
Delete "$INSTDIR\gdb.exe"
Delete "$INSTDIR\libdl.dll"
Delete "$INSTDIR\libexpat-1.dll"
Delete "$INSTDIR\libmman.dll"
Delete "$INSTDIR\libmpfr-6.dll"
Delete "$INSTDIR\libreadline8.dll"
Delete "$INSTDIR\libtermcap.dll"
!endif
Delete "$INSTDIR\gio-modules\libgiognutls.dll" Delete "$INSTDIR\gio-modules\libgiognutls.dll"
Delete "$INSTDIR\platforms\qwindows.dll" Delete "$INSTDIR\platforms\qwindows.dll"
Delete "$INSTDIR\sqldrivers\qsqlite.dll" Delete "$INSTDIR\sqldrivers\qsqlite.dll"

View File

@@ -115,7 +115,7 @@ static void gst_fastspectrum_init (GstFastSpectrum * spectrum) {
spectrum->interval = DEFAULT_INTERVAL; spectrum->interval = DEFAULT_INTERVAL;
spectrum->bands = DEFAULT_BANDS; spectrum->bands = DEFAULT_BANDS;
spectrum->channel_data_initialised = false; spectrum->channel_data_initialized = false;
g_mutex_init (&spectrum->lock); g_mutex_init (&spectrum->lock);
@@ -137,14 +137,14 @@ static void gst_fastspectrum_alloc_channel_data (GstFastSpectrum * spectrum) {
QMutexLocker l(klass->fftw_lock); QMutexLocker l(klass->fftw_lock);
spectrum->plan = fftw_plan_dft_r2c_1d(nfft, spectrum->fft_input, spectrum->fft_output, FFTW_ESTIMATE); spectrum->plan = fftw_plan_dft_r2c_1d(nfft, spectrum->fft_input, spectrum->fft_output, FFTW_ESTIMATE);
} }
spectrum->channel_data_initialised = true; spectrum->channel_data_initialized = true;
} }
static void gst_fastspectrum_free_channel_data (GstFastSpectrum * spectrum) { static void gst_fastspectrum_free_channel_data (GstFastSpectrum * spectrum) {
GstFastSpectrumClass* klass = reinterpret_cast<GstFastSpectrumClass*>(G_OBJECT_GET_CLASS(spectrum)); GstFastSpectrumClass* klass = reinterpret_cast<GstFastSpectrumClass*>(G_OBJECT_GET_CLASS(spectrum));
if (spectrum->channel_data_initialised) { if (spectrum->channel_data_initialized) {
{ {
QMutexLocker l(klass->fftw_lock); QMutexLocker l(klass->fftw_lock);
fftw_destroy_plan(spectrum->plan); fftw_destroy_plan(spectrum->plan);
@@ -154,7 +154,7 @@ static void gst_fastspectrum_free_channel_data (GstFastSpectrum * spectrum) {
delete[] spectrum->input_ring_buffer; delete[] spectrum->input_ring_buffer;
delete[] spectrum->spect_magnitude; delete[] spectrum->spect_magnitude;
spectrum->channel_data_initialised = false; spectrum->channel_data_initialized = false;
} }
} }
@@ -422,7 +422,7 @@ static GstFlowReturn gst_fastspectrum_transform_ip (GstBaseTransform *trans, Gst
/* If we don't have a FFT context yet (or it was reset due to parameter /* If we don't have a FFT context yet (or it was reset due to parameter
* changes) get one and allocate memory for everything * changes) get one and allocate memory for everything
*/ */
if (!spectrum->channel_data_initialised) { if (!spectrum->channel_data_initialized) {
GST_DEBUG_OBJECT (spectrum, "allocating for bands %u", bands); GST_DEBUG_OBJECT (spectrum, "allocating for bands %u", bands);
gst_fastspectrum_alloc_channel_data (spectrum); gst_fastspectrum_alloc_channel_data (spectrum);

View File

@@ -65,7 +65,7 @@ struct GstFastSpectrum {
GstClockTime message_ts; /* starttime for next message */ GstClockTime message_ts; /* starttime for next message */
/* <private> */ /* <private> */
bool channel_data_initialised; bool channel_data_initialized;
double* input_ring_buffer; double* input_ring_buffer;
double* fft_input; double* fft_input;
fftw_complex* fft_output; fftw_complex* fft_output;

View File

@@ -1,123 +0,0 @@
/* This file is part of Strawberry.
Copyright 2012, David Sansome <me@davidsansome.com>
Strawberry is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Strawberry is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Strawberry. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONCURRENTRUN_H
#define CONCURRENTRUN_H
#include <functional>
#include <QFuture>
#include <QRunnable>
#include <QThreadPool>
/*
The aim of ThreadFunctor classes and ConcurrentRun::Run() functions is to
complete QtConcurrentRun, which lack support for using a particular
QThreadPool, as it always uses QThreadPool::globalInstance().
This is problematic when we do not want to share the same thread pool over
all the application, but want to keep the convenient QtConcurrent::run()
functor syntax.
With ConcurrentRun::Run(), time critical changes can be performed in their
own pool, which is not empty by other actions (as it happens when using
QtConcurrentRun::run()).
ThreadFunctor classes are used to store a functor and its arguments, and
Run() functions are used for convenience: to directly create a new
ThreadFunctor object and start it.
*/
/*
Base abstract classes ThreadFunctorBase and ThreadFunctor (for void and
non-void result):
*/
template<typename ReturnType>
class ThreadFunctorBase : public QFutureInterface<ReturnType>, public QRunnable {
public:
ThreadFunctorBase() {}
QFuture<ReturnType> Start(QThreadPool* thread_pool) {
this->setRunnable(this);
this->reportStarted();
Q_ASSERT(thread_pool);
QFuture<ReturnType> future = this->future();
thread_pool->start(this, 0 /* priority: currently we do not support changing the priority. Might be added later if needed */);
return future;
}
void run() override = 0;
};
template <typename ReturnType, typename... Args>
class ThreadFunctor : public ThreadFunctorBase<ReturnType> {
public:
explicit ThreadFunctor(std::function<ReturnType (Args...)> function, Args... args)
: function_(std::bind(function, args...)) {
}
void run() override {
this->reportResult(function_());
this->reportFinished();
}
private:
std::function<ReturnType()> function_;
};
// Partial specialisation for void return type.
template <typename... Args>
class ThreadFunctor <void, Args...> : public ThreadFunctorBase<void> {
public:
explicit ThreadFunctor(std::function<void (Args...)> function, Args... args)
: function_(std::bind(function, args...)) {
}
void run() override {
function_();
this->reportFinished();
}
private:
std::function<void()> function_;
};
/*
Run functions
*/
namespace ConcurrentRun {
// Empty argument form.
template <typename ReturnType>
QFuture<ReturnType> Run(QThreadPool* threadpool, std::function<ReturnType ()> function) {
return (new ThreadFunctor<ReturnType>(function))->Start(threadpool);
}
// Function object with arguments form.
template <typename ReturnType, typename... Args>
QFuture<ReturnType> Run(QThreadPool* threadpool, std::function<ReturnType (Args...)> function, const Args&... args) {
return (new ThreadFunctor<ReturnType, Args...>(function, args...))->Start(threadpool);
}
// Support passing C function pointers instead of function objects.
template <typename ReturnType, typename... Args>
QFuture<ReturnType> Run(QThreadPool* threadpool, ReturnType (*function) (Args...), const Args&... args) {
return Run(threadpool, std::function<ReturnType (Args...)>(function), args...);
}
}
#endif // CONCURRENTRUN_H

View File

@@ -34,25 +34,25 @@ class Lazy {
Lazy() : init_([]() { return new T; }) {} Lazy() : init_([]() { return new T; }) {}
T* get() const { T* get() const {
CheckInitialised(); CheckInitialized();
return ptr_.get(); return ptr_.get();
} }
typename std::add_lvalue_reference<T>::type operator*() const { typename std::add_lvalue_reference<T>::type operator*() const {
CheckInitialised(); CheckInitialized();
return *ptr_; return *ptr_;
} }
T* operator->() const { return get(); } T* operator->() const { return get(); }
// Returns true if the object is not yet initialised. // Returns true if the object is not yet initialized.
explicit operator bool() const { return ptr_; } explicit operator bool() const { return ptr_; }
// Deletes the underlying object and will re-run the initialisation function if the object is requested again. // Deletes the underlying object and will re-run the initialization function if the object is requested again.
void reset() { ptr_.reset(); } void reset() { ptr_.reset(); }
private: private:
void CheckInitialised() const { void CheckInitialized() const {
if (!ptr_) { if (!ptr_) {
ptr_.reset(init_(), [](T*obj) { obj->deleteLater(); }); ptr_.reset(init_(), [](T*obj) { obj->deleteLater(); });
} }

View File

@@ -235,14 +235,14 @@ void TagReader::ReadFile(const QString &filename, pb::tagreader::SongMetadata *s
else if (TagLib::WavPack::File *file_wavpack = dynamic_cast<TagLib::WavPack::File *>(fileref->file())) { else if (TagLib::WavPack::File *file_wavpack = dynamic_cast<TagLib::WavPack::File *>(fileref->file())) {
song->set_bitdepth(file_wavpack->audioProperties()->bitsPerSample()); song->set_bitdepth(file_wavpack->audioProperties()->bitsPerSample());
if (file_wavpack->tag()) { if (file_wavpack->APETag()) {
ParseAPETag(file_wavpack->APETag()->itemListMap(), nullptr, &disc, &compilation, song); ParseAPETag(file_wavpack->APETag()->itemListMap(), nullptr, &disc, &compilation, song);
} }
if (tag) Decode(tag->comment(), nullptr, song->mutable_comment()); if (tag) Decode(tag->comment(), nullptr, song->mutable_comment());
} }
else if (TagLib::APE::File *file_ape = dynamic_cast<TagLib::APE::File*>(fileref->file())) { else if (TagLib::APE::File *file_ape = dynamic_cast<TagLib::APE::File*>(fileref->file())) {
if (file_ape->tag()) { if (file_ape->APETag()) {
ParseAPETag(file_ape->APETag()->itemListMap(), nullptr, &disc, &compilation, song); ParseAPETag(file_ape->APETag()->itemListMap(), nullptr, &disc, &compilation, song);
} }
song->set_bitdepth(file_ape->audioProperties()->bitsPerSample()); song->set_bitdepth(file_ape->audioProperties()->bitsPerSample());
@@ -368,7 +368,7 @@ void TagReader::ReadFile(const QString &filename, pb::tagreader::SongMetadata *s
} }
else if (TagLib::MPC::File* file_mpc = dynamic_cast<TagLib::MPC::File*>(fileref->file())) { else if (TagLib::MPC::File* file_mpc = dynamic_cast<TagLib::MPC::File*>(fileref->file())) {
if (file_mpc->tag()) { if (file_mpc->APETag()) {
ParseAPETag(file_mpc->APETag()->itemListMap(), nullptr, &disc, &compilation, song); ParseAPETag(file_mpc->APETag()->itemListMap(), nullptr, &disc, &compilation, song);
} }
if (tag) Decode(tag->comment(), nullptr, song->mutable_comment()); if (tag) Decode(tag->comment(), nullptr, song->mutable_comment());

View File

@@ -1,10 +1,9 @@
name: strawberry name: strawberry
version: '0.8.2+git' adopt-info: strawberry
summary: music player and collection organizer summary: music player and collection organizer
description: | description: |
Strawberry is a music player and collection organizer. Strawberry is a music player and collection organizer.
It is a fork of Clementine released in 2018 aimed at music collectors, It is a fork of Clementine released in 2018 aimed at music collectors and audiophiles
audio enthusiasts and audiophiles
grade: stable grade: stable
confinement: strict confinement: strict
@@ -43,7 +42,7 @@ parts:
alsa-lib: alsa-lib:
plugin: autotools plugin: autotools
source: https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.1.2.tar.bz2 source: https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.3.tar.bz2
configflags: configflags:
- --prefix=/usr - --prefix=/usr
- --sysconfdir=/etc - --sysconfdir=/etc
@@ -71,6 +70,9 @@ parts:
after: after:
- alsa-lib - alsa-lib
- desktop-qt5 - desktop-qt5
override-pull: |
snapcraftctl pull
snapcraftctl set-version "$(git describe --tags | sed 's/^v//' | cut -d "-" -f1-2)"
override-build: | override-build: |
cmake ../src -DCMAKE_INSTALL_PREFIX=/usr cmake ../src -DCMAKE_INSTALL_PREFIX=/usr
make -j $(getconf _NPROCESSORS_ONLN) make -j $(getconf _NPROCESSORS_ONLN)
@@ -84,6 +86,7 @@ parts:
- gcc - gcc
- g++ - g++
- protobuf-compiler - protobuf-compiler
- gettext
- libglib2.0-dev - libglib2.0-dev
- libgnutls28-dev - libgnutls28-dev
- libdbus-1-dev - libdbus-1-dev
@@ -96,6 +99,7 @@ parts:
- qtbase5-dev - qtbase5-dev
- qtbase5-dev-tools - qtbase5-dev-tools
- qtbase5-private-dev - qtbase5-private-dev
- qttools5-dev
- libqt5x11extras5-dev - libqt5x11extras5-dev
- libgstreamer1.0-dev - libgstreamer1.0-dev
- libgstreamer-plugins-base1.0-dev - libgstreamer-plugins-base1.0-dev
@@ -154,6 +158,10 @@ parts:
- gstreamer1.0-plugins-bad - gstreamer1.0-plugins-bad
- gstreamer1.0-plugins-ugly - gstreamer1.0-plugins-ugly
- gstreamer1.0-libav - gstreamer1.0-libav
- qt5-gtk-platformtheme
- plasma-integration
- kde-style-breeze
- qtwayland5
apps: apps:
strawberry: strawberry:
@@ -174,7 +182,7 @@ apps:
- x11 - x11
- wayland - wayland
- alsa - alsa
- pulseaudio - audio-playback
- removable-media - removable-media
- optical-drive - optical-drive
- raw-usb - raw-usb

View File

@@ -184,6 +184,7 @@ set(SOURCES
dialogs/userpassdialog.cpp dialogs/userpassdialog.cpp
dialogs/deleteconfirmationdialog.cpp dialogs/deleteconfirmationdialog.cpp
dialogs/lastfmimportdialog.cpp dialogs/lastfmimportdialog.cpp
dialogs/snapdialog.cpp
widgets/autoexpandingtreeview.cpp widgets/autoexpandingtreeview.cpp
widgets/busyindicator.cpp widgets/busyindicator.cpp
@@ -399,6 +400,7 @@ set(HEADERS
dialogs/userpassdialog.h dialogs/userpassdialog.h
dialogs/deleteconfirmationdialog.h dialogs/deleteconfirmationdialog.h
dialogs/lastfmimportdialog.h dialogs/lastfmimportdialog.h
dialogs/snapdialog.h
widgets/autoexpandingtreeview.h widgets/autoexpandingtreeview.h
widgets/busyindicator.h widgets/busyindicator.h
@@ -513,6 +515,7 @@ set(UI
dialogs/addstreamdialog.ui dialogs/addstreamdialog.ui
dialogs/userpassdialog.ui dialogs/userpassdialog.ui
dialogs/lastfmimportdialog.ui dialogs/lastfmimportdialog.ui
dialogs/snapdialog.ui
widgets/trackslider.ui widgets/trackslider.ui
widgets/fileview.ui widgets/fileview.ui

View File

@@ -40,7 +40,7 @@
// INSTRUCTIONS Base2D // INSTRUCTIONS Base2D
// 1. do anything that depends on height() in init(), Base2D will call it before you are shown // 1. do anything that depends on height() in init(), Base2D will call it before you are shown
// 2. otherwise you can use the constructor to initialise things // 2. otherwise you can use the constructor to initialize things
// 3. reimplement analyze(), and paint to canvas(), Base2D will update the widget when you return control to it // 3. reimplement analyze(), and paint to canvas(), Base2D will update the widget when you return control to it
// 4. if you want to manipulate the scope, reimplement transform() // 4. if you want to manipulate the scope, reimplement transform()
// 5. for convenience <vector> <qpixmap.h> <qwdiget.h> are pre-included // 5. for convenience <vector> <qpixmap.h> <qwdiget.h> are pre-included

View File

@@ -136,7 +136,7 @@ void AnalyzerContainer::ChangeAnalyzer(int id) {
QObject *instance = analyzer_types_[id]->newInstance(Q_ARG(QWidget*, this)); QObject *instance = analyzer_types_[id]->newInstance(Q_ARG(QWidget*, this));
if (!instance) { if (!instance) {
qLog(Warning) << "Couldn't initialise a new" << analyzer_types_[id]->className(); qLog(Warning) << "Couldn't initialize a new" << analyzer_types_[id]->className();
return; return;
} }

View File

@@ -92,7 +92,7 @@ class RainbowAnalyzer : public Analyzer::Base {
} }
private: private:
// "constants" that get initialised in the constructor // "constants" that get initialized in the constructor
float band_scale_[kRainbowBands]; float band_scale_[kRainbowBands];
QPen colors_[kRainbowBands]; QPen colors_[kRainbowBands];

View File

@@ -817,7 +817,7 @@ CollectionModel::QueryResult CollectionModel::RunQuery(CollectionItem *parent) {
int child_level = parent == root_ ? 0 : parent->container_level + 1; int child_level = parent == root_ ? 0 : parent->container_level + 1;
GroupBy child_type = child_level >= 3 ? GroupBy_None : group_by_[child_level]; GroupBy child_type = child_level >= 3 ? GroupBy_None : group_by_[child_level];
// Initialise the query. child_type says what type of thing we want (artists, songs, etc.) // Initialize the query. child_type says what type of thing we want (artists, songs, etc.)
CollectionQuery q(query_options_); CollectionQuery q(query_options_);
InitQuery(child_type, &q); InitQuery(child_type, &q);
@@ -1133,7 +1133,7 @@ CollectionItem *CollectionModel::InitItem(const GroupBy type, const bool signal,
if (signal) beginInsertRows(ItemToIndex(parent), parent->children.count(), parent->children.count()); if (signal) beginInsertRows(ItemToIndex(parent), parent->children.count(), parent->children.count());
// Initialise the item depending on what type it's meant to be // Initialize the item depending on what type it's meant to be
CollectionItem *item = new CollectionItem(item_type, parent); CollectionItem *item = new CollectionItem(item_type, parent);
item->compilation_artist_node_ = nullptr; item->compilation_artist_node_ = nullptr;
item->container_level = container_level; item->container_level = container_level;
@@ -1566,7 +1566,7 @@ void CollectionModel::FinishItem(const GroupBy type, const bool signal, const bo
// Create the divider entry if we're supposed to // Create the divider entry if we're supposed to
if (create_divider && show_dividers_) { if (create_divider && show_dividers_) {
QString divider_key = DividerKey(type, item); QString divider_key = DividerKey(type, item);
if (item->sort_text.isEmpty() || item->sort_text[0].toLower() != divider_key) if (!divider_key.isEmpty() && (item->sort_text.isEmpty() || item->sort_text[0].toLower() != divider_key || divider_key[0].isDigit()))
item->sort_text.prepend(divider_key); item->sort_text.prepend(divider_key);
if (!divider_key.isEmpty() && !divider_nodes_.contains(divider_key)) { if (!divider_key.isEmpty() && !divider_nodes_.contains(divider_key)) {

View File

@@ -136,6 +136,10 @@ void CollectionQuery::AddWhere(const QString &column, const QVariant &value, con
if (value.type() == QVariant::Int) { if (value.type() == QVariant::Int) {
where_clauses_ << QString("%1 %2 %3").arg(column, op, value.toString()); where_clauses_ << QString("%1 %2 %3").arg(column, op, value.toString());
} }
else if (value.type() == QVariant::String && value.toString().isNull()) {
where_clauses_ << QString("%1 %2 ?").arg(column, op);
bound_values_ << QString("");
}
else { else {
where_clauses_ << QString("%1 %2 ?").arg(column, op); where_clauses_ << QString("%1 %2 ?").arg(column, op);
bound_values_ << value; bound_values_ << value;

View File

@@ -202,7 +202,7 @@ QSqlDatabase Database::Connect() {
UpdateMainSchema(&db); UpdateMainSchema(&db);
} }
// We might have to initialise the schema in some attached databases now, if they were deleted and don't match up with the main schema version. // We might have to initialize the schema in some attached databases now, if they were deleted and don't match up with the main schema version.
for (const QString &key : attached_databases_.keys()) { for (const QString &key : attached_databases_.keys()) {
if (attached_databases_[key].is_temporary_ && attached_databases_[key].schema_.isEmpty()) if (attached_databases_[key].is_temporary_ && attached_databases_[key].schema_.isEmpty())
continue; continue;

View File

@@ -104,6 +104,7 @@
#include "dialogs/addstreamdialog.h" #include "dialogs/addstreamdialog.h"
#include "dialogs/deleteconfirmationdialog.h" #include "dialogs/deleteconfirmationdialog.h"
#include "dialogs/lastfmimportdialog.h" #include "dialogs/lastfmimportdialog.h"
#include "dialogs/snapdialog.h"
#include "organize/organizedialog.h" #include "organize/organizedialog.h"
#include "widgets/fancytabwidget.h" #include "widgets/fancytabwidget.h"
#include "widgets/playingwidget.h" #include "widgets/playingwidget.h"
@@ -320,7 +321,7 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSDBase *osd
connect(app, SIGNAL(ErrorAdded(QString)), SLOT(ShowErrorDialog(QString))); connect(app, SIGNAL(ErrorAdded(QString)), SLOT(ShowErrorDialog(QString)));
connect(app, SIGNAL(SettingsDialogRequested(SettingsDialog::Page)), SLOT(OpenSettingsDialogAtPage(SettingsDialog::Page))); connect(app, SIGNAL(SettingsDialogRequested(SettingsDialog::Page)), SLOT(OpenSettingsDialogAtPage(SettingsDialog::Page)));
// Initialise the UI // Initialize the UI
ui_->setupUi(this); ui_->setupUi(this);
album_cover_choice_controller_->Init(app); album_cover_choice_controller_->Init(app);
@@ -329,7 +330,7 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSDBase *osd
context_view_->Init(app_, collection_view_->view(), album_cover_choice_controller_); context_view_->Init(app_, collection_view_->view(), album_cover_choice_controller_);
ui_->widget_playing->Init(app_, album_cover_choice_controller_); ui_->widget_playing->Init(app_, album_cover_choice_controller_);
// Initialise the search widget // Initialize the search widget
StyleHelper::setBaseColor(palette().color(QPalette::Highlight).darker()); StyleHelper::setBaseColor(palette().color(QPalette::Highlight).darker());
// Add tabs to the fancy tab widget // Add tabs to the fancy tab widget
@@ -362,8 +363,8 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSDBase *osd
track_slider_timer_->setInterval(kTrackSliderUpdateTimeMs); track_slider_timer_->setInterval(kTrackSliderUpdateTimeMs);
connect(track_slider_timer_, SIGNAL(timeout()), SLOT(UpdateTrackSliderPosition())); connect(track_slider_timer_, SIGNAL(timeout()), SLOT(UpdateTrackSliderPosition()));
// Start initialising the player // Start initializing the player
qLog(Debug) << "Initialising player"; qLog(Debug) << "Initializing player";
app_->player()->SetAnalyzer(ui_->analyzer); app_->player()->SetAnalyzer(ui_->analyzer);
app_->player()->SetEqualizer(equalizer_.get()); app_->player()->SetEqualizer(equalizer_.get());
app_->player()->Init(); app_->player()->Init();
@@ -986,6 +987,18 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSDBase *osd
} }
#endif #endif
#ifdef Q_OS_LINUX
if (!Utilities::GetEnv("SNAP").isEmpty() && !Utilities::GetEnv("SNAP_NAME").isEmpty()) {
s.beginGroup(kSettingsGroup);
if (!s.value("ignore_snap", false).toBool()) {
SnapDialog *snap_dialog = new SnapDialog();
snap_dialog->setAttribute(Qt::WA_DeleteOnClose);
snap_dialog->show();
}
s.endGroup();
}
#endif
qLog(Debug) << "Started" << QThread::currentThread(); qLog(Debug) << "Started" << QThread::currentThread();
initialized_ = true; initialized_ = true;

View File

@@ -166,7 +166,7 @@ void Player::Init() {
CreateEngine(enginetype); CreateEngine(enginetype);
} }
if (!engine_->Init()) { qFatal("Error initialising audio engine"); } if (!engine_->Init()) { qFatal("Error initializing audio engine"); }
analyzer_->SetEngine(engine_.get()); analyzer_->SetEngine(engine_.get());

View File

@@ -1372,7 +1372,7 @@ void Song::BindToQuery(QSqlQuery *query) const {
query->bindValue(":art_automatic", d->art_automatic_.toString(QUrl::FullyEncoded)); query->bindValue(":art_automatic", d->art_automatic_.toString(QUrl::FullyEncoded));
query->bindValue(":art_manual", d->art_manual_.toString(QUrl::FullyEncoded)); query->bindValue(":art_manual", d->art_manual_.toString(QUrl::FullyEncoded));
query->bindValue(":effective_albumartist", this->effective_albumartist()); query->bindValue(":effective_albumartist", strval(this->effective_albumartist()));
query->bindValue(":effective_originalyear", intval(this->effective_originalyear())); query->bindValue(":effective_originalyear", intval(this->effective_originalyear()));
query->bindValue(":cue_path", d->cue_path_); query->bindValue(":cue_path", d->cue_path_);

View File

@@ -762,29 +762,6 @@ bool IsLaptop() {
} }
bool UrlOnSameDriveAsStrawberry(const QUrl &url) {
if (!url.isValid() || !url.isLocalFile() || url.toLocalFile().isEmpty()) return false;
#ifdef Q_OS_WIN
QUrl appUrl = QUrl::fromLocalFile(QCoreApplication::applicationDirPath());
if (url.toLocalFile().left(1) == appUrl.toLocalFile().left(1))
return true;
else
return false;
#else
// Non windows systems have always a / in the path
return true;
#endif
}
QUrl GetRelativePathToStrawberryBin(const QUrl &url) {
if (!url.isValid()) return QUrl();
QDir appPath(QCoreApplication::applicationDirPath());
return QUrl::fromLocalFile(appPath.relativeFilePath(url.toLocalFile()));
}
QString PathWithoutFilenameExtension(const QString &filename) { QString PathWithoutFilenameExtension(const QString &filename) {
if (filename.section('/', -1, -1).contains('.')) return filename.section('.', 0, -2); if (filename.section('/', -1, -1).contains('.')) return filename.section('.', 0, -2);
return filename; return filename;

View File

@@ -108,12 +108,6 @@ const char *EnumToString(const QMetaObject &meta, const char *name, int value);
QStringList Prepend(const QString &text, const QStringList &list); QStringList Prepend(const QString &text, const QStringList &list);
QStringList Updateify(const QStringList &list); QStringList Updateify(const QStringList &list);
// Check if two urls are on the same drive (mainly for windows)
bool UrlOnSameDriveAsStrawberry(const QUrl &url);
// Get relative path to Strawberry binary
QUrl GetRelativePathToStrawberryBin(const QUrl &url);
// Get the path without the filename extension // Get the path without the filename extension
QString PathWithoutFilenameExtension(const QString &filename); QString PathWithoutFilenameExtension(const QString &filename);
QString FiddleFileExtension(const QString &filename, const QString &new_extension); QString FiddleFileExtension(const QString &filename, const QString &new_extension);

View File

@@ -2,6 +2,7 @@
* Strawberry Music Player * Strawberry Music Player
* This file was part of Clementine. * This file was part of Clementine.
* Copyright 2010, David Sansome <me@davidsansome.com> * Copyright 2010, David Sansome <me@davidsansome.com>
* Copyright 2020, Jonas Kvinge <jonas@jkvinge.net>
* *
* Strawberry is free software: you can redistribute it and/or modify * Strawberry is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@@ -25,14 +26,17 @@
#include <QList> #include <QList>
#include <QPixmap> #include <QPixmap>
#include <QAction> #include <QAction>
#include <QTimer>
#include <QtDebug> #include <QtDebug>
#ifndef _WIN32_WINNT #ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0600 #define _WIN32_WINNT 0x0600
#endif #endif
#include <windows.h> #include <windows.h>
#include <commctrl.h> #include <commctrl.h>
#include <shobjidl.h> #include <shobjidl.h>
extern HICON qt_pixmapToWinHICON(const QPixmap &p); extern HICON qt_pixmapToWinHICON(const QPixmap &p);
#include "core/logging.h" #include "core/logging.h"
@@ -44,10 +48,16 @@ const int Windows7ThumbBar::kMaxButtonCount = 7;
Windows7ThumbBar::Windows7ThumbBar(QWidget *widget) Windows7ThumbBar::Windows7ThumbBar(QWidget *widget)
: QObject(widget), : QObject(widget),
widget_(widget), widget_(widget),
button_created_message_id_(0), timer_(new QTimer(this)),
taskbar_list_(nullptr) {} button_created_message_id_(0) {
void Windows7ThumbBar::SetActions(const QList<QAction*>& actions) { timer_->setSingleShot(true);
timer_->setInterval(300);
connect(timer_, SIGNAL(timeout()), SLOT(ActionChanged()));
}
void Windows7ThumbBar::SetActions(const QList<QAction*> &actions) {
qLog(Debug) << "Setting actions"; qLog(Debug) << "Setting actions";
Q_ASSERT(actions.count() <= kMaxButtonCount); Q_ASSERT(actions.count() <= kMaxButtonCount);
@@ -55,14 +65,39 @@ void Windows7ThumbBar::SetActions(const QList<QAction*>& actions) {
actions_ = actions; actions_ = actions;
for (QAction *action : actions) { for (QAction *action : actions) {
if (action) { if (action) {
connect(action, SIGNAL(changed()), SLOT(ActionChanged())); connect(action, SIGNAL(changed()), SLOT(ActionChangedTriggered()));
} }
} }
qLog(Debug) << "Done"; qLog(Debug) << "Done";
} }
static void SetupButton(const QAction *action, THUMBBUTTON *button) { ITaskbarList3 *Windows7ThumbBar::CreateTaskbarList() {
ITaskbarList3 *taskbar_list = nullptr;
// Copied from win7 SDK shobjidl.h
static const GUID CLSID_ITaskbarList = { 0x56FDF344,0xFD6D,0x11d0,{0x95,0x8A,0x00,0x60,0x97,0xC9,0xA0,0x90}};
// Create the taskbar list
HRESULT hr = CoCreateInstance(CLSID_ITaskbarList, nullptr, CLSCTX_ALL, IID_ITaskbarList3, (void**)&taskbar_list);
if (hr != S_OK) {
qLog(Warning) << "Error creating the ITaskbarList3 interface" << Qt::hex << DWORD (hr);
return nullptr;
}
hr = taskbar_list->HrInit();
if (hr != S_OK) {
qLog(Warning) << "Error initializing taskbar list" << Qt::hex << DWORD (hr);
taskbar_list->Release();
return nullptr;
}
return taskbar_list;
}
void Windows7ThumbBar::SetupButton(const QAction *action, THUMBBUTTON *button) {
if (action) { if (action) {
button->hIcon = qt_pixmapToWinHICON(action->icon().pixmap(Windows7ThumbBar::kIconSize)); button->hIcon = qt_pixmapToWinHICON(action->icon().pixmap(Windows7ThumbBar::kIconSize));
@@ -77,7 +112,7 @@ static void SetupButton(const QAction *action, THUMBBUTTON *button) {
button->dwMask = THUMBBUTTONMASK(THB_ICON | THB_TOOLTIP | THB_FLAGS); button->dwMask = THUMBBUTTONMASK(THB_ICON | THB_TOOLTIP | THB_FLAGS);
} }
else { else {
button->hIcon = 0; button->hIcon = nullptr;
button->szTip[0] = L'\0'; button->szTip[0] = L'\0';
button->dwFlags = THBF_NOBACKGROUND; button->dwFlags = THBF_NOBACKGROUND;
button->dwMask = THUMBBUTTONMASK(THB_FLAGS); button->dwMask = THUMBBUTTONMASK(THB_FLAGS);
@@ -94,51 +129,33 @@ void Windows7ThumbBar::HandleWinEvent(MSG *msg) {
} }
if (msg->message == button_created_message_id_) { if (msg->message == button_created_message_id_) {
HRESULT hr;
qLog(Debug) << "Button created";
// Unref the old taskbar list if we had one
if (taskbar_list_) {
qLog(Debug) << "Releasing old taskbar list";
reinterpret_cast<ITaskbarList3*>(taskbar_list_)->Release();
taskbar_list_ = nullptr;
}
// Copied from win7 SDK shobjidl.h ITaskbarList3 *taskbar_list = CreateTaskbarList();
static const GUID CLSID_ITaskbarList ={ 0x56FDF344,0xFD6D,0x11d0,{0x95,0x8A,0x00,0x60,0x97,0xC9,0xA0,0x90}}; if (!taskbar_list) return;
// Create the taskbar list
hr = CoCreateInstance(CLSID_ITaskbarList, nullptr, CLSCTX_ALL, IID_ITaskbarList3, (void**)&taskbar_list_);
if (hr != S_OK) {
qLog(Warning) << "Error creating the ITaskbarList3 interface" << Qt::hex << DWORD (hr);
return;
}
ITaskbarList3 *taskbar_list = reinterpret_cast<ITaskbarList3*>(taskbar_list_);
hr = taskbar_list->HrInit();
if (hr != S_OK) {
qLog(Warning) << "Error initialising taskbar list" << Qt::hex << DWORD (hr);
taskbar_list->Release();
taskbar_list_ = nullptr;
return;
}
// Add the buttons // Add the buttons
qLog(Debug) << "Initialising" << actions_.count() << "buttons";
THUMBBUTTON buttons[kMaxButtonCount]; THUMBBUTTON buttons[kMaxButtonCount];
for (int i = 0; i < actions_.count(); ++i) { for (int i = 0 ; i < actions_.count() ; ++i) {
const QAction *action = actions_[i]; const QAction *action = actions_[i];
THUMBBUTTON *button = &buttons[i]; THUMBBUTTON *button = &buttons[i];
button->iId = i; button->iId = i;
SetupButton(action, button); SetupButton(action, button);
} }
qLog(Debug) << "Adding buttons"; qLog(Debug) << "Adding" << actions_.count() << "buttons";
hr = taskbar_list->ThumbBarAddButtons((HWND)widget_->winId(), actions_.count(), buttons); HRESULT hr = taskbar_list->ThumbBarAddButtons(reinterpret_cast<HWND>(widget_->winId()), actions_.count(), buttons);
if (hr != S_OK) if (hr != S_OK) {
qLog(Debug) << "Failed to add buttons" << Qt::hex << DWORD (hr); qLog(Debug) << "Failed to add buttons" << Qt::hex << DWORD (hr);
for (int i = 0; i < actions_.count(); i++) {
if (buttons[i].hIcon)
DestroyIcon (buttons[i].hIcon);
} }
for (int i = 0 ; i < actions_.count() ; ++i) {
if (buttons[i].hIcon) {
DestroyIcon (buttons[i].hIcon);
}
}
taskbar_list->Release();
} }
else if (msg->message == WM_COMMAND) { else if (msg->message == WM_COMMAND) {
const int button_id = LOWORD(msg->wParam); const int button_id = LOWORD(msg->wParam);
@@ -153,21 +170,38 @@ void Windows7ThumbBar::HandleWinEvent(MSG *msg) {
} }
void Windows7ThumbBar::ActionChangedTriggered() {
if (!timer_->isActive()) timer_->start();
}
void Windows7ThumbBar::ActionChanged() { void Windows7ThumbBar::ActionChanged() {
if (!taskbar_list_) return; ITaskbarList3 *taskbar_list = CreateTaskbarList();
ITaskbarList3 *taskbar_list = reinterpret_cast<ITaskbarList3*>(taskbar_list_); if (!taskbar_list) return;
qLog(Debug) << "Updating" << actions_.count() << "buttons";
THUMBBUTTON buttons[kMaxButtonCount]; THUMBBUTTON buttons[kMaxButtonCount];
for (int i = 0; i < actions_.count(); ++i) { for (int i = 0 ; i < actions_.count() ; ++i) {
const QAction *action = actions_[i]; QAction *action = actions_[i];
THUMBBUTTON *button = &buttons[i]; THUMBBUTTON *button = &buttons[i];
button->iId = i; button->iId = i;
SetupButton(action, button); SetupButton(action, button);
if (buttons->hIcon) DestroyIcon(buttons->hIcon);
} }
taskbar_list->ThumbBarUpdateButtons((HWND)widget_->winId(), actions_.count(), buttons); HRESULT hr = taskbar_list->ThumbBarUpdateButtons(reinterpret_cast<HWND>(widget_->winId()), actions_.count(), buttons);
if (hr != S_OK) {
qLog(Debug) << "Failed to update buttons" << Qt::hex << DWORD (hr);
}
for (int i = 0 ; i < actions_.count() ; ++i) {
if (buttons[i].hIcon) {
DestroyIcon(buttons[i].hIcon);
}
}
taskbar_list->Release();
} }

View File

@@ -2,6 +2,7 @@
* Strawberry Music Player * Strawberry Music Player
* This file was part of Clementine. * This file was part of Clementine.
* Copyright 2010, David Sansome <me@davidsansome.com> * Copyright 2010, David Sansome <me@davidsansome.com>
* Copyright 2020, Jonas Kvinge <jonas@jkvinge.net>
* *
* Strawberry is free software: you can redistribute it and/or modify * Strawberry is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@@ -21,24 +22,22 @@
#ifndef WINDOWS7THUMBBAR_H #ifndef WINDOWS7THUMBBAR_H
#define WINDOWS7THUMBBAR_H #define WINDOWS7THUMBBAR_H
#include "config.h" #include <windows.h>
#include <shobjidl.h>
#include <QObject> #include <QObject>
#include <QWidget> #include <QWidget>
#include <QList> #include <QList>
#include <QString>
#include <QAction>
#ifndef Q_OS_WIN32 class QTimer;
typedef void MSG; class QAction;
#endif // Q_OS_WIN32
class Windows7ThumbBar : public QObject { class Windows7ThumbBar : public QObject {
Q_OBJECT Q_OBJECT
public: public:
// Creates a list of buttons in the taskbar icon for this window. Does nothing and is safe to use on other operating systems too. // Creates a list of buttons in the taskbar icon for this window.
explicit Windows7ThumbBar(QWidget *widget = 0); explicit Windows7ThumbBar(QWidget *widget = nullptr);
static const int kIconSize; static const int kIconSize;
static const int kMaxButtonCount; static const int kMaxButtonCount;
@@ -49,17 +48,20 @@ public:
// Call this from the parent's winEvent() function. // Call this from the parent's winEvent() function.
void HandleWinEvent(MSG *msg); void HandleWinEvent(MSG *msg);
private slots: private:
ITaskbarList3 *CreateTaskbarList();
void SetupButton(const QAction *action, THUMBBUTTON *button);
private slots:
void ActionChangedTriggered();
void ActionChanged(); void ActionChanged();
private: private:
QWidget *widget_; QWidget *widget_;
QTimer *timer_;
QList<QAction*> actions_; QList<QAction*> actions_;
unsigned int button_created_message_id_; unsigned int button_created_message_id_;
// Really an ITaskbarList3* but I don't want to have to include windows.h here
void *taskbar_list_;
}; };
#endif // WINDOWS7THUMBBAR_H #endif // WINDOWS7THUMBBAR_H

View File

@@ -199,7 +199,7 @@ void CddaSongLoader::LoadSongs() {
musicbrainz_client->StartDiscIdRequest(musicbrainz_discid); musicbrainz_client->StartDiscIdRequest(musicbrainz_discid);
g_free(string_mb); g_free(string_mb);
gst_message_unref(msg_tag); gst_message_unref(msg_tag);
gst_tag_list_free(tags); gst_tag_list_unref(tags);
} }
} }
#endif #endif

View File

@@ -40,7 +40,7 @@ class DeviceLister : public QObject {
DeviceLister(); DeviceLister();
~DeviceLister() override; ~DeviceLister() override;
// Tries to start the thread and initialise the engine. This object will be moved to the new thread. // Tries to start the thread and initialize the engine. This object will be moved to the new thread.
void Start(); void Start();
virtual void ExitAsync(); virtual void ExitAsync();

View File

@@ -29,6 +29,7 @@
#include <QObject> #include <QObject>
#include <QMetaObject> #include <QMetaObject>
#include <QThread> #include <QThread>
#include <QtConcurrent>
#include <QAbstractItemModel> #include <QAbstractItemModel>
#include <QDir> #include <QDir>
#include <QList> #include <QList>
@@ -46,7 +47,6 @@
#include "devicemanager.h" #include "devicemanager.h"
#include "core/application.h" #include "core/application.h"
#include "core/concurrentrun.h"
#include "core/database.h" #include "core/database.h"
#include "core/iconloader.h" #include "core/iconloader.h"
#include "core/logging.h" #include "core/logging.h"
@@ -102,7 +102,7 @@ DeviceManager::DeviceManager(Application *app, QObject *parent)
connect(this, SIGNAL(DeviceCreatedFromDB(DeviceInfo*)), SLOT(AddDeviceFromDB(DeviceInfo*))); connect(this, SIGNAL(DeviceCreatedFromDB(DeviceInfo*)), SLOT(AddDeviceFromDB(DeviceInfo*)));
// This reads from the database and contents on the database mutex, which can be very slow on startup. // This reads from the database and contents on the database mutex, which can be very slow on startup.
ConcurrentRun::Run<void>(&thread_pool_, std::bind(&DeviceManager::LoadAllDevices, this)); (void)QtConcurrent::run(&thread_pool_, std::bind(&DeviceManager::LoadAllDevices, this));
// This proxy model only shows connected devices // This proxy model only shows connected devices
connected_devices_model_ = new DeviceStateFilterModel(this); connected_devices_model_ = new DeviceStateFilterModel(this);

View File

@@ -47,7 +47,7 @@
class DeviceLister; class DeviceLister;
class DeviceManager; class DeviceManager;
bool MtpDevice::sInitialisedLibMTP = false; bool MtpDevice::sInitializedLibMTP = false;
MtpDevice::MtpDevice(const QUrl &url, DeviceLister *lister, const QString &unique_id, DeviceManager *manager, Application *app, int database_id, bool first_time) MtpDevice::MtpDevice(const QUrl &url, DeviceLister *lister, const QString &unique_id, DeviceManager *manager, Application *app, int database_id, bool first_time)
: ConnectedDevice(url, lister, unique_id, manager, app, database_id, first_time), : ConnectedDevice(url, lister, unique_id, manager, app, database_id, first_time),
@@ -55,9 +55,9 @@ MtpDevice::MtpDevice(const QUrl &url, DeviceLister *lister, const QString &uniqu
loader_thread_(nullptr), loader_thread_(nullptr),
closing_(false) { closing_(false) {
if (!sInitialisedLibMTP) { if (!sInitializedLibMTP) {
LIBMTP_Init(); LIBMTP_Init();
sInitialisedLibMTP = true; sInitializedLibMTP = true;
} }
} }

View File

@@ -80,7 +80,7 @@ class MtpDevice : public ConnectedDevice {
int GetCapacity(LIBMTP_mtpdevice_struct* device); int GetCapacity(LIBMTP_mtpdevice_struct* device);
private: private:
static bool sInitialisedLibMTP; static bool sInitializedLibMTP;
MtpLoader *loader_; MtpLoader *loader_;
QThread *loader_thread_; QThread *loader_thread_;

View File

@@ -721,13 +721,16 @@ void EditTagDialog::UpdateCoverOf(const Song &selected, const QModelIndexList &s
// Now check if we have any other songs cached that share that artist and album (and would therefore be changed as well) // Now check if we have any other songs cached that share that artist and album (and would therefore be changed as well)
for (int i = 0; i < data_.count(); ++i) { for (int i = 0; i < data_.count(); ++i) {
if (i == sel.first().row()) // Already changed this one
continue;
Song *other_song = &data_[i].original_; if (i != sel.first().row()) {
if (selected.artist() == other_song->artist() && selected.album() == other_song->album()) { Song *other_song = &data_[i].original_;
other_song->set_art_manual(cover_url); if (selected.effective_albumartist() == other_song->effective_albumartist() && selected.album() == other_song->album()) {
other_song->set_art_manual(cover_url);
}
} }
data_[i].current_.set_art_manual(data_[i].original_.art_manual());
} }
} }

View File

@@ -0,0 +1,87 @@
/*
* Strawberry Music Player
* Copyright 2020, Jonas Kvinge <jonas@jkvinge.net>
*
* Strawberry is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Strawberry is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Strawberry. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "config.h"
#include <QDialog>
#include <QDialogButtonBox>
#include <QString>
#include <QFont>
#include <QLabel>
#include <QPushButton>
#include <QKeySequence>
#include <QSettings>
#include "snapdialog.h"
#include "ui_snapdialog.h"
#include "core/mainwindow.h"
SnapDialog::SnapDialog(QWidget *parent) : QDialog(parent), ui_(new Ui_SnapDialog) {
ui_->setupUi(this);
setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint);
setWindowTitle(tr("Strawberry is running as a Snap"));
QString text;
text += QString("<p>");
text += tr("It is detected that Strawberry is running as a Snap");
text += QString("</p>");
text += QString("<p>");
text += tr("Strawberry is slower, and has restrictions when running as a Snap. Accessing the root filesystem (/) will not work. There also might be other restrictions such as accessing certain devices or network shares.");
text += QString("</p>");
text += QString("<p>");
text += QString("Strawberry is available natively in the official package repositories for Fedora, openSUSE, Mageia, Arch, Manjaro, MX Linux and most other popular Linux distributions.");
text += QString("</p>");
text += QString("<p>");
text += tr("For Ubuntu there is an official PPA repository available at %1.").arg(QString("<a style=\"color:%1;\" href=\"https://launchpad.net/~jonaski/+archive/ubuntu/strawberry\">https://launchpad.net/~jonaski/+archive/ubuntu/strawberry</a>").arg(palette().text().color().name()));
text += QString("</p>");
text += QString("<p>");
text += tr("Official releases are available for Debian and Ubuntu which also work on most of their derivatives. See %1 for more information.").arg(QString("<a style=\"color:%1;\" href=\"https://www.strawberrymusicplayer.org/\">https://www.strawberrymusicplayer.org/</a>").arg(palette().text().color().name()));
text += QString("</p>");
text += QString("<p>");
text += tr("For a better experience please consider the other options above.");
text += QString("</p>");
text += QString("<p></p>");
ui_->label_text->setText(text);
ui_->label_text->adjustSize();
ui_->buttonBox->button(QDialogButtonBox::Ok)->setShortcut(QKeySequence::Close);
connect(ui_->checkbox_do_not_show_message_again, SIGNAL(toggled(bool)), SLOT(DoNotShowMessageAgain()));
}
SnapDialog::~SnapDialog() { delete ui_; }
void SnapDialog::DoNotShowMessageAgain() {
QSettings s;
s.beginGroup(MainWindow::kSettingsGroup);
s.setValue("ignore_snap", ui_->checkbox_do_not_show_message_again->isChecked());
s.endGroup();
}

41
src/dialogs/snapdialog.h Normal file
View File

@@ -0,0 +1,41 @@
/*
* Strawberry Music Player
* Copyright 2020, Jonas Kvinge <jonas@jkvinge.net>
*
* Strawberry is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Strawberry is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Strawberry. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef SNAPDIALOG_H
#define SNAPDIALOG_H
#include <QDialog>
class Ui_SnapDialog;
class SnapDialog : public QDialog {
Q_OBJECT
public:
explicit SnapDialog(QWidget *parent = nullptr);
~SnapDialog() override;
private slots:
void DoNotShowMessageAgain();
private:
Ui_SnapDialog *ui_;
};
#endif // SNAPDIALOG_H

160
src/dialogs/snapdialog.ui Normal file
View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SnapDialog</class>
<widget class="QDialog" name="SnapDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>300</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="windowTitle">
<string>Strawberry is running as a snap</string>
</property>
<property name="windowIcon">
<iconset resource="../../data/icons.qrc">
<normaloff>:/icons/64x64/strawberry.png</normaloff>:/icons/64x64/strawberry.png</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
<item>
<layout class="QVBoxLayout" name="layout_left">
<item>
<widget class="QLabel" name="label_logo">
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../data/icons.qrc">:/icons/64x64/dialog-warning.png</pixmap>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="layout_right">
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
<item>
<widget class="QLabel" name="label_text">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkbox_do_not_show_message_again">
<property name="text">
<string>Do not show this message again.</string>
</property>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<resources>
<include location="../../data/data.qrc"/>
<include location="../../data/icons.qrc"/>
</resources>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>SnapDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>SnapDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -35,8 +35,7 @@
#include "alsadevicefinder.h" #include "alsadevicefinder.h"
AlsaDeviceFinder::AlsaDeviceFinder() AlsaDeviceFinder::AlsaDeviceFinder()
: DeviceFinder("alsa", {"alsa","alsasink"}) { : DeviceFinder("alsa", {"alsa","alsasink"}) {}
}
QList<DeviceFinder::Device> AlsaDeviceFinder::ListDevices() { QList<DeviceFinder::Device> AlsaDeviceFinder::ListDevices() {
@@ -45,7 +44,7 @@ QList<DeviceFinder::Device> AlsaDeviceFinder::ListDevices() {
snd_pcm_stream_name(SND_PCM_STREAM_PLAYBACK); snd_pcm_stream_name(SND_PCM_STREAM_PLAYBACK);
int card = -1; int card = -1;
snd_ctl_card_info_t* cardinfo; snd_ctl_card_info_t *cardinfo = nullptr;
snd_ctl_card_info_alloca(&cardinfo); snd_ctl_card_info_alloca(&cardinfo);
while (true) { while (true) {
@@ -59,7 +58,7 @@ QList<DeviceFinder::Device> AlsaDeviceFinder::ListDevices() {
char str[32]; char str[32];
snprintf(str, sizeof(str) - 1, "hw:%d", card); snprintf(str, sizeof(str) - 1, "hw:%d", card);
snd_ctl_t* handle; snd_ctl_t *handle = nullptr;
result = snd_ctl_open(&handle, str, 0); result = snd_ctl_open(&handle, str, 0);
if (result < 0) { if (result < 0) {
qLog(Error) << "Unable to open soundcard" << card << ":" << snd_strerror(result); qLog(Error) << "Unable to open soundcard" << card << ":" << snd_strerror(result);
@@ -75,7 +74,7 @@ QList<DeviceFinder::Device> AlsaDeviceFinder::ListDevices() {
} }
int dev = -1; int dev = -1;
snd_pcm_info_t* pcminfo; snd_pcm_info_t *pcminfo = nullptr;
snd_pcm_info_alloca(&pcminfo); snd_pcm_info_alloca(&pcminfo);
while (true) { while (true) {

View File

@@ -30,7 +30,7 @@ class AlsaDeviceFinder : public DeviceFinder {
public: public:
explicit AlsaDeviceFinder(); explicit AlsaDeviceFinder();
bool Initialise() override { return true; } bool Initialize() override { return true; }
QList<Device> ListDevices() override; QList<Device> ListDevices() override;
}; };

View File

@@ -47,7 +47,7 @@ class DeviceFinder {
void add_output(const QString output) { outputs_.append(output); } void add_output(const QString output) { outputs_.append(output); }
// Does any necessary setup, returning false if this DeviceFinder cannot be used. // Does any necessary setup, returning false if this DeviceFinder cannot be used.
virtual bool Initialise() = 0; virtual bool Initialize() = 0;
// Returns a list of available devices. // Returns a list of available devices.
virtual QList<Device> ListDevices() = 0; virtual QList<Device> ListDevices() = 0;

View File

@@ -70,8 +70,8 @@ void DeviceFinders::Init() {
#endif #endif
for (DeviceFinder *finder : device_finders) { for (DeviceFinder *finder : device_finders) {
if (!finder->Initialise()) { if (!finder->Initialize()) {
qLog(Warning) << "Failed to initialise DeviceFinder for" << finder->name(); qLog(Warning) << "Failed to initialize DeviceFinder for" << finder->name();
delete finder; delete finder;
continue; continue;
} }

View File

@@ -31,7 +31,7 @@ class DirectSoundDeviceFinder : public DeviceFinder {
public: public:
explicit DirectSoundDeviceFinder(); explicit DirectSoundDeviceFinder();
virtual bool Initialise() { return true; } virtual bool Initialize() { return true; }
virtual QList<Device> ListDevices(); virtual QList<Device> ListDevices();
private: private:

View File

@@ -31,6 +31,7 @@
#include <string> #include <string>
#include <gst/gst.h> #include <gst/gst.h>
#include <gst/pbutils/pbutils.h>
#include <QtGlobal> #include <QtGlobal>
#include <QFuture> #include <QFuture>
@@ -53,6 +54,7 @@
#include "core/logging.h" #include "core/logging.h"
#include "core/taskmanager.h" #include "core/taskmanager.h"
#include "core/timeconstants.h" #include "core/timeconstants.h"
#include "core/signalchecker.h"
#include "enginebase.h" #include "enginebase.h"
#include "enginetype.h" #include "enginetype.h"
#include "gstengine.h" #include "gstengine.h"
@@ -71,9 +73,12 @@ const char *GstEngine::kAVDTPSink = "avdtpsink";
const char *GstEngine::InterAudiosink = "interaudiosink"; const char *GstEngine::InterAudiosink = "interaudiosink";
const char *GstEngine::kDirectSoundSink = "directsoundsink"; const char *GstEngine::kDirectSoundSink = "directsoundsink";
const char *GstEngine::kOSXAudioSink = "osxaudiosink"; const char *GstEngine::kOSXAudioSink = "osxaudiosink";
const int GstEngine::kDiscoveryTimeoutS = 10;
GstEngine::GstEngine(TaskManager *task_manager) GstEngine::GstEngine(TaskManager *task_manager)
: task_manager_(task_manager), : task_manager_(task_manager),
gst_startup_(nullptr),
discoverer_(nullptr),
buffering_task_id_(-1), buffering_task_id_(-1),
latest_buffer_(nullptr), latest_buffer_(nullptr),
stereo_balancer_enabled_(false), stereo_balancer_enabled_(false),
@@ -86,7 +91,10 @@ GstEngine::GstEngine(TaskManager *task_manager)
is_fading_out_to_pause_(false), is_fading_out_to_pause_(false),
has_faded_out_(false), has_faded_out_(false),
scope_chunk_(0), scope_chunk_(0),
have_new_buffer_(false) { have_new_buffer_(false),
discovery_finished_cb_id_(-1),
discovery_discovered_cb_id_(-1)
{
type_ = Engine::GStreamer; type_ = Engine::GStreamer;
seek_timer_->setSingleShot(true); seek_timer_->setSingleShot(true);
@@ -99,7 +107,7 @@ GstEngine::GstEngine(TaskManager *task_manager)
GstEngine::~GstEngine() { GstEngine::~GstEngine() {
EnsureInitialised(); EnsureInitialized();
current_pipeline_.reset(); current_pipeline_.reset();
if (latest_buffer_) { if (latest_buffer_) {
@@ -107,6 +115,19 @@ GstEngine::~GstEngine() {
latest_buffer_ = nullptr; latest_buffer_ = nullptr;
} }
if (discoverer_) {
if (discovery_discovered_cb_id_ != -1)
g_signal_handler_disconnect(G_OBJECT(discoverer_), discovery_discovered_cb_id_);
if (discovery_finished_cb_id_ != -1)
g_signal_handler_disconnect(G_OBJECT(discoverer_), discovery_finished_cb_id_);
gst_discoverer_stop(discoverer_);
g_object_unref(discoverer_);
discoverer_ = nullptr;
}
} }
bool GstEngine::Init() { bool GstEngine::Init() {
@@ -136,19 +157,28 @@ Engine::State GstEngine::state() const {
void GstEngine::StartPreloading(const QUrl &stream_url, const QUrl &original_url, const bool force_stop_at_end, const qint64 beginning_nanosec, const qint64 end_nanosec) { void GstEngine::StartPreloading(const QUrl &stream_url, const QUrl &original_url, const bool force_stop_at_end, const qint64 beginning_nanosec, const qint64 end_nanosec) {
EnsureInitialised(); EnsureInitialized();
QByteArray gst_url = FixupUrl(stream_url); QByteArray gst_url = FixupUrl(stream_url);
// No crossfading, so we can just queue the new URL in the existing pipeline and get gapless playback (hopefully) // No crossfading, so we can just queue the new URL in the existing pipeline and get gapless playback (hopefully)
if (current_pipeline_) if (current_pipeline_) {
current_pipeline_->SetNextUrl(gst_url, original_url, beginning_nanosec, force_stop_at_end ? end_nanosec : 0); current_pipeline_->SetNextUrl(gst_url, original_url, beginning_nanosec, force_stop_at_end ? end_nanosec : 0);
// Add request to discover the stream
#ifdef Q_OS_LINUX
if (discoverer_) {
if (!gst_discoverer_discover_uri_async(discoverer_, gst_url.toStdString().c_str())) {
qLog(Error) << "Failed to start stream discovery for" << gst_url;
}
}
#endif
}
} }
bool GstEngine::Load(const QUrl &stream_url, const QUrl &original_url, Engine::TrackChangeFlags change, const bool force_stop_at_end, const quint64 beginning_nanosec, const qint64 end_nanosec) { bool GstEngine::Load(const QUrl &stream_url, const QUrl &original_url, Engine::TrackChangeFlags change, const bool force_stop_at_end, const quint64 beginning_nanosec, const qint64 end_nanosec) {
EnsureInitialised(); EnsureInitialized();
Engine::Base::Load(stream_url, original_url, change, force_stop_at_end, beginning_nanosec, end_nanosec); Engine::Base::Load(stream_url, original_url, change, force_stop_at_end, beginning_nanosec, end_nanosec);
@@ -180,13 +210,34 @@ bool GstEngine::Load(const QUrl &stream_url, const QUrl &original_url, Engine::T
if (crossfade) if (crossfade)
current_pipeline_->StartFader(fadeout_duration_nanosec_, QTimeLine::Forward); current_pipeline_->StartFader(fadeout_duration_nanosec_, QTimeLine::Forward);
// Setting up stream discoverer
#ifdef Q_OS_LINUX
if (!discoverer_) {
discoverer_ = gst_discoverer_new(kDiscoveryTimeoutS * GST_SECOND, nullptr);
if (discoverer_) {
discovery_discovered_cb_id_ = CHECKED_GCONNECT(G_OBJECT(discoverer_), "discovered", &StreamDiscovered, this);
discovery_finished_cb_id_ = CHECKED_GCONNECT(G_OBJECT(discoverer_), "finished", &StreamDiscoveryFinished, this);
gst_discoverer_start(discoverer_);
}
}
#endif
// Add request to discover the stream
#ifdef Q_OS_LINUX
if (discoverer_) {
if (!gst_discoverer_discover_uri_async(discoverer_, gst_url.toStdString().c_str())) {
qLog(Error) << "Failed to start stream discovery for" << gst_url;
}
}
#endif
return true; return true;
} }
bool GstEngine::Play(const quint64 offset_nanosec) { bool GstEngine::Play(const quint64 offset_nanosec) {
EnsureInitialised(); EnsureInitialized();
if (!current_pipeline_ || current_pipeline_->is_buffering()) return false; if (!current_pipeline_ || current_pipeline_->is_buffering()) return false;
@@ -344,7 +395,7 @@ const Engine::Scope &GstEngine::scope(const int chunk_length) {
EngineBase::OutputDetailsList GstEngine::GetOutputsList() const { EngineBase::OutputDetailsList GstEngine::GetOutputsList() const {
const_cast<GstEngine*>(this)->EnsureInitialised(); const_cast<GstEngine*>(this)->EnsureInitialized();
EngineBase::OutputDetailsList ret; EngineBase::OutputDetailsList ret;
@@ -369,7 +420,7 @@ EngineBase::OutputDetailsList GstEngine::GetOutputsList() const {
bool GstEngine::ValidOutput(const QString &output) { bool GstEngine::ValidOutput(const QString &output) {
EnsureInitialised(); EnsureInitialized();
PluginDetailsList plugins = GetPluginList("Sink/Audio"); PluginDetailsList plugins = GetPluginList("Sink/Audio");
for (const PluginDetails &plugin : plugins) { for (const PluginDetails &plugin : plugins) {
@@ -645,7 +696,7 @@ void GstEngine::BufferingFinished() {
GstEngine::PluginDetailsList GstEngine::GetPluginList(const QString &classname) const { GstEngine::PluginDetailsList GstEngine::GetPluginList(const QString &classname) const {
const_cast<GstEngine*>(this)->EnsureInitialised(); const_cast<GstEngine*>(this)->EnsureInitialized();
PluginDetailsList ret; PluginDetailsList ret;
@@ -672,7 +723,7 @@ GstEngine::PluginDetailsList GstEngine::GetPluginList(const QString &classname)
QByteArray GstEngine::FixupUrl(const QUrl &url) { QByteArray GstEngine::FixupUrl(const QUrl &url) {
EnsureInitialised(); EnsureInitialized();
QByteArray uri; QByteArray uri;
@@ -749,7 +800,7 @@ void GstEngine::StopTimers() {
std::shared_ptr<GstEnginePipeline> GstEngine::CreatePipeline() { std::shared_ptr<GstEnginePipeline> GstEngine::CreatePipeline() {
EnsureInitialised(); EnsureInitialized();
std::shared_ptr<GstEnginePipeline> ret(new GstEnginePipeline(this)); std::shared_ptr<GstEnginePipeline> ret(new GstEnginePipeline(this));
ret->set_output_device(output_, device_); ret->set_output_device(output_, device_);
@@ -845,3 +896,69 @@ void GstEngine::UpdateScope(const int chunk_length) {
} }
} }
void GstEngine::StreamDiscovered(GstDiscoverer*, GstDiscovererInfo *info, GError*, gpointer self) {
GstEngine *instance = reinterpret_cast<GstEngine*>(self);
if (!instance->current_pipeline_) return;
QString discovered_url(gst_discoverer_info_get_uri(info));
GstDiscovererResult result = gst_discoverer_info_get_result(info);
if (result != GST_DISCOVERER_OK) {
QString error_message = GSTdiscovererErrorMessage(result);
qLog(Error) << QString("Stream discovery for %1 failed: %2").arg(discovered_url).arg(error_message);
return;
}
GList *audio_streams = gst_discoverer_info_get_audio_streams(info);
if (audio_streams) {
GstDiscovererStreamInfo *stream_info = reinterpret_cast<GstDiscovererStreamInfo*>(g_list_first(audio_streams)->data);
Engine::SimpleMetaBundle bundle;
if (discovered_url == instance->current_pipeline_->stream_url()) {
bundle.url = instance->current_pipeline_->original_url();
}
else if (discovered_url == instance->current_pipeline_->next_stream_url()) {
bundle.url = instance->current_pipeline_->next_original_url();
}
bundle.stream_url = QUrl(discovered_url);
bundle.samplerate = gst_discoverer_audio_info_get_sample_rate(GST_DISCOVERER_AUDIO_INFO(stream_info));
bundle.bitdepth = gst_discoverer_audio_info_get_depth(GST_DISCOVERER_AUDIO_INFO(stream_info));
bundle.bitrate = gst_discoverer_audio_info_get_bitrate(GST_DISCOVERER_AUDIO_INFO(stream_info)) / 1000;
GstCaps *caps = gst_discoverer_stream_info_get_caps(stream_info);
gchar *codec_description = gst_pb_utils_get_codec_description(caps);
QString filetype_description = (codec_description ? QString(codec_description) : QString("Unknown"));
g_free(codec_description);
gst_caps_unref(caps);
gst_discoverer_stream_info_list_free(audio_streams);
bundle.filetype = Song::FiletypeByDescription(filetype_description);
qLog(Info) << "Got stream info for" << discovered_url + ":" << filetype_description;
emit instance->MetaData(bundle);
}
else {
qLog(Error) << "Could not detect an audio stream in" << discovered_url;
}
}
void GstEngine::StreamDiscoveryFinished(GstDiscoverer*, gpointer) {}
QString GstEngine::GSTdiscovererErrorMessage(GstDiscovererResult result) {
switch (result) {
case GST_DISCOVERER_URI_INVALID: return "The URI is invalid";
case GST_DISCOVERER_TIMEOUT: return "The discovery timed-out";
case GST_DISCOVERER_BUSY: return "The discoverer was already discovering a file";
case GST_DISCOVERER_MISSING_PLUGINS: return "Some plugins are missing for full discovery";
case GST_DISCOVERER_ERROR:
default: return "An error happened and the GError is set";
}
}

View File

@@ -28,6 +28,7 @@
#include <memory> #include <memory>
#include <gst/gst.h> #include <gst/gst.h>
#include <gst/pbutils/pbutils.h>
#include <QtGlobal> #include <QtGlobal>
#include <QObject> #include <QObject>
@@ -85,7 +86,7 @@ class GstEngine : public Engine::Base, public GstBufferConsumer {
bool ALSADeviceSupport(const QString &output) override; bool ALSADeviceSupport(const QString &output) override;
void SetStartup(GstStartup *gst_startup) { gst_startup_ = gst_startup; } void SetStartup(GstStartup *gst_startup) { gst_startup_ = gst_startup; }
void EnsureInitialised() { gst_startup_->EnsureInitialised(); } void EnsureInitialized() { gst_startup_->EnsureInitialized(); }
GstElement *CreateElement(const QString &factoryName, GstElement *bin = nullptr, const bool showerror = true); GstElement *CreateElement(const QString &factoryName, GstElement *bin = nullptr, const bool showerror = true);
void ConsumeBuffer(GstBuffer *buffer, const int pipeline_id, const QString &format) override; void ConsumeBuffer(GstBuffer *buffer, const int pipeline_id, const QString &format) override;
@@ -126,19 +127,6 @@ class GstEngine : public Engine::Base, public GstBufferConsumer {
void BufferingFinished(); void BufferingFinished();
private: private:
static const char *kAutoSink;
static const char *kALSASink;
static const char *kOpenALSASink;
static const char *kOSSSink;
static const char *kOSS4Sink;
static const char *kJackAudioSink;
static const char *kPulseSink;
static const char *kA2DPSink;
static const char *kAVDTPSink;
static const char *InterAudiosink;
static const char *kDirectSoundSink;
static const char *kOSXAudioSink;
PluginDetailsList GetPluginList(const QString &classname) const; PluginDetailsList GetPluginList(const QString &classname) const;
QByteArray FixupUrl(const QUrl &url); QByteArray FixupUrl(const QUrl &url);
@@ -153,13 +141,32 @@ class GstEngine : public Engine::Base, public GstBufferConsumer {
void UpdateScope(int chunk_length); void UpdateScope(int chunk_length);
static void StreamDiscovered(GstDiscoverer*, GstDiscovererInfo *info, GError*, gpointer self);
static void StreamDiscoveryFinished(GstDiscoverer*, gpointer);
static QString GSTdiscovererErrorMessage(GstDiscovererResult result);
private: private:
static const char *kAutoSink;
static const char *kALSASink;
static const char *kOpenALSASink;
static const char *kOSSSink;
static const char *kOSS4Sink;
static const char *kJackAudioSink;
static const char *kPulseSink;
static const char *kA2DPSink;
static const char *kAVDTPSink;
static const char *InterAudiosink;
static const char *kDirectSoundSink;
static const char *kOSXAudioSink;
static const int kDiscoveryTimeoutS;
static const qint64 kTimerIntervalNanosec = 1000 * kNsecPerMsec; // 1s static const qint64 kTimerIntervalNanosec = 1000 * kNsecPerMsec; // 1s
static const qint64 kPreloadGapNanosec = 5000 * kNsecPerMsec; // 5s static const qint64 kPreloadGapNanosec = 5000 * kNsecPerMsec; // 5s
static const qint64 kSeekDelayNanosec = 100 * kNsecPerMsec; // 100msec static const qint64 kSeekDelayNanosec = 100 * kNsecPerMsec; // 100msec
TaskManager *task_manager_; TaskManager *task_manager_;
GstStartup *gst_startup_; GstStartup *gst_startup_;
GstDiscoverer *discoverer_;
int buffering_task_id_; int buffering_task_id_;
std::shared_ptr<GstEnginePipeline> current_pipeline_; std::shared_ptr<GstEnginePipeline> current_pipeline_;
@@ -197,6 +204,9 @@ class GstEngine : public Engine::Base, public GstBufferConsumer {
int scope_chunks_; int scope_chunks_;
QString buffer_format_; QString buffer_format_;
int discovery_finished_cb_id_;
int discovery_discovered_cb_id_;
}; };
#endif /* GSTENGINE_H */ #endif /* GSTENGINE_H */

View File

@@ -28,11 +28,11 @@
#include <glib-object.h> #include <glib-object.h>
#include <gst/gst.h> #include <gst/gst.h>
#include <gst/audio/audio.h> #include <gst/audio/audio.h>
#include <gst/pbutils/pbutils.h>
#include <QtGlobal> #include <QtGlobal>
#include <QObject> #include <QObject>
#include <QCoreApplication> #include <QCoreApplication>
#include <QtConcurrent>
#include <QMutex> #include <QMutex>
#include <QByteArray> #include <QByteArray>
#include <QList> #include <QList>
@@ -45,7 +45,6 @@
#include <QUuid> #include <QUuid>
#include <QtDebug> #include <QtDebug>
#include "core/concurrentrun.h"
#include "core/logging.h" #include "core/logging.h"
#include "core/signalchecker.h" #include "core/signalchecker.h"
#include "core/timeconstants.h" #include "core/timeconstants.h"
@@ -59,7 +58,6 @@
const int GstEnginePipeline::kGstStateTimeoutNanosecs = 10000000; const int GstEnginePipeline::kGstStateTimeoutNanosecs = 10000000;
const int GstEnginePipeline::kFaderFudgeMsec = 2000; const int GstEnginePipeline::kFaderFudgeMsec = 2000;
const int GstEnginePipeline::kDiscoveryTimeoutS = 10;
const int GstEnginePipeline::kEqBandCount = 10; const int GstEnginePipeline::kEqBandCount = 10;
const int GstEnginePipeline::kEqBandFrequencies[] = { 60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000 }; const int GstEnginePipeline::kEqBandFrequencies[] = { 60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000 };
@@ -92,7 +90,7 @@ GstEnginePipeline::GstEnginePipeline(GstEngine *engine)
next_end_offset_nanosec_(-1), next_end_offset_nanosec_(-1),
ignore_next_seek_(false), ignore_next_seek_(false),
ignore_tags_(false), ignore_tags_(false),
pipeline_is_initialised_(false), pipeline_is_initialized_(false),
pipeline_is_connected_(false), pipeline_is_connected_(false),
pending_seek_nanosec_(-1), pending_seek_nanosec_(-1),
last_known_position_ns_(0), last_known_position_ns_(0),
@@ -107,13 +105,10 @@ GstEnginePipeline::GstEnginePipeline(GstEngine *engine)
audiopanorama_(nullptr), audiopanorama_(nullptr),
equalizer_(nullptr), equalizer_(nullptr),
equalizer_preamp_(nullptr), equalizer_preamp_(nullptr),
discoverer_(nullptr),
pad_added_cb_id_(-1), pad_added_cb_id_(-1),
notify_source_cb_id_(-1), notify_source_cb_id_(-1),
about_to_finish_cb_id_(-1), about_to_finish_cb_id_(-1),
bus_cb_id_(-1), bus_cb_id_(-1),
discovery_finished_cb_id_(-1),
discovery_discovered_cb_id_(-1),
unsupported_analyzer_(false) unsupported_analyzer_(false)
{ {
@@ -127,18 +122,6 @@ GstEnginePipeline::GstEnginePipeline(GstEngine *engine)
GstEnginePipeline::~GstEnginePipeline() { GstEnginePipeline::~GstEnginePipeline() {
if (discoverer_) {
if (discovery_discovered_cb_id_ != -1)
g_signal_handler_disconnect(G_OBJECT(discoverer_), discovery_discovered_cb_id_);
if (discovery_finished_cb_id_ != -1)
g_signal_handler_disconnect(G_OBJECT(discoverer_), discovery_finished_cb_id_);
g_object_unref(discoverer_);
discoverer_ = nullptr;
}
if (pipeline_) { if (pipeline_) {
if (pad_added_cb_id_ != -1) if (pad_added_cb_id_ != -1)
@@ -159,8 +142,7 @@ GstEnginePipeline::~GstEnginePipeline() {
gst_object_unref(bus); gst_object_unref(bus);
} }
if (state() != GST_STATE_NULL) gst_element_set_state(pipeline_, GST_STATE_NULL);
gst_element_set_state(pipeline_, GST_STATE_NULL);
gst_object_unref(GST_OBJECT(pipeline_)); gst_object_unref(GST_OBJECT(pipeline_));
@@ -234,14 +216,6 @@ bool GstEnginePipeline::InitFromUrl(const QByteArray &stream_url, const QUrl ori
notify_source_cb_id_ = CHECKED_GCONNECT(G_OBJECT(pipeline_), "notify::source", &SourceSetupCallback, this); notify_source_cb_id_ = CHECKED_GCONNECT(G_OBJECT(pipeline_), "notify::source", &SourceSetupCallback, this);
about_to_finish_cb_id_ = CHECKED_GCONNECT(G_OBJECT(pipeline_), "about-to-finish", &AboutToFinishCallback, this); about_to_finish_cb_id_ = CHECKED_GCONNECT(G_OBJECT(pipeline_), "about-to-finish", &AboutToFinishCallback, this);
// Setting up a discoverer
discoverer_ = gst_discoverer_new(kDiscoveryTimeoutS * GST_SECOND, nullptr);
if (discoverer_) {
discovery_discovered_cb_id_ = CHECKED_GCONNECT(G_OBJECT(discoverer_), "discovered", &StreamDiscovered, this);
discovery_finished_cb_id_ = CHECKED_GCONNECT(G_OBJECT(discoverer_), "finished", &StreamDiscoveryFinished, this);
gst_discoverer_start(discoverer_);
}
if (!InitAudioBin()) return false; if (!InitAudioBin()) return false;
// Set playbin's sink to be our custom audio-sink. // Set playbin's sink to be our custom audio-sink.
@@ -440,13 +414,6 @@ bool GstEnginePipeline::InitAudioBin() {
bus_cb_id_ = gst_bus_add_watch(bus, BusCallback, this); bus_cb_id_ = gst_bus_add_watch(bus, BusCallback, this);
gst_object_unref(bus); gst_object_unref(bus);
// Add request to discover the stream
if (discoverer_) {
if (!gst_discoverer_discover_uri_async(discoverer_, stream_url_.toStdString().c_str())) {
qLog(Error) << "Failed to start stream discovery for" << stream_url_;
}
}
unsupported_analyzer_ = false; unsupported_analyzer_ = false;
return true; return true;
@@ -480,7 +447,7 @@ GstPadProbeReturn GstEnginePipeline::EventHandoffCallback(GstPad*, GstPadProbeIn
} }
void GstEnginePipeline::SourceSetupCallback(GstPlayBin *bin, GParamSpec *, gpointer self) { void GstEnginePipeline::SourceSetupCallback(GstPlayBin *bin, GParamSpec*, gpointer self) {
GstEnginePipeline *instance = reinterpret_cast<GstEnginePipeline*>(self); GstEnginePipeline *instance = reinterpret_cast<GstEnginePipeline*>(self);
@@ -537,7 +504,7 @@ void GstEnginePipeline::NewPadCallback(GstElement*, GstPad *pad, gpointer self)
gst_pad_add_probe(pad, static_cast<GstPadProbeType>(GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM | GST_PAD_PROBE_TYPE_EVENT_FLUSH), PlaybinProbe, instance, nullptr); gst_pad_add_probe(pad, static_cast<GstPadProbeType>(GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM | GST_PAD_PROBE_TYPE_EVENT_FLUSH), PlaybinProbe, instance, nullptr);
instance->pipeline_is_connected_ = true; instance->pipeline_is_connected_ = true;
if (instance->pending_seek_nanosec_ != -1 && instance->pipeline_is_initialised_) { if (instance->pending_seek_nanosec_ != -1 && instance->pipeline_is_initialized_) {
QMetaObject::invokeMethod(instance, "Seek", Qt::QueuedConnection, Q_ARG(qint64, instance->pending_seek_nanosec_)); QMetaObject::invokeMethod(instance, "Seek", Qt::QueuedConnection, Q_ARG(qint64, instance->pending_seek_nanosec_));
} }
@@ -594,6 +561,7 @@ GstPadProbeReturn GstEnginePipeline::HandoffCallback(GstPad *pad, GstPadProbeInf
int rate = 0; int rate = 0;
gst_structure_get_int(structure, "channels", &channels); gst_structure_get_int(structure, "channels", &channels);
gst_structure_get_int(structure, "rate", &rate); gst_structure_get_int(structure, "rate", &rate);
gst_caps_unref(caps);
GstBuffer *buf = gst_pad_probe_info_get_buffer(info); GstBuffer *buf = gst_pad_probe_info_get_buffer(info);
GstBuffer *buf16 = nullptr; GstBuffer *buf16 = nullptr;
@@ -731,8 +699,6 @@ gboolean GstEnginePipeline::BusCallback(GstBus*, GstMessage *msg, gpointer self)
GstEnginePipeline *instance = reinterpret_cast<GstEnginePipeline*>(self); GstEnginePipeline *instance = reinterpret_cast<GstEnginePipeline*>(self);
qLog(Debug) << instance->id() << "bus message" << GST_MESSAGE_TYPE_NAME(msg);
switch (GST_MESSAGE_TYPE(msg)) { switch (GST_MESSAGE_TYPE(msg)) {
case GST_MESSAGE_ERROR: case GST_MESSAGE_ERROR:
instance->ErrorMessageReceived(msg); instance->ErrorMessageReceived(msg);
@@ -758,8 +724,6 @@ GstBusSyncReply GstEnginePipeline::BusCallbackSync(GstBus*, GstMessage *msg, gpo
GstEnginePipeline *instance = reinterpret_cast<GstEnginePipeline*>(self); GstEnginePipeline *instance = reinterpret_cast<GstEnginePipeline*>(self);
qLog(Debug) << instance->id() << "sync bus message" << GST_MESSAGE_TYPE_NAME(msg);
switch (GST_MESSAGE_TYPE(msg)) { switch (GST_MESSAGE_TYPE(msg)) {
case GST_MESSAGE_EOS: case GST_MESSAGE_EOS:
emit instance->EndOfStreamReached(instance->id(), false); emit instance->EndOfStreamReached(instance->id(), false);
@@ -804,7 +768,7 @@ GstBusSyncReply GstEnginePipeline::BusCallbackSync(GstBus*, GstMessage *msg, gpo
void GstEnginePipeline::StreamStatusMessageReceived(GstMessage *msg) { void GstEnginePipeline::StreamStatusMessageReceived(GstMessage *msg) {
GstStreamStatusType type; GstStreamStatusType type;
GstElement *owner; GstElement *owner = nullptr;
gst_message_parse_stream_status(msg, &type, &owner); gst_message_parse_stream_status(msg, &type, &owner);
if (type == GST_STREAM_STATUS_TYPE_CREATE) { if (type == GST_STREAM_STATUS_TYPE_CREATE) {
@@ -835,9 +799,9 @@ void GstEnginePipeline::StreamStartMessageReceived() {
} }
void GstEnginePipeline::TaskEnterCallback(GstTask *, GThread *, gpointer) { void GstEnginePipeline::TaskEnterCallback(GstTask*, GThread*, gpointer) {
// Bump the priority of the thread only on OS X // Bump the priority of the thread only on macOS
#ifdef Q_OS_MACOS #ifdef Q_OS_MACOS
sched_param param; sched_param param;
@@ -875,13 +839,13 @@ void GstEnginePipeline::ErrorMessageReceived(GstMessage *msg) {
g_error_free(error); g_error_free(error);
g_free(debugs); g_free(debugs);
if (state() == GST_STATE_PLAYING && pipeline_is_initialised_ && next_uri_set_ && (domain == GST_RESOURCE_ERROR || domain == GST_STREAM_ERROR)) { if (pipeline_is_initialized_ && next_uri_set_ && (domain == GST_RESOURCE_ERROR || domain == GST_STREAM_ERROR)) {
// A track is still playing and the next uri is not playable. We ignore the error here so it can play until the end. // A track is still playing and the next uri is not playable. We ignore the error here so it can play until the end.
// But there is no message send to the bus when the current track finishes, we have to add an EOS ourself. // But there is no message send to the bus when the current track finishes, we have to add an EOS ourself.
qLog(Info) << "Ignoring error when loading next track"; qLog(Info) << "Ignoring error when loading next track";
GstPad *sinkpad = gst_element_get_static_pad(audiobin_, "sink"); GstPad *pad = gst_element_get_static_pad(audiobin_, "sink");
gst_pad_send_event(sinkpad, gst_event_new_eos()); gst_pad_send_event(pad, gst_event_new_eos());
gst_object_unref(sinkpad); gst_object_unref(pad);
return; return;
} }
@@ -949,7 +913,7 @@ void GstEnginePipeline::TagMessageReceived(GstMessage *msg) {
} }
} }
gst_tag_list_free(taglist); gst_tag_list_unref(taglist);
emit MetadataFound(id(), bundle); emit MetadataFound(id(), bundle);
@@ -990,29 +954,21 @@ void GstEnginePipeline::StateChangedMessageReceived(GstMessage *msg) {
GstState old_state, new_state, pending; GstState old_state, new_state, pending;
gst_message_parse_state_changed(msg, &old_state, &new_state, &pending); gst_message_parse_state_changed(msg, &old_state, &new_state, &pending);
if (!pipeline_is_initialised_ && (new_state == GST_STATE_PAUSED || new_state == GST_STATE_PLAYING)) { if (!pipeline_is_initialized_ && (new_state == GST_STATE_PAUSED || new_state == GST_STATE_PLAYING)) {
pipeline_is_initialised_ = true; pipeline_is_initialized_ = true;
if (pending_seek_nanosec_ != -1 && pipeline_is_connected_) { if (pending_seek_nanosec_ != -1 && pipeline_is_connected_) {
QMetaObject::invokeMethod(this, "Seek", Qt::QueuedConnection, Q_ARG(qint64, pending_seek_nanosec_)); QMetaObject::invokeMethod(this, "Seek", Qt::QueuedConnection, Q_ARG(qint64, pending_seek_nanosec_));
} }
} }
if (pipeline_is_initialised_ && new_state != GST_STATE_PAUSED && new_state != GST_STATE_PLAYING) { if (pipeline_is_initialized_ && new_state != GST_STATE_PAUSED && new_state != GST_STATE_PLAYING) {
pipeline_is_initialised_ = false; pipeline_is_initialized_ = false;
if (next_uri_set_ && new_state == GST_STATE_READY) { if (next_uri_set_ && new_state == GST_STATE_READY) {
// Revert uri and go back to PLAY state again // Revert uri and go back to PLAY state again
next_uri_set_ = false; next_uri_set_ = false;
g_object_set(G_OBJECT(pipeline_), "uri", stream_url_.constData(), nullptr); g_object_set(G_OBJECT(pipeline_), "uri", stream_url_.constData(), nullptr);
SetState(GST_STATE_PLAYING); SetState(GST_STATE_PLAYING);
// Add request to discover the stream
if (discoverer_) {
if (!gst_discoverer_discover_uri_async(discoverer_, stream_url_.toStdString().c_str())) {
qLog(Error) << "Failed to start stream discovery for" << stream_url_;
}
}
} }
} }
@@ -1050,7 +1006,7 @@ void GstEnginePipeline::BufferingMessageReceived(GstMessage *msg) {
qint64 GstEnginePipeline::position() const { qint64 GstEnginePipeline::position() const {
if (pipeline_is_initialised_) if (pipeline_is_initialized_)
gst_element_query_position(pipeline_, GST_FORMAT_TIME, &last_known_position_ns_); gst_element_query_position(pipeline_, GST_FORMAT_TIME, &last_known_position_ns_);
return last_known_position_ns_; return last_known_position_ns_;
@@ -1077,7 +1033,7 @@ GstState GstEnginePipeline::state() const {
} }
QFuture<GstStateChangeReturn> GstEnginePipeline::SetState(const GstState state) { QFuture<GstStateChangeReturn> GstEnginePipeline::SetState(const GstState state) {
return ConcurrentRun::Run<GstStateChangeReturn, GstElement*, GstState>(&set_state_threadpool_, &gst_element_set_state, pipeline_, state); return QtConcurrent::run(&set_state_threadpool_, &gst_element_set_state, pipeline_, state);
} }
bool GstEnginePipeline::Seek(const qint64 nanosec) { bool GstEnginePipeline::Seek(const qint64 nanosec) {
@@ -1087,7 +1043,7 @@ bool GstEnginePipeline::Seek(const qint64 nanosec) {
return true; return true;
} }
if (!pipeline_is_connected_ || !pipeline_is_initialised_) { if (!pipeline_is_connected_ || !pipeline_is_initialized_) {
pending_seek_nanosec_ = nanosec; pending_seek_nanosec_ = nanosec;
return true; return true;
} }
@@ -1261,76 +1217,4 @@ void GstEnginePipeline::SetNextUrl(const QByteArray &stream_url, const QUrl &ori
next_beginning_offset_nanosec_ = beginning_nanosec; next_beginning_offset_nanosec_ = beginning_nanosec;
next_end_offset_nanosec_ = end_nanosec; next_end_offset_nanosec_ = end_nanosec;
// Add request to discover the stream
if (discoverer_) {
if (!gst_discoverer_discover_uri_async(discoverer_, next_stream_url_.toStdString().c_str())) {
qLog(Error) << "Failed to start stream discovery for" << next_stream_url_;
}
}
}
void GstEnginePipeline::StreamDiscovered(GstDiscoverer*, GstDiscovererInfo *info, GError*, gpointer self) {
GstEnginePipeline *instance = reinterpret_cast<GstEnginePipeline*>(self);
QString discovered_url(gst_discoverer_info_get_uri(info));
GstDiscovererResult result = gst_discoverer_info_get_result(info);
if (result != GST_DISCOVERER_OK) {
QString error_message = GSTdiscovererErrorMessage(result);
qLog(Error) << QString("Stream discovery for %1 failed: %2").arg(discovered_url).arg(error_message);
return;
}
GList *audio_streams = gst_discoverer_info_get_audio_streams(info);
if (audio_streams) {
GstDiscovererStreamInfo *stream_info = reinterpret_cast<GstDiscovererStreamInfo*>(g_list_first(audio_streams)->data);
Engine::SimpleMetaBundle bundle;
if (discovered_url == instance->stream_url_) {
bundle.url = instance->original_url_;
}
else if (discovered_url == instance->next_stream_url_) {
bundle.url = instance->next_original_url_;
}
bundle.stream_url = QUrl(discovered_url);
bundle.samplerate = gst_discoverer_audio_info_get_sample_rate(GST_DISCOVERER_AUDIO_INFO(stream_info));
bundle.bitdepth = gst_discoverer_audio_info_get_depth(GST_DISCOVERER_AUDIO_INFO(stream_info));
bundle.bitrate = gst_discoverer_audio_info_get_bitrate(GST_DISCOVERER_AUDIO_INFO(stream_info)) / 1000;
GstCaps *caps = gst_discoverer_stream_info_get_caps(stream_info);
gchar *codec_description = gst_pb_utils_get_codec_description(caps);
QString filetype_description = (codec_description ? QString(codec_description) : QString("Unknown"));
g_free(codec_description);
gst_caps_unref(caps);
gst_discoverer_stream_info_list_free(audio_streams);
bundle.filetype = Song::FiletypeByDescription(filetype_description);
qLog(Info) << "Got stream info for" << discovered_url + ":" << filetype_description;
emit instance->MetadataFound(instance->id(), bundle);
}
else {
qLog(Error) << "Could not detect an audio stream in" << discovered_url;
}
}
void GstEnginePipeline::StreamDiscoveryFinished(GstDiscoverer*, gpointer) {}
QString GstEnginePipeline::GSTdiscovererErrorMessage(GstDiscovererResult result) {
switch (result) {
case GST_DISCOVERER_URI_INVALID: return "The URI is invalid";
case GST_DISCOVERER_TIMEOUT: return "The discovery timed-out";
case GST_DISCOVERER_BUSY: return "The discoverer was already discovering a file";
case GST_DISCOVERER_MISSING_PLUGINS: return "Some plugins are missing for full discovery";
case GST_DISCOVERER_ERROR:
default: return "An error happened and the GError is set";
}
} }

View File

@@ -29,7 +29,6 @@
#include <glib-object.h> #include <glib-object.h>
#include <glib/gtypes.h> #include <glib/gtypes.h>
#include <gst/gst.h> #include <gst/gst.h>
#include <gst/pbutils/pbutils.h>
#include <QtGlobal> #include <QtGlobal>
#include <QObject> #include <QObject>
@@ -100,7 +99,9 @@ class GstEnginePipeline : public QObject {
// Get information about the music playback // Get information about the music playback
QByteArray stream_url() const { return stream_url_; } QByteArray stream_url() const { return stream_url_; }
QByteArray next_stream_url() const { return next_stream_url_; }
QUrl original_url() const { return original_url_; } QUrl original_url() const { return original_url_; }
QUrl next_original_url() const { return next_original_url_; }
bool is_valid() const { return valid_; } bool is_valid() const { return valid_; }
// Please note that this method (unlike GstEngine's.position()) is multiple-section media unaware. // Please note that this method (unlike GstEngine's.position()) is multiple-section media unaware.
@@ -149,9 +150,6 @@ class GstEnginePipeline : public QObject {
static GstBusSyncReply BusCallbackSync(GstBus*, GstMessage*, gpointer); static GstBusSyncReply BusCallbackSync(GstBus*, GstMessage*, gpointer);
static gboolean BusCallback(GstBus*, GstMessage*, gpointer); static gboolean BusCallback(GstBus*, GstMessage*, gpointer);
static void TaskEnterCallback(GstTask*, GThread*, gpointer); static void TaskEnterCallback(GstTask*, GThread*, gpointer);
static void StreamDiscovered(GstDiscoverer*, GstDiscovererInfo *info, GError*, gpointer self);
static void StreamDiscoveryFinished(GstDiscoverer*, gpointer);
static QString GSTdiscovererErrorMessage(GstDiscovererResult result);
void TagMessageReceived(GstMessage*); void TagMessageReceived(GstMessage*);
void ErrorMessageReceived(GstMessage*); void ErrorMessageReceived(GstMessage*);
@@ -174,7 +172,6 @@ class GstEnginePipeline : public QObject {
private: private:
static const int kGstStateTimeoutNanosecs; static const int kGstStateTimeoutNanosecs;
static const int kFaderFudgeMsec; static const int kFaderFudgeMsec;
static const int kDiscoveryTimeoutS;
static const int kEqBandCount; static const int kEqBandCount;
static const int kEqBandFrequencies[]; static const int kEqBandFrequencies[];
@@ -249,7 +246,7 @@ class GstEnginePipeline : public QObject {
// Seeking while the pipeline is in the READY state doesn't work, so we have to wait until it goes to PAUSED or PLAYING. // Seeking while the pipeline is in the READY state doesn't work, so we have to wait until it goes to PAUSED or PLAYING.
// Also we have to wait for the playbin to be connected. // Also we have to wait for the playbin to be connected.
bool pipeline_is_initialised_; bool pipeline_is_initialized_;
bool pipeline_is_connected_; bool pipeline_is_connected_;
qint64 pending_seek_nanosec_; qint64 pending_seek_nanosec_;
@@ -275,14 +272,11 @@ class GstEnginePipeline : public QObject {
GstElement *audiopanorama_; GstElement *audiopanorama_;
GstElement *equalizer_; GstElement *equalizer_;
GstElement *equalizer_preamp_; GstElement *equalizer_preamp_;
GstDiscoverer *discoverer_;
int pad_added_cb_id_; int pad_added_cb_id_;
int notify_source_cb_id_; int notify_source_cb_id_;
int about_to_finish_cb_id_; int about_to_finish_cb_id_;
int bus_cb_id_; int bus_cb_id_;
int discovery_finished_cb_id_;
int discovery_discovered_cb_id_;
QThreadPool set_state_threadpool_; QThreadPool set_state_threadpool_;

View File

@@ -41,14 +41,12 @@
#include "gststartup.h" #include "gststartup.h"
GstStartup::GstStartup(QObject *parent) : QObject(parent) { GstStartup::GstStartup(QObject *parent) : QObject(parent) {
initialising_ = QtConcurrent::run([=]{ InitialiseGStreamer(); }); initializing_ = QtConcurrent::run([=]{ InitializeGStreamer(); });
} }
GstStartup::~GstStartup() { GstStartup::~GstStartup() {}
//gst_deinit();
}
void GstStartup::InitialiseGStreamer() { void GstStartup::InitializeGStreamer() {
SetEnvironment(); SetEnvironment();

View File

@@ -34,12 +34,12 @@ class GstStartup : public QObject {
explicit GstStartup(QObject *parent = nullptr); explicit GstStartup(QObject *parent = nullptr);
~GstStartup() override; ~GstStartup() override;
void EnsureInitialised() { initialising_.waitForFinished(); } void EnsureInitialized() { initializing_.waitForFinished(); }
private: private:
void InitialiseGStreamer(); void InitializeGStreamer();
void SetEnvironment(); void SetEnvironment();
QFuture<void> initialising_; QFuture<void> initializing_;
}; };

View File

@@ -31,7 +31,7 @@ class MacOsDeviceFinder : public DeviceFinder {
public: public:
explicit MacOsDeviceFinder(); explicit MacOsDeviceFinder();
virtual bool Initialise() { return true; } virtual bool Initialize() { return true; }
virtual QList<Device> ListDevices(); virtual QList<Device> ListDevices();
}; };

View File

@@ -36,28 +36,7 @@ MMDeviceFinder::MMDeviceFinder() : DeviceFinder("mmdevice", { "wasapisink" }) {}
QList<DeviceFinder::Device> MMDeviceFinder::ListDevices() { QList<DeviceFinder::Device> MMDeviceFinder::ListDevices() {
HRESULT hr = S_OK; HRESULT hr_coinit = CoInitializeEx(NULL, COINIT_MULTITHREADED);
IMMDeviceEnumerator *enumerator = nullptr;
hr = CoCreateInstance(CLSID_MMDeviceEnumerator, nullptr, CLSCTX_ALL, IID_IMMDeviceEnumerator, (void**)&enumerator);
if (FAILED(hr)) {
return QList<Device>();
}
IMMDeviceCollection *collection = nullptr;
hr = enumerator->EnumAudioEndpoints(eRender, DEVICE_STATE_ACTIVE, &collection);
if (FAILED(hr)) {
enumerator->Release();
return QList<Device>();
}
UINT count;
hr = collection->GetCount(&count);
if (FAILED(hr)) {
collection->Release();
enumerator->Release();
return QList<Device>();
}
QList<Device> devices; QList<Device> devices;
Device default_device; Device default_device;
@@ -65,51 +44,71 @@ QList<DeviceFinder::Device> MMDeviceFinder::ListDevices() {
default_device.iconname = GuessIconName(default_device.description); default_device.iconname = GuessIconName(default_device.description);
devices.append(default_device); devices.append(default_device);
for (ULONG i = 0 ; i < count ; i++) { IMMDeviceEnumerator *enumerator = nullptr;
HRESULT hr = CoCreateInstance(CLSID_MMDeviceEnumerator, nullptr, CLSCTX_ALL, IID_IMMDeviceEnumerator, (void**)&enumerator);
IMMDevice *endpoint = nullptr; if (hr == S_OK) {
hr = collection->Item(i, &endpoint); IMMDeviceCollection *collection = nullptr;
if (FAILED(hr)) { return devices; } hr = enumerator->EnumAudioEndpoints(eRender, DEVICE_STATE_ACTIVE, &collection);
if (hr == S_OK) {
LPWSTR pwszid = nullptr; UINT count;
hr = endpoint->GetId(&pwszid); hr = collection->GetCount(&count);
if (FAILED(hr)) { if (hr == S_OK) {
endpoint->Release(); for (ULONG i = 0 ; i < count ; i++) {
continue; IMMDevice *endpoint = nullptr;
hr = collection->Item(i, &endpoint);
if (hr == S_OK) {
LPWSTR pwszid = nullptr;
hr = endpoint->GetId(&pwszid);
if (hr == S_OK) {
IPropertyStore *props = nullptr;
hr = endpoint->OpenPropertyStore(STGM_READ, &props);
if (hr == S_OK) {
PROPVARIANT var_name;
PropVariantInit(&var_name);
hr = props->GetValue(PKEY_Device_FriendlyName, &var_name);
if (hr == S_OK) {
Device device;
device.description = QString::fromWCharArray(var_name.pwszVal);
device.iconname = GuessIconName(device.description);
device.value = QString::fromStdWString(pwszid);
devices.append(device);
PropVariantClear(&var_name);
}
else {
qLog(Error) << "IPropertyStore::GetValue failed." << Qt::hex << DWORD(hr);
}
props->Release();
}
else {
qLog(Error) << "IPropertyStore::OpenPropertyStore failed." << Qt::hex << DWORD(hr);
}
CoTaskMemFree(pwszid);
}
else {
qLog(Error) << "IMMDevice::GetId failed." << Qt::hex << DWORD(hr);
}
endpoint->Release();
}
else {
qLog(Error) << "IMMDeviceCollection::Item failed." << Qt::hex << DWORD(hr);
}
}
}
else {
qLog(Error) << "IMMDeviceCollection::GetCount failed." << Qt::hex << DWORD(hr);
}
collection->Release();
} }
else {
IPropertyStore *props = nullptr; qLog(Error) << "EnumAudioEndpoints failed." << Qt::hex << DWORD(hr);
hr = endpoint->OpenPropertyStore(STGM_READ, &props);
if (FAILED(hr)) {
CoTaskMemFree(pwszid);
endpoint->Release();
continue;
} }
enumerator->Release();
PROPVARIANT var_name;
PropVariantInit(&var_name);
hr = props->GetValue(PKEY_Device_FriendlyName, &var_name);
if (FAILED(hr)) {
props->Release();
CoTaskMemFree(pwszid);
endpoint->Release();
continue;
}
Device device;
device.description = QString::fromWCharArray(var_name.pwszVal);
device.iconname = GuessIconName(device.description);
device.value = QString::fromStdWString(pwszid);
devices.append(device);
PropVariantClear(&var_name);
props->Release();
CoTaskMemFree(pwszid);
endpoint->Release();
} }
collection->Release(); else {
enumerator->Release(); qLog(Error) << "CoCreateInstance failed." << Qt::hex << DWORD(hr);
}
if (hr_coinit == S_OK || hr_coinit == S_FALSE) CoUninitialize();
return devices; return devices;

View File

@@ -28,7 +28,7 @@ class MMDeviceFinder : public DeviceFinder {
public: public:
explicit MMDeviceFinder(); explicit MMDeviceFinder();
virtual bool Initialise() { return true; } virtual bool Initialize() { return true; }
virtual QList<Device> ListDevices(); virtual QList<Device> ListDevices();
}; };

View File

@@ -37,7 +37,7 @@
PulseDeviceFinder::PulseDeviceFinder() : DeviceFinder("pulseaudio", {"pulseaudio", "pulse", "pulsesink"} ), mainloop_(nullptr), context_(nullptr) { PulseDeviceFinder::PulseDeviceFinder() : DeviceFinder("pulseaudio", {"pulseaudio", "pulse", "pulsesink"} ), mainloop_(nullptr), context_(nullptr) {
} }
bool PulseDeviceFinder::Initialise() { bool PulseDeviceFinder::Initialize() {
mainloop_ = pa_mainloop_new(); mainloop_ = pa_mainloop_new();
if (!mainloop_) { if (!mainloop_) {

View File

@@ -36,7 +36,7 @@ class PulseDeviceFinder : public DeviceFinder {
explicit PulseDeviceFinder(); explicit PulseDeviceFinder();
~PulseDeviceFinder() override; ~PulseDeviceFinder() override;
bool Initialise() override; bool Initialize() override;
QList<Device> ListDevices() override; QList<Device> ListDevices() override;
private: private:

View File

@@ -108,7 +108,7 @@ bool VLCEngine::Load(const QUrl &stream_url, const QUrl &original_url, const Eng
Q_UNUSED(beginning_nanosec); Q_UNUSED(beginning_nanosec);
Q_UNUSED(end_nanosec); Q_UNUSED(end_nanosec);
if (!Initialised()) return false; if (!Initialized()) return false;
// Create the media object // Create the media object
VlcScopedRef<libvlc_media_t> media(libvlc_media_new_location(instance_, stream_url.toEncoded().constData())); VlcScopedRef<libvlc_media_t> media(libvlc_media_new_location(instance_, stream_url.toEncoded().constData()));
@@ -121,7 +121,7 @@ bool VLCEngine::Load(const QUrl &stream_url, const QUrl &original_url, const Eng
bool VLCEngine::Play(const quint64 offset_nanosec) { bool VLCEngine::Play(const quint64 offset_nanosec) {
if (!Initialised()) return false; if (!Initialized()) return false;
// Set audio output // Set audio output
if (!output_.isEmpty() && output_ != "auto") { if (!output_.isEmpty() && output_ != "auto") {
@@ -147,28 +147,28 @@ void VLCEngine::Stop(const bool stop_after) {
Q_UNUSED(stop_after); Q_UNUSED(stop_after);
if (!Initialised()) return; if (!Initialized()) return;
libvlc_media_player_stop(player_); libvlc_media_player_stop(player_);
} }
void VLCEngine::Pause() { void VLCEngine::Pause() {
if (!Initialised()) return; if (!Initialized()) return;
libvlc_media_player_pause(player_); libvlc_media_player_pause(player_);
} }
void VLCEngine::Unpause() { void VLCEngine::Unpause() {
if (!Initialised()) return; if (!Initialized()) return;
libvlc_media_player_play(player_); libvlc_media_player_play(player_);
} }
void VLCEngine::Seek(const quint64 offset_nanosec) { void VLCEngine::Seek(const quint64 offset_nanosec) {
if (!Initialised()) return; if (!Initialized()) return;
int offset = (offset_nanosec / kNsecPerMsec); int offset = (offset_nanosec / kNsecPerMsec);
@@ -182,7 +182,7 @@ void VLCEngine::Seek(const quint64 offset_nanosec) {
} }
void VLCEngine::SetVolumeSW(const uint percent) { void VLCEngine::SetVolumeSW(const uint percent) {
if (!Initialised()) return; if (!Initialized()) return;
if (!volume_control_ && percent != 100) return; if (!volume_control_ && percent != 100) return;
libvlc_audio_set_volume(player_, percent); libvlc_audio_set_volume(player_, percent);
} }
@@ -248,7 +248,7 @@ bool VLCEngine::ALSADeviceSupport(const QString &output) {
uint VLCEngine::position() const { uint VLCEngine::position() const {
if (!Initialised()) return (0); if (!Initialized()) return (0);
bool is_playing = libvlc_media_player_is_playing(player_); bool is_playing = libvlc_media_player_is_playing(player_);
if (!is_playing) return 0; if (!is_playing) return 0;
@@ -260,7 +260,7 @@ uint VLCEngine::position() const {
uint VLCEngine::length() const { uint VLCEngine::length() const {
if (!Initialised()) return(0); if (!Initialized()) return(0);
bool is_playing = libvlc_media_player_is_playing(player_); bool is_playing = libvlc_media_player_is_playing(player_);
if (!is_playing) return 0; if (!is_playing) return 0;

View File

@@ -72,7 +72,7 @@ class VLCEngine : public Engine::Base {
libvlc_media_player_t *player_; libvlc_media_player_t *player_;
Engine::State state_; Engine::State state_;
bool Initialised() const { return (instance_ && player_); } bool Initialized() const { return (instance_ && player_); }
uint position() const; uint position() const;
uint length() const; uint length() const;
bool CanDecode(const QUrl &url); bool CanDecode(const QUrl &url);

View File

@@ -110,7 +110,7 @@ int main(int argc, char* argv[]) {
#ifdef Q_OS_MACOS #ifdef Q_OS_MACOS
// Do Mac specific startup to get media keys working. // Do Mac specific startup to get media keys working.
// This must go before QApplication initialisation. // This must go before QApplication initialization.
mac::MacMain(); mac::MacMain();
#endif #endif
@@ -134,7 +134,7 @@ int main(int argc, char* argv[]) {
RegisterMetaTypes(); RegisterMetaTypes();
// Initialise logging. Log levels are set after the commandline options are parsed below. // Initialize logging. Log levels are set after the commandline options are parsed below.
logging::Init(); logging::Init();
g_log_set_default_handler(reinterpret_cast<GLogFunc>(&logging::GLog), nullptr); g_log_set_default_handler(reinterpret_cast<GLogFunc>(&logging::GLog), nullptr);

View File

@@ -174,6 +174,7 @@ void Organize::ProcessSomeFiles() {
// Fiddle the filename extension as well to match the new type // Fiddle the filename extension as well to match the new type
song.set_url(QUrl::fromLocalFile(Utilities::FiddleFileExtension(song.basefilename(), task.new_extension_))); song.set_url(QUrl::fromLocalFile(Utilities::FiddleFileExtension(song.basefilename(), task.new_extension_)));
song.set_basefilename(Utilities::FiddleFileExtension(song.basefilename(), task.new_extension_)); song.set_basefilename(Utilities::FiddleFileExtension(song.basefilename(), task.new_extension_));
task.song_info_.new_filename_ = Utilities::FiddleFileExtension(task.song_info_.new_filename_, task.new_extension_);
// Have to set this to the size of the new file or else funny stuff happens // Have to set this to the size of the new file or else funny stuff happens
song.set_filesize(QFileInfo(task.transcoded_filename_).size()); song.set_filesize(QFileInfo(task.transcoded_filename_).size());

View File

@@ -68,6 +68,9 @@
#include "organizedialog.h" #include "organizedialog.h"
#include "organizeerrordialog.h" #include "organizeerrordialog.h"
#include "ui_organizedialog.h" #include "ui_organizedialog.h"
#ifdef HAVE_GSTREAMER
# include "transcoder/transcoder.h"
#endif
const char *OrganizeDialog::kDefaultFormat = "%albumartist/%album{ (Disc %disc)}/{%track - }{%albumartist - }%album{ (Disc %disc)} - %title.%extension"; const char *OrganizeDialog::kDefaultFormat = "%albumartist/%album{ (Disc %disc)}/{%track - }{%albumartist - }%album{ (Disc %disc)} - %title.%extension";
@@ -405,7 +408,7 @@ void OrganizeDialog::InsertTag(const QString &tag) {
ui_->naming->insertPlainText("%" + tag); ui_->naming->insertPlainText("%" + tag);
} }
Organize::NewSongInfoList OrganizeDialog::ComputeNewSongsFilenames(const SongList &songs, const OrganizeFormat &format) { Organize::NewSongInfoList OrganizeDialog::ComputeNewSongsFilenames(const SongList &songs, const OrganizeFormat &format, const QString &extension) {
// Check if we will have multiple files with the same name. // Check if we will have multiple files with the same name.
// If so, they will erase each other if the overwrite flag is set. // If so, they will erase each other if the overwrite flag is set.
@@ -414,7 +417,7 @@ Organize::NewSongInfoList OrganizeDialog::ComputeNewSongsFilenames(const SongLis
Organize::NewSongInfoList new_songs_info; Organize::NewSongInfoList new_songs_info;
for (const Song &song : songs) { for (const Song &song : songs) {
QString new_filename = format.GetFilenameForSong(song); QString new_filename = format.GetFilenameForSong(song, extension);
if (filenames.contains(new_filename)) { if (filenames.contains(new_filename)) {
QString song_number = QString::number(++filenames[new_filename]); QString song_number = QString::number(++filenames[new_filename]);
new_filename = Utilities::PathWithoutFilenameExtension(new_filename) + "(" + song_number + ")." + QFileInfo(new_filename).suffix(); new_filename = Utilities::PathWithoutFilenameExtension(new_filename) + "(" + song_number + ")." + QFileInfo(new_filename).suffix();
@@ -473,7 +476,15 @@ void OrganizeDialog::UpdatePreviews() {
ui_->button_box->button(QDialogButtonBox::Ok)->setEnabled(ok); ui_->button_box->button(QDialogButtonBox::Ok)->setEnabled(ok);
if (!format_valid) return; if (!format_valid) return;
new_songs_info_ = ComputeNewSongsFilenames(songs_, format_); QString extension;
#ifdef HAVE_GSTREAMER
if (storage && storage->GetTranscodeMode() == MusicStorage::Transcode_Always) {
const Song::FileType format = storage->GetTranscodeFormat();
TranscoderPreset preset = Transcoder::PresetForFileType(format);
extension = preset.extension_;
}
#endif
new_songs_info_ = ComputeNewSongsFilenames(songs_, format_, extension);
// Update the previews // Update the previews
ui_->preview->clear(); ui_->preview->clear();

View File

@@ -73,7 +73,7 @@ class OrganizeDialog : public QDialog {
void SetCopy(bool copy); void SetCopy(bool copy);
static Organize::NewSongInfoList ComputeNewSongsFilenames(const SongList &songs, const OrganizeFormat &format); static Organize::NewSongInfoList ComputeNewSongsFilenames(const SongList &songs, const OrganizeFormat &format, const QString &extension = QString());
void SetPlaylist(const QString &playlist); void SetPlaylist(const QString &playlist);

View File

@@ -108,14 +108,22 @@ bool OrganizeFormat::IsValid() const {
} }
QString OrganizeFormat::GetFilenameForSong(const Song &song) const { QString OrganizeFormat::GetFilenameForSong(const Song &song, QString extension) const {
QString filename = ParseBlock(format_, song); QString filename = ParseBlock(format_, song);
if (QFileInfo(filename).completeBaseName().isEmpty()) { if (QFileInfo(filename).completeBaseName().isEmpty()) {
// Avoid having empty filenames, or filenames with extension only: in this case, keep the original filename. // Avoid having empty filenames, or filenames with extension only: in this case, keep the original filename.
// We remove the extension from "filename" if it exists, as song.basefilename() also contains the extension. // We remove the extension from "filename" if it exists, as song.basefilename() also contains the extension.
filename = Utilities::PathWithoutFilenameExtension(filename) + song.basefilename(); QString path = QFileInfo(filename).path();
filename.clear();
if (!path.isEmpty()) {
filename.append(path);
if (path.right(1) != '/' && path.right(1) != '\\') {
filename.append('/');
}
}
filename.append(song.basefilename());
} }
if (remove_problematic_) filename = filename.remove(kProblematicCharacters); if (remove_problematic_) filename = filename.remove(kProblematicCharacters);
@@ -144,7 +152,7 @@ QString OrganizeFormat::GetFilenameForSong(const Song &song) const {
filename = filename.simplified(); filename = filename.simplified();
QFileInfo info(filename); QFileInfo info(filename);
QString extension = info.suffix(); if (extension.isEmpty()) extension = info.suffix();
QString filepath; QString filepath;
if (!info.path().isEmpty() && info.path() != ".") { if (!info.path().isEmpty() && info.path() != ".") {
filepath.append(info.path()); filepath.append(info.path());

View File

@@ -65,7 +65,7 @@ class OrganizeFormat {
void set_replace_spaces(const bool v) { replace_spaces_ = v; } void set_replace_spaces(const bool v) { replace_spaces_ = v; }
bool IsValid() const; bool IsValid() const;
QString GetFilenameForSong(const Song &song) const; QString GetFilenameForSong(const Song &song, QString extension = QString()) const;
class Validator : public QValidator { class Validator : public QValidator {
public: public:

View File

@@ -104,7 +104,7 @@ void BackendSettingsPage::Load() {
device_current_ = s.value("device", QVariant()); device_current_ = s.value("device", QVariant());
ui_->combobox_engine->setCurrentIndex(ui_->combobox_engine->findData(static_cast<int>(enginetype))); ui_->combobox_engine->setCurrentIndex(ui_->combobox_engine->findData(static_cast<int>(enginetype)));
if (EngineInitialised()) Load_Engine(enginetype); if (EngineInitialized()) Load_Engine(enginetype);
ui_->checkbox_volume_control->setChecked(s.value("volume_control", true).toBool()); ui_->checkbox_volume_control->setChecked(s.value("volume_control", true).toBool());
@@ -152,7 +152,7 @@ void BackendSettingsPage::Load() {
ui_->widget_alsa_plugin->hide(); ui_->widget_alsa_plugin->hide();
#endif #endif
if (!EngineInitialised()) return; if (!EngineInitialized()) return;
if (engine()->state() == Engine::Empty) { if (engine()->state() == Engine::Empty) {
if (ui_->combobox_engine->count() > 1) ui_->combobox_engine->setEnabled(true); if (ui_->combobox_engine->count() > 1) ui_->combobox_engine->setEnabled(true);
@@ -207,7 +207,7 @@ void BackendSettingsPage::Load() {
} }
bool BackendSettingsPage::EngineInitialised() { bool BackendSettingsPage::EngineInitialized() {
if (!engine() || engine()->type() == Engine::None) { if (!engine() || engine()->type() == Engine::None) {
errordialog_.ShowMessage("Engine is not initialized! Please restart."); errordialog_.ShowMessage("Engine is not initialized! Please restart.");
@@ -219,7 +219,7 @@ bool BackendSettingsPage::EngineInitialised() {
void BackendSettingsPage::Load_Engine(const Engine::EngineType enginetype) { void BackendSettingsPage::Load_Engine(const Engine::EngineType enginetype) {
if (!EngineInitialised()) return; if (!EngineInitialized()) return;
QString output = output_current_; QString output = output_current_;
QVariant device = device_current_; QVariant device = device_current_;
@@ -253,7 +253,7 @@ void BackendSettingsPage::Load_Engine(const Engine::EngineType enginetype) {
void BackendSettingsPage::Load_Output(QString output, QVariant device) { void BackendSettingsPage::Load_Output(QString output, QVariant device) {
if (!EngineInitialised()) return; if (!EngineInitialized()) return;
if (output.isEmpty()) output = engine()->DefaultOutput(); if (output.isEmpty()) output = engine()->DefaultOutput();
@@ -301,7 +301,7 @@ void BackendSettingsPage::Load_Output(QString output, QVariant device) {
void BackendSettingsPage::Load_Device(const QString &output, const QVariant &device) { void BackendSettingsPage::Load_Device(const QString &output, const QVariant &device) {
if (!EngineInitialised()) return; if (!EngineInitialized()) return;
int devices = 0; int devices = 0;
DeviceFinder::Device df_device; DeviceFinder::Device df_device;
@@ -385,7 +385,7 @@ void BackendSettingsPage::Load_Device(const QString &output, const QVariant &dev
void BackendSettingsPage::Save() { void BackendSettingsPage::Save() {
if (!EngineInitialised()) return; if (!EngineInitialized()) return;
QVariant enginetype_v = ui_->combobox_engine->itemData(ui_->combobox_engine->currentIndex()); QVariant enginetype_v = ui_->combobox_engine->itemData(ui_->combobox_engine->currentIndex());
Engine::EngineType enginetype = enginetype_v.value<Engine::EngineType>(); Engine::EngineType enginetype = enginetype_v.value<Engine::EngineType>();
@@ -447,7 +447,7 @@ void BackendSettingsPage::Cancel() {
void BackendSettingsPage::EngineChanged(const int index) { void BackendSettingsPage::EngineChanged(const int index) {
if (!configloaded_ || !EngineInitialised()) return; if (!configloaded_ || !EngineInitialized()) return;
QVariant v = ui_->combobox_engine->itemData(index); QVariant v = ui_->combobox_engine->itemData(index);
Engine::EngineType enginetype = v.value<Engine::EngineType>(); Engine::EngineType enginetype = v.value<Engine::EngineType>();
@@ -467,7 +467,7 @@ void BackendSettingsPage::EngineChanged(const int index) {
void BackendSettingsPage::OutputChanged(const int index) { void BackendSettingsPage::OutputChanged(const int index) {
if (!configloaded_ || !EngineInitialised()) return; if (!configloaded_ || !EngineInitialized()) return;
EngineBase::OutputDetails output = ui_->combobox_output->itemData(index).value<EngineBase::OutputDetails>(); EngineBase::OutputDetails output = ui_->combobox_output->itemData(index).value<EngineBase::OutputDetails>();
Load_Device(output.name, QVariant()); Load_Device(output.name, QVariant());
@@ -476,7 +476,7 @@ void BackendSettingsPage::OutputChanged(const int index) {
void BackendSettingsPage::DeviceSelectionChanged(int index) { void BackendSettingsPage::DeviceSelectionChanged(int index) {
if (!configloaded_ || !EngineInitialised()) return; if (!configloaded_ || !EngineInitialized()) return;
EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value<EngineBase::OutputDetails>(); EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value<EngineBase::OutputDetails>();
QVariant device = ui_->combobox_device->itemData(index).value<QVariant>(); QVariant device = ui_->combobox_device->itemData(index).value<QVariant>();
@@ -499,7 +499,7 @@ void BackendSettingsPage::DeviceSelectionChanged(int index) {
void BackendSettingsPage::DeviceStringChanged() { void BackendSettingsPage::DeviceStringChanged() {
if (!configloaded_ || !EngineInitialised()) return; if (!configloaded_ || !EngineInitialized()) return;
EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value<EngineBase::OutputDetails>(); EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value<EngineBase::OutputDetails>();
bool found(false); bool found(false);
@@ -588,7 +588,7 @@ void BackendSettingsPage::radiobutton_alsa_hw_clicked(const bool checked) {
#ifdef HAVE_ALSA #ifdef HAVE_ALSA
if (!configloaded_ || !EngineInitialised()) return; if (!configloaded_ || !EngineInitialized()) return;
EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value<EngineBase::OutputDetails>(); EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value<EngineBase::OutputDetails>();
if (!engine()->ALSADeviceSupport(output.name)) return; if (!engine()->ALSADeviceSupport(output.name)) return;
@@ -619,7 +619,7 @@ void BackendSettingsPage::radiobutton_alsa_plughw_clicked(const bool checked) {
#ifdef HAVE_ALSA #ifdef HAVE_ALSA
if (!configloaded_ || !EngineInitialised()) return; if (!configloaded_ || !EngineInitialized()) return;
EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value<EngineBase::OutputDetails>(); EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value<EngineBase::OutputDetails>();
if (!engine()->ALSADeviceSupport(output.name)) return; if (!engine()->ALSADeviceSupport(output.name)) return;
@@ -646,7 +646,7 @@ void BackendSettingsPage::radiobutton_alsa_plughw_clicked(const bool checked) {
void BackendSettingsPage::FadingOptionsChanged() { void BackendSettingsPage::FadingOptionsChanged() {
if (!configloaded_ || !EngineInitialised()) return; if (!configloaded_ || !EngineInitialized()) return;
EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value<EngineBase::OutputDetails>(); EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value<EngineBase::OutputDetails>();
if (engine()->type() == Engine::GStreamer && !(engine()->ALSADeviceSupport(output.name) && !ui_->lineedit_device->text().isEmpty()) && ui_->checkbox_volume_control->isChecked()) { if (engine()->type() == Engine::GStreamer && !(engine()->ALSADeviceSupport(output.name) && !ui_->lineedit_device->text().isEmpty()) && ui_->checkbox_volume_control->isChecked()) {

View File

@@ -76,7 +76,7 @@ private:
Ui_BackendSettingsPage *ui_; Ui_BackendSettingsPage *ui_;
bool EngineInitialised(); bool EngineInitialized();
void EngineChanged(Engine::EngineType enginetype); void EngineChanged(Engine::EngineType enginetype);

View File

@@ -64,7 +64,7 @@ const QStringList CollectionSettingsPage::cacheUnitNames = { "KB", "MB", "GB", "
CollectionSettingsPage::CollectionSettingsPage(SettingsDialog *dialog) CollectionSettingsPage::CollectionSettingsPage(SettingsDialog *dialog)
: SettingsPage(dialog), : SettingsPage(dialog),
ui_(new Ui_CollectionSettingsPage), ui_(new Ui_CollectionSettingsPage),
initialised_model_(false) initialized_model_(false)
{ {
ui_->setupUi(this); ui_->setupUi(this);
@@ -137,13 +137,13 @@ void CollectionSettingsPage::DiskCacheEnable(const int state) {
void CollectionSettingsPage::Load() { void CollectionSettingsPage::Load() {
if (!initialised_model_) { if (!initialized_model_) {
if (ui_->list->selectionModel()) { if (ui_->list->selectionModel()) {
disconnect(ui_->list->selectionModel(), SIGNAL(currentRowChanged(QModelIndex, QModelIndex)), this, SLOT(CurrentRowChanged(QModelIndex))); disconnect(ui_->list->selectionModel(), SIGNAL(currentRowChanged(QModelIndex, QModelIndex)), this, SLOT(CurrentRowChanged(QModelIndex)));
} }
ui_->list->setModel(dialog()->collection_directory_model()); ui_->list->setModel(dialog()->collection_directory_model());
initialised_model_ = true; initialized_model_ = true;
connect(ui_->list->selectionModel(), SIGNAL(currentRowChanged(QModelIndex, QModelIndex)), SLOT(CurrentRowChanged(QModelIndex))); connect(ui_->list->selectionModel(), SIGNAL(currentRowChanged(QModelIndex, QModelIndex)), SLOT(CurrentRowChanged(QModelIndex)));
} }

View File

@@ -76,7 +76,7 @@ class CollectionSettingsPage : public SettingsPage {
private: private:
Ui_CollectionSettingsPage *ui_; Ui_CollectionSettingsPage *ui_;
bool initialised_model_; bool initialized_model_;
static const QStringList cacheUnitNames; static const QStringList cacheUnitNames;
}; };

View File

@@ -51,7 +51,7 @@ const int MoodbarSettingsPage::kMoodbarPreviewHeight = 18;
MoodbarSettingsPage::MoodbarSettingsPage(SettingsDialog* dialog) MoodbarSettingsPage::MoodbarSettingsPage(SettingsDialog* dialog)
: SettingsPage(dialog), : SettingsPage(dialog),
ui_(new Ui_MoodbarSettingsPage), ui_(new Ui_MoodbarSettingsPage),
initialised_(false) initialized_(false)
{ {
ui_->setupUi(this); ui_->setupUi(this);
@@ -96,8 +96,8 @@ void MoodbarSettingsPage::Cancel() {}
void MoodbarSettingsPage::InitMoodbarPreviews() { void MoodbarSettingsPage::InitMoodbarPreviews() {
if (initialised_) return; if (initialized_) return;
initialised_ = true; initialized_ = true;
const QSize preview_size(kMoodbarPreviewWidth, kMoodbarPreviewHeight); const QSize preview_size(kMoodbarPreviewWidth, kMoodbarPreviewHeight);
ui_->moodbar_style->setIconSize(preview_size); ui_->moodbar_style->setIconSize(preview_size);

View File

@@ -50,7 +50,7 @@ class MoodbarSettingsPage : public SettingsPage {
Ui_MoodbarSettingsPage* ui_; Ui_MoodbarSettingsPage* ui_;
bool initialised_; bool initialized_;
}; };
#endif // MOODBARSETTINGSPAGE_H #endif // MOODBARSETTINGSPAGE_H

View File

@@ -34,14 +34,6 @@
SettingsPage::SettingsPage(SettingsDialog *dialog) : QWidget(dialog), dialog_(dialog), ui_widget_(nullptr), changed_(false) {} SettingsPage::SettingsPage(SettingsDialog *dialog) : QWidget(dialog), dialog_(dialog), ui_widget_(nullptr), changed_(false) {}
void SettingsPage::showEvent(QShowEvent *e) {
changed_ = false;
QWidget::showEvent(e);
}
void SettingsPage::Init(QWidget *ui_widget) { void SettingsPage::Init(QWidget *ui_widget) {
if (!ui_widget) return; if (!ui_widget) return;

View File

@@ -65,9 +65,6 @@ class SettingsPage : public QWidget {
void set_changed() { changed_ = true; } void set_changed() { changed_ = true; }
protected:
void showEvent(QShowEvent *e) override;
private: private:
virtual void Save() = 0; virtual void Save() = 0;
virtual void Cancel() {} virtual void Cancel() {}

View File

@@ -57,7 +57,7 @@ const char *GlobalShortcutsSettingsPage::kSettingsGroup = "GlobalShortcuts";
GlobalShortcutsSettingsPage::GlobalShortcutsSettingsPage(SettingsDialog *dialog) GlobalShortcutsSettingsPage::GlobalShortcutsSettingsPage(SettingsDialog *dialog)
: SettingsPage(dialog), : SettingsPage(dialog),
ui_(new Ui_GlobalShortcutsSettingsPage), ui_(new Ui_GlobalShortcutsSettingsPage),
initialised_(false), initialized_(false),
grabber_(new GlobalShortcutGrabber) { grabber_(new GlobalShortcutGrabber) {
ui_->setupUi(this); ui_->setupUi(this);
@@ -105,8 +105,8 @@ void GlobalShortcutsSettingsPage::Load() {
GlobalShortcuts *manager = dialog()->global_shortcuts_manager(); GlobalShortcuts *manager = dialog()->global_shortcuts_manager();
if (!initialised_) { if (!initialized_) {
initialised_ = true; initialized_ = true;
de_ = Utilities::DesktopEnvironment(); de_ = Utilities::DesktopEnvironment();
ui_->widget_warning->hide(); ui_->widget_warning->hide();

View File

@@ -78,7 +78,7 @@ class GlobalShortcutsSettingsPage : public SettingsPage {
private: private:
Ui_GlobalShortcutsSettingsPage *ui_; Ui_GlobalShortcutsSettingsPage *ui_;
bool initialised_; bool initialized_;
std::unique_ptr<GlobalShortcutGrabber> grabber_; std::unique_ptr<GlobalShortcutGrabber> grabber_;
QMap<QString, Shortcut> shortcuts_; QMap<QString, Shortcut> shortcuts_;

View File

@@ -97,7 +97,7 @@ void TidalSettingsPage::Load() {
if (password.isEmpty()) ui_->password->clear(); if (password.isEmpty()) ui_->password->clear();
else ui_->password->setText(QString::fromUtf8(QByteArray::fromBase64(password))); else ui_->password->setText(QString::fromUtf8(QByteArray::fromBase64(password)));
dialog()->ComboBoxLoadFromSettings(s, ui_->quality, "quality", "HIGH"); dialog()->ComboBoxLoadFromSettings(s, ui_->quality, "quality", "LOSSLESS");
ui_->searchdelay->setValue(s.value("searchdelay", 1500).toInt()); ui_->searchdelay->setValue(s.value("searchdelay", 1500).toInt());
ui_->artistssearchlimit->setValue(s.value("artistssearchlimit", 4).toInt()); ui_->artistssearchlimit->setValue(s.value("artistssearchlimit", 4).toInt());
ui_->albumssearchlimit->setValue(s.value("albumssearchlimit", 10).toInt()); ui_->albumssearchlimit->setValue(s.value("albumssearchlimit", 10).toInt());

View File

@@ -25,6 +25,7 @@
#include <QMimeType> #include <QMimeType>
#include <QIODevice> #include <QIODevice>
#include <QFile> #include <QFile>
#include <QFileInfo>
#include <QDir> #include <QDir>
#include <QList> #include <QList>
#include <QByteArray> #include <QByteArray>
@@ -184,7 +185,7 @@ void TidalStreamURLRequest::StreamURLReceived() {
return; return;
} }
Song::FileType filetype(Song::FileType_Unknown); Song::FileType filetype(Song::FileType_Stream);
if (json_obj.contains("codec") || json_obj.contains("codecs")) { if (json_obj.contains("codec") || json_obj.contains("codecs")) {
QString codec; QString codec;
@@ -275,6 +276,11 @@ void TidalStreamURLRequest::StreamURLReceived() {
else if (json_obj.contains("url")) { else if (json_obj.contains("url")) {
QUrl new_url(json_obj["url"].toString()); QUrl new_url(json_obj["url"].toString());
urls << new_url; urls << new_url;
if (filetype == Song::FileType_Stream) {
// Guess filetype by filename extension in URL.
filetype = Song::FiletypeByExtension(QFileInfo(new_url.path()).suffix());
if (filetype == Song::FileType_Unknown) filetype = Song::FileType_Stream;
}
} }
if (urls.isEmpty()) { if (urls.isEmpty()) {

View File

@@ -205,7 +205,7 @@ Transcoder::Transcoder(QObject *parent, const QString &settings_postfix)
if (JobFinishedEvent::sEventType == -1) if (JobFinishedEvent::sEventType == -1)
JobFinishedEvent::sEventType = QEvent::registerEventType(); JobFinishedEvent::sEventType = QEvent::registerEventType();
// Initialise some settings for the lamemp3enc element. // Initialize some settings for the lamemp3enc element.
QSettings s; QSettings s;
s.beginGroup("Transcoder/lamemp3enc" + settings_postfix_); s.beginGroup("Transcoder/lamemp3enc" + settings_postfix_);

View File

@@ -557,7 +557,7 @@ msgstr "Přidat všechny skladby z adresáři a všech jeho podadresářů"
msgid "Add directory..." msgid "Add directory..."
msgstr "Přidat složku..." msgstr "Přidat složku..."
#: core/mainwindow.cpp:2101 #: core/mainwindow.cpp:2114
msgid "Add file" msgid "Add file"
msgstr "Přidat soubor" msgstr "Přidat soubor"
@@ -573,7 +573,7 @@ msgstr "Přidat soubor(y) k překódování"
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Přidat soubory pro překódování" msgstr "Přidat soubory pro překódování"
#: core/mainwindow.cpp:2126 transcoder/transcodedialog.cpp:419 #: core/mainwindow.cpp:2139 transcoder/transcodedialog.cpp:419
msgid "Add folder" msgid "Add folder"
msgstr "Přidat složku" msgstr "Přidat složku"
@@ -676,7 +676,7 @@ msgstr "Přidat přenos..."
msgid "Add to albums" msgid "Add to albums"
msgstr "Přidat do alb" msgstr "Přidat do alb"
#: core/mainwindow.cpp:1909 #: core/mainwindow.cpp:1922
msgid "Add to another playlist" msgid "Add to another playlist"
msgstr "Přidat do jiného seznamu skladeb" msgstr "Přidat do jiného seznamu skladeb"
@@ -735,7 +735,7 @@ msgid "Albu&m cover"
msgstr "Obal alb&a" msgstr "Obal alb&a"
#: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264 #: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264
#: organize/organizedialog.cpp:99 ../build/src/ui_groupbydialog.h:186 #: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:186
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230 #: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
#: ../build/src/ui_albumcoversearcher.h:110 #: ../build/src/ui_albumcoversearcher.h:110
#: ../build/src/ui_albumcoversearcher.h:112 #: ../build/src/ui_albumcoversearcher.h:112
@@ -755,7 +755,7 @@ msgid "Album - Disc"
msgstr "Album - Disk" msgstr "Album - Disk"
#: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271 #: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271
#: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:185 #: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:185
#: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229 #: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229
#: ../build/src/ui_edittagdialog.h:709 #: ../build/src/ui_edittagdialog.h:709
msgid "Album artist" msgid "Album artist"
@@ -796,7 +796,7 @@ msgstr "Alba s obaly"
msgid "Albums without covers" msgid "Albums without covers"
msgstr "Alba bez obalů" msgstr "Alba bez obalů"
#: core/mainwindow.cpp:208 #: core/mainwindow.cpp:209
msgid "All Files (*)" msgid "All Files (*)"
msgstr "Všechny soubory (*)" msgstr "Všechny soubory (*)"
@@ -842,7 +842,7 @@ msgstr "Vždy začít přehrávat"
msgid "An error occurred loading the iTunes database" msgid "An error occurred loading the iTunes database"
msgstr "Při nahrávání databáze iTunes nastala chyba" msgstr "Při nahrávání databáze iTunes nastala chyba"
#: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:953 #: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:956
#, qt-format #, qt-format
msgid "An error occurred writing metadata to '%1'" msgid "An error occurred writing metadata to '%1'"
msgstr "Při zápisu údajů do '%1' se vyskytla chyba" msgstr "Při zápisu údajů do '%1' se vyskytla chyba"
@@ -891,12 +891,12 @@ msgstr ""
msgid "Are you sure you want to delete the \"%1\" preset?" msgid "Are you sure you want to delete the \"%1\" preset?"
msgstr "Opravdu chcete smazat nastavení \"%1\"?" msgstr "Opravdu chcete smazat nastavení \"%1\"?"
#: dialogs/edittagdialog.cpp:869 #: dialogs/edittagdialog.cpp:872
msgid "Are you sure you want to reset this song's statistics?" msgid "Are you sure you want to reset this song's statistics?"
msgstr "Opravdu chcete nastavit statistiku této písně znovu?" msgstr "Opravdu chcete nastavit statistiku této písně znovu?"
#: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263 #: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263
#: organize/organizedialog.cpp:100 ../build/src/ui_groupbydialog.h:184 #: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:184
#: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228 #: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228
#: ../build/src/ui_albumcoversearcher.h:106 #: ../build/src/ui_albumcoversearcher.h:106
#: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713 #: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713
@@ -904,7 +904,7 @@ msgstr "Opravdu chcete nastavit statistiku této písně znovu?"
msgid "Artist" msgid "Artist"
msgstr "Umělec" msgstr "Umělec"
#: organize/organizedialog.cpp:101 #: organize/organizedialog.cpp:104
msgid "Artist's initial" msgid "Artist's initial"
msgstr "Začáteční písmena umělce" msgstr "Začáteční písmena umělce"
@@ -1041,7 +1041,7 @@ msgid "Best"
msgstr "Nejlepší" msgstr "Nejlepší"
#: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136 #: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136
#: playlist/playlist.cpp:1281 organize/organizedialog.cpp:115 #: playlist/playlist.cpp:1281 organize/organizedialog.cpp:118
#: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223 #: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223
#: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695 #: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695
#, fuzzy #, fuzzy
@@ -1063,7 +1063,7 @@ msgstr "Datový tok"
msgid "Bitrate" msgid "Bitrate"
msgstr "Datový tok" msgstr "Datový tok"
#: organize/organizedialog.cpp:113 #: organize/organizedialog.cpp:116
msgctxt "Refers to bitrate in file organize dialog." msgctxt "Refers to bitrate in file organize dialog."
msgid "Bitrate" msgid "Bitrate"
msgstr "" msgstr ""
@@ -1108,7 +1108,7 @@ msgstr "Mezipaměť"
msgid "Buffer duration" msgid "Buffer duration"
msgstr "Délka vyrovnávací paměti" msgstr "Délka vyrovnávací paměti"
#: engine/gstengine.cpp:630 #: engine/gstengine.cpp:681
msgid "Buffering" msgid "Buffering"
msgstr "Ukládá se do vyrovnávací paměti" msgstr "Ukládá se do vyrovnávací paměti"
@@ -1130,7 +1130,7 @@ msgstr "CDDA"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: tidal/tidalstreamurlrequest.cpp:107 qobuz/qobuzstreamurlrequest.cpp:103 #: tidal/tidalstreamurlrequest.cpp:108 qobuz/qobuzstreamurlrequest.cpp:103
msgid "Cancelled." msgid "Cancelled."
msgstr "Zrušeno." msgstr "Zrušeno."
@@ -1150,7 +1150,7 @@ msgstr "Změnit nyní přehrávanou píseň"
msgid "Change the language" msgid "Change the language"
msgstr "Změnit jazyk" msgstr "Změnit jazyk"
#: core/mainwindow.cpp:758 #: core/mainwindow.cpp:759
msgid "Check for updates..." msgid "Check for updates..."
msgstr "Zkontrolovat aktualizace" msgstr "Zkontrolovat aktualizace"
@@ -1195,7 +1195,7 @@ msgstr "Smazat"
msgid "Clear Disk Cache" msgid "Clear Disk Cache"
msgstr "Vyčistit mezipaměť na disku" msgstr "Vyčistit mezipaměť na disku"
#: core/mainwindow.cpp:2191 ../build/src/ui_mainwindow.h:634 #: core/mainwindow.cpp:2204 ../build/src/ui_mainwindow.h:634
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Vyprázdnit seznam skladeb" msgstr "Vyprázdnit seznam skladeb"
@@ -1248,7 +1248,7 @@ msgstr "Zavření tohoto okna zastaví hledání obalů alb."
msgid "Club" msgid "Club"
msgstr "Klub" msgstr "Klub"
#: core/mainwindow.cpp:337 ../build/src/ui_collectionsettingspage.h:406 #: core/mainwindow.cpp:338 ../build/src/ui_collectionsettingspage.h:406
#: ../build/src/ui_scrobblersettingspage.h:402 #: ../build/src/ui_scrobblersettingspage.h:402
msgid "Collection" msgid "Collection"
msgstr "Sbírka" msgstr "Sbírka"
@@ -1261,7 +1261,7 @@ msgstr "Filtr Kolekce"
msgid "Collection advanced grouping" msgid "Collection advanced grouping"
msgstr "Pokročilé seskupování sbírky" msgstr "Pokročilé seskupování sbírky"
#: core/mainwindow.cpp:2703 #: core/mainwindow.cpp:2716
msgid "Collection rescan notice" msgid "Collection rescan notice"
msgstr "Zpráva o prohledání sbírky" msgstr "Zpráva o prohledání sbírky"
@@ -1278,7 +1278,7 @@ msgid "Comma separated list of class:level, level is 0-3"
msgstr "Čárkou oddělený seznam class:level, level je 0-3" msgstr "Čárkou oddělený seznam class:level, level je 0-3"
#: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374 #: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374
#: organize/organizedialog.cpp:111 ../build/src/ui_edittagdialog.h:711 #: organize/organizedialog.cpp:114 ../build/src/ui_edittagdialog.h:711
msgid "Comment" msgid "Comment"
msgstr "Poznámka" msgstr "Poznámka"
@@ -1295,7 +1295,7 @@ msgid "Complete tags automatically..."
msgstr "Doplnit značky automaticky..." msgstr "Doplnit značky automaticky..."
#: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272 #: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272
#: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:196 #: organize/organizedialog.cpp:106 ../build/src/ui_groupbydialog.h:196
#: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240 #: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240
#: ../build/src/ui_edittagdialog.h:710 #: ../build/src/ui_edittagdialog.h:710
msgid "Composer" msgid "Composer"
@@ -1322,7 +1322,7 @@ msgstr "Nastavit %1..."
msgid "Configure buttons" msgid "Configure buttons"
msgstr "" msgstr ""
#: core/mainwindow.cpp:638 #: core/mainwindow.cpp:639
msgid "Configure collection..." msgid "Configure collection..."
msgstr "Nastavit sbírku..." msgstr "Nastavit sbírku..."
@@ -1338,7 +1338,7 @@ msgstr "Konzole"
msgid "Constant bitrate" msgid "Constant bitrate"
msgstr "Stálý datový tok" msgstr "Stálý datový tok"
#: core/mainwindow.cpp:336 ../build/src/ui_contextsettingspage.h:361 #: core/mainwindow.cpp:337 ../build/src/ui_contextsettingspage.h:361
msgid "Context" msgid "Context"
msgstr "Kontext" msgstr "Kontext"
@@ -1358,7 +1358,7 @@ msgstr "Převést všechnu hudbu"
msgid "Convert any music that the device can't play" msgid "Convert any music that the device can't play"
msgstr "Převést veškerou hudbu, kterou zařízení nedokáže přehrát" msgstr "Převést veškerou hudbu, kterou zařízení nedokáže přehrát"
#: core/mainwindow.cpp:702 #: core/mainwindow.cpp:703
msgid "Copy URL(s)..." msgid "Copy URL(s)..."
msgstr "" msgstr ""
@@ -1366,7 +1366,7 @@ msgstr ""
msgid "Copy album cover artwork" msgid "Copy album cover artwork"
msgstr "Kopírovat obrázek alba" msgstr "Kopírovat obrázek alba"
#: core/mainwindow.cpp:706 widgets/fileviewlist.cpp:48 #: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:48
#: device/deviceview.cpp:239 #: device/deviceview.cpp:239
msgid "Copy to collection..." msgid "Copy to collection..."
msgstr "Zkopírovat do sbírky..." msgstr "Zkopírovat do sbírky..."
@@ -1375,7 +1375,7 @@ msgstr "Zkopírovat do sbírky..."
msgid "Copy to device" msgid "Copy to device"
msgstr "" msgstr ""
#: core/mainwindow.cpp:709 context/contextalbumsview.cpp:262 #: core/mainwindow.cpp:710 context/contextalbumsview.cpp:262
#: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104 #: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104
#: widgets/fileviewlist.cpp:50 #: widgets/fileviewlist.cpp:50
msgid "Copy to device..." msgid "Copy to device..."
@@ -1617,7 +1617,7 @@ msgstr "Smazat soubory"
msgid "Delete from device..." msgid "Delete from device..."
msgstr "Smazat ze zařízení..." msgstr "Smazat ze zařízení..."
#: core/mainwindow.cpp:711 collection/collectionview.cpp:354 #: core/mainwindow.cpp:712 collection/collectionview.cpp:354
#: widgets/fileviewlist.cpp:51 #: widgets/fileviewlist.cpp:51
msgid "Delete from disk..." msgid "Delete from disk..."
msgstr "Smazat z disku..." msgstr "Smazat z disku..."
@@ -1639,11 +1639,11 @@ msgstr "Smazat původní soubory"
msgid "Deleting files" msgid "Deleting files"
msgstr "Probíhá mazání souborů" msgstr "Probíhá mazání souborů"
#: core/mainwindow.cpp:1826 #: core/mainwindow.cpp:1839
msgid "Dequeue selected tracks" msgid "Dequeue selected tracks"
msgstr "Odstranit vybrané skladby z řady" msgstr "Odstranit vybrané skladby z řady"
#: core/mainwindow.cpp:1825 #: core/mainwindow.cpp:1838
msgid "Dequeue track" msgid "Dequeue track"
msgstr "Odstranit skladbu z řady" msgstr "Odstranit skladbu z řady"
@@ -1669,7 +1669,7 @@ msgstr "Vlastnosti zařízení"
msgid "Device properties..." msgid "Device properties..."
msgstr "Vlastnosti zařízení..." msgstr "Vlastnosti zařízení..."
#: core/mainwindow.cpp:343 #: core/mainwindow.cpp:344
msgid "Devices" msgid "Devices"
msgstr "Zařízení" msgstr "Zařízení"
@@ -1691,7 +1691,7 @@ msgid "Disabled"
msgstr "Zakázáno" msgstr "Zakázáno"
#: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266 #: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266
#: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:188 #: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:188
#: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232 #: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232
#: ../build/src/ui_edittagdialog.h:708 #: ../build/src/ui_edittagdialog.h:708
msgid "Disc" msgid "Disc"
@@ -1726,6 +1726,10 @@ msgstr "Neořezávat obrázek"
msgid "Do not overwrite" msgid "Do not overwrite"
msgstr "Nepřepisovat" msgstr "Nepřepisovat"
#: ../build/src/ui_snapdialog.h:120
msgid "Do not show this message again."
msgstr ""
#: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110 #: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110
msgid "Don't repeat" msgid "Don't repeat"
msgstr "Neopakovat" msgstr "Neopakovat"
@@ -1784,7 +1788,7 @@ msgstr ""
msgid "Edit smart playlist..." msgid "Edit smart playlist..."
msgstr "" msgstr ""
#: core/mainwindow.cpp:1867 #: core/mainwindow.cpp:1880
#, qt-format #, qt-format
msgid "Edit tag \"%1\"..." msgid "Edit tag \"%1\"..."
msgstr "Upravit značku \"%1\"..." msgstr "Upravit značku \"%1\"..."
@@ -1935,7 +1939,7 @@ msgstr "Rovnocenné s --log-levels *:1"
msgid "Equivalent to --log-levels *:3" msgid "Equivalent to --log-levels *:3"
msgstr "Rovnocenné s --log-levels *:3" msgstr "Rovnocenné s --log-levels *:3"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "Error" msgid "Error"
msgstr "Chyba" msgstr "Chyba"
@@ -2101,7 +2105,7 @@ msgstr "Chyba při stahování obalu"
msgid "File %1 is not recognized as a valid audio file." msgid "File %1 is not recognized as a valid audio file."
msgstr "Soubor %1 nebyl rozpoznán jako platný zvukový soubor." msgstr "Soubor %1 nebyl rozpoznán jako platný zvukový soubor."
#: organize/organizedialog.cpp:116 #: organize/organizedialog.cpp:119
msgid "File extension" msgid "File extension"
msgstr "Přípona souboru" msgstr "Přípona souboru"
@@ -2139,7 +2143,7 @@ msgstr "Název souboru"
msgid "Filename:" msgid "Filename:"
msgstr "Název souboru:" msgstr "Název souboru:"
#: core/mainwindow.cpp:341 #: core/mainwindow.cpp:342
msgid "Files" msgid "Files"
msgstr "Soubory" msgstr "Soubory"
@@ -2193,6 +2197,15 @@ msgstr "Font nadpisu"
msgid "Font size" msgid "Font size"
msgstr "Velikost fontu" msgstr "Velikost fontu"
#: dialogs/snapdialog.cpp:56
#, qt-format
msgid "For Ubuntu there is an official PPA repository available at %1."
msgstr ""
#: dialogs/snapdialog.cpp:64
msgid "For a better experience please consider the other options above."
msgstr ""
#: ../build/src/ui_transcoderoptionsmp3.h:203 #: ../build/src/ui_transcoderoptionsmp3.h:203
msgid "Force mono encoding" msgid "Force mono encoding"
msgstr "Vynutit jednokanálové kódování" msgstr "Vynutit jednokanálové kódování"
@@ -2277,7 +2290,7 @@ msgid "Genius Authentication"
msgstr "Ověření Genius" msgstr "Ověření Genius"
#: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270 #: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270
#: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:190 #: organize/organizedialog.cpp:113 ../build/src/ui_groupbydialog.h:190
#: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234 #: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234
#: ../build/src/ui_edittagdialog.h:704 #: ../build/src/ui_edittagdialog.h:704
msgid "Genre" msgid "Genre"
@@ -2378,7 +2391,7 @@ msgid "Group by Genre/Artist/Album"
msgstr "Seskupovat podle žánru/umělce/alba" msgstr "Seskupovat podle žánru/umělce/alba"
#: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274 #: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274
#: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:198 #: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:198
#: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242 #: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242
#: ../build/src/ui_edittagdialog.h:706 #: ../build/src/ui_edittagdialog.h:706
msgid "Grouping" msgid "Grouping"
@@ -2564,6 +2577,10 @@ msgstr ""
"Je to větev přehrávače Clementine z roku 2018 zaměřený na sběratele hudby a " "Je to větev přehrávače Clementine z roku 2018 zaměřený na sběratele hudby a "
"audiofily." "audiofily."
#: dialogs/snapdialog.cpp:44
msgid "It is detected that Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_behavioursettingspage.h:302 #: ../build/src/ui_behavioursettingspage.h:302
msgid "Jump to previous song right away" msgid "Jump to previous song right away"
msgstr "Skočit ihned na předchozí píseň" msgstr "Skočit ihned na předchozí píseň"
@@ -2628,7 +2645,7 @@ msgid "Left"
msgstr "Vlevo" msgstr "Vlevo"
#: context/contextview.cpp:214 playlist/playlist.cpp:1267 #: context/contextview.cpp:214 playlist/playlist.cpp:1267
#: organize/organizedialog.cpp:112 ../build/src/ui_edittagdialog.h:689 #: organize/organizedialog.cpp:115 ../build/src/ui_edittagdialog.h:689
msgid "Length" msgid "Length"
msgstr "Délka" msgstr "Délka"
@@ -2846,7 +2863,7 @@ msgstr "Chybějící uživatelské jméno nebo heslo pro Subsonic."
#: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796 #: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796
#: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918 #: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918
#: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:89 #: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:90
msgid "Missing Tidal API token, username or password." msgid "Missing Tidal API token, username or password."
msgstr "Chybějící API token, uživatelské jméno nebo heslo pro Tidal." msgstr "Chybějící API token, uživatelské jméno nebo heslo pro Tidal."
@@ -2932,7 +2949,7 @@ msgstr "Přípojné body"
msgid "Move down" msgid "Move down"
msgstr "Posunout dolů" msgstr "Posunout dolů"
#: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:49 #: core/mainwindow.cpp:708 widgets/fileviewlist.cpp:49
msgid "Move to collection..." msgid "Move to collection..."
msgstr "Přesunout do sbírky..." msgstr "Přesunout do sbírky..."
@@ -2941,7 +2958,7 @@ msgstr "Přesunout do sbírky..."
msgid "Move up" msgid "Move up"
msgstr "Posunout nahoru" msgstr "Posunout nahoru"
#: core/mainwindow.cpp:2101 transcoder/transcodedialog.cpp:328 #: core/mainwindow.cpp:2114 transcoder/transcodedialog.cpp:328
msgid "Music" msgid "Music"
msgstr "Hudba" msgstr "Hudba"
@@ -2986,7 +3003,7 @@ msgstr "Nikdy nezačít přehrávání"
msgid "New folder" msgid "New folder"
msgstr "Nová složka" msgstr "Nová složka"
#: core/mainwindow.cpp:1925 #: core/mainwindow.cpp:1938
msgid "New playlist" msgid "New playlist"
msgstr "Nový seznam skladeb" msgstr "Nový seznam skladeb"
@@ -3030,7 +3047,7 @@ msgstr "Žádné obaly k uložení"
msgid "No long blocks" msgid "No long blocks"
msgstr "Žádné dlouhé bloky" msgstr "Žádné dlouhé bloky"
#: tidal/tidalrequest.cpp:1256 qobuz/qobuzrequest.cpp:1318 #: tidal/tidalrequest.cpp:1253 qobuz/qobuzrequest.cpp:1315
msgid "No match." msgid "No match."
msgstr "Žádná shoda." msgstr "Žádná shoda."
@@ -3058,7 +3075,7 @@ msgstr "Žádná skladba se nepřehrává"
msgid "None" msgid "None"
msgstr "Žádná" msgstr "Žádná"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "None of the selected songs were suitable for copying to a device" msgid "None of the selected songs were suitable for copying to a device"
msgstr "Žádná z vybraných písní nebyla vhodná ke zkopírování do zařízení" msgstr "Žádná z vybraných písní nebyla vhodná ke zkopírování do zařízení"
@@ -3084,7 +3101,7 @@ msgstr ""
#: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791 #: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791
#: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913 #: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913
#: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:85 #: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:86
msgid "Not authenticated with Tidal." msgid "Not authenticated with Tidal."
msgstr "Nejste přihlášeni k Tidal." msgstr "Nejste přihlášeni k Tidal."
@@ -3124,6 +3141,13 @@ msgstr "Náhled OSD"
msgid "Off" msgid "Off"
msgstr "Vypnuto" msgstr "Vypnuto"
#: dialogs/snapdialog.cpp:60
#, qt-format
msgid ""
"Official releases are available for Debian and Ubuntu which also work on "
"most of their derivatives. See %1 for more information."
msgstr ""
#: osd/osdbase.cpp:245 #: osd/osdbase.cpp:245
msgid "On" msgid "On"
msgstr "Zapnuto" msgstr "Zapnuto"
@@ -3189,7 +3213,7 @@ msgstr "Opus"
msgid "Organize Files" msgid "Organize Files"
msgstr "" msgstr ""
#: core/mainwindow.cpp:705 context/contextalbumsview.cpp:260 #: core/mainwindow.cpp:706 context/contextalbumsview.cpp:260
#: collection/collectionview.cpp:350 #: collection/collectionview.cpp:350
msgid "Organize files..." msgid "Organize files..."
msgstr "" msgstr ""
@@ -3203,7 +3227,7 @@ msgid "Original tags"
msgstr "Původní značky" msgstr "Původní značky"
#: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269 #: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269
#: organize/organizedialog.cpp:109 ../build/src/ui_groupbydialog.h:194 #: organize/organizedialog.cpp:112 ../build/src/ui_groupbydialog.h:194
#: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238 #: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238
msgid "Original year" msgid "Original year"
msgstr "Původní rok" msgstr "Původní rok"
@@ -3262,7 +3286,7 @@ msgstr "Oslava"
msgid "Password" msgid "Password"
msgstr "Heslo" msgstr "Heslo"
#: core/mainwindow.cpp:1247 core/mainwindow.cpp:1721 #: core/mainwindow.cpp:1260 core/mainwindow.cpp:1734
#: core/qtsystemtrayicon.cpp:190 #: core/qtsystemtrayicon.cpp:190
msgid "Pause" msgid "Pause"
msgstr "Pozastavit" msgstr "Pozastavit"
@@ -3276,7 +3300,7 @@ msgid "Paused"
msgstr "Pozastaveno" msgstr "Pozastaveno"
#: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273 #: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273
#: organize/organizedialog.cpp:104 ../build/src/ui_groupbydialog.h:197 #: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:197
#: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241 #: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241
#: ../build/src/ui_edittagdialog.h:715 #: ../build/src/ui_edittagdialog.h:715
msgid "Performer" msgid "Performer"
@@ -3290,8 +3314,8 @@ msgstr "Pixel"
msgid "Plain sidebar" msgid "Plain sidebar"
msgstr "Prostý postranní panel" msgstr "Prostý postranní panel"
#: core/mainwindow.cpp:674 core/mainwindow.cpp:1200 core/mainwindow.cpp:1229 #: core/mainwindow.cpp:675 core/mainwindow.cpp:1213 core/mainwindow.cpp:1242
#: core/mainwindow.cpp:1725 core/qtsystemtrayicon.cpp:177 #: core/mainwindow.cpp:1738 core/qtsystemtrayicon.cpp:177
#: core/qtsystemtrayicon.cpp:202 #: core/qtsystemtrayicon.cpp:202
msgid "Play" msgid "Play"
msgstr "Přehrát" msgstr "Přehrát"
@@ -3354,7 +3378,7 @@ msgstr ""
msgid "Playlist finished" msgid "Playlist finished"
msgstr "Seznam skladeb dokončen" msgstr "Seznam skladeb dokončen"
#: core/mainwindow.cpp:2191 #: core/mainwindow.cpp:2204
#, qt-format #, qt-format
msgid "" msgid ""
"Playlist has %1 songs, too large to undo, are you sure you want to clear the " "Playlist has %1 songs, too large to undo, are you sure you want to clear the "
@@ -3376,7 +3400,7 @@ msgstr "Nastavení seznamu skladeb"
msgid "Playlist type" msgid "Playlist type"
msgstr "" msgstr ""
#: core/mainwindow.cpp:339 #: core/mainwindow.cpp:340
msgid "Playlists" msgid "Playlists"
msgstr "Seznamy skladeb" msgstr "Seznamy skladeb"
@@ -3500,7 +3524,7 @@ msgstr "Průběh"
msgid "Put songs in a random order" msgid "Put songs in a random order"
msgstr "" msgstr ""
#: core/mainwindow.cpp:352 ../build/src/ui_scrobblersettingspage.h:409 #: core/mainwindow.cpp:353 ../build/src/ui_scrobblersettingspage.h:409
#: ../build/src/ui_qobuzsettingspage.h:270 #: ../build/src/ui_qobuzsettingspage.h:270
msgid "Qobuz" msgid "Qobuz"
msgstr "" msgstr ""
@@ -3523,24 +3547,24 @@ msgstr "Kvalita"
msgid "Querying device..." msgid "Querying device..."
msgstr "Dotazování se zařízení..." msgstr "Dotazování se zařízení..."
#: core/mainwindow.cpp:338 #: core/mainwindow.cpp:339
msgid "Queue" msgid "Queue"
msgstr "Fronta" msgstr "Fronta"
#: core/mainwindow.cpp:1828 #: core/mainwindow.cpp:1841
msgid "Queue selected tracks" msgid "Queue selected tracks"
msgstr "Přidat vybrané skladby do řady" msgstr "Přidat vybrané skladby do řady"
#: core/mainwindow.cpp:680 core/mainwindow.cpp:1832 #: core/mainwindow.cpp:681 core/mainwindow.cpp:1845
msgid "Queue selected tracks to play next" msgid "Queue selected tracks to play next"
msgstr "Přidat vybrané skladby do fronty" msgstr "Přidat vybrané skladby do fronty"
#: core/mainwindow.cpp:1834 collection/collectionview.cpp:347 #: core/mainwindow.cpp:1847 collection/collectionview.cpp:347
#: internet/internetcollectionview.cpp:317 #: internet/internetcollectionview.cpp:317
msgid "Queue to play next" msgid "Queue to play next"
msgstr "Do fronty jako další" msgstr "Do fronty jako další"
#: core/mainwindow.cpp:1827 context/contextalbumsview.cpp:257 #: core/mainwindow.cpp:1840 context/contextalbumsview.cpp:257
#: collection/collectionview.cpp:346 #: collection/collectionview.cpp:346
#: smartplaylists/smartplaylistsviewcontainer.cpp:75 #: smartplaylists/smartplaylistsviewcontainer.cpp:75
#: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316 #: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316
@@ -3736,7 +3760,7 @@ msgstr ""
msgid "Rescan song(s)" msgid "Rescan song(s)"
msgstr "Prohledat skladbu" msgstr "Prohledat skladbu"
#: core/mainwindow.cpp:696 #: core/mainwindow.cpp:697
msgid "Rescan song(s)..." msgid "Rescan song(s)..."
msgstr "" msgstr ""
@@ -3744,7 +3768,7 @@ msgstr ""
msgid "Reset" msgid "Reset"
msgstr "Obnovit výchozí" msgstr "Obnovit výchozí"
#: dialogs/edittagdialog.cpp:869 ../build/src/ui_edittagdialog.h:688 #: dialogs/edittagdialog.cpp:872 ../build/src/ui_edittagdialog.h:688
msgid "Reset play counts" msgid "Reset play counts"
msgstr "Vynulovat počty přehrání" msgstr "Vynulovat počty přehrání"
@@ -3853,7 +3877,7 @@ msgid "Safely remove the device after copying"
msgstr "Po dokončení kopírování bezpečně odebrat zařízení" msgstr "Po dokončení kopírování bezpečně odebrat zařízení"
#: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280 #: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280
#: organize/organizedialog.cpp:114 ../build/src/ui_groupbydialog.h:200 #: organize/organizedialog.cpp:117 ../build/src/ui_groupbydialog.h:200
#: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244 #: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244
#: ../build/src/ui_edittagdialog.h:694 #: ../build/src/ui_edittagdialog.h:694
msgid "Sample rate" msgid "Sample rate"
@@ -3913,7 +3937,7 @@ msgstr "Spravce uložených seskupení"
msgid "Saving album covers" msgid "Saving album covers"
msgstr "Ukládání obalů alb" msgstr "Ukládání obalů alb"
#: dialogs/edittagdialog.cpp:784 dialogs/trackselectiondialog.cpp:291 #: dialogs/edittagdialog.cpp:787 dialogs/trackselectiondialog.cpp:291
msgid "Saving tracks" msgid "Saving tracks"
msgstr "Ukládají se skladby" msgstr "Ukládají se skladby"
@@ -4047,7 +4071,7 @@ msgstr "Adresa serveru není správná."
msgid "Server-side scrobbling" msgid "Server-side scrobbling"
msgstr "" msgstr ""
#: core/mainwindow.cpp:1866 #: core/mainwindow.cpp:1879
#, qt-format #, qt-format
msgid "Set %1 to \"%2\"..." msgid "Set %1 to \"%2\"..."
msgstr "Nastavit %1 na \"%2\"..." msgstr "Nastavit %1 na \"%2\"..."
@@ -4137,7 +4161,7 @@ msgstr "Ukazovat obaly alb v kolekci"
msgid "Show albums by artist" msgid "Show albums by artist"
msgstr "Zobrazit alba od umělce" msgstr "Zobrazit alba od umělce"
#: core/mainwindow.cpp:627 #: core/mainwindow.cpp:628
msgid "Show all songs" msgid "Show all songs"
msgstr "Ukázat všechny písně" msgstr "Ukázat všechny písně"
@@ -4161,7 +4185,7 @@ msgstr "Zobrazit engine a zařízení"
msgid "Show fullsize..." msgid "Show fullsize..."
msgstr "Ukázat v plné velikosti..." msgstr "Ukázat v plné velikosti..."
#: core/mainwindow.cpp:703 #: core/mainwindow.cpp:704
msgid "Show in collection..." msgid "Show in collection..."
msgstr "Ukazovat ve sbírce..." msgstr "Ukazovat ve sbírce..."
@@ -4169,7 +4193,7 @@ msgstr "Ukazovat ve sbírce..."
msgid "Show in file browser" msgid "Show in file browser"
msgstr "Zobrazit v průzkumníku souborů" msgstr "Zobrazit v průzkumníku souborů"
#: core/mainwindow.cpp:704 context/contextalbumsview.cpp:268 #: core/mainwindow.cpp:705 context/contextalbumsview.cpp:268
#: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55 #: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55
msgid "Show in file browser..." msgid "Show in file browser..."
msgstr "Ukázat v prohlížeči souborů..." msgstr "Ukázat v prohlížeči souborů..."
@@ -4186,11 +4210,11 @@ msgstr "Zobrazit tlačítko To Miluju!"
msgid "Show moodbar" msgid "Show moodbar"
msgstr "Zobrazit ukazatel nálady" msgstr "Zobrazit ukazatel nálady"
#: core/mainwindow.cpp:628 #: core/mainwindow.cpp:629
msgid "Show only duplicates" msgid "Show only duplicates"
msgstr "Ukázat pouze zdvojené" msgstr "Ukázat pouze zdvojené"
#: core/mainwindow.cpp:629 #: core/mainwindow.cpp:630
msgid "Show only untagged" msgid "Show only untagged"
msgstr "Ukázat pouze neoznačené" msgstr "Ukázat pouze neoznačené"
@@ -4280,11 +4304,11 @@ msgstr "Počet přeskočení"
msgid "Skip forwards in playlist" msgid "Skip forwards in playlist"
msgstr "Další skladba v seznamu skladeb" msgstr "Další skladba v seznamu skladeb"
#: core/mainwindow.cpp:1839 #: core/mainwindow.cpp:1852
msgid "Skip selected tracks" msgid "Skip selected tracks"
msgstr "Přeskočit vybrané skladby" msgstr "Přeskočit vybrané skladby"
#: core/mainwindow.cpp:1838 #: core/mainwindow.cpp:1851
msgid "Skip track" msgid "Skip track"
msgstr "Přeskočit skladbu" msgstr "Přeskočit skladbu"
@@ -4300,7 +4324,7 @@ msgstr "Malý postranní panel"
msgid "Smart playlist" msgid "Smart playlist"
msgstr "" msgstr ""
#: core/mainwindow.cpp:340 #: core/mainwindow.cpp:341
msgid "Smart playlists" msgid "Smart playlists"
msgstr "" msgstr ""
@@ -4385,7 +4409,7 @@ msgstr "Zastavit po každé skladbě"
msgid "Stop after every track" msgid "Stop after every track"
msgstr "Zastavit po každé skladbě" msgstr "Zastavit po každé skladbě"
#: core/mainwindow.cpp:676 ../build/src/ui_mainwindow.h:627 #: core/mainwindow.cpp:677 ../build/src/ui_mainwindow.h:627
msgid "Stop after this track" msgid "Stop after this track"
msgstr "Zastavit po této skladbě" msgstr "Zastavit po této skladbě"
@@ -4447,6 +4471,21 @@ msgstr ""
"Strawberry je svobodný software vydávaný pod licencí GPL. Zdrojový kód je " "Strawberry je svobodný software vydávaný pod licencí GPL. Zdrojový kód je "
"dostupný na %1" "dostupný na %1"
#: dialogs/snapdialog.cpp:40
msgid "Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_snapdialog.h:117
msgid "Strawberry is running as a snap"
msgstr ""
#: dialogs/snapdialog.cpp:48
msgid ""
"Strawberry is slower, and has restrictions when running as a Snap. Accessing "
"the root filesystem (/) will not work. There also might be other "
"restrictions such as accessing certain devices or network shares."
msgstr ""
#: ../build/src/ui_trackselectiondialog.h:205 #: ../build/src/ui_trackselectiondialog.h:205
msgid "Strawberry was unable to find results for this file" msgid "Strawberry was unable to find results for this file"
msgstr "Strawberry se pro tento soubor výsledky najít nepodařilo" msgstr "Strawberry se pro tento soubor výsledky najít nepodařilo"
@@ -4472,7 +4511,7 @@ msgstr "Roztáhnout obrázek aby vyplnil seznam skladeb"
msgid "Submit scrobbles every" msgid "Submit scrobbles every"
msgstr "Odeslat přehrané skladby každých" msgstr "Odeslat přehrané skladby každých"
#: core/mainwindow.cpp:346 ../build/src/ui_scrobblersettingspage.h:407 #: core/mainwindow.cpp:347 ../build/src/ui_scrobblersettingspage.h:407
#: ../build/src/ui_subsonicsettingspage.h:188 #: ../build/src/ui_subsonicsettingspage.h:188
msgid "Subsonic" msgid "Subsonic"
msgstr "Subsonic" msgstr "Subsonic"
@@ -4599,7 +4638,7 @@ msgstr "Požadovaná stránka neexistuje!"
msgid "The site you requested is not an image!" msgid "The site you requested is not an image!"
msgstr "Požadovaná stránka není obrázek!" msgstr "Požadovaná stránka není obrázek!"
#: core/mainwindow.cpp:2698 #: core/mainwindow.cpp:2711
msgid "" msgid ""
"The version of Strawberry you've just updated to requires a full collection " "The version of Strawberry you've just updated to requires a full collection "
"rescan because of the new features listed below:" "rescan because of the new features listed below:"
@@ -4701,7 +4740,7 @@ msgstr "Tuto volbu lze změnit v nastavení Chování"
msgid "This type of device is not supported: %1" msgid "This type of device is not supported: %1"
msgstr "Tento typ zařízení není podporován: %1" msgstr "Tento typ zařízení není podporován: %1"
#: core/mainwindow.cpp:349 ../build/src/ui_scrobblersettingspage.h:408 #: core/mainwindow.cpp:350 ../build/src/ui_scrobblersettingspage.h:408
#: ../build/src/ui_tidalsettingspage.h:312 #: ../build/src/ui_tidalsettingspage.h:312
msgid "Tidal" msgid "Tidal"
msgstr "Tidal" msgstr "Tidal"
@@ -4718,7 +4757,7 @@ msgstr ""
msgid "Time step" msgid "Time step"
msgstr "Časový krok" msgstr "Časový krok"
#: playlist/playlist.cpp:1262 organize/organizedialog.cpp:98 #: playlist/playlist.cpp:1262 organize/organizedialog.cpp:101
#: ../build/src/ui_contextsettingspage.h:414 #: ../build/src/ui_contextsettingspage.h:414
#: ../build/src/ui_edittagdialog.h:705 #: ../build/src/ui_edittagdialog.h:705
#: ../build/src/ui_trackselectiondialog.h:210 #: ../build/src/ui_trackselectiondialog.h:210
@@ -4729,7 +4768,7 @@ msgstr "Název"
msgid "Today" msgid "Today"
msgstr "Dnes" msgstr "Dnes"
#: core/mainwindow.cpp:677 core/mainwindow.cpp:1829 #: core/mainwindow.cpp:678 core/mainwindow.cpp:1842
msgid "Toggle queue status" msgid "Toggle queue status"
msgstr "Přepnout stav řady" msgstr "Přepnout stav řady"
@@ -4737,7 +4776,7 @@ msgstr "Přepnout stav řady"
msgid "Toggle scrobbling" msgid "Toggle scrobbling"
msgstr "Přepnout odesílání informací o přehrávání" msgstr "Přepnout odesílání informací o přehrávání"
#: core/mainwindow.cpp:683 core/mainwindow.cpp:1840 #: core/mainwindow.cpp:684 core/mainwindow.cpp:1853
#, fuzzy #, fuzzy
msgid "Toggle skip status" msgid "Toggle skip status"
msgstr "Přepnout stav přeskakování" msgstr "Přepnout stav přeskakování"
@@ -4766,7 +4805,7 @@ msgstr "Celkem přeneseno bajtů"
msgid "Total network requests made" msgid "Total network requests made"
msgstr "Celkem uskutečněno síťových požadavků" msgstr "Celkem uskutečněno síťových požadavků"
#: playlist/playlist.cpp:1265 organize/organizedialog.cpp:106 #: playlist/playlist.cpp:1265 organize/organizedialog.cpp:109
#: ../build/src/ui_edittagdialog.h:712 #: ../build/src/ui_edittagdialog.h:712
#: ../build/src/ui_trackselectiondialog.h:212 #: ../build/src/ui_trackselectiondialog.h:212
msgid "Track" msgid "Track"
@@ -4824,8 +4863,8 @@ msgstr "Ultra široké pásmo"
msgid "Unknown" msgid "Unknown"
msgstr "Neznámý" msgstr "Neznámý"
#: subsonic/subsonicrequest.cpp:858 tidal/tidalrequest.cpp:1262 #: subsonic/subsonicrequest.cpp:864 tidal/tidalrequest.cpp:1259
#: qobuz/qobuzrequest.cpp:1324 #: qobuz/qobuzrequest.cpp:1321
msgid "Unknown error" msgid "Unknown error"
msgstr "Neznámá chyba" msgstr "Neznámá chyba"
@@ -4833,11 +4872,11 @@ msgstr "Neznámá chyba"
msgid "Unset cover" msgid "Unset cover"
msgstr "Odebrat obal" msgstr "Odebrat obal"
#: core/mainwindow.cpp:1837 #: core/mainwindow.cpp:1850
msgid "Unskip selected tracks" msgid "Unskip selected tracks"
msgstr "Zrušit přeskočení vybraných skladeb" msgstr "Zrušit přeskočení vybraných skladeb"
#: core/mainwindow.cpp:1836 #: core/mainwindow.cpp:1849
msgid "Unskip track" msgid "Unskip track"
msgstr "Zrušit přeskočení skladby" msgstr "Zrušit přeskočení skladby"
@@ -5074,7 +5113,7 @@ msgid ""
"well?" "well?"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2702 #: core/mainwindow.cpp:2715
msgid "Would you like to run a full rescan right now?" msgid "Would you like to run a full rescan right now?"
msgstr "Chcete spustit toto úplné nové prohledání hned teď?" msgstr "Chcete spustit toto úplné nové prohledání hned teď?"
@@ -5083,7 +5122,7 @@ msgid "Write metadata when saving playlists"
msgstr "Zapisovat metadata při ukládání seznamů skladeb" msgstr "Zapisovat metadata při ukládání seznamů skladeb"
#: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268 #: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268
#: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:191 #: organize/organizedialog.cpp:111 ../build/src/ui_groupbydialog.h:191
#: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235 #: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235
#: ../build/src/ui_edittagdialog.h:714 #: ../build/src/ui_edittagdialog.h:714
#: ../build/src/ui_trackselectiondialog.h:211 #: ../build/src/ui_trackselectiondialog.h:211

View File

@@ -587,7 +587,7 @@ msgstr ""
msgid "Add directory..." msgid "Add directory..."
msgstr "Verzeichnis hinzufügen …" msgstr "Verzeichnis hinzufügen …"
#: core/mainwindow.cpp:2101 #: core/mainwindow.cpp:2114
msgid "Add file" msgid "Add file"
msgstr "Datei hinzufügen" msgstr "Datei hinzufügen"
@@ -603,7 +603,7 @@ msgstr "Datei(en) zum Umwandler hinzufügen"
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Dateien zum Umwandeln hinzufügen" msgstr "Dateien zum Umwandeln hinzufügen"
#: core/mainwindow.cpp:2126 transcoder/transcodedialog.cpp:419 #: core/mainwindow.cpp:2139 transcoder/transcodedialog.cpp:419
msgid "Add folder" msgid "Add folder"
msgstr "Ordner hinzufügen" msgstr "Ordner hinzufügen"
@@ -706,7 +706,7 @@ msgstr "Datenstrom hinzufügen..."
msgid "Add to albums" msgid "Add to albums"
msgstr "Zu Alben hinzufügen" msgstr "Zu Alben hinzufügen"
#: core/mainwindow.cpp:1909 #: core/mainwindow.cpp:1922
msgid "Add to another playlist" msgid "Add to another playlist"
msgstr "Zu anderer Wiedergabeliste hinzufügen" msgstr "Zu anderer Wiedergabeliste hinzufügen"
@@ -765,7 +765,7 @@ msgid "Albu&m cover"
msgstr "Albu&m cover" msgstr "Albu&m cover"
#: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264 #: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264
#: organize/organizedialog.cpp:99 ../build/src/ui_groupbydialog.h:186 #: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:186
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230 #: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
#: ../build/src/ui_albumcoversearcher.h:110 #: ../build/src/ui_albumcoversearcher.h:110
#: ../build/src/ui_albumcoversearcher.h:112 #: ../build/src/ui_albumcoversearcher.h:112
@@ -785,7 +785,7 @@ msgid "Album - Disc"
msgstr "Album - Disc" msgstr "Album - Disc"
#: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271 #: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271
#: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:185 #: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:185
#: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229 #: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229
#: ../build/src/ui_edittagdialog.h:709 #: ../build/src/ui_edittagdialog.h:709
msgid "Album artist" msgid "Album artist"
@@ -825,7 +825,7 @@ msgstr "Alben mit Titelbildern"
msgid "Albums without covers" msgid "Albums without covers"
msgstr "Alben ohne Titelbilder" msgstr "Alben ohne Titelbilder"
#: core/mainwindow.cpp:208 #: core/mainwindow.cpp:209
msgid "All Files (*)" msgid "All Files (*)"
msgstr "Alle Dateien (*)" msgstr "Alle Dateien (*)"
@@ -871,7 +871,7 @@ msgstr "Immer mit der Wiedergabe beginnen"
msgid "An error occurred loading the iTunes database" msgid "An error occurred loading the iTunes database"
msgstr "Beim Laden der iTunes-Datenbank ist ein Fehler aufgetreten" msgstr "Beim Laden der iTunes-Datenbank ist ein Fehler aufgetreten"
#: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:953 #: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:956
#, qt-format #, qt-format
msgid "An error occurred writing metadata to '%1'" msgid "An error occurred writing metadata to '%1'"
msgstr "Beim Schreiben der Metadaten für '%1' trat ein Fehler auf" msgstr "Beim Schreiben der Metadaten für '%1' trat ein Fehler auf"
@@ -921,12 +921,12 @@ msgid "Are you sure you want to delete the \"%1\" preset?"
msgstr "" msgstr ""
"Sind Sie sicher, dass Sie die Voreinstellung »%1« wirklich löschen wollen?" "Sind Sie sicher, dass Sie die Voreinstellung »%1« wirklich löschen wollen?"
#: dialogs/edittagdialog.cpp:869 #: dialogs/edittagdialog.cpp:872
msgid "Are you sure you want to reset this song's statistics?" msgid "Are you sure you want to reset this song's statistics?"
msgstr "Wollen Sie die Statistiken dieses Titels wirklich zurücksetzen?" msgstr "Wollen Sie die Statistiken dieses Titels wirklich zurücksetzen?"
#: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263 #: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263
#: organize/organizedialog.cpp:100 ../build/src/ui_groupbydialog.h:184 #: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:184
#: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228 #: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228
#: ../build/src/ui_albumcoversearcher.h:106 #: ../build/src/ui_albumcoversearcher.h:106
#: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713 #: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713
@@ -934,7 +934,7 @@ msgstr "Wollen Sie die Statistiken dieses Titels wirklich zurücksetzen?"
msgid "Artist" msgid "Artist"
msgstr "Interpret" msgstr "Interpret"
#: organize/organizedialog.cpp:101 #: organize/organizedialog.cpp:104
msgid "Artist's initial" msgid "Artist's initial"
msgstr "Initialen des Interpreten" msgstr "Initialen des Interpreten"
@@ -1070,7 +1070,7 @@ msgid "Best"
msgstr "Optimal" msgstr "Optimal"
#: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136 #: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136
#: playlist/playlist.cpp:1281 organize/organizedialog.cpp:115 #: playlist/playlist.cpp:1281 organize/organizedialog.cpp:118
#: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223 #: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223
#: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695 #: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695
msgid "Bit depth" msgid "Bit depth"
@@ -1091,7 +1091,7 @@ msgstr "Bitrate"
msgid "Bitrate" msgid "Bitrate"
msgstr "Bitrate" msgstr "Bitrate"
#: organize/organizedialog.cpp:113 #: organize/organizedialog.cpp:116
msgctxt "Refers to bitrate in file organize dialog." msgctxt "Refers to bitrate in file organize dialog."
msgid "Bitrate" msgid "Bitrate"
msgstr "" msgstr ""
@@ -1136,7 +1136,7 @@ msgstr "Puffer"
msgid "Buffer duration" msgid "Buffer duration"
msgstr "Pufferdauer" msgstr "Pufferdauer"
#: engine/gstengine.cpp:630 #: engine/gstengine.cpp:681
msgid "Buffering" msgid "Buffering"
msgstr "Puffern" msgstr "Puffern"
@@ -1156,7 +1156,7 @@ msgstr "CDDA"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: tidal/tidalstreamurlrequest.cpp:107 qobuz/qobuzstreamurlrequest.cpp:103 #: tidal/tidalstreamurlrequest.cpp:108 qobuz/qobuzstreamurlrequest.cpp:103
msgid "Cancelled." msgid "Cancelled."
msgstr "Abgebrochen." msgstr "Abgebrochen."
@@ -1176,7 +1176,7 @@ msgstr "Den aktuell spielenden Titel ändern"
msgid "Change the language" msgid "Change the language"
msgstr "Sprache ändern" msgstr "Sprache ändern"
#: core/mainwindow.cpp:758 #: core/mainwindow.cpp:759
msgid "Check for updates..." msgid "Check for updates..."
msgstr "Nach Aktualisierungen suchen …" msgstr "Nach Aktualisierungen suchen …"
@@ -1222,7 +1222,7 @@ msgstr "Leeren"
msgid "Clear Disk Cache" msgid "Clear Disk Cache"
msgstr "Lösche Plattenspeicher" msgstr "Lösche Plattenspeicher"
#: core/mainwindow.cpp:2191 ../build/src/ui_mainwindow.h:634 #: core/mainwindow.cpp:2204 ../build/src/ui_mainwindow.h:634
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Wiedergabeliste leeren" msgstr "Wiedergabeliste leeren"
@@ -1276,7 +1276,7 @@ msgstr "Das Schließen dieses Fensters bricht das Suchen nach Titelbildern ab."
msgid "Club" msgid "Club"
msgstr "Club" msgstr "Club"
#: core/mainwindow.cpp:337 ../build/src/ui_collectionsettingspage.h:406 #: core/mainwindow.cpp:338 ../build/src/ui_collectionsettingspage.h:406
#: ../build/src/ui_scrobblersettingspage.h:402 #: ../build/src/ui_scrobblersettingspage.h:402
msgid "Collection" msgid "Collection"
msgstr "Bibliothek" msgstr "Bibliothek"
@@ -1289,7 +1289,7 @@ msgstr "Sammlungsfilter"
msgid "Collection advanced grouping" msgid "Collection advanced grouping"
msgstr "Erweiterte Bibliothekssortierung" msgstr "Erweiterte Bibliothekssortierung"
#: core/mainwindow.cpp:2703 #: core/mainwindow.cpp:2716
msgid "Collection rescan notice" msgid "Collection rescan notice"
msgstr "Hinweis beim erneuten durchsuchen der Bibliothek" msgstr "Hinweis beim erneuten durchsuchen der Bibliothek"
@@ -1306,7 +1306,7 @@ msgid "Comma separated list of class:level, level is 0-3"
msgstr "Komma getrennte Liste mit »class:level« (Level ist 0-3)" msgstr "Komma getrennte Liste mit »class:level« (Level ist 0-3)"
#: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374 #: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374
#: organize/organizedialog.cpp:111 ../build/src/ui_edittagdialog.h:711 #: organize/organizedialog.cpp:114 ../build/src/ui_edittagdialog.h:711
msgid "Comment" msgid "Comment"
msgstr "Kommentar" msgstr "Kommentar"
@@ -1323,7 +1323,7 @@ msgid "Complete tags automatically..."
msgstr "Schlagworte automatisch vervollständigen …" msgstr "Schlagworte automatisch vervollständigen …"
#: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272 #: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272
#: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:196 #: organize/organizedialog.cpp:106 ../build/src/ui_groupbydialog.h:196
#: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240 #: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240
#: ../build/src/ui_edittagdialog.h:710 #: ../build/src/ui_edittagdialog.h:710
msgid "Composer" msgid "Composer"
@@ -1350,7 +1350,7 @@ msgstr "%1 konfigurieren …"
msgid "Configure buttons" msgid "Configure buttons"
msgstr "Knöpfe einrichten\n" msgstr "Knöpfe einrichten\n"
#: core/mainwindow.cpp:638 #: core/mainwindow.cpp:639
msgid "Configure collection..." msgid "Configure collection..."
msgstr "Bibliothek einrichten …" msgstr "Bibliothek einrichten …"
@@ -1366,7 +1366,7 @@ msgstr "Konsole"
msgid "Constant bitrate" msgid "Constant bitrate"
msgstr "Konstante Bitrate" msgstr "Konstante Bitrate"
#: core/mainwindow.cpp:336 ../build/src/ui_contextsettingspage.h:361 #: core/mainwindow.cpp:337 ../build/src/ui_contextsettingspage.h:361
msgid "Context" msgid "Context"
msgstr "Kontext" msgstr "Kontext"
@@ -1388,7 +1388,7 @@ msgstr "Gesamte Musik umwandeln"
msgid "Convert any music that the device can't play" msgid "Convert any music that the device can't play"
msgstr "Musik umwandeln, die das Gerät nicht wiedergeben kann" msgstr "Musik umwandeln, die das Gerät nicht wiedergeben kann"
#: core/mainwindow.cpp:702 #: core/mainwindow.cpp:703
msgid "Copy URL(s)..." msgid "Copy URL(s)..."
msgstr "" msgstr ""
@@ -1396,7 +1396,7 @@ msgstr ""
msgid "Copy album cover artwork" msgid "Copy album cover artwork"
msgstr "Kopiere Album Cover " msgstr "Kopiere Album Cover "
#: core/mainwindow.cpp:706 widgets/fileviewlist.cpp:48 #: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:48
#: device/deviceview.cpp:239 #: device/deviceview.cpp:239
msgid "Copy to collection..." msgid "Copy to collection..."
msgstr "Zur Bibliothek kopieren …" msgstr "Zur Bibliothek kopieren …"
@@ -1405,7 +1405,7 @@ msgstr "Zur Bibliothek kopieren …"
msgid "Copy to device" msgid "Copy to device"
msgstr "" msgstr ""
#: core/mainwindow.cpp:709 context/contextalbumsview.cpp:262 #: core/mainwindow.cpp:710 context/contextalbumsview.cpp:262
#: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104 #: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104
#: widgets/fileviewlist.cpp:50 #: widgets/fileviewlist.cpp:50
msgid "Copy to device..." msgid "Copy to device..."
@@ -1646,7 +1646,7 @@ msgstr "Dateien löschen"
msgid "Delete from device..." msgid "Delete from device..."
msgstr "Vom Gerät löschen …" msgstr "Vom Gerät löschen …"
#: core/mainwindow.cpp:711 collection/collectionview.cpp:354 #: core/mainwindow.cpp:712 collection/collectionview.cpp:354
#: widgets/fileviewlist.cpp:51 #: widgets/fileviewlist.cpp:51
msgid "Delete from disk..." msgid "Delete from disk..."
msgstr "Vom Datenträger löschen …" msgstr "Vom Datenträger löschen …"
@@ -1668,11 +1668,11 @@ msgstr "Ursprüngliche Dateien löschen"
msgid "Deleting files" msgid "Deleting files"
msgstr "Dateien werden gelöscht" msgstr "Dateien werden gelöscht"
#: core/mainwindow.cpp:1826 #: core/mainwindow.cpp:1839
msgid "Dequeue selected tracks" msgid "Dequeue selected tracks"
msgstr "Titel aus der Warteschlange nehmen" msgstr "Titel aus der Warteschlange nehmen"
#: core/mainwindow.cpp:1825 #: core/mainwindow.cpp:1838
msgid "Dequeue track" msgid "Dequeue track"
msgstr "Titel aus der Warteschlange nehmen" msgstr "Titel aus der Warteschlange nehmen"
@@ -1698,7 +1698,7 @@ msgstr "Geräteeinstellungen"
msgid "Device properties..." msgid "Device properties..."
msgstr "Geräteeinstellungen …" msgstr "Geräteeinstellungen …"
#: core/mainwindow.cpp:343 #: core/mainwindow.cpp:344
msgid "Devices" msgid "Devices"
msgstr "Geräte" msgstr "Geräte"
@@ -1720,7 +1720,7 @@ msgid "Disabled"
msgstr "Deaktiviert" msgstr "Deaktiviert"
#: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266 #: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266
#: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:188 #: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:188
#: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232 #: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232
#: ../build/src/ui_edittagdialog.h:708 #: ../build/src/ui_edittagdialog.h:708
msgid "Disc" msgid "Disc"
@@ -1755,6 +1755,10 @@ msgstr "Bild nicht beschneiden"
msgid "Do not overwrite" msgid "Do not overwrite"
msgstr "Nicht überschreiben" msgstr "Nicht überschreiben"
#: ../build/src/ui_snapdialog.h:120
msgid "Do not show this message again."
msgstr ""
#: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110 #: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110
msgid "Don't repeat" msgid "Don't repeat"
msgstr "Wiederholung aus" msgstr "Wiederholung aus"
@@ -1813,7 +1817,7 @@ msgstr ""
msgid "Edit smart playlist..." msgid "Edit smart playlist..."
msgstr "" msgstr ""
#: core/mainwindow.cpp:1867 #: core/mainwindow.cpp:1880
#, qt-format #, qt-format
msgid "Edit tag \"%1\"..." msgid "Edit tag \"%1\"..."
msgstr "Schlagwort »%1« bearbeiten …" msgstr "Schlagwort »%1« bearbeiten …"
@@ -1966,7 +1970,7 @@ msgstr "Äquivalent zu --log-levels *:1"
msgid "Equivalent to --log-levels *:3" msgid "Equivalent to --log-levels *:3"
msgstr "Äquivalent zu --log-levels *:3" msgstr "Äquivalent zu --log-levels *:3"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "Error" msgid "Error"
msgstr "Fehler" msgstr "Fehler"
@@ -2132,7 +2136,7 @@ msgstr "Abrufen des Titelbildes ist fehlgeschlagen"
msgid "File %1 is not recognized as a valid audio file." msgid "File %1 is not recognized as a valid audio file."
msgstr "Datei %1 kann nicht als korrekte Audiodatei erkannt werden." msgstr "Datei %1 kann nicht als korrekte Audiodatei erkannt werden."
#: organize/organizedialog.cpp:116 #: organize/organizedialog.cpp:119
msgid "File extension" msgid "File extension"
msgstr "Dateiendung" msgstr "Dateiendung"
@@ -2170,7 +2174,7 @@ msgstr "Dateiname"
msgid "Filename:" msgid "Filename:"
msgstr "Dateiname:" msgstr "Dateiname:"
#: core/mainwindow.cpp:341 #: core/mainwindow.cpp:342
msgid "Files" msgid "Files"
msgstr "Dateien" msgstr "Dateien"
@@ -2224,6 +2228,15 @@ msgstr "Schriftart für die Überschrift"
msgid "Font size" msgid "Font size"
msgstr "Schriftgröße" msgstr "Schriftgröße"
#: dialogs/snapdialog.cpp:56
#, qt-format
msgid "For Ubuntu there is an official PPA repository available at %1."
msgstr ""
#: dialogs/snapdialog.cpp:64
msgid "For a better experience please consider the other options above."
msgstr ""
#: ../build/src/ui_transcoderoptionsmp3.h:203 #: ../build/src/ui_transcoderoptionsmp3.h:203
msgid "Force mono encoding" msgid "Force mono encoding"
msgstr "Monokodierung erzwingen" msgstr "Monokodierung erzwingen"
@@ -2306,7 +2319,7 @@ msgid "Genius Authentication"
msgstr "Genius Authentifizierung" msgstr "Genius Authentifizierung"
#: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270 #: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270
#: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:190 #: organize/organizedialog.cpp:113 ../build/src/ui_groupbydialog.h:190
#: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234 #: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234
#: ../build/src/ui_edittagdialog.h:704 #: ../build/src/ui_edittagdialog.h:704
msgid "Genre" msgid "Genre"
@@ -2405,7 +2418,7 @@ msgid "Group by Genre/Artist/Album"
msgstr "Genre/Interpret/Album" msgstr "Genre/Interpret/Album"
#: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274 #: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274
#: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:198 #: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:198
#: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242 #: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242
#: ../build/src/ui_edittagdialog.h:706 #: ../build/src/ui_edittagdialog.h:706
msgid "Grouping" msgid "Grouping"
@@ -2590,6 +2603,10 @@ msgstr ""
"Es ist ein Fork von Clementine, die 2018 veröffentlicht wurde und sich an " "Es ist ein Fork von Clementine, die 2018 veröffentlicht wurde und sich an "
"Musiksammler und Audiophile richtet." "Musiksammler und Audiophile richtet."
#: dialogs/snapdialog.cpp:44
msgid "It is detected that Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_behavioursettingspage.h:302 #: ../build/src/ui_behavioursettingspage.h:302
msgid "Jump to previous song right away" msgid "Jump to previous song right away"
msgstr "Gleich zum vorherigen Titel springen" msgstr "Gleich zum vorherigen Titel springen"
@@ -2655,7 +2672,7 @@ msgid "Left"
msgstr "Links" msgstr "Links"
#: context/contextview.cpp:214 playlist/playlist.cpp:1267 #: context/contextview.cpp:214 playlist/playlist.cpp:1267
#: organize/organizedialog.cpp:112 ../build/src/ui_edittagdialog.h:689 #: organize/organizedialog.cpp:115 ../build/src/ui_edittagdialog.h:689
msgid "Length" msgid "Length"
msgstr "Länge" msgstr "Länge"
@@ -2873,7 +2890,7 @@ msgstr "Subsonic Benutzername oder Passwort fehlt"
#: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796 #: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796
#: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918 #: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918
#: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:89 #: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:90
msgid "Missing Tidal API token, username or password." msgid "Missing Tidal API token, username or password."
msgstr "Tidal API Zeichen fehlt, Nutzername oder Passwort." msgstr "Tidal API Zeichen fehlt, Nutzername oder Passwort."
@@ -2959,7 +2976,7 @@ msgstr "Einhängepunkte"
msgid "Move down" msgid "Move down"
msgstr "Nach unten" msgstr "Nach unten"
#: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:49 #: core/mainwindow.cpp:708 widgets/fileviewlist.cpp:49
msgid "Move to collection..." msgid "Move to collection..."
msgstr "Zur Bibliothek verschieben …" msgstr "Zur Bibliothek verschieben …"
@@ -2968,7 +2985,7 @@ msgstr "Zur Bibliothek verschieben …"
msgid "Move up" msgid "Move up"
msgstr "Nach oben" msgstr "Nach oben"
#: core/mainwindow.cpp:2101 transcoder/transcodedialog.cpp:328 #: core/mainwindow.cpp:2114 transcoder/transcodedialog.cpp:328
msgid "Music" msgid "Music"
msgstr "Musik" msgstr "Musik"
@@ -3013,7 +3030,7 @@ msgstr "Nie mit der Wiedergabe beginnen"
msgid "New folder" msgid "New folder"
msgstr "Neuer Ordner" msgstr "Neuer Ordner"
#: core/mainwindow.cpp:1925 #: core/mainwindow.cpp:1938
msgid "New playlist" msgid "New playlist"
msgstr "Neue Wiedergabeliste" msgstr "Neue Wiedergabeliste"
@@ -3057,7 +3074,7 @@ msgstr "Keine Titelbilder zum Exportieren."
msgid "No long blocks" msgid "No long blocks"
msgstr "Keine langen Blöcke" msgstr "Keine langen Blöcke"
#: tidal/tidalrequest.cpp:1256 qobuz/qobuzrequest.cpp:1318 #: tidal/tidalrequest.cpp:1253 qobuz/qobuzrequest.cpp:1315
msgid "No match." msgid "No match."
msgstr "Keine Übereinstimmung." msgstr "Keine Übereinstimmung."
@@ -3085,7 +3102,7 @@ msgstr "Kein Lied wird gespielt"
msgid "None" msgid "None"
msgstr "Nichts" msgstr "Nichts"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "None of the selected songs were suitable for copying to a device" msgid "None of the selected songs were suitable for copying to a device"
msgstr "Keiner der gewählten Titel war zum Kopieren auf ein Gerät geeignet." msgstr "Keiner der gewählten Titel war zum Kopieren auf ein Gerät geeignet."
@@ -3112,7 +3129,7 @@ msgstr ""
#: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791 #: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791
#: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913 #: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913
#: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:85 #: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:86
msgid "Not authenticated with Tidal." msgid "Not authenticated with Tidal."
msgstr "Nicht bei Tidal authentifiziert." msgstr "Nicht bei Tidal authentifiziert."
@@ -3153,6 +3170,13 @@ msgstr "Vorschau der Bildschirmanzeige"
msgid "Off" msgid "Off"
msgstr "Aus" msgstr "Aus"
#: dialogs/snapdialog.cpp:60
#, qt-format
msgid ""
"Official releases are available for Debian and Ubuntu which also work on "
"most of their derivatives. See %1 for more information."
msgstr ""
#: osd/osdbase.cpp:245 #: osd/osdbase.cpp:245
msgid "On" msgid "On"
msgstr "An" msgstr "An"
@@ -3218,7 +3242,7 @@ msgstr "Opus"
msgid "Organize Files" msgid "Organize Files"
msgstr "" msgstr ""
#: core/mainwindow.cpp:705 context/contextalbumsview.cpp:260 #: core/mainwindow.cpp:706 context/contextalbumsview.cpp:260
#: collection/collectionview.cpp:350 #: collection/collectionview.cpp:350
msgid "Organize files..." msgid "Organize files..."
msgstr "" msgstr ""
@@ -3232,7 +3256,7 @@ msgid "Original tags"
msgstr "Ursprüngliche Schlagworte" msgstr "Ursprüngliche Schlagworte"
#: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269 #: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269
#: organize/organizedialog.cpp:109 ../build/src/ui_groupbydialog.h:194 #: organize/organizedialog.cpp:112 ../build/src/ui_groupbydialog.h:194
#: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238 #: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238
msgid "Original year" msgid "Original year"
msgstr "Ursprüngliches Jahr" msgstr "Ursprüngliches Jahr"
@@ -3291,7 +3315,7 @@ msgstr "Party"
msgid "Password" msgid "Password"
msgstr "Passwort:" msgstr "Passwort:"
#: core/mainwindow.cpp:1247 core/mainwindow.cpp:1721 #: core/mainwindow.cpp:1260 core/mainwindow.cpp:1734
#: core/qtsystemtrayicon.cpp:190 #: core/qtsystemtrayicon.cpp:190
msgid "Pause" msgid "Pause"
msgstr "Pause" msgstr "Pause"
@@ -3305,7 +3329,7 @@ msgid "Paused"
msgstr "Pausiert" msgstr "Pausiert"
#: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273 #: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273
#: organize/organizedialog.cpp:104 ../build/src/ui_groupbydialog.h:197 #: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:197
#: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241 #: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241
#: ../build/src/ui_edittagdialog.h:715 #: ../build/src/ui_edittagdialog.h:715
msgid "Performer" msgid "Performer"
@@ -3319,8 +3343,8 @@ msgstr "Pixel"
msgid "Plain sidebar" msgid "Plain sidebar"
msgstr "Einfache Seitenleiste" msgstr "Einfache Seitenleiste"
#: core/mainwindow.cpp:674 core/mainwindow.cpp:1200 core/mainwindow.cpp:1229 #: core/mainwindow.cpp:675 core/mainwindow.cpp:1213 core/mainwindow.cpp:1242
#: core/mainwindow.cpp:1725 core/qtsystemtrayicon.cpp:177 #: core/mainwindow.cpp:1738 core/qtsystemtrayicon.cpp:177
#: core/qtsystemtrayicon.cpp:202 #: core/qtsystemtrayicon.cpp:202
msgid "Play" msgid "Play"
msgstr "Wiedergabe" msgstr "Wiedergabe"
@@ -3384,7 +3408,7 @@ msgstr "Steuerung der Playliste"
msgid "Playlist finished" msgid "Playlist finished"
msgstr "Wiedergabeliste beendet" msgstr "Wiedergabeliste beendet"
#: core/mainwindow.cpp:2191 #: core/mainwindow.cpp:2204
#, qt-format #, qt-format
msgid "" msgid ""
"Playlist has %1 songs, too large to undo, are you sure you want to clear the " "Playlist has %1 songs, too large to undo, are you sure you want to clear the "
@@ -3406,7 +3430,7 @@ msgstr "Wiedergabeliste einrichten"
msgid "Playlist type" msgid "Playlist type"
msgstr "" msgstr ""
#: core/mainwindow.cpp:339 #: core/mainwindow.cpp:340
msgid "Playlists" msgid "Playlists"
msgstr "Wiedergabelisten" msgstr "Wiedergabelisten"
@@ -3530,7 +3554,7 @@ msgstr "Fortschritt"
msgid "Put songs in a random order" msgid "Put songs in a random order"
msgstr "" msgstr ""
#: core/mainwindow.cpp:352 ../build/src/ui_scrobblersettingspage.h:409 #: core/mainwindow.cpp:353 ../build/src/ui_scrobblersettingspage.h:409
#: ../build/src/ui_qobuzsettingspage.h:270 #: ../build/src/ui_qobuzsettingspage.h:270
msgid "Qobuz" msgid "Qobuz"
msgstr "" msgstr ""
@@ -3553,26 +3577,26 @@ msgstr "Qualität"
msgid "Querying device..." msgid "Querying device..."
msgstr "Gerät wird abgefragt …" msgstr "Gerät wird abgefragt …"
#: core/mainwindow.cpp:338 #: core/mainwindow.cpp:339
msgid "Queue" msgid "Queue"
msgstr "Warteschlange" msgstr "Warteschlange"
#: core/mainwindow.cpp:1828 #: core/mainwindow.cpp:1841
msgid "Queue selected tracks" msgid "Queue selected tracks"
msgstr "Titel in die Warteschlange einreihen" msgstr "Titel in die Warteschlange einreihen"
#: core/mainwindow.cpp:680 core/mainwindow.cpp:1832 #: core/mainwindow.cpp:681 core/mainwindow.cpp:1845
msgid "Queue selected tracks to play next" msgid "Queue selected tracks to play next"
msgstr "" msgstr ""
"Ausgewählte Titel in die Warteschlange stellen, um sie als nächstes " "Ausgewählte Titel in die Warteschlange stellen, um sie als nächstes "
"abzuspielen" "abzuspielen"
#: core/mainwindow.cpp:1834 collection/collectionview.cpp:347 #: core/mainwindow.cpp:1847 collection/collectionview.cpp:347
#: internet/internetcollectionview.cpp:317 #: internet/internetcollectionview.cpp:317
msgid "Queue to play next" msgid "Queue to play next"
msgstr "In die Warteschlange, um sie als nächstes abzuspielen" msgstr "In die Warteschlange, um sie als nächstes abzuspielen"
#: core/mainwindow.cpp:1827 context/contextalbumsview.cpp:257 #: core/mainwindow.cpp:1840 context/contextalbumsview.cpp:257
#: collection/collectionview.cpp:346 #: collection/collectionview.cpp:346
#: smartplaylists/smartplaylistsviewcontainer.cpp:75 #: smartplaylists/smartplaylistsviewcontainer.cpp:75
#: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316 #: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316
@@ -3769,7 +3793,7 @@ msgstr ""
msgid "Rescan song(s)" msgid "Rescan song(s)"
msgstr "Lied erneut scannen" msgstr "Lied erneut scannen"
#: core/mainwindow.cpp:696 #: core/mainwindow.cpp:697
msgid "Rescan song(s)..." msgid "Rescan song(s)..."
msgstr "" msgstr ""
@@ -3777,7 +3801,7 @@ msgstr ""
msgid "Reset" msgid "Reset"
msgstr "Zurücksetzen" msgstr "Zurücksetzen"
#: dialogs/edittagdialog.cpp:869 ../build/src/ui_edittagdialog.h:688 #: dialogs/edittagdialog.cpp:872 ../build/src/ui_edittagdialog.h:688
msgid "Reset play counts" msgid "Reset play counts"
msgstr "Wiedergabezähler zurücksetzen" msgstr "Wiedergabezähler zurücksetzen"
@@ -3885,7 +3909,7 @@ msgid "Safely remove the device after copying"
msgstr "Das Gerät nach dem Kopiervorgang sicher entfernen" msgstr "Das Gerät nach dem Kopiervorgang sicher entfernen"
#: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280 #: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280
#: organize/organizedialog.cpp:114 ../build/src/ui_groupbydialog.h:200 #: organize/organizedialog.cpp:117 ../build/src/ui_groupbydialog.h:200
#: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244 #: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244
#: ../build/src/ui_edittagdialog.h:694 #: ../build/src/ui_edittagdialog.h:694
msgid "Sample rate" msgid "Sample rate"
@@ -3945,7 +3969,7 @@ msgstr "Gespeicherte Sortierung verwalten"
msgid "Saving album covers" msgid "Saving album covers"
msgstr "Alben Cover speichern" msgstr "Alben Cover speichern"
#: dialogs/edittagdialog.cpp:784 dialogs/trackselectiondialog.cpp:291 #: dialogs/edittagdialog.cpp:787 dialogs/trackselectiondialog.cpp:291
msgid "Saving tracks" msgid "Saving tracks"
msgstr "Titel werden gespeichert" msgstr "Titel werden gespeichert"
@@ -4078,7 +4102,7 @@ msgstr "Server URL ist ungültig."
msgid "Server-side scrobbling" msgid "Server-side scrobbling"
msgstr "" msgstr ""
#: core/mainwindow.cpp:1866 #: core/mainwindow.cpp:1879
#, qt-format #, qt-format
msgid "Set %1 to \"%2\"..." msgid "Set %1 to \"%2\"..."
msgstr "%1 zu »%2« einstellen …" msgstr "%1 zu »%2« einstellen …"
@@ -4167,7 +4191,7 @@ msgstr "Zeige Titelbilder in der Sammlung"
msgid "Show albums by artist" msgid "Show albums by artist"
msgstr "Zeige Alben pro Künstler" msgstr "Zeige Alben pro Künstler"
#: core/mainwindow.cpp:627 #: core/mainwindow.cpp:628
msgid "Show all songs" msgid "Show all songs"
msgstr "Alle Titel anzeigen" msgstr "Alle Titel anzeigen"
@@ -4191,7 +4215,7 @@ msgstr "Zeige Maschine und Gerät"
msgid "Show fullsize..." msgid "Show fullsize..."
msgstr "In Originalgröße anzeigen …" msgstr "In Originalgröße anzeigen …"
#: core/mainwindow.cpp:703 #: core/mainwindow.cpp:704
msgid "Show in collection..." msgid "Show in collection..."
msgstr "In Bibliothek anzeigen …" msgstr "In Bibliothek anzeigen …"
@@ -4199,7 +4223,7 @@ msgstr "In Bibliothek anzeigen …"
msgid "Show in file browser" msgid "Show in file browser"
msgstr "Zeige im Dateimanager" msgstr "Zeige im Dateimanager"
#: core/mainwindow.cpp:704 context/contextalbumsview.cpp:268 #: core/mainwindow.cpp:705 context/contextalbumsview.cpp:268
#: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55 #: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55
msgid "Show in file browser..." msgid "Show in file browser..."
msgstr "In Dateiverwaltung anzeigen …" msgstr "In Dateiverwaltung anzeigen …"
@@ -4216,11 +4240,11 @@ msgstr "Zeige den Knopf für Lieben"
msgid "Show moodbar" msgid "Show moodbar"
msgstr "Zeige Stimmungsbarometer" msgstr "Zeige Stimmungsbarometer"
#: core/mainwindow.cpp:628 #: core/mainwindow.cpp:629
msgid "Show only duplicates" msgid "Show only duplicates"
msgstr "Nur Doppelte anzeigen" msgstr "Nur Doppelte anzeigen"
#: core/mainwindow.cpp:629 #: core/mainwindow.cpp:630
msgid "Show only untagged" msgid "Show only untagged"
msgstr "Nur ohne Schlagworte anzeigen" msgstr "Nur ohne Schlagworte anzeigen"
@@ -4309,11 +4333,11 @@ msgstr "Übersprungzähler"
msgid "Skip forwards in playlist" msgid "Skip forwards in playlist"
msgstr "Nächsten Titel in der Wiedergabeliste" msgstr "Nächsten Titel in der Wiedergabeliste"
#: core/mainwindow.cpp:1839 #: core/mainwindow.cpp:1852
msgid "Skip selected tracks" msgid "Skip selected tracks"
msgstr "Ausgewählte Titel überspringen" msgstr "Ausgewählte Titel überspringen"
#: core/mainwindow.cpp:1838 #: core/mainwindow.cpp:1851
msgid "Skip track" msgid "Skip track"
msgstr "Titel überspringen" msgstr "Titel überspringen"
@@ -4329,7 +4353,7 @@ msgstr "Schmale Seitenleiste"
msgid "Smart playlist" msgid "Smart playlist"
msgstr "" msgstr ""
#: core/mainwindow.cpp:340 #: core/mainwindow.cpp:341
msgid "Smart playlists" msgid "Smart playlists"
msgstr "" msgstr ""
@@ -4413,7 +4437,7 @@ msgstr "Wiedergabe nach jedem Titel anhalten"
msgid "Stop after every track" msgid "Stop after every track"
msgstr "Wiedergabe nach jedem Titel anhalten" msgstr "Wiedergabe nach jedem Titel anhalten"
#: core/mainwindow.cpp:676 ../build/src/ui_mainwindow.h:627 #: core/mainwindow.cpp:677 ../build/src/ui_mainwindow.h:627
msgid "Stop after this track" msgid "Stop after this track"
msgstr "Wiedergabe nach diesem Titel anhalten" msgstr "Wiedergabe nach diesem Titel anhalten"
@@ -4475,6 +4499,21 @@ msgstr ""
"Strawberry ist eine kostenlose Software, die unter der GPL veröffentlicht " "Strawberry ist eine kostenlose Software, die unter der GPL veröffentlicht "
"wird. Der Quellcode ist auf %1 verfügbar." "wird. Der Quellcode ist auf %1 verfügbar."
#: dialogs/snapdialog.cpp:40
msgid "Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_snapdialog.h:117
msgid "Strawberry is running as a snap"
msgstr ""
#: dialogs/snapdialog.cpp:48
msgid ""
"Strawberry is slower, and has restrictions when running as a Snap. Accessing "
"the root filesystem (/) will not work. There also might be other "
"restrictions such as accessing certain devices or network shares."
msgstr ""
#: ../build/src/ui_trackselectiondialog.h:205 #: ../build/src/ui_trackselectiondialog.h:205
msgid "Strawberry was unable to find results for this file" msgid "Strawberry was unable to find results for this file"
msgstr "Strawberry konnte keine Ergebnisse für diese Datei finden." msgstr "Strawberry konnte keine Ergebnisse für diese Datei finden."
@@ -4499,7 +4538,7 @@ msgstr "Bild strecken, um die Wiedergabeliste zu füllen"
msgid "Submit scrobbles every" msgid "Submit scrobbles every"
msgstr "Übermittle Scrobbles alle" msgstr "Übermittle Scrobbles alle"
#: core/mainwindow.cpp:346 ../build/src/ui_scrobblersettingspage.h:407 #: core/mainwindow.cpp:347 ../build/src/ui_scrobblersettingspage.h:407
#: ../build/src/ui_subsonicsettingspage.h:188 #: ../build/src/ui_subsonicsettingspage.h:188
msgid "Subsonic" msgid "Subsonic"
msgstr "Subsonic" msgstr "Subsonic"
@@ -4626,7 +4665,7 @@ msgstr "Die aufgerufene Seite existiert nicht!"
msgid "The site you requested is not an image!" msgid "The site you requested is not an image!"
msgstr "Die angeforderte Seite ist kein Bild!" msgstr "Die angeforderte Seite ist kein Bild!"
#: core/mainwindow.cpp:2698 #: core/mainwindow.cpp:2711
msgid "" msgid ""
"The version of Strawberry you've just updated to requires a full collection " "The version of Strawberry you've just updated to requires a full collection "
"rescan because of the new features listed below:" "rescan because of the new features listed below:"
@@ -4733,7 +4772,7 @@ msgstr ""
msgid "This type of device is not supported: %1" msgid "This type of device is not supported: %1"
msgstr "Diese Geräteart wird nicht unterstützt: %1" msgstr "Diese Geräteart wird nicht unterstützt: %1"
#: core/mainwindow.cpp:349 ../build/src/ui_scrobblersettingspage.h:408 #: core/mainwindow.cpp:350 ../build/src/ui_scrobblersettingspage.h:408
#: ../build/src/ui_tidalsettingspage.h:312 #: ../build/src/ui_tidalsettingspage.h:312
msgid "Tidal" msgid "Tidal"
msgstr "Tidal" msgstr "Tidal"
@@ -4751,7 +4790,7 @@ msgstr ""
msgid "Time step" msgid "Time step"
msgstr "Zeitschritt" msgstr "Zeitschritt"
#: playlist/playlist.cpp:1262 organize/organizedialog.cpp:98 #: playlist/playlist.cpp:1262 organize/organizedialog.cpp:101
#: ../build/src/ui_contextsettingspage.h:414 #: ../build/src/ui_contextsettingspage.h:414
#: ../build/src/ui_edittagdialog.h:705 #: ../build/src/ui_edittagdialog.h:705
#: ../build/src/ui_trackselectiondialog.h:210 #: ../build/src/ui_trackselectiondialog.h:210
@@ -4762,7 +4801,7 @@ msgstr "Titel"
msgid "Today" msgid "Today"
msgstr "Heute" msgstr "Heute"
#: core/mainwindow.cpp:677 core/mainwindow.cpp:1829 #: core/mainwindow.cpp:678 core/mainwindow.cpp:1842
msgid "Toggle queue status" msgid "Toggle queue status"
msgstr "Einreihungsstatus ändern" msgstr "Einreihungsstatus ändern"
@@ -4770,7 +4809,7 @@ msgstr "Einreihungsstatus ändern"
msgid "Toggle scrobbling" msgid "Toggle scrobbling"
msgstr "Scrobbeln ein- oder ausschalten" msgstr "Scrobbeln ein- oder ausschalten"
#: core/mainwindow.cpp:683 core/mainwindow.cpp:1840 #: core/mainwindow.cpp:684 core/mainwindow.cpp:1853
msgid "Toggle skip status" msgid "Toggle skip status"
msgstr "Überspring-Status umschalten" msgstr "Überspring-Status umschalten"
@@ -4798,7 +4837,7 @@ msgstr "Insgesamt übertragene Bytes"
msgid "Total network requests made" msgid "Total network requests made"
msgstr "Insgesamt gestellte Netzwerkanfragen" msgstr "Insgesamt gestellte Netzwerkanfragen"
#: playlist/playlist.cpp:1265 organize/organizedialog.cpp:106 #: playlist/playlist.cpp:1265 organize/organizedialog.cpp:109
#: ../build/src/ui_edittagdialog.h:712 #: ../build/src/ui_edittagdialog.h:712
#: ../build/src/ui_trackselectiondialog.h:212 #: ../build/src/ui_trackselectiondialog.h:212
msgid "Track" msgid "Track"
@@ -4856,8 +4895,8 @@ msgstr "Ulte Weit Band (UWB)"
msgid "Unknown" msgid "Unknown"
msgstr "Unbekannt" msgstr "Unbekannt"
#: subsonic/subsonicrequest.cpp:858 tidal/tidalrequest.cpp:1262 #: subsonic/subsonicrequest.cpp:864 tidal/tidalrequest.cpp:1259
#: qobuz/qobuzrequest.cpp:1324 #: qobuz/qobuzrequest.cpp:1321
msgid "Unknown error" msgid "Unknown error"
msgstr "Unbekannter Fehler" msgstr "Unbekannter Fehler"
@@ -4865,11 +4904,11 @@ msgstr "Unbekannter Fehler"
msgid "Unset cover" msgid "Unset cover"
msgstr "Titelbild entfernen" msgstr "Titelbild entfernen"
#: core/mainwindow.cpp:1837 #: core/mainwindow.cpp:1850
msgid "Unskip selected tracks" msgid "Unskip selected tracks"
msgstr "Überspringen der ausgewählten Titel aufheben" msgstr "Überspringen der ausgewählten Titel aufheben"
#: core/mainwindow.cpp:1836 #: core/mainwindow.cpp:1849
msgid "Unskip track" msgid "Unskip track"
msgstr "Titel nicht überspringen" msgstr "Titel nicht überspringen"
@@ -5106,7 +5145,7 @@ msgid ""
"well?" "well?"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2702 #: core/mainwindow.cpp:2715
msgid "Would you like to run a full rescan right now?" msgid "Would you like to run a full rescan right now?"
msgstr "Möchten Sie jetzt Ihre Musiksammlung erneut einlesen?" msgstr "Möchten Sie jetzt Ihre Musiksammlung erneut einlesen?"
@@ -5115,7 +5154,7 @@ msgid "Write metadata when saving playlists"
msgstr "Metadaten schreiben, wenn Wiedergabelisten gespeichert werden" msgstr "Metadaten schreiben, wenn Wiedergabelisten gespeichert werden"
#: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268 #: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268
#: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:191 #: organize/organizedialog.cpp:111 ../build/src/ui_groupbydialog.h:191
#: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235 #: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235
#: ../build/src/ui_edittagdialog.h:714 #: ../build/src/ui_edittagdialog.h:714
#: ../build/src/ui_trackselectiondialog.h:211 #: ../build/src/ui_trackselectiondialog.h:211

View File

@@ -579,7 +579,7 @@ msgstr "Añadir todas las pistas de una carpeta y sus subcarpetas"
msgid "Add directory..." msgid "Add directory..."
msgstr "Añadir carpeta…" msgstr "Añadir carpeta…"
#: core/mainwindow.cpp:2101 #: core/mainwindow.cpp:2114
msgid "Add file" msgid "Add file"
msgstr "Añadir archivo" msgstr "Añadir archivo"
@@ -595,7 +595,7 @@ msgstr "Añadir archivo(s) a convertir"
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Añadir archivos a convertir" msgstr "Añadir archivos a convertir"
#: core/mainwindow.cpp:2126 transcoder/transcodedialog.cpp:419 #: core/mainwindow.cpp:2139 transcoder/transcodedialog.cpp:419
msgid "Add folder" msgid "Add folder"
msgstr "Añadir carpeta" msgstr "Añadir carpeta"
@@ -698,7 +698,7 @@ msgstr "Añadir emisora"
msgid "Add to albums" msgid "Add to albums"
msgstr "Añadir a álbumes" msgstr "Añadir a álbumes"
#: core/mainwindow.cpp:1909 #: core/mainwindow.cpp:1922
msgid "Add to another playlist" msgid "Add to another playlist"
msgstr "Añadir a otra lista de reproducción" msgstr "Añadir a otra lista de reproducción"
@@ -757,7 +757,7 @@ msgid "Albu&m cover"
msgstr "&Portada del álbum" msgstr "&Portada del álbum"
#: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264 #: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264
#: organize/organizedialog.cpp:99 ../build/src/ui_groupbydialog.h:186 #: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:186
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230 #: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
#: ../build/src/ui_albumcoversearcher.h:110 #: ../build/src/ui_albumcoversearcher.h:110
#: ../build/src/ui_albumcoversearcher.h:112 #: ../build/src/ui_albumcoversearcher.h:112
@@ -777,7 +777,7 @@ msgid "Album - Disc"
msgstr "Álbum - Disco" msgstr "Álbum - Disco"
#: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271 #: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271
#: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:185 #: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:185
#: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229 #: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229
#: ../build/src/ui_edittagdialog.h:709 #: ../build/src/ui_edittagdialog.h:709
msgid "Album artist" msgid "Album artist"
@@ -817,7 +817,7 @@ msgstr "Álbumes con portada"
msgid "Albums without covers" msgid "Albums without covers"
msgstr "Álbumes sin portada" msgstr "Álbumes sin portada"
#: core/mainwindow.cpp:208 #: core/mainwindow.cpp:209
msgid "All Files (*)" msgid "All Files (*)"
msgstr "Todos los archivos (*)" msgstr "Todos los archivos (*)"
@@ -863,7 +863,7 @@ msgstr "Comenzar siempre la reproducción"
msgid "An error occurred loading the iTunes database" msgid "An error occurred loading the iTunes database"
msgstr "Se produjo un error cargando la base de datos iTunes" msgstr "Se produjo un error cargando la base de datos iTunes"
#: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:953 #: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:956
#, qt-format #, qt-format
msgid "An error occurred writing metadata to '%1'" msgid "An error occurred writing metadata to '%1'"
msgstr "Se produjo un error al escribir los metadatos en «%1»" msgstr "Se produjo un error al escribir los metadatos en «%1»"
@@ -912,12 +912,12 @@ msgstr "¿Seguro que deseas continuar?"
msgid "Are you sure you want to delete the \"%1\" preset?" msgid "Are you sure you want to delete the \"%1\" preset?"
msgstr "¿Seguro que deseas eliminar el ajuste predefinido «%1»?" msgstr "¿Seguro que deseas eliminar el ajuste predefinido «%1»?"
#: dialogs/edittagdialog.cpp:869 #: dialogs/edittagdialog.cpp:872
msgid "Are you sure you want to reset this song's statistics?" msgid "Are you sure you want to reset this song's statistics?"
msgstr "¿Seguro que deseas restablecer las estadísticas de esta canción?" msgstr "¿Seguro que deseas restablecer las estadísticas de esta canción?"
#: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263 #: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263
#: organize/organizedialog.cpp:100 ../build/src/ui_groupbydialog.h:184 #: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:184
#: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228 #: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228
#: ../build/src/ui_albumcoversearcher.h:106 #: ../build/src/ui_albumcoversearcher.h:106
#: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713 #: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713
@@ -925,7 +925,7 @@ msgstr "¿Seguro que deseas restablecer las estadísticas de esta canción?"
msgid "Artist" msgid "Artist"
msgstr "Artista" msgstr "Artista"
#: organize/organizedialog.cpp:101 #: organize/organizedialog.cpp:104
msgid "Artist's initial" msgid "Artist's initial"
msgstr "Iniciales del artista" msgstr "Iniciales del artista"
@@ -1061,7 +1061,7 @@ msgid "Best"
msgstr "Mejor" msgstr "Mejor"
#: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136 #: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136
#: playlist/playlist.cpp:1281 organize/organizedialog.cpp:115 #: playlist/playlist.cpp:1281 organize/organizedialog.cpp:118
#: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223 #: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223
#: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695 #: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695
msgid "Bit depth" msgid "Bit depth"
@@ -1082,7 +1082,7 @@ msgstr "Bit_rate"
msgid "Bitrate" msgid "Bitrate"
msgstr "Tasa bits" msgstr "Tasa bits"
#: organize/organizedialog.cpp:113 #: organize/organizedialog.cpp:116
msgctxt "Refers to bitrate in file organize dialog." msgctxt "Refers to bitrate in file organize dialog."
msgid "Bitrate" msgid "Bitrate"
msgstr "Tasa de bits" msgstr "Tasa de bits"
@@ -1127,7 +1127,7 @@ msgstr "Búfer"
msgid "Buffer duration" msgid "Buffer duration"
msgstr "Duración del búfer" msgstr "Duración del búfer"
#: engine/gstengine.cpp:630 #: engine/gstengine.cpp:681
msgid "Buffering" msgid "Buffering"
msgstr "Guardando en búfer" msgstr "Guardando en búfer"
@@ -1147,7 +1147,7 @@ msgstr "CDDA"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: tidal/tidalstreamurlrequest.cpp:107 qobuz/qobuzstreamurlrequest.cpp:103 #: tidal/tidalstreamurlrequest.cpp:108 qobuz/qobuzstreamurlrequest.cpp:103
msgid "Cancelled." msgid "Cancelled."
msgstr "Cancelado." msgstr "Cancelado."
@@ -1167,7 +1167,7 @@ msgstr "Cambiar la pista actualmente en reproducción"
msgid "Change the language" msgid "Change the language"
msgstr "Cambiar el idioma" msgstr "Cambiar el idioma"
#: core/mainwindow.cpp:758 #: core/mainwindow.cpp:759
msgid "Check for updates..." msgid "Check for updates..."
msgstr "Buscar actualizaciones…" msgstr "Buscar actualizaciones…"
@@ -1212,7 +1212,7 @@ msgstr "Borrar"
msgid "Clear Disk Cache" msgid "Clear Disk Cache"
msgstr "Inicializar caché de disco" msgstr "Inicializar caché de disco"
#: core/mainwindow.cpp:2191 ../build/src/ui_mainwindow.h:634 #: core/mainwindow.cpp:2204 ../build/src/ui_mainwindow.h:634
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Vaciar lista de reproducción" msgstr "Vaciar lista de reproducción"
@@ -1268,7 +1268,7 @@ msgstr ""
msgid "Club" msgid "Club"
msgstr "Club" msgstr "Club"
#: core/mainwindow.cpp:337 ../build/src/ui_collectionsettingspage.h:406 #: core/mainwindow.cpp:338 ../build/src/ui_collectionsettingspage.h:406
#: ../build/src/ui_scrobblersettingspage.h:402 #: ../build/src/ui_scrobblersettingspage.h:402
msgid "Collection" msgid "Collection"
msgstr "Colección" msgstr "Colección"
@@ -1281,7 +1281,7 @@ msgstr "Filtro de colección"
msgid "Collection advanced grouping" msgid "Collection advanced grouping"
msgstr "Agrupamiento avanzado de la colección" msgstr "Agrupamiento avanzado de la colección"
#: core/mainwindow.cpp:2703 #: core/mainwindow.cpp:2716
msgid "Collection rescan notice" msgid "Collection rescan notice"
msgstr "Notificación de nuevo análisis de la colección" msgstr "Notificación de nuevo análisis de la colección"
@@ -1298,7 +1298,7 @@ msgid "Comma separated list of class:level, level is 0-3"
msgstr "Lista separada por comas de la clase:nivel, el nivel es 0-3" msgstr "Lista separada por comas de la clase:nivel, el nivel es 0-3"
#: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374 #: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374
#: organize/organizedialog.cpp:111 ../build/src/ui_edittagdialog.h:711 #: organize/organizedialog.cpp:114 ../build/src/ui_edittagdialog.h:711
msgid "Comment" msgid "Comment"
msgstr "Comentario" msgstr "Comentario"
@@ -1315,7 +1315,7 @@ msgid "Complete tags automatically..."
msgstr "Completar etiquetas automáticamente" msgstr "Completar etiquetas automáticamente"
#: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272 #: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272
#: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:196 #: organize/organizedialog.cpp:106 ../build/src/ui_groupbydialog.h:196
#: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240 #: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240
#: ../build/src/ui_edittagdialog.h:710 #: ../build/src/ui_edittagdialog.h:710
msgid "Composer" msgid "Composer"
@@ -1342,7 +1342,7 @@ msgstr "Configurar %1…"
msgid "Configure buttons" msgid "Configure buttons"
msgstr "Configurar botones" msgstr "Configurar botones"
#: core/mainwindow.cpp:638 #: core/mainwindow.cpp:639
msgid "Configure collection..." msgid "Configure collection..."
msgstr "Configurar colección…" msgstr "Configurar colección…"
@@ -1358,7 +1358,7 @@ msgstr "Consola"
msgid "Constant bitrate" msgid "Constant bitrate"
msgstr "Tasa de bits constante" msgstr "Tasa de bits constante"
#: core/mainwindow.cpp:336 ../build/src/ui_contextsettingspage.h:361 #: core/mainwindow.cpp:337 ../build/src/ui_contextsettingspage.h:361
msgid "Context" msgid "Context"
msgstr "Escuchando" msgstr "Escuchando"
@@ -1380,7 +1380,7 @@ msgstr "Convertir todas las pistas"
msgid "Convert any music that the device can't play" msgid "Convert any music that the device can't play"
msgstr "Convertir las pistas que el dispositivo no pueda reproducir" msgstr "Convertir las pistas que el dispositivo no pueda reproducir"
#: core/mainwindow.cpp:702 #: core/mainwindow.cpp:703
msgid "Copy URL(s)..." msgid "Copy URL(s)..."
msgstr "Copia URL(s)..." msgstr "Copia URL(s)..."
@@ -1388,7 +1388,7 @@ msgstr "Copia URL(s)..."
msgid "Copy album cover artwork" msgid "Copy album cover artwork"
msgstr "Copiar la portada del álbum" msgstr "Copiar la portada del álbum"
#: core/mainwindow.cpp:706 widgets/fileviewlist.cpp:48 #: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:48
#: device/deviceview.cpp:239 #: device/deviceview.cpp:239
msgid "Copy to collection..." msgid "Copy to collection..."
msgstr "Copiar en la colección…" msgstr "Copiar en la colección…"
@@ -1397,7 +1397,7 @@ msgstr "Copiar en la colección…"
msgid "Copy to device" msgid "Copy to device"
msgstr "" msgstr ""
#: core/mainwindow.cpp:709 context/contextalbumsview.cpp:262 #: core/mainwindow.cpp:710 context/contextalbumsview.cpp:262
#: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104 #: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104
#: widgets/fileviewlist.cpp:50 #: widgets/fileviewlist.cpp:50
msgid "Copy to device..." msgid "Copy to device..."
@@ -1638,7 +1638,7 @@ msgstr "Eliminar archivos"
msgid "Delete from device..." msgid "Delete from device..."
msgstr "Eliminar del dispositivo…" msgstr "Eliminar del dispositivo…"
#: core/mainwindow.cpp:711 collection/collectionview.cpp:354 #: core/mainwindow.cpp:712 collection/collectionview.cpp:354
#: widgets/fileviewlist.cpp:51 #: widgets/fileviewlist.cpp:51
msgid "Delete from disk..." msgid "Delete from disk..."
msgstr "Eliminar del disco…" msgstr "Eliminar del disco…"
@@ -1660,11 +1660,11 @@ msgstr "Eliminar los archivos originales"
msgid "Deleting files" msgid "Deleting files"
msgstr "Eliminando los archivos" msgstr "Eliminando los archivos"
#: core/mainwindow.cpp:1826 #: core/mainwindow.cpp:1839
msgid "Dequeue selected tracks" msgid "Dequeue selected tracks"
msgstr "Quitar las pistas seleccionadas de la cola" msgstr "Quitar las pistas seleccionadas de la cola"
#: core/mainwindow.cpp:1825 #: core/mainwindow.cpp:1838
msgid "Dequeue track" msgid "Dequeue track"
msgstr "Quitar la pista de la cola" msgstr "Quitar la pista de la cola"
@@ -1690,7 +1690,7 @@ msgstr "Propiedades del dispositivo"
msgid "Device properties..." msgid "Device properties..."
msgstr "Propiedades del dispositivo…" msgstr "Propiedades del dispositivo…"
#: core/mainwindow.cpp:343 #: core/mainwindow.cpp:344
msgid "Devices" msgid "Devices"
msgstr "Dispositivos" msgstr "Dispositivos"
@@ -1712,7 +1712,7 @@ msgid "Disabled"
msgstr "Desactivado" msgstr "Desactivado"
#: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266 #: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266
#: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:188 #: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:188
#: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232 #: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232
#: ../build/src/ui_edittagdialog.h:708 #: ../build/src/ui_edittagdialog.h:708
msgid "Disc" msgid "Disc"
@@ -1747,6 +1747,10 @@ msgstr "No recortar la imagen"
msgid "Do not overwrite" msgid "Do not overwrite"
msgstr "No sobrescribir" msgstr "No sobrescribir"
#: ../build/src/ui_snapdialog.h:120
msgid "Do not show this message again."
msgstr ""
#: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110 #: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110
msgid "Don't repeat" msgid "Don't repeat"
msgstr "No repetir" msgstr "No repetir"
@@ -1805,7 +1809,7 @@ msgstr ""
msgid "Edit smart playlist..." msgid "Edit smart playlist..."
msgstr "" msgstr ""
#: core/mainwindow.cpp:1867 #: core/mainwindow.cpp:1880
#, qt-format #, qt-format
msgid "Edit tag \"%1\"..." msgid "Edit tag \"%1\"..."
msgstr "Editar la etiqueta «%1»…" msgstr "Editar la etiqueta «%1»…"
@@ -1959,7 +1963,7 @@ msgstr "Equivalente a --log-levels*:1"
msgid "Equivalent to --log-levels *:3" msgid "Equivalent to --log-levels *:3"
msgstr "Equivalente a --log-levels*:3" msgstr "Equivalente a --log-levels*:3"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "Error" msgid "Error"
msgstr "Error" msgstr "Error"
@@ -2125,7 +2129,7 @@ msgstr "Error al obtener la portada"
msgid "File %1 is not recognized as a valid audio file." msgid "File %1 is not recognized as a valid audio file."
msgstr "El archivo de audio %1 no parece válido." msgstr "El archivo de audio %1 no parece válido."
#: organize/organizedialog.cpp:116 #: organize/organizedialog.cpp:119
msgid "File extension" msgid "File extension"
msgstr "Extensión del archivo" msgstr "Extensión del archivo"
@@ -2163,7 +2167,7 @@ msgstr "Nombre del archivo"
msgid "Filename:" msgid "Filename:"
msgstr "Archivo:" msgstr "Archivo:"
#: core/mainwindow.cpp:341 #: core/mainwindow.cpp:342
msgid "Files" msgid "Files"
msgstr "Archivos" msgstr "Archivos"
@@ -2217,6 +2221,15 @@ msgstr "Fuente para títulos"
msgid "Font size" msgid "Font size"
msgstr "Tamaño de fuente" msgstr "Tamaño de fuente"
#: dialogs/snapdialog.cpp:56
#, qt-format
msgid "For Ubuntu there is an official PPA repository available at %1."
msgstr ""
#: dialogs/snapdialog.cpp:64
msgid "For a better experience please consider the other options above."
msgstr ""
#: ../build/src/ui_transcoderoptionsmp3.h:203 #: ../build/src/ui_transcoderoptionsmp3.h:203
msgid "Force mono encoding" msgid "Force mono encoding"
msgstr "Forzar la codificación monoaural" msgstr "Forzar la codificación monoaural"
@@ -2299,7 +2312,7 @@ msgid "Genius Authentication"
msgstr "Autentificación Genius" msgstr "Autentificación Genius"
#: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270 #: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270
#: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:190 #: organize/organizedialog.cpp:113 ../build/src/ui_groupbydialog.h:190
#: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234 #: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234
#: ../build/src/ui_edittagdialog.h:704 #: ../build/src/ui_edittagdialog.h:704
msgid "Genre" msgid "Genre"
@@ -2402,7 +2415,7 @@ msgid "Group by Genre/Artist/Album"
msgstr "Agrupar por Género/Artista/Álbum" msgstr "Agrupar por Género/Artista/Álbum"
#: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274 #: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274
#: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:198 #: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:198
#: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242 #: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242
#: ../build/src/ui_edittagdialog.h:706 #: ../build/src/ui_edittagdialog.h:706
msgid "Grouping" msgid "Grouping"
@@ -2588,6 +2601,10 @@ msgstr ""
"Es un desarrollo derivado de Clementine lanzado en 2018 destinado a " "Es un desarrollo derivado de Clementine lanzado en 2018 destinado a "
"melómanos y audiófilos." "melómanos y audiófilos."
#: dialogs/snapdialog.cpp:44
msgid "It is detected that Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_behavioursettingspage.h:302 #: ../build/src/ui_behavioursettingspage.h:302
msgid "Jump to previous song right away" msgid "Jump to previous song right away"
msgstr "Ir a la pista anterior inmediatamente" msgstr "Ir a la pista anterior inmediatamente"
@@ -2652,7 +2669,7 @@ msgid "Left"
msgstr "Izquierda" msgstr "Izquierda"
#: context/contextview.cpp:214 playlist/playlist.cpp:1267 #: context/contextview.cpp:214 playlist/playlist.cpp:1267
#: organize/organizedialog.cpp:112 ../build/src/ui_edittagdialog.h:689 #: organize/organizedialog.cpp:115 ../build/src/ui_edittagdialog.h:689
msgid "Length" msgid "Length"
msgstr "Duración" msgstr "Duración"
@@ -2870,7 +2887,7 @@ msgstr "Falta usuario o contraseña de Qobuz"
#: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796 #: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796
#: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918 #: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918
#: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:89 #: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:90
msgid "Missing Tidal API token, username or password." msgid "Missing Tidal API token, username or password."
msgstr "Falta token de la API de Tidal, usuario o clave." msgstr "Falta token de la API de Tidal, usuario o clave."
@@ -2956,7 +2973,7 @@ msgstr "Puntos de montaje"
msgid "Move down" msgid "Move down"
msgstr "Bajar" msgstr "Bajar"
#: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:49 #: core/mainwindow.cpp:708 widgets/fileviewlist.cpp:49
msgid "Move to collection..." msgid "Move to collection..."
msgstr "Mover a la colección…" msgstr "Mover a la colección…"
@@ -2965,7 +2982,7 @@ msgstr "Mover a la colección…"
msgid "Move up" msgid "Move up"
msgstr "Subir" msgstr "Subir"
#: core/mainwindow.cpp:2101 transcoder/transcodedialog.cpp:328 #: core/mainwindow.cpp:2114 transcoder/transcodedialog.cpp:328
msgid "Music" msgid "Music"
msgstr "Música" msgstr "Música"
@@ -3010,7 +3027,7 @@ msgstr "Nunca comenzar la reproducción"
msgid "New folder" msgid "New folder"
msgstr "Carpeta nueva" msgstr "Carpeta nueva"
#: core/mainwindow.cpp:1925 #: core/mainwindow.cpp:1938
msgid "New playlist" msgid "New playlist"
msgstr "Lista de reproducción nueva" msgstr "Lista de reproducción nueva"
@@ -3054,7 +3071,7 @@ msgstr "No hay ninguna portada que exportar."
msgid "No long blocks" msgid "No long blocks"
msgstr "Sin bloques largos" msgstr "Sin bloques largos"
#: tidal/tidalrequest.cpp:1256 qobuz/qobuzrequest.cpp:1318 #: tidal/tidalrequest.cpp:1253 qobuz/qobuzrequest.cpp:1315
msgid "No match." msgid "No match."
msgstr "Sin coincidencias." msgstr "Sin coincidencias."
@@ -3082,7 +3099,7 @@ msgstr "Nada en reproducción"
msgid "None" msgid "None"
msgstr "Ninguno" msgstr "Ninguno"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "None of the selected songs were suitable for copying to a device" msgid "None of the selected songs were suitable for copying to a device"
msgstr "" msgstr ""
@@ -3110,7 +3127,7 @@ msgstr ""
#: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791 #: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791
#: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913 #: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913
#: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:85 #: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:86
msgid "Not authenticated with Tidal." msgid "Not authenticated with Tidal."
msgstr "No se ha iniciado sesión en Tidal." msgstr "No se ha iniciado sesión en Tidal."
@@ -3150,6 +3167,13 @@ msgstr "Previsualización del panel de información en pantalla"
msgid "Off" msgid "Off"
msgstr "Desactivado" msgstr "Desactivado"
#: dialogs/snapdialog.cpp:60
#, qt-format
msgid ""
"Official releases are available for Debian and Ubuntu which also work on "
"most of their derivatives. See %1 for more information."
msgstr ""
#: osd/osdbase.cpp:245 #: osd/osdbase.cpp:245
msgid "On" msgid "On"
msgstr "Activado" msgstr "Activado"
@@ -3215,7 +3239,7 @@ msgstr "Opus"
msgid "Organize Files" msgid "Organize Files"
msgstr "Organizar archivos." msgstr "Organizar archivos."
#: core/mainwindow.cpp:705 context/contextalbumsview.cpp:260 #: core/mainwindow.cpp:706 context/contextalbumsview.cpp:260
#: collection/collectionview.cpp:350 #: collection/collectionview.cpp:350
msgid "Organize files..." msgid "Organize files..."
msgstr "Organizar archivos..." msgstr "Organizar archivos..."
@@ -3229,7 +3253,7 @@ msgid "Original tags"
msgstr "Etiquetas originales" msgstr "Etiquetas originales"
#: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269 #: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269
#: organize/organizedialog.cpp:109 ../build/src/ui_groupbydialog.h:194 #: organize/organizedialog.cpp:112 ../build/src/ui_groupbydialog.h:194
#: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238 #: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238
msgid "Original year" msgid "Original year"
msgstr "Año original" msgstr "Año original"
@@ -3288,7 +3312,7 @@ msgstr "Fiesta"
msgid "Password" msgid "Password"
msgstr "Contraseña" msgstr "Contraseña"
#: core/mainwindow.cpp:1247 core/mainwindow.cpp:1721 #: core/mainwindow.cpp:1260 core/mainwindow.cpp:1734
#: core/qtsystemtrayicon.cpp:190 #: core/qtsystemtrayicon.cpp:190
msgid "Pause" msgid "Pause"
msgstr "Pausar" msgstr "Pausar"
@@ -3302,7 +3326,7 @@ msgid "Paused"
msgstr "En pausa" msgstr "En pausa"
#: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273 #: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273
#: organize/organizedialog.cpp:104 ../build/src/ui_groupbydialog.h:197 #: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:197
#: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241 #: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241
#: ../build/src/ui_edittagdialog.h:715 #: ../build/src/ui_edittagdialog.h:715
msgid "Performer" msgid "Performer"
@@ -3316,8 +3340,8 @@ msgstr "Píxel"
msgid "Plain sidebar" msgid "Plain sidebar"
msgstr "Barra lateral simple" msgstr "Barra lateral simple"
#: core/mainwindow.cpp:674 core/mainwindow.cpp:1200 core/mainwindow.cpp:1229 #: core/mainwindow.cpp:675 core/mainwindow.cpp:1213 core/mainwindow.cpp:1242
#: core/mainwindow.cpp:1725 core/qtsystemtrayicon.cpp:177 #: core/mainwindow.cpp:1738 core/qtsystemtrayicon.cpp:177
#: core/qtsystemtrayicon.cpp:202 #: core/qtsystemtrayicon.cpp:202
msgid "Play" msgid "Play"
msgstr "Reproducir" msgstr "Reproducir"
@@ -3380,7 +3404,7 @@ msgstr "Botones de lista de reproducción"
msgid "Playlist finished" msgid "Playlist finished"
msgstr "Lista de reproducción finalizada" msgstr "Lista de reproducción finalizada"
#: core/mainwindow.cpp:2191 #: core/mainwindow.cpp:2204
#, qt-format #, qt-format
msgid "" msgid ""
"Playlist has %1 songs, too large to undo, are you sure you want to clear the " "Playlist has %1 songs, too large to undo, are you sure you want to clear the "
@@ -3402,7 +3426,7 @@ msgstr "Opciones de la lista de reproducción"
msgid "Playlist type" msgid "Playlist type"
msgstr "" msgstr ""
#: core/mainwindow.cpp:339 #: core/mainwindow.cpp:340
msgid "Playlists" msgid "Playlists"
msgstr "Listas" msgstr "Listas"
@@ -3527,7 +3551,7 @@ msgstr "Progreso"
msgid "Put songs in a random order" msgid "Put songs in a random order"
msgstr "" msgstr ""
#: core/mainwindow.cpp:352 ../build/src/ui_scrobblersettingspage.h:409 #: core/mainwindow.cpp:353 ../build/src/ui_scrobblersettingspage.h:409
#: ../build/src/ui_qobuzsettingspage.h:270 #: ../build/src/ui_qobuzsettingspage.h:270
msgid "Qobuz" msgid "Qobuz"
msgstr "Qobuz" msgstr "Qobuz"
@@ -3550,24 +3574,24 @@ msgstr "Calidad"
msgid "Querying device..." msgid "Querying device..."
msgstr "Consultando dispositivo…" msgstr "Consultando dispositivo…"
#: core/mainwindow.cpp:338 #: core/mainwindow.cpp:339
msgid "Queue" msgid "Queue"
msgstr "Cola" msgstr "Cola"
#: core/mainwindow.cpp:1828 #: core/mainwindow.cpp:1841
msgid "Queue selected tracks" msgid "Queue selected tracks"
msgstr "Encolar las pistas seleccionadas" msgstr "Encolar las pistas seleccionadas"
#: core/mainwindow.cpp:680 core/mainwindow.cpp:1832 #: core/mainwindow.cpp:681 core/mainwindow.cpp:1845
msgid "Queue selected tracks to play next" msgid "Queue selected tracks to play next"
msgstr "Encolar las pistas seleccionadas para reproducir a continuación" msgstr "Encolar las pistas seleccionadas para reproducir a continuación"
#: core/mainwindow.cpp:1834 collection/collectionview.cpp:347 #: core/mainwindow.cpp:1847 collection/collectionview.cpp:347
#: internet/internetcollectionview.cpp:317 #: internet/internetcollectionview.cpp:317
msgid "Queue to play next" msgid "Queue to play next"
msgstr "Encolar para reproducir a continuación" msgstr "Encolar para reproducir a continuación"
#: core/mainwindow.cpp:1827 context/contextalbumsview.cpp:257 #: core/mainwindow.cpp:1840 context/contextalbumsview.cpp:257
#: collection/collectionview.cpp:346 #: collection/collectionview.cpp:346
#: smartplaylists/smartplaylistsviewcontainer.cpp:75 #: smartplaylists/smartplaylistsviewcontainer.cpp:75
#: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316 #: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316
@@ -3763,7 +3787,7 @@ msgstr ""
msgid "Rescan song(s)" msgid "Rescan song(s)"
msgstr "Volver a escanear pistas" msgstr "Volver a escanear pistas"
#: core/mainwindow.cpp:696 #: core/mainwindow.cpp:697
msgid "Rescan song(s)..." msgid "Rescan song(s)..."
msgstr "Volver a escanear tema(s)..." msgstr "Volver a escanear tema(s)..."
@@ -3771,7 +3795,7 @@ msgstr "Volver a escanear tema(s)..."
msgid "Reset" msgid "Reset"
msgstr "Restablecer" msgstr "Restablecer"
#: dialogs/edittagdialog.cpp:869 ../build/src/ui_edittagdialog.h:688 #: dialogs/edittagdialog.cpp:872 ../build/src/ui_edittagdialog.h:688
msgid "Reset play counts" msgid "Reset play counts"
msgstr "Reiniciar contador de reproducciones" msgstr "Reiniciar contador de reproducciones"
@@ -3878,7 +3902,7 @@ msgid "Safely remove the device after copying"
msgstr "Quitar dispositivo con seguridad después de copiar" msgstr "Quitar dispositivo con seguridad después de copiar"
#: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280 #: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280
#: organize/organizedialog.cpp:114 ../build/src/ui_groupbydialog.h:200 #: organize/organizedialog.cpp:117 ../build/src/ui_groupbydialog.h:200
#: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244 #: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244
#: ../build/src/ui_edittagdialog.h:694 #: ../build/src/ui_edittagdialog.h:694
msgid "Sample rate" msgid "Sample rate"
@@ -3938,7 +3962,7 @@ msgstr "Gestor de agrupamientos guardados"
msgid "Saving album covers" msgid "Saving album covers"
msgstr "Guardando carátulas" msgstr "Guardando carátulas"
#: dialogs/edittagdialog.cpp:784 dialogs/trackselectiondialog.cpp:291 #: dialogs/edittagdialog.cpp:787 dialogs/trackselectiondialog.cpp:291
msgid "Saving tracks" msgid "Saving tracks"
msgstr "Guardando las pistas" msgstr "Guardando las pistas"
@@ -4071,7 +4095,7 @@ msgstr "La dirección URL del servidor es inválida."
msgid "Server-side scrobbling" msgid "Server-side scrobbling"
msgstr "" msgstr ""
#: core/mainwindow.cpp:1866 #: core/mainwindow.cpp:1879
#, qt-format #, qt-format
msgid "Set %1 to \"%2\"..." msgid "Set %1 to \"%2\"..."
msgstr "Establecer %1 a «%2»…" msgstr "Establecer %1 a «%2»…"
@@ -4158,7 +4182,7 @@ msgstr "Mostrar portada del álbum en la colección"
msgid "Show albums by artist" msgid "Show albums by artist"
msgstr "Mostrar álbumes por artista" msgstr "Mostrar álbumes por artista"
#: core/mainwindow.cpp:627 #: core/mainwindow.cpp:628
msgid "Show all songs" msgid "Show all songs"
msgstr "Mostrar todas las pistas" msgstr "Mostrar todas las pistas"
@@ -4182,7 +4206,7 @@ msgstr "Mostrar motor y dispositivo"
msgid "Show fullsize..." msgid "Show fullsize..."
msgstr "Mostrar a tamaño completo…" msgstr "Mostrar a tamaño completo…"
#: core/mainwindow.cpp:703 #: core/mainwindow.cpp:704
msgid "Show in collection..." msgid "Show in collection..."
msgstr "Mostrar en la colección…" msgstr "Mostrar en la colección…"
@@ -4190,7 +4214,7 @@ msgstr "Mostrar en la colección…"
msgid "Show in file browser" msgid "Show in file browser"
msgstr "Mostrar en el navegador de archivos" msgstr "Mostrar en el navegador de archivos"
#: core/mainwindow.cpp:704 context/contextalbumsview.cpp:268 #: core/mainwindow.cpp:705 context/contextalbumsview.cpp:268
#: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55 #: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55
msgid "Show in file browser..." msgid "Show in file browser..."
msgstr "Mostrar en el gestor de archivos…" msgstr "Mostrar en el gestor de archivos…"
@@ -4207,11 +4231,11 @@ msgstr "Mostrar el botón \"Me gusta\""
msgid "Show moodbar" msgid "Show moodbar"
msgstr "Mostrar barra de ánimo" msgstr "Mostrar barra de ánimo"
#: core/mainwindow.cpp:628 #: core/mainwindow.cpp:629
msgid "Show only duplicates" msgid "Show only duplicates"
msgstr "Mostrar solo los duplicados" msgstr "Mostrar solo los duplicados"
#: core/mainwindow.cpp:629 #: core/mainwindow.cpp:630
msgid "Show only untagged" msgid "Show only untagged"
msgstr "Solo mostrar no etiquetadas" msgstr "Solo mostrar no etiquetadas"
@@ -4300,11 +4324,11 @@ msgstr "Número de omisiones"
msgid "Skip forwards in playlist" msgid "Skip forwards in playlist"
msgstr "Saltar hacia adelante en la lista de reproducción" msgstr "Saltar hacia adelante en la lista de reproducción"
#: core/mainwindow.cpp:1839 #: core/mainwindow.cpp:1852
msgid "Skip selected tracks" msgid "Skip selected tracks"
msgstr "Omitir pistas seleccionadas" msgstr "Omitir pistas seleccionadas"
#: core/mainwindow.cpp:1838 #: core/mainwindow.cpp:1851
msgid "Skip track" msgid "Skip track"
msgstr "Omitir pista" msgstr "Omitir pista"
@@ -4320,7 +4344,7 @@ msgstr "Barra lateral pequeña"
msgid "Smart playlist" msgid "Smart playlist"
msgstr "" msgstr ""
#: core/mainwindow.cpp:340 #: core/mainwindow.cpp:341
msgid "Smart playlists" msgid "Smart playlists"
msgstr "" msgstr ""
@@ -4404,7 +4428,7 @@ msgstr "Detener reproducción al finalizar cada pista"
msgid "Stop after every track" msgid "Stop after every track"
msgstr "Detener reproducción al finalizar cada pista" msgstr "Detener reproducción al finalizar cada pista"
#: core/mainwindow.cpp:676 ../build/src/ui_mainwindow.h:627 #: core/mainwindow.cpp:677 ../build/src/ui_mainwindow.h:627
msgid "Stop after this track" msgid "Stop after this track"
msgstr "Detener reproducción al finalizar la pista actual" msgstr "Detener reproducción al finalizar la pista actual"
@@ -4466,6 +4490,21 @@ msgstr ""
"Strawberry es software libre bajo licencia GPL. El código fuente puede " "Strawberry es software libre bajo licencia GPL. El código fuente puede "
"encontrarse en %1" "encontrarse en %1"
#: dialogs/snapdialog.cpp:40
msgid "Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_snapdialog.h:117
msgid "Strawberry is running as a snap"
msgstr ""
#: dialogs/snapdialog.cpp:48
msgid ""
"Strawberry is slower, and has restrictions when running as a Snap. Accessing "
"the root filesystem (/) will not work. There also might be other "
"restrictions such as accessing certain devices or network shares."
msgstr ""
#: ../build/src/ui_trackselectiondialog.h:205 #: ../build/src/ui_trackselectiondialog.h:205
msgid "Strawberry was unable to find results for this file" msgid "Strawberry was unable to find results for this file"
msgstr "Strawberry no encontró resultados para este archivo" msgstr "Strawberry no encontró resultados para este archivo"
@@ -4490,7 +4529,7 @@ msgstr "Ajustar la imagen a la lista de reproducción"
msgid "Submit scrobbles every" msgid "Submit scrobbles every"
msgstr "Emitir al servidor de registro cada" msgstr "Emitir al servidor de registro cada"
#: core/mainwindow.cpp:346 ../build/src/ui_scrobblersettingspage.h:407 #: core/mainwindow.cpp:347 ../build/src/ui_scrobblersettingspage.h:407
#: ../build/src/ui_subsonicsettingspage.h:188 #: ../build/src/ui_subsonicsettingspage.h:188
msgid "Subsonic" msgid "Subsonic"
msgstr "Subsonic" msgstr "Subsonic"
@@ -4616,7 +4655,7 @@ msgstr "El sitio indicado no existe."
msgid "The site you requested is not an image!" msgid "The site you requested is not an image!"
msgstr "El sitio indicado no es una imagen." msgstr "El sitio indicado no es una imagen."
#: core/mainwindow.cpp:2698 #: core/mainwindow.cpp:2711
msgid "" msgid ""
"The version of Strawberry you've just updated to requires a full collection " "The version of Strawberry you've just updated to requires a full collection "
"rescan because of the new features listed below:" "rescan because of the new features listed below:"
@@ -4723,7 +4762,7 @@ msgstr ""
msgid "This type of device is not supported: %1" msgid "This type of device is not supported: %1"
msgstr "No se admite este tipo de dispositivo: %1" msgstr "No se admite este tipo de dispositivo: %1"
#: core/mainwindow.cpp:349 ../build/src/ui_scrobblersettingspage.h:408 #: core/mainwindow.cpp:350 ../build/src/ui_scrobblersettingspage.h:408
#: ../build/src/ui_tidalsettingspage.h:312 #: ../build/src/ui_tidalsettingspage.h:312
msgid "Tidal" msgid "Tidal"
msgstr "Tidal" msgstr "Tidal"
@@ -4740,7 +4779,7 @@ msgstr ""
msgid "Time step" msgid "Time step"
msgstr "Salto en el tiempo" msgstr "Salto en el tiempo"
#: playlist/playlist.cpp:1262 organize/organizedialog.cpp:98 #: playlist/playlist.cpp:1262 organize/organizedialog.cpp:101
#: ../build/src/ui_contextsettingspage.h:414 #: ../build/src/ui_contextsettingspage.h:414
#: ../build/src/ui_edittagdialog.h:705 #: ../build/src/ui_edittagdialog.h:705
#: ../build/src/ui_trackselectiondialog.h:210 #: ../build/src/ui_trackselectiondialog.h:210
@@ -4751,7 +4790,7 @@ msgstr "Título"
msgid "Today" msgid "Today"
msgstr "Hoy" msgstr "Hoy"
#: core/mainwindow.cpp:677 core/mainwindow.cpp:1829 #: core/mainwindow.cpp:678 core/mainwindow.cpp:1842
msgid "Toggle queue status" msgid "Toggle queue status"
msgstr "Cambiar estado de la cola" msgstr "Cambiar estado de la cola"
@@ -4759,7 +4798,7 @@ msgstr "Cambiar estado de la cola"
msgid "Toggle scrobbling" msgid "Toggle scrobbling"
msgstr "Conmutar registro de reproducción" msgstr "Conmutar registro de reproducción"
#: core/mainwindow.cpp:683 core/mainwindow.cpp:1840 #: core/mainwindow.cpp:684 core/mainwindow.cpp:1853
msgid "Toggle skip status" msgid "Toggle skip status"
msgstr "Conmutar estado de avance" msgstr "Conmutar estado de avance"
@@ -4787,7 +4826,7 @@ msgstr "Total de bytes transferidos"
msgid "Total network requests made" msgid "Total network requests made"
msgstr "Total de solicitudes hechas a la red" msgstr "Total de solicitudes hechas a la red"
#: playlist/playlist.cpp:1265 organize/organizedialog.cpp:106 #: playlist/playlist.cpp:1265 organize/organizedialog.cpp:109
#: ../build/src/ui_edittagdialog.h:712 #: ../build/src/ui_edittagdialog.h:712
#: ../build/src/ui_trackselectiondialog.h:212 #: ../build/src/ui_trackselectiondialog.h:212
msgid "Track" msgid "Track"
@@ -4845,8 +4884,8 @@ msgstr "Banda ultraancha (UWB)"
msgid "Unknown" msgid "Unknown"
msgstr "Desconocido" msgstr "Desconocido"
#: subsonic/subsonicrequest.cpp:858 tidal/tidalrequest.cpp:1262 #: subsonic/subsonicrequest.cpp:864 tidal/tidalrequest.cpp:1259
#: qobuz/qobuzrequest.cpp:1324 #: qobuz/qobuzrequest.cpp:1321
msgid "Unknown error" msgid "Unknown error"
msgstr "Error desconocido" msgstr "Error desconocido"
@@ -4854,11 +4893,11 @@ msgstr "Error desconocido"
msgid "Unset cover" msgid "Unset cover"
msgstr "Eliminar la carátula" msgstr "Eliminar la carátula"
#: core/mainwindow.cpp:1837 #: core/mainwindow.cpp:1850
msgid "Unskip selected tracks" msgid "Unskip selected tracks"
msgstr "No omitir pistas seleccionadas" msgstr "No omitir pistas seleccionadas"
#: core/mainwindow.cpp:1836 #: core/mainwindow.cpp:1849
msgid "Unskip track" msgid "Unskip track"
msgstr "No omitir pista" msgstr "No omitir pista"
@@ -5094,7 +5133,7 @@ msgid ""
"well?" "well?"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2702 #: core/mainwindow.cpp:2715
msgid "Would you like to run a full rescan right now?" msgid "Would you like to run a full rescan right now?"
msgstr "¿Quieres ejecutar un nuevo análisis completo ahora?" msgstr "¿Quieres ejecutar un nuevo análisis completo ahora?"
@@ -5103,7 +5142,7 @@ msgid "Write metadata when saving playlists"
msgstr "Escribir los metadatos al guardar las listas de reproducción" msgstr "Escribir los metadatos al guardar las listas de reproducción"
#: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268 #: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268
#: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:191 #: organize/organizedialog.cpp:111 ../build/src/ui_groupbydialog.h:191
#: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235 #: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235
#: ../build/src/ui_edittagdialog.h:714 #: ../build/src/ui_edittagdialog.h:714
#: ../build/src/ui_trackselectiondialog.h:211 #: ../build/src/ui_trackselectiondialog.h:211

View File

@@ -37,13 +37,14 @@
# David Geiger <geiger.david68210@gmail.com>, 2020. #zanata # David Geiger <geiger.david68210@gmail.com>, 2020. #zanata
# Jonas Kvinge <jonas@jkvinge.net>, 2020. #zanata # Jonas Kvinge <jonas@jkvinge.net>, 2020. #zanata
# Papoteur <yves.brungard_mageia@gadz.org>, 2020. #zanata # Papoteur <yves.brungard_mageia@gadz.org>, 2020. #zanata
# Sébastien Morin <sebsweb@gmail.com>, 2020. #zanata
msgid "" msgid ""
msgstr "" msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"PO-Revision-Date: 2020-10-12 01:09-0400\n" "PO-Revision-Date: 2020-10-19 02:36-0400\n"
"Last-Translator: David Geiger <geiger.david68210@gmail.com>\n" "Last-Translator: Sébastien Morin <sebsweb@gmail.com>\n"
"Language: fr\n" "Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Language-Team: French\n" "Language-Team: French\n"
@@ -594,7 +595,7 @@ msgstr ""
msgid "Add directory..." msgid "Add directory..."
msgstr "Ajouter un dossier..." msgstr "Ajouter un dossier..."
#: core/mainwindow.cpp:2101 #: core/mainwindow.cpp:2114
msgid "Add file" msgid "Add file"
msgstr "Ajouter un fichier" msgstr "Ajouter un fichier"
@@ -610,7 +611,7 @@ msgstr "Ajouter des fichiers à transcoder"
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Ajouter des fichiers à transcoder" msgstr "Ajouter des fichiers à transcoder"
#: core/mainwindow.cpp:2126 transcoder/transcodedialog.cpp:419 #: core/mainwindow.cpp:2139 transcoder/transcodedialog.cpp:419
msgid "Add folder" msgid "Add folder"
msgstr "Ajouter un dossier" msgstr "Ajouter un dossier"
@@ -713,7 +714,7 @@ msgstr "Ajouter un flux..."
msgid "Add to albums" msgid "Add to albums"
msgstr "Ajouter aux albums" msgstr "Ajouter aux albums"
#: core/mainwindow.cpp:1909 #: core/mainwindow.cpp:1922
msgid "Add to another playlist" msgid "Add to another playlist"
msgstr "Ajouter à une autre liste de lecture" msgstr "Ajouter à une autre liste de lecture"
@@ -772,7 +773,7 @@ msgid "Albu&m cover"
msgstr "&Pochette de l'album" msgstr "&Pochette de l'album"
#: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264 #: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264
#: organize/organizedialog.cpp:99 ../build/src/ui_groupbydialog.h:186 #: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:186
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230 #: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
#: ../build/src/ui_albumcoversearcher.h:110 #: ../build/src/ui_albumcoversearcher.h:110
#: ../build/src/ui_albumcoversearcher.h:112 #: ../build/src/ui_albumcoversearcher.h:112
@@ -792,7 +793,7 @@ msgid "Album - Disc"
msgstr "Album - CD" msgstr "Album - CD"
#: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271 #: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271
#: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:185 #: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:185
#: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229 #: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229
#: ../build/src/ui_edittagdialog.h:709 #: ../build/src/ui_edittagdialog.h:709
msgid "Album artist" msgid "Album artist"
@@ -832,7 +833,7 @@ msgstr "Albums ayant une pochette"
msgid "Albums without covers" msgid "Albums without covers"
msgstr "Albums n'ayant pas de pochette" msgstr "Albums n'ayant pas de pochette"
#: core/mainwindow.cpp:208 #: core/mainwindow.cpp:209
msgid "All Files (*)" msgid "All Files (*)"
msgstr "Tous les fichiers (*)" msgstr "Tous les fichiers (*)"
@@ -879,7 +880,7 @@ msgid "An error occurred loading the iTunes database"
msgstr "" msgstr ""
"Une erreur est survenue lors du chargement de la base de données iTunes" "Une erreur est survenue lors du chargement de la base de données iTunes"
#: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:953 #: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:956
#, qt-format #, qt-format
msgid "An error occurred writing metadata to '%1'" msgid "An error occurred writing metadata to '%1'"
msgstr "" msgstr ""
@@ -929,13 +930,13 @@ msgstr "Êtes-vous sûr(e) de vouloir continuer ?"
msgid "Are you sure you want to delete the \"%1\" preset?" msgid "Are you sure you want to delete the \"%1\" preset?"
msgstr "Êtes-vous sûr(e) de vouloir supprimer la valeur prédéfinie « %1» ?" msgstr "Êtes-vous sûr(e) de vouloir supprimer la valeur prédéfinie « %1» ?"
#: dialogs/edittagdialog.cpp:869 #: dialogs/edittagdialog.cpp:872
msgid "Are you sure you want to reset this song's statistics?" msgid "Are you sure you want to reset this song's statistics?"
msgstr "" msgstr ""
"Êtes vous sûr(e) de vouloir réinitialiser les statistiques de ce morceau ?" "Êtes vous sûr(e) de vouloir réinitialiser les statistiques de ce morceau ?"
#: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263 #: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263
#: organize/organizedialog.cpp:100 ../build/src/ui_groupbydialog.h:184 #: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:184
#: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228 #: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228
#: ../build/src/ui_albumcoversearcher.h:106 #: ../build/src/ui_albumcoversearcher.h:106
#: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713 #: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713
@@ -943,7 +944,7 @@ msgstr ""
msgid "Artist" msgid "Artist"
msgstr "Artiste" msgstr "Artiste"
#: organize/organizedialog.cpp:101 #: organize/organizedialog.cpp:104
msgid "Artist's initial" msgid "Artist's initial"
msgstr "Initiale de l'artiste" msgstr "Initiale de l'artiste"
@@ -1080,7 +1081,7 @@ msgid "Best"
msgstr "Meilleur" msgstr "Meilleur"
#: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136 #: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136
#: playlist/playlist.cpp:1281 organize/organizedialog.cpp:115 #: playlist/playlist.cpp:1281 organize/organizedialog.cpp:118
#: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223 #: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223
#: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695 #: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695
msgid "Bit depth" msgid "Bit depth"
@@ -1101,7 +1102,7 @@ msgstr "Débit"
msgid "Bitrate" msgid "Bitrate"
msgstr "Débit" msgstr "Débit"
#: organize/organizedialog.cpp:113 #: organize/organizedialog.cpp:116
msgctxt "Refers to bitrate in file organize dialog." msgctxt "Refers to bitrate in file organize dialog."
msgid "Bitrate" msgid "Bitrate"
msgstr "Débit" msgstr "Débit"
@@ -1146,7 +1147,7 @@ msgstr "Tampon"
msgid "Buffer duration" msgid "Buffer duration"
msgstr "Durée du tampon" msgstr "Durée du tampon"
#: engine/gstengine.cpp:630 #: engine/gstengine.cpp:681
msgid "Buffering" msgid "Buffering"
msgstr "Mise en mémoire tampon" msgstr "Mise en mémoire tampon"
@@ -1166,7 +1167,7 @@ msgstr "CDDA"
msgid "Cancel" msgid "Cancel"
msgstr "Annulé" msgstr "Annulé"
#: tidal/tidalstreamurlrequest.cpp:107 qobuz/qobuzstreamurlrequest.cpp:103 #: tidal/tidalstreamurlrequest.cpp:108 qobuz/qobuzstreamurlrequest.cpp:103
msgid "Cancelled." msgid "Cancelled."
msgstr "Annulé." msgstr "Annulé."
@@ -1186,7 +1187,7 @@ msgstr "Changer le morceau en cours de lecture"
msgid "Change the language" msgid "Change the language"
msgstr "Changer la langue" msgstr "Changer la langue"
#: core/mainwindow.cpp:758 #: core/mainwindow.cpp:759
msgid "Check for updates..." msgid "Check for updates..."
msgstr "Vérifier les mises à jour..." msgstr "Vérifier les mises à jour..."
@@ -1237,7 +1238,7 @@ msgstr "Effacer"
msgid "Clear Disk Cache" msgid "Clear Disk Cache"
msgstr "Vider le cache disque" msgstr "Vider le cache disque"
#: core/mainwindow.cpp:2191 ../build/src/ui_mainwindow.h:634 #: core/mainwindow.cpp:2204 ../build/src/ui_mainwindow.h:634
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Vider la liste de lecture" msgstr "Vider la liste de lecture"
@@ -1290,7 +1291,7 @@ msgstr "Fermer cette fenêtre arrêtera la recherche de pochette d'albums."
msgid "Club" msgid "Club"
msgstr "Club" msgstr "Club"
#: core/mainwindow.cpp:337 ../build/src/ui_collectionsettingspage.h:406 #: core/mainwindow.cpp:338 ../build/src/ui_collectionsettingspage.h:406
#: ../build/src/ui_scrobblersettingspage.h:402 #: ../build/src/ui_scrobblersettingspage.h:402
msgid "Collection" msgid "Collection"
msgstr "Bibliothèque" msgstr "Bibliothèque"
@@ -1303,7 +1304,7 @@ msgstr "Filtre de collection"
msgid "Collection advanced grouping" msgid "Collection advanced grouping"
msgstr "Groupement avancé de la bibliothèque" msgstr "Groupement avancé de la bibliothèque"
#: core/mainwindow.cpp:2703 #: core/mainwindow.cpp:2716
msgid "Collection rescan notice" msgid "Collection rescan notice"
msgstr "Avertissement de réanalyse de la bibliothèque" msgstr "Avertissement de réanalyse de la bibliothèque"
@@ -1322,7 +1323,7 @@ msgstr ""
"3" "3"
#: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374 #: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374
#: organize/organizedialog.cpp:111 ../build/src/ui_edittagdialog.h:711 #: organize/organizedialog.cpp:114 ../build/src/ui_edittagdialog.h:711
msgid "Comment" msgid "Comment"
msgstr "Commentaire" msgstr "Commentaire"
@@ -1339,7 +1340,7 @@ msgid "Complete tags automatically..."
msgstr "Compléter les tags automatiquement..." msgstr "Compléter les tags automatiquement..."
#: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272 #: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272
#: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:196 #: organize/organizedialog.cpp:106 ../build/src/ui_groupbydialog.h:196
#: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240 #: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240
#: ../build/src/ui_edittagdialog.h:710 #: ../build/src/ui_edittagdialog.h:710
msgid "Composer" msgid "Composer"
@@ -1366,7 +1367,7 @@ msgstr "Configurer %1..."
msgid "Configure buttons" msgid "Configure buttons"
msgstr "Configurer les boutons" msgstr "Configurer les boutons"
#: core/mainwindow.cpp:638 #: core/mainwindow.cpp:639
msgid "Configure collection..." msgid "Configure collection..."
msgstr "Configurer votre bibliothèque..." msgstr "Configurer votre bibliothèque..."
@@ -1382,7 +1383,7 @@ msgstr "Console"
msgid "Constant bitrate" msgid "Constant bitrate"
msgstr "Débit constant" msgstr "Débit constant"
#: core/mainwindow.cpp:336 ../build/src/ui_contextsettingspage.h:361 #: core/mainwindow.cpp:337 ../build/src/ui_contextsettingspage.h:361
msgid "Context" msgid "Context"
msgstr "Contexte" msgstr "Contexte"
@@ -1404,7 +1405,7 @@ msgstr "Convertir toutes les musiques"
msgid "Convert any music that the device can't play" msgid "Convert any music that the device can't play"
msgstr "Convertir la musique que le périphérique ne peut pas lire" msgstr "Convertir la musique que le périphérique ne peut pas lire"
#: core/mainwindow.cpp:702 #: core/mainwindow.cpp:703
msgid "Copy URL(s)..." msgid "Copy URL(s)..."
msgstr "Copie des URL(s)..." msgstr "Copie des URL(s)..."
@@ -1412,7 +1413,7 @@ msgstr "Copie des URL(s)..."
msgid "Copy album cover artwork" msgid "Copy album cover artwork"
msgstr "Copier la pochette de l'album" msgstr "Copier la pochette de l'album"
#: core/mainwindow.cpp:706 widgets/fileviewlist.cpp:48 #: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:48
#: device/deviceview.cpp:239 #: device/deviceview.cpp:239
msgid "Copy to collection..." msgid "Copy to collection..."
msgstr "Copier vers la bibliothèque..." msgstr "Copier vers la bibliothèque..."
@@ -1421,7 +1422,7 @@ msgstr "Copier vers la bibliothèque..."
msgid "Copy to device" msgid "Copy to device"
msgstr "Copie vers le périphérique" msgstr "Copie vers le périphérique"
#: core/mainwindow.cpp:709 context/contextalbumsview.cpp:262 #: core/mainwindow.cpp:710 context/contextalbumsview.cpp:262
#: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104 #: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104
#: widgets/fileviewlist.cpp:50 #: widgets/fileviewlist.cpp:50
msgid "Copy to device..." msgid "Copy to device..."
@@ -1663,7 +1664,7 @@ msgstr "Supprimer les fichiers"
msgid "Delete from device..." msgid "Delete from device..."
msgstr "Supprimer du périphérique..." msgstr "Supprimer du périphérique..."
#: core/mainwindow.cpp:711 collection/collectionview.cpp:354 #: core/mainwindow.cpp:712 collection/collectionview.cpp:354
#: widgets/fileviewlist.cpp:51 #: widgets/fileviewlist.cpp:51
msgid "Delete from disk..." msgid "Delete from disk..."
msgstr "Supprimer du disque..." msgstr "Supprimer du disque..."
@@ -1685,11 +1686,11 @@ msgstr "Supprimer les fichiers originaux"
msgid "Deleting files" msgid "Deleting files"
msgstr "Suppression des fichiers" msgstr "Suppression des fichiers"
#: core/mainwindow.cpp:1826 #: core/mainwindow.cpp:1839
msgid "Dequeue selected tracks" msgid "Dequeue selected tracks"
msgstr "Enlever les pistes sélectionnées de la file d'attente" msgstr "Enlever les pistes sélectionnées de la file d'attente"
#: core/mainwindow.cpp:1825 #: core/mainwindow.cpp:1838
msgid "Dequeue track" msgid "Dequeue track"
msgstr "Enlever cette piste de la file d'attente" msgstr "Enlever cette piste de la file d'attente"
@@ -1715,7 +1716,7 @@ msgstr "Propriétés du périphérique"
msgid "Device properties..." msgid "Device properties..."
msgstr "Propriétés du périphérique..." msgstr "Propriétés du périphérique..."
#: core/mainwindow.cpp:343 #: core/mainwindow.cpp:344
msgid "Devices" msgid "Devices"
msgstr "Périphériques" msgstr "Périphériques"
@@ -1737,7 +1738,7 @@ msgid "Disabled"
msgstr "Désactivé" msgstr "Désactivé"
#: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266 #: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266
#: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:188 #: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:188
#: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232 #: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232
#: ../build/src/ui_edittagdialog.h:708 #: ../build/src/ui_edittagdialog.h:708
msgid "Disc" msgid "Disc"
@@ -1772,6 +1773,10 @@ msgstr "Ne pas couper l'image"
msgid "Do not overwrite" msgid "Do not overwrite"
msgstr "Ne pas écraser" msgstr "Ne pas écraser"
#: ../build/src/ui_snapdialog.h:120
msgid "Do not show this message again."
msgstr "Ne plus afficher ce message."
#: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110 #: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110
msgid "Don't repeat" msgid "Don't repeat"
msgstr "Ne pas répéter" msgstr "Ne pas répéter"
@@ -1832,7 +1837,7 @@ msgstr "Modifier la liste de lecture intelligente"
msgid "Edit smart playlist..." msgid "Edit smart playlist..."
msgstr "Modifier la liste de lecture intelligente..." msgstr "Modifier la liste de lecture intelligente..."
#: core/mainwindow.cpp:1867 #: core/mainwindow.cpp:1880
#, qt-format #, qt-format
msgid "Edit tag \"%1\"..." msgid "Edit tag \"%1\"..."
msgstr "Modifier le tag « %1 »..." msgstr "Modifier le tag « %1 »..."
@@ -1987,7 +1992,7 @@ msgstr "Equivalent à --log-levels *:1"
msgid "Equivalent to --log-levels *:3" msgid "Equivalent to --log-levels *:3"
msgstr "Equivalent à --log-levels *:3" msgstr "Equivalent à --log-levels *:3"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "Error" msgid "Error"
msgstr "Erreur" msgstr "Erreur"
@@ -2153,7 +2158,7 @@ msgstr "Erreur lors de la récupération de la pochette"
msgid "File %1 is not recognized as a valid audio file." msgid "File %1 is not recognized as a valid audio file."
msgstr "Le fichier %1 n'est pas un fichier audio valide." msgstr "Le fichier %1 n'est pas un fichier audio valide."
#: organize/organizedialog.cpp:116 #: organize/organizedialog.cpp:119
msgid "File extension" msgid "File extension"
msgstr "Extension de fichier" msgstr "Extension de fichier"
@@ -2191,7 +2196,7 @@ msgstr "Nom du fichier"
msgid "Filename:" msgid "Filename:"
msgstr "Nom de fichier :" msgstr "Nom de fichier :"
#: core/mainwindow.cpp:341 #: core/mainwindow.cpp:342
msgid "Files" msgid "Files"
msgstr "Fichiers" msgstr "Fichiers"
@@ -2247,6 +2252,17 @@ msgstr "Police pour le titre"
msgid "Font size" msgid "Font size"
msgstr "Taille de police" msgstr "Taille de police"
#: dialogs/snapdialog.cpp:56
#, qt-format
msgid "For Ubuntu there is an official PPA repository available at %1."
msgstr "Pour Ubuntu, il existe un dépôt PPA officiel disponible sur %1."
#: dialogs/snapdialog.cpp:64
msgid "For a better experience please consider the other options above."
msgstr ""
"Pour améliorer l'expérience de l'utilisateur, veuillez envisager l'une des "
"options ci-dessus."
#: ../build/src/ui_transcoderoptionsmp3.h:203 #: ../build/src/ui_transcoderoptionsmp3.h:203
msgid "Force mono encoding" msgid "Force mono encoding"
msgstr "Forcer lencodage en mono" msgstr "Forcer lencodage en mono"
@@ -2330,7 +2346,7 @@ msgid "Genius Authentication"
msgstr "Authentification Genius" msgstr "Authentification Genius"
#: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270 #: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270
#: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:190 #: organize/organizedialog.cpp:113 ../build/src/ui_groupbydialog.h:190
#: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234 #: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234
#: ../build/src/ui_edittagdialog.h:704 #: ../build/src/ui_edittagdialog.h:704
msgid "Genre" msgid "Genre"
@@ -2429,7 +2445,7 @@ msgid "Group by Genre/Artist/Album"
msgstr "Grouper par Genre/Artiste/Album" msgstr "Grouper par Genre/Artiste/Album"
#: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274 #: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274
#: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:198 #: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:198
#: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242 #: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242
#: ../build/src/ui_edittagdialog.h:706 #: ../build/src/ui_edittagdialog.h:706
msgid "Grouping" msgid "Grouping"
@@ -2616,6 +2632,12 @@ msgstr ""
"C'est un fork de Clementine publié en 2018 destiné aux collectionneurs de " "C'est un fork de Clementine publié en 2018 destiné aux collectionneurs de "
"musique et aux audiophiles." "musique et aux audiophiles."
#: dialogs/snapdialog.cpp:44
msgid "It is detected that Strawberry is running as a Snap"
msgstr ""
"Nous avons détecté que Strawberry est en cours d'exécution en tant que "
"programme Snap."
#: ../build/src/ui_behavioursettingspage.h:302 #: ../build/src/ui_behavioursettingspage.h:302
msgid "Jump to previous song right away" msgid "Jump to previous song right away"
msgstr "Aller tout de suite à la piste précédente" msgstr "Aller tout de suite à la piste précédente"
@@ -2680,7 +2702,7 @@ msgid "Left"
msgstr "Gauche" msgstr "Gauche"
#: context/contextview.cpp:214 playlist/playlist.cpp:1267 #: context/contextview.cpp:214 playlist/playlist.cpp:1267
#: organize/organizedialog.cpp:112 ../build/src/ui_edittagdialog.h:689 #: organize/organizedialog.cpp:115 ../build/src/ui_edittagdialog.h:689
msgid "Length" msgid "Length"
msgstr "Durée" msgstr "Durée"
@@ -2898,7 +2920,7 @@ msgstr "Le nom d'utilisateur ou le mot de passe de Subsonic est manquant."
#: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796 #: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796
#: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918 #: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918
#: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:89 #: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:90
msgid "Missing Tidal API token, username or password." msgid "Missing Tidal API token, username or password."
msgstr "" msgstr ""
"Le jeton de l'API Tidal, le nom d'utilisateur ou le mot de passe est " "Le jeton de l'API Tidal, le nom d'utilisateur ou le mot de passe est "
@@ -2988,7 +3010,7 @@ msgstr "Points de montage"
msgid "Move down" msgid "Move down"
msgstr "Déplacer vers le bas" msgstr "Déplacer vers le bas"
#: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:49 #: core/mainwindow.cpp:708 widgets/fileviewlist.cpp:49
msgid "Move to collection..." msgid "Move to collection..."
msgstr "Déplacer vers la bibliothèque..." msgstr "Déplacer vers la bibliothèque..."
@@ -2997,7 +3019,7 @@ msgstr "Déplacer vers la bibliothèque..."
msgid "Move up" msgid "Move up"
msgstr "Déplacer vers le haut" msgstr "Déplacer vers le haut"
#: core/mainwindow.cpp:2101 transcoder/transcodedialog.cpp:328 #: core/mainwindow.cpp:2114 transcoder/transcodedialog.cpp:328
msgid "Music" msgid "Music"
msgstr "Musique" msgstr "Musique"
@@ -3042,7 +3064,7 @@ msgstr "Ne jamais commencer la lecture"
msgid "New folder" msgid "New folder"
msgstr "Nouveau dossier" msgstr "Nouveau dossier"
#: core/mainwindow.cpp:1925 #: core/mainwindow.cpp:1938
msgid "New playlist" msgid "New playlist"
msgstr "Nouvelle liste de lecture" msgstr "Nouvelle liste de lecture"
@@ -3086,7 +3108,7 @@ msgstr "Aucune pochette à exporter."
msgid "No long blocks" msgid "No long blocks"
msgstr "Aucun bloc long" msgstr "Aucun bloc long"
#: tidal/tidalrequest.cpp:1256 qobuz/qobuzrequest.cpp:1318 #: tidal/tidalrequest.cpp:1253 qobuz/qobuzrequest.cpp:1315
msgid "No match." msgid "No match."
msgstr "Aucune correspondance." msgstr "Aucune correspondance."
@@ -3114,7 +3136,7 @@ msgstr "Aucun morceau en cours de lecture"
msgid "None" msgid "None"
msgstr "Aucun" msgstr "Aucun"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "None of the selected songs were suitable for copying to a device" msgid "None of the selected songs were suitable for copying to a device"
msgstr "" msgstr ""
@@ -3143,7 +3165,7 @@ msgstr ""
#: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791 #: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791
#: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913 #: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913
#: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:85 #: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:86
msgid "Not authenticated with Tidal." msgid "Not authenticated with Tidal."
msgstr "Aucune authentification sur Tidal." msgstr "Aucune authentification sur Tidal."
@@ -3183,6 +3205,16 @@ msgstr "Prévisualisation de l'affichage à l'écran (OSD)"
msgid "Off" msgid "Off"
msgstr "Désactivé" msgstr "Désactivé"
#: dialogs/snapdialog.cpp:60
#, qt-format
msgid ""
"Official releases are available for Debian and Ubuntu which also work on "
"most of their derivatives. See %1 for more information."
msgstr ""
"Des paquetages officiels sont disponibles pour Debian et Ubuntu, et "
"fonctionnent aussi sur la plupart de leurs dérivés. Voir %1 pour plus "
"d'informations."
#: osd/osdbase.cpp:245 #: osd/osdbase.cpp:245
msgid "On" msgid "On"
msgstr "Activé" msgstr "Activé"
@@ -3248,7 +3280,7 @@ msgstr "Opus"
msgid "Organize Files" msgid "Organize Files"
msgstr "Organiser les fichiers" msgstr "Organiser les fichiers"
#: core/mainwindow.cpp:705 context/contextalbumsview.cpp:260 #: core/mainwindow.cpp:706 context/contextalbumsview.cpp:260
#: collection/collectionview.cpp:350 #: collection/collectionview.cpp:350
msgid "Organize files..." msgid "Organize files..."
msgstr "Organisation des fichiers..." msgstr "Organisation des fichiers..."
@@ -3262,7 +3294,7 @@ msgid "Original tags"
msgstr "Tags originaux" msgstr "Tags originaux"
#: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269 #: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269
#: organize/organizedialog.cpp:109 ../build/src/ui_groupbydialog.h:194 #: organize/organizedialog.cpp:112 ../build/src/ui_groupbydialog.h:194
#: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238 #: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238
msgid "Original year" msgid "Original year"
msgstr "Année d'origine" msgstr "Année d'origine"
@@ -3321,7 +3353,7 @@ msgstr "Soirée"
msgid "Password" msgid "Password"
msgstr "Mot de passe" msgstr "Mot de passe"
#: core/mainwindow.cpp:1247 core/mainwindow.cpp:1721 #: core/mainwindow.cpp:1260 core/mainwindow.cpp:1734
#: core/qtsystemtrayicon.cpp:190 #: core/qtsystemtrayicon.cpp:190
msgid "Pause" msgid "Pause"
msgstr "Pause" msgstr "Pause"
@@ -3335,7 +3367,7 @@ msgid "Paused"
msgstr "En pause" msgstr "En pause"
#: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273 #: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273
#: organize/organizedialog.cpp:104 ../build/src/ui_groupbydialog.h:197 #: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:197
#: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241 #: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241
#: ../build/src/ui_edittagdialog.h:715 #: ../build/src/ui_edittagdialog.h:715
msgid "Performer" msgid "Performer"
@@ -3349,8 +3381,8 @@ msgstr "Pixel"
msgid "Plain sidebar" msgid "Plain sidebar"
msgstr "Barre latérale simple" msgstr "Barre latérale simple"
#: core/mainwindow.cpp:674 core/mainwindow.cpp:1200 core/mainwindow.cpp:1229 #: core/mainwindow.cpp:675 core/mainwindow.cpp:1213 core/mainwindow.cpp:1242
#: core/mainwindow.cpp:1725 core/qtsystemtrayicon.cpp:177 #: core/mainwindow.cpp:1738 core/qtsystemtrayicon.cpp:177
#: core/qtsystemtrayicon.cpp:202 #: core/qtsystemtrayicon.cpp:202
msgid "Play" msgid "Play"
msgstr "Lecture" msgstr "Lecture"
@@ -3415,7 +3447,7 @@ msgstr "Boutons de liste de lecture"
msgid "Playlist finished" msgid "Playlist finished"
msgstr "Liste de lecture terminée" msgstr "Liste de lecture terminée"
#: core/mainwindow.cpp:2191 #: core/mainwindow.cpp:2204
#, qt-format #, qt-format
msgid "" msgid ""
"Playlist has %1 songs, too large to undo, are you sure you want to clear the " "Playlist has %1 songs, too large to undo, are you sure you want to clear the "
@@ -3437,7 +3469,7 @@ msgstr "Options de la liste de lecture"
msgid "Playlist type" msgid "Playlist type"
msgstr "Type de liste de lecture" msgstr "Type de liste de lecture"
#: core/mainwindow.cpp:339 #: core/mainwindow.cpp:340
msgid "Playlists" msgid "Playlists"
msgstr "Listes de lecture" msgstr "Listes de lecture"
@@ -3562,7 +3594,7 @@ msgstr "Progression"
msgid "Put songs in a random order" msgid "Put songs in a random order"
msgstr "Placer les morceaux dans un ordre aléatoire" msgstr "Placer les morceaux dans un ordre aléatoire"
#: core/mainwindow.cpp:352 ../build/src/ui_scrobblersettingspage.h:409 #: core/mainwindow.cpp:353 ../build/src/ui_scrobblersettingspage.h:409
#: ../build/src/ui_qobuzsettingspage.h:270 #: ../build/src/ui_qobuzsettingspage.h:270
msgid "Qobuz" msgid "Qobuz"
msgstr "Qobuz" msgstr "Qobuz"
@@ -3588,26 +3620,26 @@ msgstr "Qualité"
msgid "Querying device..." msgid "Querying device..."
msgstr "Requête du périphérique..." msgstr "Requête du périphérique..."
#: core/mainwindow.cpp:338 #: core/mainwindow.cpp:339
msgid "Queue" msgid "Queue"
msgstr "Liste d'attente" msgstr "Liste d'attente"
#: core/mainwindow.cpp:1828 #: core/mainwindow.cpp:1841
msgid "Queue selected tracks" msgid "Queue selected tracks"
msgstr "Mettre les pistes sélectionnées en liste d'attente" msgstr "Mettre les pistes sélectionnées en liste d'attente"
#: core/mainwindow.cpp:680 core/mainwindow.cpp:1832 #: core/mainwindow.cpp:681 core/mainwindow.cpp:1845
msgid "Queue selected tracks to play next" msgid "Queue selected tracks to play next"
msgstr "" msgstr ""
"Mettre les pistes sélectionnées en liste d'attente pour une lecture " "Mettre les pistes sélectionnées en liste d'attente pour une lecture "
"ultérieure" "ultérieure"
#: core/mainwindow.cpp:1834 collection/collectionview.cpp:347 #: core/mainwindow.cpp:1847 collection/collectionview.cpp:347
#: internet/internetcollectionview.cpp:317 #: internet/internetcollectionview.cpp:317
msgid "Queue to play next" msgid "Queue to play next"
msgstr "Mettre en liste d'attente pour une lecture ultérieure" msgstr "Mettre en liste d'attente pour une lecture ultérieure"
#: core/mainwindow.cpp:1827 context/contextalbumsview.cpp:257 #: core/mainwindow.cpp:1840 context/contextalbumsview.cpp:257
#: collection/collectionview.cpp:346 #: collection/collectionview.cpp:346
#: smartplaylists/smartplaylistsviewcontainer.cpp:75 #: smartplaylists/smartplaylistsviewcontainer.cpp:75
#: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316 #: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316
@@ -3806,7 +3838,7 @@ msgstr "Rafraîchir"
msgid "Rescan song(s)" msgid "Rescan song(s)"
msgstr "Réanalyser le morceau" msgstr "Réanalyser le morceau"
#: core/mainwindow.cpp:696 #: core/mainwindow.cpp:697
msgid "Rescan song(s)..." msgid "Rescan song(s)..."
msgstr "Réanalyse des morceaux..." msgstr "Réanalyse des morceaux..."
@@ -3814,7 +3846,7 @@ msgstr "Réanalyse des morceaux..."
msgid "Reset" msgid "Reset"
msgstr "Réinitialiser" msgstr "Réinitialiser"
#: dialogs/edittagdialog.cpp:869 ../build/src/ui_edittagdialog.h:688 #: dialogs/edittagdialog.cpp:872 ../build/src/ui_edittagdialog.h:688
msgid "Reset play counts" msgid "Reset play counts"
msgstr "Réinitialiser le compteur de lecture" msgstr "Réinitialiser le compteur de lecture"
@@ -3921,7 +3953,7 @@ msgid "Safely remove the device after copying"
msgstr "Enlever le périphérique en toute sécurité à la fin de la copie" msgstr "Enlever le périphérique en toute sécurité à la fin de la copie"
#: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280 #: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280
#: organize/organizedialog.cpp:114 ../build/src/ui_groupbydialog.h:200 #: organize/organizedialog.cpp:117 ../build/src/ui_groupbydialog.h:200
#: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244 #: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244
#: ../build/src/ui_edittagdialog.h:694 #: ../build/src/ui_edittagdialog.h:694
msgid "Sample rate" msgid "Sample rate"
@@ -3981,7 +4013,7 @@ msgstr "Gestionnaire des regroupements enregistrés"
msgid "Saving album covers" msgid "Saving album covers"
msgstr "Sauvegarde des pochettes d'album" msgstr "Sauvegarde des pochettes d'album"
#: dialogs/edittagdialog.cpp:784 dialogs/trackselectiondialog.cpp:291 #: dialogs/edittagdialog.cpp:787 dialogs/trackselectiondialog.cpp:291
msgid "Saving tracks" msgid "Saving tracks"
msgstr "Sauvegarde des pistes" msgstr "Sauvegarde des pistes"
@@ -4114,7 +4146,7 @@ msgstr "L'URL du serveur est invalide."
msgid "Server-side scrobbling" msgid "Server-side scrobbling"
msgstr "Scrobbling côté serveur" msgstr "Scrobbling côté serveur"
#: core/mainwindow.cpp:1866 #: core/mainwindow.cpp:1879
#, qt-format #, qt-format
msgid "Set %1 to \"%2\"..." msgid "Set %1 to \"%2\"..."
msgstr "Définir %1 à la valeur « %2»..." msgstr "Définir %1 à la valeur « %2»..."
@@ -4202,7 +4234,7 @@ msgstr "Afficher la pochette de l'album dans la bibliothèque"
msgid "Show albums by artist" msgid "Show albums by artist"
msgstr "Afficher les albums par artiste" msgstr "Afficher les albums par artiste"
#: core/mainwindow.cpp:627 #: core/mainwindow.cpp:628
msgid "Show all songs" msgid "Show all songs"
msgstr "Afficher tous les morceaux" msgstr "Afficher tous les morceaux"
@@ -4226,7 +4258,7 @@ msgstr "Afficher le moteur et le périphérique"
msgid "Show fullsize..." msgid "Show fullsize..."
msgstr "Afficher en taille réelle..." msgstr "Afficher en taille réelle..."
#: core/mainwindow.cpp:703 #: core/mainwindow.cpp:704
msgid "Show in collection..." msgid "Show in collection..."
msgstr "Afficher dans la bibliothèque..." msgstr "Afficher dans la bibliothèque..."
@@ -4234,7 +4266,7 @@ msgstr "Afficher dans la bibliothèque..."
msgid "Show in file browser" msgid "Show in file browser"
msgstr "Afficher dans l'explorateur de fichiers" msgstr "Afficher dans l'explorateur de fichiers"
#: core/mainwindow.cpp:704 context/contextalbumsview.cpp:268 #: core/mainwindow.cpp:705 context/contextalbumsview.cpp:268
#: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55 #: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55
msgid "Show in file browser..." msgid "Show in file browser..."
msgstr "Afficher dans le navigateur de fichiers..." msgstr "Afficher dans le navigateur de fichiers..."
@@ -4251,11 +4283,11 @@ msgstr "Afficher le bouton J'aime"
msgid "Show moodbar" msgid "Show moodbar"
msgstr "Afficher la barre d'humeur" msgstr "Afficher la barre d'humeur"
#: core/mainwindow.cpp:628 #: core/mainwindow.cpp:629
msgid "Show only duplicates" msgid "Show only duplicates"
msgstr "Afficher uniquement les doublons" msgstr "Afficher uniquement les doublons"
#: core/mainwindow.cpp:629 #: core/mainwindow.cpp:630
msgid "Show only untagged" msgid "Show only untagged"
msgstr "Afficher uniquement les morceaux sans tag" msgstr "Afficher uniquement les morceaux sans tag"
@@ -4344,11 +4376,11 @@ msgstr "Compteur de morceaux sautés"
msgid "Skip forwards in playlist" msgid "Skip forwards in playlist"
msgstr "Lire la piste suivante" msgstr "Lire la piste suivante"
#: core/mainwindow.cpp:1839 #: core/mainwindow.cpp:1852
msgid "Skip selected tracks" msgid "Skip selected tracks"
msgstr "Passer les pistes sélectionnées" msgstr "Passer les pistes sélectionnées"
#: core/mainwindow.cpp:1838 #: core/mainwindow.cpp:1851
msgid "Skip track" msgid "Skip track"
msgstr "Passer la piste" msgstr "Passer la piste"
@@ -4364,7 +4396,7 @@ msgstr "Petite barre latérale"
msgid "Smart playlist" msgid "Smart playlist"
msgstr "Liste de lecture intelligente" msgstr "Liste de lecture intelligente"
#: core/mainwindow.cpp:340 #: core/mainwindow.cpp:341
msgid "Smart playlists" msgid "Smart playlists"
msgstr "Listes de lecture intelligentes" msgstr "Listes de lecture intelligentes"
@@ -4448,7 +4480,7 @@ msgstr "Arrêter la lecture après chaque piste"
msgid "Stop after every track" msgid "Stop after every track"
msgstr "Arrêter la lecture après chaque piste" msgstr "Arrêter la lecture après chaque piste"
#: core/mainwindow.cpp:676 ../build/src/ui_mainwindow.h:627 #: core/mainwindow.cpp:677 ../build/src/ui_mainwindow.h:627
msgid "Stop after this track" msgid "Stop after this track"
msgstr "Arrêter la lecture après cette piste" msgstr "Arrêter la lecture après cette piste"
@@ -4511,6 +4543,25 @@ msgstr ""
"Strawberry est un logiciel libre sous les termes de la licence GPL. Le code " "Strawberry est un logiciel libre sous les termes de la licence GPL. Le code "
"source est disponible sur %1" "source est disponible sur %1"
#: dialogs/snapdialog.cpp:40
msgid "Strawberry is running as a Snap"
msgstr "Strawberry est en cours d'exécution en tant que programme Snap"
#: ../build/src/ui_snapdialog.h:117
msgid "Strawberry is running as a snap"
msgstr "Strawberry est en cours d'exécution en tant que programme Snap"
#: dialogs/snapdialog.cpp:48
msgid ""
"Strawberry is slower, and has restrictions when running as a Snap. Accessing "
"the root filesystem (/) will not work. There also might be other "
"restrictions such as accessing certain devices or network shares."
msgstr ""
"Strawberry est plus lent, et comporte des restrictions, lorsqu'il est "
"exécuté en tant que programme Snap. Il sera impossible d'accéder à la "
"partition root (/). D'autres restrictions peuvent survenir, comme "
"l'incapacité à accéder à certains périphériques ou à des partages réseaux."
#: ../build/src/ui_trackselectiondialog.h:205 #: ../build/src/ui_trackselectiondialog.h:205
msgid "Strawberry was unable to find results for this file" msgid "Strawberry was unable to find results for this file"
msgstr "Strawberry n'a pu trouver aucun résultat pour ce fichier" msgstr "Strawberry n'a pu trouver aucun résultat pour ce fichier"
@@ -4535,7 +4586,7 @@ msgstr "Étirer l'image pour remplir la liste de lecture"
msgid "Submit scrobbles every" msgid "Submit scrobbles every"
msgstr "Soumettre des scrobbles tous les" msgstr "Soumettre des scrobbles tous les"
#: core/mainwindow.cpp:346 ../build/src/ui_scrobblersettingspage.h:407 #: core/mainwindow.cpp:347 ../build/src/ui_scrobblersettingspage.h:407
#: ../build/src/ui_subsonicsettingspage.h:188 #: ../build/src/ui_subsonicsettingspage.h:188
msgid "Subsonic" msgid "Subsonic"
msgstr "Subsonic" msgstr "Subsonic"
@@ -4661,7 +4712,7 @@ msgstr "Le site demandé n'existe pas !"
msgid "The site you requested is not an image!" msgid "The site you requested is not an image!"
msgstr "Le site demandé n'est pas une image !" msgstr "Le site demandé n'est pas une image !"
#: core/mainwindow.cpp:2698 #: core/mainwindow.cpp:2711
msgid "" msgid ""
"The version of Strawberry you've just updated to requires a full collection " "The version of Strawberry you've just updated to requires a full collection "
"rescan because of the new features listed below:" "rescan because of the new features listed below:"
@@ -4771,7 +4822,7 @@ msgstr ""
msgid "This type of device is not supported: %1" msgid "This type of device is not supported: %1"
msgstr "Ce type de périphérique n'est pas supporté : %1" msgstr "Ce type de périphérique n'est pas supporté : %1"
#: core/mainwindow.cpp:349 ../build/src/ui_scrobblersettingspage.h:408 #: core/mainwindow.cpp:350 ../build/src/ui_scrobblersettingspage.h:408
#: ../build/src/ui_tidalsettingspage.h:312 #: ../build/src/ui_tidalsettingspage.h:312
msgid "Tidal" msgid "Tidal"
msgstr "Tidal" msgstr "Tidal"
@@ -4789,7 +4840,7 @@ msgstr ""
msgid "Time step" msgid "Time step"
msgstr "Pas temporel" msgstr "Pas temporel"
#: playlist/playlist.cpp:1262 organize/organizedialog.cpp:98 #: playlist/playlist.cpp:1262 organize/organizedialog.cpp:101
#: ../build/src/ui_contextsettingspage.h:414 #: ../build/src/ui_contextsettingspage.h:414
#: ../build/src/ui_edittagdialog.h:705 #: ../build/src/ui_edittagdialog.h:705
#: ../build/src/ui_trackselectiondialog.h:210 #: ../build/src/ui_trackselectiondialog.h:210
@@ -4800,7 +4851,7 @@ msgstr "Titre"
msgid "Today" msgid "Today"
msgstr "Aujourd'hui" msgstr "Aujourd'hui"
#: core/mainwindow.cpp:677 core/mainwindow.cpp:1829 #: core/mainwindow.cpp:678 core/mainwindow.cpp:1842
msgid "Toggle queue status" msgid "Toggle queue status"
msgstr "Basculer l'état de la file d'attente" msgstr "Basculer l'état de la file d'attente"
@@ -4808,7 +4859,7 @@ msgstr "Basculer l'état de la file d'attente"
msgid "Toggle scrobbling" msgid "Toggle scrobbling"
msgstr "Basculer le scrobbling" msgstr "Basculer le scrobbling"
#: core/mainwindow.cpp:683 core/mainwindow.cpp:1840 #: core/mainwindow.cpp:684 core/mainwindow.cpp:1853
msgid "Toggle skip status" msgid "Toggle skip status"
msgstr "Basculer le saut du statut" msgstr "Basculer le saut du statut"
@@ -4836,7 +4887,7 @@ msgstr "Nombre total d'octets transférés"
msgid "Total network requests made" msgid "Total network requests made"
msgstr "Nombre total de requêtes réseau effectuées" msgstr "Nombre total de requêtes réseau effectuées"
#: playlist/playlist.cpp:1265 organize/organizedialog.cpp:106 #: playlist/playlist.cpp:1265 organize/organizedialog.cpp:109
#: ../build/src/ui_edittagdialog.h:712 #: ../build/src/ui_edittagdialog.h:712
#: ../build/src/ui_trackselectiondialog.h:212 #: ../build/src/ui_trackselectiondialog.h:212
msgid "Track" msgid "Track"
@@ -4894,8 +4945,8 @@ msgstr "Très large bande (UWB)"
msgid "Unknown" msgid "Unknown"
msgstr "Inconnu" msgstr "Inconnu"
#: subsonic/subsonicrequest.cpp:858 tidal/tidalrequest.cpp:1262 #: subsonic/subsonicrequest.cpp:864 tidal/tidalrequest.cpp:1259
#: qobuz/qobuzrequest.cpp:1324 #: qobuz/qobuzrequest.cpp:1321
msgid "Unknown error" msgid "Unknown error"
msgstr "Erreur inconnue" msgstr "Erreur inconnue"
@@ -4903,11 +4954,11 @@ msgstr "Erreur inconnue"
msgid "Unset cover" msgid "Unset cover"
msgstr "Enlever cette pochette" msgstr "Enlever cette pochette"
#: core/mainwindow.cpp:1837 #: core/mainwindow.cpp:1850
msgid "Unskip selected tracks" msgid "Unskip selected tracks"
msgstr "Ne pas passer les pistes sélectionnées" msgstr "Ne pas passer les pistes sélectionnées"
#: core/mainwindow.cpp:1836 #: core/mainwindow.cpp:1849
msgid "Unskip track" msgid "Unskip track"
msgstr "Ne pas passer la piste" msgstr "Ne pas passer la piste"
@@ -5150,7 +5201,7 @@ msgstr ""
"Souhaitez-vous également déplacer les autres morceaux de cet album vers " "Souhaitez-vous également déplacer les autres morceaux de cet album vers "
"Compilations d'artistes ?" "Compilations d'artistes ?"
#: core/mainwindow.cpp:2702 #: core/mainwindow.cpp:2715
msgid "Would you like to run a full rescan right now?" msgid "Would you like to run a full rescan right now?"
msgstr "" msgstr ""
"Souhaitez-vous effectuer une nouvelle analyse complète de la bibliothèque " "Souhaitez-vous effectuer une nouvelle analyse complète de la bibliothèque "
@@ -5161,7 +5212,7 @@ msgid "Write metadata when saving playlists"
msgstr "Écrire des métadonnées lors de la sauvegarde des listes de lecture" msgstr "Écrire des métadonnées lors de la sauvegarde des listes de lecture"
#: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268 #: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268
#: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:191 #: organize/organizedialog.cpp:111 ../build/src/ui_groupbydialog.h:191
#: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235 #: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235
#: ../build/src/ui_edittagdialog.h:714 #: ../build/src/ui_edittagdialog.h:714
#: ../build/src/ui_trackselectiondialog.h:211 #: ../build/src/ui_trackselectiondialog.h:211
@@ -5412,7 +5463,7 @@ msgstr "pas en dernier"
#: smartplaylists/smartplaylistsearchterm.cpp:243 #: smartplaylists/smartplaylistsearchterm.cpp:243
msgid "not on" msgid "not on"
msgstr "" msgstr "non allumé"
#: smartplaylists/smartplaylistsearchterm.cpp:414 #: smartplaylists/smartplaylistsearchterm.cpp:414
msgid "oldest first" msgid "oldest first"
@@ -5420,7 +5471,7 @@ msgstr "le plus ancien en premier"
#: smartplaylists/smartplaylistsearchterm.cpp:241 #: smartplaylists/smartplaylistsearchterm.cpp:241
msgid "on" msgid "on"
msgstr "" msgstr "allumé"
#: core/commandlineoptions.cpp:162 #: core/commandlineoptions.cpp:162
msgid "options" msgid "options"

View File

@@ -562,7 +562,7 @@ msgstr "Minden szám hozzáadása a mappából és almappáiból"
msgid "Add directory..." msgid "Add directory..."
msgstr "Mappa hozzáadása" msgstr "Mappa hozzáadása"
#: core/mainwindow.cpp:2101 #: core/mainwindow.cpp:2114
msgid "Add file" msgid "Add file"
msgstr "Fájl hozzáadása" msgstr "Fájl hozzáadása"
@@ -578,7 +578,7 @@ msgstr "Fájl(ok) hozzáadása az átkódoláshoz"
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Fájlok felvétele átkódoláshoz" msgstr "Fájlok felvétele átkódoláshoz"
#: core/mainwindow.cpp:2126 transcoder/transcodedialog.cpp:419 #: core/mainwindow.cpp:2139 transcoder/transcodedialog.cpp:419
msgid "Add folder" msgid "Add folder"
msgstr "Mappa hozzáadása" msgstr "Mappa hozzáadása"
@@ -682,7 +682,7 @@ msgstr "Stream hozzáadása..."
msgid "Add to albums" msgid "Add to albums"
msgstr "Hozzáadás albumokhoz" msgstr "Hozzáadás albumokhoz"
#: core/mainwindow.cpp:1909 #: core/mainwindow.cpp:1922
msgid "Add to another playlist" msgid "Add to another playlist"
msgstr "Hozzáadás másik lejátszólistához" msgstr "Hozzáadás másik lejátszólistához"
@@ -741,7 +741,7 @@ msgid "Albu&m cover"
msgstr "&Albumborító" msgstr "&Albumborító"
#: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264 #: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264
#: organize/organizedialog.cpp:99 ../build/src/ui_groupbydialog.h:186 #: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:186
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230 #: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
#: ../build/src/ui_albumcoversearcher.h:110 #: ../build/src/ui_albumcoversearcher.h:110
#: ../build/src/ui_albumcoversearcher.h:112 #: ../build/src/ui_albumcoversearcher.h:112
@@ -761,7 +761,7 @@ msgid "Album - Disc"
msgstr "Album - Lemez" msgstr "Album - Lemez"
#: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271 #: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271
#: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:185 #: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:185
#: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229 #: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229
#: ../build/src/ui_edittagdialog.h:709 #: ../build/src/ui_edittagdialog.h:709
msgid "Album artist" msgid "Album artist"
@@ -801,7 +801,7 @@ msgstr "Albumok borítóval"
msgid "Albums without covers" msgid "Albums without covers"
msgstr "Albumok borító nélkül" msgstr "Albumok borító nélkül"
#: core/mainwindow.cpp:208 #: core/mainwindow.cpp:209
msgid "All Files (*)" msgid "All Files (*)"
msgstr "Minden fájl (*)" msgstr "Minden fájl (*)"
@@ -847,7 +847,7 @@ msgstr "Mindig indítsa a lejátszást"
msgid "An error occurred loading the iTunes database" msgid "An error occurred loading the iTunes database"
msgstr "Hiba történt az iTunes adatbázis betöltése közben" msgstr "Hiba történt az iTunes adatbázis betöltése közben"
#: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:953 #: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:956
#, qt-format #, qt-format
msgid "An error occurred writing metadata to '%1'" msgid "An error occurred writing metadata to '%1'"
msgstr "Hiba történt '%1' metaadatainak írása közben" msgstr "Hiba történt '%1' metaadatainak írása közben"
@@ -896,12 +896,12 @@ msgstr "Biztos folytatni szeretné?"
msgid "Are you sure you want to delete the \"%1\" preset?" msgid "Are you sure you want to delete the \"%1\" preset?"
msgstr "Biztos benne, hogy törli a \"%1\" beállítást?" msgstr "Biztos benne, hogy törli a \"%1\" beállítást?"
#: dialogs/edittagdialog.cpp:869 #: dialogs/edittagdialog.cpp:872
msgid "Are you sure you want to reset this song's statistics?" msgid "Are you sure you want to reset this song's statistics?"
msgstr "Biztos benne, hogy visszaállítja ennek a dalnak a statisztikáit?" msgstr "Biztos benne, hogy visszaállítja ennek a dalnak a statisztikáit?"
#: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263 #: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263
#: organize/organizedialog.cpp:100 ../build/src/ui_groupbydialog.h:184 #: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:184
#: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228 #: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228
#: ../build/src/ui_albumcoversearcher.h:106 #: ../build/src/ui_albumcoversearcher.h:106
#: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713 #: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713
@@ -909,7 +909,7 @@ msgstr "Biztos benne, hogy visszaállítja ennek a dalnak a statisztikáit?"
msgid "Artist" msgid "Artist"
msgstr "Előadó" msgstr "Előadó"
#: organize/organizedialog.cpp:101 #: organize/organizedialog.cpp:104
msgid "Artist's initial" msgid "Artist's initial"
msgstr "Előadó kezdése" msgstr "Előadó kezdése"
@@ -1045,7 +1045,7 @@ msgid "Best"
msgstr "Legjobb" msgstr "Legjobb"
#: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136 #: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136
#: playlist/playlist.cpp:1281 organize/organizedialog.cpp:115 #: playlist/playlist.cpp:1281 organize/organizedialog.cpp:118
#: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223 #: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223
#: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695 #: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695
msgid "Bit depth" msgid "Bit depth"
@@ -1066,7 +1066,7 @@ msgstr "Bitráta"
msgid "Bitrate" msgid "Bitrate"
msgstr "Bitráta" msgstr "Bitráta"
#: organize/organizedialog.cpp:113 #: organize/organizedialog.cpp:116
msgctxt "Refers to bitrate in file organize dialog." msgctxt "Refers to bitrate in file organize dialog."
msgid "Bitrate" msgid "Bitrate"
msgstr "Bitráta" msgstr "Bitráta"
@@ -1111,7 +1111,7 @@ msgstr "Puffer"
msgid "Buffer duration" msgid "Buffer duration"
msgstr "Puffer hossza" msgstr "Puffer hossza"
#: engine/gstengine.cpp:630 #: engine/gstengine.cpp:681
msgid "Buffering" msgid "Buffering"
msgstr "Pufferelés" msgstr "Pufferelés"
@@ -1131,7 +1131,7 @@ msgstr "CDDA"
msgid "Cancel" msgid "Cancel"
msgstr "Mégse" msgstr "Mégse"
#: tidal/tidalstreamurlrequest.cpp:107 qobuz/qobuzstreamurlrequest.cpp:103 #: tidal/tidalstreamurlrequest.cpp:108 qobuz/qobuzstreamurlrequest.cpp:103
msgid "Cancelled." msgid "Cancelled."
msgstr "Bezárva." msgstr "Bezárva."
@@ -1151,7 +1151,7 @@ msgstr "Váltás a legutóbb játszott dalra"
msgid "Change the language" msgid "Change the language"
msgstr "Nyelv váltása" msgstr "Nyelv váltása"
#: core/mainwindow.cpp:758 #: core/mainwindow.cpp:759
msgid "Check for updates..." msgid "Check for updates..."
msgstr "Frissítés keresése..." msgstr "Frissítés keresése..."
@@ -1202,7 +1202,7 @@ msgstr "Ürítés"
msgid "Clear Disk Cache" msgid "Clear Disk Cache"
msgstr "Lemezgyorsítótár törlése" msgstr "Lemezgyorsítótár törlése"
#: core/mainwindow.cpp:2191 ../build/src/ui_mainwindow.h:634 #: core/mainwindow.cpp:2204 ../build/src/ui_mainwindow.h:634
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Lejátszólista törlése" msgstr "Lejátszólista törlése"
@@ -1255,7 +1255,7 @@ msgstr "Ezen ablak bezárása megszakítja az albumborítók keresését."
msgid "Club" msgid "Club"
msgstr "Club" msgstr "Club"
#: core/mainwindow.cpp:337 ../build/src/ui_collectionsettingspage.h:406 #: core/mainwindow.cpp:338 ../build/src/ui_collectionsettingspage.h:406
#: ../build/src/ui_scrobblersettingspage.h:402 #: ../build/src/ui_scrobblersettingspage.h:402
msgid "Collection" msgid "Collection"
msgstr "Gyűjtemény" msgstr "Gyűjtemény"
@@ -1268,7 +1268,7 @@ msgstr "Gyűjtemény szűrő"
msgid "Collection advanced grouping" msgid "Collection advanced grouping"
msgstr "Gyűjtemény egyedi csoportosítása" msgstr "Gyűjtemény egyedi csoportosítása"
#: core/mainwindow.cpp:2703 #: core/mainwindow.cpp:2716
msgid "Collection rescan notice" msgid "Collection rescan notice"
msgstr "Gyűjtemény újraolvasási figyelmeztetés" msgstr "Gyűjtemény újraolvasási figyelmeztetés"
@@ -1287,7 +1287,7 @@ msgstr ""
"értékeket vehetnek fel" "értékeket vehetnek fel"
#: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374 #: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374
#: organize/organizedialog.cpp:111 ../build/src/ui_edittagdialog.h:711 #: organize/organizedialog.cpp:114 ../build/src/ui_edittagdialog.h:711
msgid "Comment" msgid "Comment"
msgstr "Megjegyzés" msgstr "Megjegyzés"
@@ -1304,7 +1304,7 @@ msgid "Complete tags automatically..."
msgstr "Címkék automatikus kiegészítése" msgstr "Címkék automatikus kiegészítése"
#: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272 #: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272
#: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:196 #: organize/organizedialog.cpp:106 ../build/src/ui_groupbydialog.h:196
#: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240 #: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240
#: ../build/src/ui_edittagdialog.h:710 #: ../build/src/ui_edittagdialog.h:710
msgid "Composer" msgid "Composer"
@@ -1331,7 +1331,7 @@ msgstr "%1 beállítása..."
msgid "Configure buttons" msgid "Configure buttons"
msgstr "Gombok beállítása" msgstr "Gombok beállítása"
#: core/mainwindow.cpp:638 #: core/mainwindow.cpp:639
msgid "Configure collection..." msgid "Configure collection..."
msgstr "Gyűjtemény beállítása..." msgstr "Gyűjtemény beállítása..."
@@ -1347,7 +1347,7 @@ msgstr "Konzol"
msgid "Constant bitrate" msgid "Constant bitrate"
msgstr "Állandó bitráta" msgstr "Állandó bitráta"
#: core/mainwindow.cpp:336 ../build/src/ui_contextsettingspage.h:361 #: core/mainwindow.cpp:337 ../build/src/ui_contextsettingspage.h:361
msgid "Context" msgid "Context"
msgstr "Adatok" msgstr "Adatok"
@@ -1368,7 +1368,7 @@ msgstr "Összes zene konvertálása"
msgid "Convert any music that the device can't play" msgid "Convert any music that the device can't play"
msgstr "Az eszköz által nem támogatott zenék konvertálása" msgstr "Az eszköz által nem támogatott zenék konvertálása"
#: core/mainwindow.cpp:702 #: core/mainwindow.cpp:703
msgid "Copy URL(s)..." msgid "Copy URL(s)..."
msgstr "URL(-ek) másolása" msgstr "URL(-ek) másolása"
@@ -1376,7 +1376,7 @@ msgstr "URL(-ek) másolása"
msgid "Copy album cover artwork" msgid "Copy album cover artwork"
msgstr "Albumborító másolása" msgstr "Albumborító másolása"
#: core/mainwindow.cpp:706 widgets/fileviewlist.cpp:48 #: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:48
#: device/deviceview.cpp:239 #: device/deviceview.cpp:239
msgid "Copy to collection..." msgid "Copy to collection..."
msgstr "Másolás a gyűjteménybe..." msgstr "Másolás a gyűjteménybe..."
@@ -1385,7 +1385,7 @@ msgstr "Másolás a gyűjteménybe..."
msgid "Copy to device" msgid "Copy to device"
msgstr "Másolás eszközre" msgstr "Másolás eszközre"
#: core/mainwindow.cpp:709 context/contextalbumsview.cpp:262 #: core/mainwindow.cpp:710 context/contextalbumsview.cpp:262
#: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104 #: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104
#: widgets/fileviewlist.cpp:50 #: widgets/fileviewlist.cpp:50
msgid "Copy to device..." msgid "Copy to device..."
@@ -1627,7 +1627,7 @@ msgstr "Fájlok törlése"
msgid "Delete from device..." msgid "Delete from device..."
msgstr "Törlés az eszközről..." msgstr "Törlés az eszközről..."
#: core/mainwindow.cpp:711 collection/collectionview.cpp:354 #: core/mainwindow.cpp:712 collection/collectionview.cpp:354
#: widgets/fileviewlist.cpp:51 #: widgets/fileviewlist.cpp:51
msgid "Delete from disk..." msgid "Delete from disk..."
msgstr "Törlés a lemezről..." msgstr "Törlés a lemezről..."
@@ -1649,11 +1649,11 @@ msgstr "Az eredeti fájlok törlése"
msgid "Deleting files" msgid "Deleting files"
msgstr "Fájlok törlése" msgstr "Fájlok törlése"
#: core/mainwindow.cpp:1826 #: core/mainwindow.cpp:1839
msgid "Dequeue selected tracks" msgid "Dequeue selected tracks"
msgstr "Kijelölt számok eltávolítása a lejátszási sorból" msgstr "Kijelölt számok eltávolítása a lejátszási sorból"
#: core/mainwindow.cpp:1825 #: core/mainwindow.cpp:1838
msgid "Dequeue track" msgid "Dequeue track"
msgstr "Szám eltávolítása a lejátszási sorból" msgstr "Szám eltávolítása a lejátszási sorból"
@@ -1679,7 +1679,7 @@ msgstr "Eszköztulajdonságok"
msgid "Device properties..." msgid "Device properties..."
msgstr "Eszköztulajdonságok..." msgstr "Eszköztulajdonságok..."
#: core/mainwindow.cpp:343 #: core/mainwindow.cpp:344
msgid "Devices" msgid "Devices"
msgstr "Eszközök" msgstr "Eszközök"
@@ -1701,7 +1701,7 @@ msgid "Disabled"
msgstr "Letiltva" msgstr "Letiltva"
#: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266 #: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266
#: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:188 #: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:188
#: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232 #: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232
#: ../build/src/ui_edittagdialog.h:708 #: ../build/src/ui_edittagdialog.h:708
msgid "Disc" msgid "Disc"
@@ -1736,6 +1736,10 @@ msgstr "Ne legyen levágva a képből"
msgid "Do not overwrite" msgid "Do not overwrite"
msgstr "Ne írja felül" msgstr "Ne írja felül"
#: ../build/src/ui_snapdialog.h:120
msgid "Do not show this message again."
msgstr ""
#: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110 #: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110
msgid "Don't repeat" msgid "Don't repeat"
msgstr "Nincs ismétlés" msgstr "Nincs ismétlés"
@@ -1794,7 +1798,7 @@ msgstr "Okos lejátszólista szerkesztése"
msgid "Edit smart playlist..." msgid "Edit smart playlist..."
msgstr "Okos lejátszólista szerkesztése..." msgstr "Okos lejátszólista szerkesztése..."
#: core/mainwindow.cpp:1867 #: core/mainwindow.cpp:1880
#, qt-format #, qt-format
msgid "Edit tag \"%1\"..." msgid "Edit tag \"%1\"..."
msgstr "\"%1\" címke szerkesztése..." msgstr "\"%1\" címke szerkesztése..."
@@ -1945,7 +1949,7 @@ msgstr "Megegyezik a --log-levels *:1 kapcsolóval"
msgid "Equivalent to --log-levels *:3" msgid "Equivalent to --log-levels *:3"
msgstr "Megegyezik a --log-levels *:3 kapcsolóval" msgstr "Megegyezik a --log-levels *:3 kapcsolóval"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "Error" msgid "Error"
msgstr "Hiba" msgstr "Hiba"
@@ -2112,7 +2116,7 @@ msgstr "Hiba a borító betöltése közben"
msgid "File %1 is not recognized as a valid audio file." msgid "File %1 is not recognized as a valid audio file."
msgstr "A (z)% 1 fájl nem ismerhető fel érvényes hangfájlként." msgstr "A (z)% 1 fájl nem ismerhető fel érvényes hangfájlként."
#: organize/organizedialog.cpp:116 #: organize/organizedialog.cpp:119
msgid "File extension" msgid "File extension"
msgstr "Fájlkiterjesztés" msgstr "Fájlkiterjesztés"
@@ -2150,7 +2154,7 @@ msgstr "Fájlnév"
msgid "Filename:" msgid "Filename:"
msgstr "Fájlnév:" msgstr "Fájlnév:"
#: core/mainwindow.cpp:341 #: core/mainwindow.cpp:342
msgid "Files" msgid "Files"
msgstr "Fájlok" msgstr "Fájlok"
@@ -2204,6 +2208,15 @@ msgstr "Cím betűtípusa"
msgid "Font size" msgid "Font size"
msgstr "Betűméret" msgstr "Betűméret"
#: dialogs/snapdialog.cpp:56
#, qt-format
msgid "For Ubuntu there is an official PPA repository available at %1."
msgstr ""
#: dialogs/snapdialog.cpp:64
msgid "For a better experience please consider the other options above."
msgstr ""
#: ../build/src/ui_transcoderoptionsmp3.h:203 #: ../build/src/ui_transcoderoptionsmp3.h:203
msgid "Force mono encoding" msgid "Force mono encoding"
msgstr "Mono kódolás kényszerítése" msgstr "Mono kódolás kényszerítése"
@@ -2286,7 +2299,7 @@ msgid "Genius Authentication"
msgstr "Genius hitelesítés" msgstr "Genius hitelesítés"
#: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270 #: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270
#: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:190 #: organize/organizedialog.cpp:113 ../build/src/ui_groupbydialog.h:190
#: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234 #: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234
#: ../build/src/ui_edittagdialog.h:704 #: ../build/src/ui_edittagdialog.h:704
msgid "Genre" msgid "Genre"
@@ -2385,7 +2398,7 @@ msgid "Group by Genre/Artist/Album"
msgstr "Csoportosítás műfaj/előadó/album szerint" msgstr "Csoportosítás műfaj/előadó/album szerint"
#: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274 #: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274
#: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:198 #: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:198
#: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242 #: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242
#: ../build/src/ui_edittagdialog.h:706 #: ../build/src/ui_edittagdialog.h:706
msgid "Grouping" msgid "Grouping"
@@ -2569,6 +2582,10 @@ msgstr ""
"Ez a Clementine egy forkja, amely 2018-ban jelent meg, megcélozva a " "Ez a Clementine egy forkja, amely 2018-ban jelent meg, megcélozva a "
"zenegyűjtőket és a vájtfülűeket." "zenegyűjtőket és a vájtfülűeket."
#: dialogs/snapdialog.cpp:44
msgid "It is detected that Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_behavioursettingspage.h:302 #: ../build/src/ui_behavioursettingspage.h:302
msgid "Jump to previous song right away" msgid "Jump to previous song right away"
msgstr "Ugrás az előző dalra" msgstr "Ugrás az előző dalra"
@@ -2633,7 +2650,7 @@ msgid "Left"
msgstr "Bal" msgstr "Bal"
#: context/contextview.cpp:214 playlist/playlist.cpp:1267 #: context/contextview.cpp:214 playlist/playlist.cpp:1267
#: organize/organizedialog.cpp:112 ../build/src/ui_edittagdialog.h:689 #: organize/organizedialog.cpp:115 ../build/src/ui_edittagdialog.h:689
msgid "Length" msgid "Length"
msgstr "Időtartam" msgstr "Időtartam"
@@ -2851,7 +2868,7 @@ msgstr "Hiányzó Subsonic felhasználónév vagy jelszó."
#: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796 #: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796
#: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918 #: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918
#: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:89 #: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:90
msgid "Missing Tidal API token, username or password." msgid "Missing Tidal API token, username or password."
msgstr "Hiányzó Tidal API token, felhasználónév vagy jelszó." msgstr "Hiányzó Tidal API token, felhasználónév vagy jelszó."
@@ -2937,7 +2954,7 @@ msgstr "Csatolási pontok"
msgid "Move down" msgid "Move down"
msgstr "Mozgatás lefelé" msgstr "Mozgatás lefelé"
#: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:49 #: core/mainwindow.cpp:708 widgets/fileviewlist.cpp:49
msgid "Move to collection..." msgid "Move to collection..."
msgstr "Áthelyezés a gyűjteménybe..." msgstr "Áthelyezés a gyűjteménybe..."
@@ -2946,7 +2963,7 @@ msgstr "Áthelyezés a gyűjteménybe..."
msgid "Move up" msgid "Move up"
msgstr "Mozgatás felfelé" msgstr "Mozgatás felfelé"
#: core/mainwindow.cpp:2101 transcoder/transcodedialog.cpp:328 #: core/mainwindow.cpp:2114 transcoder/transcodedialog.cpp:328
msgid "Music" msgid "Music"
msgstr "Zene" msgstr "Zene"
@@ -2991,7 +3008,7 @@ msgstr "Soha ne indítsa el a lejátszást"
msgid "New folder" msgid "New folder"
msgstr "Új mappa" msgstr "Új mappa"
#: core/mainwindow.cpp:1925 #: core/mainwindow.cpp:1938
msgid "New playlist" msgid "New playlist"
msgstr "Új lejátszólista" msgstr "Új lejátszólista"
@@ -3035,7 +3052,7 @@ msgstr "Nincsenek exportálandó borítók"
msgid "No long blocks" msgid "No long blocks"
msgstr "Hosszú blokkok nélkül" msgstr "Hosszú blokkok nélkül"
#: tidal/tidalrequest.cpp:1256 qobuz/qobuzrequest.cpp:1318 #: tidal/tidalrequest.cpp:1253 qobuz/qobuzrequest.cpp:1315
msgid "No match." msgid "No match."
msgstr "Nincs egyezés." msgstr "Nincs egyezés."
@@ -3063,7 +3080,7 @@ msgstr "Nincs lejátszott dal"
msgid "None" msgid "None"
msgstr "Egyik sem" msgstr "Egyik sem"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "None of the selected songs were suitable for copying to a device" msgid "None of the selected songs were suitable for copying to a device"
msgstr "Egy kiválasztott dal sem alkalmas az eszközre való másoláshoz" msgstr "Egy kiválasztott dal sem alkalmas az eszközre való másoláshoz"
@@ -3090,7 +3107,7 @@ msgstr ""
#: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791 #: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791
#: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913 #: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913
#: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:85 #: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:86
msgid "Not authenticated with Tidal." msgid "Not authenticated with Tidal."
msgstr "Nincs hitelesítve Tidallal." msgstr "Nincs hitelesítve Tidallal."
@@ -3130,6 +3147,13 @@ msgstr "OSD Előnézet"
msgid "Off" msgid "Off"
msgstr "Ki" msgstr "Ki"
#: dialogs/snapdialog.cpp:60
#, qt-format
msgid ""
"Official releases are available for Debian and Ubuntu which also work on "
"most of their derivatives. See %1 for more information."
msgstr ""
#: osd/osdbase.cpp:245 #: osd/osdbase.cpp:245
msgid "On" msgid "On"
msgstr "Be" msgstr "Be"
@@ -3195,7 +3219,7 @@ msgstr "Opus"
msgid "Organize Files" msgid "Organize Files"
msgstr "Fájlok rendezése" msgstr "Fájlok rendezése"
#: core/mainwindow.cpp:705 context/contextalbumsview.cpp:260 #: core/mainwindow.cpp:706 context/contextalbumsview.cpp:260
#: collection/collectionview.cpp:350 #: collection/collectionview.cpp:350
msgid "Organize files..." msgid "Organize files..."
msgstr "Fájlok rendezése..." msgstr "Fájlok rendezése..."
@@ -3209,7 +3233,7 @@ msgid "Original tags"
msgstr "Eredeti címkék" msgstr "Eredeti címkék"
#: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269 #: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269
#: organize/organizedialog.cpp:109 ../build/src/ui_groupbydialog.h:194 #: organize/organizedialog.cpp:112 ../build/src/ui_groupbydialog.h:194
#: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238 #: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238
msgid "Original year" msgid "Original year"
msgstr "Eredeti megjelenés" msgstr "Eredeti megjelenés"
@@ -3268,7 +3292,7 @@ msgstr "Party"
msgid "Password" msgid "Password"
msgstr "Jelszó" msgstr "Jelszó"
#: core/mainwindow.cpp:1247 core/mainwindow.cpp:1721 #: core/mainwindow.cpp:1260 core/mainwindow.cpp:1734
#: core/qtsystemtrayicon.cpp:190 #: core/qtsystemtrayicon.cpp:190
msgid "Pause" msgid "Pause"
msgstr "Szünet" msgstr "Szünet"
@@ -3282,7 +3306,7 @@ msgid "Paused"
msgstr "Szüneteltetve" msgstr "Szüneteltetve"
#: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273 #: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273
#: organize/organizedialog.cpp:104 ../build/src/ui_groupbydialog.h:197 #: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:197
#: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241 #: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241
#: ../build/src/ui_edittagdialog.h:715 #: ../build/src/ui_edittagdialog.h:715
msgid "Performer" msgid "Performer"
@@ -3296,8 +3320,8 @@ msgstr "Pixel"
msgid "Plain sidebar" msgid "Plain sidebar"
msgstr "Egyszerű oldalsáv" msgstr "Egyszerű oldalsáv"
#: core/mainwindow.cpp:674 core/mainwindow.cpp:1200 core/mainwindow.cpp:1229 #: core/mainwindow.cpp:675 core/mainwindow.cpp:1213 core/mainwindow.cpp:1242
#: core/mainwindow.cpp:1725 core/qtsystemtrayicon.cpp:177 #: core/mainwindow.cpp:1738 core/qtsystemtrayicon.cpp:177
#: core/qtsystemtrayicon.cpp:202 #: core/qtsystemtrayicon.cpp:202
msgid "Play" msgid "Play"
msgstr "Lejátszás" msgstr "Lejátszás"
@@ -3360,7 +3384,7 @@ msgstr "Lejátszólista gombok"
msgid "Playlist finished" msgid "Playlist finished"
msgstr "A lejátszólista befejezve" msgstr "A lejátszólista befejezve"
#: core/mainwindow.cpp:2191 #: core/mainwindow.cpp:2204
#, qt-format #, qt-format
msgid "" msgid ""
"Playlist has %1 songs, too large to undo, are you sure you want to clear the " "Playlist has %1 songs, too large to undo, are you sure you want to clear the "
@@ -3382,7 +3406,7 @@ msgstr "Lejátszólista beállítások"
msgid "Playlist type" msgid "Playlist type"
msgstr "Lejátszólista típusa" msgstr "Lejátszólista típusa"
#: core/mainwindow.cpp:339 #: core/mainwindow.cpp:340
msgid "Playlists" msgid "Playlists"
msgstr "Lejátszólisták" msgstr "Lejátszólisták"
@@ -3508,7 +3532,7 @@ msgstr "Folyamat"
msgid "Put songs in a random order" msgid "Put songs in a random order"
msgstr "" msgstr ""
#: core/mainwindow.cpp:352 ../build/src/ui_scrobblersettingspage.h:409 #: core/mainwindow.cpp:353 ../build/src/ui_scrobblersettingspage.h:409
#: ../build/src/ui_qobuzsettingspage.h:270 #: ../build/src/ui_qobuzsettingspage.h:270
msgid "Qobuz" msgid "Qobuz"
msgstr "Qobuz" msgstr "Qobuz"
@@ -3531,24 +3555,24 @@ msgstr "Minőség"
msgid "Querying device..." msgid "Querying device..."
msgstr "Eszköz lekérdezése..." msgstr "Eszköz lekérdezése..."
#: core/mainwindow.cpp:338 #: core/mainwindow.cpp:339
msgid "Queue" msgid "Queue"
msgstr "Lejátszási sor" msgstr "Lejátszási sor"
#: core/mainwindow.cpp:1828 #: core/mainwindow.cpp:1841
msgid "Queue selected tracks" msgid "Queue selected tracks"
msgstr "Kijelölt számok hozzáadása a lejátszási sorhoz" msgstr "Kijelölt számok hozzáadása a lejátszási sorhoz"
#: core/mainwindow.cpp:680 core/mainwindow.cpp:1832 #: core/mainwindow.cpp:681 core/mainwindow.cpp:1845
msgid "Queue selected tracks to play next" msgid "Queue selected tracks to play next"
msgstr "Kijelölt számok lejátszása következőre" msgstr "Kijelölt számok lejátszása következőre"
#: core/mainwindow.cpp:1834 collection/collectionview.cpp:347 #: core/mainwindow.cpp:1847 collection/collectionview.cpp:347
#: internet/internetcollectionview.cpp:317 #: internet/internetcollectionview.cpp:317
msgid "Queue to play next" msgid "Queue to play next"
msgstr "Lejátszás következőre" msgstr "Lejátszás következőre"
#: core/mainwindow.cpp:1827 context/contextalbumsview.cpp:257 #: core/mainwindow.cpp:1840 context/contextalbumsview.cpp:257
#: collection/collectionview.cpp:346 #: collection/collectionview.cpp:346
#: smartplaylists/smartplaylistsviewcontainer.cpp:75 #: smartplaylists/smartplaylistsviewcontainer.cpp:75
#: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316 #: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316
@@ -3748,7 +3772,7 @@ msgstr ""
msgid "Rescan song(s)" msgid "Rescan song(s)"
msgstr "Zenék újraellenőrzése" msgstr "Zenék újraellenőrzése"
#: core/mainwindow.cpp:696 #: core/mainwindow.cpp:697
msgid "Rescan song(s)..." msgid "Rescan song(s)..."
msgstr "Dalok újraellenőrzése..." msgstr "Dalok újraellenőrzése..."
@@ -3756,7 +3780,7 @@ msgstr "Dalok újraellenőrzése..."
msgid "Reset" msgid "Reset"
msgstr "Visszaállítás" msgstr "Visszaállítás"
#: dialogs/edittagdialog.cpp:869 ../build/src/ui_edittagdialog.h:688 #: dialogs/edittagdialog.cpp:872 ../build/src/ui_edittagdialog.h:688
msgid "Reset play counts" msgid "Reset play counts"
msgstr "Lejátszás számlálók visszaállítása" msgstr "Lejátszás számlálók visszaállítása"
@@ -3862,7 +3886,7 @@ msgid "Safely remove the device after copying"
msgstr "Eszköz biztonságos eltávolítása másolás után" msgstr "Eszköz biztonságos eltávolítása másolás után"
#: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280 #: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280
#: organize/organizedialog.cpp:114 ../build/src/ui_groupbydialog.h:200 #: organize/organizedialog.cpp:117 ../build/src/ui_groupbydialog.h:200
#: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244 #: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244
#: ../build/src/ui_edittagdialog.h:694 #: ../build/src/ui_edittagdialog.h:694
msgid "Sample rate" msgid "Sample rate"
@@ -3922,7 +3946,7 @@ msgstr "Csoportosításkezelő"
msgid "Saving album covers" msgid "Saving album covers"
msgstr "Albumborítók mentése" msgstr "Albumborítók mentése"
#: dialogs/edittagdialog.cpp:784 dialogs/trackselectiondialog.cpp:291 #: dialogs/edittagdialog.cpp:787 dialogs/trackselectiondialog.cpp:291
msgid "Saving tracks" msgid "Saving tracks"
msgstr "Számok mentése" msgstr "Számok mentése"
@@ -4055,7 +4079,7 @@ msgstr "A szerver URL-je érvénytelen."
msgid "Server-side scrobbling" msgid "Server-side scrobbling"
msgstr "" msgstr ""
#: core/mainwindow.cpp:1866 #: core/mainwindow.cpp:1879
#, qt-format #, qt-format
msgid "Set %1 to \"%2\"..." msgid "Set %1 to \"%2\"..."
msgstr "%1 beállítása erre: \"%2\"..." msgstr "%1 beállítása erre: \"%2\"..."
@@ -4142,7 +4166,7 @@ msgstr "Albumborító megjelenítése a gyűjteményben"
msgid "Show albums by artist" msgid "Show albums by artist"
msgstr "Albumok megjelenítése az előadótól" msgstr "Albumok megjelenítése az előadótól"
#: core/mainwindow.cpp:627 #: core/mainwindow.cpp:628
msgid "Show all songs" msgid "Show all songs"
msgstr "Összes dal megjelenítése" msgstr "Összes dal megjelenítése"
@@ -4166,7 +4190,7 @@ msgstr "Motor és eszköz megjelenítése"
msgid "Show fullsize..." msgid "Show fullsize..."
msgstr "Megjelenítés teljes méretben..." msgstr "Megjelenítés teljes méretben..."
#: core/mainwindow.cpp:703 #: core/mainwindow.cpp:704
msgid "Show in collection..." msgid "Show in collection..."
msgstr "Megjelenítés a gyűjteményben..." msgstr "Megjelenítés a gyűjteményben..."
@@ -4174,7 +4198,7 @@ msgstr "Megjelenítés a gyűjteményben..."
msgid "Show in file browser" msgid "Show in file browser"
msgstr "Megnyitás a fájlböngészőben" msgstr "Megnyitás a fájlböngészőben"
#: core/mainwindow.cpp:704 context/contextalbumsview.cpp:268 #: core/mainwindow.cpp:705 context/contextalbumsview.cpp:268
#: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55 #: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55
msgid "Show in file browser..." msgid "Show in file browser..."
msgstr "Megnyitás a fájlböngészőben..." msgstr "Megnyitás a fájlböngészőben..."
@@ -4191,11 +4215,11 @@ msgstr "Kedvenc gomb megjelenítése"
msgid "Show moodbar" msgid "Show moodbar"
msgstr "Hangulatsáv megjelenítése" msgstr "Hangulatsáv megjelenítése"
#: core/mainwindow.cpp:628 #: core/mainwindow.cpp:629
msgid "Show only duplicates" msgid "Show only duplicates"
msgstr "Csak a másolatok megjelenítése" msgstr "Csak a másolatok megjelenítése"
#: core/mainwindow.cpp:629 #: core/mainwindow.cpp:630
msgid "Show only untagged" msgid "Show only untagged"
msgstr "Csak a címke nélküliek megjelenítése" msgstr "Csak a címke nélküliek megjelenítése"
@@ -4284,11 +4308,11 @@ msgstr "Kihagyások száma"
msgid "Skip forwards in playlist" msgid "Skip forwards in playlist"
msgstr "Előreléptetés a lejátszólistában" msgstr "Előreléptetés a lejátszólistában"
#: core/mainwindow.cpp:1839 #: core/mainwindow.cpp:1852
msgid "Skip selected tracks" msgid "Skip selected tracks"
msgstr "Kiválasztott számok kihagyása" msgstr "Kiválasztott számok kihagyása"
#: core/mainwindow.cpp:1838 #: core/mainwindow.cpp:1851
msgid "Skip track" msgid "Skip track"
msgstr "Szám kihagyása" msgstr "Szám kihagyása"
@@ -4304,7 +4328,7 @@ msgstr "Kis oldalsáv"
msgid "Smart playlist" msgid "Smart playlist"
msgstr "Okos lejátszólista" msgstr "Okos lejátszólista"
#: core/mainwindow.cpp:340 #: core/mainwindow.cpp:341
msgid "Smart playlists" msgid "Smart playlists"
msgstr "Okos lejátszólisták" msgstr "Okos lejátszólisták"
@@ -4388,7 +4412,7 @@ msgstr "Leállítás a minden egyes szám után"
msgid "Stop after every track" msgid "Stop after every track"
msgstr "Leállítás minden szám után" msgstr "Leállítás minden szám után"
#: core/mainwindow.cpp:676 ../build/src/ui_mainwindow.h:627 #: core/mainwindow.cpp:677 ../build/src/ui_mainwindow.h:627
msgid "Stop after this track" msgid "Stop after this track"
msgstr "Leállítás az aktuális szám után" msgstr "Leállítás az aktuális szám után"
@@ -4450,6 +4474,21 @@ msgstr ""
"A Strawberry szabad szoftver a GPL alatt kiadva. A forráskód elérhető itt: " "A Strawberry szabad szoftver a GPL alatt kiadva. A forráskód elérhető itt: "
"%1" "%1"
#: dialogs/snapdialog.cpp:40
msgid "Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_snapdialog.h:117
msgid "Strawberry is running as a snap"
msgstr ""
#: dialogs/snapdialog.cpp:48
msgid ""
"Strawberry is slower, and has restrictions when running as a Snap. Accessing "
"the root filesystem (/) will not work. There also might be other "
"restrictions such as accessing certain devices or network shares."
msgstr ""
#: ../build/src/ui_trackselectiondialog.h:205 #: ../build/src/ui_trackselectiondialog.h:205
msgid "Strawberry was unable to find results for this file" msgid "Strawberry was unable to find results for this file"
msgstr "Nincsenek találatok ehhez a fájlhoz" msgstr "Nincsenek találatok ehhez a fájlhoz"
@@ -4474,7 +4513,7 @@ msgstr "Kép nyújtása a lejátszólista kitöltéséhez"
msgid "Submit scrobbles every" msgid "Submit scrobbles every"
msgstr "Scrobble-ok beküldése minden" msgstr "Scrobble-ok beküldése minden"
#: core/mainwindow.cpp:346 ../build/src/ui_scrobblersettingspage.h:407 #: core/mainwindow.cpp:347 ../build/src/ui_scrobblersettingspage.h:407
#: ../build/src/ui_subsonicsettingspage.h:188 #: ../build/src/ui_subsonicsettingspage.h:188
msgid "Subsonic" msgid "Subsonic"
msgstr "Subsonic" msgstr "Subsonic"
@@ -4600,7 +4639,7 @@ msgstr "A kért oldal nem létezik!"
msgid "The site you requested is not an image!" msgid "The site you requested is not an image!"
msgstr "A kért oldal nem egy kép!" msgstr "A kért oldal nem egy kép!"
#: core/mainwindow.cpp:2698 #: core/mainwindow.cpp:2711
msgid "" msgid ""
"The version of Strawberry you've just updated to requires a full collection " "The version of Strawberry you've just updated to requires a full collection "
"rescan because of the new features listed below:" "rescan because of the new features listed below:"
@@ -4704,7 +4743,7 @@ msgstr "Ez a beállítás változtatható a \"Működés\" menüben"
msgid "This type of device is not supported: %1" msgid "This type of device is not supported: %1"
msgstr "A %1 eszköztípus nem támogatott" msgstr "A %1 eszköztípus nem támogatott"
#: core/mainwindow.cpp:349 ../build/src/ui_scrobblersettingspage.h:408 #: core/mainwindow.cpp:350 ../build/src/ui_scrobblersettingspage.h:408
#: ../build/src/ui_tidalsettingspage.h:312 #: ../build/src/ui_tidalsettingspage.h:312
msgid "Tidal" msgid "Tidal"
msgstr "Tidal" msgstr "Tidal"
@@ -4722,7 +4761,7 @@ msgstr ""
msgid "Time step" msgid "Time step"
msgstr "Léptetés ideje" msgstr "Léptetés ideje"
#: playlist/playlist.cpp:1262 organize/organizedialog.cpp:98 #: playlist/playlist.cpp:1262 organize/organizedialog.cpp:101
#: ../build/src/ui_contextsettingspage.h:414 #: ../build/src/ui_contextsettingspage.h:414
#: ../build/src/ui_edittagdialog.h:705 #: ../build/src/ui_edittagdialog.h:705
#: ../build/src/ui_trackselectiondialog.h:210 #: ../build/src/ui_trackselectiondialog.h:210
@@ -4733,7 +4772,7 @@ msgstr "Cím"
msgid "Today" msgid "Today"
msgstr "Ma" msgstr "Ma"
#: core/mainwindow.cpp:677 core/mainwindow.cpp:1829 #: core/mainwindow.cpp:678 core/mainwindow.cpp:1842
msgid "Toggle queue status" msgid "Toggle queue status"
msgstr "Lejátszási sor" msgstr "Lejátszási sor"
@@ -4741,7 +4780,7 @@ msgstr "Lejátszási sor"
msgid "Toggle scrobbling" msgid "Toggle scrobbling"
msgstr "Scrobble funkció váltása" msgstr "Scrobble funkció váltása"
#: core/mainwindow.cpp:683 core/mainwindow.cpp:1840 #: core/mainwindow.cpp:684 core/mainwindow.cpp:1853
#, fuzzy #, fuzzy
msgid "Toggle skip status" msgid "Toggle skip status"
msgstr "Állapot átugrása" msgstr "Állapot átugrása"
@@ -4770,7 +4809,7 @@ msgstr "Összes átküldött bájt"
msgid "Total network requests made" msgid "Total network requests made"
msgstr "Összes hálózati kérelem" msgstr "Összes hálózati kérelem"
#: playlist/playlist.cpp:1265 organize/organizedialog.cpp:106 #: playlist/playlist.cpp:1265 organize/organizedialog.cpp:109
#: ../build/src/ui_edittagdialog.h:712 #: ../build/src/ui_edittagdialog.h:712
#: ../build/src/ui_trackselectiondialog.h:212 #: ../build/src/ui_trackselectiondialog.h:212
msgid "Track" msgid "Track"
@@ -4828,8 +4867,8 @@ msgstr "Ultra szélessávú (UWB)"
msgid "Unknown" msgid "Unknown"
msgstr "Ismeretlen" msgstr "Ismeretlen"
#: subsonic/subsonicrequest.cpp:858 tidal/tidalrequest.cpp:1262 #: subsonic/subsonicrequest.cpp:864 tidal/tidalrequest.cpp:1259
#: qobuz/qobuzrequest.cpp:1324 #: qobuz/qobuzrequest.cpp:1321
msgid "Unknown error" msgid "Unknown error"
msgstr "Ismeretlen hiba" msgstr "Ismeretlen hiba"
@@ -4837,11 +4876,11 @@ msgstr "Ismeretlen hiba"
msgid "Unset cover" msgid "Unset cover"
msgstr "Borító törlése" msgstr "Borító törlése"
#: core/mainwindow.cpp:1837 #: core/mainwindow.cpp:1850
msgid "Unskip selected tracks" msgid "Unskip selected tracks"
msgstr "A kiválasztott számok lejátszása" msgstr "A kiválasztott számok lejátszása"
#: core/mainwindow.cpp:1836 #: core/mainwindow.cpp:1849
msgid "Unskip track" msgid "Unskip track"
msgstr "Szám lejátszása" msgstr "Szám lejátszása"
@@ -5076,7 +5115,7 @@ msgid ""
"well?" "well?"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2702 #: core/mainwindow.cpp:2715
msgid "Would you like to run a full rescan right now?" msgid "Would you like to run a full rescan right now?"
msgstr "Akar futtatni egy teljes újraolvasást most?" msgstr "Akar futtatni egy teljes újraolvasást most?"
@@ -5085,7 +5124,7 @@ msgid "Write metadata when saving playlists"
msgstr "Lejátszólisták mentésekor metaadatok írása" msgstr "Lejátszólisták mentésekor metaadatok írása"
#: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268 #: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268
#: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:191 #: organize/organizedialog.cpp:111 ../build/src/ui_groupbydialog.h:191
#: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235 #: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235
#: ../build/src/ui_edittagdialog.h:714 #: ../build/src/ui_edittagdialog.h:714
#: ../build/src/ui_trackselectiondialog.h:211 #: ../build/src/ui_trackselectiondialog.h:211

View File

@@ -558,7 +558,7 @@ msgstr "Tambah semua trek dari sebuah direktori dan semua subdirektorinya"
msgid "Add directory..." msgid "Add directory..."
msgstr "Tambah direktori..." msgstr "Tambah direktori..."
#: core/mainwindow.cpp:2101 #: core/mainwindow.cpp:2114
msgid "Add file" msgid "Add file"
msgstr "Tambah berkas" msgstr "Tambah berkas"
@@ -574,7 +574,7 @@ msgstr "Tambah berkas ke transkoder"
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Tambah berkas untuk ditranskode" msgstr "Tambah berkas untuk ditranskode"
#: core/mainwindow.cpp:2126 transcoder/transcodedialog.cpp:419 #: core/mainwindow.cpp:2139 transcoder/transcodedialog.cpp:419
msgid "Add folder" msgid "Add folder"
msgstr "Tambah folder" msgstr "Tambah folder"
@@ -677,7 +677,7 @@ msgstr ""
msgid "Add to albums" msgid "Add to albums"
msgstr "Tambahkan ke album" msgstr "Tambahkan ke album"
#: core/mainwindow.cpp:1909 #: core/mainwindow.cpp:1922
msgid "Add to another playlist" msgid "Add to another playlist"
msgstr "Tambahkan ke daftar putar lainnya" msgstr "Tambahkan ke daftar putar lainnya"
@@ -736,7 +736,7 @@ msgid "Albu&m cover"
msgstr "Sa&mpul album" msgstr "Sa&mpul album"
#: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264 #: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264
#: organize/organizedialog.cpp:99 ../build/src/ui_groupbydialog.h:186 #: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:186
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230 #: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
#: ../build/src/ui_albumcoversearcher.h:110 #: ../build/src/ui_albumcoversearcher.h:110
#: ../build/src/ui_albumcoversearcher.h:112 #: ../build/src/ui_albumcoversearcher.h:112
@@ -756,7 +756,7 @@ msgid "Album - Disc"
msgstr "Album - Cakram" msgstr "Album - Cakram"
#: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271 #: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271
#: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:185 #: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:185
#: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229 #: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229
#: ../build/src/ui_edittagdialog.h:709 #: ../build/src/ui_edittagdialog.h:709
msgid "Album artist" msgid "Album artist"
@@ -796,7 +796,7 @@ msgstr "Album dengan sampul"
msgid "Albums without covers" msgid "Albums without covers"
msgstr "Album tanpa sampul" msgstr "Album tanpa sampul"
#: core/mainwindow.cpp:208 #: core/mainwindow.cpp:209
msgid "All Files (*)" msgid "All Files (*)"
msgstr "Semua Berkas (*)" msgstr "Semua Berkas (*)"
@@ -842,7 +842,7 @@ msgstr "Selalu mulai memutar"
msgid "An error occurred loading the iTunes database" msgid "An error occurred loading the iTunes database"
msgstr "Sebuah galat terjadi saat memuat basis data iTunes" msgstr "Sebuah galat terjadi saat memuat basis data iTunes"
#: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:953 #: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:956
#, qt-format #, qt-format
msgid "An error occurred writing metadata to '%1'" msgid "An error occurred writing metadata to '%1'"
msgstr "Sebuah galat terjadi saat menulis metadata ke '%1'" msgstr "Sebuah galat terjadi saat menulis metadata ke '%1'"
@@ -891,12 +891,12 @@ msgstr ""
msgid "Are you sure you want to delete the \"%1\" preset?" msgid "Are you sure you want to delete the \"%1\" preset?"
msgstr "Apakah Anda yakin ingin menghapus prasetel \"%1\"?" msgstr "Apakah Anda yakin ingin menghapus prasetel \"%1\"?"
#: dialogs/edittagdialog.cpp:869 #: dialogs/edittagdialog.cpp:872
msgid "Are you sure you want to reset this song's statistics?" msgid "Are you sure you want to reset this song's statistics?"
msgstr "Apakah Anda yakin ingin mengeset-ulang statistik lagu ini?" msgstr "Apakah Anda yakin ingin mengeset-ulang statistik lagu ini?"
#: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263 #: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263
#: organize/organizedialog.cpp:100 ../build/src/ui_groupbydialog.h:184 #: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:184
#: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228 #: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228
#: ../build/src/ui_albumcoversearcher.h:106 #: ../build/src/ui_albumcoversearcher.h:106
#: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713 #: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713
@@ -904,7 +904,7 @@ msgstr "Apakah Anda yakin ingin mengeset-ulang statistik lagu ini?"
msgid "Artist" msgid "Artist"
msgstr "Artis" msgstr "Artis"
#: organize/organizedialog.cpp:101 #: organize/organizedialog.cpp:104
msgid "Artist's initial" msgid "Artist's initial"
msgstr "Inisial artis" msgstr "Inisial artis"
@@ -1040,7 +1040,7 @@ msgid "Best"
msgstr "Terbaik" msgstr "Terbaik"
#: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136 #: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136
#: playlist/playlist.cpp:1281 organize/organizedialog.cpp:115 #: playlist/playlist.cpp:1281 organize/organizedialog.cpp:118
#: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223 #: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223
#: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695 #: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695
msgid "Bit depth" msgid "Bit depth"
@@ -1061,7 +1061,7 @@ msgstr "Laju bit"
msgid "Bitrate" msgid "Bitrate"
msgstr "Lajubit" msgstr "Lajubit"
#: organize/organizedialog.cpp:113 #: organize/organizedialog.cpp:116
msgctxt "Refers to bitrate in file organize dialog." msgctxt "Refers to bitrate in file organize dialog."
msgid "Bitrate" msgid "Bitrate"
msgstr "" msgstr ""
@@ -1106,7 +1106,7 @@ msgstr "Buffer"
msgid "Buffer duration" msgid "Buffer duration"
msgstr "Durasi Bufer" msgstr "Durasi Bufer"
#: engine/gstengine.cpp:630 #: engine/gstengine.cpp:681
msgid "Buffering" msgid "Buffering"
msgstr "Membufer..." msgstr "Membufer..."
@@ -1126,7 +1126,7 @@ msgstr "CDDA"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: tidal/tidalstreamurlrequest.cpp:107 qobuz/qobuzstreamurlrequest.cpp:103 #: tidal/tidalstreamurlrequest.cpp:108 qobuz/qobuzstreamurlrequest.cpp:103
msgid "Cancelled." msgid "Cancelled."
msgstr "Dibatalkan." msgstr "Dibatalkan."
@@ -1146,7 +1146,7 @@ msgstr "Ganti lagu yang diputar saat ini"
msgid "Change the language" msgid "Change the language"
msgstr "Ubah bahasa" msgstr "Ubah bahasa"
#: core/mainwindow.cpp:758 #: core/mainwindow.cpp:759
msgid "Check for updates..." msgid "Check for updates..."
msgstr "Periksa pembaruan..." msgstr "Periksa pembaruan..."
@@ -1191,7 +1191,7 @@ msgstr "Bersihkan"
msgid "Clear Disk Cache" msgid "Clear Disk Cache"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2191 ../build/src/ui_mainwindow.h:634 #: core/mainwindow.cpp:2204 ../build/src/ui_mainwindow.h:634
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Bersihkan daftar putar" msgstr "Bersihkan daftar putar"
@@ -1244,7 +1244,7 @@ msgstr "Menutup jendela ini akan menghentikan pencarian sampul album."
msgid "Club" msgid "Club"
msgstr "Klub" msgstr "Klub"
#: core/mainwindow.cpp:337 ../build/src/ui_collectionsettingspage.h:406 #: core/mainwindow.cpp:338 ../build/src/ui_collectionsettingspage.h:406
#: ../build/src/ui_scrobblersettingspage.h:402 #: ../build/src/ui_scrobblersettingspage.h:402
msgid "Collection" msgid "Collection"
msgstr "Pustakascan" msgstr "Pustakascan"
@@ -1257,7 +1257,7 @@ msgstr ""
msgid "Collection advanced grouping" msgid "Collection advanced grouping"
msgstr "Pengelompokan pustaka lanjutan" msgstr "Pengelompokan pustaka lanjutan"
#: core/mainwindow.cpp:2703 #: core/mainwindow.cpp:2716
msgid "Collection rescan notice" msgid "Collection rescan notice"
msgstr "Pemberitahuan pemindaian ulang pustaka" msgstr "Pemberitahuan pemindaian ulang pustaka"
@@ -1274,7 +1274,7 @@ msgid "Comma separated list of class:level, level is 0-3"
msgstr "Daftar yang dipisahkan koma dari kelas:level, level adalah 0-3" msgstr "Daftar yang dipisahkan koma dari kelas:level, level adalah 0-3"
#: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374 #: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374
#: organize/organizedialog.cpp:111 ../build/src/ui_edittagdialog.h:711 #: organize/organizedialog.cpp:114 ../build/src/ui_edittagdialog.h:711
msgid "Comment" msgid "Comment"
msgstr "Komentar" msgstr "Komentar"
@@ -1291,7 +1291,7 @@ msgid "Complete tags automatically..."
msgstr "Lengkapi tag secara otomatis..." msgstr "Lengkapi tag secara otomatis..."
#: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272 #: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272
#: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:196 #: organize/organizedialog.cpp:106 ../build/src/ui_groupbydialog.h:196
#: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240 #: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240
#: ../build/src/ui_edittagdialog.h:710 #: ../build/src/ui_edittagdialog.h:710
msgid "Composer" msgid "Composer"
@@ -1318,7 +1318,7 @@ msgstr "Konfigurasi %1..."
msgid "Configure buttons" msgid "Configure buttons"
msgstr "" msgstr ""
#: core/mainwindow.cpp:638 #: core/mainwindow.cpp:639
msgid "Configure collection..." msgid "Configure collection..."
msgstr "Konfigurasi pustaka..." msgstr "Konfigurasi pustaka..."
@@ -1334,7 +1334,7 @@ msgstr "Konsol"
msgid "Constant bitrate" msgid "Constant bitrate"
msgstr "Lajubit konstan" msgstr "Lajubit konstan"
#: core/mainwindow.cpp:336 ../build/src/ui_contextsettingspage.h:361 #: core/mainwindow.cpp:337 ../build/src/ui_contextsettingspage.h:361
msgid "Context" msgid "Context"
msgstr "Konteks" msgstr "Konteks"
@@ -1355,7 +1355,7 @@ msgstr "Konversi semua musik"
msgid "Convert any music that the device can't play" msgid "Convert any music that the device can't play"
msgstr "Konversi semua musik yang tidak dapat diputar oleh perangkat." msgstr "Konversi semua musik yang tidak dapat diputar oleh perangkat."
#: core/mainwindow.cpp:702 #: core/mainwindow.cpp:703
msgid "Copy URL(s)..." msgid "Copy URL(s)..."
msgstr "" msgstr ""
@@ -1363,7 +1363,7 @@ msgstr ""
msgid "Copy album cover artwork" msgid "Copy album cover artwork"
msgstr "Salin sampul album" msgstr "Salin sampul album"
#: core/mainwindow.cpp:706 widgets/fileviewlist.cpp:48 #: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:48
#: device/deviceview.cpp:239 #: device/deviceview.cpp:239
msgid "Copy to collection..." msgid "Copy to collection..."
msgstr "Salin ke pustaka..." msgstr "Salin ke pustaka..."
@@ -1372,7 +1372,7 @@ msgstr "Salin ke pustaka..."
msgid "Copy to device" msgid "Copy to device"
msgstr "" msgstr ""
#: core/mainwindow.cpp:709 context/contextalbumsview.cpp:262 #: core/mainwindow.cpp:710 context/contextalbumsview.cpp:262
#: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104 #: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104
#: widgets/fileviewlist.cpp:50 #: widgets/fileviewlist.cpp:50
msgid "Copy to device..." msgid "Copy to device..."
@@ -1613,7 +1613,7 @@ msgstr "Hapus berkas"
msgid "Delete from device..." msgid "Delete from device..."
msgstr "Hapus dari perangkat..." msgstr "Hapus dari perangkat..."
#: core/mainwindow.cpp:711 collection/collectionview.cpp:354 #: core/mainwindow.cpp:712 collection/collectionview.cpp:354
#: widgets/fileviewlist.cpp:51 #: widgets/fileviewlist.cpp:51
msgid "Delete from disk..." msgid "Delete from disk..."
msgstr "Hapus dari diska..." msgstr "Hapus dari diska..."
@@ -1635,11 +1635,11 @@ msgstr "Hapus berkas yang asli"
msgid "Deleting files" msgid "Deleting files"
msgstr "Menghapus berkas" msgstr "Menghapus berkas"
#: core/mainwindow.cpp:1826 #: core/mainwindow.cpp:1839
msgid "Dequeue selected tracks" msgid "Dequeue selected tracks"
msgstr "Buang antrean trek terpilih" msgstr "Buang antrean trek terpilih"
#: core/mainwindow.cpp:1825 #: core/mainwindow.cpp:1838
msgid "Dequeue track" msgid "Dequeue track"
msgstr "Buang antrean trek" msgstr "Buang antrean trek"
@@ -1665,7 +1665,7 @@ msgstr "Properti Perangkat"
msgid "Device properties..." msgid "Device properties..."
msgstr "Properti perangkat..." msgstr "Properti perangkat..."
#: core/mainwindow.cpp:343 #: core/mainwindow.cpp:344
msgid "Devices" msgid "Devices"
msgstr "Perangkat" msgstr "Perangkat"
@@ -1687,7 +1687,7 @@ msgid "Disabled"
msgstr "Nonfungsi" msgstr "Nonfungsi"
#: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266 #: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266
#: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:188 #: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:188
#: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232 #: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232
#: ../build/src/ui_edittagdialog.h:708 #: ../build/src/ui_edittagdialog.h:708
msgid "Disc" msgid "Disc"
@@ -1722,6 +1722,10 @@ msgstr "Jangan potong gambar"
msgid "Do not overwrite" msgid "Do not overwrite"
msgstr "Jangan timpa" msgstr "Jangan timpa"
#: ../build/src/ui_snapdialog.h:120
msgid "Do not show this message again."
msgstr ""
#: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110 #: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110
msgid "Don't repeat" msgid "Don't repeat"
msgstr "Jangan ulang" msgstr "Jangan ulang"
@@ -1780,7 +1784,7 @@ msgstr ""
msgid "Edit smart playlist..." msgid "Edit smart playlist..."
msgstr "" msgstr ""
#: core/mainwindow.cpp:1867 #: core/mainwindow.cpp:1880
#, qt-format #, qt-format
msgid "Edit tag \"%1\"..." msgid "Edit tag \"%1\"..."
msgstr "Sunting tag \"%1\"..." msgstr "Sunting tag \"%1\"..."
@@ -1930,7 +1934,7 @@ msgstr "Setara dengan --log-level *: 1"
msgid "Equivalent to --log-levels *:3" msgid "Equivalent to --log-levels *:3"
msgstr "Setara dengan --log-level *: 3" msgstr "Setara dengan --log-level *: 3"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "Error" msgid "Error"
msgstr "Kesalahan" msgstr "Kesalahan"
@@ -2096,7 +2100,7 @@ msgstr "Terjadi kesalahan saat mengambil sampul"
msgid "File %1 is not recognized as a valid audio file." msgid "File %1 is not recognized as a valid audio file."
msgstr "Berkas %1 bukanlah berkas audio yang benar." msgstr "Berkas %1 bukanlah berkas audio yang benar."
#: organize/organizedialog.cpp:116 #: organize/organizedialog.cpp:119
msgid "File extension" msgid "File extension"
msgstr "Ekstensi berkas" msgstr "Ekstensi berkas"
@@ -2134,7 +2138,7 @@ msgstr "Nama berkas"
msgid "Filename:" msgid "Filename:"
msgstr "Nama berkas:" msgstr "Nama berkas:"
#: core/mainwindow.cpp:341 #: core/mainwindow.cpp:342
msgid "Files" msgid "Files"
msgstr "Berkas" msgstr "Berkas"
@@ -2188,6 +2192,15 @@ msgstr ""
msgid "Font size" msgid "Font size"
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:56
#, qt-format
msgid "For Ubuntu there is an official PPA repository available at %1."
msgstr ""
#: dialogs/snapdialog.cpp:64
msgid "For a better experience please consider the other options above."
msgstr ""
#: ../build/src/ui_transcoderoptionsmp3.h:203 #: ../build/src/ui_transcoderoptionsmp3.h:203
msgid "Force mono encoding" msgid "Force mono encoding"
msgstr "Paksa enkode mono" msgstr "Paksa enkode mono"
@@ -2270,7 +2283,7 @@ msgid "Genius Authentication"
msgstr "" msgstr ""
#: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270 #: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270
#: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:190 #: organize/organizedialog.cpp:113 ../build/src/ui_groupbydialog.h:190
#: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234 #: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234
#: ../build/src/ui_edittagdialog.h:704 #: ../build/src/ui_edittagdialog.h:704
msgid "Genre" msgid "Genre"
@@ -2369,7 +2382,7 @@ msgid "Group by Genre/Artist/Album"
msgstr "Grup berdasarkan Genre/Artis/Album" msgstr "Grup berdasarkan Genre/Artis/Album"
#: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274 #: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274
#: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:198 #: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:198
#: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242 #: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242
#: ../build/src/ui_edittagdialog.h:706 #: ../build/src/ui_edittagdialog.h:706
msgid "Grouping" msgid "Grouping"
@@ -2548,6 +2561,10 @@ msgid ""
"audiophiles." "audiophiles."
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:44
msgid "It is detected that Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_behavioursettingspage.h:302 #: ../build/src/ui_behavioursettingspage.h:302
msgid "Jump to previous song right away" msgid "Jump to previous song right away"
msgstr "Lompat ke lagu sebelumnya sesegera" msgstr "Lompat ke lagu sebelumnya sesegera"
@@ -2612,7 +2629,7 @@ msgid "Left"
msgstr "Kiri" msgstr "Kiri"
#: context/contextview.cpp:214 playlist/playlist.cpp:1267 #: context/contextview.cpp:214 playlist/playlist.cpp:1267
#: organize/organizedialog.cpp:112 ../build/src/ui_edittagdialog.h:689 #: organize/organizedialog.cpp:115 ../build/src/ui_edittagdialog.h:689
msgid "Length" msgid "Length"
msgstr "Durasi" msgstr "Durasi"
@@ -2830,7 +2847,7 @@ msgstr "Nama pengguna atau kata sandi Subsonic tidak tersedia."
#: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796 #: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796
#: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918 #: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918
#: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:89 #: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:90
msgid "Missing Tidal API token, username or password." msgid "Missing Tidal API token, username or password."
msgstr "" msgstr ""
@@ -2916,7 +2933,7 @@ msgstr "Titik kait"
msgid "Move down" msgid "Move down"
msgstr "Pindah turun" msgstr "Pindah turun"
#: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:49 #: core/mainwindow.cpp:708 widgets/fileviewlist.cpp:49
msgid "Move to collection..." msgid "Move to collection..."
msgstr "Pindah ke pustaka..." msgstr "Pindah ke pustaka..."
@@ -2925,7 +2942,7 @@ msgstr "Pindah ke pustaka..."
msgid "Move up" msgid "Move up"
msgstr "Pindah naik" msgstr "Pindah naik"
#: core/mainwindow.cpp:2101 transcoder/transcodedialog.cpp:328 #: core/mainwindow.cpp:2114 transcoder/transcodedialog.cpp:328
msgid "Music" msgid "Music"
msgstr "Musik" msgstr "Musik"
@@ -2970,7 +2987,7 @@ msgstr "Jangan mulai memutar"
msgid "New folder" msgid "New folder"
msgstr "Folder baru" msgstr "Folder baru"
#: core/mainwindow.cpp:1925 #: core/mainwindow.cpp:1938
msgid "New playlist" msgid "New playlist"
msgstr "Daftar putar baru" msgstr "Daftar putar baru"
@@ -3014,7 +3031,7 @@ msgstr "Tidak ada sampul untuk diekspor."
msgid "No long blocks" msgid "No long blocks"
msgstr "Tanpa blok panjang" msgstr "Tanpa blok panjang"
#: tidal/tidalrequest.cpp:1256 qobuz/qobuzrequest.cpp:1318 #: tidal/tidalrequest.cpp:1253 qobuz/qobuzrequest.cpp:1315
msgid "No match." msgid "No match."
msgstr "Tidak ada yang cocok." msgstr "Tidak ada yang cocok."
@@ -3042,7 +3059,7 @@ msgstr "Tidak ada lagu yang berputar"
msgid "None" msgid "None"
msgstr "Nihil" msgstr "Nihil"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "None of the selected songs were suitable for copying to a device" msgid "None of the selected songs were suitable for copying to a device"
msgstr "" msgstr ""
@@ -3069,7 +3086,7 @@ msgstr ""
#: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791 #: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791
#: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913 #: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913
#: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:85 #: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:86
msgid "Not authenticated with Tidal." msgid "Not authenticated with Tidal."
msgstr "Tidak terautentikasi dengan Tidal." msgstr "Tidak terautentikasi dengan Tidal."
@@ -3109,6 +3126,13 @@ msgstr "Pratinjau OSD"
msgid "Off" msgid "Off"
msgstr "Mati" msgstr "Mati"
#: dialogs/snapdialog.cpp:60
#, qt-format
msgid ""
"Official releases are available for Debian and Ubuntu which also work on "
"most of their derivatives. See %1 for more information."
msgstr ""
#: osd/osdbase.cpp:245 #: osd/osdbase.cpp:245
msgid "On" msgid "On"
msgstr "Nyala" msgstr "Nyala"
@@ -3174,7 +3198,7 @@ msgstr "Opus"
msgid "Organize Files" msgid "Organize Files"
msgstr "" msgstr ""
#: core/mainwindow.cpp:705 context/contextalbumsview.cpp:260 #: core/mainwindow.cpp:706 context/contextalbumsview.cpp:260
#: collection/collectionview.cpp:350 #: collection/collectionview.cpp:350
msgid "Organize files..." msgid "Organize files..."
msgstr "" msgstr ""
@@ -3188,7 +3212,7 @@ msgid "Original tags"
msgstr "Tag asli" msgstr "Tag asli"
#: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269 #: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269
#: organize/organizedialog.cpp:109 ../build/src/ui_groupbydialog.h:194 #: organize/organizedialog.cpp:112 ../build/src/ui_groupbydialog.h:194
#: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238 #: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238
msgid "Original year" msgid "Original year"
msgstr "Tahun asli" msgstr "Tahun asli"
@@ -3247,7 +3271,7 @@ msgstr "Pesta"
msgid "Password" msgid "Password"
msgstr "Sandi" msgstr "Sandi"
#: core/mainwindow.cpp:1247 core/mainwindow.cpp:1721 #: core/mainwindow.cpp:1260 core/mainwindow.cpp:1734
#: core/qtsystemtrayicon.cpp:190 #: core/qtsystemtrayicon.cpp:190
msgid "Pause" msgid "Pause"
msgstr "Jeda" msgstr "Jeda"
@@ -3261,7 +3285,7 @@ msgid "Paused"
msgstr "Jeda" msgstr "Jeda"
#: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273 #: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273
#: organize/organizedialog.cpp:104 ../build/src/ui_groupbydialog.h:197 #: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:197
#: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241 #: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241
#: ../build/src/ui_edittagdialog.h:715 #: ../build/src/ui_edittagdialog.h:715
msgid "Performer" msgid "Performer"
@@ -3275,8 +3299,8 @@ msgstr "Piksel"
msgid "Plain sidebar" msgid "Plain sidebar"
msgstr "Bilah sisi polos" msgstr "Bilah sisi polos"
#: core/mainwindow.cpp:674 core/mainwindow.cpp:1200 core/mainwindow.cpp:1229 #: core/mainwindow.cpp:675 core/mainwindow.cpp:1213 core/mainwindow.cpp:1242
#: core/mainwindow.cpp:1725 core/qtsystemtrayicon.cpp:177 #: core/mainwindow.cpp:1738 core/qtsystemtrayicon.cpp:177
#: core/qtsystemtrayicon.cpp:202 #: core/qtsystemtrayicon.cpp:202
msgid "Play" msgid "Play"
msgstr "Putar" msgstr "Putar"
@@ -3339,7 +3363,7 @@ msgstr ""
msgid "Playlist finished" msgid "Playlist finished"
msgstr "Daftar putar selesai" msgstr "Daftar putar selesai"
#: core/mainwindow.cpp:2191 #: core/mainwindow.cpp:2204
#, qt-format #, qt-format
msgid "" msgid ""
"Playlist has %1 songs, too large to undo, are you sure you want to clear the " "Playlist has %1 songs, too large to undo, are you sure you want to clear the "
@@ -3359,7 +3383,7 @@ msgstr "Opsi daftar putar"
msgid "Playlist type" msgid "Playlist type"
msgstr "" msgstr ""
#: core/mainwindow.cpp:339 #: core/mainwindow.cpp:340
msgid "Playlists" msgid "Playlists"
msgstr "Daftar putar" msgstr "Daftar putar"
@@ -3479,7 +3503,7 @@ msgstr "Kemajuan"
msgid "Put songs in a random order" msgid "Put songs in a random order"
msgstr "" msgstr ""
#: core/mainwindow.cpp:352 ../build/src/ui_scrobblersettingspage.h:409 #: core/mainwindow.cpp:353 ../build/src/ui_scrobblersettingspage.h:409
#: ../build/src/ui_qobuzsettingspage.h:270 #: ../build/src/ui_qobuzsettingspage.h:270
msgid "Qobuz" msgid "Qobuz"
msgstr "Qobuz" msgstr "Qobuz"
@@ -3502,24 +3526,24 @@ msgstr "Kualitas"
msgid "Querying device..." msgid "Querying device..."
msgstr "Meminta perangkat..." msgstr "Meminta perangkat..."
#: core/mainwindow.cpp:338 #: core/mainwindow.cpp:339
msgid "Queue" msgid "Queue"
msgstr "Antrean" msgstr "Antrean"
#: core/mainwindow.cpp:1828 #: core/mainwindow.cpp:1841
msgid "Queue selected tracks" msgid "Queue selected tracks"
msgstr "Antre trek terpilih" msgstr "Antre trek terpilih"
#: core/mainwindow.cpp:680 core/mainwindow.cpp:1832 #: core/mainwindow.cpp:681 core/mainwindow.cpp:1845
msgid "Queue selected tracks to play next" msgid "Queue selected tracks to play next"
msgstr "Antre trek terpilih untuk diputar selanjutnya" msgstr "Antre trek terpilih untuk diputar selanjutnya"
#: core/mainwindow.cpp:1834 collection/collectionview.cpp:347 #: core/mainwindow.cpp:1847 collection/collectionview.cpp:347
#: internet/internetcollectionview.cpp:317 #: internet/internetcollectionview.cpp:317
msgid "Queue to play next" msgid "Queue to play next"
msgstr "Antre untuk diputar selanjutnya" msgstr "Antre untuk diputar selanjutnya"
#: core/mainwindow.cpp:1827 context/contextalbumsview.cpp:257 #: core/mainwindow.cpp:1840 context/contextalbumsview.cpp:257
#: collection/collectionview.cpp:346 #: collection/collectionview.cpp:346
#: smartplaylists/smartplaylistsviewcontainer.cpp:75 #: smartplaylists/smartplaylistsviewcontainer.cpp:75
#: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316 #: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316
@@ -3714,7 +3738,7 @@ msgstr ""
msgid "Rescan song(s)" msgid "Rescan song(s)"
msgstr "Pindai ulang lagu" msgstr "Pindai ulang lagu"
#: core/mainwindow.cpp:696 #: core/mainwindow.cpp:697
msgid "Rescan song(s)..." msgid "Rescan song(s)..."
msgstr "" msgstr ""
@@ -3722,7 +3746,7 @@ msgstr ""
msgid "Reset" msgid "Reset"
msgstr "Setel-ulang" msgstr "Setel-ulang"
#: dialogs/edittagdialog.cpp:869 ../build/src/ui_edittagdialog.h:688 #: dialogs/edittagdialog.cpp:872 ../build/src/ui_edittagdialog.h:688
msgid "Reset play counts" msgid "Reset play counts"
msgstr "Setel-ulang jumlah putar" msgstr "Setel-ulang jumlah putar"
@@ -3829,7 +3853,7 @@ msgid "Safely remove the device after copying"
msgstr "Secara aman melepas perangkat setelah menyalin" msgstr "Secara aman melepas perangkat setelah menyalin"
#: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280 #: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280
#: organize/organizedialog.cpp:114 ../build/src/ui_groupbydialog.h:200 #: organize/organizedialog.cpp:117 ../build/src/ui_groupbydialog.h:200
#: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244 #: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244
#: ../build/src/ui_edittagdialog.h:694 #: ../build/src/ui_edittagdialog.h:694
msgid "Sample rate" msgid "Sample rate"
@@ -3889,7 +3913,7 @@ msgstr "Pengelola Pengelompokan Tersimpan"
msgid "Saving album covers" msgid "Saving album covers"
msgstr "Menyimpan sampul album" msgstr "Menyimpan sampul album"
#: dialogs/edittagdialog.cpp:784 dialogs/trackselectiondialog.cpp:291 #: dialogs/edittagdialog.cpp:787 dialogs/trackselectiondialog.cpp:291
msgid "Saving tracks" msgid "Saving tracks"
msgstr "Menyimpan trek" msgstr "Menyimpan trek"
@@ -4022,7 +4046,7 @@ msgstr "URL server tidak benar."
msgid "Server-side scrobbling" msgid "Server-side scrobbling"
msgstr "" msgstr ""
#: core/mainwindow.cpp:1866 #: core/mainwindow.cpp:1879
#, qt-format #, qt-format
msgid "Set %1 to \"%2\"..." msgid "Set %1 to \"%2\"..."
msgstr "Tetapkan %1 ke \"%2\"..." msgstr "Tetapkan %1 ke \"%2\"..."
@@ -4109,7 +4133,7 @@ msgstr "Tampilkan sampul album di pustaka"
msgid "Show albums by artist" msgid "Show albums by artist"
msgstr "Tampilkan album berdasarkan artis" msgstr "Tampilkan album berdasarkan artis"
#: core/mainwindow.cpp:627 #: core/mainwindow.cpp:628
msgid "Show all songs" msgid "Show all songs"
msgstr "Tampilkan semua lagu" msgstr "Tampilkan semua lagu"
@@ -4133,7 +4157,7 @@ msgstr "Tampilkan mesin dan perangkat"
msgid "Show fullsize..." msgid "Show fullsize..."
msgstr "Tampilkan ukuran penuh..." msgstr "Tampilkan ukuran penuh..."
#: core/mainwindow.cpp:703 #: core/mainwindow.cpp:704
msgid "Show in collection..." msgid "Show in collection..."
msgstr "Tampilkan di pustaka..." msgstr "Tampilkan di pustaka..."
@@ -4141,7 +4165,7 @@ msgstr "Tampilkan di pustaka..."
msgid "Show in file browser" msgid "Show in file browser"
msgstr "Tampilkan di peramban berkas" msgstr "Tampilkan di peramban berkas"
#: core/mainwindow.cpp:704 context/contextalbumsview.cpp:268 #: core/mainwindow.cpp:705 context/contextalbumsview.cpp:268
#: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55 #: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55
msgid "Show in file browser..." msgid "Show in file browser..."
msgstr "Tampilkan di peramban berkas..." msgstr "Tampilkan di peramban berkas..."
@@ -4158,11 +4182,11 @@ msgstr "Tampilkan tombol suka"
msgid "Show moodbar" msgid "Show moodbar"
msgstr "Tampilkan moodbar" msgstr "Tampilkan moodbar"
#: core/mainwindow.cpp:628 #: core/mainwindow.cpp:629
msgid "Show only duplicates" msgid "Show only duplicates"
msgstr "Tampilkan hanya duplikat" msgstr "Tampilkan hanya duplikat"
#: core/mainwindow.cpp:629 #: core/mainwindow.cpp:630
msgid "Show only untagged" msgid "Show only untagged"
msgstr "Tampilkan hanya tidak bertag" msgstr "Tampilkan hanya tidak bertag"
@@ -4251,11 +4275,11 @@ msgstr "Lewati hitungan"
msgid "Skip forwards in playlist" msgid "Skip forwards in playlist"
msgstr "Lewati maju di dalam daftar putar" msgstr "Lewati maju di dalam daftar putar"
#: core/mainwindow.cpp:1839 #: core/mainwindow.cpp:1852
msgid "Skip selected tracks" msgid "Skip selected tracks"
msgstr "Lewati trek yang dipilih" msgstr "Lewati trek yang dipilih"
#: core/mainwindow.cpp:1838 #: core/mainwindow.cpp:1851
msgid "Skip track" msgid "Skip track"
msgstr "Lewati trek" msgstr "Lewati trek"
@@ -4271,7 +4295,7 @@ msgstr "Bilah sisi kecil"
msgid "Smart playlist" msgid "Smart playlist"
msgstr "" msgstr ""
#: core/mainwindow.cpp:340 #: core/mainwindow.cpp:341
msgid "Smart playlists" msgid "Smart playlists"
msgstr "" msgstr ""
@@ -4355,7 +4379,7 @@ msgstr "Berhenti setelah masing-masing trek"
msgid "Stop after every track" msgid "Stop after every track"
msgstr "Berhenti setelah setiap trek" msgstr "Berhenti setelah setiap trek"
#: core/mainwindow.cpp:676 ../build/src/ui_mainwindow.h:627 #: core/mainwindow.cpp:677 ../build/src/ui_mainwindow.h:627
msgid "Stop after this track" msgid "Stop after this track"
msgstr "Berhenti setelah trek ini" msgstr "Berhenti setelah trek ini"
@@ -4415,6 +4439,21 @@ msgid ""
"on %1" "on %1"
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:40
msgid "Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_snapdialog.h:117
msgid "Strawberry is running as a snap"
msgstr ""
#: dialogs/snapdialog.cpp:48
msgid ""
"Strawberry is slower, and has restrictions when running as a Snap. Accessing "
"the root filesystem (/) will not work. There also might be other "
"restrictions such as accessing certain devices or network shares."
msgstr ""
#: ../build/src/ui_trackselectiondialog.h:205 #: ../build/src/ui_trackselectiondialog.h:205
msgid "Strawberry was unable to find results for this file" msgid "Strawberry was unable to find results for this file"
msgstr "Strawberry tidak dapat menemukan hasil untuk berkas ini" msgstr "Strawberry tidak dapat menemukan hasil untuk berkas ini"
@@ -4439,7 +4478,7 @@ msgstr "Regangkan gambar hingga memenuhi daftar putar"
msgid "Submit scrobbles every" msgid "Submit scrobbles every"
msgstr "Kirimkan scrobble setiap" msgstr "Kirimkan scrobble setiap"
#: core/mainwindow.cpp:346 ../build/src/ui_scrobblersettingspage.h:407 #: core/mainwindow.cpp:347 ../build/src/ui_scrobblersettingspage.h:407
#: ../build/src/ui_subsonicsettingspage.h:188 #: ../build/src/ui_subsonicsettingspage.h:188
msgid "Subsonic" msgid "Subsonic"
msgstr "Subsonic" msgstr "Subsonic"
@@ -4565,7 +4604,7 @@ msgstr "Situs yang Anda minta tidak ada!"
msgid "The site you requested is not an image!" msgid "The site you requested is not an image!"
msgstr "Situs yang Anda minta bukan sebuah gambar!" msgstr "Situs yang Anda minta bukan sebuah gambar!"
#: core/mainwindow.cpp:2698 #: core/mainwindow.cpp:2711
msgid "" msgid ""
"The version of Strawberry you've just updated to requires a full collection " "The version of Strawberry you've just updated to requires a full collection "
"rescan because of the new features listed below:" "rescan because of the new features listed below:"
@@ -4671,7 +4710,7 @@ msgstr "Opsi ini dapat diubah di pengaturan \"Perilaku\""
msgid "This type of device is not supported: %1" msgid "This type of device is not supported: %1"
msgstr "Tipe perangkat ini tidak didukung: %1" msgstr "Tipe perangkat ini tidak didukung: %1"
#: core/mainwindow.cpp:349 ../build/src/ui_scrobblersettingspage.h:408 #: core/mainwindow.cpp:350 ../build/src/ui_scrobblersettingspage.h:408
#: ../build/src/ui_tidalsettingspage.h:312 #: ../build/src/ui_tidalsettingspage.h:312
msgid "Tidal" msgid "Tidal"
msgstr "Tidal" msgstr "Tidal"
@@ -4686,7 +4725,7 @@ msgstr ""
msgid "Time step" msgid "Time step"
msgstr "Selang waktu" msgstr "Selang waktu"
#: playlist/playlist.cpp:1262 organize/organizedialog.cpp:98 #: playlist/playlist.cpp:1262 organize/organizedialog.cpp:101
#: ../build/src/ui_contextsettingspage.h:414 #: ../build/src/ui_contextsettingspage.h:414
#: ../build/src/ui_edittagdialog.h:705 #: ../build/src/ui_edittagdialog.h:705
#: ../build/src/ui_trackselectiondialog.h:210 #: ../build/src/ui_trackselectiondialog.h:210
@@ -4697,7 +4736,7 @@ msgstr "Judul"
msgid "Today" msgid "Today"
msgstr "Hari Ini" msgstr "Hari Ini"
#: core/mainwindow.cpp:677 core/mainwindow.cpp:1829 #: core/mainwindow.cpp:678 core/mainwindow.cpp:1842
msgid "Toggle queue status" msgid "Toggle queue status"
msgstr "Alihkan status antrean" msgstr "Alihkan status antrean"
@@ -4705,7 +4744,7 @@ msgstr "Alihkan status antrean"
msgid "Toggle scrobbling" msgid "Toggle scrobbling"
msgstr "Alihkan scrobbling" msgstr "Alihkan scrobbling"
#: core/mainwindow.cpp:683 core/mainwindow.cpp:1840 #: core/mainwindow.cpp:684 core/mainwindow.cpp:1853
msgid "Toggle skip status" msgid "Toggle skip status"
msgstr "Alihkan status melewati" msgstr "Alihkan status melewati"
@@ -4733,7 +4772,7 @@ msgstr "Jumlah byte yang ditransfer"
msgid "Total network requests made" msgid "Total network requests made"
msgstr "Total permintaan jaringan yang dibuat" msgstr "Total permintaan jaringan yang dibuat"
#: playlist/playlist.cpp:1265 organize/organizedialog.cpp:106 #: playlist/playlist.cpp:1265 organize/organizedialog.cpp:109
#: ../build/src/ui_edittagdialog.h:712 #: ../build/src/ui_edittagdialog.h:712
#: ../build/src/ui_trackselectiondialog.h:212 #: ../build/src/ui_trackselectiondialog.h:212
msgid "Track" msgid "Track"
@@ -4791,8 +4830,8 @@ msgstr "Pita ultra lebar (UWB)"
msgid "Unknown" msgid "Unknown"
msgstr "Tidak diketahui" msgstr "Tidak diketahui"
#: subsonic/subsonicrequest.cpp:858 tidal/tidalrequest.cpp:1262 #: subsonic/subsonicrequest.cpp:864 tidal/tidalrequest.cpp:1259
#: qobuz/qobuzrequest.cpp:1324 #: qobuz/qobuzrequest.cpp:1321
msgid "Unknown error" msgid "Unknown error"
msgstr "Kesalahan tak terduga" msgstr "Kesalahan tak terduga"
@@ -4800,11 +4839,11 @@ msgstr "Kesalahan tak terduga"
msgid "Unset cover" msgid "Unset cover"
msgstr "Tak set sampul" msgstr "Tak set sampul"
#: core/mainwindow.cpp:1837 #: core/mainwindow.cpp:1850
msgid "Unskip selected tracks" msgid "Unskip selected tracks"
msgstr "Taklewati trek yang dipilih" msgstr "Taklewati trek yang dipilih"
#: core/mainwindow.cpp:1836 #: core/mainwindow.cpp:1849
msgid "Unskip track" msgid "Unskip track"
msgstr "Taklewati trek" msgstr "Taklewati trek"
@@ -5040,7 +5079,7 @@ msgid ""
"well?" "well?"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2702 #: core/mainwindow.cpp:2715
msgid "Would you like to run a full rescan right now?" msgid "Would you like to run a full rescan right now?"
msgstr "Apakah Anda ingin menjalankan pemindaian ulang menyeluruh sekarang?" msgstr "Apakah Anda ingin menjalankan pemindaian ulang menyeluruh sekarang?"
@@ -5049,7 +5088,7 @@ msgid "Write metadata when saving playlists"
msgstr "Tulis metadata saat menyimpan daftar putar" msgstr "Tulis metadata saat menyimpan daftar putar"
#: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268 #: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268
#: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:191 #: organize/organizedialog.cpp:111 ../build/src/ui_groupbydialog.h:191
#: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235 #: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235
#: ../build/src/ui_edittagdialog.h:714 #: ../build/src/ui_edittagdialog.h:714
#: ../build/src/ui_trackselectiondialog.h:211 #: ../build/src/ui_trackselectiondialog.h:211

View File

@@ -555,7 +555,7 @@ msgstr ""
msgid "Add directory..." msgid "Add directory..."
msgstr "Aggiungi cartella..." msgstr "Aggiungi cartella..."
#: core/mainwindow.cpp:2101 #: core/mainwindow.cpp:2114
msgid "Add file" msgid "Add file"
msgstr "Aggiungi file" msgstr "Aggiungi file"
@@ -571,7 +571,7 @@ msgstr "Aggiungi file al transcodificatore"
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Aggiungi file da transcodificare" msgstr "Aggiungi file da transcodificare"
#: core/mainwindow.cpp:2126 transcoder/transcodedialog.cpp:419 #: core/mainwindow.cpp:2139 transcoder/transcodedialog.cpp:419
msgid "Add folder" msgid "Add folder"
msgstr "Aggiungi cartella" msgstr "Aggiungi cartella"
@@ -674,7 +674,7 @@ msgstr ""
msgid "Add to albums" msgid "Add to albums"
msgstr "Aggiungi agli album" msgstr "Aggiungi agli album"
#: core/mainwindow.cpp:1909 #: core/mainwindow.cpp:1922
msgid "Add to another playlist" msgid "Add to another playlist"
msgstr "Aggiungi a un'altra scaletta" msgstr "Aggiungi a un'altra scaletta"
@@ -733,7 +733,7 @@ msgid "Albu&m cover"
msgstr "Copertina dell'albu&m" msgstr "Copertina dell'albu&m"
#: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264 #: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264
#: organize/organizedialog.cpp:99 ../build/src/ui_groupbydialog.h:186 #: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:186
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230 #: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
#: ../build/src/ui_albumcoversearcher.h:110 #: ../build/src/ui_albumcoversearcher.h:110
#: ../build/src/ui_albumcoversearcher.h:112 #: ../build/src/ui_albumcoversearcher.h:112
@@ -753,7 +753,7 @@ msgid "Album - Disc"
msgstr "Album - Disco" msgstr "Album - Disco"
#: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271 #: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271
#: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:185 #: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:185
#: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229 #: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229
#: ../build/src/ui_edittagdialog.h:709 #: ../build/src/ui_edittagdialog.h:709
msgid "Album artist" msgid "Album artist"
@@ -793,7 +793,7 @@ msgstr "Album con copertina"
msgid "Albums without covers" msgid "Albums without covers"
msgstr "Album senza copertina" msgstr "Album senza copertina"
#: core/mainwindow.cpp:208 #: core/mainwindow.cpp:209
msgid "All Files (*)" msgid "All Files (*)"
msgstr "Tutti i file (*)" msgstr "Tutti i file (*)"
@@ -840,7 +840,7 @@ msgid "An error occurred loading the iTunes database"
msgstr "" msgstr ""
"Si è verificato un errore durante la il caricamento del database di iTunes" "Si è verificato un errore durante la il caricamento del database di iTunes"
#: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:953 #: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:956
#, qt-format #, qt-format
msgid "An error occurred writing metadata to '%1'" msgid "An error occurred writing metadata to '%1'"
msgstr "Si è verificato un errore durante la scrittura dei metadati su '%1'" msgstr "Si è verificato un errore durante la scrittura dei metadati su '%1'"
@@ -889,12 +889,12 @@ msgstr ""
msgid "Are you sure you want to delete the \"%1\" preset?" msgid "Are you sure you want to delete the \"%1\" preset?"
msgstr "Sei sicuro di voler eliminare la preimpostazione \"%1\"?" msgstr "Sei sicuro di voler eliminare la preimpostazione \"%1\"?"
#: dialogs/edittagdialog.cpp:869 #: dialogs/edittagdialog.cpp:872
msgid "Are you sure you want to reset this song's statistics?" msgid "Are you sure you want to reset this song's statistics?"
msgstr "Sei sicuro di voler azzerare le statistiche del brano?" msgstr "Sei sicuro di voler azzerare le statistiche del brano?"
#: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263 #: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263
#: organize/organizedialog.cpp:100 ../build/src/ui_groupbydialog.h:184 #: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:184
#: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228 #: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228
#: ../build/src/ui_albumcoversearcher.h:106 #: ../build/src/ui_albumcoversearcher.h:106
#: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713 #: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713
@@ -902,7 +902,7 @@ msgstr "Sei sicuro di voler azzerare le statistiche del brano?"
msgid "Artist" msgid "Artist"
msgstr "Artista" msgstr "Artista"
#: organize/organizedialog.cpp:101 #: organize/organizedialog.cpp:104
msgid "Artist's initial" msgid "Artist's initial"
msgstr "Iniziale dell'artista" msgstr "Iniziale dell'artista"
@@ -1038,7 +1038,7 @@ msgid "Best"
msgstr "Migliore" msgstr "Migliore"
#: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136 #: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136
#: playlist/playlist.cpp:1281 organize/organizedialog.cpp:115 #: playlist/playlist.cpp:1281 organize/organizedialog.cpp:118
#: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223 #: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223
#: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695 #: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695
msgid "Bit depth" msgid "Bit depth"
@@ -1059,7 +1059,7 @@ msgstr "Bitrate"
msgid "Bitrate" msgid "Bitrate"
msgstr "Bitrate" msgstr "Bitrate"
#: organize/organizedialog.cpp:113 #: organize/organizedialog.cpp:116
msgctxt "Refers to bitrate in file organize dialog." msgctxt "Refers to bitrate in file organize dialog."
msgid "Bitrate" msgid "Bitrate"
msgstr "" msgstr ""
@@ -1104,7 +1104,7 @@ msgstr "Buffer"
msgid "Buffer duration" msgid "Buffer duration"
msgstr "Durata del buffer" msgstr "Durata del buffer"
#: engine/gstengine.cpp:630 #: engine/gstengine.cpp:681
msgid "Buffering" msgid "Buffering"
msgstr "Riempimento buffer in corso" msgstr "Riempimento buffer in corso"
@@ -1125,7 +1125,7 @@ msgstr "CDDA"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: tidal/tidalstreamurlrequest.cpp:107 qobuz/qobuzstreamurlrequest.cpp:103 #: tidal/tidalstreamurlrequest.cpp:108 qobuz/qobuzstreamurlrequest.cpp:103
msgid "Cancelled." msgid "Cancelled."
msgstr "Cancellato." msgstr "Cancellato."
@@ -1145,7 +1145,7 @@ msgstr "Cambierà la traccia in riproduzione"
msgid "Change the language" msgid "Change the language"
msgstr "Cambia la lingua" msgstr "Cambia la lingua"
#: core/mainwindow.cpp:758 #: core/mainwindow.cpp:759
msgid "Check for updates..." msgid "Check for updates..."
msgstr "Controlla aggiornamenti..." msgstr "Controlla aggiornamenti..."
@@ -1190,7 +1190,7 @@ msgstr "Svuota"
msgid "Clear Disk Cache" msgid "Clear Disk Cache"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2191 ../build/src/ui_mainwindow.h:634 #: core/mainwindow.cpp:2204 ../build/src/ui_mainwindow.h:634
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Svuota la scaletta" msgstr "Svuota la scaletta"
@@ -1244,7 +1244,7 @@ msgstr "La chiusura di questa finestra fermerà la ricerca delle copertine."
msgid "Club" msgid "Club"
msgstr "Club" msgstr "Club"
#: core/mainwindow.cpp:337 ../build/src/ui_collectionsettingspage.h:406 #: core/mainwindow.cpp:338 ../build/src/ui_collectionsettingspage.h:406
#: ../build/src/ui_scrobblersettingspage.h:402 #: ../build/src/ui_scrobblersettingspage.h:402
msgid "Collection" msgid "Collection"
msgstr "Raccolta" msgstr "Raccolta"
@@ -1257,7 +1257,7 @@ msgstr "Filtro della Collezione"
msgid "Collection advanced grouping" msgid "Collection advanced grouping"
msgstr "Raggruppamento avanzato della raccolta" msgstr "Raggruppamento avanzato della raccolta"
#: core/mainwindow.cpp:2703 #: core/mainwindow.cpp:2716
msgid "Collection rescan notice" msgid "Collection rescan notice"
msgstr "Notifica nuova scansione della raccolta" msgstr "Notifica nuova scansione della raccolta"
@@ -1274,7 +1274,7 @@ msgid "Comma separated list of class:level, level is 0-3"
msgstr "Elenco separato da virgole di classe:livello, livello è 0-3" msgstr "Elenco separato da virgole di classe:livello, livello è 0-3"
#: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374 #: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374
#: organize/organizedialog.cpp:111 ../build/src/ui_edittagdialog.h:711 #: organize/organizedialog.cpp:114 ../build/src/ui_edittagdialog.h:711
msgid "Comment" msgid "Comment"
msgstr "Commento" msgstr "Commento"
@@ -1291,7 +1291,7 @@ msgid "Complete tags automatically..."
msgstr "Completa automaticamente i tag..." msgstr "Completa automaticamente i tag..."
#: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272 #: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272
#: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:196 #: organize/organizedialog.cpp:106 ../build/src/ui_groupbydialog.h:196
#: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240 #: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240
#: ../build/src/ui_edittagdialog.h:710 #: ../build/src/ui_edittagdialog.h:710
msgid "Composer" msgid "Composer"
@@ -1318,7 +1318,7 @@ msgstr "Configura %1..."
msgid "Configure buttons" msgid "Configure buttons"
msgstr "" msgstr ""
#: core/mainwindow.cpp:638 #: core/mainwindow.cpp:639
msgid "Configure collection..." msgid "Configure collection..."
msgstr "Configura raccolta..." msgstr "Configura raccolta..."
@@ -1334,7 +1334,7 @@ msgstr "Console"
msgid "Constant bitrate" msgid "Constant bitrate"
msgstr "Bitrate costante" msgstr "Bitrate costante"
#: core/mainwindow.cpp:336 ../build/src/ui_contextsettingspage.h:361 #: core/mainwindow.cpp:337 ../build/src/ui_contextsettingspage.h:361
msgid "Context" msgid "Context"
msgstr "Contesto" msgstr "Contesto"
@@ -1356,7 +1356,7 @@ msgstr "Converti tutta la musica"
msgid "Convert any music that the device can't play" msgid "Convert any music that the device can't play"
msgstr "Converti qualsiasi musica che il dispositivo non può riprodurre" msgstr "Converti qualsiasi musica che il dispositivo non può riprodurre"
#: core/mainwindow.cpp:702 #: core/mainwindow.cpp:703
msgid "Copy URL(s)..." msgid "Copy URL(s)..."
msgstr "" msgstr ""
@@ -1364,7 +1364,7 @@ msgstr ""
msgid "Copy album cover artwork" msgid "Copy album cover artwork"
msgstr "Copia la copertina dell'album" msgstr "Copia la copertina dell'album"
#: core/mainwindow.cpp:706 widgets/fileviewlist.cpp:48 #: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:48
#: device/deviceview.cpp:239 #: device/deviceview.cpp:239
msgid "Copy to collection..." msgid "Copy to collection..."
msgstr "Copia nella raccolta..." msgstr "Copia nella raccolta..."
@@ -1373,7 +1373,7 @@ msgstr "Copia nella raccolta..."
msgid "Copy to device" msgid "Copy to device"
msgstr "" msgstr ""
#: core/mainwindow.cpp:709 context/contextalbumsview.cpp:262 #: core/mainwindow.cpp:710 context/contextalbumsview.cpp:262
#: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104 #: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104
#: widgets/fileviewlist.cpp:50 #: widgets/fileviewlist.cpp:50
msgid "Copy to device..." msgid "Copy to device..."
@@ -1614,7 +1614,7 @@ msgstr "Elimina i file"
msgid "Delete from device..." msgid "Delete from device..."
msgstr "Elimina da dispositivo..." msgstr "Elimina da dispositivo..."
#: core/mainwindow.cpp:711 collection/collectionview.cpp:354 #: core/mainwindow.cpp:712 collection/collectionview.cpp:354
#: widgets/fileviewlist.cpp:51 #: widgets/fileviewlist.cpp:51
msgid "Delete from disk..." msgid "Delete from disk..."
msgstr "Elimina dal disco..." msgstr "Elimina dal disco..."
@@ -1636,11 +1636,11 @@ msgstr "Elimina i file originali"
msgid "Deleting files" msgid "Deleting files"
msgstr "Eliminazione dei file" msgstr "Eliminazione dei file"
#: core/mainwindow.cpp:1826 #: core/mainwindow.cpp:1839
msgid "Dequeue selected tracks" msgid "Dequeue selected tracks"
msgstr "Rimuovi le tracce selezionate dalla coda" msgstr "Rimuovi le tracce selezionate dalla coda"
#: core/mainwindow.cpp:1825 #: core/mainwindow.cpp:1838
msgid "Dequeue track" msgid "Dequeue track"
msgstr "Rimuovi tracce dalla coda" msgstr "Rimuovi tracce dalla coda"
@@ -1666,7 +1666,7 @@ msgstr "Proprietà del dispositivo"
msgid "Device properties..." msgid "Device properties..."
msgstr "Proprietà del dispositivo..." msgstr "Proprietà del dispositivo..."
#: core/mainwindow.cpp:343 #: core/mainwindow.cpp:344
msgid "Devices" msgid "Devices"
msgstr "Dispositivi" msgstr "Dispositivi"
@@ -1688,7 +1688,7 @@ msgid "Disabled"
msgstr "Disabilitata" msgstr "Disabilitata"
#: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266 #: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266
#: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:188 #: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:188
#: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232 #: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232
#: ../build/src/ui_edittagdialog.h:708 #: ../build/src/ui_edittagdialog.h:708
msgid "Disc" msgid "Disc"
@@ -1723,6 +1723,10 @@ msgstr "Non ritagliare l'immagine"
msgid "Do not overwrite" msgid "Do not overwrite"
msgstr "Non sovrascrivere" msgstr "Non sovrascrivere"
#: ../build/src/ui_snapdialog.h:120
msgid "Do not show this message again."
msgstr ""
#: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110 #: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110
msgid "Don't repeat" msgid "Don't repeat"
msgstr "Non ripetere" msgstr "Non ripetere"
@@ -1781,7 +1785,7 @@ msgstr ""
msgid "Edit smart playlist..." msgid "Edit smart playlist..."
msgstr "" msgstr ""
#: core/mainwindow.cpp:1867 #: core/mainwindow.cpp:1880
#, qt-format #, qt-format
msgid "Edit tag \"%1\"..." msgid "Edit tag \"%1\"..."
msgstr "Modifica tag \"%1\"..." msgstr "Modifica tag \"%1\"..."
@@ -1933,7 +1937,7 @@ msgstr "Equivalente a --log-levels *:1"
msgid "Equivalent to --log-levels *:3" msgid "Equivalent to --log-levels *:3"
msgstr "Equivalente a --log-levels *:3" msgstr "Equivalente a --log-levels *:3"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "Error" msgid "Error"
msgstr "Errore" msgstr "Errore"
@@ -2099,7 +2103,7 @@ msgstr "Errore di scaricamento della copertina"
msgid "File %1 is not recognized as a valid audio file." msgid "File %1 is not recognized as a valid audio file."
msgstr "Il file %1 non è stato riconosciuto come un file audio valido." msgstr "Il file %1 non è stato riconosciuto come un file audio valido."
#: organize/organizedialog.cpp:116 #: organize/organizedialog.cpp:119
msgid "File extension" msgid "File extension"
msgstr "Estensione file" msgstr "Estensione file"
@@ -2137,7 +2141,7 @@ msgstr "Nome file"
msgid "Filename:" msgid "Filename:"
msgstr "Nome del file:" msgstr "Nome del file:"
#: core/mainwindow.cpp:341 #: core/mainwindow.cpp:342
msgid "Files" msgid "Files"
msgstr "File" msgstr "File"
@@ -2191,6 +2195,15 @@ msgstr ""
msgid "Font size" msgid "Font size"
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:56
#, qt-format
msgid "For Ubuntu there is an official PPA repository available at %1."
msgstr ""
#: dialogs/snapdialog.cpp:64
msgid "For a better experience please consider the other options above."
msgstr ""
#: ../build/src/ui_transcoderoptionsmp3.h:203 #: ../build/src/ui_transcoderoptionsmp3.h:203
msgid "Force mono encoding" msgid "Force mono encoding"
msgstr "Forza codifica mono" msgstr "Forza codifica mono"
@@ -2274,7 +2287,7 @@ msgid "Genius Authentication"
msgstr "" msgstr ""
#: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270 #: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270
#: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:190 #: organize/organizedialog.cpp:113 ../build/src/ui_groupbydialog.h:190
#: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234 #: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234
#: ../build/src/ui_edittagdialog.h:704 #: ../build/src/ui_edittagdialog.h:704
msgid "Genre" msgid "Genre"
@@ -2374,7 +2387,7 @@ msgid "Group by Genre/Artist/Album"
msgstr "Raggruppa per genere/artista/album" msgstr "Raggruppa per genere/artista/album"
#: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274 #: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274
#: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:198 #: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:198
#: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242 #: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242
#: ../build/src/ui_edittagdialog.h:706 #: ../build/src/ui_edittagdialog.h:706
msgid "Grouping" msgid "Grouping"
@@ -2556,6 +2569,10 @@ msgid ""
"audiophiles." "audiophiles."
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:44
msgid "It is detected that Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_behavioursettingspage.h:302 #: ../build/src/ui_behavioursettingspage.h:302
msgid "Jump to previous song right away" msgid "Jump to previous song right away"
msgstr "Salta subito al brano precedente" msgstr "Salta subito al brano precedente"
@@ -2620,7 +2637,7 @@ msgid "Left"
msgstr "Sinistra" msgstr "Sinistra"
#: context/contextview.cpp:214 playlist/playlist.cpp:1267 #: context/contextview.cpp:214 playlist/playlist.cpp:1267
#: organize/organizedialog.cpp:112 ../build/src/ui_edittagdialog.h:689 #: organize/organizedialog.cpp:115 ../build/src/ui_edittagdialog.h:689
msgid "Length" msgid "Length"
msgstr "Durata" msgstr "Durata"
@@ -2838,7 +2855,7 @@ msgstr "Nome utente o password di Subsonic mancante."
#: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796 #: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796
#: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918 #: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918
#: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:89 #: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:90
msgid "Missing Tidal API token, username or password." msgid "Missing Tidal API token, username or password."
msgstr "" msgstr ""
@@ -2924,7 +2941,7 @@ msgstr "Punti di mount"
msgid "Move down" msgid "Move down"
msgstr "Sposta in basso" msgstr "Sposta in basso"
#: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:49 #: core/mainwindow.cpp:708 widgets/fileviewlist.cpp:49
msgid "Move to collection..." msgid "Move to collection..."
msgstr "Sposta nella raccolta..." msgstr "Sposta nella raccolta..."
@@ -2933,7 +2950,7 @@ msgstr "Sposta nella raccolta..."
msgid "Move up" msgid "Move up"
msgstr "Sposta in alto" msgstr "Sposta in alto"
#: core/mainwindow.cpp:2101 transcoder/transcodedialog.cpp:328 #: core/mainwindow.cpp:2114 transcoder/transcodedialog.cpp:328
msgid "Music" msgid "Music"
msgstr "Musica" msgstr "Musica"
@@ -2978,7 +2995,7 @@ msgstr "Non iniziare mai la riproduzione"
msgid "New folder" msgid "New folder"
msgstr "Nuova cartella" msgstr "Nuova cartella"
#: core/mainwindow.cpp:1925 #: core/mainwindow.cpp:1938
msgid "New playlist" msgid "New playlist"
msgstr "Nuova scaletta" msgstr "Nuova scaletta"
@@ -3022,7 +3039,7 @@ msgstr "Nessuna copertina da esportare."
msgid "No long blocks" msgid "No long blocks"
msgstr "Nessun blocco lungo" msgstr "Nessun blocco lungo"
#: tidal/tidalrequest.cpp:1256 qobuz/qobuzrequest.cpp:1318 #: tidal/tidalrequest.cpp:1253 qobuz/qobuzrequest.cpp:1315
msgid "No match." msgid "No match."
msgstr "Nessuna corrispondenza." msgstr "Nessuna corrispondenza."
@@ -3050,7 +3067,7 @@ msgstr "Nessuna canzone in riproduzione"
msgid "None" msgid "None"
msgstr "Nessuna" msgstr "Nessuna"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "None of the selected songs were suitable for copying to a device" msgid "None of the selected songs were suitable for copying to a device"
msgstr "" msgstr ""
@@ -3078,7 +3095,7 @@ msgstr ""
#: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791 #: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791
#: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913 #: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913
#: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:85 #: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:86
msgid "Not authenticated with Tidal." msgid "Not authenticated with Tidal."
msgstr "Non sei autenticato con Tidal." msgstr "Non sei autenticato con Tidal."
@@ -3118,6 +3135,13 @@ msgstr "Anteprima OSD"
msgid "Off" msgid "Off"
msgstr "Spento" msgstr "Spento"
#: dialogs/snapdialog.cpp:60
#, qt-format
msgid ""
"Official releases are available for Debian and Ubuntu which also work on "
"most of their derivatives. See %1 for more information."
msgstr ""
#: osd/osdbase.cpp:245 #: osd/osdbase.cpp:245
msgid "On" msgid "On"
msgstr "Acceso" msgstr "Acceso"
@@ -3183,7 +3207,7 @@ msgstr "Opus"
msgid "Organize Files" msgid "Organize Files"
msgstr "" msgstr ""
#: core/mainwindow.cpp:705 context/contextalbumsview.cpp:260 #: core/mainwindow.cpp:706 context/contextalbumsview.cpp:260
#: collection/collectionview.cpp:350 #: collection/collectionview.cpp:350
msgid "Organize files..." msgid "Organize files..."
msgstr "" msgstr ""
@@ -3197,7 +3221,7 @@ msgid "Original tags"
msgstr "Tag originali" msgstr "Tag originali"
#: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269 #: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269
#: organize/organizedialog.cpp:109 ../build/src/ui_groupbydialog.h:194 #: organize/organizedialog.cpp:112 ../build/src/ui_groupbydialog.h:194
#: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238 #: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238
msgid "Original year" msgid "Original year"
msgstr "Anno originale" msgstr "Anno originale"
@@ -3256,7 +3280,7 @@ msgstr "Festa"
msgid "Password" msgid "Password"
msgstr "Password" msgstr "Password"
#: core/mainwindow.cpp:1247 core/mainwindow.cpp:1721 #: core/mainwindow.cpp:1260 core/mainwindow.cpp:1734
#: core/qtsystemtrayicon.cpp:190 #: core/qtsystemtrayicon.cpp:190
msgid "Pause" msgid "Pause"
msgstr "Pausa" msgstr "Pausa"
@@ -3270,7 +3294,7 @@ msgid "Paused"
msgstr "In pausa" msgstr "In pausa"
#: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273 #: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273
#: organize/organizedialog.cpp:104 ../build/src/ui_groupbydialog.h:197 #: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:197
#: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241 #: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241
#: ../build/src/ui_edittagdialog.h:715 #: ../build/src/ui_edittagdialog.h:715
msgid "Performer" msgid "Performer"
@@ -3284,8 +3308,8 @@ msgstr "Pixel"
msgid "Plain sidebar" msgid "Plain sidebar"
msgstr "Barra laterale semplice" msgstr "Barra laterale semplice"
#: core/mainwindow.cpp:674 core/mainwindow.cpp:1200 core/mainwindow.cpp:1229 #: core/mainwindow.cpp:675 core/mainwindow.cpp:1213 core/mainwindow.cpp:1242
#: core/mainwindow.cpp:1725 core/qtsystemtrayicon.cpp:177 #: core/mainwindow.cpp:1738 core/qtsystemtrayicon.cpp:177
#: core/qtsystemtrayicon.cpp:202 #: core/qtsystemtrayicon.cpp:202
msgid "Play" msgid "Play"
msgstr "Riproduci" msgstr "Riproduci"
@@ -3348,7 +3372,7 @@ msgstr ""
msgid "Playlist finished" msgid "Playlist finished"
msgstr "Scaletta terminata" msgstr "Scaletta terminata"
#: core/mainwindow.cpp:2191 #: core/mainwindow.cpp:2204
#, qt-format #, qt-format
msgid "" msgid ""
"Playlist has %1 songs, too large to undo, are you sure you want to clear the " "Playlist has %1 songs, too large to undo, are you sure you want to clear the "
@@ -3368,7 +3392,7 @@ msgstr "Opzioni della scaletta"
msgid "Playlist type" msgid "Playlist type"
msgstr "" msgstr ""
#: core/mainwindow.cpp:339 #: core/mainwindow.cpp:340
msgid "Playlists" msgid "Playlists"
msgstr "Playlist" msgstr "Playlist"
@@ -3494,7 +3518,7 @@ msgstr "Avanzamento"
msgid "Put songs in a random order" msgid "Put songs in a random order"
msgstr "" msgstr ""
#: core/mainwindow.cpp:352 ../build/src/ui_scrobblersettingspage.h:409 #: core/mainwindow.cpp:353 ../build/src/ui_scrobblersettingspage.h:409
#: ../build/src/ui_qobuzsettingspage.h:270 #: ../build/src/ui_qobuzsettingspage.h:270
msgid "Qobuz" msgid "Qobuz"
msgstr "Qobuz" msgstr "Qobuz"
@@ -3517,24 +3541,24 @@ msgstr "Qualità"
msgid "Querying device..." msgid "Querying device..."
msgstr "Interrogazione dispositivo..." msgstr "Interrogazione dispositivo..."
#: core/mainwindow.cpp:338 #: core/mainwindow.cpp:339
msgid "Queue" msgid "Queue"
msgstr "Coda" msgstr "Coda"
#: core/mainwindow.cpp:1828 #: core/mainwindow.cpp:1841
msgid "Queue selected tracks" msgid "Queue selected tracks"
msgstr "Accoda le tracce selezionate" msgstr "Accoda le tracce selezionate"
#: core/mainwindow.cpp:680 core/mainwindow.cpp:1832 #: core/mainwindow.cpp:681 core/mainwindow.cpp:1845
msgid "Queue selected tracks to play next" msgid "Queue selected tracks to play next"
msgstr "Accoda i brani selezionati per riprodurli successivamente" msgstr "Accoda i brani selezionati per riprodurli successivamente"
#: core/mainwindow.cpp:1834 collection/collectionview.cpp:347 #: core/mainwindow.cpp:1847 collection/collectionview.cpp:347
#: internet/internetcollectionview.cpp:317 #: internet/internetcollectionview.cpp:317
msgid "Queue to play next" msgid "Queue to play next"
msgstr "Accoda cosa riprodurre dopo" msgstr "Accoda cosa riprodurre dopo"
#: core/mainwindow.cpp:1827 context/contextalbumsview.cpp:257 #: core/mainwindow.cpp:1840 context/contextalbumsview.cpp:257
#: collection/collectionview.cpp:346 #: collection/collectionview.cpp:346
#: smartplaylists/smartplaylistsviewcontainer.cpp:75 #: smartplaylists/smartplaylistsviewcontainer.cpp:75
#: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316 #: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316
@@ -3729,7 +3753,7 @@ msgstr ""
msgid "Rescan song(s)" msgid "Rescan song(s)"
msgstr "Riscansiona canzone/i" msgstr "Riscansiona canzone/i"
#: core/mainwindow.cpp:696 #: core/mainwindow.cpp:697
msgid "Rescan song(s)..." msgid "Rescan song(s)..."
msgstr "" msgstr ""
@@ -3737,7 +3761,7 @@ msgstr ""
msgid "Reset" msgid "Reset"
msgstr "Azzera" msgstr "Azzera"
#: dialogs/edittagdialog.cpp:869 ../build/src/ui_edittagdialog.h:688 #: dialogs/edittagdialog.cpp:872 ../build/src/ui_edittagdialog.h:688
msgid "Reset play counts" msgid "Reset play counts"
msgstr "Azzera i contatori" msgstr "Azzera i contatori"
@@ -3844,7 +3868,7 @@ msgid "Safely remove the device after copying"
msgstr "Rimuovi il dispositivo in sicurezza al termine della copia" msgstr "Rimuovi il dispositivo in sicurezza al termine della copia"
#: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280 #: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280
#: organize/organizedialog.cpp:114 ../build/src/ui_groupbydialog.h:200 #: organize/organizedialog.cpp:117 ../build/src/ui_groupbydialog.h:200
#: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244 #: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244
#: ../build/src/ui_edittagdialog.h:694 #: ../build/src/ui_edittagdialog.h:694
msgid "Sample rate" msgid "Sample rate"
@@ -3904,7 +3928,7 @@ msgstr "Gestore raggruppamenti salvati"
msgid "Saving album covers" msgid "Saving album covers"
msgstr "Salvataggio delle copertine dell'album" msgstr "Salvataggio delle copertine dell'album"
#: dialogs/edittagdialog.cpp:784 dialogs/trackselectiondialog.cpp:291 #: dialogs/edittagdialog.cpp:787 dialogs/trackselectiondialog.cpp:291
msgid "Saving tracks" msgid "Saving tracks"
msgstr "Salvataggio tracce in corso" msgstr "Salvataggio tracce in corso"
@@ -4039,7 +4063,7 @@ msgstr "L'URL del server non è valido."
msgid "Server-side scrobbling" msgid "Server-side scrobbling"
msgstr "" msgstr ""
#: core/mainwindow.cpp:1866 #: core/mainwindow.cpp:1879
#, qt-format #, qt-format
msgid "Set %1 to \"%2\"..." msgid "Set %1 to \"%2\"..."
msgstr "Imposta %1 a \"%2\"..." msgstr "Imposta %1 a \"%2\"..."
@@ -4127,7 +4151,7 @@ msgstr "Mostra la copertina dell'album nella collezione"
msgid "Show albums by artist" msgid "Show albums by artist"
msgstr "Mostra gli album in base all'artista" msgstr "Mostra gli album in base all'artista"
#: core/mainwindow.cpp:627 #: core/mainwindow.cpp:628
msgid "Show all songs" msgid "Show all songs"
msgstr "Mostra tutti i brani" msgstr "Mostra tutti i brani"
@@ -4151,7 +4175,7 @@ msgstr "Mostra l'engine ed il dispositivo"
msgid "Show fullsize..." msgid "Show fullsize..."
msgstr "Mostra a dimensioni originali..." msgstr "Mostra a dimensioni originali..."
#: core/mainwindow.cpp:703 #: core/mainwindow.cpp:704
msgid "Show in collection..." msgid "Show in collection..."
msgstr "Mostra nella raccolta..." msgstr "Mostra nella raccolta..."
@@ -4159,7 +4183,7 @@ msgstr "Mostra nella raccolta..."
msgid "Show in file browser" msgid "Show in file browser"
msgstr "Mostra nel browser di file" msgstr "Mostra nel browser di file"
#: core/mainwindow.cpp:704 context/contextalbumsview.cpp:268 #: core/mainwindow.cpp:705 context/contextalbumsview.cpp:268
#: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55 #: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55
msgid "Show in file browser..." msgid "Show in file browser..."
msgstr "Mostra nel navigatore file..." msgstr "Mostra nel navigatore file..."
@@ -4176,11 +4200,11 @@ msgstr "Mostra il pulsante love"
msgid "Show moodbar" msgid "Show moodbar"
msgstr "Mostra la barra dell'umore" msgstr "Mostra la barra dell'umore"
#: core/mainwindow.cpp:628 #: core/mainwindow.cpp:629
msgid "Show only duplicates" msgid "Show only duplicates"
msgstr "Mostra solo i duplicati" msgstr "Mostra solo i duplicati"
#: core/mainwindow.cpp:629 #: core/mainwindow.cpp:630
msgid "Show only untagged" msgid "Show only untagged"
msgstr "Mostra solo i brani senza tag" msgstr "Mostra solo i brani senza tag"
@@ -4269,11 +4293,11 @@ msgstr "Salta il conteggio"
msgid "Skip forwards in playlist" msgid "Skip forwards in playlist"
msgstr "Salta in avanti nella scaletta" msgstr "Salta in avanti nella scaletta"
#: core/mainwindow.cpp:1839 #: core/mainwindow.cpp:1852
msgid "Skip selected tracks" msgid "Skip selected tracks"
msgstr "Salta le tracce selezionate" msgstr "Salta le tracce selezionate"
#: core/mainwindow.cpp:1838 #: core/mainwindow.cpp:1851
msgid "Skip track" msgid "Skip track"
msgstr "Salta la traccia" msgstr "Salta la traccia"
@@ -4289,7 +4313,7 @@ msgstr "Pannello laterale piccolo"
msgid "Smart playlist" msgid "Smart playlist"
msgstr "" msgstr ""
#: core/mainwindow.cpp:340 #: core/mainwindow.cpp:341
msgid "Smart playlists" msgid "Smart playlists"
msgstr "" msgstr ""
@@ -4374,7 +4398,7 @@ msgstr "Ferma dopo ogni traccia"
msgid "Stop after every track" msgid "Stop after every track"
msgstr "Ferma dopo tutte le tracce" msgstr "Ferma dopo tutte le tracce"
#: core/mainwindow.cpp:676 ../build/src/ui_mainwindow.h:627 #: core/mainwindow.cpp:677 ../build/src/ui_mainwindow.h:627
msgid "Stop after this track" msgid "Stop after this track"
msgstr "Ferma dopo questa traccia" msgstr "Ferma dopo questa traccia"
@@ -4435,6 +4459,21 @@ msgid ""
"on %1" "on %1"
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:40
msgid "Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_snapdialog.h:117
msgid "Strawberry is running as a snap"
msgstr ""
#: dialogs/snapdialog.cpp:48
msgid ""
"Strawberry is slower, and has restrictions when running as a Snap. Accessing "
"the root filesystem (/) will not work. There also might be other "
"restrictions such as accessing certain devices or network shares."
msgstr ""
#: ../build/src/ui_trackselectiondialog.h:205 #: ../build/src/ui_trackselectiondialog.h:205
msgid "Strawberry was unable to find results for this file" msgid "Strawberry was unable to find results for this file"
msgstr "Strawberry non ha trovato risultati per questo file" msgstr "Strawberry non ha trovato risultati per questo file"
@@ -4459,7 +4498,7 @@ msgstr "Allarga l'immagine per riempire la playlist"
msgid "Submit scrobbles every" msgid "Submit scrobbles every"
msgstr "Invia gli scrobbles ogni" msgstr "Invia gli scrobbles ogni"
#: core/mainwindow.cpp:346 ../build/src/ui_scrobblersettingspage.h:407 #: core/mainwindow.cpp:347 ../build/src/ui_scrobblersettingspage.h:407
#: ../build/src/ui_subsonicsettingspage.h:188 #: ../build/src/ui_subsonicsettingspage.h:188
msgid "Subsonic" msgid "Subsonic"
msgstr "Subsonic" msgstr "Subsonic"
@@ -4585,7 +4624,7 @@ msgstr "Il sito richiesto non esiste!"
msgid "The site you requested is not an image!" msgid "The site you requested is not an image!"
msgstr "Il sito richiesto non è un'immagine!" msgstr "Il sito richiesto non è un'immagine!"
#: core/mainwindow.cpp:2698 #: core/mainwindow.cpp:2711
msgid "" msgid ""
"The version of Strawberry you've just updated to requires a full collection " "The version of Strawberry you've just updated to requires a full collection "
"rescan because of the new features listed below:" "rescan because of the new features listed below:"
@@ -4695,7 +4734,7 @@ msgstr ""
msgid "This type of device is not supported: %1" msgid "This type of device is not supported: %1"
msgstr "Questi tipo di dispositivo non è supportato: %1" msgstr "Questi tipo di dispositivo non è supportato: %1"
#: core/mainwindow.cpp:349 ../build/src/ui_scrobblersettingspage.h:408 #: core/mainwindow.cpp:350 ../build/src/ui_scrobblersettingspage.h:408
#: ../build/src/ui_tidalsettingspage.h:312 #: ../build/src/ui_tidalsettingspage.h:312
msgid "Tidal" msgid "Tidal"
msgstr "Tidal" msgstr "Tidal"
@@ -4710,7 +4749,7 @@ msgstr ""
msgid "Time step" msgid "Time step"
msgstr "Intervallo di tempo" msgstr "Intervallo di tempo"
#: playlist/playlist.cpp:1262 organize/organizedialog.cpp:98 #: playlist/playlist.cpp:1262 organize/organizedialog.cpp:101
#: ../build/src/ui_contextsettingspage.h:414 #: ../build/src/ui_contextsettingspage.h:414
#: ../build/src/ui_edittagdialog.h:705 #: ../build/src/ui_edittagdialog.h:705
#: ../build/src/ui_trackselectiondialog.h:210 #: ../build/src/ui_trackselectiondialog.h:210
@@ -4721,7 +4760,7 @@ msgstr "Titolo"
msgid "Today" msgid "Today"
msgstr "Oggi" msgstr "Oggi"
#: core/mainwindow.cpp:677 core/mainwindow.cpp:1829 #: core/mainwindow.cpp:678 core/mainwindow.cpp:1842
msgid "Toggle queue status" msgid "Toggle queue status"
msgstr "Cambia lo stato della coda" msgstr "Cambia lo stato della coda"
@@ -4729,7 +4768,7 @@ msgstr "Cambia lo stato della coda"
msgid "Toggle scrobbling" msgid "Toggle scrobbling"
msgstr "Commuta lo scrobbling" msgstr "Commuta lo scrobbling"
#: core/mainwindow.cpp:683 core/mainwindow.cpp:1840 #: core/mainwindow.cpp:684 core/mainwindow.cpp:1853
msgid "Toggle skip status" msgid "Toggle skip status"
msgstr "Attiva / Disattiva lo status di ignoramento" msgstr "Attiva / Disattiva lo status di ignoramento"
@@ -4757,7 +4796,7 @@ msgstr "Totale byte trasferiti"
msgid "Total network requests made" msgid "Total network requests made"
msgstr "Totale richieste di rete effettuate" msgstr "Totale richieste di rete effettuate"
#: playlist/playlist.cpp:1265 organize/organizedialog.cpp:106 #: playlist/playlist.cpp:1265 organize/organizedialog.cpp:109
#: ../build/src/ui_edittagdialog.h:712 #: ../build/src/ui_edittagdialog.h:712
#: ../build/src/ui_trackselectiondialog.h:212 #: ../build/src/ui_trackselectiondialog.h:212
msgid "Track" msgid "Track"
@@ -4815,8 +4854,8 @@ msgstr "Banda ultra larga (UWB)"
msgid "Unknown" msgid "Unknown"
msgstr "Sconosciuto" msgstr "Sconosciuto"
#: subsonic/subsonicrequest.cpp:858 tidal/tidalrequest.cpp:1262 #: subsonic/subsonicrequest.cpp:864 tidal/tidalrequest.cpp:1259
#: qobuz/qobuzrequest.cpp:1324 #: qobuz/qobuzrequest.cpp:1321
msgid "Unknown error" msgid "Unknown error"
msgstr "Errore sconosciuto" msgstr "Errore sconosciuto"
@@ -4824,11 +4863,11 @@ msgstr "Errore sconosciuto"
msgid "Unset cover" msgid "Unset cover"
msgstr "Rimuovi copertina" msgstr "Rimuovi copertina"
#: core/mainwindow.cpp:1837 #: core/mainwindow.cpp:1850
msgid "Unskip selected tracks" msgid "Unskip selected tracks"
msgstr "Ripristina le tracce selezionate" msgstr "Ripristina le tracce selezionate"
#: core/mainwindow.cpp:1836 #: core/mainwindow.cpp:1849
msgid "Unskip track" msgid "Unskip track"
msgstr "Ripristina la traccia" msgstr "Ripristina la traccia"
@@ -5064,7 +5103,7 @@ msgid ""
"well?" "well?"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2702 #: core/mainwindow.cpp:2715
msgid "Would you like to run a full rescan right now?" msgid "Would you like to run a full rescan right now?"
msgstr "Vuoi eseguire subito una nuova scansione completa?" msgstr "Vuoi eseguire subito una nuova scansione completa?"
@@ -5073,7 +5112,7 @@ msgid "Write metadata when saving playlists"
msgstr "Scrivi i metadata quando si salvano le playlist" msgstr "Scrivi i metadata quando si salvano le playlist"
#: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268 #: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268
#: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:191 #: organize/organizedialog.cpp:111 ../build/src/ui_groupbydialog.h:191
#: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235 #: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235
#: ../build/src/ui_edittagdialog.h:714 #: ../build/src/ui_edittagdialog.h:714
#: ../build/src/ui_trackselectiondialog.h:211 #: ../build/src/ui_trackselectiondialog.h:211

View File

@@ -549,7 +549,7 @@ msgstr "디렉터리와 모든 하위 디렉터리의 트랙을 추가합니다"
msgid "Add directory..." msgid "Add directory..."
msgstr "디렉터리 추가..." msgstr "디렉터리 추가..."
#: core/mainwindow.cpp:2101 #: core/mainwindow.cpp:2114
msgid "Add file" msgid "Add file"
msgstr "파일 추가" msgstr "파일 추가"
@@ -565,7 +565,7 @@ msgstr "변환할 파일 추가"
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "변환할 파일 추가" msgstr "변환할 파일 추가"
#: core/mainwindow.cpp:2126 transcoder/transcodedialog.cpp:419 #: core/mainwindow.cpp:2139 transcoder/transcodedialog.cpp:419
msgid "Add folder" msgid "Add folder"
msgstr "폴더 추가" msgstr "폴더 추가"
@@ -668,7 +668,7 @@ msgstr ""
msgid "Add to albums" msgid "Add to albums"
msgstr "앨범에 추가" msgstr "앨범에 추가"
#: core/mainwindow.cpp:1909 #: core/mainwindow.cpp:1922
msgid "Add to another playlist" msgid "Add to another playlist"
msgstr "다른 재생 목록에 추가" msgstr "다른 재생 목록에 추가"
@@ -727,7 +727,7 @@ msgid "Albu&m cover"
msgstr "앨범아트(&M)" msgstr "앨범아트(&M)"
#: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264 #: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264
#: organize/organizedialog.cpp:99 ../build/src/ui_groupbydialog.h:186 #: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:186
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230 #: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
#: ../build/src/ui_albumcoversearcher.h:110 #: ../build/src/ui_albumcoversearcher.h:110
#: ../build/src/ui_albumcoversearcher.h:112 #: ../build/src/ui_albumcoversearcher.h:112
@@ -747,7 +747,7 @@ msgid "Album - Disc"
msgstr "앨범 - 디스크" msgstr "앨범 - 디스크"
#: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271 #: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271
#: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:185 #: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:185
#: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229 #: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229
#: ../build/src/ui_edittagdialog.h:709 #: ../build/src/ui_edittagdialog.h:709
msgid "Album artist" msgid "Album artist"
@@ -787,7 +787,7 @@ msgstr "앨범아트가 있는 앨범"
msgid "Albums without covers" msgid "Albums without covers"
msgstr "앨범아트가 없는 앨범" msgstr "앨범아트가 없는 앨범"
#: core/mainwindow.cpp:208 #: core/mainwindow.cpp:209
msgid "All Files (*)" msgid "All Files (*)"
msgstr "모든 파일 (*)" msgstr "모든 파일 (*)"
@@ -833,7 +833,7 @@ msgstr "항상 재생 시작"
msgid "An error occurred loading the iTunes database" msgid "An error occurred loading the iTunes database"
msgstr "iTunes 데이터베이스를 불러오는 중 오류 발생" msgstr "iTunes 데이터베이스를 불러오는 중 오류 발생"
#: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:953 #: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:956
#, qt-format #, qt-format
msgid "An error occurred writing metadata to '%1'" msgid "An error occurred writing metadata to '%1'"
msgstr "'%1'에 메타데이터를 쓰는 중 오류 발생" msgstr "'%1'에 메타데이터를 쓰는 중 오류 발생"
@@ -882,12 +882,12 @@ msgstr ""
msgid "Are you sure you want to delete the \"%1\" preset?" msgid "Are you sure you want to delete the \"%1\" preset?"
msgstr "\"%1\" 사전 설정을 지우시겠습니까?" msgstr "\"%1\" 사전 설정을 지우시겠습니까?"
#: dialogs/edittagdialog.cpp:869 #: dialogs/edittagdialog.cpp:872
msgid "Are you sure you want to reset this song's statistics?" msgid "Are you sure you want to reset this song's statistics?"
msgstr "이 곡의 통계를 초기화하시겠습니까?" msgstr "이 곡의 통계를 초기화하시겠습니까?"
#: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263 #: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263
#: organize/organizedialog.cpp:100 ../build/src/ui_groupbydialog.h:184 #: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:184
#: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228 #: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228
#: ../build/src/ui_albumcoversearcher.h:106 #: ../build/src/ui_albumcoversearcher.h:106
#: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713 #: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713
@@ -895,7 +895,7 @@ msgstr "이 곡의 통계를 초기화하시겠습니까?"
msgid "Artist" msgid "Artist"
msgstr "아티스트" msgstr "아티스트"
#: organize/organizedialog.cpp:101 #: organize/organizedialog.cpp:104
msgid "Artist's initial" msgid "Artist's initial"
msgstr "아티스트 이니셜" msgstr "아티스트 이니셜"
@@ -1031,7 +1031,7 @@ msgid "Best"
msgstr "최고" msgstr "최고"
#: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136 #: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136
#: playlist/playlist.cpp:1281 organize/organizedialog.cpp:115 #: playlist/playlist.cpp:1281 organize/organizedialog.cpp:118
#: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223 #: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223
#: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695 #: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695
msgid "Bit depth" msgid "Bit depth"
@@ -1052,7 +1052,7 @@ msgstr "비트 전송률"
msgid "Bitrate" msgid "Bitrate"
msgstr "비트 전송률" msgstr "비트 전송률"
#: organize/organizedialog.cpp:113 #: organize/organizedialog.cpp:116
msgctxt "Refers to bitrate in file organize dialog." msgctxt "Refers to bitrate in file organize dialog."
msgid "Bitrate" msgid "Bitrate"
msgstr "" msgstr ""
@@ -1097,7 +1097,7 @@ msgstr "버퍼"
msgid "Buffer duration" msgid "Buffer duration"
msgstr "버퍼 시간" msgstr "버퍼 시간"
#: engine/gstengine.cpp:630 #: engine/gstengine.cpp:681
msgid "Buffering" msgid "Buffering"
msgstr "버퍼링" msgstr "버퍼링"
@@ -1117,7 +1117,7 @@ msgstr "CDDA"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: tidal/tidalstreamurlrequest.cpp:107 qobuz/qobuzstreamurlrequest.cpp:103 #: tidal/tidalstreamurlrequest.cpp:108 qobuz/qobuzstreamurlrequest.cpp:103
msgid "Cancelled." msgid "Cancelled."
msgstr "취소됨." msgstr "취소됨."
@@ -1137,7 +1137,7 @@ msgstr "지금 재생 중인 음악 변경"
msgid "Change the language" msgid "Change the language"
msgstr "언어 변경" msgstr "언어 변경"
#: core/mainwindow.cpp:758 #: core/mainwindow.cpp:759
msgid "Check for updates..." msgid "Check for updates..."
msgstr "업데이트 확인..." msgstr "업데이트 확인..."
@@ -1182,7 +1182,7 @@ msgstr "비우기"
msgid "Clear Disk Cache" msgid "Clear Disk Cache"
msgstr "디스크 캐시 비우기" msgstr "디스크 캐시 비우기"
#: core/mainwindow.cpp:2191 ../build/src/ui_mainwindow.h:634 #: core/mainwindow.cpp:2204 ../build/src/ui_mainwindow.h:634
msgid "Clear playlist" msgid "Clear playlist"
msgstr "재생 목록 비우기" msgstr "재생 목록 비우기"
@@ -1234,7 +1234,7 @@ msgstr "이 창을 닫으면 앨범아트 검색을 정지합니다."
msgid "Club" msgid "Club"
msgstr "클럽" msgstr "클럽"
#: core/mainwindow.cpp:337 ../build/src/ui_collectionsettingspage.h:406 #: core/mainwindow.cpp:338 ../build/src/ui_collectionsettingspage.h:406
#: ../build/src/ui_scrobblersettingspage.h:402 #: ../build/src/ui_scrobblersettingspage.h:402
msgid "Collection" msgid "Collection"
msgstr "모음집" msgstr "모음집"
@@ -1247,7 +1247,7 @@ msgstr "라이브러리 필터"
msgid "Collection advanced grouping" msgid "Collection advanced grouping"
msgstr "라이브러리 고급 그룹" msgstr "라이브러리 고급 그룹"
#: core/mainwindow.cpp:2703 #: core/mainwindow.cpp:2716
msgid "Collection rescan notice" msgid "Collection rescan notice"
msgstr "모음집 재탐색 알림" msgstr "모음집 재탐색 알림"
@@ -1264,7 +1264,7 @@ msgid "Comma separated list of class:level, level is 0-3"
msgstr "쉼표로 구분된 class:level 목록, level은 0-3" msgstr "쉼표로 구분된 class:level 목록, level은 0-3"
#: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374 #: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374
#: organize/organizedialog.cpp:111 ../build/src/ui_edittagdialog.h:711 #: organize/organizedialog.cpp:114 ../build/src/ui_edittagdialog.h:711
msgid "Comment" msgid "Comment"
msgstr "설명" msgstr "설명"
@@ -1281,7 +1281,7 @@ msgid "Complete tags automatically..."
msgstr "자동으로 태그 완성..." msgstr "자동으로 태그 완성..."
#: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272 #: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272
#: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:196 #: organize/organizedialog.cpp:106 ../build/src/ui_groupbydialog.h:196
#: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240 #: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240
#: ../build/src/ui_edittagdialog.h:710 #: ../build/src/ui_edittagdialog.h:710
msgid "Composer" msgid "Composer"
@@ -1308,7 +1308,7 @@ msgstr "%1 설정..."
msgid "Configure buttons" msgid "Configure buttons"
msgstr "" msgstr ""
#: core/mainwindow.cpp:638 #: core/mainwindow.cpp:639
msgid "Configure collection..." msgid "Configure collection..."
msgstr "모음집 설정..." msgstr "모음집 설정..."
@@ -1324,7 +1324,7 @@ msgstr "콘솔"
msgid "Constant bitrate" msgid "Constant bitrate"
msgstr "고정 비트 전송률" msgstr "고정 비트 전송률"
#: core/mainwindow.cpp:336 ../build/src/ui_contextsettingspage.h:361 #: core/mainwindow.cpp:337 ../build/src/ui_contextsettingspage.h:361
msgid "Context" msgid "Context"
msgstr "지금 재생" msgstr "지금 재생"
@@ -1344,7 +1344,7 @@ msgstr "모든 곡 변환"
msgid "Convert any music that the device can't play" msgid "Convert any music that the device can't play"
msgstr "장치에서 재생할 수 없는 곡 변환" msgstr "장치에서 재생할 수 없는 곡 변환"
#: core/mainwindow.cpp:702 #: core/mainwindow.cpp:703
msgid "Copy URL(s)..." msgid "Copy URL(s)..."
msgstr "" msgstr ""
@@ -1352,7 +1352,7 @@ msgstr ""
msgid "Copy album cover artwork" msgid "Copy album cover artwork"
msgstr "앨범아트 복사" msgstr "앨범아트 복사"
#: core/mainwindow.cpp:706 widgets/fileviewlist.cpp:48 #: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:48
#: device/deviceview.cpp:239 #: device/deviceview.cpp:239
msgid "Copy to collection..." msgid "Copy to collection..."
msgstr "라이브러리로 복사..." msgstr "라이브러리로 복사..."
@@ -1361,7 +1361,7 @@ msgstr "라이브러리로 복사..."
msgid "Copy to device" msgid "Copy to device"
msgstr "" msgstr ""
#: core/mainwindow.cpp:709 context/contextalbumsview.cpp:262 #: core/mainwindow.cpp:710 context/contextalbumsview.cpp:262
#: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104 #: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104
#: widgets/fileviewlist.cpp:50 #: widgets/fileviewlist.cpp:50
msgid "Copy to device..." msgid "Copy to device..."
@@ -1597,7 +1597,7 @@ msgstr "파일 삭제"
msgid "Delete from device..." msgid "Delete from device..."
msgstr "장치에서 삭제..." msgstr "장치에서 삭제..."
#: core/mainwindow.cpp:711 collection/collectionview.cpp:354 #: core/mainwindow.cpp:712 collection/collectionview.cpp:354
#: widgets/fileviewlist.cpp:51 #: widgets/fileviewlist.cpp:51
msgid "Delete from disk..." msgid "Delete from disk..."
msgstr "디스크에서 삭제..." msgstr "디스크에서 삭제..."
@@ -1619,11 +1619,11 @@ msgstr "원본 파일 삭제"
msgid "Deleting files" msgid "Deleting files"
msgstr "파일 삭제 중" msgstr "파일 삭제 중"
#: core/mainwindow.cpp:1826 #: core/mainwindow.cpp:1839
msgid "Dequeue selected tracks" msgid "Dequeue selected tracks"
msgstr "선택한 트랙을 대기열에서 삭제" msgstr "선택한 트랙을 대기열에서 삭제"
#: core/mainwindow.cpp:1825 #: core/mainwindow.cpp:1838
msgid "Dequeue track" msgid "Dequeue track"
msgstr "대기열에서 트랙 삭제" msgstr "대기열에서 트랙 삭제"
@@ -1649,7 +1649,7 @@ msgstr "장치 속성"
msgid "Device properties..." msgid "Device properties..."
msgstr "장치 속성..." msgstr "장치 속성..."
#: core/mainwindow.cpp:343 #: core/mainwindow.cpp:344
msgid "Devices" msgid "Devices"
msgstr "장치" msgstr "장치"
@@ -1671,7 +1671,7 @@ msgid "Disabled"
msgstr "사용 안 함" msgstr "사용 안 함"
#: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266 #: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266
#: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:188 #: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:188
#: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232 #: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232
#: ../build/src/ui_edittagdialog.h:708 #: ../build/src/ui_edittagdialog.h:708
msgid "Disc" msgid "Disc"
@@ -1706,6 +1706,10 @@ msgstr "이미지 자르지 않기"
msgid "Do not overwrite" msgid "Do not overwrite"
msgstr "덮어쓰지 않기" msgstr "덮어쓰지 않기"
#: ../build/src/ui_snapdialog.h:120
msgid "Do not show this message again."
msgstr ""
#: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110 #: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110
msgid "Don't repeat" msgid "Don't repeat"
msgstr "반복하지 않기" msgstr "반복하지 않기"
@@ -1764,7 +1768,7 @@ msgstr ""
msgid "Edit smart playlist..." msgid "Edit smart playlist..."
msgstr "" msgstr ""
#: core/mainwindow.cpp:1867 #: core/mainwindow.cpp:1880
#, qt-format #, qt-format
msgid "Edit tag \"%1\"..." msgid "Edit tag \"%1\"..."
msgstr "\"%1\" 태그 편집..." msgstr "\"%1\" 태그 편집..."
@@ -1914,7 +1918,7 @@ msgstr "--log-levels *:1과 동일함"
msgid "Equivalent to --log-levels *:3" msgid "Equivalent to --log-levels *:3"
msgstr "--log-levels *:3과 동일함" msgstr "--log-levels *:3과 동일함"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "Error" msgid "Error"
msgstr "오류" msgstr "오류"
@@ -2080,7 +2084,7 @@ msgstr "표지 가져오기 오류"
msgid "File %1 is not recognized as a valid audio file." msgid "File %1 is not recognized as a valid audio file."
msgstr "%1 파일은 올바른 오디오 파일이 아닌 것 같습니다." msgstr "%1 파일은 올바른 오디오 파일이 아닌 것 같습니다."
#: organize/organizedialog.cpp:116 #: organize/organizedialog.cpp:119
msgid "File extension" msgid "File extension"
msgstr "파일 확장자" msgstr "파일 확장자"
@@ -2118,7 +2122,7 @@ msgstr "파일 이름"
msgid "Filename:" msgid "Filename:"
msgstr "파일 이름:" msgstr "파일 이름:"
#: core/mainwindow.cpp:341 #: core/mainwindow.cpp:342
msgid "Files" msgid "Files"
msgstr "파일" msgstr "파일"
@@ -2172,6 +2176,15 @@ msgstr "제목 폰트 설정"
msgid "Font size" msgid "Font size"
msgstr "글자 크기" msgstr "글자 크기"
#: dialogs/snapdialog.cpp:56
#, qt-format
msgid "For Ubuntu there is an official PPA repository available at %1."
msgstr ""
#: dialogs/snapdialog.cpp:64
msgid "For a better experience please consider the other options above."
msgstr ""
#: ../build/src/ui_transcoderoptionsmp3.h:203 #: ../build/src/ui_transcoderoptionsmp3.h:203
msgid "Force mono encoding" msgid "Force mono encoding"
msgstr "모노 인코딩 강제" msgstr "모노 인코딩 강제"
@@ -2253,7 +2266,7 @@ msgid "Genius Authentication"
msgstr "" msgstr ""
#: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270 #: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270
#: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:190 #: organize/organizedialog.cpp:113 ../build/src/ui_groupbydialog.h:190
#: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234 #: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234
#: ../build/src/ui_edittagdialog.h:704 #: ../build/src/ui_edittagdialog.h:704
msgid "Genre" msgid "Genre"
@@ -2352,7 +2365,7 @@ msgid "Group by Genre/Artist/Album"
msgstr "장르/아티스트/앨범으로 그룹" msgstr "장르/아티스트/앨범으로 그룹"
#: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274 #: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274
#: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:198 #: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:198
#: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242 #: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242
#: ../build/src/ui_edittagdialog.h:706 #: ../build/src/ui_edittagdialog.h:706
msgid "Grouping" msgid "Grouping"
@@ -2527,6 +2540,10 @@ msgid ""
"audiophiles." "audiophiles."
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:44
msgid "It is detected that Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_behavioursettingspage.h:302 #: ../build/src/ui_behavioursettingspage.h:302
msgid "Jump to previous song right away" msgid "Jump to previous song right away"
msgstr "바로 이전 곡으로 이동" msgstr "바로 이전 곡으로 이동"
@@ -2591,7 +2608,7 @@ msgid "Left"
msgstr "왼쪽" msgstr "왼쪽"
#: context/contextview.cpp:214 playlist/playlist.cpp:1267 #: context/contextview.cpp:214 playlist/playlist.cpp:1267
#: organize/organizedialog.cpp:112 ../build/src/ui_edittagdialog.h:689 #: organize/organizedialog.cpp:115 ../build/src/ui_edittagdialog.h:689
msgid "Length" msgid "Length"
msgstr "길이" msgstr "길이"
@@ -2809,7 +2826,7 @@ msgstr "Subsonic 사용자 이름이나 암호가 없습니다."
#: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796 #: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796
#: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918 #: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918
#: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:89 #: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:90
msgid "Missing Tidal API token, username or password." msgid "Missing Tidal API token, username or password."
msgstr "" msgstr ""
@@ -2895,7 +2912,7 @@ msgstr "마운트 지점"
msgid "Move down" msgid "Move down"
msgstr "아래로 이동" msgstr "아래로 이동"
#: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:49 #: core/mainwindow.cpp:708 widgets/fileviewlist.cpp:49
msgid "Move to collection..." msgid "Move to collection..."
msgstr "모음집으로 이동..." msgstr "모음집으로 이동..."
@@ -2904,7 +2921,7 @@ msgstr "모음집으로 이동..."
msgid "Move up" msgid "Move up"
msgstr "위로 이동" msgstr "위로 이동"
#: core/mainwindow.cpp:2101 transcoder/transcodedialog.cpp:328 #: core/mainwindow.cpp:2114 transcoder/transcodedialog.cpp:328
msgid "Music" msgid "Music"
msgstr "음악" msgstr "음악"
@@ -2949,7 +2966,7 @@ msgstr "재생을 시작하지 않음"
msgid "New folder" msgid "New folder"
msgstr "새 폴더" msgstr "새 폴더"
#: core/mainwindow.cpp:1925 #: core/mainwindow.cpp:1938
msgid "New playlist" msgid "New playlist"
msgstr "새로운 재생 목록" msgstr "새로운 재생 목록"
@@ -2993,7 +3010,7 @@ msgstr "내보낼 표지가 없습니다."
msgid "No long blocks" msgid "No long blocks"
msgstr "긴 블록 없음" msgstr "긴 블록 없음"
#: tidal/tidalrequest.cpp:1256 qobuz/qobuzrequest.cpp:1318 #: tidal/tidalrequest.cpp:1253 qobuz/qobuzrequest.cpp:1315
msgid "No match." msgid "No match."
msgstr "일치하는 결과가 없습니다." msgstr "일치하는 결과가 없습니다."
@@ -3019,7 +3036,7 @@ msgstr "재생 중인 곡 없음"
msgid "None" msgid "None"
msgstr "없음" msgstr "없음"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "None of the selected songs were suitable for copying to a device" msgid "None of the selected songs were suitable for copying to a device"
msgstr "선택한 음악을 장치에 복사하기에 적합하지 않음" msgstr "선택한 음악을 장치에 복사하기에 적합하지 않음"
@@ -3044,7 +3061,7 @@ msgstr "Tidal에 인증되지 않았으며 최대 로그인 시도 횟수에 도
#: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791 #: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791
#: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913 #: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913
#: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:85 #: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:86
msgid "Not authenticated with Tidal." msgid "Not authenticated with Tidal."
msgstr "Tidal에 인증되지 않았습니다." msgstr "Tidal에 인증되지 않았습니다."
@@ -3084,6 +3101,13 @@ msgstr "OSD 미리 보기"
msgid "Off" msgid "Off"
msgstr "꺼짐" msgstr "꺼짐"
#: dialogs/snapdialog.cpp:60
#, qt-format
msgid ""
"Official releases are available for Debian and Ubuntu which also work on "
"most of their derivatives. See %1 for more information."
msgstr ""
#: osd/osdbase.cpp:245 #: osd/osdbase.cpp:245
msgid "On" msgid "On"
msgstr "켜짐" msgstr "켜짐"
@@ -3149,7 +3173,7 @@ msgstr "Opus"
msgid "Organize Files" msgid "Organize Files"
msgstr "" msgstr ""
#: core/mainwindow.cpp:705 context/contextalbumsview.cpp:260 #: core/mainwindow.cpp:706 context/contextalbumsview.cpp:260
#: collection/collectionview.cpp:350 #: collection/collectionview.cpp:350
msgid "Organize files..." msgid "Organize files..."
msgstr "" msgstr ""
@@ -3163,7 +3187,7 @@ msgid "Original tags"
msgstr "원본 태그" msgstr "원본 태그"
#: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269 #: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269
#: organize/organizedialog.cpp:109 ../build/src/ui_groupbydialog.h:194 #: organize/organizedialog.cpp:112 ../build/src/ui_groupbydialog.h:194
#: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238 #: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238
msgid "Original year" msgid "Original year"
msgstr "원본 년도" msgstr "원본 년도"
@@ -3222,7 +3246,7 @@ msgstr "파티"
msgid "Password" msgid "Password"
msgstr "암호" msgstr "암호"
#: core/mainwindow.cpp:1247 core/mainwindow.cpp:1721 #: core/mainwindow.cpp:1260 core/mainwindow.cpp:1734
#: core/qtsystemtrayicon.cpp:190 #: core/qtsystemtrayicon.cpp:190
msgid "Pause" msgid "Pause"
msgstr "일시 정지" msgstr "일시 정지"
@@ -3236,7 +3260,7 @@ msgid "Paused"
msgstr "일시 정지됨" msgstr "일시 정지됨"
#: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273 #: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273
#: organize/organizedialog.cpp:104 ../build/src/ui_groupbydialog.h:197 #: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:197
#: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241 #: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241
#: ../build/src/ui_edittagdialog.h:715 #: ../build/src/ui_edittagdialog.h:715
msgid "Performer" msgid "Performer"
@@ -3250,8 +3274,8 @@ msgstr "픽셀"
msgid "Plain sidebar" msgid "Plain sidebar"
msgstr "일반 사이드바" msgstr "일반 사이드바"
#: core/mainwindow.cpp:674 core/mainwindow.cpp:1200 core/mainwindow.cpp:1229 #: core/mainwindow.cpp:675 core/mainwindow.cpp:1213 core/mainwindow.cpp:1242
#: core/mainwindow.cpp:1725 core/qtsystemtrayicon.cpp:177 #: core/mainwindow.cpp:1738 core/qtsystemtrayicon.cpp:177
#: core/qtsystemtrayicon.cpp:202 #: core/qtsystemtrayicon.cpp:202
msgid "Play" msgid "Play"
msgstr "재생" msgstr "재생"
@@ -3314,7 +3338,7 @@ msgstr ""
msgid "Playlist finished" msgid "Playlist finished"
msgstr "재생 목록 끝남" msgstr "재생 목록 끝남"
#: core/mainwindow.cpp:2191 #: core/mainwindow.cpp:2204
#, qt-format #, qt-format
msgid "" msgid ""
"Playlist has %1 songs, too large to undo, are you sure you want to clear the " "Playlist has %1 songs, too large to undo, are you sure you want to clear the "
@@ -3334,7 +3358,7 @@ msgstr "재생 목록 옵션"
msgid "Playlist type" msgid "Playlist type"
msgstr "" msgstr ""
#: core/mainwindow.cpp:339 #: core/mainwindow.cpp:340
msgid "Playlists" msgid "Playlists"
msgstr "재생 목록" msgstr "재생 목록"
@@ -3454,7 +3478,7 @@ msgstr "진행"
msgid "Put songs in a random order" msgid "Put songs in a random order"
msgstr "" msgstr ""
#: core/mainwindow.cpp:352 ../build/src/ui_scrobblersettingspage.h:409 #: core/mainwindow.cpp:353 ../build/src/ui_scrobblersettingspage.h:409
#: ../build/src/ui_qobuzsettingspage.h:270 #: ../build/src/ui_qobuzsettingspage.h:270
msgid "Qobuz" msgid "Qobuz"
msgstr "Qobuz" msgstr "Qobuz"
@@ -3477,24 +3501,24 @@ msgstr "음질"
msgid "Querying device..." msgid "Querying device..."
msgstr "장치 질의 중..." msgstr "장치 질의 중..."
#: core/mainwindow.cpp:338 #: core/mainwindow.cpp:339
msgid "Queue" msgid "Queue"
msgstr "대기열" msgstr "대기열"
#: core/mainwindow.cpp:1828 #: core/mainwindow.cpp:1841
msgid "Queue selected tracks" msgid "Queue selected tracks"
msgstr "선택한 트랙을 대기열에 추가" msgstr "선택한 트랙을 대기열에 추가"
#: core/mainwindow.cpp:680 core/mainwindow.cpp:1832 #: core/mainwindow.cpp:681 core/mainwindow.cpp:1845
msgid "Queue selected tracks to play next" msgid "Queue selected tracks to play next"
msgstr "선택한 트랙을 다음에 재생하도록 대기열에 추가" msgstr "선택한 트랙을 다음에 재생하도록 대기열에 추가"
#: core/mainwindow.cpp:1834 collection/collectionview.cpp:347 #: core/mainwindow.cpp:1847 collection/collectionview.cpp:347
#: internet/internetcollectionview.cpp:317 #: internet/internetcollectionview.cpp:317
msgid "Queue to play next" msgid "Queue to play next"
msgstr "다음에 재생할 대기열에 추가" msgstr "다음에 재생할 대기열에 추가"
#: core/mainwindow.cpp:1827 context/contextalbumsview.cpp:257 #: core/mainwindow.cpp:1840 context/contextalbumsview.cpp:257
#: collection/collectionview.cpp:346 #: collection/collectionview.cpp:346
#: smartplaylists/smartplaylistsviewcontainer.cpp:75 #: smartplaylists/smartplaylistsviewcontainer.cpp:75
#: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316 #: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316
@@ -3689,7 +3713,7 @@ msgstr ""
msgid "Rescan song(s)" msgid "Rescan song(s)"
msgstr "노래 다시 검색" msgstr "노래 다시 검색"
#: core/mainwindow.cpp:696 #: core/mainwindow.cpp:697
msgid "Rescan song(s)..." msgid "Rescan song(s)..."
msgstr "" msgstr ""
@@ -3697,7 +3721,7 @@ msgstr ""
msgid "Reset" msgid "Reset"
msgstr "초기화" msgstr "초기화"
#: dialogs/edittagdialog.cpp:869 ../build/src/ui_edittagdialog.h:688 #: dialogs/edittagdialog.cpp:872 ../build/src/ui_edittagdialog.h:688
msgid "Reset play counts" msgid "Reset play counts"
msgstr "재생 횟수 초기화" msgstr "재생 횟수 초기화"
@@ -3802,7 +3826,7 @@ msgid "Safely remove the device after copying"
msgstr "복사 후 안전하게 장치 제거" msgstr "복사 후 안전하게 장치 제거"
#: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280 #: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280
#: organize/organizedialog.cpp:114 ../build/src/ui_groupbydialog.h:200 #: organize/organizedialog.cpp:117 ../build/src/ui_groupbydialog.h:200
#: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244 #: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244
#: ../build/src/ui_edittagdialog.h:694 #: ../build/src/ui_edittagdialog.h:694
msgid "Sample rate" msgid "Sample rate"
@@ -3862,7 +3886,7 @@ msgstr "그룹 관리자 저장됨"
msgid "Saving album covers" msgid "Saving album covers"
msgstr "앨범아트 저장 중" msgstr "앨범아트 저장 중"
#: dialogs/edittagdialog.cpp:784 dialogs/trackselectiondialog.cpp:291 #: dialogs/edittagdialog.cpp:787 dialogs/trackselectiondialog.cpp:291
msgid "Saving tracks" msgid "Saving tracks"
msgstr "트랙 저장 중" msgstr "트랙 저장 중"
@@ -3995,7 +4019,7 @@ msgstr "서버 URL이 잘못되었습니다."
msgid "Server-side scrobbling" msgid "Server-side scrobbling"
msgstr "" msgstr ""
#: core/mainwindow.cpp:1866 #: core/mainwindow.cpp:1879
#, qt-format #, qt-format
msgid "Set %1 to \"%2\"..." msgid "Set %1 to \"%2\"..."
msgstr "%1을(를) \"%2\"(으)로 설정..." msgstr "%1을(를) \"%2\"(으)로 설정..."
@@ -4082,7 +4106,7 @@ msgstr "앨범 목록에 앨범아트 표시"
msgid "Show albums by artist" msgid "Show albums by artist"
msgstr "아티스트별로 앨범 표시" msgstr "아티스트별로 앨범 표시"
#: core/mainwindow.cpp:627 #: core/mainwindow.cpp:628
msgid "Show all songs" msgid "Show all songs"
msgstr "모든 곡 표시" msgstr "모든 곡 표시"
@@ -4106,7 +4130,7 @@ msgstr "엔진과 장치 표시"
msgid "Show fullsize..." msgid "Show fullsize..."
msgstr "전체 크기 표시..." msgstr "전체 크기 표시..."
#: core/mainwindow.cpp:703 #: core/mainwindow.cpp:704
msgid "Show in collection..." msgid "Show in collection..."
msgstr "라이브러리에 표시..." msgstr "라이브러리에 표시..."
@@ -4114,7 +4138,7 @@ msgstr "라이브러리에 표시..."
msgid "Show in file browser" msgid "Show in file browser"
msgstr "파일 탐색기에 표시" msgstr "파일 탐색기에 표시"
#: core/mainwindow.cpp:704 context/contextalbumsview.cpp:268 #: core/mainwindow.cpp:705 context/contextalbumsview.cpp:268
#: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55 #: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55
msgid "Show in file browser..." msgid "Show in file browser..."
msgstr "파일 탐색기에 표시..." msgstr "파일 탐색기에 표시..."
@@ -4131,11 +4155,11 @@ msgstr "좋아요 단추 표시"
msgid "Show moodbar" msgid "Show moodbar"
msgstr "무드바 표시" msgstr "무드바 표시"
#: core/mainwindow.cpp:628 #: core/mainwindow.cpp:629
msgid "Show only duplicates" msgid "Show only duplicates"
msgstr "복사본만 표시" msgstr "복사본만 표시"
#: core/mainwindow.cpp:629 #: core/mainwindow.cpp:630
msgid "Show only untagged" msgid "Show only untagged"
msgstr "태그되지 않은 것만 표시" msgstr "태그되지 않은 것만 표시"
@@ -4224,11 +4248,11 @@ msgstr "건너뛴 횟수"
msgid "Skip forwards in playlist" msgid "Skip forwards in playlist"
msgstr "재생 목록의 다음 곡으로 전환" msgstr "재생 목록의 다음 곡으로 전환"
#: core/mainwindow.cpp:1839 #: core/mainwindow.cpp:1852
msgid "Skip selected tracks" msgid "Skip selected tracks"
msgstr "선택한 트랙 건너뛰기" msgstr "선택한 트랙 건너뛰기"
#: core/mainwindow.cpp:1838 #: core/mainwindow.cpp:1851
msgid "Skip track" msgid "Skip track"
msgstr "트랙 건너뛰기" msgstr "트랙 건너뛰기"
@@ -4244,7 +4268,7 @@ msgstr "작은 사이드바"
msgid "Smart playlist" msgid "Smart playlist"
msgstr "" msgstr ""
#: core/mainwindow.cpp:340 #: core/mainwindow.cpp:341
msgid "Smart playlists" msgid "Smart playlists"
msgstr "" msgstr ""
@@ -4327,7 +4351,7 @@ msgstr "각각 트랙이 끝난 후 정지"
msgid "Stop after every track" msgid "Stop after every track"
msgstr "모든 트랙 이후에 정지" msgstr "모든 트랙 이후에 정지"
#: core/mainwindow.cpp:676 ../build/src/ui_mainwindow.h:627 #: core/mainwindow.cpp:677 ../build/src/ui_mainwindow.h:627
msgid "Stop after this track" msgid "Stop after this track"
msgstr "현재 트랙 이후 정지" msgstr "현재 트랙 이후 정지"
@@ -4385,6 +4409,21 @@ msgid ""
"on %1" "on %1"
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:40
msgid "Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_snapdialog.h:117
msgid "Strawberry is running as a snap"
msgstr ""
#: dialogs/snapdialog.cpp:48
msgid ""
"Strawberry is slower, and has restrictions when running as a Snap. Accessing "
"the root filesystem (/) will not work. There also might be other "
"restrictions such as accessing certain devices or network shares."
msgstr ""
#: ../build/src/ui_trackselectiondialog.h:205 #: ../build/src/ui_trackselectiondialog.h:205
msgid "Strawberry was unable to find results for this file" msgid "Strawberry was unable to find results for this file"
msgstr "Strawberry에서 이 파일의 결과를 찾을 수 없습니다" msgstr "Strawberry에서 이 파일의 결과를 찾을 수 없습니다"
@@ -4409,7 +4448,7 @@ msgstr "이미지를 재생 목록 크기로 늘려서 맞춤"
msgid "Submit scrobbles every" msgid "Submit scrobbles every"
msgstr "스크로블 제출 주기" msgstr "스크로블 제출 주기"
#: core/mainwindow.cpp:346 ../build/src/ui_scrobblersettingspage.h:407 #: core/mainwindow.cpp:347 ../build/src/ui_scrobblersettingspage.h:407
#: ../build/src/ui_subsonicsettingspage.h:188 #: ../build/src/ui_subsonicsettingspage.h:188
msgid "Subsonic" msgid "Subsonic"
msgstr "Subsonic" msgstr "Subsonic"
@@ -4535,7 +4574,7 @@ msgstr "요청한 사이트가 존재하지 않습니다!"
msgid "The site you requested is not an image!" msgid "The site you requested is not an image!"
msgstr "요청한 사이트는 이미지가 아닙니다!" msgstr "요청한 사이트는 이미지가 아닙니다!"
#: core/mainwindow.cpp:2698 #: core/mainwindow.cpp:2711
msgid "" msgid ""
"The version of Strawberry you've just updated to requires a full collection " "The version of Strawberry you've just updated to requires a full collection "
"rescan because of the new features listed below:" "rescan because of the new features listed below:"
@@ -4623,7 +4662,7 @@ msgstr "이 옵션은 \"행동\" 설정에서 변경할 수 있습니다"
msgid "This type of device is not supported: %1" msgid "This type of device is not supported: %1"
msgstr "다음 장치의 형식은 지원하지 않습니다: %1" msgstr "다음 장치의 형식은 지원하지 않습니다: %1"
#: core/mainwindow.cpp:349 ../build/src/ui_scrobblersettingspage.h:408 #: core/mainwindow.cpp:350 ../build/src/ui_scrobblersettingspage.h:408
#: ../build/src/ui_tidalsettingspage.h:312 #: ../build/src/ui_tidalsettingspage.h:312
msgid "Tidal" msgid "Tidal"
msgstr "Tidal" msgstr "Tidal"
@@ -4638,7 +4677,7 @@ msgstr ""
msgid "Time step" msgid "Time step"
msgstr "시간 간격" msgstr "시간 간격"
#: playlist/playlist.cpp:1262 organize/organizedialog.cpp:98 #: playlist/playlist.cpp:1262 organize/organizedialog.cpp:101
#: ../build/src/ui_contextsettingspage.h:414 #: ../build/src/ui_contextsettingspage.h:414
#: ../build/src/ui_edittagdialog.h:705 #: ../build/src/ui_edittagdialog.h:705
#: ../build/src/ui_trackselectiondialog.h:210 #: ../build/src/ui_trackselectiondialog.h:210
@@ -4649,7 +4688,7 @@ msgstr "제목"
msgid "Today" msgid "Today"
msgstr "오늘" msgstr "오늘"
#: core/mainwindow.cpp:677 core/mainwindow.cpp:1829 #: core/mainwindow.cpp:678 core/mainwindow.cpp:1842
msgid "Toggle queue status" msgid "Toggle queue status"
msgstr "대기열 상태 전환" msgstr "대기열 상태 전환"
@@ -4657,7 +4696,7 @@ msgstr "대기열 상태 전환"
msgid "Toggle scrobbling" msgid "Toggle scrobbling"
msgstr "스크로블 전환" msgstr "스크로블 전환"
#: core/mainwindow.cpp:683 core/mainwindow.cpp:1840 #: core/mainwindow.cpp:684 core/mainwindow.cpp:1853
msgid "Toggle skip status" msgid "Toggle skip status"
msgstr "건너뛰기 상태 전환" msgstr "건너뛰기 상태 전환"
@@ -4685,7 +4724,7 @@ msgstr "전송된 총 바이트"
msgid "Total network requests made" msgid "Total network requests made"
msgstr "총 네트워크 요청 수" msgstr "총 네트워크 요청 수"
#: playlist/playlist.cpp:1265 organize/organizedialog.cpp:106 #: playlist/playlist.cpp:1265 organize/organizedialog.cpp:109
#: ../build/src/ui_edittagdialog.h:712 #: ../build/src/ui_edittagdialog.h:712
#: ../build/src/ui_trackselectiondialog.h:212 #: ../build/src/ui_trackselectiondialog.h:212
msgid "Track" msgid "Track"
@@ -4743,8 +4782,8 @@ msgstr "초광대역(UWB)"
msgid "Unknown" msgid "Unknown"
msgstr "알 수 없음" msgstr "알 수 없음"
#: subsonic/subsonicrequest.cpp:858 tidal/tidalrequest.cpp:1262 #: subsonic/subsonicrequest.cpp:864 tidal/tidalrequest.cpp:1259
#: qobuz/qobuzrequest.cpp:1324 #: qobuz/qobuzrequest.cpp:1321
msgid "Unknown error" msgid "Unknown error"
msgstr "알 수 없는 오류" msgstr "알 수 없는 오류"
@@ -4752,11 +4791,11 @@ msgstr "알 수 없는 오류"
msgid "Unset cover" msgid "Unset cover"
msgstr "표지 설정 해제" msgstr "표지 설정 해제"
#: core/mainwindow.cpp:1837 #: core/mainwindow.cpp:1850
msgid "Unskip selected tracks" msgid "Unskip selected tracks"
msgstr "선택한 트랙 건너뛰기 해제" msgstr "선택한 트랙 건너뛰기 해제"
#: core/mainwindow.cpp:1836 #: core/mainwindow.cpp:1849
msgid "Unskip track" msgid "Unskip track"
msgstr "트랙 건너뛰기 해제" msgstr "트랙 건너뛰기 해제"
@@ -4988,7 +5027,7 @@ msgid ""
"well?" "well?"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2702 #: core/mainwindow.cpp:2715
msgid "Would you like to run a full rescan right now?" msgid "Would you like to run a full rescan right now?"
msgstr "지금 전부 다시 검색하시겠습니까?" msgstr "지금 전부 다시 검색하시겠습니까?"
@@ -4997,7 +5036,7 @@ msgid "Write metadata when saving playlists"
msgstr "재생 목록을 저장할 때 메타데이터 쓰기" msgstr "재생 목록을 저장할 때 메타데이터 쓰기"
#: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268 #: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268
#: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:191 #: organize/organizedialog.cpp:111 ../build/src/ui_groupbydialog.h:191
#: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235 #: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235
#: ../build/src/ui_edittagdialog.h:714 #: ../build/src/ui_edittagdialog.h:714
#: ../build/src/ui_trackselectiondialog.h:211 #: ../build/src/ui_trackselectiondialog.h:211

View File

@@ -552,7 +552,7 @@ msgstr "Legg til alle filer fra ei mappe og dens undermapper"
msgid "Add directory..." msgid "Add directory..."
msgstr "Legg til mappe…" msgstr "Legg til mappe…"
#: core/mainwindow.cpp:2101 #: core/mainwindow.cpp:2114
msgid "Add file" msgid "Add file"
msgstr "Legg til fil" msgstr "Legg til fil"
@@ -568,7 +568,7 @@ msgstr "Legg fil(er) til omkoder"
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Legg filer til for omkoding" msgstr "Legg filer til for omkoding"
#: core/mainwindow.cpp:2126 transcoder/transcodedialog.cpp:419 #: core/mainwindow.cpp:2139 transcoder/transcodedialog.cpp:419
msgid "Add folder" msgid "Add folder"
msgstr "Legg til mappe" msgstr "Legg til mappe"
@@ -671,7 +671,7 @@ msgstr ""
msgid "Add to albums" msgid "Add to albums"
msgstr "Legg til albumer" msgstr "Legg til albumer"
#: core/mainwindow.cpp:1909 #: core/mainwindow.cpp:1922
msgid "Add to another playlist" msgid "Add to another playlist"
msgstr "Legg til i annen spilleliste" msgstr "Legg til i annen spilleliste"
@@ -730,7 +730,7 @@ msgid "Albu&m cover"
msgstr "Albu&m kover" msgstr "Albu&m kover"
#: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264 #: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264
#: organize/organizedialog.cpp:99 ../build/src/ui_groupbydialog.h:186 #: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:186
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230 #: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
#: ../build/src/ui_albumcoversearcher.h:110 #: ../build/src/ui_albumcoversearcher.h:110
#: ../build/src/ui_albumcoversearcher.h:112 #: ../build/src/ui_albumcoversearcher.h:112
@@ -750,7 +750,7 @@ msgid "Album - Disc"
msgstr "Album - Disc" msgstr "Album - Disc"
#: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271 #: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271
#: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:185 #: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:185
#: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229 #: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229
#: ../build/src/ui_edittagdialog.h:709 #: ../build/src/ui_edittagdialog.h:709
msgid "Album artist" msgid "Album artist"
@@ -790,7 +790,7 @@ msgstr "Album med omslag"
msgid "Albums without covers" msgid "Albums without covers"
msgstr "Album uten omslag" msgstr "Album uten omslag"
#: core/mainwindow.cpp:208 #: core/mainwindow.cpp:209
msgid "All Files (*)" msgid "All Files (*)"
msgstr "Alle filer (*)" msgstr "Alle filer (*)"
@@ -836,7 +836,7 @@ msgstr "Alltid start avspilling"
msgid "An error occurred loading the iTunes database" msgid "An error occurred loading the iTunes database"
msgstr "En feil oppsto ved innlasting av iTunes-databasen" msgstr "En feil oppsto ved innlasting av iTunes-databasen"
#: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:953 #: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:956
#, qt-format #, qt-format
msgid "An error occurred writing metadata to '%1'" msgid "An error occurred writing metadata to '%1'"
msgstr "Det oppstod en feil når metadata skulle skrives til '%1'" msgstr "Det oppstod en feil når metadata skulle skrives til '%1'"
@@ -885,13 +885,13 @@ msgstr ""
msgid "Are you sure you want to delete the \"%1\" preset?" msgid "Are you sure you want to delete the \"%1\" preset?"
msgstr "Er du sikker på at du vil slette \"%1\"-forhåndsinnstillingen?" msgstr "Er du sikker på at du vil slette \"%1\"-forhåndsinnstillingen?"
#: dialogs/edittagdialog.cpp:869 #: dialogs/edittagdialog.cpp:872
msgid "Are you sure you want to reset this song's statistics?" msgid "Are you sure you want to reset this song's statistics?"
msgstr "" msgstr ""
"Er du sikker på at du ønsker å nullstille statistikk for denne sangen?" "Er du sikker på at du ønsker å nullstille statistikk for denne sangen?"
#: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263 #: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263
#: organize/organizedialog.cpp:100 ../build/src/ui_groupbydialog.h:184 #: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:184
#: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228 #: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228
#: ../build/src/ui_albumcoversearcher.h:106 #: ../build/src/ui_albumcoversearcher.h:106
#: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713 #: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713
@@ -899,7 +899,7 @@ msgstr ""
msgid "Artist" msgid "Artist"
msgstr "Artist" msgstr "Artist"
#: organize/organizedialog.cpp:101 #: organize/organizedialog.cpp:104
msgid "Artist's initial" msgid "Artist's initial"
msgstr "Artistens initialer" msgstr "Artistens initialer"
@@ -1035,7 +1035,7 @@ msgid "Best"
msgstr "Best" msgstr "Best"
#: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136 #: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136
#: playlist/playlist.cpp:1281 organize/organizedialog.cpp:115 #: playlist/playlist.cpp:1281 organize/organizedialog.cpp:118
#: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223 #: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223
#: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695 #: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695
msgid "Bit depth" msgid "Bit depth"
@@ -1056,7 +1056,7 @@ msgstr "Bitrate"
msgid "Bitrate" msgid "Bitrate"
msgstr "Bitrate" msgstr "Bitrate"
#: organize/organizedialog.cpp:113 #: organize/organizedialog.cpp:116
msgctxt "Refers to bitrate in file organize dialog." msgctxt "Refers to bitrate in file organize dialog."
msgid "Bitrate" msgid "Bitrate"
msgstr "" msgstr ""
@@ -1101,7 +1101,7 @@ msgstr "Buffer"
msgid "Buffer duration" msgid "Buffer duration"
msgstr "Mellomlagringslengde" msgstr "Mellomlagringslengde"
#: engine/gstengine.cpp:630 #: engine/gstengine.cpp:681
msgid "Buffering" msgid "Buffering"
msgstr "Mellomlagring" msgstr "Mellomlagring"
@@ -1121,7 +1121,7 @@ msgstr "CDDA"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: tidal/tidalstreamurlrequest.cpp:107 qobuz/qobuzstreamurlrequest.cpp:103 #: tidal/tidalstreamurlrequest.cpp:108 qobuz/qobuzstreamurlrequest.cpp:103
msgid "Cancelled." msgid "Cancelled."
msgstr "Avbrutt" msgstr "Avbrutt"
@@ -1141,7 +1141,7 @@ msgstr "Bytt låten som spilles"
msgid "Change the language" msgid "Change the language"
msgstr "Endre språk" msgstr "Endre språk"
#: core/mainwindow.cpp:758 #: core/mainwindow.cpp:759
msgid "Check for updates..." msgid "Check for updates..."
msgstr "Se etter oppdateringer…" msgstr "Se etter oppdateringer…"
@@ -1186,7 +1186,7 @@ msgstr "Tøm"
msgid "Clear Disk Cache" msgid "Clear Disk Cache"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2191 ../build/src/ui_mainwindow.h:634 #: core/mainwindow.cpp:2204 ../build/src/ui_mainwindow.h:634
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Tøm spillelisten" msgstr "Tøm spillelisten"
@@ -1239,7 +1239,7 @@ msgstr "Lukking av dette vinduet vil medføre stopp i søk etter albumomslag."
msgid "Club" msgid "Club"
msgstr "Klubbmusikk" msgstr "Klubbmusikk"
#: core/mainwindow.cpp:337 ../build/src/ui_collectionsettingspage.h:406 #: core/mainwindow.cpp:338 ../build/src/ui_collectionsettingspage.h:406
#: ../build/src/ui_scrobblersettingspage.h:402 #: ../build/src/ui_scrobblersettingspage.h:402
msgid "Collection" msgid "Collection"
msgstr "Samling" msgstr "Samling"
@@ -1252,7 +1252,7 @@ msgstr "Collection Filter"
msgid "Collection advanced grouping" msgid "Collection advanced grouping"
msgstr "Avansert samlingsgruppering" msgstr "Avansert samlingsgruppering"
#: core/mainwindow.cpp:2703 #: core/mainwindow.cpp:2716
msgid "Collection rescan notice" msgid "Collection rescan notice"
msgstr "Melding om gjennomsøk av samlingen" msgstr "Melding om gjennomsøk av samlingen"
@@ -1269,7 +1269,7 @@ msgid "Comma separated list of class:level, level is 0-3"
msgstr "Komma-separert liste av klasse:level, level er 0-3" msgstr "Komma-separert liste av klasse:level, level er 0-3"
#: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374 #: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374
#: organize/organizedialog.cpp:111 ../build/src/ui_edittagdialog.h:711 #: organize/organizedialog.cpp:114 ../build/src/ui_edittagdialog.h:711
msgid "Comment" msgid "Comment"
msgstr "Kommentar" msgstr "Kommentar"
@@ -1286,7 +1286,7 @@ msgid "Complete tags automatically..."
msgstr "Full ut etiketter automatisk…" msgstr "Full ut etiketter automatisk…"
#: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272 #: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272
#: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:196 #: organize/organizedialog.cpp:106 ../build/src/ui_groupbydialog.h:196
#: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240 #: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240
#: ../build/src/ui_edittagdialog.h:710 #: ../build/src/ui_edittagdialog.h:710
msgid "Composer" msgid "Composer"
@@ -1313,7 +1313,7 @@ msgstr "Sett opp %1…"
msgid "Configure buttons" msgid "Configure buttons"
msgstr "" msgstr ""
#: core/mainwindow.cpp:638 #: core/mainwindow.cpp:639
msgid "Configure collection..." msgid "Configure collection..."
msgstr "Sett opp samling…" msgstr "Sett opp samling…"
@@ -1329,7 +1329,7 @@ msgstr "Konsoll"
msgid "Constant bitrate" msgid "Constant bitrate"
msgstr "Konstant bitrate" msgstr "Konstant bitrate"
#: core/mainwindow.cpp:336 ../build/src/ui_contextsettingspage.h:361 #: core/mainwindow.cpp:337 ../build/src/ui_contextsettingspage.h:361
msgid "Context" msgid "Context"
msgstr "Kontekst" msgstr "Kontekst"
@@ -1350,7 +1350,7 @@ msgstr "Konverter all musikk"
msgid "Convert any music that the device can't play" msgid "Convert any music that the device can't play"
msgstr "Konverter all musikk som enheten ikke kan spille" msgstr "Konverter all musikk som enheten ikke kan spille"
#: core/mainwindow.cpp:702 #: core/mainwindow.cpp:703
msgid "Copy URL(s)..." msgid "Copy URL(s)..."
msgstr "" msgstr ""
@@ -1358,7 +1358,7 @@ msgstr ""
msgid "Copy album cover artwork" msgid "Copy album cover artwork"
msgstr "Kopier album omslaggrafikk" msgstr "Kopier album omslaggrafikk"
#: core/mainwindow.cpp:706 widgets/fileviewlist.cpp:48 #: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:48
#: device/deviceview.cpp:239 #: device/deviceview.cpp:239
msgid "Copy to collection..." msgid "Copy to collection..."
msgstr "Kopier til samling…" msgstr "Kopier til samling…"
@@ -1367,7 +1367,7 @@ msgstr "Kopier til samling…"
msgid "Copy to device" msgid "Copy to device"
msgstr "" msgstr ""
#: core/mainwindow.cpp:709 context/contextalbumsview.cpp:262 #: core/mainwindow.cpp:710 context/contextalbumsview.cpp:262
#: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104 #: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104
#: widgets/fileviewlist.cpp:50 #: widgets/fileviewlist.cpp:50
msgid "Copy to device..." msgid "Copy to device..."
@@ -1608,7 +1608,7 @@ msgstr "Slett filer"
msgid "Delete from device..." msgid "Delete from device..."
msgstr "Slett fra enhet…" msgstr "Slett fra enhet…"
#: core/mainwindow.cpp:711 collection/collectionview.cpp:354 #: core/mainwindow.cpp:712 collection/collectionview.cpp:354
#: widgets/fileviewlist.cpp:51 #: widgets/fileviewlist.cpp:51
msgid "Delete from disk..." msgid "Delete from disk..."
msgstr "Slett fra disk…" msgstr "Slett fra disk…"
@@ -1630,11 +1630,11 @@ msgstr "Slett de originale filene"
msgid "Deleting files" msgid "Deleting files"
msgstr "Sletter filer" msgstr "Sletter filer"
#: core/mainwindow.cpp:1826 #: core/mainwindow.cpp:1839
msgid "Dequeue selected tracks" msgid "Dequeue selected tracks"
msgstr "Fjern valgte spor fra avspillingskøen" msgstr "Fjern valgte spor fra avspillingskøen"
#: core/mainwindow.cpp:1825 #: core/mainwindow.cpp:1838
msgid "Dequeue track" msgid "Dequeue track"
msgstr "Fjern sporet fra avspillingskøen" msgstr "Fjern sporet fra avspillingskøen"
@@ -1660,7 +1660,7 @@ msgstr "Egenskaper for enhet"
msgid "Device properties..." msgid "Device properties..."
msgstr "Egenskaper for enhet…" msgstr "Egenskaper for enhet…"
#: core/mainwindow.cpp:343 #: core/mainwindow.cpp:344
msgid "Devices" msgid "Devices"
msgstr "Enheter" msgstr "Enheter"
@@ -1682,7 +1682,7 @@ msgid "Disabled"
msgstr "Avskrudd" msgstr "Avskrudd"
#: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266 #: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266
#: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:188 #: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:188
#: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232 #: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232
#: ../build/src/ui_edittagdialog.h:708 #: ../build/src/ui_edittagdialog.h:708
msgid "Disc" msgid "Disc"
@@ -1717,6 +1717,10 @@ msgstr "Ikke kutt bildet"
msgid "Do not overwrite" msgid "Do not overwrite"
msgstr "Ikke overskriv" msgstr "Ikke overskriv"
#: ../build/src/ui_snapdialog.h:120
msgid "Do not show this message again."
msgstr ""
#: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110 #: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110
msgid "Don't repeat" msgid "Don't repeat"
msgstr "Ikke gjenta" msgstr "Ikke gjenta"
@@ -1775,7 +1779,7 @@ msgstr ""
msgid "Edit smart playlist..." msgid "Edit smart playlist..."
msgstr "" msgstr ""
#: core/mainwindow.cpp:1867 #: core/mainwindow.cpp:1880
#, qt-format #, qt-format
msgid "Edit tag \"%1\"..." msgid "Edit tag \"%1\"..."
msgstr "Rediger etiketten \"%1\"…" msgstr "Rediger etiketten \"%1\"…"
@@ -1925,7 +1929,7 @@ msgstr "Tilsvarer --log-levels *:1"
msgid "Equivalent to --log-levels *:3" msgid "Equivalent to --log-levels *:3"
msgstr "Tilsvarer --log-levels *:3" msgstr "Tilsvarer --log-levels *:3"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "Error" msgid "Error"
msgstr "Feil" msgstr "Feil"
@@ -2091,7 +2095,7 @@ msgstr "Kunne ikke hente albumgrafikk"
msgid "File %1 is not recognized as a valid audio file." msgid "File %1 is not recognized as a valid audio file."
msgstr "Fil %1 er ikke gjenkjent som en lydfil" msgstr "Fil %1 er ikke gjenkjent som en lydfil"
#: organize/organizedialog.cpp:116 #: organize/organizedialog.cpp:119
msgid "File extension" msgid "File extension"
msgstr "Fil etternavn" msgstr "Fil etternavn"
@@ -2129,7 +2133,7 @@ msgstr "Filnavn"
msgid "Filename:" msgid "Filename:"
msgstr "Filnavn:" msgstr "Filnavn:"
#: core/mainwindow.cpp:341 #: core/mainwindow.cpp:342
msgid "Files" msgid "Files"
msgstr "Filer" msgstr "Filer"
@@ -2183,6 +2187,15 @@ msgstr ""
msgid "Font size" msgid "Font size"
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:56
#, qt-format
msgid "For Ubuntu there is an official PPA repository available at %1."
msgstr ""
#: dialogs/snapdialog.cpp:64
msgid "For a better experience please consider the other options above."
msgstr ""
#: ../build/src/ui_transcoderoptionsmp3.h:203 #: ../build/src/ui_transcoderoptionsmp3.h:203
msgid "Force mono encoding" msgid "Force mono encoding"
msgstr "Tving monolyd-koding" msgstr "Tving monolyd-koding"
@@ -2265,7 +2278,7 @@ msgid "Genius Authentication"
msgstr "" msgstr ""
#: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270 #: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270
#: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:190 #: organize/organizedialog.cpp:113 ../build/src/ui_groupbydialog.h:190
#: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234 #: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234
#: ../build/src/ui_edittagdialog.h:704 #: ../build/src/ui_edittagdialog.h:704
msgid "Genre" msgid "Genre"
@@ -2364,7 +2377,7 @@ msgid "Group by Genre/Artist/Album"
msgstr "Grupper etter sjanger/artist/album" msgstr "Grupper etter sjanger/artist/album"
#: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274 #: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274
#: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:198 #: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:198
#: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242 #: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242
#: ../build/src/ui_edittagdialog.h:706 #: ../build/src/ui_edittagdialog.h:706
msgid "Grouping" msgid "Grouping"
@@ -2542,6 +2555,10 @@ msgid ""
"audiophiles." "audiophiles."
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:44
msgid "It is detected that Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_behavioursettingspage.h:302 #: ../build/src/ui_behavioursettingspage.h:302
msgid "Jump to previous song right away" msgid "Jump to previous song right away"
msgstr "Gå til forrige sang nå" msgstr "Gå til forrige sang nå"
@@ -2606,7 +2623,7 @@ msgid "Left"
msgstr "Venstre" msgstr "Venstre"
#: context/contextview.cpp:214 playlist/playlist.cpp:1267 #: context/contextview.cpp:214 playlist/playlist.cpp:1267
#: organize/organizedialog.cpp:112 ../build/src/ui_edittagdialog.h:689 #: organize/organizedialog.cpp:115 ../build/src/ui_edittagdialog.h:689
msgid "Length" msgid "Length"
msgstr "Lengde" msgstr "Lengde"
@@ -2824,7 +2841,7 @@ msgstr "Mangler Subsonic brukernavn eller passord."
#: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796 #: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796
#: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918 #: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918
#: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:89 #: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:90
msgid "Missing Tidal API token, username or password." msgid "Missing Tidal API token, username or password."
msgstr "" msgstr ""
@@ -2910,7 +2927,7 @@ msgstr "Monteringspunkter"
msgid "Move down" msgid "Move down"
msgstr "Flytt nedover" msgstr "Flytt nedover"
#: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:49 #: core/mainwindow.cpp:708 widgets/fileviewlist.cpp:49
msgid "Move to collection..." msgid "Move to collection..."
msgstr "Flytt til samling…" msgstr "Flytt til samling…"
@@ -2919,7 +2936,7 @@ msgstr "Flytt til samling…"
msgid "Move up" msgid "Move up"
msgstr "Flytt oppover" msgstr "Flytt oppover"
#: core/mainwindow.cpp:2101 transcoder/transcodedialog.cpp:328 #: core/mainwindow.cpp:2114 transcoder/transcodedialog.cpp:328
msgid "Music" msgid "Music"
msgstr "Musikk" msgstr "Musikk"
@@ -2964,7 +2981,7 @@ msgstr "Aldri begynn avspilling"
msgid "New folder" msgid "New folder"
msgstr "Ny mappe" msgstr "Ny mappe"
#: core/mainwindow.cpp:1925 #: core/mainwindow.cpp:1938
msgid "New playlist" msgid "New playlist"
msgstr "Ny spilleliste" msgstr "Ny spilleliste"
@@ -3008,7 +3025,7 @@ msgstr "Ingen omslag å eksportere."
msgid "No long blocks" msgid "No long blocks"
msgstr "Ingen lange blokker" msgstr "Ingen lange blokker"
#: tidal/tidalrequest.cpp:1256 qobuz/qobuzrequest.cpp:1318 #: tidal/tidalrequest.cpp:1253 qobuz/qobuzrequest.cpp:1315
msgid "No match." msgid "No match."
msgstr "Ingen treff." msgstr "Ingen treff."
@@ -3034,7 +3051,7 @@ msgstr "Ingen sang spilles"
msgid "None" msgid "None"
msgstr "Ingen" msgstr "Ingen"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "None of the selected songs were suitable for copying to a device" msgid "None of the selected songs were suitable for copying to a device"
msgstr "Kunne ikke kopiere noen av de valgte sangene til en enhet" msgstr "Kunne ikke kopiere noen av de valgte sangene til en enhet"
@@ -3059,7 +3076,7 @@ msgstr "Autentisering med Tidal har nådd maksimalt antall påloggingsforsøk."
#: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791 #: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791
#: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913 #: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913
#: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:85 #: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:86
msgid "Not authenticated with Tidal." msgid "Not authenticated with Tidal."
msgstr "Ikke autentisert med Tidal." msgstr "Ikke autentisert med Tidal."
@@ -3099,6 +3116,13 @@ msgstr "Forhåndsvisning av skjermbildeoverlegg"
msgid "Off" msgid "Off"
msgstr "Av" msgstr "Av"
#: dialogs/snapdialog.cpp:60
#, qt-format
msgid ""
"Official releases are available for Debian and Ubuntu which also work on "
"most of their derivatives. See %1 for more information."
msgstr ""
#: osd/osdbase.cpp:245 #: osd/osdbase.cpp:245
msgid "On" msgid "On"
msgstr "På" msgstr "På"
@@ -3164,7 +3188,7 @@ msgstr "Opus"
msgid "Organize Files" msgid "Organize Files"
msgstr "" msgstr ""
#: core/mainwindow.cpp:705 context/contextalbumsview.cpp:260 #: core/mainwindow.cpp:706 context/contextalbumsview.cpp:260
#: collection/collectionview.cpp:350 #: collection/collectionview.cpp:350
msgid "Organize files..." msgid "Organize files..."
msgstr "" msgstr ""
@@ -3178,7 +3202,7 @@ msgid "Original tags"
msgstr "Opprinnelige tagger" msgstr "Opprinnelige tagger"
#: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269 #: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269
#: organize/organizedialog.cpp:109 ../build/src/ui_groupbydialog.h:194 #: organize/organizedialog.cpp:112 ../build/src/ui_groupbydialog.h:194
#: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238 #: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238
msgid "Original year" msgid "Original year"
msgstr "Opprinnelig år" msgstr "Opprinnelig år"
@@ -3237,7 +3261,7 @@ msgstr "Fest"
msgid "Password" msgid "Password"
msgstr "Passord" msgstr "Passord"
#: core/mainwindow.cpp:1247 core/mainwindow.cpp:1721 #: core/mainwindow.cpp:1260 core/mainwindow.cpp:1734
#: core/qtsystemtrayicon.cpp:190 #: core/qtsystemtrayicon.cpp:190
msgid "Pause" msgid "Pause"
msgstr "Pause" msgstr "Pause"
@@ -3251,7 +3275,7 @@ msgid "Paused"
msgstr "På pause" msgstr "På pause"
#: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273 #: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273
#: organize/organizedialog.cpp:104 ../build/src/ui_groupbydialog.h:197 #: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:197
#: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241 #: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241
#: ../build/src/ui_edittagdialog.h:715 #: ../build/src/ui_edittagdialog.h:715
msgid "Performer" msgid "Performer"
@@ -3265,8 +3289,8 @@ msgstr "Piksel"
msgid "Plain sidebar" msgid "Plain sidebar"
msgstr "Enkelt sidefelt" msgstr "Enkelt sidefelt"
#: core/mainwindow.cpp:674 core/mainwindow.cpp:1200 core/mainwindow.cpp:1229 #: core/mainwindow.cpp:675 core/mainwindow.cpp:1213 core/mainwindow.cpp:1242
#: core/mainwindow.cpp:1725 core/qtsystemtrayicon.cpp:177 #: core/mainwindow.cpp:1738 core/qtsystemtrayicon.cpp:177
#: core/qtsystemtrayicon.cpp:202 #: core/qtsystemtrayicon.cpp:202
msgid "Play" msgid "Play"
msgstr "Spill" msgstr "Spill"
@@ -3329,7 +3353,7 @@ msgstr ""
msgid "Playlist finished" msgid "Playlist finished"
msgstr "Spillelisten er ferdigspilt" msgstr "Spillelisten er ferdigspilt"
#: core/mainwindow.cpp:2191 #: core/mainwindow.cpp:2204
#, qt-format #, qt-format
msgid "" msgid ""
"Playlist has %1 songs, too large to undo, are you sure you want to clear the " "Playlist has %1 songs, too large to undo, are you sure you want to clear the "
@@ -3349,7 +3373,7 @@ msgstr "Innstillinger for spilleliste"
msgid "Playlist type" msgid "Playlist type"
msgstr "" msgstr ""
#: core/mainwindow.cpp:339 #: core/mainwindow.cpp:340
msgid "Playlists" msgid "Playlists"
msgstr "Spillelister" msgstr "Spillelister"
@@ -3470,7 +3494,7 @@ msgstr "Framdrift"
msgid "Put songs in a random order" msgid "Put songs in a random order"
msgstr "" msgstr ""
#: core/mainwindow.cpp:352 ../build/src/ui_scrobblersettingspage.h:409 #: core/mainwindow.cpp:353 ../build/src/ui_scrobblersettingspage.h:409
#: ../build/src/ui_qobuzsettingspage.h:270 #: ../build/src/ui_qobuzsettingspage.h:270
msgid "Qobuz" msgid "Qobuz"
msgstr "Qobuz" msgstr "Qobuz"
@@ -3493,24 +3517,24 @@ msgstr "Kvalitet"
msgid "Querying device..." msgid "Querying device..."
msgstr "Spør enhet…" msgstr "Spør enhet…"
#: core/mainwindow.cpp:338 #: core/mainwindow.cpp:339
msgid "Queue" msgid "Queue"
msgstr "Kø" msgstr "Kø"
#: core/mainwindow.cpp:1828 #: core/mainwindow.cpp:1841
msgid "Queue selected tracks" msgid "Queue selected tracks"
msgstr "Legg valgte spor i kø" msgstr "Legg valgte spor i kø"
#: core/mainwindow.cpp:680 core/mainwindow.cpp:1832 #: core/mainwindow.cpp:681 core/mainwindow.cpp:1845
msgid "Queue selected tracks to play next" msgid "Queue selected tracks to play next"
msgstr "Legg valgte spor i kø for å spille som neste" msgstr "Legg valgte spor i kø for å spille som neste"
#: core/mainwindow.cpp:1834 collection/collectionview.cpp:347 #: core/mainwindow.cpp:1847 collection/collectionview.cpp:347
#: internet/internetcollectionview.cpp:317 #: internet/internetcollectionview.cpp:317
msgid "Queue to play next" msgid "Queue to play next"
msgstr "Legg i kø for å spille som neste" msgstr "Legg i kø for å spille som neste"
#: core/mainwindow.cpp:1827 context/contextalbumsview.cpp:257 #: core/mainwindow.cpp:1840 context/contextalbumsview.cpp:257
#: collection/collectionview.cpp:346 #: collection/collectionview.cpp:346
#: smartplaylists/smartplaylistsviewcontainer.cpp:75 #: smartplaylists/smartplaylistsviewcontainer.cpp:75
#: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316 #: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316
@@ -3705,7 +3729,7 @@ msgstr ""
msgid "Rescan song(s)" msgid "Rescan song(s)"
msgstr "Reskann sang(er)" msgstr "Reskann sang(er)"
#: core/mainwindow.cpp:696 #: core/mainwindow.cpp:697
msgid "Rescan song(s)..." msgid "Rescan song(s)..."
msgstr "" msgstr ""
@@ -3713,7 +3737,7 @@ msgstr ""
msgid "Reset" msgid "Reset"
msgstr "Tilbakestill" msgstr "Tilbakestill"
#: dialogs/edittagdialog.cpp:869 ../build/src/ui_edittagdialog.h:688 #: dialogs/edittagdialog.cpp:872 ../build/src/ui_edittagdialog.h:688
msgid "Reset play counts" msgid "Reset play counts"
msgstr "Tilbakestill avspillingsteller" msgstr "Tilbakestill avspillingsteller"
@@ -3820,7 +3844,7 @@ msgid "Safely remove the device after copying"
msgstr "Kjør trygg fjerning av enhet etter kopiering" msgstr "Kjør trygg fjerning av enhet etter kopiering"
#: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280 #: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280
#: organize/organizedialog.cpp:114 ../build/src/ui_groupbydialog.h:200 #: organize/organizedialog.cpp:117 ../build/src/ui_groupbydialog.h:200
#: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244 #: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244
#: ../build/src/ui_edittagdialog.h:694 #: ../build/src/ui_edittagdialog.h:694
msgid "Sample rate" msgid "Sample rate"
@@ -3880,7 +3904,7 @@ msgstr "Behandler for lagrede grupperinger"
msgid "Saving album covers" msgid "Saving album covers"
msgstr "Lagrer album kover" msgstr "Lagrer album kover"
#: dialogs/edittagdialog.cpp:784 dialogs/trackselectiondialog.cpp:291 #: dialogs/edittagdialog.cpp:787 dialogs/trackselectiondialog.cpp:291
msgid "Saving tracks" msgid "Saving tracks"
msgstr "Lagrer spor" msgstr "Lagrer spor"
@@ -4013,7 +4037,7 @@ msgstr "Server URL er ugyldig."
msgid "Server-side scrobbling" msgid "Server-side scrobbling"
msgstr "" msgstr ""
#: core/mainwindow.cpp:1866 #: core/mainwindow.cpp:1879
#, qt-format #, qt-format
msgid "Set %1 to \"%2\"..." msgid "Set %1 to \"%2\"..."
msgstr "Sett %1 til \"%2\"…" msgstr "Sett %1 til \"%2\"…"
@@ -4100,7 +4124,7 @@ msgstr "Vis albumbilder i samlingen"
msgid "Show albums by artist" msgid "Show albums by artist"
msgstr "Vis albumer med artist" msgstr "Vis albumer med artist"
#: core/mainwindow.cpp:627 #: core/mainwindow.cpp:628
msgid "Show all songs" msgid "Show all songs"
msgstr "Vis alle sanger" msgstr "Vis alle sanger"
@@ -4124,7 +4148,7 @@ msgstr "Vis motor og enhet"
msgid "Show fullsize..." msgid "Show fullsize..."
msgstr "Fullskjermvisning…" msgstr "Fullskjermvisning…"
#: core/mainwindow.cpp:703 #: core/mainwindow.cpp:704
msgid "Show in collection..." msgid "Show in collection..."
msgstr "Vis i samling…" msgstr "Vis i samling…"
@@ -4132,7 +4156,7 @@ msgstr "Vis i samling…"
msgid "Show in file browser" msgid "Show in file browser"
msgstr "Vis i fil utforsker" msgstr "Vis i fil utforsker"
#: core/mainwindow.cpp:704 context/contextalbumsview.cpp:268 #: core/mainwindow.cpp:705 context/contextalbumsview.cpp:268
#: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55 #: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55
msgid "Show in file browser..." msgid "Show in file browser..."
msgstr "Vis i fil utforsker" msgstr "Vis i fil utforsker"
@@ -4149,11 +4173,11 @@ msgstr "Vis love knapp"
msgid "Show moodbar" msgid "Show moodbar"
msgstr "Vis moodbar" msgstr "Vis moodbar"
#: core/mainwindow.cpp:628 #: core/mainwindow.cpp:629
msgid "Show only duplicates" msgid "Show only duplicates"
msgstr "Bare vis duplikater" msgstr "Bare vis duplikater"
#: core/mainwindow.cpp:629 #: core/mainwindow.cpp:630
msgid "Show only untagged" msgid "Show only untagged"
msgstr "Bare vis filer uten etiketter" msgstr "Bare vis filer uten etiketter"
@@ -4242,11 +4266,11 @@ msgstr "Antall ganger hoppet over"
msgid "Skip forwards in playlist" msgid "Skip forwards in playlist"
msgstr "Gå fremover i spillelista" msgstr "Gå fremover i spillelista"
#: core/mainwindow.cpp:1839 #: core/mainwindow.cpp:1852
msgid "Skip selected tracks" msgid "Skip selected tracks"
msgstr "Hopp over valgte spor" msgstr "Hopp over valgte spor"
#: core/mainwindow.cpp:1838 #: core/mainwindow.cpp:1851
msgid "Skip track" msgid "Skip track"
msgstr "Hopp over spor" msgstr "Hopp over spor"
@@ -4262,7 +4286,7 @@ msgstr "Lite sidefelt"
msgid "Smart playlist" msgid "Smart playlist"
msgstr "" msgstr ""
#: core/mainwindow.cpp:340 #: core/mainwindow.cpp:341
msgid "Smart playlists" msgid "Smart playlists"
msgstr "" msgstr ""
@@ -4346,7 +4370,7 @@ msgstr "Stopp etter hvert spor"
msgid "Stop after every track" msgid "Stop after every track"
msgstr "Stopp etter hvert spor" msgstr "Stopp etter hvert spor"
#: core/mainwindow.cpp:676 ../build/src/ui_mainwindow.h:627 #: core/mainwindow.cpp:677 ../build/src/ui_mainwindow.h:627
msgid "Stop after this track" msgid "Stop after this track"
msgstr "Stopp etter denne sangen" msgstr "Stopp etter denne sangen"
@@ -4406,6 +4430,21 @@ msgid ""
"on %1" "on %1"
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:40
msgid "Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_snapdialog.h:117
msgid "Strawberry is running as a snap"
msgstr ""
#: dialogs/snapdialog.cpp:48
msgid ""
"Strawberry is slower, and has restrictions when running as a Snap. Accessing "
"the root filesystem (/) will not work. There also might be other "
"restrictions such as accessing certain devices or network shares."
msgstr ""
#: ../build/src/ui_trackselectiondialog.h:205 #: ../build/src/ui_trackselectiondialog.h:205
msgid "Strawberry was unable to find results for this file" msgid "Strawberry was unable to find results for this file"
msgstr "Strawberry klarte ikke å finne resultater for denne filen" msgstr "Strawberry klarte ikke å finne resultater for denne filen"
@@ -4430,7 +4469,7 @@ msgstr "Utvid bildet til å fylle spilleliste"
msgid "Submit scrobbles every" msgid "Submit scrobbles every"
msgstr "Send scrobbles hver" msgstr "Send scrobbles hver"
#: core/mainwindow.cpp:346 ../build/src/ui_scrobblersettingspage.h:407 #: core/mainwindow.cpp:347 ../build/src/ui_scrobblersettingspage.h:407
#: ../build/src/ui_subsonicsettingspage.h:188 #: ../build/src/ui_subsonicsettingspage.h:188
msgid "Subsonic" msgid "Subsonic"
msgstr "Subsonic" msgstr "Subsonic"
@@ -4556,7 +4595,7 @@ msgstr "Siden du forespurte finnes ikke!"
msgid "The site you requested is not an image!" msgid "The site you requested is not an image!"
msgstr "Siden du forespurte er ikke et bilde!" msgstr "Siden du forespurte er ikke et bilde!"
#: core/mainwindow.cpp:2698 #: core/mainwindow.cpp:2711
msgid "" msgid ""
"The version of Strawberry you've just updated to requires a full collection " "The version of Strawberry you've just updated to requires a full collection "
"rescan because of the new features listed below:" "rescan because of the new features listed below:"
@@ -4659,7 +4698,7 @@ msgstr "Dette valget kan endres under innstillinger for \"Oppførsel\""
msgid "This type of device is not supported: %1" msgid "This type of device is not supported: %1"
msgstr "Denne enhetstypen (%1) støttes ikke." msgstr "Denne enhetstypen (%1) støttes ikke."
#: core/mainwindow.cpp:349 ../build/src/ui_scrobblersettingspage.h:408 #: core/mainwindow.cpp:350 ../build/src/ui_scrobblersettingspage.h:408
#: ../build/src/ui_tidalsettingspage.h:312 #: ../build/src/ui_tidalsettingspage.h:312
msgid "Tidal" msgid "Tidal"
msgstr "Tidal" msgstr "Tidal"
@@ -4674,7 +4713,7 @@ msgstr ""
msgid "Time step" msgid "Time step"
msgstr "Tidstrinn" msgstr "Tidstrinn"
#: playlist/playlist.cpp:1262 organize/organizedialog.cpp:98 #: playlist/playlist.cpp:1262 organize/organizedialog.cpp:101
#: ../build/src/ui_contextsettingspage.h:414 #: ../build/src/ui_contextsettingspage.h:414
#: ../build/src/ui_edittagdialog.h:705 #: ../build/src/ui_edittagdialog.h:705
#: ../build/src/ui_trackselectiondialog.h:210 #: ../build/src/ui_trackselectiondialog.h:210
@@ -4685,7 +4724,7 @@ msgstr "Tittel"
msgid "Today" msgid "Today"
msgstr "I dag" msgstr "I dag"
#: core/mainwindow.cpp:677 core/mainwindow.cpp:1829 #: core/mainwindow.cpp:678 core/mainwindow.cpp:1842
msgid "Toggle queue status" msgid "Toggle queue status"
msgstr "Slå av/på køstatus" msgstr "Slå av/på køstatus"
@@ -4693,7 +4732,7 @@ msgstr "Slå av/på køstatus"
msgid "Toggle scrobbling" msgid "Toggle scrobbling"
msgstr "Slå av/på deling av lyttevaner" msgstr "Slå av/på deling av lyttevaner"
#: core/mainwindow.cpp:683 core/mainwindow.cpp:1840 #: core/mainwindow.cpp:684 core/mainwindow.cpp:1853
msgid "Toggle skip status" msgid "Toggle skip status"
msgstr "Slå av/på hopp over status" msgstr "Slå av/på hopp over status"
@@ -4721,7 +4760,7 @@ msgstr "Antall byte overført totalt"
msgid "Total network requests made" msgid "Total network requests made"
msgstr "Antall nettverkforespørsler totalt" msgstr "Antall nettverkforespørsler totalt"
#: playlist/playlist.cpp:1265 organize/organizedialog.cpp:106 #: playlist/playlist.cpp:1265 organize/organizedialog.cpp:109
#: ../build/src/ui_edittagdialog.h:712 #: ../build/src/ui_edittagdialog.h:712
#: ../build/src/ui_trackselectiondialog.h:212 #: ../build/src/ui_trackselectiondialog.h:212
msgid "Track" msgid "Track"
@@ -4779,8 +4818,8 @@ msgstr "Ultrabredt bånd (UWB)"
msgid "Unknown" msgid "Unknown"
msgstr "Ukjent" msgstr "Ukjent"
#: subsonic/subsonicrequest.cpp:858 tidal/tidalrequest.cpp:1262 #: subsonic/subsonicrequest.cpp:864 tidal/tidalrequest.cpp:1259
#: qobuz/qobuzrequest.cpp:1324 #: qobuz/qobuzrequest.cpp:1321
msgid "Unknown error" msgid "Unknown error"
msgstr "Ukjent feil" msgstr "Ukjent feil"
@@ -4788,11 +4827,11 @@ msgstr "Ukjent feil"
msgid "Unset cover" msgid "Unset cover"
msgstr "Fjern omslagsvalg" msgstr "Fjern omslagsvalg"
#: core/mainwindow.cpp:1837 #: core/mainwindow.cpp:1850
msgid "Unskip selected tracks" msgid "Unskip selected tracks"
msgstr "Ikke hopp over de valgte sporene" msgstr "Ikke hopp over de valgte sporene"
#: core/mainwindow.cpp:1836 #: core/mainwindow.cpp:1849
msgid "Unskip track" msgid "Unskip track"
msgstr "Ikke hopp over sporet" msgstr "Ikke hopp over sporet"
@@ -5026,7 +5065,7 @@ msgid ""
"well?" "well?"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2702 #: core/mainwindow.cpp:2715
msgid "Would you like to run a full rescan right now?" msgid "Would you like to run a full rescan right now?"
msgstr "Vil du søke gjennom hele samlingen på ny nå?" msgstr "Vil du søke gjennom hele samlingen på ny nå?"
@@ -5035,7 +5074,7 @@ msgid "Write metadata when saving playlists"
msgstr "Skrev metadata når spilleliste lagres" msgstr "Skrev metadata når spilleliste lagres"
#: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268 #: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268
#: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:191 #: organize/organizedialog.cpp:111 ../build/src/ui_groupbydialog.h:191
#: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235 #: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235
#: ../build/src/ui_edittagdialog.h:714 #: ../build/src/ui_edittagdialog.h:714
#: ../build/src/ui_trackselectiondialog.h:211 #: ../build/src/ui_trackselectiondialog.h:211

View File

@@ -570,7 +570,7 @@ msgstr ""
msgid "Add directory..." msgid "Add directory..."
msgstr "Dodaj katalog…" msgstr "Dodaj katalog…"
#: core/mainwindow.cpp:2101 #: core/mainwindow.cpp:2114
msgid "Add file" msgid "Add file"
msgstr "Dodaj plik" msgstr "Dodaj plik"
@@ -586,7 +586,7 @@ msgstr "Dodaj plik(i) do transkodera"
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Dodaj pliki to transkodowania" msgstr "Dodaj pliki to transkodowania"
#: core/mainwindow.cpp:2126 transcoder/transcodedialog.cpp:419 #: core/mainwindow.cpp:2139 transcoder/transcodedialog.cpp:419
msgid "Add folder" msgid "Add folder"
msgstr "Dodaj katalog" msgstr "Dodaj katalog"
@@ -689,7 +689,7 @@ msgstr "Dodaj strumień…"
msgid "Add to albums" msgid "Add to albums"
msgstr "Dodaj do albumów" msgstr "Dodaj do albumów"
#: core/mainwindow.cpp:1909 #: core/mainwindow.cpp:1922
msgid "Add to another playlist" msgid "Add to another playlist"
msgstr "Dodaj do innej listy odtwarzania" msgstr "Dodaj do innej listy odtwarzania"
@@ -748,7 +748,7 @@ msgid "Albu&m cover"
msgstr "Okładka albu&mu" msgstr "Okładka albu&mu"
#: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264 #: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264
#: organize/organizedialog.cpp:99 ../build/src/ui_groupbydialog.h:186 #: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:186
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230 #: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
#: ../build/src/ui_albumcoversearcher.h:110 #: ../build/src/ui_albumcoversearcher.h:110
#: ../build/src/ui_albumcoversearcher.h:112 #: ../build/src/ui_albumcoversearcher.h:112
@@ -768,7 +768,7 @@ msgid "Album - Disc"
msgstr "Album - Płyta" msgstr "Album - Płyta"
#: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271 #: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271
#: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:185 #: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:185
#: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229 #: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229
#: ../build/src/ui_edittagdialog.h:709 #: ../build/src/ui_edittagdialog.h:709
msgid "Album artist" msgid "Album artist"
@@ -808,7 +808,7 @@ msgstr "Albumy z okładkami"
msgid "Albums without covers" msgid "Albums without covers"
msgstr "Albumy bez okładek" msgstr "Albumy bez okładek"
#: core/mainwindow.cpp:208 #: core/mainwindow.cpp:209
msgid "All Files (*)" msgid "All Files (*)"
msgstr "Wszystkie pliki (*)" msgstr "Wszystkie pliki (*)"
@@ -854,7 +854,7 @@ msgstr "Odtwarzaj automatycznie"
msgid "An error occurred loading the iTunes database" msgid "An error occurred loading the iTunes database"
msgstr "Wystąpił błąd podczas ładowania bazy danych iTunes" msgstr "Wystąpił błąd podczas ładowania bazy danych iTunes"
#: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:953 #: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:956
#, qt-format #, qt-format
msgid "An error occurred writing metadata to '%1'" msgid "An error occurred writing metadata to '%1'"
msgstr "Wystąpił błąd podczas zapisu metadanych do '%1'" msgstr "Wystąpił błąd podczas zapisu metadanych do '%1'"
@@ -903,12 +903,12 @@ msgstr "Na pewno chcesz kontynuować?"
msgid "Are you sure you want to delete the \"%1\" preset?" msgid "Are you sure you want to delete the \"%1\" preset?"
msgstr "Na pewno chcesz usunąć ustawienie „%1”?" msgstr "Na pewno chcesz usunąć ustawienie „%1”?"
#: dialogs/edittagdialog.cpp:869 #: dialogs/edittagdialog.cpp:872
msgid "Are you sure you want to reset this song's statistics?" msgid "Are you sure you want to reset this song's statistics?"
msgstr "Na pewno wyzerować statystyki tego utworu?" msgstr "Na pewno wyzerować statystyki tego utworu?"
#: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263 #: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263
#: organize/organizedialog.cpp:100 ../build/src/ui_groupbydialog.h:184 #: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:184
#: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228 #: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228
#: ../build/src/ui_albumcoversearcher.h:106 #: ../build/src/ui_albumcoversearcher.h:106
#: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713 #: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713
@@ -916,7 +916,7 @@ msgstr "Na pewno wyzerować statystyki tego utworu?"
msgid "Artist" msgid "Artist"
msgstr "Artysta" msgstr "Artysta"
#: organize/organizedialog.cpp:101 #: organize/organizedialog.cpp:104
msgid "Artist's initial" msgid "Artist's initial"
msgstr "Inicjały artysty" msgstr "Inicjały artysty"
@@ -1052,7 +1052,7 @@ msgid "Best"
msgstr "Najlepsza" msgstr "Najlepsza"
#: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136 #: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136
#: playlist/playlist.cpp:1281 organize/organizedialog.cpp:115 #: playlist/playlist.cpp:1281 organize/organizedialog.cpp:118
#: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223 #: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223
#: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695 #: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695
msgid "Bit depth" msgid "Bit depth"
@@ -1073,7 +1073,7 @@ msgstr "Przepływność"
msgid "Bitrate" msgid "Bitrate"
msgstr "Przepływność" msgstr "Przepływność"
#: organize/organizedialog.cpp:113 #: organize/organizedialog.cpp:116
msgctxt "Refers to bitrate in file organize dialog." msgctxt "Refers to bitrate in file organize dialog."
msgid "Bitrate" msgid "Bitrate"
msgstr "Przepływność" msgstr "Przepływność"
@@ -1118,7 +1118,7 @@ msgstr "Bufor"
msgid "Buffer duration" msgid "Buffer duration"
msgstr "Długość bufora" msgstr "Długość bufora"
#: engine/gstengine.cpp:630 #: engine/gstengine.cpp:681
msgid "Buffering" msgid "Buffering"
msgstr "Buforowanie" msgstr "Buforowanie"
@@ -1138,7 +1138,7 @@ msgstr "CD-Audio"
msgid "Cancel" msgid "Cancel"
msgstr "Anuluj" msgstr "Anuluj"
#: tidal/tidalstreamurlrequest.cpp:107 qobuz/qobuzstreamurlrequest.cpp:103 #: tidal/tidalstreamurlrequest.cpp:108 qobuz/qobuzstreamurlrequest.cpp:103
msgid "Cancelled." msgid "Cancelled."
msgstr "Anulowano." msgstr "Anulowano."
@@ -1158,7 +1158,7 @@ msgstr "Zmień aktualnie odtwarzany utwór"
msgid "Change the language" msgid "Change the language"
msgstr "Zmień język" msgstr "Zmień język"
#: core/mainwindow.cpp:758 #: core/mainwindow.cpp:759
msgid "Check for updates..." msgid "Check for updates..."
msgstr "Sprawdź dostępność aktualizacji…" msgstr "Sprawdź dostępność aktualizacji…"
@@ -1203,7 +1203,7 @@ msgstr "Wyczyść"
msgid "Clear Disk Cache" msgid "Clear Disk Cache"
msgstr "Wyczyść pamięć podręczną na dysku" msgstr "Wyczyść pamięć podręczną na dysku"
#: core/mainwindow.cpp:2191 ../build/src/ui_mainwindow.h:634 #: core/mainwindow.cpp:2204 ../build/src/ui_mainwindow.h:634
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Wyczyść listę odtwarzania" msgstr "Wyczyść listę odtwarzania"
@@ -1258,7 +1258,7 @@ msgstr ""
msgid "Club" msgid "Club"
msgstr "Klubowa" msgstr "Klubowa"
#: core/mainwindow.cpp:337 ../build/src/ui_collectionsettingspage.h:406 #: core/mainwindow.cpp:338 ../build/src/ui_collectionsettingspage.h:406
#: ../build/src/ui_scrobblersettingspage.h:402 #: ../build/src/ui_scrobblersettingspage.h:402
msgid "Collection" msgid "Collection"
msgstr "Kolekcja" msgstr "Kolekcja"
@@ -1271,7 +1271,7 @@ msgstr "Filtr kolekcji"
msgid "Collection advanced grouping" msgid "Collection advanced grouping"
msgstr "Zaawansowanie grupowanie kolekcji" msgstr "Zaawansowanie grupowanie kolekcji"
#: core/mainwindow.cpp:2703 #: core/mainwindow.cpp:2716
msgid "Collection rescan notice" msgid "Collection rescan notice"
msgstr "Konieczność odświeżenia kolekcji" msgstr "Konieczność odświeżenia kolekcji"
@@ -1290,7 +1290,7 @@ msgstr ""
"do 3" "do 3"
#: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374 #: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374
#: organize/organizedialog.cpp:111 ../build/src/ui_edittagdialog.h:711 #: organize/organizedialog.cpp:114 ../build/src/ui_edittagdialog.h:711
msgid "Comment" msgid "Comment"
msgstr "Komentarz" msgstr "Komentarz"
@@ -1307,7 +1307,7 @@ msgid "Complete tags automatically..."
msgstr "Automatycznie uzupełnij znaczniki…" msgstr "Automatycznie uzupełnij znaczniki…"
#: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272 #: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272
#: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:196 #: organize/organizedialog.cpp:106 ../build/src/ui_groupbydialog.h:196
#: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240 #: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240
#: ../build/src/ui_edittagdialog.h:710 #: ../build/src/ui_edittagdialog.h:710
msgid "Composer" msgid "Composer"
@@ -1334,7 +1334,7 @@ msgstr "Skonfiguruj %1…"
msgid "Configure buttons" msgid "Configure buttons"
msgstr "Konfiguracja przycisków" msgstr "Konfiguracja przycisków"
#: core/mainwindow.cpp:638 #: core/mainwindow.cpp:639
msgid "Configure collection..." msgid "Configure collection..."
msgstr "Konfiguruj bibliotekę…" msgstr "Konfiguruj bibliotekę…"
@@ -1350,7 +1350,7 @@ msgstr "Konsola"
msgid "Constant bitrate" msgid "Constant bitrate"
msgstr "Stała przepływność (CBR)" msgstr "Stała przepływność (CBR)"
#: core/mainwindow.cpp:336 ../build/src/ui_contextsettingspage.h:361 #: core/mainwindow.cpp:337 ../build/src/ui_contextsettingspage.h:361
msgid "Context" msgid "Context"
msgstr "Kontekst" msgstr "Kontekst"
@@ -1370,7 +1370,7 @@ msgstr "Przekonwertuj całą muzykę"
msgid "Convert any music that the device can't play" msgid "Convert any music that the device can't play"
msgstr "Przekonwertuj muzykę, której nie może odtworzyć urządzenie" msgstr "Przekonwertuj muzykę, której nie może odtworzyć urządzenie"
#: core/mainwindow.cpp:702 #: core/mainwindow.cpp:703
msgid "Copy URL(s)..." msgid "Copy URL(s)..."
msgstr "Skopiuj adres(y) URL…" msgstr "Skopiuj adres(y) URL…"
@@ -1378,7 +1378,7 @@ msgstr "Skopiuj adres(y) URL…"
msgid "Copy album cover artwork" msgid "Copy album cover artwork"
msgstr "Skopiuj okładki albumów" msgstr "Skopiuj okładki albumów"
#: core/mainwindow.cpp:706 widgets/fileviewlist.cpp:48 #: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:48
#: device/deviceview.cpp:239 #: device/deviceview.cpp:239
msgid "Copy to collection..." msgid "Copy to collection..."
msgstr "Skopiuj do kolekcji…" msgstr "Skopiuj do kolekcji…"
@@ -1387,7 +1387,7 @@ msgstr "Skopiuj do kolekcji…"
msgid "Copy to device" msgid "Copy to device"
msgstr "" msgstr ""
#: core/mainwindow.cpp:709 context/contextalbumsview.cpp:262 #: core/mainwindow.cpp:710 context/contextalbumsview.cpp:262
#: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104 #: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104
#: widgets/fileviewlist.cpp:50 #: widgets/fileviewlist.cpp:50
msgid "Copy to device..." msgid "Copy to device..."
@@ -1630,7 +1630,7 @@ msgstr "Usuń pliki"
msgid "Delete from device..." msgid "Delete from device..."
msgstr "Usuń z urządzenia…" msgstr "Usuń z urządzenia…"
#: core/mainwindow.cpp:711 collection/collectionview.cpp:354 #: core/mainwindow.cpp:712 collection/collectionview.cpp:354
#: widgets/fileviewlist.cpp:51 #: widgets/fileviewlist.cpp:51
msgid "Delete from disk..." msgid "Delete from disk..."
msgstr "Usuń z dysku…" msgstr "Usuń z dysku…"
@@ -1652,11 +1652,11 @@ msgstr "Usuń oryginalne pliki"
msgid "Deleting files" msgid "Deleting files"
msgstr "Usuwanie plików" msgstr "Usuwanie plików"
#: core/mainwindow.cpp:1826 #: core/mainwindow.cpp:1839
msgid "Dequeue selected tracks" msgid "Dequeue selected tracks"
msgstr "Usuń zaznaczone ścieżki z kolejki" msgstr "Usuń zaznaczone ścieżki z kolejki"
#: core/mainwindow.cpp:1825 #: core/mainwindow.cpp:1838
msgid "Dequeue track" msgid "Dequeue track"
msgstr "Usuń ścieżkę z kolejki" msgstr "Usuń ścieżkę z kolejki"
@@ -1682,7 +1682,7 @@ msgstr "Właściwości urządzenia"
msgid "Device properties..." msgid "Device properties..."
msgstr "Właściwości urządzenia…" msgstr "Właściwości urządzenia…"
#: core/mainwindow.cpp:343 #: core/mainwindow.cpp:344
msgid "Devices" msgid "Devices"
msgstr "Urządzenia" msgstr "Urządzenia"
@@ -1704,7 +1704,7 @@ msgid "Disabled"
msgstr "Wyłączone" msgstr "Wyłączone"
#: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266 #: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266
#: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:188 #: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:188
#: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232 #: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232
#: ../build/src/ui_edittagdialog.h:708 #: ../build/src/ui_edittagdialog.h:708
msgid "Disc" msgid "Disc"
@@ -1739,6 +1739,10 @@ msgstr "Nie przycinaj obrazu"
msgid "Do not overwrite" msgid "Do not overwrite"
msgstr "Nie nadpisuj" msgstr "Nie nadpisuj"
#: ../build/src/ui_snapdialog.h:120
msgid "Do not show this message again."
msgstr ""
#: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110 #: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110
msgid "Don't repeat" msgid "Don't repeat"
msgstr "Nie powtarzaj" msgstr "Nie powtarzaj"
@@ -1797,7 +1801,7 @@ msgstr ""
msgid "Edit smart playlist..." msgid "Edit smart playlist..."
msgstr "" msgstr ""
#: core/mainwindow.cpp:1867 #: core/mainwindow.cpp:1880
#, qt-format #, qt-format
msgid "Edit tag \"%1\"..." msgid "Edit tag \"%1\"..."
msgstr "Edytuj znacznik „%1”…" msgstr "Edytuj znacznik „%1”…"
@@ -1949,7 +1953,7 @@ msgstr "Równoważne z --log-levels *:1"
msgid "Equivalent to --log-levels *:3" msgid "Equivalent to --log-levels *:3"
msgstr "Równoważne z --log-levels *:3" msgstr "Równoważne z --log-levels *:3"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "Error" msgid "Error"
msgstr "Błąd" msgstr "Błąd"
@@ -2115,7 +2119,7 @@ msgstr "Błąd podczas pobierania okładki"
msgid "File %1 is not recognized as a valid audio file." msgid "File %1 is not recognized as a valid audio file."
msgstr "Plik „%1” nie jest rozpoznany jako plik dźwiękowy." msgstr "Plik „%1” nie jest rozpoznany jako plik dźwiękowy."
#: organize/organizedialog.cpp:116 #: organize/organizedialog.cpp:119
msgid "File extension" msgid "File extension"
msgstr "Rozszerzenie pliku" msgstr "Rozszerzenie pliku"
@@ -2153,7 +2157,7 @@ msgstr "Nazwa pliku"
msgid "Filename:" msgid "Filename:"
msgstr "Nazwa pliku:" msgstr "Nazwa pliku:"
#: core/mainwindow.cpp:341 #: core/mainwindow.cpp:342
msgid "Files" msgid "Files"
msgstr "Pliki" msgstr "Pliki"
@@ -2207,6 +2211,15 @@ msgstr "Font nagłówka"
msgid "Font size" msgid "Font size"
msgstr "Rozmiar fontu" msgstr "Rozmiar fontu"
#: dialogs/snapdialog.cpp:56
#, qt-format
msgid "For Ubuntu there is an official PPA repository available at %1."
msgstr ""
#: dialogs/snapdialog.cpp:64
msgid "For a better experience please consider the other options above."
msgstr ""
#: ../build/src/ui_transcoderoptionsmp3.h:203 #: ../build/src/ui_transcoderoptionsmp3.h:203
msgid "Force mono encoding" msgid "Force mono encoding"
msgstr "Wymuś kodowanie mono" msgstr "Wymuś kodowanie mono"
@@ -2290,7 +2303,7 @@ msgid "Genius Authentication"
msgstr "Uwierzytelnianie Geniusa" msgstr "Uwierzytelnianie Geniusa"
#: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270 #: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270
#: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:190 #: organize/organizedialog.cpp:113 ../build/src/ui_groupbydialog.h:190
#: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234 #: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234
#: ../build/src/ui_edittagdialog.h:704 #: ../build/src/ui_edittagdialog.h:704
msgid "Genre" msgid "Genre"
@@ -2391,7 +2404,7 @@ msgid "Group by Genre/Artist/Album"
msgstr "Gatunek/Artysta/Album" msgstr "Gatunek/Artysta/Album"
#: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274 #: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274
#: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:198 #: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:198
#: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242 #: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242
#: ../build/src/ui_edittagdialog.h:706 #: ../build/src/ui_edittagdialog.h:706
msgid "Grouping" msgid "Grouping"
@@ -2576,6 +2589,10 @@ msgstr ""
"To jest fork Clementine, wydany w 2018 roku z myślą o kolekcjonerach muzyki " "To jest fork Clementine, wydany w 2018 roku z myślą o kolekcjonerach muzyki "
"i audiofilach." "i audiofilach."
#: dialogs/snapdialog.cpp:44
msgid "It is detected that Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_behavioursettingspage.h:302 #: ../build/src/ui_behavioursettingspage.h:302
msgid "Jump to previous song right away" msgid "Jump to previous song right away"
msgstr "Natychmiast przeskocz do poprzedniego utworu" msgstr "Natychmiast przeskocz do poprzedniego utworu"
@@ -2640,7 +2657,7 @@ msgid "Left"
msgstr "Lewy" msgstr "Lewy"
#: context/contextview.cpp:214 playlist/playlist.cpp:1267 #: context/contextview.cpp:214 playlist/playlist.cpp:1267
#: organize/organizedialog.cpp:112 ../build/src/ui_edittagdialog.h:689 #: organize/organizedialog.cpp:115 ../build/src/ui_edittagdialog.h:689
msgid "Length" msgid "Length"
msgstr "Długość" msgstr "Długość"
@@ -2858,7 +2875,7 @@ msgstr "Brakuje nazwy użytkownika lub hasła Subsonic."
#: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796 #: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796
#: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918 #: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918
#: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:89 #: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:90
msgid "Missing Tidal API token, username or password." msgid "Missing Tidal API token, username or password."
msgstr "Brakuje tokenu API, nazwy użytkownika lub hasła Tidal." msgstr "Brakuje tokenu API, nazwy użytkownika lub hasła Tidal."
@@ -2944,7 +2961,7 @@ msgstr "Punkty montowania"
msgid "Move down" msgid "Move down"
msgstr "Przesuń w dół" msgstr "Przesuń w dół"
#: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:49 #: core/mainwindow.cpp:708 widgets/fileviewlist.cpp:49
msgid "Move to collection..." msgid "Move to collection..."
msgstr "Przenieś do kolekcji…" msgstr "Przenieś do kolekcji…"
@@ -2953,7 +2970,7 @@ msgstr "Przenieś do kolekcji…"
msgid "Move up" msgid "Move up"
msgstr "Przesuń w górę" msgstr "Przesuń w górę"
#: core/mainwindow.cpp:2101 transcoder/transcodedialog.cpp:328 #: core/mainwindow.cpp:2114 transcoder/transcodedialog.cpp:328
msgid "Music" msgid "Music"
msgstr "Muzyka" msgstr "Muzyka"
@@ -2998,7 +3015,7 @@ msgstr "Nie odtwarzaj automatycznie"
msgid "New folder" msgid "New folder"
msgstr "Nowy katalog" msgstr "Nowy katalog"
#: core/mainwindow.cpp:1925 #: core/mainwindow.cpp:1938
msgid "New playlist" msgid "New playlist"
msgstr "Nowa lista odtwarzania" msgstr "Nowa lista odtwarzania"
@@ -3042,7 +3059,7 @@ msgstr "Brak okładek do wyeksportowania."
msgid "No long blocks" msgid "No long blocks"
msgstr "Bez długich bloków" msgstr "Bez długich bloków"
#: tidal/tidalrequest.cpp:1256 qobuz/qobuzrequest.cpp:1318 #: tidal/tidalrequest.cpp:1253 qobuz/qobuzrequest.cpp:1315
msgid "No match." msgid "No match."
msgstr "Brak dopasowania." msgstr "Brak dopasowania."
@@ -3070,7 +3087,7 @@ msgstr "Żaden utwór nie jest odtwarzany"
msgid "None" msgid "None"
msgstr "Brak" msgstr "Brak"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "None of the selected songs were suitable for copying to a device" msgid "None of the selected songs were suitable for copying to a device"
msgstr "" msgstr ""
@@ -3097,7 +3114,7 @@ msgstr ""
#: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791 #: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791
#: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913 #: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913
#: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:85 #: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:86
msgid "Not authenticated with Tidal." msgid "Not authenticated with Tidal."
msgstr "Nie uwierzytelniono w Tidal." msgstr "Nie uwierzytelniono w Tidal."
@@ -3137,6 +3154,13 @@ msgstr "Podgląd menu ekranowego (OSD)"
msgid "Off" msgid "Off"
msgstr "Wył" msgstr "Wył"
#: dialogs/snapdialog.cpp:60
#, qt-format
msgid ""
"Official releases are available for Debian and Ubuntu which also work on "
"most of their derivatives. See %1 for more information."
msgstr ""
#: osd/osdbase.cpp:245 #: osd/osdbase.cpp:245
msgid "On" msgid "On"
msgstr "Wł" msgstr "Wł"
@@ -3202,7 +3226,7 @@ msgstr "Opus"
msgid "Organize Files" msgid "Organize Files"
msgstr "Organizuj pliki" msgstr "Organizuj pliki"
#: core/mainwindow.cpp:705 context/contextalbumsview.cpp:260 #: core/mainwindow.cpp:706 context/contextalbumsview.cpp:260
#: collection/collectionview.cpp:350 #: collection/collectionview.cpp:350
msgid "Organize files..." msgid "Organize files..."
msgstr "Organizuj pliki…" msgstr "Organizuj pliki…"
@@ -3216,7 +3240,7 @@ msgid "Original tags"
msgstr "Oryginalne znaczniki" msgstr "Oryginalne znaczniki"
#: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269 #: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269
#: organize/organizedialog.cpp:109 ../build/src/ui_groupbydialog.h:194 #: organize/organizedialog.cpp:112 ../build/src/ui_groupbydialog.h:194
#: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238 #: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238
msgid "Original year" msgid "Original year"
msgstr "Oryginalny rok" msgstr "Oryginalny rok"
@@ -3275,7 +3299,7 @@ msgstr "Impreza"
msgid "Password" msgid "Password"
msgstr "Hasło" msgstr "Hasło"
#: core/mainwindow.cpp:1247 core/mainwindow.cpp:1721 #: core/mainwindow.cpp:1260 core/mainwindow.cpp:1734
#: core/qtsystemtrayicon.cpp:190 #: core/qtsystemtrayicon.cpp:190
msgid "Pause" msgid "Pause"
msgstr "Wstrzymaj" msgstr "Wstrzymaj"
@@ -3289,7 +3313,7 @@ msgid "Paused"
msgstr "Wstrzymane" msgstr "Wstrzymane"
#: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273 #: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273
#: organize/organizedialog.cpp:104 ../build/src/ui_groupbydialog.h:197 #: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:197
#: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241 #: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241
#: ../build/src/ui_edittagdialog.h:715 #: ../build/src/ui_edittagdialog.h:715
msgid "Performer" msgid "Performer"
@@ -3303,8 +3327,8 @@ msgstr "Piksel"
msgid "Plain sidebar" msgid "Plain sidebar"
msgstr "Pasek boczny bez efektów" msgstr "Pasek boczny bez efektów"
#: core/mainwindow.cpp:674 core/mainwindow.cpp:1200 core/mainwindow.cpp:1229 #: core/mainwindow.cpp:675 core/mainwindow.cpp:1213 core/mainwindow.cpp:1242
#: core/mainwindow.cpp:1725 core/qtsystemtrayicon.cpp:177 #: core/mainwindow.cpp:1738 core/qtsystemtrayicon.cpp:177
#: core/qtsystemtrayicon.cpp:202 #: core/qtsystemtrayicon.cpp:202
msgid "Play" msgid "Play"
msgstr "Odtwarzaj" msgstr "Odtwarzaj"
@@ -3369,7 +3393,7 @@ msgstr "Lista odtwarzania"
msgid "Playlist finished" msgid "Playlist finished"
msgstr "Zakończono odtwarzanie listy" msgstr "Zakończono odtwarzanie listy"
#: core/mainwindow.cpp:2191 #: core/mainwindow.cpp:2204
#, qt-format #, qt-format
msgid "" msgid ""
"Playlist has %1 songs, too large to undo, are you sure you want to clear the " "Playlist has %1 songs, too large to undo, are you sure you want to clear the "
@@ -3391,7 +3415,7 @@ msgstr "Opcje listy odtwarzania"
msgid "Playlist type" msgid "Playlist type"
msgstr "" msgstr ""
#: core/mainwindow.cpp:339 #: core/mainwindow.cpp:340
msgid "Playlists" msgid "Playlists"
msgstr "Listy odtw." msgstr "Listy odtw."
@@ -3517,7 +3541,7 @@ msgstr "Postęp"
msgid "Put songs in a random order" msgid "Put songs in a random order"
msgstr "" msgstr ""
#: core/mainwindow.cpp:352 ../build/src/ui_scrobblersettingspage.h:409 #: core/mainwindow.cpp:353 ../build/src/ui_scrobblersettingspage.h:409
#: ../build/src/ui_qobuzsettingspage.h:270 #: ../build/src/ui_qobuzsettingspage.h:270
msgid "Qobuz" msgid "Qobuz"
msgstr "" msgstr ""
@@ -3540,25 +3564,25 @@ msgstr "Jakość"
msgid "Querying device..." msgid "Querying device..."
msgstr "Odpytywanie urządzenia…" msgstr "Odpytywanie urządzenia…"
#: core/mainwindow.cpp:338 #: core/mainwindow.cpp:339
msgid "Queue" msgid "Queue"
msgstr "Kolejka" msgstr "Kolejka"
#: core/mainwindow.cpp:1828 #: core/mainwindow.cpp:1841
msgid "Queue selected tracks" msgid "Queue selected tracks"
msgstr "Dodaj zaznaczone ścieżki do kolejki" msgstr "Dodaj zaznaczone ścieżki do kolejki"
#: core/mainwindow.cpp:680 core/mainwindow.cpp:1832 #: core/mainwindow.cpp:681 core/mainwindow.cpp:1845
msgid "Queue selected tracks to play next" msgid "Queue selected tracks to play next"
msgstr "" msgstr ""
"Dodaj zaznaczone ścieżki do kolejki, aby odtworzyć w następnej kolejności" "Dodaj zaznaczone ścieżki do kolejki, aby odtworzyć w następnej kolejności"
#: core/mainwindow.cpp:1834 collection/collectionview.cpp:347 #: core/mainwindow.cpp:1847 collection/collectionview.cpp:347
#: internet/internetcollectionview.cpp:317 #: internet/internetcollectionview.cpp:317
msgid "Queue to play next" msgid "Queue to play next"
msgstr "Dodaj do kolejki, aby następnie odtworzyć" msgstr "Dodaj do kolejki, aby następnie odtworzyć"
#: core/mainwindow.cpp:1827 context/contextalbumsview.cpp:257 #: core/mainwindow.cpp:1840 context/contextalbumsview.cpp:257
#: collection/collectionview.cpp:346 #: collection/collectionview.cpp:346
#: smartplaylists/smartplaylistsviewcontainer.cpp:75 #: smartplaylists/smartplaylistsviewcontainer.cpp:75
#: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316 #: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316
@@ -3756,7 +3780,7 @@ msgstr ""
msgid "Rescan song(s)" msgid "Rescan song(s)"
msgstr "Przeskanuj utwór/utwory ponownie" msgstr "Przeskanuj utwór/utwory ponownie"
#: core/mainwindow.cpp:696 #: core/mainwindow.cpp:697
msgid "Rescan song(s)..." msgid "Rescan song(s)..."
msgstr "Przeskanuj ponownie utwory…" msgstr "Przeskanuj ponownie utwory…"
@@ -3764,7 +3788,7 @@ msgstr "Przeskanuj ponownie utwory…"
msgid "Reset" msgid "Reset"
msgstr "Wyzeruj" msgstr "Wyzeruj"
#: dialogs/edittagdialog.cpp:869 ../build/src/ui_edittagdialog.h:688 #: dialogs/edittagdialog.cpp:872 ../build/src/ui_edittagdialog.h:688
msgid "Reset play counts" msgid "Reset play counts"
msgstr "Wyzeruj licznik odtworzeń" msgstr "Wyzeruj licznik odtworzeń"
@@ -3871,7 +3895,7 @@ msgid "Safely remove the device after copying"
msgstr "Bezpiecznie usuń urządzenie po skopiowaniu" msgstr "Bezpiecznie usuń urządzenie po skopiowaniu"
#: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280 #: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280
#: organize/organizedialog.cpp:114 ../build/src/ui_groupbydialog.h:200 #: organize/organizedialog.cpp:117 ../build/src/ui_groupbydialog.h:200
#: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244 #: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244
#: ../build/src/ui_edittagdialog.h:694 #: ../build/src/ui_edittagdialog.h:694
msgid "Sample rate" msgid "Sample rate"
@@ -3931,7 +3955,7 @@ msgstr "Menedżer zapisanych grupowań"
msgid "Saving album covers" msgid "Saving album covers"
msgstr "Zapisywanie okładek albumów" msgstr "Zapisywanie okładek albumów"
#: dialogs/edittagdialog.cpp:784 dialogs/trackselectiondialog.cpp:291 #: dialogs/edittagdialog.cpp:787 dialogs/trackselectiondialog.cpp:291
msgid "Saving tracks" msgid "Saving tracks"
msgstr "Zapisywanie ścieżek" msgstr "Zapisywanie ścieżek"
@@ -4064,7 +4088,7 @@ msgstr "Adres URL serwera jest niepoprawny."
msgid "Server-side scrobbling" msgid "Server-side scrobbling"
msgstr "" msgstr ""
#: core/mainwindow.cpp:1866 #: core/mainwindow.cpp:1879
#, qt-format #, qt-format
msgid "Set %1 to \"%2\"..." msgid "Set %1 to \"%2\"..."
msgstr "Ustaw %1 na „%2”…" msgstr "Ustaw %1 na „%2”…"
@@ -4151,7 +4175,7 @@ msgstr "Pokazuj okładki albumów w kolekcji"
msgid "Show albums by artist" msgid "Show albums by artist"
msgstr "Pokazuj albumy artysty" msgstr "Pokazuj albumy artysty"
#: core/mainwindow.cpp:627 #: core/mainwindow.cpp:628
msgid "Show all songs" msgid "Show all songs"
msgstr "Pokazuj wszystkie utwory" msgstr "Pokazuj wszystkie utwory"
@@ -4175,7 +4199,7 @@ msgstr "Pokazuj silnik i urządzenie"
msgid "Show fullsize..." msgid "Show fullsize..."
msgstr "Pokaż w pełnym rozmiarze…" msgstr "Pokaż w pełnym rozmiarze…"
#: core/mainwindow.cpp:703 #: core/mainwindow.cpp:704
msgid "Show in collection..." msgid "Show in collection..."
msgstr "Pokaż w kolekcji…" msgstr "Pokaż w kolekcji…"
@@ -4183,7 +4207,7 @@ msgstr "Pokaż w kolekcji…"
msgid "Show in file browser" msgid "Show in file browser"
msgstr "Pokaż w menedżerze plików" msgstr "Pokaż w menedżerze plików"
#: core/mainwindow.cpp:704 context/contextalbumsview.cpp:268 #: core/mainwindow.cpp:705 context/contextalbumsview.cpp:268
#: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55 #: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55
msgid "Show in file browser..." msgid "Show in file browser..."
msgstr "Pokaż w menedżerze plików…" msgstr "Pokaż w menedżerze plików…"
@@ -4200,11 +4224,11 @@ msgstr "Pokazuj przycisk ulubionych"
msgid "Show moodbar" msgid "Show moodbar"
msgstr "Pokazuj pasek nastroju" msgstr "Pokazuj pasek nastroju"
#: core/mainwindow.cpp:628 #: core/mainwindow.cpp:629
msgid "Show only duplicates" msgid "Show only duplicates"
msgstr "Pokazuj tylko duplikaty" msgstr "Pokazuj tylko duplikaty"
#: core/mainwindow.cpp:629 #: core/mainwindow.cpp:630
msgid "Show only untagged" msgid "Show only untagged"
msgstr "Pokazuj tylko nieoznaczone" msgstr "Pokazuj tylko nieoznaczone"
@@ -4293,11 +4317,11 @@ msgstr "Liczba pominięć utworu"
msgid "Skip forwards in playlist" msgid "Skip forwards in playlist"
msgstr "Przeskocz w przód na liście odtwarzania" msgstr "Przeskocz w przód na liście odtwarzania"
#: core/mainwindow.cpp:1839 #: core/mainwindow.cpp:1852
msgid "Skip selected tracks" msgid "Skip selected tracks"
msgstr "Pomiń zaznaczone ścieżki" msgstr "Pomiń zaznaczone ścieżki"
#: core/mainwindow.cpp:1838 #: core/mainwindow.cpp:1851
msgid "Skip track" msgid "Skip track"
msgstr "Pomiń ścieżkę" msgstr "Pomiń ścieżkę"
@@ -4313,7 +4337,7 @@ msgstr "Mały pasek boczny"
msgid "Smart playlist" msgid "Smart playlist"
msgstr "" msgstr ""
#: core/mainwindow.cpp:340 #: core/mainwindow.cpp:341
msgid "Smart playlists" msgid "Smart playlists"
msgstr "" msgstr ""
@@ -4397,7 +4421,7 @@ msgstr "Zatrzymaj po każdej ścieżce"
msgid "Stop after every track" msgid "Stop after every track"
msgstr "Zatrzymaj po każdej ścieżce" msgstr "Zatrzymaj po każdej ścieżce"
#: core/mainwindow.cpp:676 ../build/src/ui_mainwindow.h:627 #: core/mainwindow.cpp:677 ../build/src/ui_mainwindow.h:627
msgid "Stop after this track" msgid "Stop after this track"
msgstr "Zatrzymaj po tej ścieżce" msgstr "Zatrzymaj po tej ścieżce"
@@ -4459,6 +4483,21 @@ msgstr ""
"Strawberry to wolne oprogramowanie wydane na zasadach GPL. Kod źródłowy " "Strawberry to wolne oprogramowanie wydane na zasadach GPL. Kod źródłowy "
"dostępny jest na %1" "dostępny jest na %1"
#: dialogs/snapdialog.cpp:40
msgid "Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_snapdialog.h:117
msgid "Strawberry is running as a snap"
msgstr ""
#: dialogs/snapdialog.cpp:48
msgid ""
"Strawberry is slower, and has restrictions when running as a Snap. Accessing "
"the root filesystem (/) will not work. There also might be other "
"restrictions such as accessing certain devices or network shares."
msgstr ""
#: ../build/src/ui_trackselectiondialog.h:205 #: ../build/src/ui_trackselectiondialog.h:205
msgid "Strawberry was unable to find results for this file" msgid "Strawberry was unable to find results for this file"
msgstr "Strawberry nie znalazł wyników dla tego pliku" msgstr "Strawberry nie znalazł wyników dla tego pliku"
@@ -4483,7 +4522,7 @@ msgstr "Rozciągnij obraz, aby wypełnić listę odtwarzania"
msgid "Submit scrobbles every" msgid "Submit scrobbles every"
msgstr "Przesyłaj scrobble co" msgstr "Przesyłaj scrobble co"
#: core/mainwindow.cpp:346 ../build/src/ui_scrobblersettingspage.h:407 #: core/mainwindow.cpp:347 ../build/src/ui_scrobblersettingspage.h:407
#: ../build/src/ui_subsonicsettingspage.h:188 #: ../build/src/ui_subsonicsettingspage.h:188
msgid "Subsonic" msgid "Subsonic"
msgstr "Subsonic" msgstr "Subsonic"
@@ -4610,7 +4649,7 @@ msgstr "Żądana strona nie istnieje!"
msgid "The site you requested is not an image!" msgid "The site you requested is not an image!"
msgstr "Żądana strona nie jest obrazem!" msgstr "Żądana strona nie jest obrazem!"
#: core/mainwindow.cpp:2698 #: core/mainwindow.cpp:2711
msgid "" msgid ""
"The version of Strawberry you've just updated to requires a full collection " "The version of Strawberry you've just updated to requires a full collection "
"rescan because of the new features listed below:" "rescan because of the new features listed below:"
@@ -4712,7 +4751,7 @@ msgstr "Ta opcja może zostać zmieniona w ustawieniach „Zachowanie”"
msgid "This type of device is not supported: %1" msgid "This type of device is not supported: %1"
msgstr "Ten typ urządzenia nie jest obsługiwany: %1" msgstr "Ten typ urządzenia nie jest obsługiwany: %1"
#: core/mainwindow.cpp:349 ../build/src/ui_scrobblersettingspage.h:408 #: core/mainwindow.cpp:350 ../build/src/ui_scrobblersettingspage.h:408
#: ../build/src/ui_tidalsettingspage.h:312 #: ../build/src/ui_tidalsettingspage.h:312
msgid "Tidal" msgid "Tidal"
msgstr "Tidal" msgstr "Tidal"
@@ -4729,7 +4768,7 @@ msgstr ""
msgid "Time step" msgid "Time step"
msgstr "Odstęp czasu" msgstr "Odstęp czasu"
#: playlist/playlist.cpp:1262 organize/organizedialog.cpp:98 #: playlist/playlist.cpp:1262 organize/organizedialog.cpp:101
#: ../build/src/ui_contextsettingspage.h:414 #: ../build/src/ui_contextsettingspage.h:414
#: ../build/src/ui_edittagdialog.h:705 #: ../build/src/ui_edittagdialog.h:705
#: ../build/src/ui_trackselectiondialog.h:210 #: ../build/src/ui_trackselectiondialog.h:210
@@ -4740,7 +4779,7 @@ msgstr "Tytuł"
msgid "Today" msgid "Today"
msgstr "Dzisiaj" msgstr "Dzisiaj"
#: core/mainwindow.cpp:677 core/mainwindow.cpp:1829 #: core/mainwindow.cpp:678 core/mainwindow.cpp:1842
msgid "Toggle queue status" msgid "Toggle queue status"
msgstr "Przełącz stan kolejki" msgstr "Przełącz stan kolejki"
@@ -4748,7 +4787,7 @@ msgstr "Przełącz stan kolejki"
msgid "Toggle scrobbling" msgid "Toggle scrobbling"
msgstr "Włącz scrobling" msgstr "Włącz scrobling"
#: core/mainwindow.cpp:683 core/mainwindow.cpp:1840 #: core/mainwindow.cpp:684 core/mainwindow.cpp:1853
msgid "Toggle skip status" msgid "Toggle skip status"
msgstr "Przełącz stan pominięcia" msgstr "Przełącz stan pominięcia"
@@ -4776,7 +4815,7 @@ msgstr "Całkowita liczba przesłanych bajtów"
msgid "Total network requests made" msgid "Total network requests made"
msgstr "Całkowita liczba wykonanych zapytań sieciowych" msgstr "Całkowita liczba wykonanych zapytań sieciowych"
#: playlist/playlist.cpp:1265 organize/organizedialog.cpp:106 #: playlist/playlist.cpp:1265 organize/organizedialog.cpp:109
#: ../build/src/ui_edittagdialog.h:712 #: ../build/src/ui_edittagdialog.h:712
#: ../build/src/ui_trackselectiondialog.h:212 #: ../build/src/ui_trackselectiondialog.h:212
msgid "Track" msgid "Track"
@@ -4834,8 +4873,8 @@ msgstr "Ultraszerokie pasmo (UWB)"
msgid "Unknown" msgid "Unknown"
msgstr "nieznany" msgstr "nieznany"
#: subsonic/subsonicrequest.cpp:858 tidal/tidalrequest.cpp:1262 #: subsonic/subsonicrequest.cpp:864 tidal/tidalrequest.cpp:1259
#: qobuz/qobuzrequest.cpp:1324 #: qobuz/qobuzrequest.cpp:1321
msgid "Unknown error" msgid "Unknown error"
msgstr "Nieznany błąd" msgstr "Nieznany błąd"
@@ -4843,11 +4882,11 @@ msgstr "Nieznany błąd"
msgid "Unset cover" msgid "Unset cover"
msgstr "Usuń okładkę" msgstr "Usuń okładkę"
#: core/mainwindow.cpp:1837 #: core/mainwindow.cpp:1850
msgid "Unskip selected tracks" msgid "Unskip selected tracks"
msgstr "Nie pomijaj zaznaczonych ścieżek" msgstr "Nie pomijaj zaznaczonych ścieżek"
#: core/mainwindow.cpp:1836 #: core/mainwindow.cpp:1849
msgid "Unskip track" msgid "Unskip track"
msgstr "Nie pomijaj ścieżki" msgstr "Nie pomijaj ścieżki"
@@ -5087,7 +5126,7 @@ msgid ""
"well?" "well?"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2702 #: core/mainwindow.cpp:2715
msgid "Would you like to run a full rescan right now?" msgid "Would you like to run a full rescan right now?"
msgstr "Chcesz wykonać pełne skanowanie od nowa teraz?" msgstr "Chcesz wykonać pełne skanowanie od nowa teraz?"
@@ -5096,7 +5135,7 @@ msgid "Write metadata when saving playlists"
msgstr "Zapisuj medatane podczas zapisywania list odtwarzania" msgstr "Zapisuj medatane podczas zapisywania list odtwarzania"
#: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268 #: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268
#: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:191 #: organize/organizedialog.cpp:111 ../build/src/ui_groupbydialog.h:191
#: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235 #: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235
#: ../build/src/ui_edittagdialog.h:714 #: ../build/src/ui_edittagdialog.h:714
#: ../build/src/ui_trackselectiondialog.h:211 #: ../build/src/ui_trackselectiondialog.h:211

View File

@@ -576,7 +576,7 @@ msgstr "Добавить все треки из папки и её подпап
msgid "Add directory..." msgid "Add directory..."
msgstr "Добавить каталог…" msgstr "Добавить каталог…"
#: core/mainwindow.cpp:2101 #: core/mainwindow.cpp:2114
msgid "Add file" msgid "Add file"
msgstr "Добавить файл" msgstr "Добавить файл"
@@ -592,7 +592,7 @@ msgstr "Добавить файл(ы) в конвертер"
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Добавить файлы для конвертирования" msgstr "Добавить файлы для конвертирования"
#: core/mainwindow.cpp:2126 transcoder/transcodedialog.cpp:419 #: core/mainwindow.cpp:2139 transcoder/transcodedialog.cpp:419
msgid "Add folder" msgid "Add folder"
msgstr "Добавить папку" msgstr "Добавить папку"
@@ -695,7 +695,7 @@ msgstr ""
msgid "Add to albums" msgid "Add to albums"
msgstr "Добавить в альбомы" msgstr "Добавить в альбомы"
#: core/mainwindow.cpp:1909 #: core/mainwindow.cpp:1922
msgid "Add to another playlist" msgid "Add to another playlist"
msgstr "Добавить в другой плейлист" msgstr "Добавить в другой плейлист"
@@ -754,7 +754,7 @@ msgid "Albu&m cover"
msgstr "О&бложка альбома" msgstr "О&бложка альбома"
#: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264 #: collection/savedgroupingmanager.cpp:88 playlist/playlist.cpp:1264
#: organize/organizedialog.cpp:99 ../build/src/ui_groupbydialog.h:186 #: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:186
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230 #: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
#: ../build/src/ui_albumcoversearcher.h:110 #: ../build/src/ui_albumcoversearcher.h:110
#: ../build/src/ui_albumcoversearcher.h:112 #: ../build/src/ui_albumcoversearcher.h:112
@@ -774,7 +774,7 @@ msgid "Album - Disc"
msgstr "raАльбом - Диск" msgstr "raАльбом - Диск"
#: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271 #: collection/savedgroupingmanager.cpp:82 playlist/playlist.cpp:1271
#: organize/organizedialog.cpp:102 ../build/src/ui_groupbydialog.h:185 #: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:185
#: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229 #: ../build/src/ui_groupbydialog.h:207 ../build/src/ui_groupbydialog.h:229
#: ../build/src/ui_edittagdialog.h:709 #: ../build/src/ui_edittagdialog.h:709
msgid "Album artist" msgid "Album artist"
@@ -814,7 +814,7 @@ msgstr "Альбомы с обложками"
msgid "Albums without covers" msgid "Albums without covers"
msgstr "Альбомы без обложек" msgstr "Альбомы без обложек"
#: core/mainwindow.cpp:208 #: core/mainwindow.cpp:209
msgid "All Files (*)" msgid "All Files (*)"
msgstr "Все файлы (*)" msgstr "Все файлы (*)"
@@ -860,7 +860,7 @@ msgstr "Всегда начинать воспроизведение"
msgid "An error occurred loading the iTunes database" msgid "An error occurred loading the iTunes database"
msgstr "Произошла ошибка при загрузке данных iTunes" msgstr "Произошла ошибка при загрузке данных iTunes"
#: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:953 #: playlist/playlist.cpp:412 dialogs/edittagdialog.cpp:956
#, qt-format #, qt-format
msgid "An error occurred writing metadata to '%1'" msgid "An error occurred writing metadata to '%1'"
msgstr "Ошибка при записи мета-данных в '%1'" msgstr "Ошибка при записи мета-данных в '%1'"
@@ -909,12 +909,12 @@ msgstr ""
msgid "Are you sure you want to delete the \"%1\" preset?" msgid "Are you sure you want to delete the \"%1\" preset?"
msgstr "Вы действительно хотите удалить профиль \"%1\"?" msgstr "Вы действительно хотите удалить профиль \"%1\"?"
#: dialogs/edittagdialog.cpp:869 #: dialogs/edittagdialog.cpp:872
msgid "Are you sure you want to reset this song's statistics?" msgid "Are you sure you want to reset this song's statistics?"
msgstr "Вы действительно хотите сбросить статистику этой песни?" msgstr "Вы действительно хотите сбросить статистику этой песни?"
#: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263 #: collection/savedgroupingmanager.cpp:85 playlist/playlist.cpp:1263
#: organize/organizedialog.cpp:100 ../build/src/ui_groupbydialog.h:184 #: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:184
#: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228 #: ../build/src/ui_groupbydialog.h:206 ../build/src/ui_groupbydialog.h:228
#: ../build/src/ui_albumcoversearcher.h:106 #: ../build/src/ui_albumcoversearcher.h:106
#: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713 #: ../build/src/ui_albumcoversearcher.h:108 ../build/src/ui_edittagdialog.h:713
@@ -922,7 +922,7 @@ msgstr "Вы действительно хотите сбросить стати
msgid "Artist" msgid "Artist"
msgstr "Исполнитель" msgstr "Исполнитель"
#: organize/organizedialog.cpp:101 #: organize/organizedialog.cpp:104
msgid "Artist's initial" msgid "Artist's initial"
msgstr "Инициалы исполнителя" msgstr "Инициалы исполнителя"
@@ -1058,7 +1058,7 @@ msgid "Best"
msgstr "Лучшее" msgstr "Лучшее"
#: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136 #: context/contextview.cpp:216 collection/savedgroupingmanager.cpp:136
#: playlist/playlist.cpp:1281 organize/organizedialog.cpp:115 #: playlist/playlist.cpp:1281 organize/organizedialog.cpp:118
#: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223 #: ../build/src/ui_groupbydialog.h:201 ../build/src/ui_groupbydialog.h:223
#: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695 #: ../build/src/ui_groupbydialog.h:245 ../build/src/ui_edittagdialog.h:695
msgid "Bit depth" msgid "Bit depth"
@@ -1079,7 +1079,7 @@ msgstr "Битрейт"
msgid "Bitrate" msgid "Bitrate"
msgstr "Битрейт" msgstr "Битрейт"
#: organize/organizedialog.cpp:113 #: organize/organizedialog.cpp:116
msgctxt "Refers to bitrate in file organize dialog." msgctxt "Refers to bitrate in file organize dialog."
msgid "Bitrate" msgid "Bitrate"
msgstr "" msgstr ""
@@ -1124,7 +1124,7 @@ msgstr "Буфер"
msgid "Buffer duration" msgid "Buffer duration"
msgstr "Размер буфера" msgstr "Размер буфера"
#: engine/gstengine.cpp:630 #: engine/gstengine.cpp:681
msgid "Buffering" msgid "Buffering"
msgstr "Буферизация" msgstr "Буферизация"
@@ -1144,7 +1144,7 @@ msgstr "CDDA"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: tidal/tidalstreamurlrequest.cpp:107 qobuz/qobuzstreamurlrequest.cpp:103 #: tidal/tidalstreamurlrequest.cpp:108 qobuz/qobuzstreamurlrequest.cpp:103
msgid "Cancelled." msgid "Cancelled."
msgstr "Отменено." msgstr "Отменено."
@@ -1164,7 +1164,7 @@ msgstr "Сменить текущий трек"
msgid "Change the language" msgid "Change the language"
msgstr "Изменить язык" msgstr "Изменить язык"
#: core/mainwindow.cpp:758 #: core/mainwindow.cpp:759
msgid "Check for updates..." msgid "Check for updates..."
msgstr "Проверить обновления…" msgstr "Проверить обновления…"
@@ -1209,7 +1209,7 @@ msgstr "Очистить"
msgid "Clear Disk Cache" msgid "Clear Disk Cache"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2191 ../build/src/ui_mainwindow.h:634 #: core/mainwindow.cpp:2204 ../build/src/ui_mainwindow.h:634
msgid "Clear playlist" msgid "Clear playlist"
msgstr "Очистить плейлист" msgstr "Очистить плейлист"
@@ -1263,7 +1263,7 @@ msgstr "Закрытие этого окна остановит поиск об
msgid "Club" msgid "Club"
msgstr "Клубный" msgstr "Клубный"
#: core/mainwindow.cpp:337 ../build/src/ui_collectionsettingspage.h:406 #: core/mainwindow.cpp:338 ../build/src/ui_collectionsettingspage.h:406
#: ../build/src/ui_scrobblersettingspage.h:402 #: ../build/src/ui_scrobblersettingspage.h:402
msgid "Collection" msgid "Collection"
msgstr "Фонотека" msgstr "Фонотека"
@@ -1276,7 +1276,7 @@ msgstr ""
msgid "Collection advanced grouping" msgid "Collection advanced grouping"
msgstr "Расширенная группировка фонотеки" msgstr "Расширенная группировка фонотеки"
#: core/mainwindow.cpp:2703 #: core/mainwindow.cpp:2716
msgid "Collection rescan notice" msgid "Collection rescan notice"
msgstr "Уведомление о сканировании фонотеки" msgstr "Уведомление о сканировании фонотеки"
@@ -1293,7 +1293,7 @@ msgid "Comma separated list of class:level, level is 0-3"
msgstr "Разделённый запятыми список «класс:уровень», где уровень от 0 до 3" msgstr "Разделённый запятыми список «класс:уровень», где уровень от 0 до 3"
#: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374 #: playlist/playlist.cpp:1291 smartplaylists/smartplaylistsearchterm.cpp:374
#: organize/organizedialog.cpp:111 ../build/src/ui_edittagdialog.h:711 #: organize/organizedialog.cpp:114 ../build/src/ui_edittagdialog.h:711
msgid "Comment" msgid "Comment"
msgstr "Комментарий" msgstr "Комментарий"
@@ -1310,7 +1310,7 @@ msgid "Complete tags automatically..."
msgstr "Заполнить теги автоматически..." msgstr "Заполнить теги автоматически..."
#: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272 #: collection/savedgroupingmanager.cpp:118 playlist/playlist.cpp:1272
#: organize/organizedialog.cpp:103 ../build/src/ui_groupbydialog.h:196 #: organize/organizedialog.cpp:106 ../build/src/ui_groupbydialog.h:196
#: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240 #: ../build/src/ui_groupbydialog.h:218 ../build/src/ui_groupbydialog.h:240
#: ../build/src/ui_edittagdialog.h:710 #: ../build/src/ui_edittagdialog.h:710
msgid "Composer" msgid "Composer"
@@ -1337,7 +1337,7 @@ msgstr "Настроить %1…"
msgid "Configure buttons" msgid "Configure buttons"
msgstr "" msgstr ""
#: core/mainwindow.cpp:638 #: core/mainwindow.cpp:639
msgid "Configure collection..." msgid "Configure collection..."
msgstr "Настроить фонотеку…" msgstr "Настроить фонотеку…"
@@ -1353,7 +1353,7 @@ msgstr "Консоль"
msgid "Constant bitrate" msgid "Constant bitrate"
msgstr "Постоянный битрейт" msgstr "Постоянный битрейт"
#: core/mainwindow.cpp:336 ../build/src/ui_contextsettingspage.h:361 #: core/mainwindow.cpp:337 ../build/src/ui_contextsettingspage.h:361
msgid "Context" msgid "Context"
msgstr "Контекст" msgstr "Контекст"
@@ -1375,7 +1375,7 @@ msgstr "Конвертировать всю музыку"
msgid "Convert any music that the device can't play" msgid "Convert any music that the device can't play"
msgstr "Конвертировать всю музыку, не поддерживаемую устройством." msgstr "Конвертировать всю музыку, не поддерживаемую устройством."
#: core/mainwindow.cpp:702 #: core/mainwindow.cpp:703
msgid "Copy URL(s)..." msgid "Copy URL(s)..."
msgstr "" msgstr ""
@@ -1383,7 +1383,7 @@ msgstr ""
msgid "Copy album cover artwork" msgid "Copy album cover artwork"
msgstr "Копировать обложку альбома" msgstr "Копировать обложку альбома"
#: core/mainwindow.cpp:706 widgets/fileviewlist.cpp:48 #: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:48
#: device/deviceview.cpp:239 #: device/deviceview.cpp:239
msgid "Copy to collection..." msgid "Copy to collection..."
msgstr "Копировать в фонотеку…" msgstr "Копировать в фонотеку…"
@@ -1392,7 +1392,7 @@ msgstr "Копировать в фонотеку…"
msgid "Copy to device" msgid "Copy to device"
msgstr "" msgstr ""
#: core/mainwindow.cpp:709 context/contextalbumsview.cpp:262 #: core/mainwindow.cpp:710 context/contextalbumsview.cpp:262
#: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104 #: collection/collectionview.cpp:352 playlist/playlistlistcontainer.cpp:104
#: widgets/fileviewlist.cpp:50 #: widgets/fileviewlist.cpp:50
msgid "Copy to device..." msgid "Copy to device..."
@@ -1633,7 +1633,7 @@ msgstr "Удалить файлы"
msgid "Delete from device..." msgid "Delete from device..."
msgstr "Удалить с устройства..." msgstr "Удалить с устройства..."
#: core/mainwindow.cpp:711 collection/collectionview.cpp:354 #: core/mainwindow.cpp:712 collection/collectionview.cpp:354
#: widgets/fileviewlist.cpp:51 #: widgets/fileviewlist.cpp:51
msgid "Delete from disk..." msgid "Delete from disk..."
msgstr "Удалить с диска…" msgstr "Удалить с диска…"
@@ -1655,11 +1655,11 @@ msgstr "Удалить оригинальные файлы"
msgid "Deleting files" msgid "Deleting files"
msgstr "Удаление файлов" msgstr "Удаление файлов"
#: core/mainwindow.cpp:1826 #: core/mainwindow.cpp:1839
msgid "Dequeue selected tracks" msgid "Dequeue selected tracks"
msgstr "Убрать выбранные треки из очереди" msgstr "Убрать выбранные треки из очереди"
#: core/mainwindow.cpp:1825 #: core/mainwindow.cpp:1838
msgid "Dequeue track" msgid "Dequeue track"
msgstr "Убрать трек из очереди" msgstr "Убрать трек из очереди"
@@ -1685,7 +1685,7 @@ msgstr "Свойства устройства"
msgid "Device properties..." msgid "Device properties..."
msgstr "Свойства устройства…" msgstr "Свойства устройства…"
#: core/mainwindow.cpp:343 #: core/mainwindow.cpp:344
msgid "Devices" msgid "Devices"
msgstr "Устройства" msgstr "Устройства"
@@ -1707,7 +1707,7 @@ msgid "Disabled"
msgstr "Отключено" msgstr "Отключено"
#: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266 #: collection/savedgroupingmanager.cpp:106 playlist/playlist.cpp:1266
#: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:188 #: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:188
#: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232 #: ../build/src/ui_groupbydialog.h:210 ../build/src/ui_groupbydialog.h:232
#: ../build/src/ui_edittagdialog.h:708 #: ../build/src/ui_edittagdialog.h:708
msgid "Disc" msgid "Disc"
@@ -1742,6 +1742,10 @@ msgstr "Не вырезать изображение"
msgid "Do not overwrite" msgid "Do not overwrite"
msgstr "Не перезаписывать" msgstr "Не перезаписывать"
#: ../build/src/ui_snapdialog.h:120
msgid "Do not show this message again."
msgstr ""
#: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110 #: osd/osdbase.cpp:322 ../build/src/ui_playlistsequence.h:110
msgid "Don't repeat" msgid "Don't repeat"
msgstr "Не повторять" msgstr "Не повторять"
@@ -1800,7 +1804,7 @@ msgstr ""
msgid "Edit smart playlist..." msgid "Edit smart playlist..."
msgstr "" msgstr ""
#: core/mainwindow.cpp:1867 #: core/mainwindow.cpp:1880
#, qt-format #, qt-format
msgid "Edit tag \"%1\"..." msgid "Edit tag \"%1\"..."
msgstr "Изменить тег \"%1\"…" msgstr "Изменить тег \"%1\"…"
@@ -1950,7 +1954,7 @@ msgstr "Аналогично --log-levels *:1"
msgid "Equivalent to --log-levels *:3" msgid "Equivalent to --log-levels *:3"
msgstr "Аналогично --log-levels *:3" msgstr "Аналогично --log-levels *:3"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "Error" msgid "Error"
msgstr "Ошибка" msgstr "Ошибка"
@@ -2116,7 +2120,7 @@ msgstr "Ошибка получения обложки"
msgid "File %1 is not recognized as a valid audio file." msgid "File %1 is not recognized as a valid audio file."
msgstr "Файл %1 не распознается как допустимый аудиофайл." msgstr "Файл %1 не распознается как допустимый аудиофайл."
#: organize/organizedialog.cpp:116 #: organize/organizedialog.cpp:119
msgid "File extension" msgid "File extension"
msgstr "Расширение файла" msgstr "Расширение файла"
@@ -2154,7 +2158,7 @@ msgstr "Имя файла"
msgid "Filename:" msgid "Filename:"
msgstr "Имя файла:" msgstr "Имя файла:"
#: core/mainwindow.cpp:341 #: core/mainwindow.cpp:342
msgid "Files" msgid "Files"
msgstr "Файлы" msgstr "Файлы"
@@ -2208,6 +2212,15 @@ msgstr ""
msgid "Font size" msgid "Font size"
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:56
#, qt-format
msgid "For Ubuntu there is an official PPA repository available at %1."
msgstr ""
#: dialogs/snapdialog.cpp:64
msgid "For a better experience please consider the other options above."
msgstr ""
#: ../build/src/ui_transcoderoptionsmp3.h:203 #: ../build/src/ui_transcoderoptionsmp3.h:203
msgid "Force mono encoding" msgid "Force mono encoding"
msgstr "Принудительное кодирование в моно" msgstr "Принудительное кодирование в моно"
@@ -2290,7 +2303,7 @@ msgid "Genius Authentication"
msgstr "" msgstr ""
#: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270 #: collection/savedgroupingmanager.cpp:115 playlist/playlist.cpp:1270
#: organize/organizedialog.cpp:110 ../build/src/ui_groupbydialog.h:190 #: organize/organizedialog.cpp:113 ../build/src/ui_groupbydialog.h:190
#: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234 #: ../build/src/ui_groupbydialog.h:212 ../build/src/ui_groupbydialog.h:234
#: ../build/src/ui_edittagdialog.h:704 #: ../build/src/ui_edittagdialog.h:704
msgid "Genre" msgid "Genre"
@@ -2390,7 +2403,7 @@ msgid "Group by Genre/Artist/Album"
msgstr "Группировать по жанр/исполнитель/альбом" msgstr "Группировать по жанр/исполнитель/альбом"
#: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274 #: collection/savedgroupingmanager.cpp:124 playlist/playlist.cpp:1274
#: organize/organizedialog.cpp:105 ../build/src/ui_groupbydialog.h:198 #: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:198
#: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242 #: ../build/src/ui_groupbydialog.h:220 ../build/src/ui_groupbydialog.h:242
#: ../build/src/ui_edittagdialog.h:706 #: ../build/src/ui_edittagdialog.h:706
msgid "Grouping" msgid "Grouping"
@@ -2571,6 +2584,10 @@ msgid ""
"audiophiles." "audiophiles."
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:44
msgid "It is detected that Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_behavioursettingspage.h:302 #: ../build/src/ui_behavioursettingspage.h:302
msgid "Jump to previous song right away" msgid "Jump to previous song right away"
msgstr "Немедленный переход к предыдущей песне" msgstr "Немедленный переход к предыдущей песне"
@@ -2635,7 +2652,7 @@ msgid "Left"
msgstr "Левый канал" msgstr "Левый канал"
#: context/contextview.cpp:214 playlist/playlist.cpp:1267 #: context/contextview.cpp:214 playlist/playlist.cpp:1267
#: organize/organizedialog.cpp:112 ../build/src/ui_edittagdialog.h:689 #: organize/organizedialog.cpp:115 ../build/src/ui_edittagdialog.h:689
msgid "Length" msgid "Length"
msgstr "Длина" msgstr "Длина"
@@ -2853,7 +2870,7 @@ msgstr "Отсутствует имя пользователя или парол
#: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796 #: tidal/tidalservice.cpp:737 tidal/tidalservice.cpp:796
#: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918 #: tidal/tidalservice.cpp:853 tidal/tidalservice.cpp:918
#: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:89 #: tidal/tidalservice.cpp:978 tidal/tidalstreamurlrequest.cpp:90
msgid "Missing Tidal API token, username or password." msgid "Missing Tidal API token, username or password."
msgstr "" msgstr ""
@@ -2939,7 +2956,7 @@ msgstr "Точки монтирования"
msgid "Move down" msgid "Move down"
msgstr "Переместить вниз" msgstr "Переместить вниз"
#: core/mainwindow.cpp:707 widgets/fileviewlist.cpp:49 #: core/mainwindow.cpp:708 widgets/fileviewlist.cpp:49
msgid "Move to collection..." msgid "Move to collection..."
msgstr "Переместить в фонотеку…" msgstr "Переместить в фонотеку…"
@@ -2948,7 +2965,7 @@ msgstr "Переместить в фонотеку…"
msgid "Move up" msgid "Move up"
msgstr "Переместить вверх" msgstr "Переместить вверх"
#: core/mainwindow.cpp:2101 transcoder/transcodedialog.cpp:328 #: core/mainwindow.cpp:2114 transcoder/transcodedialog.cpp:328
msgid "Music" msgid "Music"
msgstr "Музыка" msgstr "Музыка"
@@ -2993,7 +3010,7 @@ msgstr "Никогда не начинать воспроизведение"
msgid "New folder" msgid "New folder"
msgstr "Новая папка" msgstr "Новая папка"
#: core/mainwindow.cpp:1925 #: core/mainwindow.cpp:1938
msgid "New playlist" msgid "New playlist"
msgstr "Новый плейлист" msgstr "Новый плейлист"
@@ -3037,7 +3054,7 @@ msgstr "Нет обложек для экспорта."
msgid "No long blocks" msgid "No long blocks"
msgstr "Без длинных блоков" msgstr "Без длинных блоков"
#: tidal/tidalrequest.cpp:1256 qobuz/qobuzrequest.cpp:1318 #: tidal/tidalrequest.cpp:1253 qobuz/qobuzrequest.cpp:1315
msgid "No match." msgid "No match."
msgstr "Не совпадает." msgstr "Не совпадает."
@@ -3064,7 +3081,7 @@ msgstr "Нет воспроизводимой песни"
msgid "None" msgid "None"
msgstr "Ничего" msgstr "Ничего"
#: core/mainwindow.cpp:2441 core/mainwindow.cpp:2586 #: core/mainwindow.cpp:2454 core/mainwindow.cpp:2599
#: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576 #: context/contextalbumsview.cpp:382 collection/collectionview.cpp:576
msgid "None of the selected songs were suitable for copying to a device" msgid "None of the selected songs were suitable for copying to a device"
msgstr "Ни одна из выбранных песен не была скопирована на устройство" msgstr "Ни одна из выбранных песен не была скопирована на устройство"
@@ -3091,7 +3108,7 @@ msgstr ""
#: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791 #: tidal/tidalservice.cpp:732 tidal/tidalservice.cpp:791
#: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913 #: tidal/tidalservice.cpp:848 tidal/tidalservice.cpp:913
#: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:85 #: tidal/tidalservice.cpp:974 tidal/tidalstreamurlrequest.cpp:86
msgid "Not authenticated with Tidal." msgid "Not authenticated with Tidal."
msgstr "Не аутентифицировано с Tidal." msgstr "Не аутентифицировано с Tidal."
@@ -3131,6 +3148,13 @@ msgstr "Предпросмотр OSD"
msgid "Off" msgid "Off"
msgstr "Выкл." msgstr "Выкл."
#: dialogs/snapdialog.cpp:60
#, qt-format
msgid ""
"Official releases are available for Debian and Ubuntu which also work on "
"most of their derivatives. See %1 for more information."
msgstr ""
#: osd/osdbase.cpp:245 #: osd/osdbase.cpp:245
msgid "On" msgid "On"
msgstr "Вкл." msgstr "Вкл."
@@ -3196,7 +3220,7 @@ msgstr "Opus"
msgid "Organize Files" msgid "Organize Files"
msgstr "" msgstr ""
#: core/mainwindow.cpp:705 context/contextalbumsview.cpp:260 #: core/mainwindow.cpp:706 context/contextalbumsview.cpp:260
#: collection/collectionview.cpp:350 #: collection/collectionview.cpp:350
msgid "Organize files..." msgid "Organize files..."
msgstr "" msgstr ""
@@ -3210,7 +3234,7 @@ msgid "Original tags"
msgstr "Исходные теги" msgstr "Исходные теги"
#: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269 #: collection/savedgroupingmanager.cpp:112 playlist/playlist.cpp:1269
#: organize/organizedialog.cpp:109 ../build/src/ui_groupbydialog.h:194 #: organize/organizedialog.cpp:112 ../build/src/ui_groupbydialog.h:194
#: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238 #: ../build/src/ui_groupbydialog.h:216 ../build/src/ui_groupbydialog.h:238
msgid "Original year" msgid "Original year"
msgstr "Год выхода оригинала" msgstr "Год выхода оригинала"
@@ -3269,7 +3293,7 @@ msgstr "Вечеринка"
msgid "Password" msgid "Password"
msgstr "Пароль" msgstr "Пароль"
#: core/mainwindow.cpp:1247 core/mainwindow.cpp:1721 #: core/mainwindow.cpp:1260 core/mainwindow.cpp:1734
#: core/qtsystemtrayicon.cpp:190 #: core/qtsystemtrayicon.cpp:190
msgid "Pause" msgid "Pause"
msgstr "Пауза" msgstr "Пауза"
@@ -3283,7 +3307,7 @@ msgid "Paused"
msgstr "Приостановлен" msgstr "Приостановлен"
#: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273 #: collection/savedgroupingmanager.cpp:121 playlist/playlist.cpp:1273
#: organize/organizedialog.cpp:104 ../build/src/ui_groupbydialog.h:197 #: organize/organizedialog.cpp:107 ../build/src/ui_groupbydialog.h:197
#: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241 #: ../build/src/ui_groupbydialog.h:219 ../build/src/ui_groupbydialog.h:241
#: ../build/src/ui_edittagdialog.h:715 #: ../build/src/ui_edittagdialog.h:715
msgid "Performer" msgid "Performer"
@@ -3297,8 +3321,8 @@ msgstr "Пиксель"
msgid "Plain sidebar" msgid "Plain sidebar"
msgstr "Нормальная боковая панель" msgstr "Нормальная боковая панель"
#: core/mainwindow.cpp:674 core/mainwindow.cpp:1200 core/mainwindow.cpp:1229 #: core/mainwindow.cpp:675 core/mainwindow.cpp:1213 core/mainwindow.cpp:1242
#: core/mainwindow.cpp:1725 core/qtsystemtrayicon.cpp:177 #: core/mainwindow.cpp:1738 core/qtsystemtrayicon.cpp:177
#: core/qtsystemtrayicon.cpp:202 #: core/qtsystemtrayicon.cpp:202
msgid "Play" msgid "Play"
msgstr "Воспроизвести" msgstr "Воспроизвести"
@@ -3361,7 +3385,7 @@ msgstr ""
msgid "Playlist finished" msgid "Playlist finished"
msgstr "Плейлист закончился" msgstr "Плейлист закончился"
#: core/mainwindow.cpp:2191 #: core/mainwindow.cpp:2204
#, qt-format #, qt-format
msgid "" msgid ""
"Playlist has %1 songs, too large to undo, are you sure you want to clear the " "Playlist has %1 songs, too large to undo, are you sure you want to clear the "
@@ -3381,7 +3405,7 @@ msgstr "Настройки плейлиста"
msgid "Playlist type" msgid "Playlist type"
msgstr "" msgstr ""
#: core/mainwindow.cpp:339 #: core/mainwindow.cpp:340
msgid "Playlists" msgid "Playlists"
msgstr "Плейлисты" msgstr "Плейлисты"
@@ -3503,7 +3527,7 @@ msgstr "Ход выполнения"
msgid "Put songs in a random order" msgid "Put songs in a random order"
msgstr "" msgstr ""
#: core/mainwindow.cpp:352 ../build/src/ui_scrobblersettingspage.h:409 #: core/mainwindow.cpp:353 ../build/src/ui_scrobblersettingspage.h:409
#: ../build/src/ui_qobuzsettingspage.h:270 #: ../build/src/ui_qobuzsettingspage.h:270
msgid "Qobuz" msgid "Qobuz"
msgstr "Qobuz" msgstr "Qobuz"
@@ -3526,24 +3550,24 @@ msgstr "Качество"
msgid "Querying device..." msgid "Querying device..."
msgstr "Опрашиваем устройство…" msgstr "Опрашиваем устройство…"
#: core/mainwindow.cpp:338 #: core/mainwindow.cpp:339
msgid "Queue" msgid "Queue"
msgstr "Очередь" msgstr "Очередь"
#: core/mainwindow.cpp:1828 #: core/mainwindow.cpp:1841
msgid "Queue selected tracks" msgid "Queue selected tracks"
msgstr "Выбранные треки в очередь" msgstr "Выбранные треки в очередь"
#: core/mainwindow.cpp:680 core/mainwindow.cpp:1832 #: core/mainwindow.cpp:681 core/mainwindow.cpp:1845
msgid "Queue selected tracks to play next" msgid "Queue selected tracks to play next"
msgstr "Очередь выбранных треков для последующего воспроизведения" msgstr "Очередь выбранных треков для последующего воспроизведения"
#: core/mainwindow.cpp:1834 collection/collectionview.cpp:347 #: core/mainwindow.cpp:1847 collection/collectionview.cpp:347
#: internet/internetcollectionview.cpp:317 #: internet/internetcollectionview.cpp:317
msgid "Queue to play next" msgid "Queue to play next"
msgstr "Очередь воспроизведения" msgstr "Очередь воспроизведения"
#: core/mainwindow.cpp:1827 context/contextalbumsview.cpp:257 #: core/mainwindow.cpp:1840 context/contextalbumsview.cpp:257
#: collection/collectionview.cpp:346 #: collection/collectionview.cpp:346
#: smartplaylists/smartplaylistsviewcontainer.cpp:75 #: smartplaylists/smartplaylistsviewcontainer.cpp:75
#: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316 #: internet/internetsearchview.cpp:323 internet/internetcollectionview.cpp:316
@@ -3738,7 +3762,7 @@ msgstr ""
msgid "Rescan song(s)" msgid "Rescan song(s)"
msgstr "Пересканировать песню(и)" msgstr "Пересканировать песню(и)"
#: core/mainwindow.cpp:696 #: core/mainwindow.cpp:697
msgid "Rescan song(s)..." msgid "Rescan song(s)..."
msgstr "" msgstr ""
@@ -3746,7 +3770,7 @@ msgstr ""
msgid "Reset" msgid "Reset"
msgstr "Сброс" msgstr "Сброс"
#: dialogs/edittagdialog.cpp:869 ../build/src/ui_edittagdialog.h:688 #: dialogs/edittagdialog.cpp:872 ../build/src/ui_edittagdialog.h:688
msgid "Reset play counts" msgid "Reset play counts"
msgstr "Сбросить счётчики воспроизведения" msgstr "Сбросить счётчики воспроизведения"
@@ -3853,7 +3877,7 @@ msgid "Safely remove the device after copying"
msgstr "Безопасно извлечь устройство после копирования" msgstr "Безопасно извлечь устройство после копирования"
#: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280 #: collection/savedgroupingmanager.cpp:133 playlist/playlist.cpp:1280
#: organize/organizedialog.cpp:114 ../build/src/ui_groupbydialog.h:200 #: organize/organizedialog.cpp:117 ../build/src/ui_groupbydialog.h:200
#: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244 #: ../build/src/ui_groupbydialog.h:222 ../build/src/ui_groupbydialog.h:244
#: ../build/src/ui_edittagdialog.h:694 #: ../build/src/ui_edittagdialog.h:694
msgid "Sample rate" msgid "Sample rate"
@@ -3913,7 +3937,7 @@ msgstr "Менеджер сохранённых групп"
msgid "Saving album covers" msgid "Saving album covers"
msgstr "Сохранение обложек альбомов" msgstr "Сохранение обложек альбомов"
#: dialogs/edittagdialog.cpp:784 dialogs/trackselectiondialog.cpp:291 #: dialogs/edittagdialog.cpp:787 dialogs/trackselectiondialog.cpp:291
msgid "Saving tracks" msgid "Saving tracks"
msgstr "Сохранение треков" msgstr "Сохранение треков"
@@ -4046,7 +4070,7 @@ msgstr "URL сервера недействителен."
msgid "Server-side scrobbling" msgid "Server-side scrobbling"
msgstr "" msgstr ""
#: core/mainwindow.cpp:1866 #: core/mainwindow.cpp:1879
#, qt-format #, qt-format
msgid "Set %1 to \"%2\"..." msgid "Set %1 to \"%2\"..."
msgstr "Установить %1 в «%2»…" msgstr "Установить %1 в «%2»…"
@@ -4133,7 +4157,7 @@ msgstr "Показать обложку альбома в коллекции"
msgid "Show albums by artist" msgid "Show albums by artist"
msgstr "Показать альбомы исполнителя" msgstr "Показать альбомы исполнителя"
#: core/mainwindow.cpp:627 #: core/mainwindow.cpp:628
msgid "Show all songs" msgid "Show all songs"
msgstr "Показать все композиции" msgstr "Показать все композиции"
@@ -4157,7 +4181,7 @@ msgstr "Показать движок и устройство"
msgid "Show fullsize..." msgid "Show fullsize..."
msgstr "Показать в полный размер…" msgstr "Показать в полный размер…"
#: core/mainwindow.cpp:703 #: core/mainwindow.cpp:704
msgid "Show in collection..." msgid "Show in collection..."
msgstr "Показать в фонотеке…" msgstr "Показать в фонотеке…"
@@ -4165,7 +4189,7 @@ msgstr "Показать в фонотеке…"
msgid "Show in file browser" msgid "Show in file browser"
msgstr "Показать в файловом браузере" msgstr "Показать в файловом браузере"
#: core/mainwindow.cpp:704 context/contextalbumsview.cpp:268 #: core/mainwindow.cpp:705 context/contextalbumsview.cpp:268
#: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55 #: collection/collectionview.cpp:359 widgets/fileviewlist.cpp:55
msgid "Show in file browser..." msgid "Show in file browser..."
msgstr "Открыть в диспетчере файлов" msgstr "Открыть в диспетчере файлов"
@@ -4182,11 +4206,11 @@ msgstr "Показать кнопку нравится"
msgid "Show moodbar" msgid "Show moodbar"
msgstr "Показать moodbar" msgstr "Показать moodbar"
#: core/mainwindow.cpp:628 #: core/mainwindow.cpp:629
msgid "Show only duplicates" msgid "Show only duplicates"
msgstr "Показывать только повторяющиеся" msgstr "Показывать только повторяющиеся"
#: core/mainwindow.cpp:629 #: core/mainwindow.cpp:630
msgid "Show only untagged" msgid "Show only untagged"
msgstr "Показывать только без тегов" msgstr "Показывать только без тегов"
@@ -4275,11 +4299,11 @@ msgstr "Пропустить подсчёт"
msgid "Skip forwards in playlist" msgid "Skip forwards in playlist"
msgstr "Переместить вперед в плейлисте" msgstr "Переместить вперед в плейлисте"
#: core/mainwindow.cpp:1839 #: core/mainwindow.cpp:1852
msgid "Skip selected tracks" msgid "Skip selected tracks"
msgstr "Пропустить выбранные треки" msgstr "Пропустить выбранные треки"
#: core/mainwindow.cpp:1838 #: core/mainwindow.cpp:1851
msgid "Skip track" msgid "Skip track"
msgstr "Пропустить трек" msgstr "Пропустить трек"
@@ -4295,7 +4319,7 @@ msgstr "Узкая боковая панель"
msgid "Smart playlist" msgid "Smart playlist"
msgstr "" msgstr ""
#: core/mainwindow.cpp:340 #: core/mainwindow.cpp:341
msgid "Smart playlists" msgid "Smart playlists"
msgstr "" msgstr ""
@@ -4380,7 +4404,7 @@ msgstr "Останавливать после каждого трека"
msgid "Stop after every track" msgid "Stop after every track"
msgstr "Останавливать после каждого трека" msgstr "Останавливать после каждого трека"
#: core/mainwindow.cpp:676 ../build/src/ui_mainwindow.h:627 #: core/mainwindow.cpp:677 ../build/src/ui_mainwindow.h:627
msgid "Stop after this track" msgid "Stop after this track"
msgstr "Остановить после этого трека" msgstr "Остановить после этого трека"
@@ -4440,6 +4464,21 @@ msgid ""
"on %1" "on %1"
msgstr "" msgstr ""
#: dialogs/snapdialog.cpp:40
msgid "Strawberry is running as a Snap"
msgstr ""
#: ../build/src/ui_snapdialog.h:117
msgid "Strawberry is running as a snap"
msgstr ""
#: dialogs/snapdialog.cpp:48
msgid ""
"Strawberry is slower, and has restrictions when running as a Snap. Accessing "
"the root filesystem (/) will not work. There also might be other "
"restrictions such as accessing certain devices or network shares."
msgstr ""
#: ../build/src/ui_trackselectiondialog.h:205 #: ../build/src/ui_trackselectiondialog.h:205
msgid "Strawberry was unable to find results for this file" msgid "Strawberry was unable to find results for this file"
msgstr "Strawberry не смог найти результаты по запросу для этого файла" msgstr "Strawberry не смог найти результаты по запросу для этого файла"
@@ -4464,7 +4503,7 @@ msgstr "Растягивать изображение для заполнени
msgid "Submit scrobbles every" msgid "Submit scrobbles every"
msgstr "Отправить скробблы каждые" msgstr "Отправить скробблы каждые"
#: core/mainwindow.cpp:346 ../build/src/ui_scrobblersettingspage.h:407 #: core/mainwindow.cpp:347 ../build/src/ui_scrobblersettingspage.h:407
#: ../build/src/ui_subsonicsettingspage.h:188 #: ../build/src/ui_subsonicsettingspage.h:188
msgid "Subsonic" msgid "Subsonic"
msgstr "Subsonic" msgstr "Subsonic"
@@ -4590,7 +4629,7 @@ msgstr "Запрошенный сайт не существует!"
msgid "The site you requested is not an image!" msgid "The site you requested is not an image!"
msgstr "Запрошенная ссылка не является изображением!" msgstr "Запрошенная ссылка не является изображением!"
#: core/mainwindow.cpp:2698 #: core/mainwindow.cpp:2711
msgid "" msgid ""
"The version of Strawberry you've just updated to requires a full collection " "The version of Strawberry you've just updated to requires a full collection "
"rescan because of the new features listed below:" "rescan because of the new features listed below:"
@@ -4694,7 +4733,7 @@ msgstr "Эта опция может быть изменена в настрой
msgid "This type of device is not supported: %1" msgid "This type of device is not supported: %1"
msgstr "Не поддерживаемый тип устройства: %1" msgstr "Не поддерживаемый тип устройства: %1"
#: core/mainwindow.cpp:349 ../build/src/ui_scrobblersettingspage.h:408 #: core/mainwindow.cpp:350 ../build/src/ui_scrobblersettingspage.h:408
#: ../build/src/ui_tidalsettingspage.h:312 #: ../build/src/ui_tidalsettingspage.h:312
msgid "Tidal" msgid "Tidal"
msgstr "Tidal" msgstr "Tidal"
@@ -4709,7 +4748,7 @@ msgstr ""
msgid "Time step" msgid "Time step"
msgstr "Шаг времени" msgstr "Шаг времени"
#: playlist/playlist.cpp:1262 organize/organizedialog.cpp:98 #: playlist/playlist.cpp:1262 organize/organizedialog.cpp:101
#: ../build/src/ui_contextsettingspage.h:414 #: ../build/src/ui_contextsettingspage.h:414
#: ../build/src/ui_edittagdialog.h:705 #: ../build/src/ui_edittagdialog.h:705
#: ../build/src/ui_trackselectiondialog.h:210 #: ../build/src/ui_trackselectiondialog.h:210
@@ -4720,7 +4759,7 @@ msgstr "Название"
msgid "Today" msgid "Today"
msgstr "Сегодня" msgstr "Сегодня"
#: core/mainwindow.cpp:677 core/mainwindow.cpp:1829 #: core/mainwindow.cpp:678 core/mainwindow.cpp:1842
msgid "Toggle queue status" msgid "Toggle queue status"
msgstr "Переключить состояние очереди" msgstr "Переключить состояние очереди"
@@ -4728,7 +4767,7 @@ msgstr "Переключить состояние очереди"
msgid "Toggle scrobbling" msgid "Toggle scrobbling"
msgstr "Вкл/выкл скробблинг" msgstr "Вкл/выкл скробблинг"
#: core/mainwindow.cpp:683 core/mainwindow.cpp:1840 #: core/mainwindow.cpp:684 core/mainwindow.cpp:1853
msgid "Toggle skip status" msgid "Toggle skip status"
msgstr "Переключить статус пропуска" msgstr "Переключить статус пропуска"
@@ -4756,7 +4795,7 @@ msgstr "Всего передано байт"
msgid "Total network requests made" msgid "Total network requests made"
msgstr "Всего выполнено сетевых запросов" msgstr "Всего выполнено сетевых запросов"
#: playlist/playlist.cpp:1265 organize/organizedialog.cpp:106 #: playlist/playlist.cpp:1265 organize/organizedialog.cpp:109
#: ../build/src/ui_edittagdialog.h:712 #: ../build/src/ui_edittagdialog.h:712
#: ../build/src/ui_trackselectiondialog.h:212 #: ../build/src/ui_trackselectiondialog.h:212
msgid "Track" msgid "Track"
@@ -4814,8 +4853,8 @@ msgstr "Ультраширокая полоса пропускания (UWB)"
msgid "Unknown" msgid "Unknown"
msgstr "Неизвестный" msgstr "Неизвестный"
#: subsonic/subsonicrequest.cpp:858 tidal/tidalrequest.cpp:1262 #: subsonic/subsonicrequest.cpp:864 tidal/tidalrequest.cpp:1259
#: qobuz/qobuzrequest.cpp:1324 #: qobuz/qobuzrequest.cpp:1321
msgid "Unknown error" msgid "Unknown error"
msgstr "Неизвестная ошибка" msgstr "Неизвестная ошибка"
@@ -4823,11 +4862,11 @@ msgstr "Неизвестная ошибка"
msgid "Unset cover" msgid "Unset cover"
msgstr "Удалить обложку" msgstr "Удалить обложку"
#: core/mainwindow.cpp:1837 #: core/mainwindow.cpp:1850
msgid "Unskip selected tracks" msgid "Unskip selected tracks"
msgstr "Не пропускать выбранные треки" msgstr "Не пропускать выбранные треки"
#: core/mainwindow.cpp:1836 #: core/mainwindow.cpp:1849
msgid "Unskip track" msgid "Unskip track"
msgstr "Не пропускать трек" msgstr "Не пропускать трек"
@@ -5063,7 +5102,7 @@ msgid ""
"well?" "well?"
msgstr "" msgstr ""
#: core/mainwindow.cpp:2702 #: core/mainwindow.cpp:2715
msgid "Would you like to run a full rescan right now?" msgid "Would you like to run a full rescan right now?"
msgstr "Желаете запустить повторное сканирование?" msgstr "Желаете запустить повторное сканирование?"
@@ -5072,7 +5111,7 @@ msgid "Write metadata when saving playlists"
msgstr "Записывать метаданные при сохранении плейлистов" msgstr "Записывать метаданные при сохранении плейлистов"
#: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268 #: collection/savedgroupingmanager.cpp:109 playlist/playlist.cpp:1268
#: organize/organizedialog.cpp:108 ../build/src/ui_groupbydialog.h:191 #: organize/organizedialog.cpp:111 ../build/src/ui_groupbydialog.h:191
#: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235 #: ../build/src/ui_groupbydialog.h:213 ../build/src/ui_groupbydialog.h:235
#: ../build/src/ui_edittagdialog.h:714 #: ../build/src/ui_edittagdialog.h:714
#: ../build/src/ui_trackselectiondialog.h:211 #: ../build/src/ui_trackselectiondialog.h:211

View File

@@ -406,6 +406,8 @@ void PlayingWidget::UpdateDetailsText() {
// if something spans multiple lines the height needs to change // if something spans multiple lines the height needs to change
if (mode_ == LargeSongDetails) UpdateHeight(); if (mode_ == LargeSongDetails) UpdateHeight();
update();
} }
void PlayingWidget::paintEvent(QPaintEvent *e) { void PlayingWidget::paintEvent(QPaintEvent *e) {

View File

@@ -221,7 +221,7 @@ void StretchHeaderView::SetStretchEnabled(const bool enabled) {
stretch_enabled_ = enabled; stretch_enabled_ = enabled;
if (enabled) { if (enabled) {
// Initialise the list of widths from the current state of the widget // Initialize the list of widths from the current state of the widget
column_widths_.resize(count()); column_widths_.resize(count());
for (int i = 0; i < count(); ++i) { for (int i = 0; i < count(); ++i) {
column_widths_[i] = ColumnWidthType(sectionSize(i)) / width(); column_widths_[i] = ColumnWidthType(sectionSize(i)) / width();

View File

@@ -70,8 +70,8 @@ class StretchHeaderView : public QHeaderView {
bool is_stretch_enabled() const { return stretch_enabled_; } bool is_stretch_enabled() const { return stretch_enabled_; }
public slots: public slots:
// Changes the stretch mode. Enabling stretch mode will initialise the // Changes the stretch mode.
// proportional column widths from the current state of the header. // Enabling stretch mode will initialize the proportional column widths from the current state of the header.
void ToggleStretchEnabled(); void ToggleStretchEnabled();
void SetStretchEnabled(const bool enabled); void SetStretchEnabled(const bool enabled);

View File

@@ -136,6 +136,7 @@ macro(add_test_file test_source gui_required)
) )
target_link_libraries(${TEST_NAME} PRIVATE target_link_libraries(${TEST_NAME} PRIVATE
${QtCore_LIBRARIES} ${QtCore_LIBRARIES}
${QtConcurrent_LIBRARIES}
${QtWidgets_LIBRARIES} ${QtWidgets_LIBRARIES}
${QtNetwork_LIBRARIES} ${QtNetwork_LIBRARIES}
${QtSql_LIBRARIES} ${QtSql_LIBRARIES}

View File

@@ -91,7 +91,7 @@ class CollectionModelTest : public ::testing::Test {
bool added_dir_; bool added_dir_;
}; };
TEST_F(CollectionModelTest, Initialisation) { TEST_F(CollectionModelTest, Initialization) {
EXPECT_EQ(0, model_->rowCount(QModelIndex())); EXPECT_EQ(0, model_->rowCount(QModelIndex()));
} }
@@ -347,7 +347,7 @@ TEST_F(CollectionModelTest, RemoveEmptyArtists) {
// model3 - All container nodes are created in SongsDiscovered. // model3 - All container nodes are created in SongsDiscovered.
// WARNING: This test can take up to 30 minutes to complete. // WARNING: This test can take up to 30 minutes to complete.
#if 0
TEST_F(CollectionModelTest, TestContainerNodes) { TEST_F(CollectionModelTest, TestContainerNodes) {
SongList songs; SongList songs;
@@ -669,5 +669,6 @@ TEST_F(CollectionModelTest, TestContainerNodes) {
} }
} }
#endif
} // namespace } // namespace

View File

@@ -2,11 +2,11 @@
#include <gtest/gtest.h> #include <gtest/gtest.h>
#include <QtConcurrent>
#include <QThreadPool> #include <QThreadPool>
#include <QEventLoop> #include <QEventLoop>
#include <QFutureWatcher> #include <QFutureWatcher>
#include "core/concurrentrun.h"
#include "test_utils.h" #include "test_utils.h"
int f(); int f();
@@ -17,7 +17,7 @@ int f() {
TEST(ConcurrentRunTest, ConcurrentRun0StartAndWait) { TEST(ConcurrentRunTest, ConcurrentRun0StartAndWait) {
QThreadPool threadpool; QThreadPool threadpool;
QFuture<int> future = ConcurrentRun::Run<int>(&threadpool, &f); QFuture<int> future = QtConcurrent::run(&threadpool, &f);
QFutureWatcher<int> watcher; QFutureWatcher<int> watcher;
watcher.setFuture(future); watcher.setFuture(future);
QEventLoop loop; QEventLoop loop;
@@ -36,7 +36,7 @@ TEST(ConcurrentRunTest, ConcurrentRun1StartAndWait) {
QThreadPool threadpool; QThreadPool threadpool;
int i = 1336; int i = 1336;
QFuture<int> future = ConcurrentRun::Run<int, int>(&threadpool, &g, i); QFuture<int> future = QtConcurrent::run(&threadpool, &g, i);
QFutureWatcher<int> watcher; QFutureWatcher<int> watcher;
watcher.setFuture(future); watcher.setFuture(future);
QEventLoop loop; QEventLoop loop;
@@ -56,7 +56,7 @@ TEST(ConcurrentRunTest, ConcurrentRun2StartAndWait) {
int i = 10; int i = 10;
int j = 42; int j = 42;
QThreadPool threadpool; QThreadPool threadpool;
QFuture<int> future = ConcurrentRun::Run<int, int, int>(&threadpool, &max, i, j); QFuture<int> future = QtConcurrent::run(&threadpool, &max, i, j);
QFutureWatcher<int> watcher; QFutureWatcher<int> watcher;
watcher.setFuture(future); watcher.setFuture(future);
QEventLoop loop; QEventLoop loop;
@@ -77,7 +77,7 @@ TEST(ConcurrentRunTest, ConcurrentRun3StartAndWait) {
int j = 42; int j = 42;
int k = 50; int k = 50;
QThreadPool threadpool; QThreadPool threadpool;
QFuture<int> future = ConcurrentRun::Run<int, int, int, int>(&threadpool, &sum, i, j, k); QFuture<int> future = QtConcurrent::run(&threadpool, &sum, i, j, k);
QFutureWatcher<int> watcher; QFutureWatcher<int> watcher;
watcher.setFuture(future); watcher.setFuture(future);
QEventLoop loop; QEventLoop loop;
@@ -109,7 +109,7 @@ TEST(ConcurrentRunTest, ConcurrentRunVoidFunction1Start) {
QThreadPool threadpool; QThreadPool threadpool;
int n = 10; int n = 10;
QFuture<void> future = ConcurrentRun::Run<void, int*>(&threadpool, &aFunction, &n); QFuture<void> future = QtConcurrent::run(&threadpool, &aFunction, &n);
QFutureWatcher<void> watcher; QFutureWatcher<void> watcher;
watcher.setFuture(future); watcher.setFuture(future);
QEventLoop loop; QEventLoop loop;
@@ -124,7 +124,7 @@ TEST(ConcurrentRunTest, ConcurrentRunVoidFunction2Start) {
QThreadPool threadpool; QThreadPool threadpool;
int n = 10, m = 11; int n = 10, m = 11;
QFuture<void> future = ConcurrentRun::Run<void, int*, int*>(&threadpool, &bFunction, &n, &m); QFuture<void> future = QtConcurrent::run(&threadpool, &bFunction, &n, &m);
QFutureWatcher<void> watcher; QFutureWatcher<void> watcher;
watcher.setFuture(future); watcher.setFuture(future);
QEventLoop loop; QEventLoop loop;
@@ -140,7 +140,7 @@ TEST(ConcurrentRunTest, ConcurrentRunVoidFunction3Start) {
QThreadPool threadpool; QThreadPool threadpool;
int n = 10, m = 11, o = 12; int n = 10, m = 11, o = 12;
QFuture<void> future = ConcurrentRun::Run<void, int*, int*, int*>(&threadpool, &cFunction, &n, &m, &o); QFuture<void> future = QtConcurrent::run(&threadpool, &cFunction, &n, &m, &o);
QFutureWatcher<void> watcher; QFutureWatcher<void> watcher;
watcher.setFuture(future); watcher.setFuture(future);
QEventLoop loop; QEventLoop loop;
@@ -165,7 +165,7 @@ TEST(ConcurrentRunTest, ConcurrentRunVoidBindFunctionStart) {
A a; A a;
int nb = 10; int nb = 10;
QFuture<void> future = ConcurrentRun::Run<void>(&threadpool, std::bind(&A::f, &a, &nb)); QFuture<void> future = QtConcurrent::run(&threadpool, std::bind(&A::f, &a, &nb));
QFutureWatcher<void> watcher; QFutureWatcher<void> watcher;
watcher.setFuture(future); watcher.setFuture(future);
QEventLoop loop; QEventLoop loop;

View File

@@ -64,6 +64,40 @@ TEST_F(OrganizeFormatTest, BasicReplace) {
} }
TEST_F(OrganizeFormatTest, BasicReplacePaths) {
song_.set_title("title");
song_.set_album("album");
song_.set_artist("artist");
song_.set_albumartist("albumartist");
song_.set_track(321);
format_.set_format("%albumartist/%album/%track %albumartist %artist %album %title");
ASSERT_TRUE(format_.IsValid());
EXPECT_EQ("albumartist/album/321_albumartist_artist_album_title", format_.GetFilenameForSong(song_));
}
TEST_F(OrganizeFormatTest, PathOnlyFormat) {
song_.set_title("title");
song_.set_album("album");
song_.set_artist("artist");
song_.set_albumartist("albumartist");
song_.set_track(321);
song_.set_url(QUrl("file:///music/whatever/321_albumartist_artist_album_title"));
song_.set_basefilename("321_albumartist_artist_album_title");
format_.set_format("%albumartist/%album/");
ASSERT_TRUE(format_.IsValid());
EXPECT_EQ("albumartist/album/321_albumartist_artist_album_title", format_.GetFilenameForSong(song_));
}
TEST_F(OrganizeFormatTest, Extension) { TEST_F(OrganizeFormatTest, Extension) {
song_.set_url(QUrl("file:///some/path/filename.flac")); song_.set_url(QUrl("file:///some/path/filename.flac"));
@@ -163,13 +197,10 @@ TEST_F(OrganizeFormatTest, TrackNumberPadding) {
} }
#if 0
TEST_F(OrganizeFormatTest, ReplaceSlashes) { TEST_F(OrganizeFormatTest, ReplaceSlashes) {
format_.set_format("%title"); format_.set_format("%title");
song_.set_title("foo/bar\\baz"); song_.set_title("foo/bar\\baz");
qLog(Debug) << format_.GetFilenameForSong(song_); EXPECT_EQ("foobarbaz", format_.GetFilenameForSong(song_));
EXPECT_EQ("foo_bar_baz", format_.GetFilenameForSong(song_));
} }
#endif