Compare commits
10 Commits
2af5f34d62
...
804548ec04
Author | SHA1 | Date |
---|---|---|
smithjd15 | 804548ec04 | |
Clementine Buildbot | 2f3464403b | |
Clementine Buildbot | f76dbffa6b | |
James D. Smith | 351f0c2d75 | |
James D. Smith | ed5dbb436a | |
James D. Smith | f1c6377cfa | |
James D. Smith | edfc2666ab | |
James D. Smith | ae4a9e6bba | |
James D. Smith | ec103561c5 | |
James D. Smith | dc51176437 |
|
@ -120,26 +120,32 @@ return_song:
|
|||
|
||||
void ASXParser::Save(const SongList& songs, QIODevice* device, const QDir&,
|
||||
Playlist::Path path_type) const {
|
||||
QSettings s;
|
||||
s.beginGroup(Playlist::kSettingsGroup);
|
||||
bool writeMetadata = s.value(Playlist::kWriteMetadata, true).toBool();
|
||||
s.endGroup();
|
||||
|
||||
QXmlStreamWriter writer(device);
|
||||
writer.writeStartElement("asx");
|
||||
writer.writeAttribute("version", "3.0");
|
||||
writer.setAutoFormatting(true);
|
||||
writer.setAutoFormattingIndent(2);
|
||||
writer.writeStartDocument();
|
||||
{
|
||||
StreamElement asx("asx", &writer);
|
||||
writer.writeAttribute("version", "3.0");
|
||||
for (const Song& song : songs) {
|
||||
StreamElement entry("entry", &writer);
|
||||
if (!song.title().isEmpty() && writeMetadata) {
|
||||
writer.writeTextElement("title", song.title());
|
||||
}
|
||||
{
|
||||
StreamElement ref("ref", &writer);
|
||||
writer.writeAttribute("href", song.url().toString());
|
||||
}
|
||||
if (!song.artist().isEmpty()) {
|
||||
if (!song.artist().isEmpty() && writeMetadata) {
|
||||
writer.writeTextElement("author", song.artist());
|
||||
}
|
||||
}
|
||||
}
|
||||
writer.writeEndDocument();
|
||||
writer.writeEndElement();
|
||||
}
|
||||
|
||||
bool ASXParser::TryMagic(const QByteArray& data) const {
|
||||
|
|
|
@ -103,13 +103,15 @@ bool M3UParser::ParseMetadata(const QString& line,
|
|||
|
||||
void M3UParser::Save(const SongList& songs, QIODevice* device, const QDir& dir,
|
||||
Playlist::Path path_type) const {
|
||||
device->write("#EXTM3U\n");
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(Playlist::kSettingsGroup);
|
||||
bool writeMetadata = s.value(Playlist::kWriteMetadata, true).toBool();
|
||||
s.endGroup();
|
||||
|
||||
if (writeMetadata) {
|
||||
device->write("#EXTM3U\n");
|
||||
}
|
||||
|
||||
for (const Song& song : songs) {
|
||||
if (song.url().isEmpty()) {
|
||||
continue;
|
||||
|
|
|
@ -66,17 +66,26 @@ void PLSParser::Save(const SongList& songs, QIODevice* device, const QDir& dir,
|
|||
Playlist::Path path_type) const {
|
||||
QTextStream s(device);
|
||||
s << "[playlist]" << endl;
|
||||
s << "Version=2" << endl;
|
||||
s << "NumberOfEntries=" << songs.count() << endl;
|
||||
|
||||
QSettings settings;
|
||||
settings.beginGroup(Playlist::kSettingsGroup);
|
||||
bool writeMetadata = settings.value(Playlist::kWriteMetadata, true).toBool();
|
||||
settings.endGroup();
|
||||
|
||||
int n = 1;
|
||||
for (const Song& song : songs) {
|
||||
s << "File" << n << "=" << URLOrFilename(song.url(), dir, path_type)
|
||||
<< endl;
|
||||
if (writeMetadata) {
|
||||
s << "Title" << n << "=" << song.title() << endl;
|
||||
s << "Length" << n << "=" << song.length_nanosec() / kNsecPerSec << endl;
|
||||
}
|
||||
|
||||
++n;
|
||||
}
|
||||
|
||||
s << "NumberOfEntries=" << songs.count() << endl;
|
||||
s << "Version=2" << endl;
|
||||
}
|
||||
|
||||
bool PLSParser::TryMagic(const QByteArray& data) const {
|
||||
|
|
|
@ -79,14 +79,19 @@ void WplParser::ParseSeq(const QDir& dir, QXmlStreamReader* reader,
|
|||
|
||||
void WplParser::Save(const SongList& songs, QIODevice* device, const QDir& dir,
|
||||
Playlist::Path path_type) const {
|
||||
QSettings s;
|
||||
s.beginGroup(Playlist::kSettingsGroup);
|
||||
bool writeMetadata = s.value(Playlist::kWriteMetadata, true).toBool();
|
||||
s.endGroup();
|
||||
|
||||
QXmlStreamWriter writer(device);
|
||||
writer.writeProcessingInstruction("wpl", "version=\"1.0\"");
|
||||
writer.setAutoFormatting(true);
|
||||
writer.setAutoFormattingIndent(2);
|
||||
writer.writeProcessingInstruction("wpl", "version=\"1.0\"");
|
||||
|
||||
StreamElement smil("smil", &writer);
|
||||
|
||||
{
|
||||
if (writeMetadata) {
|
||||
StreamElement head("head", &writer);
|
||||
WriteMeta("Generator", "Clementine -- " CLEMENTINE_VERSION_DISPLAY,
|
||||
&writer);
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
# Martin Brodbeck <martin@brodbeck-online.de>, 2013
|
||||
# Martin Herkt <lachs0r@hong-mailing.de>, 2011
|
||||
# Martin Herkt <luck3r@phicode.de>, 2010
|
||||
# Michael Kohler, 2024
|
||||
# MCMicS, 2020
|
||||
# Mohamed Sakhri, 2013
|
||||
# Mohamed Sakhri, 2013
|
||||
|
@ -70,7 +71,7 @@ msgstr ""
|
|||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-04-09 10:24+0000\n"
|
||||
"PO-Revision-Date: 2011-10-27 18:53+0000\n"
|
||||
"Last-Translator: 6543 <6543@obermui.de>, 2020\n"
|
||||
"Last-Translator: Michael Kohler, 2024\n"
|
||||
"Language-Team: German (http://app.transifex.com/davidsansome/clementine/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -219,7 +220,7 @@ msgid "1 track"
|
|||
msgstr "1 Titel"
|
||||
|
||||
msgid "128K MP3"
|
||||
msgstr ""
|
||||
msgstr "128K MP3"
|
||||
|
||||
msgid "128k MP3"
|
||||
msgstr "128k MP3"
|
||||
|
@ -240,7 +241,7 @@ msgid "A Grooveshark Anywhere account is required."
|
|||
msgstr ""
|
||||
|
||||
msgid "A Spotify Premium account is required."
|
||||
msgstr ""
|
||||
msgstr "Spotify Premium Zugang wird benötigt."
|
||||
|
||||
msgid ""
|
||||
"A smart playlist is a dynamic list of songs that come from your library. "
|
||||
|
@ -293,7 +294,7 @@ msgid "Action"
|
|||
msgstr "Aktion"
|
||||
|
||||
msgid "Active/deactive Wiiremote"
|
||||
msgstr ""
|
||||
msgstr "Aktivieren/deaktivieren Wiiremote"
|
||||
|
||||
msgid "Add Stream"
|
||||
msgstr "Datenstrom hinzufügen"
|
||||
|
@ -326,7 +327,7 @@ msgid "Add folder..."
|
|||
msgstr "Ordner hinzufügen …"
|
||||
|
||||
msgid "Add media"
|
||||
msgstr ""
|
||||
msgstr "Medien hinzufügen ..."
|
||||
|
||||
msgid "Add new folder..."
|
||||
msgstr "Neuen Ordner hinzufügen …"
|
||||
|
@ -386,7 +387,7 @@ msgid "Add wiimotedev action"
|
|||
msgstr "Aktion für Wii-Fernbedienung hinzufügen"
|
||||
|
||||
msgid "Add..."
|
||||
msgstr ""
|
||||
msgstr "Hinzufügen …"
|
||||
|
||||
msgid "Added this month"
|
||||
msgstr "Diesen Monat hinzugefügt"
|
||||
|
@ -422,7 +423,7 @@ msgid "Album info on jamendo.com..."
|
|||
msgstr "Albuminformationen auf jamendo.com …"
|
||||
|
||||
msgid "Albumartist"
|
||||
msgstr ""
|
||||
msgstr "Albumkünstler"
|
||||
|
||||
msgid "Albums with covers"
|
||||
msgstr "Alben mit Titelbildern"
|
||||
|
@ -633,7 +634,7 @@ msgid "CUE sheet support"
|
|||
msgstr "Unterstützung von Cuesheets"
|
||||
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "Abbrechen"
|
||||
|
||||
msgid "Change cover art"
|
||||
msgstr "Titelbilder ändern"
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
# This file is distributed under the same license as the Clementine package.
|
||||
#
|
||||
# Translators:
|
||||
# Adolfo Jayme-Barrientos, 2014
|
||||
# Adolfo Jayme-Barrientos, 2018-2022
|
||||
# Adolfo Jayme-Barrientos, 2015-2016
|
||||
# Adolfo Jayme-Barrientos, 2014
|
||||
# Adolfo Jayme Barrientos, 2014
|
||||
# Adolfo Jayme Barrientos, 2018-2022
|
||||
# Adolfo Jayme Barrientos, 2015-2016
|
||||
# Adolfo Jayme Barrientos, 2014
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010
|
||||
msgid ""
|
||||
msgstr ""
|
||||
|
@ -14,7 +14,7 @@ msgstr ""
|
|||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-04-09 10:24+0000\n"
|
||||
"PO-Revision-Date: 2011-10-27 18:53+0000\n"
|
||||
"Last-Translator: Adolfo Jayme-Barrientos, 2018-2022\n"
|
||||
"Last-Translator: Adolfo Jayme Barrientos, 2018-2022\n"
|
||||
"Language-Team: Esperanto (http://app.transifex.com/davidsansome/clementine/language/eo/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
#
|
||||
# Translators:
|
||||
# Coroccotta <adiazubierna@gmail.com>, 2012
|
||||
# Adolfo Jayme-Barrientos, 2014
|
||||
# Adolfo Jayme-Barrientos, 2012-2013,2018,2021
|
||||
# Adolfo Jayme-Barrientos, 2016-2022
|
||||
# Adolfo Jayme-Barrientos, 2015-2016
|
||||
# Adolfo Jayme-Barrientos, 2013
|
||||
# Adolfo Jayme-Barrientos, 2014
|
||||
# Adolfo Jayme Barrientos, 2014
|
||||
# Adolfo Jayme Barrientos, 2012-2013,2018,2021
|
||||
# Adolfo Jayme Barrientos, 2016-2022
|
||||
# Adolfo Jayme Barrientos, 2015-2016
|
||||
# Adolfo Jayme Barrientos, 2013
|
||||
# Adolfo Jayme Barrientos, 2014
|
||||
# Adrián Prado Castro <adrian.prado@gmail.com>, 2013
|
||||
# Adrián Ramirez Escalante <buried.prophet@gmail.com>, 2012
|
||||
# Amaury Ortega <amauryocortega@gmail.com>, 2018
|
||||
|
|
Loading…
Reference in New Issue