Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6c9ef4a15 | ||
|
|
20e550bc7d | ||
|
|
a4b7766947 | ||
|
|
8d1a0071b6 | ||
|
|
a3c00e607b | ||
|
|
de7ca8b736 | ||
|
|
04e593dc62 | ||
|
|
2294c38aa9 | ||
|
|
6f41d39a9c | ||
|
|
7c4e33b676 | ||
|
|
4cc66bccad | ||
|
|
55b1d34f48 | ||
|
|
4da0e8d8ad | ||
|
|
b95bfba676 | ||
|
|
1ff2bfd390 | ||
|
|
a35fa5b158 | ||
|
|
22169bda0d | ||
|
|
faf5f6c69d | ||
|
|
1ae01d4078 |
60
.github/workflows/build.yml
vendored
60
.github/workflows/build.yml
vendored
@@ -101,6 +101,12 @@ jobs:
|
||||
- name: Install tagparser
|
||||
if: matrix.opensuse_version == 'tumbleweed'
|
||||
run: zypper -n --gpg-auto-import-keys in tagparser-devel
|
||||
- name: Install kdsingleapplication-devel
|
||||
if: matrix.opensuse_version == 'tumbleweed' && matrix.qt_version == '5'
|
||||
run: zypper -n --gpg-auto-import-keys in kdsingleapplication-devel
|
||||
- name: Install kdsingleapplication-qt6-devel
|
||||
if: matrix.opensuse_version == 'tumbleweed' && matrix.qt_version == '6'
|
||||
run: zypper -n --gpg-auto-import-keys in kdsingleapplication-qt6-devel
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
@@ -135,9 +141,9 @@ jobs:
|
||||
run: echo "opensuse_subdir=$(echo ${{matrix.opensuse_version}} | sed 's/leap:/lp/g' | sed 's/\.//g')" > $GITHUB_ENV
|
||||
- name: Upload artifacts
|
||||
if: matrix.opensuse_version != 'tumbleweed'
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: opensuse-${{env.opensuse_subdir}}
|
||||
name: opensuse-${{env.opensuse_subdir}}-qt${{matrix.qt_version}}
|
||||
path: |
|
||||
/usr/src/packages/SOURCES/*.xz
|
||||
/usr/src/packages/SRPMS/*.rpm
|
||||
@@ -166,17 +172,12 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
fedora_version: [ '37', '38', '39' ]
|
||||
fedora_version: [ '38', '39', '40' ]
|
||||
container:
|
||||
image: fedora:${{matrix.fedora_version}}
|
||||
steps:
|
||||
- name: Update repositories
|
||||
run: dnf -y update
|
||||
- name: Fix dnf
|
||||
run: |
|
||||
if [ -f "/usr/bin/dnf5" ] && ! [ -f "/usr/bin/dnf" ]; then
|
||||
ln -s /usr/bin/dnf5 /usr/bin/dnf
|
||||
fi
|
||||
- name: Upgrade packages
|
||||
run: dnf -y upgrade
|
||||
- name: Install dependencies
|
||||
@@ -222,6 +223,7 @@ jobs:
|
||||
desktop-file-utils
|
||||
libappstream-glib
|
||||
hicolor-icon-theme
|
||||
kdsingleapplication-qt6-devel
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
@@ -248,7 +250,7 @@ jobs:
|
||||
working-directory: build
|
||||
run: rpmbuild -ba ../dist/unix/strawberry.spec
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: fedora-${{matrix.fedora_version}}
|
||||
path: |
|
||||
@@ -279,13 +281,12 @@ jobs:
|
||||
container:
|
||||
image: openmandriva/${{matrix.openmandriva_version}}
|
||||
steps:
|
||||
- name: Update repositories
|
||||
run: dnf update -y
|
||||
- name: Upgrade packages
|
||||
run: dnf upgrade -y
|
||||
- name: Update distro
|
||||
run: dnf distro-sync --assumeyes
|
||||
- name: Install dependencies
|
||||
run: >
|
||||
dnf install -y
|
||||
which
|
||||
glibc
|
||||
gcc-c++
|
||||
git
|
||||
@@ -306,7 +307,7 @@ jobs:
|
||||
sqlite-devel
|
||||
libasound-devel
|
||||
pulseaudio-devel
|
||||
lib64GL-devel
|
||||
libGL-devel
|
||||
libgst-plugins-base1.0-devel
|
||||
taglib-devel
|
||||
chromaprint-devel
|
||||
@@ -331,6 +332,8 @@ jobs:
|
||||
appstream
|
||||
appstream-util
|
||||
hicolor-icon-theme
|
||||
- name: Remove files
|
||||
run: rm -rf /usr/lib64/qt6/lib/cmake/Qt6Sql/{Qt6QMYSQL*,Qt6QODBCD*,Qt6QPSQL*,Qt6QIBase*}
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
@@ -357,7 +360,7 @@ jobs:
|
||||
working-directory: build
|
||||
run: rpmbuild -ba ../dist/unix/strawberry.spec
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: openmandriva-${{matrix.openmandriva_version}}
|
||||
path: |
|
||||
@@ -379,12 +382,12 @@ jobs:
|
||||
|
||||
build-mageia:
|
||||
name: Build Mageia
|
||||
if: github.repository != 'strawberrymusicplayer/strawberry-private'
|
||||
if: github.repository != 'strawberrymusicplayer/strawberry-private' && false
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
mageia_version: [ '8' ]
|
||||
mageia_version: [ '9' ]
|
||||
container:
|
||||
image: mageia:${{matrix.mageia_version}}
|
||||
steps:
|
||||
@@ -459,7 +462,7 @@ jobs:
|
||||
working-directory: build
|
||||
run: rpmbuild -ba ../dist/unix/strawberry.spec
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: mageia-${{matrix.mageia_version}}
|
||||
path: |
|
||||
@@ -557,7 +560,7 @@ jobs:
|
||||
- name: Copy deb
|
||||
run: cp ../*.deb .
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: debian-${{matrix.debian_version}}
|
||||
path: "*.deb"
|
||||
@@ -656,7 +659,7 @@ jobs:
|
||||
- name: Copy deb
|
||||
run: cp ../*.deb ../*.ddeb .
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ubuntu-${{matrix.ubuntu_version}}
|
||||
path: |
|
||||
@@ -1188,9 +1191,9 @@ jobs:
|
||||
run: makensis strawberry.nsi
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-mingw
|
||||
name: windows-mingw-${{matrix.arch}}-${{matrix.buildtype}}
|
||||
path: build/StrawberrySetup*.exe
|
||||
|
||||
- name: SSH key setup
|
||||
@@ -1548,9 +1551,9 @@ jobs:
|
||||
run: makensis strawberry.nsi
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-msvc
|
||||
name: windows-msvc-${{matrix.arch}}-${{matrix.buildtype}}
|
||||
path: build/StrawberrySetup*.exe
|
||||
|
||||
|
||||
@@ -1562,10 +1565,10 @@ jobs:
|
||||
- build-windows-msvc
|
||||
steps:
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: windows-msvc
|
||||
path: builds
|
||||
pattern: windows-msvc-*
|
||||
- name: View files
|
||||
run: find builds
|
||||
- name: SSH key setup
|
||||
@@ -1580,7 +1583,7 @@ jobs:
|
||||
- name: rsync
|
||||
shell: bash
|
||||
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/ci'
|
||||
run: rsync -e "ssh -p ${{secrets.SSH_PORT}} -o StrictHostKeyChecking=no" -var builds/StrawberrySetup-*-msvc-*.exe ${{secrets.SSH_USER}}@${{secrets.SSH_HOST}}:${{secrets.BUILDS_PATH}}/windows/msvc/
|
||||
run: rsync -e "ssh -p ${{secrets.SSH_PORT}} -o StrictHostKeyChecking=no" -var builds/*/StrawberrySetup-*-msvc-*.exe ${{secrets.SSH_USER}}@${{secrets.SSH_HOST}}:${{secrets.BUILDS_PATH}}/windows/msvc/
|
||||
|
||||
|
||||
upload-release:
|
||||
@@ -1590,7 +1593,6 @@ jobs:
|
||||
needs:
|
||||
- build-opensuse
|
||||
- build-fedora
|
||||
- build-mageia
|
||||
- build-debian
|
||||
- build-ubuntu
|
||||
- build-windows-mingw
|
||||
@@ -1625,7 +1627,7 @@ jobs:
|
||||
|
||||
- name: Download artifacts
|
||||
if: env.release_version != ''
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: artifacts
|
||||
|
||||
|
||||
Submodule 3rdparty/kdsingleapplication/KDSingleApplication updated: ffce501f45...cb0c664b40
@@ -305,18 +305,13 @@ if(QT_VERSION_MAJOR EQUAL 5)
|
||||
else()
|
||||
set(KDSINGLEAPPLICATION_NAME "KDSingleApplication-qt${QT_VERSION_MAJOR}")
|
||||
endif()
|
||||
find_package(${KDSINGLEAPPLICATION_NAME})
|
||||
find_package(${KDSINGLEAPPLICATION_NAME} 1.1.0)
|
||||
if(TARGET KDAB::kdsingleapplication)
|
||||
if(QT_VERSION_MAJOR EQUAL 5)
|
||||
set(KDSINGLEAPPLICATION_VERSION "${KDSingleApplication_VERSION}")
|
||||
elseif(QT_VERSION_MAJOR EQUAL 6)
|
||||
set(KDSINGLEAPPLICATION_VERSION "${KDSingleApplication-qt6_VERSION}")
|
||||
endif()
|
||||
if(KDSINGLEAPPLICATION_VERSION VERSION_GREATER_EQUAL 1.0.95)
|
||||
set(HAVE_KDSINGLEAPPLICATION_OPTIONS ON)
|
||||
else()
|
||||
set(HAVE_KDSINGLEAPPLICATION_OPTIONS OFF)
|
||||
endif()
|
||||
message(STATUS "Using system KDSingleApplication (Version ${KDSINGLEAPPLICATION_VERSION})")
|
||||
set(SINGLEAPPLICATION_LIBRARIES KDAB::kdsingleapplication)
|
||||
else()
|
||||
|
||||
13
Changelog
13
Changelog
@@ -2,6 +2,19 @@ Strawberry Music Player
|
||||
=======================
|
||||
ChangeLog
|
||||
|
||||
Version 1.0.23 (2024.01.11):
|
||||
|
||||
Bugfixes:
|
||||
* Fixed possible duplication of song entries after organizing (#1341).
|
||||
* Fixed possible crash when connecting devices (#1313).
|
||||
* Fixed playlist sorting of original year (#1349).
|
||||
* (macOS) Fixed crash when adding collection directory (QTBUG-120469) (#1350).
|
||||
|
||||
Enhancements:
|
||||
* Treat all stream errors as non-fatal (#1347).
|
||||
* Require KDSingleApplication 1.1.0.
|
||||
* Fix logging of restored unavailable songs.
|
||||
|
||||
Version 1.0.22 (2023.12.09):
|
||||
|
||||
Bugfixes:
|
||||
|
||||
@@ -32,9 +32,9 @@ Resources:
|
||||
### :moneybag: Sponsoring
|
||||
|
||||
The program is free software, released under GPL. If you like this program and can make use of it, consider sponsoring or donating to help fund the project.
|
||||
There are currently 3 options for sponsoring:
|
||||
There are currently 4 options for sponsoring:
|
||||
|
||||
1. [GitHub Sponsors](https://github.com/sponsors/jonaski)
|
||||
1. [GitHub](https://github.com/sponsors/jonaski)
|
||||
2. [Patreon](https://www.patreon.com/jonaskvinge)
|
||||
3. [Ko-fi](https://ko-fi.com/jonaskvinge)
|
||||
4. [PayPal](https://paypal.me/jonaskvinge)
|
||||
@@ -65,7 +65,7 @@ Funding developers is a way to contribute to open source projects you appreciate
|
||||
|
||||
It has so far been tested to work on Linux, OpenBSD, FreeBSD, macOS and Windows.
|
||||
|
||||
**macOS releases are currently limited to sponsors. This is because macOS releases require a developer account, Apple hardware and maintaining all libraries strawberry depends on. If you are sponsoring strawberry, e-mail support@strawberrymusicplayer.org for access to downloads.**
|
||||
**macOS releases are currently limited to sponsors. This is because Strawberry mainly has one contributor/developer and supporting macOS requires Apple hardware, building libraries Strawberry depends and a Apple developer account for signing releases. If you are sponsoring strawberry through Patreon, releases are available directly on Patreon, if you are sponsoring through GitHub, Ko-fi or Paypal, please e-mail support@strawberrymusicplayer.org for access to downloads.**
|
||||
|
||||
### :heavy_exclamation_mark: Requirements
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
set(STRAWBERRY_VERSION_MAJOR 1)
|
||||
set(STRAWBERRY_VERSION_MINOR 0)
|
||||
set(STRAWBERRY_VERSION_PATCH 22)
|
||||
set(STRAWBERRY_VERSION_PATCH 23)
|
||||
#set(STRAWBERRY_VERSION_PRERELEASE rc1)
|
||||
|
||||
set(INCLUDE_GIT_REVISION OFF)
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
</screenshots>
|
||||
<update_contact>eclipseo@fedoraproject.org</update_contact>
|
||||
<releases>
|
||||
<release version="1.0.23" date="2024-01-11"/>
|
||||
<release version="1.0.22" date="2023-12-09"/>
|
||||
<release version="1.0.21" date="2023-10-21"/>
|
||||
<release version="1.0.20" date="2023-09-24"/>
|
||||
|
||||
@@ -907,14 +907,14 @@ void CollectionBackend::MarkSongsUnavailable(const SongList &songs, const bool u
|
||||
QMutexLocker l(db_->Mutex());
|
||||
QSqlDatabase db(db_->Connect());
|
||||
|
||||
SqlQuery remove(db);
|
||||
remove.prepare(QString("UPDATE %1 SET unavailable = %2 WHERE ROWID = :id").arg(songs_table_).arg(static_cast<int>(unavailable)));
|
||||
SqlQuery query(db);
|
||||
query.prepare(QString("UPDATE %1 SET unavailable = %2 WHERE ROWID = :id").arg(songs_table_).arg(static_cast<int>(unavailable)));
|
||||
|
||||
ScopedTransaction transaction(&db);
|
||||
for (const Song &song : songs) {
|
||||
remove.BindValue(":id", song.id());
|
||||
if (!remove.Exec()) {
|
||||
db_->ReportErrors(remove);
|
||||
query.BindValue(":id", song.id());
|
||||
if (!query.Exec()) {
|
||||
db_->ReportErrors(query);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -627,6 +627,7 @@ void CollectionWatcher::ScanSubdirectory(const QString &path, const CollectionSu
|
||||
|
||||
// Nothing has changed - mark the song available without re-scanning
|
||||
else if (matching_song.unavailable()) {
|
||||
qLog(Debug) << "Unavailable song" << file << "restored.";
|
||||
t->readded_songs << matching_songs;
|
||||
}
|
||||
|
||||
@@ -886,7 +887,7 @@ void CollectionWatcher::AddChangedSong(const QString &file, const Song &matching
|
||||
QStringList changes;
|
||||
|
||||
if (matching_song.unavailable()) {
|
||||
qLog(Debug) << "unavailable song" << file << "restored.";
|
||||
qLog(Debug) << "Unavailable song" << file << "restored.";
|
||||
notify_new = true;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -58,6 +58,4 @@
|
||||
|
||||
#cmakedefine HAVE_EBUR128
|
||||
|
||||
#cmakedefine HAVE_KDSINGLEAPPLICATION_OPTIONS
|
||||
|
||||
#endif // CONFIG_H_IN
|
||||
|
||||
@@ -830,7 +830,7 @@ void DeviceManager::DeviceTaskStarted(const int id) {
|
||||
|
||||
for (int i = 0; i < devices_.count(); ++i) {
|
||||
DeviceInfo *info = devices_[i];
|
||||
if (&*info->device_ == device) {
|
||||
if (info->device_ && &*info->device_ == device) {
|
||||
QModelIndex index = ItemToIndex(info);
|
||||
if (!index.isValid()) continue;
|
||||
active_tasks_[id] = index;
|
||||
|
||||
@@ -569,7 +569,7 @@ void GstEngine::HandlePipelineError(const int pipeline_id, const int domain, con
|
||||
error_code == static_cast<int>(GST_RESOURCE_ERROR_OPEN_READ) ||
|
||||
error_code == static_cast<int>(GST_RESOURCE_ERROR_NOT_AUTHORIZED)
|
||||
))
|
||||
|| (domain == static_cast<int>(GST_STREAM_ERROR) && error_code == static_cast<int>(GST_STREAM_ERROR_TYPE_NOT_FOUND))
|
||||
|| (domain == static_cast<int>(GST_STREAM_ERROR))
|
||||
) {
|
||||
emit InvalidSongRequested(stream_url_);
|
||||
}
|
||||
|
||||
@@ -156,11 +156,7 @@ int main(int argc, char *argv[]) {
|
||||
// Only start a core application now, so we can check if there's another instance without requiring an X server.
|
||||
// This MUST be done before parsing the commandline options so QTextCodec gets the right system locale for filenames.
|
||||
QCoreApplication core_app(argc, argv);
|
||||
#ifdef HAVE_KDSINGLEAPPLICATION_OPTIONS
|
||||
KDSingleApplication single_app(QCoreApplication::applicationName(), KDSingleApplication::Option::IncludeUsernameInSocketName);
|
||||
#else
|
||||
KDSingleApplication single_app(QCoreApplication::applicationName());
|
||||
#endif
|
||||
// Parse commandline options - need to do this before starting the full QApplication, so it works without an X server
|
||||
if (!options.Parse()) return 1;
|
||||
logging::SetLevels(options.log_levels());
|
||||
@@ -197,11 +193,7 @@ int main(int argc, char *argv[]) {
|
||||
QGuiApplication::setQuitOnLastWindowClosed(false);
|
||||
|
||||
QApplication a(argc, argv);
|
||||
#ifdef HAVE_KDSINGLEAPPLICATION_OPTIONS
|
||||
KDSingleApplication single_app(QCoreApplication::applicationName(), KDSingleApplication::Option::IncludeUsernameInSocketName);
|
||||
#else
|
||||
KDSingleApplication single_app(QCoreApplication::applicationName());
|
||||
#endif
|
||||
if (!single_app.isPrimaryInstance()) {
|
||||
if (options.is_empty()) {
|
||||
qLog(Info) << "Strawberry is already running - activating existing window (2)";
|
||||
|
||||
@@ -251,7 +251,7 @@ void Organize::ProcessSomeFiles() {
|
||||
job.progress_ = std::bind(&Organize::SetSongProgress, this, std::placeholders::_1, !task.transcoded_filename_.isEmpty());
|
||||
|
||||
if (destination_->CopyToStorage(job)) {
|
||||
if (job.remove_original_ && (destination_->source() == Song::Source::Collection || destination_->source() == Song::Source::Device)) {
|
||||
if (job.remove_original_ && song.is_collection_song() && destination_->source() == Song::Source::Collection) {
|
||||
// Notify other aspects of system that song has been invalidated
|
||||
QString root = destination_->LocalPath();
|
||||
QFileInfo new_file = QFileInfo(root + "/" + task.song_info_.new_filename_);
|
||||
|
||||
@@ -1303,7 +1303,7 @@ bool Playlist::CompareItems(const int column, const Qt::SortOrder order, Playlis
|
||||
case Column_Track: cmp(track);
|
||||
case Column_Disc: cmp(disc);
|
||||
case Column_Year: cmp(year);
|
||||
case Column_OriginalYear: cmp(originalyear);
|
||||
case Column_OriginalYear: cmp(effective_originalyear);
|
||||
case Column_Genre: strcmp(genre);
|
||||
case Column_AlbumArtist: strcmp(playlist_albumartist_sortable);
|
||||
case Column_Composer: strcmp(composer);
|
||||
|
||||
@@ -43,13 +43,14 @@
|
||||
# Guido T. <GuidoTelscher@web.de>, 2022. #zanata
|
||||
# Jonas Kvinge <jonas@jkvinge.net>, 2022. #zanata
|
||||
# Daniel Ostertag <dakes@vivaldi.net>, 2023. #zanata
|
||||
# Stefan Skopnik <sskopnik@gmail.com>, 2023. #zanata
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"PO-Revision-Date: 2023-08-03 08:26-0400\n"
|
||||
"Last-Translator: Daniel Ostertag <dakes@vivaldi.net>\n"
|
||||
"PO-Revision-Date: 2023-12-02 05:25-0500\n"
|
||||
"Last-Translator: Stefan Skopnik <sskopnik@gmail.com>\n"
|
||||
"Language-Team: German\n"
|
||||
"Language: de\n"
|
||||
"X-Generator: Zanata 4.6.2\n"
|
||||
@@ -283,7 +284,7 @@ msgstr "%n verbleibend"
|
||||
#, c-format, qt-plural-format
|
||||
msgctxt ""
|
||||
msgid "%n track(s)"
|
||||
msgstr ""
|
||||
msgstr "%n Stück(e)"
|
||||
|
||||
#: ../build/src/ui_contextsettingspage.h:415
|
||||
#: ../build/src/ui_notificationssettingspage.h:472
|
||||
@@ -821,7 +822,7 @@ msgstr "Album - Disc"
|
||||
|
||||
#: playlist/playlist.cpp:1372
|
||||
msgid "Album Artist"
|
||||
msgstr ""
|
||||
msgstr "Album-Interpret"
|
||||
|
||||
#: collection/savedgroupingmanager.cpp:92 organize/organizedialog.cpp:108
|
||||
#: ../build/src/ui_groupbydialog.h:193 ../build/src/ui_groupbydialog.h:215
|
||||
@@ -1156,7 +1157,7 @@ msgstr "Optimal"
|
||||
|
||||
#: playlist/playlist.cpp:1382
|
||||
msgid "Bit Depth"
|
||||
msgstr ""
|
||||
msgstr "Bit-Tiefe"
|
||||
|
||||
#: context/contextview.cpp:165 collection/savedgroupingmanager.cpp:146
|
||||
#: organize/organizedialog.cpp:121 ../build/src/ui_groupbydialog.h:209
|
||||
@@ -1764,11 +1765,11 @@ msgstr "Datenbankfehler festgestellt"
|
||||
|
||||
#: playlist/playlist.cpp:1390
|
||||
msgid "Date Created"
|
||||
msgstr ""
|
||||
msgstr "Erstellungsdatum"
|
||||
|
||||
#: playlist/playlist.cpp:1389
|
||||
msgid "Date Modified"
|
||||
msgstr ""
|
||||
msgstr "Änderungsdatum"
|
||||
|
||||
#: ../build/src/ui_edittagdialog.h:881
|
||||
msgid "Date created"
|
||||
@@ -1916,7 +1917,7 @@ msgstr "Unterbrochene Übertragung"
|
||||
|
||||
#: ../build/src/ui_collectionsettingspage.h:446
|
||||
msgid "Disk Cache Size"
|
||||
msgstr "Größe des Cachespeichers auf der Fesplatte"
|
||||
msgstr "Größe des Cachespeichers auf der Festplatte"
|
||||
|
||||
#: collection/collectionfilterwidget.cpp:139
|
||||
#: ../build/src/ui_collectionsettingspage.h:439
|
||||
@@ -2419,19 +2420,19 @@ msgstr "Datei %1 kann nicht als korrekte Audiodatei erkannt werden."
|
||||
|
||||
#: playlist/playlist.cpp:1385
|
||||
msgid "File Name"
|
||||
msgstr ""
|
||||
msgstr "Dateiname"
|
||||
|
||||
#: playlist/playlist.cpp:1386
|
||||
msgid "File Name (without path)"
|
||||
msgstr ""
|
||||
msgstr "Dateiname (ohne Dateipfad)"
|
||||
|
||||
#: playlist/playlist.cpp:1387
|
||||
msgid "File Size"
|
||||
msgstr ""
|
||||
msgstr "Dateigröße"
|
||||
|
||||
#: playlist/playlist.cpp:1388
|
||||
msgid "File Type"
|
||||
msgstr ""
|
||||
msgstr "Dateityp"
|
||||
|
||||
#: organize/organizedialog.cpp:122
|
||||
msgid "File extension"
|
||||
@@ -2899,7 +2900,7 @@ msgstr "Strawberry aus PPA installieren:"
|
||||
|
||||
#: playlist/playlist.cpp:1398
|
||||
msgid "Integrated Loudness"
|
||||
msgstr ""
|
||||
msgstr "Integrierte Lautheit"
|
||||
|
||||
#: core/database.cpp:486
|
||||
msgid "Integrity check"
|
||||
@@ -2980,7 +2981,7 @@ msgstr "Große Seitenleiste"
|
||||
|
||||
#: playlist/playlist.cpp:1379
|
||||
msgid "Last Played"
|
||||
msgstr ""
|
||||
msgstr "Zuletzt gespielt"
|
||||
|
||||
#: smartplaylists/smartplaylistsmodel.cpp:91
|
||||
#: ../build/src/ui_lastfmimportdialog.h:150
|
||||
@@ -3118,7 +3119,7 @@ msgstr "Langzeitvorhersageprofil (LTP)"
|
||||
|
||||
#: playlist/playlist.cpp:1399
|
||||
msgid "Loudness Range"
|
||||
msgstr ""
|
||||
msgstr "Lautstärkeumfang"
|
||||
|
||||
#: globalshortcuts/globalshortcutsmanager.cpp:79
|
||||
#: ../build/src/ui_mainwindow.h:634
|
||||
@@ -3641,7 +3642,7 @@ msgstr "Dateien organisieren"
|
||||
|
||||
#: playlist/playlist.cpp:1370
|
||||
msgid "Original Year"
|
||||
msgstr ""
|
||||
msgstr "Ursprüngliches Jahr"
|
||||
|
||||
#: dialogs/trackselectiondialog.cpp:192
|
||||
msgid "Original tags"
|
||||
@@ -3775,7 +3776,7 @@ msgstr "Wiedergabe"
|
||||
|
||||
#: playlist/playlist.cpp:1377
|
||||
msgid "Play Count"
|
||||
msgstr ""
|
||||
msgstr "Wiedergabezähler"
|
||||
|
||||
#: ../build/src/ui_appearancesettingspage.h:553
|
||||
msgid "Play control buttons"
|
||||
@@ -4428,7 +4429,7 @@ msgstr "Das Gerät nach dem Kopiervorgang sicher entfernen"
|
||||
|
||||
#: playlist/playlist.cpp:1381
|
||||
msgid "Sample Rate"
|
||||
msgstr ""
|
||||
msgstr "Abtastrate"
|
||||
|
||||
#: collection/savedgroupingmanager.cpp:143 organize/organizedialog.cpp:120
|
||||
#: ../build/src/ui_groupbydialog.h:208 ../build/src/ui_groupbydialog.h:230
|
||||
@@ -4904,7 +4905,7 @@ msgstr "Ska"
|
||||
|
||||
#: playlist/playlist.cpp:1378
|
||||
msgid "Skip Count"
|
||||
msgstr ""
|
||||
msgstr "Übersprungzähler"
|
||||
|
||||
#: core/commandlineoptions.cpp:224
|
||||
msgid "Skip backwards in playlist"
|
||||
@@ -5011,7 +5012,7 @@ msgstr "Speex"
|
||||
|
||||
#: core/mainwindow.cpp:1068
|
||||
msgid "Sponsoring Strawberry"
|
||||
msgstr ""
|
||||
msgstr "Sponsoring Strawberry"
|
||||
|
||||
#: covermanager/spotifycoverprovider.cpp:149
|
||||
msgid "Spotify Authentication"
|
||||
@@ -5110,6 +5111,9 @@ msgid ""
|
||||
"consider sponsoring the project. For more information about sponsorship see "
|
||||
"our website %1"
|
||||
msgstr ""
|
||||
"Strawberry ist freie Open-Source Software. Wenn Ihnen Strawberry gefällt, "
|
||||
"können sie das Projekt sponsern. Für weitere Informationen zum Thema "
|
||||
"Sponsorschaft schauen Sie auf unsere Web-Seite %1"
|
||||
|
||||
#: dialogs/about.cpp:117
|
||||
#, qt-format
|
||||
@@ -5915,6 +5919,9 @@ msgid ""
|
||||
"is unsupported and known to have issues. You should download Strawberry for "
|
||||
"the correct CPU architecture from %1"
|
||||
msgstr ""
|
||||
"Sie betreiben Strawberry unter Rosetta. Der Betrieb von Strawberry unter "
|
||||
"Rosetta wird nicht unterstützt und führt zu Problemen. Bitte laden Sie "
|
||||
"Strawberry für die korrekte CPU-Architektur von %1 herunter"
|
||||
|
||||
#: widgets/loginstatewidget.cpp:83
|
||||
#, qt-format
|
||||
|
||||
@@ -48,8 +48,8 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"PO-Revision-Date: 2023-09-27 12:01-0400\n"
|
||||
"Last-Translator: David Geiger <geiger.david68210@gmail.com>\n"
|
||||
"PO-Revision-Date: 2023-12-11 11:29-0500\n"
|
||||
"Last-Translator: hatstand <john.maguire@gmail.com>\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Language-Team: French\n"
|
||||
@@ -280,7 +280,7 @@ msgstr "%n restant"
|
||||
#, c-format, qt-plural-format
|
||||
msgctxt ""
|
||||
msgid "%n track(s)"
|
||||
msgstr ""
|
||||
msgstr "%n morceau(x)"
|
||||
|
||||
#: ../build/src/ui_contextsettingspage.h:415
|
||||
#: ../build/src/ui_notificationssettingspage.h:472
|
||||
|
||||
@@ -36,7 +36,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"PO-Revision-Date: 2023-11-29 06:45-0500\n"
|
||||
"PO-Revision-Date: 2023-12-04 06:08-0500\n"
|
||||
"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
|
||||
"Language-Team: Russian\n"
|
||||
"Language: ru\n"
|
||||
@@ -878,7 +878,7 @@ msgstr "Разрешить кодирование в виде суммы и ра
|
||||
|
||||
#: ../build/src/ui_transcodedialog.h:231
|
||||
msgid "Alongside the originals"
|
||||
msgstr "Вместе с оригиналами"
|
||||
msgstr "Рядом с исходными"
|
||||
|
||||
#: ../build/src/ui_behavioursettingspage.h:298
|
||||
#: ../build/src/ui_behavioursettingspage.h:312
|
||||
@@ -912,7 +912,7 @@ msgstr "Внешний вид"
|
||||
|
||||
#: ../build/src/ui_tidalsettingspage.h:339
|
||||
msgid "Append explicit to album title for explicit albums"
|
||||
msgstr "Добавить явно к названию альбома для явных альбомов"
|
||||
msgstr "Добавлять «Explicit» в имена альбомов с нецензурной лексикой"
|
||||
|
||||
#: core/commandlineoptions.cpp:236
|
||||
msgid "Append files/URLs to the playlist"
|
||||
@@ -2054,7 +2054,7 @@ msgstr "Включить HTTP/2 для потокового вещания"
|
||||
|
||||
#: ../build/src/ui_contextsettingspage.h:426
|
||||
msgid "Enable Items"
|
||||
msgstr "Задействовать объекты"
|
||||
msgstr "Задействовать элементы"
|
||||
|
||||
#: ../build/src/ui_collectionsettingspage.h:456
|
||||
#: ../build/src/ui_playlistsettingspage.h:188
|
||||
@@ -2471,7 +2471,7 @@ msgstr "Шрифт"
|
||||
|
||||
#: ../build/src/ui_contextsettingspage.h:437
|
||||
msgid "Font for data and lyrics"
|
||||
msgstr "Шрифт для данных и текста песен"
|
||||
msgstr "Шрифт данных и текста песни"
|
||||
|
||||
#: ../build/src/ui_contextsettingspage.h:432
|
||||
msgid "Font for headline"
|
||||
@@ -3634,8 +3634,8 @@ msgstr "Выходные параметры"
|
||||
#: ../build/src/ui_collectionsettingspage.h:453
|
||||
msgid "Overwrite database playcount when songs are re-read from disk"
|
||||
msgstr ""
|
||||
"Перезаписать счётчики воспроизведения базы данных при повторном чтении песен "
|
||||
"с диска"
|
||||
"Обновлять счётчик прослушивания базы данных при повторном чтении песен с "
|
||||
"диска"
|
||||
|
||||
#: ../build/src/ui_collectionsettingspage.h:454
|
||||
msgid "Overwrite database rating when songs are re-read from disk"
|
||||
@@ -4035,7 +4035,7 @@ msgstr "Оценка"
|
||||
|
||||
#: ../build/src/ui_playlistsettingspage.h:193
|
||||
msgid "Re&lative"
|
||||
msgstr "&Относительно"
|
||||
msgstr "&Относительные"
|
||||
|
||||
#: covermanager/albumcovermanager.cpp:259
|
||||
msgid "Really cancel?"
|
||||
@@ -4785,7 +4785,7 @@ msgstr "Показать текст песни"
|
||||
|
||||
#: ../build/src/ui_behavioursettingspage.h:282
|
||||
msgid "Show song progress on system tray icon"
|
||||
msgstr "Показывать прогресс песни на значке в трее"
|
||||
msgstr "Показывать ход проигрывания песни на значке в трее"
|
||||
|
||||
#: context/contextview.cpp:263
|
||||
msgid "Show song technical data"
|
||||
@@ -5102,11 +5102,11 @@ msgstr "Метод адреса потока"
|
||||
|
||||
#: settings/settingsdialog.cpp:158
|
||||
msgid "Streaming"
|
||||
msgstr "Прослушивание потоков"
|
||||
msgstr "Проигрывание потоков"
|
||||
|
||||
#: ../build/src/ui_appearancesettingspage.h:543
|
||||
msgid "Stretch image to fill playlist"
|
||||
msgstr "Подгонять изображение к размеру плейлиста"
|
||||
msgstr "Подгонять к размеру плейлиста"
|
||||
|
||||
#: ../build/src/ui_appearancesettingspage.h:515
|
||||
#: ../build/src/ui_appearancesettingspage.h:516
|
||||
@@ -5702,7 +5702,7 @@ msgstr "Различные артисты"
|
||||
|
||||
#: ../build/src/ui_subsonicsettingspage.h:254
|
||||
msgid "Verify server certificate"
|
||||
msgstr "Верифицировать сертификат сервера"
|
||||
msgstr "Проверять сертификат сервера"
|
||||
|
||||
#: dialogs/about.cpp:107
|
||||
#, qt-format
|
||||
|
||||
Reference in New Issue
Block a user