diff --git a/3rdparty/taglib/CMakeLists.txt b/3rdparty/taglib/CMakeLists.txt
index 1ee3e8576..f5b566d7e 100644
--- a/3rdparty/taglib/CMakeLists.txt
+++ b/3rdparty/taglib/CMakeLists.txt
@@ -47,6 +47,8 @@ include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/s3m
${CMAKE_CURRENT_SOURCE_DIR}/it
${CMAKE_CURRENT_SOURCE_DIR}/xm
+ ${CMAKE_CURRENT_SOURCE_DIR}/dsf
+ ${CMAKE_CURRENT_SOURCE_DIR}/dsdiff
${CMAKE_SOURCE_DIR}/3rdparty
)
@@ -161,6 +163,11 @@ set(tag_HDRS
s3m/s3mproperties.h
xm/xmfile.h
xm/xmproperties.h
+ dsf/dsffile.h
+ dsf/dsfproperties.h
+ dsdiff/dsdifffile.h
+ dsdiff/dsdiffproperties.h
+ dsdiff/dsdiffdiintag.h
)
set(mpeg_SRCS
@@ -316,6 +323,17 @@ set(xm_SRCS
xm/xmproperties.cpp
)
+set(dsf_SRCS
+ dsf/dsffile.cpp
+ dsf/dsfproperties.cpp
+)
+
+set(dsdiff_SRCS
+ dsdiff/dsdifffile.cpp
+ dsdiff/dsdiffproperties.cpp
+ dsdiff/dsdiffdiintag.cpp
+)
+
set(toolkit_SRCS
toolkit/tstring.cpp
toolkit/tstringlist.cpp
@@ -347,7 +365,7 @@ set(tag_LIB_SRCS
${mpeg_SRCS} ${id3v1_SRCS} ${id3v2_SRCS} ${frames_SRCS} ${ogg_SRCS}
${vorbis_SRCS} ${oggflacs_SRCS} ${mpc_SRCS} ${ape_SRCS} ${toolkit_SRCS} ${flacs_SRCS}
${wavpack_SRCS} ${speex_SRCS} ${trueaudio_SRCS} ${riff_SRCS} ${aiff_SRCS} ${wav_SRCS}
- ${asf_SRCS} ${mp4_SRCS} ${mod_SRCS} ${s3m_SRCS} ${it_SRCS} ${xm_SRCS} ${opus_SRCS}
+ ${asf_SRCS} ${mp4_SRCS} ${mod_SRCS} ${s3m_SRCS} ${it_SRCS} ${xm_SRCS} ${opus_SRCS} ${dsf_SRCS} ${dsdiff_SRCS}
${zlib_SRCS}
tag.cpp
tagunion.cpp
diff --git a/3rdparty/taglib/audioproperties.cpp b/3rdparty/taglib/audioproperties.cpp
index c29051a64..94cddc72b 100644
--- a/3rdparty/taglib/audioproperties.cpp
+++ b/3rdparty/taglib/audioproperties.cpp
@@ -38,6 +38,8 @@
#include "vorbisproperties.h"
#include "wavproperties.h"
#include "wavpackproperties.h"
+#include "dsfproperties.h"
+#include "dsdiffproperties.h"
#include "audioproperties.h"
@@ -73,6 +75,10 @@ using namespace TagLib;
return dynamic_cast(this)->function_name(); \
else if(dynamic_cast(this)) \
return dynamic_cast(this)->function_name(); \
+ else if(dynamic_cast(this)) \
+ return dynamic_cast(this)->function_name(); \
+ else if(dynamic_cast(this)) \
+ return dynamic_cast(this)->function_name(); \
else \
return (default_value);
diff --git a/3rdparty/taglib/dsdiff/dsdiffdiintag.cpp b/3rdparty/taglib/dsdiff/dsdiffdiintag.cpp
new file mode 100644
index 000000000..c027410a6
--- /dev/null
+++ b/3rdparty/taglib/dsdiff/dsdiffdiintag.cpp
@@ -0,0 +1,162 @@
+/***************************************************************************
+ copyright : (C) 2016 by Damien Plisson, Audirvana
+ email : damien78@audirvana.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * This library is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License version *
+ * 2.1 as published by the Free Software Foundation. *
+ * *
+ * This library 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this library; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
+ * 02110-1301 USA *
+ * *
+ * Alternatively, this file is available under the Mozilla Public *
+ * License Version 1.1. You may obtain a copy of the License at *
+ * http://www.mozilla.org/MPL/ *
+ ***************************************************************************/
+
+#include "dsdiffdiintag.h"
+#include "tstringlist.h"
+#include "tpropertymap.h"
+
+using namespace TagLib;
+using namespace DSDIFF::DIIN;
+
+class DSDIFF::DIIN::Tag::TagPrivate
+{
+public:
+ TagPrivate()
+ {
+ }
+
+ String title;
+ String artist;
+};
+
+DSDIFF::DIIN::Tag::Tag() : TagLib::Tag()
+{
+ d = new TagPrivate;
+}
+
+DSDIFF::DIIN::Tag::~Tag()
+{
+ delete d;
+}
+
+String DSDIFF::DIIN::Tag::title() const
+{
+ return d->title;
+}
+
+String DSDIFF::DIIN::Tag::artist() const
+{
+ return d->artist;
+}
+
+String DSDIFF::DIIN::Tag::album() const
+{
+ return String();
+}
+
+String DSDIFF::DIIN::Tag::comment() const
+{
+ return String();
+}
+
+String DSDIFF::DIIN::Tag::genre() const
+{
+ return String();
+}
+
+unsigned int DSDIFF::DIIN::Tag::year() const
+{
+ return 0;
+}
+
+unsigned int DSDIFF::DIIN::Tag::track() const
+{
+ return 0;
+}
+
+void DSDIFF::DIIN::Tag::setTitle(const String &title)
+{
+ if(title.isNull() || title.isEmpty())
+ d->title = String();
+ else
+ d->title = title;
+}
+
+void DSDIFF::DIIN::Tag::setArtist(const String &artist)
+{
+ if(artist.isNull() || artist.isEmpty())
+ d->artist = String();
+ else
+ d->artist = artist;
+}
+
+void DSDIFF::DIIN::Tag::setAlbum(const String &)
+{
+}
+
+void DSDIFF::DIIN::Tag::setComment(const String &)
+{
+}
+
+void DSDIFF::DIIN::Tag::setGenre(const String &)
+{
+}
+
+void DSDIFF::DIIN::Tag::setYear(unsigned int)
+{
+}
+
+void DSDIFF::DIIN::Tag::setTrack(unsigned int)
+{
+}
+
+PropertyMap DSDIFF::DIIN::Tag::properties() const
+{
+ PropertyMap properties;
+ properties["TITLE"] = d->title;
+ properties["ARTIST"] = d->artist;
+ return properties;
+}
+
+PropertyMap DSDIFF::DIIN::Tag::setProperties(const PropertyMap &origProps)
+{
+ PropertyMap properties(origProps);
+ properties.removeEmpty();
+ StringList oneValueSet;
+
+ if(properties.contains("TITLE")) {
+ d->title = properties["TITLE"].front();
+ oneValueSet.append("TITLE");
+ } else
+ d->title = String();
+
+ if(properties.contains("ARTIST")) {
+ d->artist = properties["ARTIST"].front();
+ oneValueSet.append("ARTIST");
+ } else
+ d->artist = String();
+
+ // for each tag that has been set above, remove the first entry in the corresponding
+ // value list. The others will be returned as unsupported by this format.
+ for(StringList::Iterator it = oneValueSet.begin(); it != oneValueSet.end(); ++it) {
+ if(properties[*it].size() == 1)
+ properties.erase(*it);
+ else
+ properties[*it].erase(properties[*it].begin());
+ }
+
+ return properties;
+}
+
diff --git a/3rdparty/taglib/dsdiff/dsdiffdiintag.h b/3rdparty/taglib/dsdiff/dsdiffdiintag.h
new file mode 100644
index 000000000..0eff545e2
--- /dev/null
+++ b/3rdparty/taglib/dsdiff/dsdiffdiintag.h
@@ -0,0 +1,150 @@
+/***************************************************************************
+ copyright : (C) 2016 by Damien Plisson, Audirvana
+ email : damien78@audirvana.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * This library is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License version *
+ * 2.1 as published by the Free Software Foundation. *
+ * *
+ * This library 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this library; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
+ * 02110-1301 USA *
+ * *
+ * Alternatively, this file is available under the Mozilla Public *
+ * License Version 1.1. You may obtain a copy of the License at *
+ * http://www.mozilla.org/MPL/ *
+ ***************************************************************************/
+
+#ifndef TAGLIB_DSDIFFDIINTAG_H
+#define TAGLIB_DSDIFFDIINTAG_H
+
+#include "tag.h"
+
+namespace TagLib {
+
+ namespace DSDIFF {
+
+ namespace DIIN {
+
+ /*!
+ * Tags from the Edited Master Chunk Info
+ *
+ * Only Title and Artist tags are supported
+ */
+ class TAGLIB_EXPORT Tag : public TagLib::Tag
+ {
+ public:
+ Tag();
+ virtual ~Tag();
+
+ /*!
+ * Returns the track name; if no track name is present in the tag
+ * String() will be returned.
+ */
+ String title() const;
+
+ /*!
+ * Returns the artist name; if no artist name is present in the tag
+ * String() will be returned.
+ */
+ String artist() const;
+
+ /*!
+ * Not supported. Therefore always returns String().
+ */
+ String album() const;
+
+ /*!
+ * Not supported. Therefore always returns String().
+ */
+ String comment() const;
+
+ /*!
+ * Not supported. Therefore always returns String().
+ */
+ String genre() const;
+
+ /*!
+ * Not supported. Therefore always returns 0.
+ */
+ unsigned int year() const;
+
+ /*!
+ * Not supported. Therefore always returns 0.
+ */
+ unsigned int track() const;
+
+ /*!
+ * Sets the title to \a title. If \a title is String() then this
+ * value will be cleared.
+ */
+ void setTitle(const String &title);
+
+ /*!
+ * Sets the artist to \a artist. If \a artist is String() then this
+ * value will be cleared.
+ */
+ void setArtist(const String &artist);
+
+ /*!
+ * Not supported and therefore ignored.
+ */
+ void setAlbum(const String &album);
+
+ /*!
+ * Not supported and therefore ignored.
+ */
+ void setComment(const String &comment);
+
+ /*!
+ * Not supported and therefore ignored.
+ */
+ void setGenre(const String &genre);
+
+ /*!
+ * Not supported and therefore ignored.
+ */
+ void setYear(unsigned int year);
+
+ /*!
+ * Not supported and therefore ignored.
+ */
+ void setTrack(unsigned int track);
+
+ /*!
+ * Implements the unified property interface -- export function.
+ * Since the DIIN tag is very limited, the exported map is as well.
+ */
+ PropertyMap properties() const;
+
+ /*!
+ * Implements the unified property interface -- import function.
+ * Because of the limitations of the DIIN file tag, any tags besides
+ * TITLE and ARTIST, will be
+ * returned. Additionally, if the map contains tags with multiple values,
+ * all but the first will be contained in the returned map of unsupported
+ * properties.
+ */
+ PropertyMap setProperties(const PropertyMap &);
+
+ private:
+ Tag(const Tag &);
+ Tag &operator=(const Tag &);
+
+ class TagPrivate;
+ TagPrivate *d;
+ };
+ }
+ }
+}
+
+#endif
+
diff --git a/3rdparty/taglib/dsdiff/dsdifffile.cpp b/3rdparty/taglib/dsdiff/dsdifffile.cpp
new file mode 100644
index 000000000..73b2dbb25
--- /dev/null
+++ b/3rdparty/taglib/dsdiff/dsdifffile.cpp
@@ -0,0 +1,812 @@
+/***************************************************************************
+ copyright : (C) 2016 by Damien Plisson, Audirvana
+ email : damien78@audirvana.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * This library is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License version *
+ * 2.1 as published by the Free Software Foundation. *
+ * *
+ * This library 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this library; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
+ * 02110-1301 USA *
+ * *
+ * Alternatively, this file is available under the Mozilla Public *
+ * License Version 1.1. You may obtain a copy of the License at *
+ * http://www.mozilla.org/MPL/ *
+ ***************************************************************************/
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "tagunion.h"
+#include "dsdifffile.h"
+
+using namespace TagLib;
+
+struct Chunk64
+{
+ ByteVector name;
+ unsigned long long offset;
+ unsigned long long size;
+ char padding;
+};
+
+namespace
+{
+ enum {
+ ID3v2Index = 0,
+ DIINIndex = 1
+ };
+ enum {
+ PROPChunk = 0,
+ DIINChunk = 1
+ };
+}
+
+class DSDIFF::File::FilePrivate
+{
+public:
+ FilePrivate() :
+ endianness(BigEndian),
+ size(0),
+ isID3InPropChunk(false),
+ duplicateID3V2chunkIndex(-1),
+ properties(0),
+ id3v2TagChunkID("ID3 "),
+ hasID3v2(false),
+ hasDiin(false)
+ {
+ childChunkIndex[ID3v2Index] = -1;
+ childChunkIndex[DIINIndex] = -1;
+ }
+
+ ~FilePrivate()
+ {
+ delete properties;
+ }
+
+ Endianness endianness;
+ ByteVector type;
+ unsigned long long size;
+ ByteVector format;
+ std::vector chunks;
+ std::vector childChunks[2];
+ int childChunkIndex[2];
+ bool isID3InPropChunk; // Two possibilities can be found: ID3V2 chunk inside PROP chunk or at root level
+ int duplicateID3V2chunkIndex; // 2 ID3 chunks are present. This is then the index of the one in
+ // PROP chunk that will be removed upon next save to remove duplicates.
+
+ Properties *properties;
+
+ TagUnion tag;
+
+ ByteVector id3v2TagChunkID;
+
+ bool hasID3v2;
+ bool hasDiin;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// static members
+////////////////////////////////////////////////////////////////////////////////
+
+bool DSDIFF::File::isSupported(IOStream *stream)
+{
+ // A DSDIFF file has to start with "FRM8????????DSD ".
+
+ const ByteVector id = Utils::readHeader(stream, 16, false);
+ return (id.startsWith("FRM8") && id.containsAt("DSD ", 12));
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// public members
+////////////////////////////////////////////////////////////////////////////////
+
+DSDIFF::File::File(FileName file, bool readProperties,
+ Properties::ReadStyle propertiesStyle) : TagLib::File(file)
+{
+ d = new FilePrivate;
+ d->endianness = BigEndian;
+ if(isOpen())
+ read(readProperties, propertiesStyle);
+}
+
+DSDIFF::File::File(IOStream *stream, bool readProperties,
+ Properties::ReadStyle propertiesStyle) : TagLib::File(stream)
+{
+ d = new FilePrivate;
+ d->endianness = BigEndian;
+ if(isOpen())
+ read(readProperties, propertiesStyle);
+}
+
+DSDIFF::File::~File()
+{
+ delete d;
+}
+
+TagLib::Tag *DSDIFF::File::tag() const
+{
+ return &d->tag;
+}
+
+ID3v2::Tag *DSDIFF::File::ID3v2Tag() const
+{
+ return d->tag.access(ID3v2Index, false);
+}
+
+bool DSDIFF::File::hasID3v2Tag() const
+{
+ return d->hasID3v2;
+}
+
+DSDIFF::DIIN::Tag *DSDIFF::File::DIINTag() const
+{
+ return d->tag.access(DIINIndex, false);
+}
+
+bool DSDIFF::File::hasDIINTag() const
+{
+ return d->hasDiin;
+}
+
+PropertyMap DSDIFF::File::properties() const
+{
+ if(d->hasID3v2)
+ return d->tag.access(ID3v2Index, false)->properties();
+
+ return PropertyMap();
+}
+
+void DSDIFF::File::removeUnsupportedProperties(const StringList &unsupported)
+{
+ if(d->hasID3v2)
+ d->tag.access(ID3v2Index, false)->removeUnsupportedProperties(unsupported);
+
+ if(d->hasDiin)
+ d->tag.access(DIINIndex, false)->removeUnsupportedProperties(unsupported);
+}
+
+PropertyMap DSDIFF::File::setProperties(const PropertyMap &properties)
+{
+ return d->tag.access(ID3v2Index, true)->setProperties(properties);
+}
+
+DSDIFF::Properties *DSDIFF::File::audioProperties() const
+{
+ return d->properties;
+}
+
+bool DSDIFF::File::save()
+{
+ if(readOnly()) {
+ debug("DSDIFF::File::save() -- File is read only.");
+ return false;
+ }
+
+ if(!isValid()) {
+ debug("DSDIFF::File::save() -- Trying to save invalid file.");
+ return false;
+ }
+
+ // First: save ID3V2 chunk
+ ID3v2::Tag *id3v2Tag = d->tag.access(ID3v2Index, false);
+ if(d->isID3InPropChunk) {
+ if(id3v2Tag != NULL && !id3v2Tag->isEmpty()) {
+ setChildChunkData(d->id3v2TagChunkID, id3v2Tag->render(), PROPChunk);
+ d->hasID3v2 = true;
+ }
+ else {
+ // Empty tag: remove it
+ setChildChunkData(d->id3v2TagChunkID, ByteVector(), PROPChunk);
+ d->hasID3v2 = false;
+ }
+ }
+ else {
+ if(id3v2Tag != NULL && !id3v2Tag->isEmpty()) {
+ setRootChunkData(d->id3v2TagChunkID, id3v2Tag->render());
+ d->hasID3v2 = true;
+ }
+ else {
+ // Empty tag: remove it
+ setRootChunkData(d->id3v2TagChunkID, ByteVector());
+ d->hasID3v2 = false;
+ }
+ }
+
+ // Second: save the DIIN chunk
+ if(d->hasDiin) {
+ DSDIFF::DIIN::Tag *diinTag = d->tag.access(DIINIndex, false);
+
+ if(!diinTag->title().isNull() && !diinTag->title().isEmpty()) {
+ ByteVector diinTitle;
+ diinTitle.append(ByteVector::fromUInt(diinTag->title().size(), d->endianness == BigEndian));
+ diinTitle.append(ByteVector::fromCString(diinTag->title().toCString()));
+ setChildChunkData("DITI", diinTitle, DIINChunk);
+ }
+ else
+ setChildChunkData("DITI", ByteVector(), DIINChunk);
+
+ if(!diinTag->artist().isNull() && !diinTag->artist().isEmpty()) {
+ ByteVector diinArtist;
+ diinArtist.append(ByteVector::fromUInt(diinTag->artist().size(), d->endianness == BigEndian));
+ diinArtist.append(ByteVector::fromCString(diinTag->artist().toCString()));
+ setChildChunkData("DIAR", diinArtist, DIINChunk);
+ }
+ else
+ setChildChunkData("DIAR", ByteVector(), DIINChunk);
+ }
+
+ // Third: remove the duplicate ID3V2 chunk (inside PROP chunk) if any
+ if(d->duplicateID3V2chunkIndex>=0) {
+ setChildChunkData(d->duplicateID3V2chunkIndex, ByteVector(), PROPChunk);
+ d->duplicateID3V2chunkIndex = -1;
+ }
+
+ return true;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// private members
+////////////////////////////////////////////////////////////////////////////////
+
+void DSDIFF::File::setRootChunkData(unsigned int i, const ByteVector &data)
+{
+ if(data.isNull() || data.isEmpty()) {
+ // Null data: remove chunk
+ // Update global size
+ unsigned long long removedChunkTotalSize = d->chunks[i].size + d->chunks[i].padding + 12;
+ d->size -= removedChunkTotalSize;
+ insert(ByteVector::fromLongLong(d->size, d->endianness == BigEndian), 4, 8);
+
+ removeBlock(d->chunks[i].offset - 12, removedChunkTotalSize);
+
+ // Update the internal offsets
+ for(unsigned long r = i + 1; r < d->chunks.size(); r++)
+ d->chunks[r].offset = d->chunks[r - 1].offset + 12
+ + d->chunks[r - 1].size + d->chunks[r - 1].padding;
+
+ d->chunks.erase(d->chunks.begin() + i);
+ }
+ else {
+ // Non null data: update chunk
+ // First we update the global size
+ d->size += ((data.size() + 1) & ~1) - (d->chunks[i].size + d->chunks[i].padding);
+ insert(ByteVector::fromLongLong(d->size, d->endianness == BigEndian), 4, 8);
+
+ // Now update the specific chunk
+ writeChunk(d->chunks[i].name,
+ data,
+ d->chunks[i].offset - 12,
+ d->chunks[i].size + d->chunks[i].padding + 12);
+
+ d->chunks[i].size = data.size();
+ d->chunks[i].padding = (data.size() & 0x01) ? 1 : 0;
+
+ // Finally update the internal offsets
+ updateRootChunksStructure(i + 1);
+ }
+}
+
+void DSDIFF::File::setRootChunkData(const ByteVector &name, const ByteVector &data)
+{
+ if(d->chunks.size() == 0) {
+ debug("DSDIFF::File::setPropChunkData - No valid chunks found.");
+ return;
+ }
+
+ for(unsigned int i = 0; i < d->chunks.size(); i++) {
+ if(d->chunks[i].name == name) {
+ setRootChunkData(i, data);
+ return;
+ }
+ }
+
+ // Couldn't find an existing chunk, so let's create a new one.
+ unsigned int i = d->chunks.size() - 1;
+ unsigned long offset = d->chunks[i].offset + d->chunks[i].size + d->chunks[i].padding;
+
+ // First we update the global size
+ d->size += (offset & 1) + ((data.size() + 1) & ~1) + 12;
+ insert(ByteVector::fromLongLong(d->size, d->endianness == BigEndian), 4, 8);
+
+ // Now add the chunk to the file
+ writeChunk(name,
+ data,
+ offset,
+ std::max(0, length() - offset),
+ (offset & 1) ? 1 : 0);
+
+ Chunk64 chunk;
+ chunk.name = name;
+ chunk.size = data.size();
+ chunk.offset = offset + 12;
+ chunk.padding = (data.size() & 0x01) ? 1 : 0;
+
+ d->chunks.push_back(chunk);
+}
+
+void DSDIFF::File::setChildChunkData(unsigned int i,
+ const ByteVector &data,
+ unsigned int childChunkNum)
+{
+ std::vector &childChunks = d->childChunks[childChunkNum];
+
+ if(data.isNull() || data.isEmpty()) {
+ // Null data: remove chunk
+ // Update global size
+ unsigned long long removedChunkTotalSize = childChunks[i].size + childChunks[i].padding + 12;
+ d->size -= removedChunkTotalSize;
+ insert(ByteVector::fromLongLong(d->size, d->endianness == BigEndian), 4, 8);
+ // Update child chunk size
+ d->chunks[d->childChunkIndex[childChunkNum]].size -= removedChunkTotalSize;
+ insert(ByteVector::fromLongLong(d->chunks[d->childChunkIndex[childChunkNum]].size,
+ d->endianness == BigEndian),
+ d->chunks[d->childChunkIndex[childChunkNum]].offset - 8, 8);
+ // Remove the chunk
+ removeBlock(childChunks[i].offset - 12, removedChunkTotalSize);
+
+ // Update the internal offsets
+ // For child chunks
+ if((i + 1) < childChunks.size()) {
+ childChunks[i + 1].offset = childChunks[i].offset;
+ i++;
+ for(i++; i < childChunks.size(); i++)
+ childChunks[i].offset = childChunks[i - 1].offset + 12
+ + childChunks[i - 1].size + childChunks[i - 1].padding;
+ }
+
+ // And for root chunks
+ for(i = d->childChunkIndex[childChunkNum] + 1; i < d->chunks.size(); i++)
+ d->chunks[i].offset = d->chunks[i - 1].offset + 12
+ + d->chunks[i - 1].size + d->chunks[i - 1].padding;
+
+ childChunks.erase(childChunks.begin() + i);
+ }
+ else {
+ // Non null data: update chunk
+ // First we update the global size
+ d->size += ((data.size() + 1) & ~1) - (childChunks[i].size + childChunks[i].padding);
+ insert(ByteVector::fromLongLong(d->size, d->endianness == BigEndian), 4, 8);
+ // And the PROP chunk size
+ d->chunks[d->childChunkIndex[childChunkNum]].size += ((data.size() + 1) & ~1)
+ - (childChunks[i].size + childChunks[i].padding);
+ insert(ByteVector::fromLongLong(d->chunks[d->childChunkIndex[childChunkNum]].size,
+ d->endianness == BigEndian),
+ d->chunks[d->childChunkIndex[childChunkNum]].offset - 8, 8);
+
+ // Now update the specific chunk
+ writeChunk(childChunks[i].name,
+ data,
+ childChunks[i].offset - 12,
+ childChunks[i].size + childChunks[i].padding + 12);
+
+ childChunks[i].size = data.size();
+ childChunks[i].padding = (data.size() & 0x01) ? 1 : 0;
+
+ // Now update the internal offsets
+ // For child Chunks
+ for(i++; i < childChunks.size(); i++)
+ childChunks[i].offset = childChunks[i - 1].offset + 12
+ + childChunks[i - 1].size + childChunks[i - 1].padding;
+
+ // And for root chunks
+ updateRootChunksStructure(d->childChunkIndex[childChunkNum] + 1);
+ }
+}
+
+void DSDIFF::File::setChildChunkData(const ByteVector &name,
+ const ByteVector &data,
+ unsigned int childChunkNum)
+{
+ std::vector &childChunks = d->childChunks[childChunkNum];
+
+ if(childChunks.size() == 0) {
+ debug("DSDIFF::File::setPropChunkData - No valid chunks found.");
+ return;
+ }
+
+ for(unsigned int i = 0; i < childChunks.size(); i++) {
+ if(childChunks[i].name == name) {
+ setChildChunkData(i, data, childChunkNum);
+ return;
+ }
+ }
+
+ // Do not attempt to remove a non existing chunk
+ if(data.isNull() || data.isEmpty())
+ return;
+
+ // Couldn't find an existing chunk, so let's create a new one.
+ unsigned int i = childChunks.size() - 1;
+ unsigned long offset = childChunks[i].offset + childChunks[i].size + childChunks[i].padding;
+
+ // First we update the global size
+ d->size += (offset & 1) + ((data.size() + 1) & ~1) + 12;
+ insert(ByteVector::fromLongLong(d->size, d->endianness == BigEndian), 4, 8);
+ // And the child chunk size
+ d->chunks[d->childChunkIndex[childChunkNum]].size += (offset & 1)
+ + ((data.size() + 1) & ~1) + 12;
+ insert(ByteVector::fromLongLong(d->chunks[d->childChunkIndex[childChunkNum]].size,
+ d->endianness == BigEndian),
+ d->chunks[d->childChunkIndex[childChunkNum]].offset - 8, 8);
+
+ // Now add the chunk to the file
+ unsigned long long nextRootChunkIdx = length();
+ if((d->childChunkIndex[childChunkNum] + 1) < static_cast(d->chunks.size()))
+ nextRootChunkIdx = d->chunks[d->childChunkIndex[childChunkNum] + 1].offset - 12;
+
+ writeChunk(name, data, offset,
+ std::max(0, nextRootChunkIdx - offset),
+ (offset & 1) ? 1 : 0);
+
+ // For root chunks
+ updateRootChunksStructure(d->childChunkIndex[childChunkNum] + 1);
+
+ Chunk64 chunk;
+ chunk.name = name;
+ chunk.size = data.size();
+ chunk.offset = offset + 12;
+ chunk.padding = (data.size() & 0x01) ? 1 : 0;
+
+ childChunks.push_back(chunk);
+}
+
+static bool isValidChunkID(const ByteVector &name)
+{
+ if(name.size() != 4)
+ return false;
+
+ for(int i = 0; i < 4; i++) {
+ if(name[i] < 32 || name[i] > 127)
+ return false;
+ }
+
+ return true;
+}
+
+void DSDIFF::File::updateRootChunksStructure(unsigned int startingChunk)
+{
+ for(unsigned int i = startingChunk; i < d->chunks.size(); i++)
+ d->chunks[i].offset = d->chunks[i - 1].offset + 12
+ + d->chunks[i - 1].size + d->chunks[i - 1].padding;
+
+ // Update childchunks structure as well
+ if(d->childChunkIndex[PROPChunk] >= static_cast(startingChunk)) {
+ std::vector &childChunksToUpdate = d->childChunks[PROPChunk];
+ if(childChunksToUpdate.size() > 0) {
+ childChunksToUpdate[0].offset = d->chunks[d->childChunkIndex[PROPChunk]].offset + 12;
+ for(unsigned int i = 1; i < childChunksToUpdate.size(); i++)
+ childChunksToUpdate[i].offset = childChunksToUpdate[i - 1].offset + 12
+ + childChunksToUpdate[i - 1].size + childChunksToUpdate[i - 1].padding;
+ }
+ }
+ if(d->childChunkIndex[DIINChunk] >= static_cast(startingChunk)) {
+ std::vector &childChunksToUpdate = d->childChunks[DIINChunk];
+ if(childChunksToUpdate.size() > 0) {
+ childChunksToUpdate[0].offset = d->chunks[d->childChunkIndex[DIINChunk]].offset + 12;
+ for(unsigned int i = 1; i < childChunksToUpdate.size(); i++)
+ childChunksToUpdate[i].offset = childChunksToUpdate[i - 1].offset + 12
+ + childChunksToUpdate[i - 1].size + childChunksToUpdate[i - 1].padding;
+ }
+ }
+}
+
+void DSDIFF::File::read(bool readProperties, Properties::ReadStyle propertiesStyle)
+{
+ bool bigEndian = (d->endianness == BigEndian);
+
+ d->type = readBlock(4);
+ d->size = readBlock(8).toLongLong(bigEndian);
+ d->format = readBlock(4);
+
+ // + 12: chunk header at least, fix for additional junk bytes
+ while(tell() + 12 <= length()) {
+ ByteVector chunkName = readBlock(4);
+ unsigned long long chunkSize = readBlock(8).toLongLong(bigEndian);
+
+ if(!isValidChunkID(chunkName)) {
+ debug("DSDIFF::File::read() -- Chunk '" + chunkName + "' has invalid ID");
+ setValid(false);
+ break;
+ }
+
+ if(static_cast(tell()) + chunkSize > static_cast(length())) {
+ debug("DSDIFF::File::read() -- Chunk '" + chunkName
+ + "' has invalid size (larger than the file size)");
+ setValid(false);
+ break;
+ }
+
+ Chunk64 chunk;
+ chunk.name = chunkName;
+ chunk.size = chunkSize;
+ chunk.offset = tell();
+
+ seek(chunk.size, Current);
+
+ // Check padding
+ chunk.padding = 0;
+ long uPosNotPadded = tell();
+ if((uPosNotPadded & 0x01) != 0) {
+ ByteVector iByte = readBlock(1);
+ if((iByte.size() != 1) || (iByte[0] != 0))
+ // Not well formed, re-seek
+ seek(uPosNotPadded, Beginning);
+ else
+ chunk.padding = 1;
+ }
+ d->chunks.push_back(chunk);
+ }
+
+ unsigned long long lengthDSDSamplesTimeChannels = 0; // For DSD uncompressed
+ unsigned long long audioDataSizeinBytes = 0; // For computing bitrate
+ unsigned long dstNumFrames = 0; // For DST compressed frames
+ unsigned short dstFrameRate = 0; // For DST compressed frames
+
+ for(unsigned int i = 0; i < d->chunks.size(); i++) {
+ if(d->chunks[i].name == "DSD ") {
+ lengthDSDSamplesTimeChannels = d->chunks[i].size * 8;
+ audioDataSizeinBytes = d->chunks[i].size;
+ }
+ else if(d->chunks[i].name == "DST ") {
+ // Now decode the chunks inside the DST chunk to read the DST Frame Information one
+ long long dstChunkEnd = d->chunks[i].offset + d->chunks[i].size;
+ seek(d->chunks[i].offset);
+
+ audioDataSizeinBytes = d->chunks[i].size;
+
+ while(tell() + 12 <= dstChunkEnd) {
+ ByteVector dstChunkName = readBlock(4);
+ long long dstChunkSize = readBlock(8).toLongLong(bigEndian);
+
+ if(!isValidChunkID(dstChunkName)) {
+ debug("DSDIFF::File::read() -- DST Chunk '" + dstChunkName + "' has invalid ID");
+ setValid(false);
+ break;
+ }
+
+ if(static_cast(tell()) + dstChunkSize > dstChunkEnd) {
+ debug("DSDIFF::File::read() -- DST Chunk '" + dstChunkName
+ + "' has invalid size (larger than the DST chunk)");
+ setValid(false);
+ break;
+ }
+
+ if(dstChunkName == "FRTE") {
+ // Found the DST frame information chunk
+ dstNumFrames = readBlock(4).toUInt(bigEndian);
+ dstFrameRate = readBlock(2).toUShort(bigEndian);
+ break; // Found the wanted one, no need to look at the others
+ }
+
+ seek(dstChunkSize, Current);
+
+ // Check padding
+ long uPosNotPadded = tell();
+ if((uPosNotPadded & 0x01) != 0) {
+ ByteVector iByte = readBlock(1);
+ if((iByte.size() != 1) || (iByte[0] != 0))
+ // Not well formed, re-seek
+ seek(uPosNotPadded, Beginning);
+ }
+ }
+ }
+ else if(d->chunks[i].name == "PROP") {
+ d->childChunkIndex[PROPChunk] = i;
+ // Now decodes the chunks inside the PROP chunk
+ long long propChunkEnd = d->chunks[i].offset + d->chunks[i].size;
+ seek(d->chunks[i].offset + 4); // +4 to remove the 'SND ' marker at beginning of 'PROP' chunk
+ while(tell() + 12 <= propChunkEnd) {
+ ByteVector propChunkName = readBlock(4);
+ long long propChunkSize = readBlock(8).toLongLong(bigEndian);
+
+ if(!isValidChunkID(propChunkName)) {
+ debug("DSDIFF::File::read() -- PROP Chunk '" + propChunkName + "' has invalid ID");
+ setValid(false);
+ break;
+ }
+
+ if(static_cast(tell()) + propChunkSize > propChunkEnd) {
+ debug("DSDIFF::File::read() -- PROP Chunk '" + propChunkName
+ + "' has invalid size (larger than the PROP chunk)");
+ setValid(false);
+ break;
+ }
+
+ Chunk64 chunk;
+ chunk.name = propChunkName;
+ chunk.size = propChunkSize;
+ chunk.offset = tell();
+
+ seek(chunk.size, Current);
+
+ // Check padding
+ chunk.padding = 0;
+ long uPosNotPadded = tell();
+ if((uPosNotPadded & 0x01) != 0) {
+ ByteVector iByte = readBlock(1);
+ if((iByte.size() != 1) || (iByte[0] != 0))
+ // Not well formed, re-seek
+ seek(uPosNotPadded, Beginning);
+ else
+ chunk.padding = 1;
+ }
+ d->childChunks[PROPChunk].push_back(chunk);
+ }
+ }
+ else if(d->chunks[i].name == "DIIN") {
+ d->childChunkIndex[DIINChunk] = i;
+ d->hasDiin = true;
+ // Now decode the chunks inside the DIIN chunk
+ long long diinChunkEnd = d->chunks[i].offset + d->chunks[i].size;
+ seek(d->chunks[i].offset);
+
+ while(tell() + 12 <= diinChunkEnd) {
+ ByteVector diinChunkName = readBlock(4);
+ long long diinChunkSize = readBlock(8).toLongLong(bigEndian);
+
+ if(!isValidChunkID(diinChunkName)) {
+ debug("DSDIFF::File::read() -- DIIN Chunk '" + diinChunkName + "' has invalid ID");
+ setValid(false);
+ break;
+ }
+
+ if(static_cast(tell()) + diinChunkSize > diinChunkEnd) {
+ debug("DSDIFF::File::read() -- DIIN Chunk '" + diinChunkName
+ + "' has invalid size (larger than the DIIN chunk)");
+ setValid(false);
+ break;
+ }
+
+ Chunk64 chunk;
+ chunk.name = diinChunkName;
+ chunk.size = diinChunkSize;
+ chunk.offset = tell();
+
+ seek(chunk.size, Current);
+
+ // Check padding
+ chunk.padding = 0;
+ long uPosNotPadded = tell();
+ if((uPosNotPadded & 0x01) != 0) {
+ ByteVector iByte = readBlock(1);
+ if((iByte.size() != 1) || (iByte[0] != 0))
+ // Not well formed, re-seek
+ seek(uPosNotPadded, Beginning);
+ else
+ chunk.padding = 1;
+ }
+ d->childChunks[DIINChunk].push_back(chunk);
+ }
+ }
+ else if(d->chunks[i].name == "ID3 " || d->chunks[i].name == "id3 ") {
+ d->id3v2TagChunkID = d->chunks[i].name;
+ d->tag.set(ID3v2Index, new ID3v2::Tag(this, d->chunks[i].offset));
+ d->isID3InPropChunk = false;
+ d->hasID3v2 = true;
+ }
+ }
+
+ if(!isValid())
+ return;
+
+ if(d->childChunkIndex[PROPChunk] < 0) {
+ debug("DSDIFF::File::read() -- no PROP chunk found");
+ setValid(false);
+ return;
+ }
+
+ // Read properties
+
+ unsigned int sampleRate=0;
+ unsigned short channels=0;
+
+ for(unsigned int i = 0; i < d->childChunks[PROPChunk].size(); i++) {
+ if(d->childChunks[PROPChunk][i].name == "ID3 " || d->childChunks[PROPChunk][i].name == "id3 ") {
+ if(d->hasID3v2) {
+ d->duplicateID3V2chunkIndex = i;
+ continue; // ID3V2 tag has already been found at root level
+ }
+ d->id3v2TagChunkID = d->childChunks[PROPChunk][i].name;
+ d->tag.set(ID3v2Index, new ID3v2::Tag(this, d->childChunks[PROPChunk][i].offset));
+ d->isID3InPropChunk = true;
+ d->hasID3v2 = true;
+ }
+ else if(d->childChunks[PROPChunk][i].name == "FS ") {
+ // Sample rate
+ seek(d->childChunks[PROPChunk][i].offset);
+ sampleRate = readBlock(4).toUInt(0, 4, bigEndian);
+ }
+ else if(d->childChunks[PROPChunk][i].name == "CHNL") {
+ // Channels
+ seek(d->childChunks[PROPChunk][i].offset);
+ channels = readBlock(2).toShort(0, bigEndian);
+ }
+ }
+
+ // Read title & artist from DIIN chunk
+ d->tag.access(DIINIndex, true);
+
+ if(d->hasDiin) {
+ for(unsigned int i = 0; i < d->childChunks[DIINChunk].size(); i++) {
+ if(d->childChunks[DIINChunk][i].name == "DITI") {
+ seek(d->childChunks[DIINChunk][i].offset);
+ unsigned int titleStrLength = readBlock(4).toUInt(0, 4, bigEndian);
+ if(titleStrLength <= d->childChunks[DIINChunk][i].size) {
+ ByteVector titleStr = readBlock(titleStrLength);
+ d->tag.access(DIINIndex, false)->setTitle(titleStr);
+ }
+ }
+ else if(d->childChunks[DIINChunk][i].name == "DIAR") {
+ seek(d->childChunks[DIINChunk][i].offset);
+ unsigned int artistStrLength = readBlock(4).toUInt(0, 4, bigEndian);
+ if(artistStrLength <= d->childChunks[DIINChunk][i].size) {
+ ByteVector artistStr = readBlock(artistStrLength);
+ d->tag.access(DIINIndex, false)->setArtist(artistStr);
+ }
+ }
+ }
+ }
+
+ if(readProperties) {
+ if(lengthDSDSamplesTimeChannels == 0) {
+ // DST compressed signal : need to compute length of DSD uncompressed frames
+ if(dstFrameRate > 0)
+ lengthDSDSamplesTimeChannels = (unsigned long long)dstNumFrames
+ * (unsigned long long)sampleRate / (unsigned long long)dstFrameRate;
+ else
+ lengthDSDSamplesTimeChannels = 0;
+ }
+ else {
+ // In DSD uncompressed files, the read number of samples is the total for each channel
+ if(channels > 0)
+ lengthDSDSamplesTimeChannels /= channels;
+ }
+ int bitrate = 0;
+ if(lengthDSDSamplesTimeChannels > 0)
+ bitrate = (audioDataSizeinBytes*8*sampleRate) / lengthDSDSamplesTimeChannels / 1000;
+
+ d->properties = new Properties(sampleRate,
+ channels,
+ lengthDSDSamplesTimeChannels,
+ bitrate,
+ propertiesStyle);
+ }
+
+ if(!ID3v2Tag()) {
+ d->tag.access(ID3v2Index, true);
+ d->isID3InPropChunk = false; // By default, ID3 chunk is at root level
+ d->hasID3v2 = false;
+ }
+}
+
+void DSDIFF::File::writeChunk(const ByteVector &name, const ByteVector &data,
+ unsigned long long offset, unsigned long replace,
+ unsigned int leadingPadding)
+{
+ ByteVector combined;
+ if(leadingPadding)
+ combined.append(ByteVector(leadingPadding, '\x00'));
+
+ combined.append(name);
+ combined.append(ByteVector::fromLongLong(data.size(), d->endianness == BigEndian));
+ combined.append(data);
+ if((data.size() & 0x01) != 0)
+ combined.append('\x00');
+
+ insert(combined, offset, replace);
+}
+
diff --git a/3rdparty/taglib/dsdiff/dsdifffile.h b/3rdparty/taglib/dsdiff/dsdifffile.h
new file mode 100644
index 000000000..8b8887442
--- /dev/null
+++ b/3rdparty/taglib/dsdiff/dsdifffile.h
@@ -0,0 +1,260 @@
+/***************************************************************************
+ copyright : (C) 2016 by Damien Plisson, Audirvana
+ email : damien78@audirvana.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * This library is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License version *
+ * 2.1 as published by the Free Software Foundation. *
+ * *
+ * This library 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this library; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
+ * 02110-1301 USA *
+ * *
+ * Alternatively, this file is available under the Mozilla Public *
+ * License Version 1.1. You may obtain a copy of the License at *
+ * http://www.mozilla.org/MPL/ *
+ ***************************************************************************/
+
+#ifndef TAGLIB_DSDIFFFILE_H
+#define TAGLIB_DSDIFFFILE_H
+
+#include "rifffile.h"
+#include "id3v2tag.h"
+#include "dsdiffproperties.h"
+#include "dsdiffdiintag.h"
+
+namespace TagLib {
+
+ //! An implementation of DSDIFF metadata
+
+ /*!
+ * This is implementation of DSDIFF metadata.
+ *
+ * This supports an ID3v2 tag as well as reading stream from the ID3 RIFF
+ * chunk as well as properties from the file.
+ * Description of the DSDIFF format is available
+ * at http://dsd-guide.com/sites/default/files/white-papers/DSDIFF_1.5_Spec.pdf
+ * DSDIFF standard does not explictly specify the ID3V2 chunk
+ * It can be found at the root level, but also sometimes inside the PROP chunk
+ * In addition, title and artist info are stored as part of the standard
+ */
+
+ namespace DSDIFF {
+
+ //! An implementation of TagLib::File with DSDIFF specific methods
+
+ /*!
+ * This implements and provides an interface for DSDIFF files to the
+ * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
+ * the abstract TagLib::File API as well as providing some additional
+ * information specific to DSDIFF files.
+ */
+
+ class TAGLIB_EXPORT File : public TagLib::File
+ {
+ public:
+ /*!
+ * Constructs an DSDIFF file from \a file. If \a readProperties is true
+ * the file's audio properties will also be read.
+ *
+ * \note In the current implementation, \a propertiesStyle is ignored.
+ */
+ File(FileName file, bool readProperties = true,
+ Properties::ReadStyle propertiesStyle = Properties::Average);
+
+ /*!
+ * Constructs an DSDIFF file from \a stream. If \a readProperties is true
+ * the file's audio properties will also be read.
+ *
+ * \note TagLib will *not* take ownership of the stream, the caller is
+ * responsible for deleting it after the File object.
+ *
+ * \note In the current implementation, \a propertiesStyle is ignored.
+ */
+ File(IOStream *stream, bool readProperties = true,
+ Properties::ReadStyle propertiesStyle = Properties::Average);
+
+ /*!
+ * Destroys this instance of the File.
+ */
+ virtual ~File();
+
+ /*!
+ * Returns a pointer to a tag that is the union of the ID3v2 and DIIN
+ * tags. The ID3v2 tag is given priority in reading the information -- if
+ * requested information exists in both the ID3v2 tag and the ID3v1 tag,
+ * the information from the ID3v2 tag will be returned.
+ *
+ * If you would like more granular control over the content of the tags,
+ * with the concession of generality, use the tag-type specific calls.
+ *
+ * \note As this tag is not implemented as an ID3v2 tag or a DIIN tag,
+ * but a union of the two this pointer may not be cast to the specific
+ * tag types.
+ *
+ * \see ID3v2Tag()
+ * \see DIINTag()
+ */
+ virtual Tag *tag() const;
+
+ /*!
+ * Returns the ID3V2 Tag for this file.
+ *
+ * \note This always returns a valid pointer regardless of whether or not
+ * the file on disk has an ID3v2 tag. Use hasID3v2Tag() to check if the
+ * file on disk actually has an ID3v2 tag.
+ *
+ * \see hasID3v2Tag()
+ */
+ virtual ID3v2::Tag *ID3v2Tag() const;
+
+ /*!
+ * Returns the DSDIFF DIIN Tag for this file
+ *
+ */
+ DSDIFF::DIIN::Tag *DIINTag() const;
+
+ /*!
+ * Implements the unified property interface -- export function.
+ * This method forwards to ID3v2::Tag::properties().
+ */
+ PropertyMap properties() const;
+
+ void removeUnsupportedProperties(const StringList &properties);
+
+ /*!
+ * Implements the unified property interface -- import function.
+ * This method forwards to ID3v2::Tag::setProperties().
+ */
+ PropertyMap setProperties(const PropertyMap &);
+
+ /*!
+ * Returns the AIFF::Properties for this file. If no audio properties
+ * were read then this will return a null pointer.
+ */
+ virtual Properties *audioProperties() const;
+
+ /*!
+ * Save the file. If at least one tag -- ID3v1 or DIIN -- exists this
+ * will duplicate its content into the other tag. This returns true
+ * if saving was successful.
+ *
+ * If neither exists or if both tags are empty, this will strip the tags
+ * from the file.
+ *
+ * This is the same as calling save(AllTags);
+ *
+ * If you would like more granular control over the content of the tags,
+ * with the concession of generality, use paramaterized save call below.
+ *
+ * \see save(int tags)
+ */
+ virtual bool save();
+
+ /*!
+ * Save the file. This will attempt to save all of the tag types that are
+ * specified by OR-ing together TagTypes values. The save() method above
+ * uses AllTags. This returns true if saving was successful.
+ *
+ * This strips all tags not included in the mask, but does not modify them
+ * in memory, so later calls to save() which make use of these tags will
+ * remain valid. This also strips empty tags.
+ */
+ bool save(int tags);
+
+ /*!
+ * Returns whether or not the file on disk actually has an ID3v2 tag.
+ *
+ * \see ID3v2Tag()
+ */
+ bool hasID3v2Tag() const;
+
+ /*!
+ * Returns whether or not the file on disk actually has the DSDIFF
+ * Title & Artist tag.
+ *
+ * \see DIINTag()
+ */
+ bool hasDIINTag() const;
+
+ /*!
+ * Returns whether or not the given \a stream can be opened as a DSDIFF
+ * file.
+ *
+ * \note This method is designed to do a quick check. The result may
+ * not necessarily be correct.
+ */
+ static bool isSupported(IOStream *stream);
+
+ protected:
+ enum Endianness { BigEndian, LittleEndian };
+
+ File(FileName file, Endianness endianness);
+ File(IOStream *stream, Endianness endianness);
+
+ private:
+ File(const File &);
+ File &operator=(const File &);
+
+ /*!
+ * Sets the data for the the specified chunk at root level to \a data.
+ *
+ * \warning This will update the file immediately.
+ */
+ void setRootChunkData(unsigned int i, const ByteVector &data);
+
+ /*!
+ * Sets the data for the root-level chunk \a name to \a data.
+ * If a root-level chunk with the given name already exists
+ * it will be overwritten, otherwise it will be
+ * created after the existing chunks.
+ *
+ * \warning This will update the file immediately.
+ */
+ void setRootChunkData(const ByteVector &name, const ByteVector &data);
+
+ /*!
+ * Sets the data for the the specified child chunk to \a data.
+ *
+ * If data is null, then remove the chunk
+ *
+ * \warning This will update the file immediately.
+ */
+ void setChildChunkData(unsigned int i, const ByteVector &data,
+ unsigned int childChunkNum);
+
+ /*!
+ * Sets the data for the child chunk \a name to \a data. If a chunk with
+ * the given name already exists it will be overwritten, otherwise it will
+ * be created after the existing chunks inside child chunk.
+ *
+ * If data is null, then remove the chunks with \a name name
+ *
+ * \warning This will update the file immediately.
+ */
+ void setChildChunkData(const ByteVector &name, const ByteVector &data,
+ unsigned int childChunkNum);
+
+ void updateRootChunksStructure(unsigned int startingChunk);
+
+ void read(bool readProperties, Properties::ReadStyle propertiesStyle);
+ void writeChunk(const ByteVector &name, const ByteVector &data,
+ unsigned long long offset, unsigned long replace = 0,
+ unsigned int leadingPadding = 0);
+
+ class FilePrivate;
+ FilePrivate *d;
+ };
+ }
+}
+
+#endif
+
diff --git a/3rdparty/taglib/dsdiff/dsdiffproperties.cpp b/3rdparty/taglib/dsdiff/dsdiffproperties.cpp
new file mode 100644
index 000000000..b8d362cc0
--- /dev/null
+++ b/3rdparty/taglib/dsdiff/dsdiffproperties.cpp
@@ -0,0 +1,120 @@
+/***************************************************************************
+ copyright : (C) 2016 by Damien Plisson, Audirvana
+ email : damien78@audirvana.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * This library is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License version *
+ * 2.1 as published by the Free Software Foundation. *
+ * *
+ * This library 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this library; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
+ * 02110-1301 USA *
+ * *
+ * Alternatively, this file is available under the Mozilla Public *
+ * License Version 1.1. You may obtain a copy of the License at *
+ * http://www.mozilla.org/MPL/ *
+ ***************************************************************************/
+
+#include
+#include
+
+#include "dsdiffproperties.h"
+
+using namespace TagLib;
+
+class DSDIFF::Properties::PropertiesPrivate
+{
+public:
+ PropertiesPrivate() :
+ length(0),
+ bitrate(0),
+ sampleRate(0),
+ channels(0),
+ sampleWidth(0),
+ sampleCount(0)
+ {
+ }
+
+ int length;
+ int bitrate;
+ int sampleRate;
+ int channels;
+ int sampleWidth;
+ unsigned long long sampleCount;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// public members
+////////////////////////////////////////////////////////////////////////////////
+
+DSDIFF::Properties::Properties(const unsigned int sampleRate,
+ const unsigned short channels,
+ const unsigned long long samplesCount,
+ const int bitrate,
+ ReadStyle style) : AudioProperties(style)
+{
+ d = new PropertiesPrivate;
+
+ d->channels = channels;
+ d->sampleCount = samplesCount;
+ d->sampleWidth = 1;
+ d->sampleRate = sampleRate;
+ d->bitrate = bitrate;
+ d->length = d->sampleRate > 0
+ ? static_cast((d->sampleCount * 1000.0) / d->sampleRate + 0.5)
+ : 0;
+}
+
+DSDIFF::Properties::~Properties()
+{
+ delete d;
+}
+
+int DSDIFF::Properties::length() const
+{
+ return lengthInSeconds();
+}
+
+int DSDIFF::Properties::lengthInSeconds() const
+{
+ return d->length / 1000;
+}
+
+int DSDIFF::Properties::lengthInMilliseconds() const
+{
+ return d->length;
+}
+
+int DSDIFF::Properties::bitrate() const
+{
+ return d->bitrate;
+}
+
+int DSDIFF::Properties::sampleRate() const
+{
+ return d->sampleRate;
+}
+
+int DSDIFF::Properties::channels() const
+{
+ return d->channels;
+}
+
+int DSDIFF::Properties::bitsPerSample() const
+{
+ return d->sampleWidth;
+}
+
+long long DSDIFF::Properties::sampleCount() const
+{
+ return d->sampleCount;
+}
+
diff --git a/3rdparty/taglib/dsdiff/dsdiffproperties.h b/3rdparty/taglib/dsdiff/dsdiffproperties.h
new file mode 100644
index 000000000..6aff03982
--- /dev/null
+++ b/3rdparty/taglib/dsdiff/dsdiffproperties.h
@@ -0,0 +1,83 @@
+/***************************************************************************
+ copyright : (C) 2016 by Damien Plisson, Audirvana
+ email : damien78@audirvana.com
+***************************************************************************/
+
+/***************************************************************************
+ * This library is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License version *
+ * 2.1 as published by the Free Software Foundation. *
+ * *
+ * This library 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this library; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
+ * 02110-1301 USA *
+ * *
+ * Alternatively, this file is available under the Mozilla Public *
+ * License Version 1.1. You may obtain a copy of the License at *
+ * http://www.mozilla.org/MPL/ *
+ ***************************************************************************/
+
+#ifndef TAGLIB_DSDIFFPROPERTIES_H
+#define TAGLIB_DSDIFFPROPERTIES_H
+
+#include "audioproperties.h"
+
+namespace TagLib {
+
+ namespace DSDIFF {
+
+ class File;
+
+ //! An implementation of audio property reading for DSDIFF
+
+ /*!
+ * This reads the data from an DSDIFF stream found in the AudioProperties
+ * API.
+ */
+
+ class TAGLIB_EXPORT Properties : public AudioProperties
+ {
+ public:
+ /*!
+ * Create an instance of DSDIFF::Properties with the data read from the
+ * ByteVector \a data.
+ */
+ Properties(const unsigned int sampleRate, const unsigned short channels,
+ const unsigned long long samplesCount, const int bitrate,
+ ReadStyle style);
+
+ /*!
+ * Destroys this DSDIFF::Properties instance.
+ */
+ virtual ~Properties();
+
+ // Reimplementations.
+
+ virtual int length() const;
+ virtual int lengthInSeconds() const;
+ virtual int lengthInMilliseconds() const;
+ virtual int bitrate() const;
+ virtual int sampleRate() const;
+ virtual int channels() const;
+
+ int bitsPerSample() const;
+ long long sampleCount() const;
+
+ private:
+ Properties(const Properties &);
+ Properties &operator=(const Properties &);
+
+ class PropertiesPrivate;
+ PropertiesPrivate *d;
+ };
+ }
+}
+
+#endif
+
diff --git a/3rdparty/taglib/dsf/dsffile.cpp b/3rdparty/taglib/dsf/dsffile.cpp
new file mode 100644
index 000000000..1b2c24031
--- /dev/null
+++ b/3rdparty/taglib/dsf/dsffile.cpp
@@ -0,0 +1,241 @@
+/***************************************************************************
+ copyright : (C) 2013 - 2018 by Stephen F. Booth
+ email : me@sbooth.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * This library is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License version *
+ * 2.1 as published by the Free Software Foundation. *
+ * *
+ * This library 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this library; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
+ * 02110-1301 USA *
+ * *
+ * Alternatively, this file is available under the Mozilla Public *
+ * License Version 1.1. You may obtain a copy of the License at *
+ * http://www.mozilla.org/MPL/ *
+ ***************************************************************************/
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "dsffile.h"
+
+using namespace TagLib;
+
+// The DSF specification is located at http://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdf
+
+class DSF::File::FilePrivate
+{
+public:
+ FilePrivate() :
+ properties(0),
+ tag(0)
+ {
+ }
+
+ ~FilePrivate()
+ {
+ delete properties;
+ delete tag;
+ }
+
+ long long fileSize;
+ long long metadataOffset;
+ Properties *properties;
+ ID3v2::Tag *tag;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// static members
+////////////////////////////////////////////////////////////////////////////////
+
+bool DSF::File::isSupported(IOStream *stream)
+{
+ // A DSF file has to start with "DSD "
+ const ByteVector id = Utils::readHeader(stream, 4, false);
+ return id.startsWith("DSD ");
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// public members
+////////////////////////////////////////////////////////////////////////////////
+
+DSF::File::File(FileName file, bool readProperties,
+ Properties::ReadStyle propertiesStyle) :
+ TagLib::File(file),
+ d(new FilePrivate())
+{
+ if(isOpen())
+ read(readProperties, propertiesStyle);
+}
+
+DSF::File::File(IOStream *stream, bool readProperties,
+ Properties::ReadStyle propertiesStyle) :
+ TagLib::File(stream),
+ d(new FilePrivate())
+{
+ if(isOpen())
+ read(readProperties, propertiesStyle);
+}
+
+DSF::File::~File()
+{
+ delete d;
+}
+
+ID3v2::Tag *DSF::File::tag() const
+{
+ return d->tag;
+}
+
+PropertyMap DSF::File::properties() const
+{
+ return d->tag->properties();
+}
+
+PropertyMap DSF::File::setProperties(const PropertyMap &properties)
+{
+ return d->tag->setProperties(properties);
+}
+
+DSF::Properties *DSF::File::audioProperties() const
+{
+ return d->properties;
+}
+
+bool DSF::File::save()
+{
+ if(readOnly()) {
+ debug("DSF::File::save() -- File is read only.");
+ return false;
+ }
+
+ if(!isValid()) {
+ debug("DSF::File::save() -- Trying to save invalid file.");
+ return false;
+ }
+
+ // Three things must be updated: the file size, the tag data, and the metadata offset
+
+ if(d->tag->isEmpty()) {
+ long long newFileSize = d->metadataOffset ? d->metadataOffset : d->fileSize;
+
+ // Update the file size
+ if(d->fileSize != newFileSize) {
+ insert(ByteVector::fromLongLong(newFileSize, false), 12, 8);
+ d->fileSize = newFileSize;
+ }
+
+ // Update the metadata offset to 0 since there is no longer a tag
+ if(d->metadataOffset) {
+ insert(ByteVector::fromLongLong(0ULL, false), 20, 8);
+ d->metadataOffset = 0;
+ }
+
+ // Delete the old tag
+ truncate(newFileSize);
+ }
+ else {
+ ByteVector tagData = d->tag->render();
+
+ long long newMetadataOffset = d->metadataOffset ? d->metadataOffset : d->fileSize;
+ long long newFileSize = newMetadataOffset + tagData.size();
+ long long oldTagSize = d->fileSize - newMetadataOffset;
+
+ // Update the file size
+ if(d->fileSize != newFileSize) {
+ insert(ByteVector::fromLongLong(newFileSize, false), 12, 8);
+ d->fileSize = newFileSize;
+ }
+
+ // Update the metadata offset
+ if(d->metadataOffset != newMetadataOffset) {
+ insert(ByteVector::fromLongLong(newMetadataOffset, false), 20, 8);
+ d->metadataOffset = newMetadataOffset;
+ }
+
+ // Delete the old tag and write the new one
+ insert(tagData, newMetadataOffset, static_cast(oldTagSize));
+ }
+
+ return true;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// private members
+////////////////////////////////////////////////////////////////////////////////
+
+
+void DSF::File::read(bool readProperties, Properties::ReadStyle propertiesStyle)
+{
+ // A DSF file consists of four chunks: DSD chunk, format chunk, data chunk, and metadata chunk
+ // The file format is not chunked in the sense of a RIFF File, though
+
+ // DSD chunk
+ ByteVector chunkName = readBlock(4);
+ if(chunkName != "DSD ") {
+ debug("DSF::File::read() -- Not a DSF file.");
+ setValid(false);
+ return;
+ }
+
+ long long chunkSize = readBlock(8).toLongLong(false);
+
+ // Integrity check
+ if(28 != chunkSize) {
+ debug("DSF::File::read() -- File is corrupted, wrong chunk size");
+ setValid(false);
+ return;
+ }
+
+ d->fileSize = readBlock(8).toLongLong(false);
+
+ // File is malformed or corrupted
+ if(d->fileSize != length()) {
+ debug("DSF::File::read() -- File is corrupted wrong length");
+ setValid(false);
+ return;
+ }
+
+ d->metadataOffset = readBlock(8).toLongLong(false);
+
+ // File is malformed or corrupted
+ if(d->metadataOffset > d->fileSize) {
+ debug("DSF::File::read() -- Invalid metadata offset.");
+ setValid(false);
+ return;
+ }
+
+ // Format chunk
+ chunkName = readBlock(4);
+ if(chunkName != "fmt ") {
+ debug("DSF::File::read() -- Missing 'fmt ' chunk.");
+ setValid(false);
+ return;
+ }
+
+ chunkSize = readBlock(8).toLongLong(false);
+
+ d->properties = new Properties(readBlock(chunkSize), propertiesStyle);
+
+ // Skip the data chunk
+
+ // A metadata offset of 0 indicates the absence of an ID3v2 tag
+ if(0 == d->metadataOffset)
+ d->tag = new ID3v2::Tag();
+ else
+ d->tag = new ID3v2::Tag(this, d->metadataOffset);
+}
+
diff --git a/3rdparty/taglib/dsf/dsffile.h b/3rdparty/taglib/dsf/dsffile.h
new file mode 100644
index 000000000..e75298d7c
--- /dev/null
+++ b/3rdparty/taglib/dsf/dsffile.h
@@ -0,0 +1,128 @@
+/***************************************************************************
+ copyright : (C) 2013 - 2018 by Stephen F. Booth
+ email : me@sbooth.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * This library is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License version *
+ * 2.1 as published by the Free Software Foundation. *
+ * *
+ * This library 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this library; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
+ * 02110-1301 USA *
+ * *
+ * Alternatively, this file is available under the Mozilla Public *
+ * License Version 1.1. You may obtain a copy of the License at *
+ * http://www.mozilla.org/MPL/ *
+ ***************************************************************************/
+
+#ifndef TAGLIB_DSFFILE_H
+#define TAGLIB_DSFFILE_H
+
+#include "tfile.h"
+#include "id3v2tag.h"
+#include "dsfproperties.h"
+
+namespace TagLib {
+
+ //! An implementation of DSF metadata
+
+ /*!
+ * This is implementation of DSF metadata.
+ *
+ * This supports an ID3v2 tag as well as properties from the file.
+ */
+
+ namespace DSF {
+
+ //! An implementation of TagLib::File with DSF specific methods
+
+ /*!
+ * This implements and provides an interface for DSF files to the
+ * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
+ * the abstract TagLib::File API as well as providing some additional
+ * information specific to DSF files.
+ */
+
+ class TAGLIB_EXPORT File : public TagLib::File
+ {
+ public:
+ /*!
+ * Contructs an DSF file from \a file. If \a readProperties is true the
+ * file's audio properties will also be read using \a propertiesStyle. If
+ * false, \a propertiesStyle is ignored.
+ */
+ File(FileName file, bool readProperties = true,
+ Properties::ReadStyle propertiesStyle = Properties::Average);
+
+ /*!
+ * Contructs an DSF file from \a file. If \a readProperties is true the
+ * file's audio properties will also be read using \a propertiesStyle. If
+ * false, \a propertiesStyle is ignored.
+ */
+ File(IOStream *stream, bool readProperties = true,
+ Properties::ReadStyle propertiesStyle = Properties::Average);
+
+ /*!
+ * Destroys this instance of the File.
+ */
+ virtual ~File();
+
+ /*!
+ * Returns the Tag for this file.
+ */
+ ID3v2::Tag *tag() const;
+
+ /*!
+ * Implements the unified property interface -- export function.
+ * This method forwards to ID3v2::Tag::properties().
+ */
+ PropertyMap properties() const;
+
+ /*!
+ * Implements the unified property interface -- import function.
+ * This method forwards to ID3v2::Tag::setProperties().
+ */
+ PropertyMap setProperties(const PropertyMap &);
+
+ /*!
+ * Returns the DSF::AudioProperties for this file. If no audio properties
+ * were read then this will return a null pointer.
+ */
+ virtual Properties *audioProperties() const;
+
+ /*!
+ * Saves the file.
+ */
+ virtual bool save();
+
+ /*!
+ * Returns whether or not the given \a stream can be opened as a DSF
+ * file.
+ *
+ * \note This method is designed to do a quick check. The result may
+ * not necessarily be correct.
+ */
+ static bool isSupported(IOStream *stream);
+
+ private:
+ File(const File &);
+ File &operator=(const File &);
+
+ void read(bool readProperties, Properties::ReadStyle propertiesStyle);
+
+ class FilePrivate;
+ FilePrivate *d;
+ };
+ }
+}
+
+#endif
+
diff --git a/3rdparty/taglib/dsf/dsfproperties.cpp b/3rdparty/taglib/dsf/dsfproperties.cpp
new file mode 100644
index 000000000..18511fa72
--- /dev/null
+++ b/3rdparty/taglib/dsf/dsfproperties.cpp
@@ -0,0 +1,161 @@
+/***************************************************************************
+ copyright : (C) 2013 by Stephen F. Booth
+ email : me@sbooth.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * This library is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License version *
+ * 2.1 as published by the Free Software Foundation. *
+ * *
+ * This library 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this library; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
+ * 02110-1301 USA *
+ * *
+ * Alternatively, this file is available under the Mozilla Public *
+ * License Version 1.1. You may obtain a copy of the License at *
+ * http://www.mozilla.org/MPL/ *
+ ***************************************************************************/
+
+#include
+#include
+
+#include "dsfproperties.h"
+
+using namespace TagLib;
+
+class DSF::Properties::PropertiesPrivate
+{
+public:
+ PropertiesPrivate() :
+ formatVersion(0),
+ formatID(0),
+ channelType(0),
+ channelNum(0),
+ samplingFrequency(0),
+ bitsPerSample(0),
+ sampleCount(0),
+ blockSizePerChannel(0),
+ bitrate(0),
+ length(0)
+ {
+ }
+
+ // Nomenclature is from DSF file format specification
+ unsigned int formatVersion;
+ unsigned int formatID;
+ unsigned int channelType;
+ unsigned int channelNum;
+ unsigned int samplingFrequency;
+ unsigned int bitsPerSample;
+ long long sampleCount;
+ unsigned int blockSizePerChannel;
+
+ // Computed
+ unsigned int bitrate;
+ unsigned int length;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// public members
+////////////////////////////////////////////////////////////////////////////////
+
+DSF::Properties::Properties(const ByteVector &data, ReadStyle style) : TagLib::AudioProperties(style)
+{
+ d = new PropertiesPrivate;
+ read(data);
+}
+
+DSF::Properties::~Properties()
+{
+ delete d;
+}
+
+int DSF::Properties::length() const
+{
+ return lengthInSeconds();
+}
+
+int DSF::Properties::lengthInSeconds() const
+{
+ return d->length / 1000;
+}
+
+int DSF::Properties::lengthInMilliseconds() const
+{
+ return d->length;
+}
+
+int DSF::Properties::bitrate() const
+{
+ return d->bitrate;
+}
+
+int DSF::Properties::sampleRate() const
+{
+ return d->samplingFrequency;
+}
+
+int DSF::Properties::channels() const
+{
+ return d->channelNum;
+}
+
+// DSF specific
+int DSF::Properties::formatVersion() const
+{
+ return d->formatVersion;
+}
+
+int DSF::Properties::formatID() const
+{
+ return d->formatID;
+}
+
+int DSF::Properties::channelType() const
+{
+ return d->channelType;
+}
+
+int DSF::Properties::bitsPerSample() const
+{
+ return d->bitsPerSample;
+}
+
+long long DSF::Properties::sampleCount() const
+{
+ return d->sampleCount;
+}
+
+int DSF::Properties::blockSizePerChannel() const
+{
+ return d->blockSizePerChannel;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// private members
+////////////////////////////////////////////////////////////////////////////////
+
+void DSF::Properties::read(const ByteVector &data)
+{
+ d->formatVersion = data.toUInt(0U,false);
+ d->formatID = data.toUInt(4U,false);
+ d->channelType = data.toUInt(8U,false);
+ d->channelNum = data.toUInt(12U,false);
+ d->samplingFrequency = data.toUInt(16U,false);
+ d->bitsPerSample = data.toUInt(20U,false);
+ d->sampleCount = data.toLongLong(24U,false);
+ d->blockSizePerChannel = data.toUInt(32U,false);
+
+ d->bitrate
+ = static_cast((d->samplingFrequency * d->bitsPerSample * d->channelNum) / 1000.0 + 0.5);
+ d->length
+ = d->samplingFrequency > 0 ? static_cast(d->sampleCount * 1000.0 / d->samplingFrequency + 0.5) : 0;
+}
+
diff --git a/3rdparty/taglib/dsf/dsfproperties.h b/3rdparty/taglib/dsf/dsfproperties.h
new file mode 100644
index 000000000..273a9f5ae
--- /dev/null
+++ b/3rdparty/taglib/dsf/dsfproperties.h
@@ -0,0 +1,92 @@
+/***************************************************************************
+ copyright : (C) 2013 by Stephen F. Booth
+ email : me@sbooth.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * This library is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License version *
+ * 2.1 as published by the Free Software Foundation. *
+ * *
+ * This library 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this library; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
+ * 02110-1301 USA *
+ * *
+ * Alternatively, this file is available under the Mozilla Public *
+ * License Version 1.1. You may obtain a copy of the License at *
+ * http://www.mozilla.org/MPL/ *
+ ***************************************************************************/
+
+#ifndef TAGLIB_DSFPROPERTIES_H
+#define TAGLIB_DSFPROPERTIES_H
+
+#include "audioproperties.h"
+
+namespace TagLib {
+
+ namespace DSF {
+
+ class File;
+
+ //! An implementation of audio property reading for DSF
+
+ /*!
+ * This reads the data from a DSF stream found in the AudioProperties
+ * API.
+ */
+
+ class TAGLIB_EXPORT Properties : public TagLib::AudioProperties
+ {
+ public:
+ /*!
+ * Create an instance of DSF::AudioProperties with the data read from the
+ * ByteVector \a data.
+ */
+ Properties(const ByteVector &data, ReadStyle style);
+
+ /*!
+ * Destroys this DSF::AudioProperties instance.
+ */
+ virtual ~Properties();
+
+ // Reimplementations.
+
+ virtual int length() const;
+ virtual int lengthInSeconds() const;
+ virtual int lengthInMilliseconds() const;
+ virtual int bitrate() const;
+ virtual int sampleRate() const;
+ virtual int channels() const;
+
+ int formatVersion() const;
+ int formatID() const;
+
+ /*!
+ * Channel type values: 1 = mono, 2 = stereo, 3 = 3 channels,
+ * 4 = quad, 5 = 4 channels, 6 = 5 channels, 7 = 5.1 channels
+ */
+ int channelType() const;
+ int bitsPerSample() const;
+ long long sampleCount() const;
+ int blockSizePerChannel() const;
+
+ private:
+ Properties(const Properties &);
+ Properties &operator=(const Properties &);
+
+ void read(const ByteVector &data);
+
+ class PropertiesPrivate;
+ PropertiesPrivate *d;
+ };
+ }
+}
+
+#endif
+
diff --git a/3rdparty/taglib/fileref.cpp b/3rdparty/taglib/fileref.cpp
index 935c371bd..5ec4dc06d 100644
--- a/3rdparty/taglib/fileref.cpp
+++ b/3rdparty/taglib/fileref.cpp
@@ -52,6 +52,8 @@
#include "s3mfile.h"
#include "itfile.h"
#include "xmfile.h"
+#include "dsffile.h"
+#include "dsdifffile.h"
using namespace TagLib;
@@ -135,6 +137,10 @@ namespace
return new IT::File(stream, readAudioProperties, audioPropertiesStyle);
if(ext == "XM")
return new XM::File(stream, readAudioProperties, audioPropertiesStyle);
+ if(ext == "DFF" || ext == "DSDIFF")
+ return new DSDIFF::File(stream, readAudioProperties, audioPropertiesStyle);
+ if(ext == "DSF")
+ return new DSF::File(stream, readAudioProperties, audioPropertiesStyle);
return 0;
}
@@ -174,6 +180,10 @@ namespace
file = new RIFF::WAV::File(stream, readAudioProperties, audioPropertiesStyle);
else if(APE::File::isSupported(stream))
file = new APE::File(stream, readAudioProperties, audioPropertiesStyle);
+ else if(DSDIFF::File::isSupported(stream))
+ file = new DSDIFF::File(stream, readAudioProperties, audioPropertiesStyle);
+ else if(DSF::File::isSupported(stream))
+ file = new DSF::File(stream, readAudioProperties, audioPropertiesStyle);
// isSupported() only does a quick check, so double check the file here.
@@ -255,6 +265,10 @@ namespace
return new IT::File(fileName, readAudioProperties, audioPropertiesStyle);
if(ext == "XM")
return new XM::File(fileName, readAudioProperties, audioPropertiesStyle);
+ if(ext == "DFF" || ext == "DSDIFF")
+ return new DSDIFF::File(fileName, readAudioProperties, audioPropertiesStyle);
+ if(ext == "DSF")
+ return new DSF::File(fileName, readAudioProperties, audioPropertiesStyle);
return 0;
}
@@ -387,6 +401,9 @@ StringList FileRef::defaultFileExtensions()
l.append("s3m");
l.append("it");
l.append("xm");
+ l.append("dsf");
+ l.append("dff");
+ l.append("dsdiff"); // alias for "dff"
return l;
}
diff --git a/3rdparty/taglib/mpeg/id3v2/frames/tableofcontentsframe.cpp b/3rdparty/taglib/mpeg/id3v2/frames/tableofcontentsframe.cpp
index ddd3b88c6..efe89d171 100644
--- a/3rdparty/taglib/mpeg/id3v2/frames/tableofcontentsframe.cpp
+++ b/3rdparty/taglib/mpeg/id3v2/frames/tableofcontentsframe.cpp
@@ -216,7 +216,23 @@ void TableOfContentsFrame::removeEmbeddedFrames(const ByteVector &id)
String TableOfContentsFrame::toString() const
{
- return String();
+ String s = String(d->elementID) +
+ ": top level: " + (d->isTopLevel ? "true" : "false") +
+ ", ordered: " + (d->isOrdered ? "true" : "false");
+
+ if(!d->childElements.isEmpty()) {
+ s+= ", chapters: [ " + String(d->childElements.toByteVector(", ")) + " ]";
+ }
+
+ if(!d->embeddedFrameList.isEmpty()) {
+ StringList frameIDs;
+ for(FrameList::ConstIterator it = d->embeddedFrameList.begin();
+ it != d->embeddedFrameList.end(); ++it)
+ frameIDs.append((*it)->frameID());
+ s += ", sub-frames: [ " + frameIDs.toString(", ") + " ]";
+ }
+
+ return s;
}
PropertyMap TableOfContentsFrame::asProperties() const
diff --git a/3rdparty/taglib/mpeg/id3v2/frames/textidentificationframe.cpp b/3rdparty/taglib/mpeg/id3v2/frames/textidentificationframe.cpp
index db9a177e5..61cf6ed8b 100644
--- a/3rdparty/taglib/mpeg/id3v2/frames/textidentificationframe.cpp
+++ b/3rdparty/taglib/mpeg/id3v2/frames/textidentificationframe.cpp
@@ -339,7 +339,13 @@ UserTextIdentificationFrame::UserTextIdentificationFrame(const String &descripti
String UserTextIdentificationFrame::toString() const
{
- return "[" + description() + "] " + fieldList().toString();
+ // first entry is the description itself, drop from values list
+ StringList l = fieldList();
+ for(StringList::Iterator it = l.begin(); it != l.end(); ++it) {
+ l.erase(it);
+ break;
+ }
+ return "[" + description() + "] " + l.toString();
}
String UserTextIdentificationFrame::description() const
diff --git a/3rdparty/taglib/ogg/flac/oggflacfile.cpp b/3rdparty/taglib/ogg/flac/oggflacfile.cpp
index 53d04508a..07ea9dccc 100644
--- a/3rdparty/taglib/ogg/flac/oggflacfile.cpp
+++ b/3rdparty/taglib/ogg/flac/oggflacfile.cpp
@@ -231,11 +231,21 @@ void Ogg::FLAC::File::scan()
if(!metadataHeader.startsWith("fLaC")) {
// FLAC 1.1.2+
+ // See https://xiph.org/flac/ogg_mapping.html for the header specification.
+ if(metadataHeader.size() < 13)
+ return;
+
+ if(metadataHeader[0] != 0x7f)
+ return;
+
if(metadataHeader.mid(1, 4) != "FLAC")
return;
- if(metadataHeader[5] != 1)
- return; // not version 1
+ if(metadataHeader[5] != 1 && metadataHeader[6] != 0)
+ return; // not version 1.0
+
+ if(metadataHeader.mid(9, 4) != "fLaC")
+ return;
metadataHeader = metadataHeader.mid(13);
}
diff --git a/3rdparty/taglib/toolkit/tfile.cpp b/3rdparty/taglib/toolkit/tfile.cpp
index aff1684d9..055b0d6d3 100644
--- a/3rdparty/taglib/toolkit/tfile.cpp
+++ b/3rdparty/taglib/toolkit/tfile.cpp
@@ -63,6 +63,8 @@
#include "itfile.h"
#include "xmfile.h"
#include "mp4file.h"
+#include "dsffile.h"
+#include "dsdifffile.h"
using namespace TagLib;
@@ -148,6 +150,10 @@ PropertyMap File::properties() const
return dynamic_cast(this)->properties();
if(dynamic_cast(this))
return dynamic_cast(this)->properties();
+ if(dynamic_cast(this))
+ return dynamic_cast(this)->properties();
+ if(dynamic_cast(this))
+ return dynamic_cast(this)->properties();
return tag()->properties();
}
@@ -177,6 +183,10 @@ void File::removeUnsupportedProperties(const StringList &properties)
dynamic_cast(this)->removeUnsupportedProperties(properties);
else if(dynamic_cast(this))
dynamic_cast(this)->removeUnsupportedProperties(properties);
+ else if(dynamic_cast(this))
+ dynamic_cast(this)->removeUnsupportedProperties(properties);
+ else if(dynamic_cast(this))
+ dynamic_cast(this)->removeUnsupportedProperties(properties);
else
tag()->removeUnsupportedProperties(properties);
}
@@ -219,6 +229,10 @@ PropertyMap File::setProperties(const PropertyMap &properties)
return dynamic_cast(this)->setProperties(properties);
else if(dynamic_cast(this))
return dynamic_cast(this)->setProperties(properties);
+ else if(dynamic_cast(this))
+ return dynamic_cast(this)->setProperties(properties);
+ else if(dynamic_cast(this))
+ return dynamic_cast(this)->setProperties(properties);
else
return tag()->setProperties(properties);
}
diff --git a/3rdparty/taglib/toolkit/tfilestream.cpp b/3rdparty/taglib/toolkit/tfilestream.cpp
index 17a09f3da..487df8e39 100644
--- a/3rdparty/taglib/toolkit/tfilestream.cpp
+++ b/3rdparty/taglib/toolkit/tfilestream.cpp
@@ -58,6 +58,11 @@ namespace
#endif
}
+ FileHandle openFile(const int fileDescriptor, bool readOnly)
+ {
+ return InvalidFileHandle;
+ }
+
void closeFile(FileHandle file)
{
CloseHandle(file);
@@ -98,6 +103,11 @@ namespace
return fopen(path, readOnly ? "rb" : "rb+");
}
+ FileHandle openFile(const int fileDescriptor, bool readOnly)
+ {
+ return fdopen(fileDescriptor, readOnly ? "rb" : "rb+");
+ }
+
void closeFile(FileHandle file)
{
fclose(file);
@@ -149,13 +159,28 @@ FileStream::FileStream(FileName fileName, bool openReadOnly)
d->file = openFile(fileName, true);
if(d->file == InvalidFileHandle)
- {
# ifdef _WIN32
debug("Could not open file " + fileName.toString());
# else
debug("Could not open file " + String(static_cast(d->name)));
# endif
- }
+}
+
+FileStream::FileStream(int fileDescriptor, bool openReadOnly)
+ : d(new FileStreamPrivate(""))
+{
+ // First try with read / write mode, if that fails, fall back to read only.
+
+ if(!openReadOnly)
+ d->file = openFile(fileDescriptor, false);
+
+ if(d->file != InvalidFileHandle)
+ d->readOnly = false;
+ else
+ d->file = openFile(fileDescriptor, true);
+
+ if(d->file == InvalidFileHandle)
+ debug("Could not open file using file descriptor");
}
FileStream::~FileStream()
@@ -255,8 +280,7 @@ void FileStream::insert(const ByteVector &data, unsigned long start, unsigned lo
ByteVector buffer = data;
ByteVector aboutToOverwrite(static_cast(bufferLength));
- while(true)
- {
+ while(true) {
// Seek to the current read position and read the data that we're about
// to overwrite. Appropriately increment the readPosition.
@@ -304,8 +328,7 @@ void FileStream::removeBlock(unsigned long start, unsigned long length)
ByteVector buffer(static_cast(bufferLength));
- for(unsigned int bytesRead = -1; bytesRead != 0;)
- {
+ for(unsigned int bytesRead = -1; bytesRead != 0;) {
seek(readPosition);
bytesRead = static_cast(readFile(d->file, buffer));
readPosition += bytesRead;
@@ -401,7 +424,8 @@ long FileStream::tell() const
const LARGE_INTEGER zero = {};
LARGE_INTEGER position;
- if(SetFilePointerEx(d->file, zero, &position, FILE_CURRENT) && position.QuadPart <= LONG_MAX) {
+ if(SetFilePointerEx(d->file, zero, &position, FILE_CURRENT) &&
+ position.QuadPart <= LONG_MAX) {
return static_cast(position.QuadPart);
}
else {
@@ -470,9 +494,8 @@ void FileStream::truncate(long length)
#else
const int error = ftruncate(fileno(d->file), length);
- if(error != 0) {
+ if(error != 0)
debug("FileStream::truncate() -- Coundn't truncate the file.");
- }
#endif
}
diff --git a/3rdparty/taglib/toolkit/tfilestream.h b/3rdparty/taglib/toolkit/tfilestream.h
index 96a476d65..aa4d71b30 100644
--- a/3rdparty/taglib/toolkit/tfilestream.h
+++ b/3rdparty/taglib/toolkit/tfilestream.h
@@ -54,6 +54,11 @@ namespace TagLib {
*/
FileStream(FileName file, bool openReadOnly = false);
+ /*!
+ * Construct a File object and opens the \a file using file descriptor.
+ */
+ FileStream(int fileDescriptor, bool openReadOnly = false);
+
/*!
* Destroys this FileStream instance.
*/
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bf64dd4f3..c1de26e3e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -94,7 +94,13 @@ find_path(LASTFM51_INCLUDE_DIRS lastfm5/Track.h)
find_path(SPARSEHASH_INCLUDE_DIRS google/sparsetable)
-# Only use system taglib if it's greater than 1.11.1 because of audio file detection by content.
+# Only use system taglib if it's greater than 1.11.1
+# There is a bug in version 1.11.1 corrupting Ogg files, see: https://github.com/taglib/taglib/issues/864
+# If you decide to use the systems taglib, make sure it has been patched with the following commit:
+# https://github.com/taglib/taglib/commit/9336c82da3a04552168f208cd7a5fa4646701ea4
+# The current taglib in 3rdparty also has the following features used by Clementine:
+# - Audio file detection by content.
+#
if (TAGLIB_VERSION VERSION_GREATER 1.11.1 OR WIN32)
option(USE_SYSTEM_TAGLIB "Use system taglib" ON)
else()
@@ -102,7 +108,11 @@ else()
endif()
if (TAGLIB_FOUND AND USE_SYSTEM_TAGLIB)
- message(STATUS "Using system taglib library")
+ if (TAGLIB_VERSION VERSION_GREATER 1.11.1 OR WIN32)
+ message(STATUS "Using system taglib library")
+ else()
+ message(WARNING "Using system taglib library. Version 1.11.1 or less has a bug corrupting Ogg files, make sure your systems version has been patched!")
+ endif()
set(CMAKE_REQUIRED_INCLUDES "${TAGLIB_INCLUDE_DIRS}")
set(CMAKE_REQUIRED_LIBRARIES "${TAGLIB_LIBRARIES}")
check_cxx_source_compiles("#include
@@ -110,7 +120,7 @@ if (TAGLIB_FOUND AND USE_SYSTEM_TAGLIB)
set(CMAKE_REQUIRED_INCLUDES)
set(CMAKE_REQUIRED_LIBRARIES)
else()
- message(STATUS "Using builtin taglib because your system's version is too old")
+ message(STATUS "Using builtin taglib library")
set(TAGLIB_VERSION 1.11.1)
set(TAGLIB_INCLUDE_DIRS "${CMAKE_BINARY_DIR}/3rdparty/taglib/headers/taglib/;${CMAKE_BINARY_DIR}/3rdparty/taglib/headers/")
set(TAGLIB_LIBRARY_DIRS "")
diff --git a/README.md b/README.md
index 6f4a1535a..6db83d3c0 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ Please:
Please:
- * Try the latest developer build (http://builds.clementine-player.org/) to see if the bug is still present (**Attention**, those builds aren't stable so they might not work well and could sometimes break things like user settings). If it works like a charm even though you see an open issue, please comment on it and explain that the issue has been fixed
+ * Try the latest developer build (http://builds.clementine-player.org/) to see if any bug is still present (**Attention**, those builds aren't stable so they might not work well and could sometimes break things like user settings). If it works fine even though you see an open issue, please comment on it and explain that the issue has been fixed
* Check if another person has already opened the same issue to avoid duplicates
* If there already is an open issue you could comment on it to add precisions about the problem or confirm it
* In case there isn't, you can open a new issue with an explicit title and as much information as possible (OS, Clementine version, how to reproduce the problem...)
diff --git a/dist/CMakeLists.txt b/dist/CMakeLists.txt
index f5adf65d4..d1872c64e 100644
--- a/dist/CMakeLists.txt
+++ b/dist/CMakeLists.txt
@@ -66,7 +66,7 @@ if (NOT APPLE)
)
install(FILES clementine.appdata.xml
- DESTINATION share/appdata
+ DESTINATION share/metainfo
)
if(INSTALL_UBUNTU_ICONS)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2fdde62c4..120f09949 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -270,6 +270,7 @@ set(SOURCES
internet/podcasts/podcastdeleter.cpp
internet/podcasts/podcastdownloader.cpp
internet/podcasts/podcastepisode.cpp
+ internet/podcasts/podcastinfodialog.cpp
internet/podcasts/podcastinfowidget.cpp
internet/podcasts/podcastservice.cpp
internet/podcasts/podcastservicemodel.cpp
@@ -565,6 +566,7 @@ set(HEADERS
internet/podcasts/podcastdiscoverymodel.h
internet/podcasts/podcastdeleter.h
internet/podcasts/podcastdownloader.h
+ internet/podcasts/podcastinfodialog.h
internet/podcasts/podcastinfowidget.h
internet/podcasts/podcastservice.h
internet/podcasts/podcastservicemodel.h
@@ -711,6 +713,7 @@ set(UI
internet/podcasts/addpodcastdialog.ui
internet/podcasts/gpoddersearchpage.ui
internet/podcasts/itunessearchpage.ui
+ internet/podcasts/podcastinfodialog.ui
internet/podcasts/podcastinfowidget.ui
internet/podcasts/podcastsettingspage.ui
diff --git a/src/analyzers/analyzerbase.cpp b/src/analyzers/analyzerbase.cpp
index b10472980..588d0f358 100644
--- a/src/analyzers/analyzerbase.cpp
+++ b/src/analyzers/analyzerbase.cpp
@@ -24,6 +24,7 @@
#include "analyzerbase.h"
+#include
#include
#include
@@ -87,9 +88,9 @@ void Analyzer::Base::transform(Scope& scope) {
QVector aux(fht_->size());
if (aux.size() >= scope.size()) {
- qCopy(scope.begin(), scope.end(), aux.begin());
+ std::copy(scope.begin(), scope.end(), aux.begin());
} else {
- qCopy(scope.begin(), scope.begin() + aux.size(), aux.begin());
+ std::copy(scope.begin(), scope.begin() + aux.size(), aux.begin());
}
fht_->logSpectrum(scope.data(), aux.data());
@@ -119,7 +120,7 @@ void Analyzer::Base::paintEvent(QPaintEvent* e) {
transform(lastScope_);
analyze(p, lastScope_, new_frame_);
- // scope.resize( fht_->size() );
+ lastScope_.resize(fht_->size());
break;
}
diff --git a/src/core/cachedlist.h b/src/core/cachedlist.h
index a2d1a73ab..9d7fad6b9 100644
--- a/src/core/cachedlist.h
+++ b/src/core/cachedlist.h
@@ -20,6 +20,8 @@
#ifndef CORE_CACHEDLIST_H_
#define CORE_CACHEDLIST_H_
+#include
+
#include
#include
@@ -81,7 +83,7 @@ class CachedList {
cache_duration_secs_;
}
- void Sort() { qSort(data_); }
+ void Sort() { std::sort(data_.begin(), data_.end()); }
const ListType& Data() const { return data_; }
operator ListType() const { return data_; }
diff --git a/src/core/player.cpp b/src/core/player.cpp
index a44fa20c9..32b0a2f85 100644
--- a/src/core/player.cpp
+++ b/src/core/player.cpp
@@ -620,7 +620,9 @@ void Player::InvalidSongRequested(const QUrl& url) {
bool stop_playback = s.value("stop_play_if_fail", 0).toBool();
s.endGroup();
- if (!stop_playback) {
+ if (stop_playback) {
+ Stop();
+ } else {
NextItem(Engine::Auto);
}
}
diff --git a/src/core/song.cpp b/src/core/song.cpp
index 0a1439e4c..4ef712b9e 100644
--- a/src/core/song.cpp
+++ b/src/core/song.cpp
@@ -486,7 +486,7 @@ int CompareSongsName(const Song& song1, const Song& song2) {
void Song::SortSongsListAlphabetically(SongList* songs) {
Q_ASSERT(songs);
- qSort(songs->begin(), songs->end(), CompareSongsName);
+ std::sort(songs->begin(), songs->end(), CompareSongsName);
}
void Song::Init(const QString& title, const QString& artist,
diff --git a/src/core/songloader.cpp b/src/core/songloader.cpp
index 847d75980..2cfbf5812 100644
--- a/src/core/songloader.cpp
+++ b/src/core/songloader.cpp
@@ -22,6 +22,7 @@
#include "songloader.h"
+#include
#include
#include
@@ -311,7 +312,7 @@ void SongLoader::LoadLocalDirectory(const QString& filename) {
LoadLocalPartial(it.next());
}
- qStableSort(songs_.begin(), songs_.end(), CompareSongs);
+ std::stable_sort(songs_.begin(), songs_.end(), CompareSongs);
// Load the first song: all songs will be loaded async, but we want the first
// one in our list to be fully loaded, so if the user has the "Start playing
diff --git a/src/covers/albumcoverfetchersearch.cpp b/src/covers/albumcoverfetchersearch.cpp
index 3688fd132..272dac2d8 100644
--- a/src/covers/albumcoverfetchersearch.cpp
+++ b/src/covers/albumcoverfetchersearch.cpp
@@ -20,6 +20,7 @@
#include "albumcoverfetchersearch.h"
+#include
#include
#include
@@ -138,7 +139,7 @@ void AlbumCoverFetcherSearch::AllProvidersFinished() {
// from each category and use some heuristics to score them. If no images
// are good enough we'll keep loading more images until we find one that is
// or we run out of results.
- qStableSort(results_.begin(), results_.end(), CompareProviders);
+ std::stable_sort(results_.begin(), results_.end(), CompareProviders);
FetchMoreImages();
}
diff --git a/src/covers/coversearchstatisticsdialog.cpp b/src/covers/coversearchstatisticsdialog.cpp
index 42f657c72..d447504e9 100644
--- a/src/covers/coversearchstatisticsdialog.cpp
+++ b/src/covers/coversearchstatisticsdialog.cpp
@@ -21,6 +21,8 @@
#include "ui_coversearchstatisticsdialog.h"
#include "core/utilities.h"
+#include
+
CoverSearchStatisticsDialog::CoverSearchStatisticsDialog(QWidget* parent)
: QDialog(parent), ui_(new Ui_CoverSearchStatisticsDialog) {
ui_->setupUi(this);
@@ -47,7 +49,7 @@ CoverSearchStatisticsDialog::~CoverSearchStatisticsDialog() { delete ui_; }
void CoverSearchStatisticsDialog::Show(
const CoverSearchStatistics& statistics) {
QStringList providers(statistics.total_images_by_provider_.keys());
- qSort(providers);
+ std::sort(providers.begin(), providers.end());
ui_->summary->setText(
tr("Got %1 covers out of %2 (%3 failed)")
diff --git a/src/globalsearch/globalsearchsettingspage.cpp b/src/globalsearch/globalsearchsettingspage.cpp
index e6ca1e04d..e7b2541c1 100644
--- a/src/globalsearch/globalsearchsettingspage.cpp
+++ b/src/globalsearch/globalsearchsettingspage.cpp
@@ -22,6 +22,8 @@
#include "ui/settingsdialog.h"
#include "ui_globalsearchsettingspage.h"
+#include
+
#include
GlobalSearchSettingsPage::GlobalSearchSettingsPage(SettingsDialog* dialog)
@@ -57,7 +59,7 @@ void GlobalSearchSettingsPage::Load() {
// Sort the list of providers alphabetically (by id) initially, so any that
// aren't in the provider_order list will take this order.
- qSort(providers.begin(), providers.end(), CompareProviderId);
+ std::sort(providers.begin(), providers.end(), CompareProviderId);
// Add the ones in the configured list first
ui_->sources->clear();
diff --git a/src/globalsearch/globalsearchview.cpp b/src/globalsearch/globalsearchview.cpp
index 7ae4f2c26..bfc5af27e 100644
--- a/src/globalsearch/globalsearchview.cpp
+++ b/src/globalsearch/globalsearchview.cpp
@@ -22,6 +22,7 @@
#include
#include
+#include
#include
#include "globalsearch.h"
@@ -224,8 +225,8 @@ void GlobalSearchView::ReloadSettings() {
if (show_providers_) {
// Sort the list of providers
QList providers = engine_->providers();
- qSort(providers.begin(), providers.end(),
- std::bind(&CompareProvider, std::cref(provider_order), _1, _2));
+ std::sort(providers.begin(), providers.end(),
+ std::bind(&CompareProvider, std::cref(provider_order), _1, _2));
bool any_disabled = false;
@@ -307,8 +308,8 @@ void GlobalSearchView::AddResults(int id,
void GlobalSearchView::SwapModels() {
art_requests_.clear();
- qSwap(front_model_, back_model_);
- qSwap(front_proxy_, back_proxy_);
+ std::swap(front_model_, back_model_);
+ std::swap(front_proxy_, back_proxy_);
ui_->results->setModel(front_proxy_);
diff --git a/src/internet/digitally/digitallyimportedservicebase.cpp b/src/internet/digitally/digitallyimportedservicebase.cpp
index 538d30c72..64933877c 100644
--- a/src/internet/digitally/digitallyimportedservicebase.cpp
+++ b/src/internet/digitally/digitallyimportedservicebase.cpp
@@ -20,6 +20,8 @@
#include "digitallyimportedservicebase.h"
+#include
+
#include
#include
#include
@@ -112,7 +114,7 @@ void DigitallyImportedServiceBase::RefreshStreamsFinished(QNetworkReply* reply,
// Parse the list and sort by name
DigitallyImportedClient::ChannelList channels =
api_client_->ParseChannelList(reply);
- qSort(channels);
+ std::sort(channels.begin(), channels.end());
saved_channels_.Update(channels);
diff --git a/src/internet/lastfm/lastfmservice.cpp b/src/internet/lastfm/lastfmservice.cpp
index d8cf94b04..5f4a3dd50 100644
--- a/src/internet/lastfm/lastfmservice.cpp
+++ b/src/internet/lastfm/lastfmservice.cpp
@@ -32,6 +32,8 @@
#include "lastfmservice.h"
+#include
+
#include
#include
#include
@@ -132,7 +134,7 @@ bool LastFMService::IsSubscriber() const {
namespace {
QByteArray SignApiRequest(QList> params) {
- qSort(params);
+ std::sort(params.begin(), params.end());
QString to_sign;
for (const auto& p : params) {
to_sign += p.first;
diff --git a/src/internet/podcasts/podcastinfodialog.cpp b/src/internet/podcasts/podcastinfodialog.cpp
new file mode 100644
index 000000000..33db8cde9
--- /dev/null
+++ b/src/internet/podcasts/podcastinfodialog.cpp
@@ -0,0 +1,39 @@
+/* This file is part of Clementine.
+ Copyright 2018, Jim Broadus
+
+ Clementine 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.
+
+ Clementine 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 Clementine. If not, see .
+*/
+
+#include "podcastinfodialog.h"
+
+#include "ui_podcastinfodialog.h"
+
+PodcastInfoDialog::PodcastInfoDialog(Application* app, QWidget* parent)
+ : QDialog(parent),
+ app_(app),
+ ui_(new Ui_PodcastInfoDialog) {
+ ui_->setupUi(this);
+ ui_->details->SetApplication(app);
+}
+
+PodcastInfoDialog::~PodcastInfoDialog() {
+ delete ui_;
+}
+
+void PodcastInfoDialog::ShowPodcast(const Podcast& podcast) {
+ show();
+ ui_->podcast_url->setText(podcast.url().toString());
+ ui_->podcast_url->setReadOnly(true);
+ ui_->details->SetPodcast(podcast);
+}
diff --git a/src/internet/podcasts/podcastinfodialog.h b/src/internet/podcasts/podcastinfodialog.h
new file mode 100644
index 000000000..3643d8007
--- /dev/null
+++ b/src/internet/podcasts/podcastinfodialog.h
@@ -0,0 +1,42 @@
+/* This file is part of Clementine.
+ Copyright 2018, Jim Broadus
+
+ Clementine 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.
+
+ Clementine 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 Clementine. If not, see .
+*/
+
+#ifndef INTERNET_PODCASTS_PODCASTINFODIALOG_H_
+#define INTERNET_PODCASTS_PODCASTINFODIALOG_H_
+
+#include
+
+class Application;
+class Podcast;
+class Ui_PodcastInfoDialog;
+
+class PodcastInfoDialog : public QDialog {
+ Q_OBJECT
+
+ public:
+ explicit PodcastInfoDialog(Application* app, QWidget* parent = nullptr);
+ ~PodcastInfoDialog();
+
+ void ShowPodcast(const Podcast& podcast);
+
+ private:
+ Application* app_;
+
+ Ui_PodcastInfoDialog* ui_;
+};
+
+#endif // INTERNET_PODCASTS_PODCASTINFODIALOG_H_
diff --git a/src/internet/podcasts/podcastinfodialog.ui b/src/internet/podcasts/podcastinfodialog.ui
new file mode 100644
index 000000000..e0cbb0970
--- /dev/null
+++ b/src/internet/podcasts/podcastinfodialog.ui
@@ -0,0 +1,107 @@
+
+
+ PodcastInfoDialog
+
+
+
+ 0
+ 0
+ 493
+ 395
+
+
+
+ Podcast Information
+
+
+ -
+
+
+ -
+
+
+
+ 250
+ 100
+
+
+
+
+ 16777215
+ 16777215
+
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ true
+
+
+
+
+ 0
+ 0
+ 473
+ 313
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Close
+
+
+
+
+
+
+
+ PodcastInfoWidget
+ QWidget
+ internet/podcasts/podcastinfowidget.h
+ 1
+
+
+
+
+
+ buttonBox
+ accepted()
+ PodcastInfoDialog
+ accept()
+
+
+ 248
+ 254
+
+
+ 157
+ 274
+
+
+
+
+ buttonBox
+ rejected()
+ PodcastInfoDialog
+ reject()
+
+
+ 316
+ 260
+
+
+ 286
+ 274
+
+
+
+
+
diff --git a/src/internet/podcasts/podcastservice.cpp b/src/internet/podcasts/podcastservice.cpp
index b38db6050..6b196aaab 100644
--- a/src/internet/podcasts/podcastservice.cpp
+++ b/src/internet/podcasts/podcastservice.cpp
@@ -26,6 +26,7 @@
#include
#include "addpodcastdialog.h"
+#include "podcastinfodialog.h"
#include "core/application.h"
#include "core/logging.h"
#include "core/mergedproxymodel.h"
@@ -430,6 +431,11 @@ void PodcastService::ShowContextMenu(const QPoint& global_pos) {
download_selected_action_ =
context_menu_->addAction(IconLoader::Load("download", IconLoader::Base),
"", this, SLOT(DownloadSelectedEpisode()));
+ info_selected_action_ =
+ context_menu_->addAction(IconLoader::Load("about-info",
+ IconLoader::Base),
+ tr("Podcast information"), this,
+ SLOT(PodcastInfo()));
delete_downloaded_action_ = context_menu_->addAction(
IconLoader::Load("edit-delete", IconLoader::Base),
tr("Delete downloaded data"), this, SLOT(DeleteDownloadedData()));
@@ -521,6 +527,12 @@ void PodcastService::ShowContextMenu(const QPoint& global_pos) {
delete_downloaded_action_->setEnabled(episodes);
}
+ if (selected_podcasts_.count() == 1) {
+ info_selected_action_->setEnabled(true);
+ } else {
+ info_selected_action_->setEnabled(false);
+ }
+
if (explicitly_selected_podcasts_.isEmpty() && selected_episodes_.isEmpty()) {
PodcastEpisodeList epis = backend_->GetNewDownloadedEpisodes();
set_listened_action_->setEnabled(!epis.isEmpty());
@@ -686,6 +698,15 @@ void PodcastService::DownloadSelectedEpisode() {
}
}
+void PodcastService::PodcastInfo() {
+ if (selected_podcasts_.count() > 0) {
+ const Podcast podcast =
+ selected_podcasts_[0].data(Role_Podcast).value();
+ podcast_info_dialog_.reset(new PodcastInfoDialog(app_));
+ podcast_info_dialog_->ShowPodcast(podcast);
+ }
+}
+
void PodcastService::DeleteDownloadedData() {
for (const QModelIndex& index : selected_episodes_) {
app_->podcast_deleter()->DeleteEpisode(
diff --git a/src/internet/podcasts/podcastservice.h b/src/internet/podcasts/podcastservice.h
index eb93de4f7..e6b3c6fbe 100644
--- a/src/internet/podcasts/podcastservice.h
+++ b/src/internet/podcasts/podcastservice.h
@@ -30,6 +30,7 @@
#include
class AddPodcastDialog;
+class PodcastInfoDialog;
class OrganiseDialog;
class Podcast;
class PodcastBackend;
@@ -76,6 +77,7 @@ class PodcastService : public InternetService {
void ReloadPodcast(const Podcast& podcast);
void RemoveSelectedPodcast();
void DownloadSelectedEpisode();
+ void PodcastInfo();
void DeleteDownloadedData();
void SetNew();
void SetListened();
@@ -148,6 +150,7 @@ class PodcastService : public InternetService {
QAction* update_selected_action_;
QAction* remove_selected_action_;
QAction* download_selected_action_;
+ QAction* info_selected_action_;
QAction* delete_downloaded_action_;
QAction* set_new_action_;
QAction* set_listened_action_;
@@ -164,6 +167,7 @@ class PodcastService : public InternetService {
QMap episodes_by_database_id_;
std::unique_ptr add_podcast_dialog_;
+ std::unique_ptr podcast_info_dialog_;
};
#endif // INTERNET_PODCASTS_PODCASTSERVICE_H_
diff --git a/src/library/librarymodel.cpp b/src/library/librarymodel.cpp
index d831c8519..6e7dd0461 100644
--- a/src/library/librarymodel.cpp
+++ b/src/library/librarymodel.cpp
@@ -17,6 +17,7 @@
#include "librarymodel.h"
+#include
#include
#include
@@ -659,7 +660,7 @@ QVariant LibraryModel::data(const LibraryItem* item, int role) const {
return item->SortText();
case Role_DisplayText:
- return item->DisplayText();
+ return item->DisplayText();
}
return QVariant();
}
@@ -1269,8 +1270,8 @@ void LibraryModel::GetChildSongs(LibraryItem* item, QList* urls,
const_cast(this)->LazyPopulate(item);
QList children = item->children;
- qSort(children.begin(), children.end(),
- std::bind(&LibraryModel::CompareItems, this, _1, _2));
+ std::sort(children.begin(), children.end(),
+ std::bind(&LibraryModel::CompareItems, this, _1, _2));
for (LibraryItem* child : children)
GetChildSongs(child, urls, songs, song_ids);
diff --git a/src/library/libraryview.cpp b/src/library/libraryview.cpp
index e09efb34f..396f5c5a8 100644
--- a/src/library/libraryview.cpp
+++ b/src/library/libraryview.cpp
@@ -175,8 +175,8 @@ LibraryView::LibraryView(QWidget* parent)
total_song_count_(-1),
context_menu_(nullptr),
is_in_keyboard_search_(false) {
- QIcon nocover = IconLoader::Load("nocover", IconLoader::Other);
- nomusic_ = nocover.pixmap(nocover.availableSizes().last());
+ QIcon nomusic = IconLoader::Load("nomusic", IconLoader::Other);
+ nomusic_ = nomusic.pixmap(nomusic.availableSizes().last());
setItemDelegate(new LibraryItemDelegate(this));
setAttribute(Qt::WA_MacShowFocusRect, false);
setHeaderHidden(true);
diff --git a/src/musicbrainz/acoustidclient.cpp b/src/musicbrainz/acoustidclient.cpp
index 9f92ec8c6..8fa8fa6ee 100644
--- a/src/musicbrainz/acoustidclient.cpp
+++ b/src/musicbrainz/acoustidclient.cpp
@@ -17,6 +17,8 @@
#include "acoustidclient.h"
+#include
+
#include
#include
#include
@@ -138,7 +140,7 @@ void AcoustidClient::RequestFinished(QNetworkReply* reply, int request_id) {
}
}
- qStableSort(id_source_list);
+ std::stable_sort(id_source_list.begin(), id_source_list.end());
QList id_list;
for (const IdSource& is : id_source_list) {
diff --git a/src/musicbrainz/musicbrainzclient.cpp b/src/musicbrainz/musicbrainzclient.cpp
index 9aba75374..f2dd7683e 100644
--- a/src/musicbrainz/musicbrainzclient.cpp
+++ b/src/musicbrainz/musicbrainzclient.cpp
@@ -17,6 +17,8 @@
#include "musicbrainzclient.h"
+#include
+
#include
#include
#include
@@ -212,7 +214,7 @@ void MusicBrainzClient::RequestFinished(QNetworkReply* reply, int id,
// Merge the results we have
ResultList ret;
QList result_list_list = pending_results_.take(id);
- qSort(result_list_list);
+ std::sort(result_list_list.begin(), result_list_list.end());
for (const PendingResults& result_list : result_list_list) {
ret << result_list.results_;
}
@@ -317,7 +319,7 @@ MusicBrainzClient::ResultList MusicBrainzClient::ParseTrack(
if (releases.isEmpty()) {
ret << result;
} else {
- qStableSort(releases);
+ std::stable_sort(releases.begin(), releases.end());
for (const Release& release : releases) {
ret << release.CopyAndMergeInto(result);
}
@@ -386,7 +388,7 @@ MusicBrainzClient::ResultList MusicBrainzClient::UniqueResults(
ResultList ret;
if (opt == SortResults) {
ret = QSet::fromList(results).toList();
- qSort(ret);
+ std::sort(ret.begin(), ret.end());
} else { // KeepOriginalOrder
// Qt doesn't provide a ordered set (QSet "stores values in an unspecified
// order" according to Qt documentation).
diff --git a/src/playlist/playlist.cpp b/src/playlist/playlist.cpp
index e386ead46..05c63f8ae 100644
--- a/src/playlist/playlist.cpp
+++ b/src/playlist/playlist.cpp
@@ -35,36 +35,37 @@
#include
#include
+#include "core/application.h"
+#include "core/closure.h"
+#include "core/logging.h"
+#include "core/player.h"
+#include "core/tagreaderclient.h"
+#include "core/timeconstants.h"
+#include "internet/core/internetmimedata.h"
+#include "internet/core/internetmodel.h"
+#include "internet/core/internetplaylistitem.h"
+#include "internet/core/internetsongmimedata.h"
+#include "internet/internetradio/savedradio.h"
+#include "internet/jamendo/jamendoplaylistitem.h"
+#include "internet/jamendo/jamendoservice.h"
+#include "internet/magnatune/magnatuneplaylistitem.h"
+#include "internet/magnatune/magnatuneservice.h"
+#include "library/library.h"
+#include "library/librarybackend.h"
+#include "library/librarymodel.h"
+#include "library/libraryplaylistitem.h"
#include "playlistbackend.h"
#include "playlistfilter.h"
#include "playlistitemmimedata.h"
#include "playlistundocommands.h"
#include "playlistview.h"
#include "queue.h"
-#include "songloaderinserter.h"
-#include "songmimedata.h"
-#include "songplaylistitem.h"
-#include "core/application.h"
-#include "core/closure.h"
-#include "core/logging.h"
-#include "core/tagreaderclient.h"
-#include "core/timeconstants.h"
-#include "internet/jamendo/jamendoplaylistitem.h"
-#include "internet/jamendo/jamendoservice.h"
-#include "internet/magnatune/magnatuneplaylistitem.h"
-#include "internet/magnatune/magnatuneservice.h"
-#include "internet/core/internetmimedata.h"
-#include "internet/core/internetmodel.h"
-#include "internet/core/internetplaylistitem.h"
-#include "internet/core/internetsongmimedata.h"
-#include "internet/internetradio/savedradio.h"
-#include "library/library.h"
-#include "library/librarybackend.h"
-#include "library/librarymodel.h"
-#include "library/libraryplaylistitem.h"
#include "smartplaylists/generator.h"
#include "smartplaylists/generatorinserter.h"
#include "smartplaylists/generatormimedata.h"
+#include "songloaderinserter.h"
+#include "songmimedata.h"
+#include "songplaylistitem.h"
using std::placeholders::_1;
using std::placeholders::_2;
@@ -155,6 +156,22 @@ Playlist::Playlist(PlaylistBackend* backend, TaskManager* task_manager,
connect(queue_, SIGNAL(layoutChanged()), SLOT(QueueLayoutChanged()));
column_alignments_ = PlaylistView::DefaultColumnAlignment();
+
+ min_play_count_point_nsecs_ = (31ll * kNsecPerSec); // 30 seconds
+
+ QSettings settings;
+ settings.beginGroup(Player::kSettingsGroup);
+
+ if (settings.value("play_count_short_duration").toBool()) {
+ max_play_count_point_nsecs_ = (60ll * kNsecPerSec); // 1 minute
+ } else {
+ max_play_count_point_nsecs_ = (240ll * kNsecPerSec); // 4 minutes
+ }
+
+ settings.endGroup();
+
+ qLog(Debug) << "k_max_scrobble_point"
+ << (max_play_count_point_nsecs_ / kNsecPerSec);
}
Playlist::~Playlist() {
@@ -811,7 +828,8 @@ bool Playlist::dropMimeData(const QMimeData* data, Qt::DropAction action,
pid = !own_pid;
}
- qStableSort(source_rows); // Make sure we take them in order
+ std::stable_sort(source_rows.begin(),
+ source_rows.end()); // Make sure we take them in order
if (source_playlist == this) {
// Dragged from this playlist - rearrange the items
@@ -1463,25 +1481,25 @@ void Playlist::sort(int column, Qt::SortOrder order) {
if (column == Column_Album) {
// When sorting by album, also take into account discs and tracks.
- qStableSort(begin, new_items.end(),
- std::bind(&Playlist::CompareItems, Column_Track, order, _1, _2,
- prefixes));
- qStableSort(begin, new_items.end(),
- std::bind(&Playlist::CompareItems, Column_Disc, order, _1, _2,
- prefixes));
- qStableSort(begin, new_items.end(),
- std::bind(&Playlist::CompareItems, Column_Album, order, _1, _2,
- prefixes));
+ std::stable_sort(begin, new_items.end(),
+ std::bind(&Playlist::CompareItems, Column_Track, order, _1,
+ _2, prefixes));
+ std::stable_sort(begin, new_items.end(),
+ std::bind(&Playlist::CompareItems, Column_Disc, order, _1,
+ _2, prefixes));
+ std::stable_sort(begin, new_items.end(),
+ std::bind(&Playlist::CompareItems, Column_Album, order, _1,
+ _2, prefixes));
} else if (column == Column_Filename) {
// When sorting by full paths we also expect a hierarchical order. This
// returns a breath-first ordering of paths.
- qStableSort(begin, new_items.end(),
- std::bind(&Playlist::CompareItems, Column_Filename, order, _1,
- _2, prefixes));
- qStableSort(begin, new_items.end(),
- std::bind(&Playlist::ComparePathDepths, order, _1, _2));
+ std::stable_sort(begin, new_items.end(),
+ std::bind(&Playlist::CompareItems, Column_Filename, order,
+ _1, _2, prefixes));
+ std::stable_sort(begin, new_items.end(),
+ std::bind(&Playlist::ComparePathDepths, order, _1, _2));
} else {
- qStableSort(
+ std::stable_sort(
begin, new_items.end(),
std::bind(&Playlist::CompareItems, column, order, _1, _2, prefixes));
}
@@ -1617,7 +1635,7 @@ void Playlist::RemoveItemsWithoutUndo(const QList& indicesIn) {
// Sort the indices descending because removing elements 'backwards'
// is easier - indices don't 'move' in the process.
QList indices = indicesIn;
- qSort(indices.begin(), indices.end(), DescendingIntLessThan);
+ std::sort(indices.begin(), indices.end(), DescendingIntLessThan);
for (int j = 0; j < indices.count(); j++) {
int beginning = indices[j], end = indices[j];
@@ -1660,7 +1678,7 @@ bool Playlist::removeRows(QList& rows) {
// start from the end to be sure that indices won't 'move' during
// the removal process
- qSort(rows.begin(), rows.end(), qGreater());
+ std::sort(rows.begin(), rows.end(), std::greater());
QList part;
while (!rows.isEmpty()) {
@@ -1801,6 +1819,15 @@ Song Playlist::current_item_metadata() const {
return current_item()->Metadata();
}
+/**
+ * Last.fm defines a track to be scrobbled when
+ * - the track is longer than 30 seconds
+ * - the track has been played for at least half its duration, or for 4 minutes
+ * (whichever occurs earlier.)
+ *
+ * If you seek a track, the scrobble point is recalculated from the point seeked
+ * to (as 50% or 4 minutes).
+ */
void Playlist::UpdateScrobblePoint(qint64 seek_point_nanosec) {
const qint64 length = current_item_metadata().length_nanosec();
@@ -1823,6 +1850,41 @@ void Playlist::UpdateScrobblePoint(qint64 seek_point_nanosec) {
}
set_lastfm_status(LastFM_New);
+ UpdatePlayCountPoint(seek_point_nanosec);
+}
+
+/**
+ * Initially the play count tracking and scrobbling went hand in hand.
+ * However, it is is possible that someone's preferences for tracking play
+ * counts are more relaxed than that of scrobbling. For those cases, we use
+ * the following algorithm to track whether a song should increment it's play
+ * count or not.
+ *
+ * Note that that this is very similar to the scrobbling algorithm with the only
+ * difference that the requirement of 4 mins worth of listening is now
+ * configurable via the `max_play_count_point_nsecs_` parameter.
+ */
+void Playlist::UpdatePlayCountPoint(qint64 seek_point_nanosec) {
+ const qint64 length = current_item_metadata().length_nanosec();
+
+ if (seek_point_nanosec == 0) {
+ if (length == 0) {
+ play_count_point_ = max_play_count_point_nsecs_; // 4 minutes
+ } else {
+ play_count_point_ = qBound(min_play_count_point_nsecs_, length / 2,
+ max_play_count_point_nsecs_);
+ }
+ } else {
+ if (length == 0) {
+ play_count_point_ = seek_point_nanosec + max_play_count_point_nsecs_;
+ } else {
+ play_count_point_ =
+ qBound(seek_point_nanosec + min_play_count_point_nsecs_,
+ seek_point_nanosec + (length / 2),
+ seek_point_nanosec + max_play_count_point_nsecs_);
+ }
+ }
+
have_incremented_playcount_ = false;
}
diff --git a/src/playlist/playlist.h b/src/playlist/playlist.h
index 0899238e6..a06b69cc1 100644
--- a/src/playlist/playlist.h
+++ b/src/playlist/playlist.h
@@ -236,6 +236,16 @@ class Playlist : public QAbstractListModel {
void set_have_incremented_playcount() { have_incremented_playcount_ = true; }
void UpdateScrobblePoint(qint64 seek_point_nanosec = 0);
+ // play count tracking
+ qint64 play_count_point_nanosec() const { return play_count_point_; }
+ void set_max_play_count_point_nsecs(qint64 max_play_count_point_nsecs) {
+ max_play_count_point_nsecs_ = max_play_count_point_nsecs;
+ }
+ qint64 get_max_play_count_point_nsecs() const {
+ return max_play_count_point_nsecs_;
+ }
+ void UpdatePlayCountPoint(qint64 seek_point_nanosec = 0);
+
// Changing the playlist
void InsertItems(const PlaylistItemList& items, int pos = -1,
bool play_now = false, bool enqueue = false,
@@ -440,6 +450,8 @@ signals:
LastFMStatus lastfm_status_;
bool have_incremented_playcount_;
+ qint64 play_count_point_;
+
PlaylistSequence* playlist_sequence_;
// Hack to stop QTreeView::setModel sorting the playlist
@@ -454,6 +466,9 @@ signals:
QString special_type_;
+ qint64 min_play_count_point_nsecs_;
+ qint64 max_play_count_point_nsecs_;
+
// Cancel async restore if songs are already replaced
bool cancel_restore_;
};
diff --git a/src/playlist/playlistcontainer.cpp b/src/playlist/playlistcontainer.cpp
index 78003fbba..0907f69f6 100644
--- a/src/playlist/playlistcontainer.cpp
+++ b/src/playlist/playlistcontainer.cpp
@@ -15,13 +15,15 @@
along with Clementine. If not, see .
*/
+#include "core/appearance.h"
+#include "core/logging.h"
+#include "core/player.h"
+#include "core/timeconstants.h"
#include "playlistcontainer.h"
#include "playlistmanager.h"
-#include "ui_playlistcontainer.h"
-#include "core/logging.h"
-#include "core/appearance.h"
#include "playlistparsers/playlistparser.h"
#include "ui/iconloader.h"
+#include "ui_playlistcontainer.h"
#include
#include
@@ -467,4 +469,16 @@ void PlaylistContainer::ReloadSettings() {
settings.beginGroup(Appearance::kSettingsGroup);
bool hide_toolbar = settings.value("b_hide_filter_toolbar", false).toBool();
ui_->toolbar->setVisible(!hide_toolbar);
+ settings.endGroup();
+
+ settings.beginGroup(Player::kSettingsGroup);
+ if (settings.value("play_count_short_duration").toBool()) {
+ playlist_->set_max_play_count_point_nsecs(60ll * kNsecPerSec);
+ } else {
+ playlist_->set_max_play_count_point_nsecs(240ll * kNsecPerSec);
+ }
+ settings.endGroup();
+
+ qLog(Debug) << "new max scrobble point:"
+ << (playlist_->get_max_play_count_point_nsecs() / kNsecPerSec);
}
diff --git a/src/playlist/playlistview.cpp b/src/playlist/playlistview.cpp
index 45065e626..572715187 100644
--- a/src/playlist/playlistview.cpp
+++ b/src/playlist/playlistview.cpp
@@ -43,6 +43,7 @@
#include
#include
+#include
#ifdef HAVE_MOODBAR
#include "moodbar/moodbaritemdelegate.h"
@@ -657,7 +658,7 @@ void PlaylistView::RemoveSelected(bool deleting_from_disk) {
// Sort the selection so we remove the items at the *bottom* first, ensuring
// we don't have to mess around with changing row numbers
- qSort(selection.begin(), selection.end(), CompareSelectionRanges);
+ std::sort(selection.begin(), selection.end(), CompareSelectionRanges);
for (const QItemSelectionRange& range : selection) {
if (range.top() < last_row) rows_removed += range.height();
@@ -700,7 +701,7 @@ QList PlaylistView::GetEditableColumns() {
QModelIndex index = model()->index(0, col);
if (index.flags() & Qt::ItemIsEditable) columns << h->visualIndex(col);
}
- qSort(columns);
+ std::sort(columns.begin(), columns.end());
return columns;
}
diff --git a/src/playlist/queue.cpp b/src/playlist/queue.cpp
index 898acd9d4..370000f64 100644
--- a/src/playlist/queue.cpp
+++ b/src/playlist/queue.cpp
@@ -17,6 +17,8 @@
#include "queue.h"
+#include
+
#include
#include
#include
@@ -317,7 +319,8 @@ bool Queue::dropMimeData(const QMimeData* data, Qt::DropAction action, int row,
QList proxy_rows;
QDataStream stream(data->data(kRowsMimetype));
stream >> proxy_rows;
- qStableSort(proxy_rows); // Make sure we take them in order
+ // Make sure we take them in order
+ std::stable_sort(proxy_rows.begin(), proxy_rows.end());
Move(proxy_rows, row);
} else if (data->hasFormat(Playlist::kRowsMimetype)) {
@@ -388,7 +391,7 @@ QVariant Queue::headerData(int section, Qt::Orientation orientation,
void Queue::Remove(QList& proxy_rows) {
// order the rows
- qStableSort(proxy_rows);
+ std::stable_sort(proxy_rows.begin(), proxy_rows.end());
// reflects immediately changes in the playlist
layoutAboutToBeChanged();
diff --git a/src/playlist/queuemanager.cpp b/src/playlist/queuemanager.cpp
index b44f4d4fc..277c099c8 100644
--- a/src/playlist/queuemanager.cpp
+++ b/src/playlist/queuemanager.cpp
@@ -23,6 +23,8 @@
#include "ui_queuemanager.h"
#include "ui/iconloader.h"
+#include
+
#include
#include
@@ -105,7 +107,7 @@ void QueueManager::CurrentPlaylistChanged(Playlist* playlist) {
void QueueManager::MoveUp() {
QModelIndexList indexes = ui_->list->selectionModel()->selectedRows();
- qStableSort(indexes);
+ std::stable_sort(indexes.begin(), indexes.end());
if (indexes.isEmpty() || indexes.first().row() == 0) return;
@@ -116,7 +118,7 @@ void QueueManager::MoveUp() {
void QueueManager::MoveDown() {
QModelIndexList indexes = ui_->list->selectionModel()->selectedRows();
- qStableSort(indexes);
+ std::stable_sort(indexes.begin(), indexes.end());
if (indexes.isEmpty() ||
indexes.last().row() == current_playlist_->queue()->rowCount() - 1)
diff --git a/src/playlistparsers/playlistparser.cpp b/src/playlistparsers/playlistparser.cpp
index 8d3c2d5bc..cc48062e1 100644
--- a/src/playlistparsers/playlistparser.cpp
+++ b/src/playlistparsers/playlistparser.cpp
@@ -25,6 +25,8 @@
#include "xspfparser.h"
#include "core/logging.h"
+#include
+
#include
const int PlaylistParser::kMagicSize = 512;
@@ -49,7 +51,7 @@ QStringList PlaylistParser::file_extensions() const {
ret << parser->file_extensions();
}
- qStableSort(ret);
+ std::stable_sort(ret.begin(), ret.end());
return ret;
}
@@ -60,7 +62,7 @@ QStringList PlaylistParser::mime_types() const {
if (!parser->mime_type().isEmpty()) ret << parser->mime_type();
}
- qStableSort(ret);
+ std::stable_sort(ret.begin(), ret.end());
return ret;
}
diff --git a/src/ripper/ripcddialog.cpp b/src/ripper/ripcddialog.cpp
index 4d6efb2e4..522becfb2 100644
--- a/src/ripper/ripcddialog.cpp
+++ b/src/ripper/ripcddialog.cpp
@@ -17,6 +17,8 @@
#include "ripper/ripcddialog.h"
+#include
+
#include
#include
#include
@@ -107,7 +109,7 @@ RipCDDialog::RipCDDialog(QWidget* parent)
// Get presets
QList presets = Transcoder::GetAllPresets();
- qSort(presets.begin(), presets.end(), ComparePresetsByName);
+ std::sort(presets.begin(), presets.end(), ComparePresetsByName);
for (const TranscoderPreset& preset : presets) {
ui_->format->addItem(
QString("%1 (.%2)").arg(preset.name_).arg(preset.extension_),
diff --git a/src/songinfo/songinfoview.cpp b/src/songinfo/songinfoview.cpp
index 2d96d7bc0..8a05abf8c 100644
--- a/src/songinfo/songinfoview.cpp
+++ b/src/songinfo/songinfoview.cpp
@@ -17,6 +17,8 @@
#include "songinfo/songinfoview.h"
+#include
+
#include
#include
#include
@@ -159,6 +161,6 @@ QList SongInfoView::lyric_providers() const {
ret << lyrics;
}
}
- qSort(ret.begin(), ret.end(), CompareLyricProviders);
+ std::sort(ret.begin(), ret.end(), CompareLyricProviders);
return ret;
}
diff --git a/src/transcoder/transcodedialog.cpp b/src/transcoder/transcodedialog.cpp
index 4ba904104..cbec3d16f 100644
--- a/src/transcoder/transcodedialog.cpp
+++ b/src/transcoder/transcodedialog.cpp
@@ -24,6 +24,8 @@
#include "ui/mainwindow.h"
#include "widgets/fileview.h"
+#include
+
#include
#include
#include
@@ -63,7 +65,7 @@ TranscodeDialog::TranscodeDialog(QWidget* parent)
// Get presets
QList presets = Transcoder::GetAllPresets();
- qSort(presets.begin(), presets.end(), ComparePresetsByName);
+ std::sort(presets.begin(), presets.end(), ComparePresetsByName);
for (const TranscoderPreset& preset : presets) {
ui_->format->addItem(
QString("%1 (.%2)").arg(preset.name_, preset.extension_),
diff --git a/src/transcoder/transcoder.cpp b/src/transcoder/transcoder.cpp
index 0fb499574..e070ea591 100644
--- a/src/transcoder/transcoder.cpp
+++ b/src/transcoder/transcoder.cpp
@@ -17,6 +17,7 @@
#include "transcoder.h"
+#include
#include
#include
@@ -138,7 +139,7 @@ GstElement* Transcoder::CreateElementForMimeType(const QString& element_type,
if (suitable_elements_.isEmpty()) return nullptr;
// Sort by rank
- qSort(suitable_elements_);
+ std::sort(suitable_elements_.begin(), suitable_elements_.end());
const SuitableElement& best = suitable_elements_.last();
LogLine(QString("Using '%1' (rank %2)").arg(best.name_).arg(best.rank_));
diff --git a/src/translations/af.po b/src/translations/af.po
index 4373c7317..5f9651f82 100644
--- a/src/translations/af.po
+++ b/src/translations/af.po
@@ -12,7 +12,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
-"PO-Revision-Date: 2018-09-17 13:31+0000\n"
+"PO-Revision-Date: 2018-10-20 12:14+0000\n"
"Last-Translator: hatstand \n"
"Language-Team: Afrikaans (http://www.transifex.com/davidsansome/clementine/language/af/)\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -55,7 +55,7 @@ msgstr "ms"
msgid " pt"
msgstr "pte"
-#: ../bin/src/ui_behavioursettingspage.h:375
+#: ../bin/src/ui_behavioursettingspage.h:414
msgid " s"
msgstr "s"
@@ -94,7 +94,7 @@ msgstr "%1 dae terug"
msgid "%1 on %2"
msgstr "%1 op %2"
-#: playlistparsers/playlistparser.cpp:87
+#: playlistparsers/playlistparser.cpp:89
#, qt-format
msgid "%1 playlists (%2)"
msgstr "%1 speellys (%2)"
@@ -124,12 +124,12 @@ msgstr "%1 liedjies gevind"
msgid "%1 songs found (showing %2)"
msgstr "%1 liedjies gevind (%2 word getoon)"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
#, qt-format
msgid "%1 tracks"
msgstr "%1 snitte"
-#: ui/albumcovermanager.cpp:472
+#: ui/albumcovermanager.cpp:474
#, qt-format
msgid "%1 transferred"
msgstr "%1 oorgedra"
@@ -154,19 +154,19 @@ msgstr "%L1 keer gespeel"
msgid "%filename%"
msgstr "%filename%"
-#: transcoder/transcodedialog.cpp:214
+#: transcoder/transcodedialog.cpp:216
#, c-format, qt-plural-format
msgctxt ""
msgid "%n failed"
msgstr "%n onsuksesvol"
-#: transcoder/transcodedialog.cpp:209
+#: transcoder/transcodedialog.cpp:211
#, c-format, qt-plural-format
msgctxt ""
msgid "%n finished"
msgstr "%n voltooi"
-#: transcoder/transcodedialog.cpp:203
+#: transcoder/transcodedialog.cpp:205
#, c-format, qt-plural-format
msgctxt ""
msgid "%n remaining"
@@ -265,7 +265,7 @@ msgstr "(verskillend tussen meervuldige liedjies)"
msgid ", by "
msgstr ", deur"
-#: ui/about.cpp:84
+#: ui/about.cpp:86
msgid "...and all the Amarok contributors"
msgstr "...en almal wat bygedra het tot Amarok"
@@ -285,7 +285,7 @@ msgstr "0px"
msgid "1 day"
msgstr "1 dag"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
msgid "1 track"
msgstr "1 snit"
@@ -397,6 +397,10 @@ msgid ""
"A song will be included in the playlist if it matches these conditions."
msgstr "'n Liedjie sal ingesluit word in die speellys as dit aan hierdie vereisdes voldoen."
+#: ../bin/src/ui_behavioursettingspage.h:417
+msgid "A&utomatic"
+msgstr ""
+
#: smartplaylists/searchterm.cpp:396
msgid "A-Z"
msgstr "A-Z"
@@ -425,11 +429,11 @@ msgstr "AIFF"
msgid "ALL GLORY TO THE HYPNOTOAD"
msgstr "Alle glorie aan die HYPNOTOAD"
-#: ui/albumcovermanager.cpp:105 ui/albumcoversearcher.cpp:158
+#: ui/albumcovermanager.cpp:107 ui/albumcoversearcher.cpp:158
msgid "Abort"
msgstr "Staak"
-#: ui/about.cpp:30
+#: ui/about.cpp:32
#, qt-format
msgid "About %1"
msgstr "Meer oor %1"
@@ -443,7 +447,7 @@ msgid "About Qt..."
msgstr "Meer oor Qt..."
#: playlist/playlistsaveoptionsdialog.cpp:34
-#: ../bin/src/ui_behavioursettingspage.h:379
+#: ../bin/src/ui_behavioursettingspage.h:418
msgid "Absolute"
msgstr "Absoluut"
@@ -470,10 +474,6 @@ msgstr "Aksie"
msgid "Activate/Deactivate Wii Remote"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:128
-msgid "Activities stream"
-msgstr "Aktiewe strome"
-
#: internet/podcasts/addpodcastdialog.cpp:63
msgid "Add Podcast"
msgstr "Voeg potgooi by"
@@ -502,7 +502,7 @@ msgstr "Voeg nog 'n stroom by..."
msgid "Add directory..."
msgstr "Voeg gids by..."
-#: ui/mainwindow.cpp:2049
+#: ui/mainwindow.cpp:2075
msgid "Add file"
msgstr "Voeg lêer by"
@@ -518,12 +518,12 @@ msgstr "Voeg lêer(s) by die transkodeerder by"
msgid "Add file..."
msgstr "Voeg lêer by..."
-#: transcoder/transcodedialog.cpp:224
+#: transcoder/transcodedialog.cpp:226
msgid "Add files to transcode"
msgstr "Voeg lêers by om te transkodeer"
-#: transcoder/transcodedialog.cpp:306 ui/mainwindow.cpp:2076
-#: ripper/ripcddialog.cpp:201
+#: transcoder/transcodedialog.cpp:308 ui/mainwindow.cpp:2102
+#: ripper/ripcddialog.cpp:203
msgid "Add folder"
msgstr "Voeg gids by"
@@ -627,7 +627,7 @@ msgstr "Voeg tot Spotify speellyste by"
msgid "Add to Spotify starred"
msgstr "Voeg by Spotify gester"
-#: ui/mainwindow.cpp:1850
+#: ui/mainwindow.cpp:1876
msgid "Add to another playlist"
msgstr "Voeg tot 'n ander speellys by"
@@ -635,8 +635,8 @@ msgstr "Voeg tot 'n ander speellys by"
msgid "Add to playlist"
msgstr "Voeg tot 'n speellys by"
-#: ../bin/src/ui_behavioursettingspage.h:359
-#: ../bin/src/ui_behavioursettingspage.h:371
+#: ../bin/src/ui_behavioursettingspage.h:398
+#: ../bin/src/ui_behavioursettingspage.h:410
msgid "Add to the queue"
msgstr "Voeg aan die einde van die tou by"
@@ -677,8 +677,8 @@ msgstr "Na"
msgid "After copying..."
msgstr "Na kopiëring..."
-#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1349
-#: ui/organisedialog.cpp:64 ui/qtsystemtrayicon.cpp:251
+#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1382
+#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:251
#: ../bin/src/ui_groupbydialog.h:128 ../bin/src/ui_groupbydialog.h:147
#: ../bin/src/ui_groupbydialog.h:166 ../bin/src/ui_albumcoversearcher.h:110
#: ../bin/src/ui_albumcoversearcher.h:112 ../bin/src/ui_edittagdialog.h:723
@@ -690,8 +690,8 @@ msgstr "Album"
msgid "Album (ideal loudness for all tracks)"
msgstr "Album (ideale hardheid vir alle snitte)"
-#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1363
-#: ui/organisedialog.cpp:67 ../bin/src/ui_groupbydialog.h:130
+#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1396
+#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:130
#: ../bin/src/ui_groupbydialog.h:149 ../bin/src/ui_groupbydialog.h:168
#: ../bin/src/ui_edittagdialog.h:725
msgid "Album artist"
@@ -705,11 +705,11 @@ msgstr "Album omslag"
msgid "Album info on jamendo.com..."
msgstr "Album se inligting op jamendo.com..."
-#: ui/albumcovermanager.cpp:129
+#: ui/albumcovermanager.cpp:131
msgid "Albums with covers"
msgstr "Albums met omslae"
-#: ui/albumcovermanager.cpp:130
+#: ui/albumcovermanager.cpp:132
msgid "Albums without covers"
msgstr "Albums sonder omslae"
@@ -717,7 +717,7 @@ msgstr "Albums sonder omslae"
msgid "All"
msgstr "Alle"
-#: ui/mainwindow.cpp:158
+#: ui/mainwindow.cpp:160
msgid "All Files (*)"
msgstr "Alle lêers (*)"
@@ -726,11 +726,11 @@ msgctxt "Label for button to enable/disable Hypnotoad background sound."
msgid "All Glory to the Hypnotoad!"
msgstr "Alle heil aan die Hypnotoad!"
-#: ui/albumcovermanager.cpp:128
+#: ui/albumcovermanager.cpp:130
msgid "All albums"
msgstr "Alle albums"
-#: ui/albumcovermanager.cpp:262
+#: ui/albumcovermanager.cpp:264
msgid "All artists"
msgstr "Alle kunstenaars"
@@ -738,12 +738,12 @@ msgstr "Alle kunstenaars"
msgid "All files (*)"
msgstr "Alle lêers (*)"
-#: playlistparsers/playlistparser.cpp:74
+#: playlistparsers/playlistparser.cpp:76
#, qt-format
msgid "All playlists (%1)"
msgstr "Alle speellyste (%1)"
-#: ui/about.cpp:80
+#: ui/about.cpp:82
msgid "All the translators"
msgstr "Al die vertalers"
@@ -767,16 +767,16 @@ msgstr "Laat \"mid/side\"-enkodering toe."
msgid "Alongside the originals"
msgstr "Naas die oorspronlikes"
-#: ../bin/src/ui_behavioursettingspage.h:331
-msgid "Always hide the main window"
-msgstr "Steek altyd die hoofvenster weg"
+#: ../bin/src/ui_behavioursettingspage.h:370
+msgid "Alwa&ys hide the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:330
-msgid "Always show the main window"
-msgstr "Wys altyd die hoofvenster"
+#: ../bin/src/ui_behavioursettingspage.h:369
+msgid "Always show &the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:345
-#: ../bin/src/ui_behavioursettingspage.h:365
+#: ../bin/src/ui_behavioursettingspage.h:384
+#: ../bin/src/ui_behavioursettingspage.h:404
msgid "Always start playing"
msgstr "Begin altyd dadelik speel"
@@ -790,7 +790,7 @@ msgstr "'n Ekstra uitbreiding word benodig om Spotify in Clementine te gebruik.
msgid "An error occurred loading the iTunes database"
msgstr "'n Fout het plaasgevind tydens die laai van die iTunes-databasis"
-#: playlist/playlist.cpp:424 ui/edittagdialog.cpp:703
+#: playlist/playlist.cpp:454 ui/edittagdialog.cpp:703
#, qt-format
msgid "An error occurred writing metadata to '%1'"
msgstr "'n Fout het plaasgevind tydens die skryf van metadata na '%1'"
@@ -799,7 +799,7 @@ msgstr "'n Fout het plaasgevind tydens die skryf van metadata na '%1'"
msgid "An unspecified error occurred."
msgstr "'n Onbekende fout het voorgekom"
-#: ui/about.cpp:85
+#: ui/about.cpp:87
msgid "And:"
msgstr "En:"
@@ -817,13 +817,13 @@ msgstr "Voorkoms"
msgid "Append files/URLs to the playlist"
msgstr "Voeg lêers/URLs by die speellys by"
-#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:454
+#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:455
#: internet/core/internetservice.cpp:48 library/libraryview.cpp:383
#: widgets/fileviewlist.cpp:31
msgid "Append to current playlist"
msgstr "Voeg by huidige speellys by"
-#: ../bin/src/ui_behavioursettingspage.h:356
+#: ../bin/src/ui_behavioursettingspage.h:395
msgid "Append to the playlist"
msgstr "Voeg by speellys by"
@@ -846,8 +846,8 @@ msgid ""
"the songs of your library?"
msgstr "Is jy seker dat jy die liedjie se statestiek in die liedjie se lêer wil skryf vir al die liedjies in jou biblioteek?"
-#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1347
-#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:249
+#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1380
+#: ui/organisedialog.cpp:66 ui/qtsystemtrayicon.cpp:249
#: ../bin/src/ui_groupbydialog.h:129 ../bin/src/ui_groupbydialog.h:148
#: ../bin/src/ui_groupbydialog.h:167 ../bin/src/ui_albumcoversearcher.h:106
#: ../bin/src/ui_albumcoversearcher.h:108 ../bin/src/ui_edittagdialog.h:721
@@ -855,17 +855,17 @@ msgstr "Is jy seker dat jy die liedjie se statestiek in die liedjie se lêer wil
msgid "Artist"
msgstr "Kunstenaar"
-#: ui/mainwindow.cpp:283
+#: ui/mainwindow.cpp:285
msgid "Artist info"
msgstr "Kunstenaar informasie"
-#: ui/organisedialog.cpp:66
+#: ui/organisedialog.cpp:67
msgid "Artist's initial"
msgstr "Kunstenaar se voorletters"
-#: ../bin/src/ui_behavioursettingspage.h:381
-msgid "Ask when saving"
-msgstr "Vra voor storing"
+#: ../bin/src/ui_behavioursettingspage.h:420
+msgid "As&k when saving"
+msgstr ""
#: ../bin/src/ui_transcodedialog.h:225
#: ../bin/src/ui_networkremotesettingspage.h:250
@@ -879,7 +879,7 @@ msgstr "Oudio uitset"
#: internet/digitally/digitallyimportedsettingspage.cpp:82
#: internet/magnatune/magnatunesettingspage.cpp:117
-#: internet/lastfm/lastfmservice.cpp:268
+#: internet/lastfm/lastfmservice.cpp:270
#: internet/lastfm/lastfmsettingspage.cpp:76
msgid "Authentication failed"
msgstr "Aanteken onsuksesvol"
@@ -888,7 +888,7 @@ msgstr "Aanteken onsuksesvol"
msgid "Author"
msgstr "Outeur"
-#: ui/about.cpp:68
+#: ui/about.cpp:70
msgid "Authors"
msgstr "Outeurs"
@@ -898,7 +898,6 @@ msgid "Auto"
msgstr "Outomaties"
#: playlist/playlistsaveoptionsdialog.cpp:32
-#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Automatic"
msgstr "Outomaties"
@@ -918,7 +917,7 @@ msgstr "Beskikbaar"
msgid "Average bitrate"
msgstr "Gemiddelde bistempo"
-#: covers/coversearchstatisticsdialog.cpp:69
+#: covers/coversearchstatisticsdialog.cpp:71
msgid "Average image size"
msgstr "Gemiddelde beeldgrootte"
@@ -926,7 +925,7 @@ msgstr "Gemiddelde beeldgrootte"
msgid "BBC Podcasts"
msgstr "BBC potgooi"
-#: playlist/playlist.cpp:1383 ui/organisedialog.cpp:74
+#: playlist/playlist.cpp:1416 ui/organisedialog.cpp:75
#: ../bin/src/ui_edittagdialog.h:704
msgid "BPM"
msgstr "SPM"
@@ -947,7 +946,7 @@ msgstr "Agtergrond prentjie"
msgid "Background opacity"
msgstr "Agtergrond deurskynendheid"
-#: core/database.cpp:648
+#: core/database.cpp:664
msgid "Backing up database"
msgstr "Databasis word gerugsteun"
@@ -971,7 +970,7 @@ msgstr "Eenvoudig Blou"
msgid "Basic audio type"
msgstr "Basies oudio tipe"
-#: ../bin/src/ui_behavioursettingspage.h:318
+#: ../bin/src/ui_behavioursettingspage.h:357
msgid "Behavior"
msgstr "Gedrag"
@@ -983,7 +982,7 @@ msgstr "Beste"
msgid "Biography"
msgstr ""
-#: playlist/playlist.cpp:1385 ../bin/src/ui_edittagdialog.h:706
+#: playlist/playlist.cpp:1418 ../bin/src/ui_edittagdialog.h:706
#: ../bin/src/ui_streamdetailsdialog.h:139
msgid "Bit rate"
msgstr "Bistempo"
@@ -998,7 +997,7 @@ msgstr "Bistempo"
msgid "Bitrate"
msgstr "Bistempo"
-#: ui/organisedialog.cpp:80
+#: ui/organisedialog.cpp:81
msgctxt "Refers to bitrate in file organise dialog."
msgid "Bitrate"
msgstr "Bistempo"
@@ -1089,7 +1088,7 @@ msgstr "Verander kortskakel"
msgid "Change shuffle mode"
msgstr "Verander skommel modus"
-#: ../bin/src/ui_behavioursettingspage.h:370
+#: ../bin/src/ui_behavioursettingspage.h:409
msgid "Change the currently playing song"
msgstr "Kies 'n nuwe liedjie"
@@ -1119,7 +1118,7 @@ msgstr "Soek vir nuwe episodes"
msgid "Check for updates"
msgstr "Kyk vir nuwer weergawes"
-#: ui/mainwindow.cpp:820
+#: ui/mainwindow.cpp:824
msgid "Check for updates..."
msgstr "Kyk vir nuwer weergawes..."
@@ -1168,7 +1167,7 @@ msgstr "Klassiek"
msgid "Cleaning up"
msgstr "Daar word skoongemaak"
-#: transcoder/transcodedialog.cpp:61 widgets/lineedit.cpp:41
+#: transcoder/transcodedialog.cpp:63 widgets/lineedit.cpp:41
#: ../bin/src/ui_queuemanager.h:151
msgid "Clear"
msgstr "Wis"
@@ -1261,7 +1260,6 @@ msgstr "Kliek hier om die speellys as gunsteling te stoor en teganklik sal bly i
msgid "Click to toggle between remaining time and total time"
msgstr "Kliek hier om te wissel tussen oorblywende en totale tyd"
-#: ../bin/src/ui_soundcloudsettingspage.h:103
#: ../bin/src/ui_lastfmsettingspage.h:133
#: ../bin/src/ui_googledrivesettingspage.h:102
#: ../bin/src/ui_dropboxsettingspage.h:102
@@ -1288,7 +1286,7 @@ msgstr "Maak visualisasie toe"
msgid "Closing this window will cancel the download."
msgstr "Die aflaai sal stop as hierdie venster toegemaak word."
-#: ui/albumcovermanager.cpp:213
+#: ui/albumcovermanager.cpp:215
msgid "Closing this window will stop searching for album covers."
msgstr "Die soek vir album-omslae sal stop as hierdie venster toegemaak word."
@@ -1308,8 +1306,12 @@ msgstr "Kleure"
msgid "Comma separated list of class:level, level is 0-3"
msgstr "Komma geskeide lys van klas:vlak, vlak is 0-3"
-#: playlist/playlist.cpp:1402 smartplaylists/searchterm.cpp:384
-#: ui/organisedialog.cpp:78 ../bin/src/ui_edittagdialog.h:718
+#: ../bin/src/ui_behavioursettingspage.h:425
+msgid "Comma seperated list of prefix words to ignore when sorting"
+msgstr ""
+
+#: playlist/playlist.cpp:1435 smartplaylists/searchterm.cpp:384
+#: ui/organisedialog.cpp:79 ../bin/src/ui_edittagdialog.h:718
msgid "Comment"
msgstr "Kommentaar"
@@ -1321,8 +1323,8 @@ msgstr "Voltooi etikette outomaties"
msgid "Complete tags automatically..."
msgstr "Voltooi etikette outomaties..."
-#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1365
-#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:131
+#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1398
+#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:131
#: ../bin/src/ui_groupbydialog.h:150 ../bin/src/ui_groupbydialog.h:169
msgid "Composer"
msgstr "Komponis"
@@ -1340,10 +1342,6 @@ msgstr "Stel Magnatune op..."
msgid "Configure Shortcuts"
msgstr "Stel snelskakels op"
-#: internet/soundcloud/soundcloudservice.cpp:381
-msgid "Configure SoundCloud..."
-msgstr ""
-
#: internet/spotify/spotifyservice.cpp:927
msgid "Configure Spotify..."
msgstr "Stel Spotify op..."
@@ -1352,11 +1350,11 @@ msgstr "Stel Spotify op..."
msgid "Configure Subsonic..."
msgstr "Stel Subsonic op..."
-#: globalsearch/globalsearchview.cpp:151 globalsearch/globalsearchview.cpp:480
+#: globalsearch/globalsearchview.cpp:152 globalsearch/globalsearchview.cpp:481
msgid "Configure global search..."
msgstr "Globale soek instellings..."
-#: ui/mainwindow.cpp:659
+#: ui/mainwindow.cpp:661
msgid "Configure library..."
msgstr "Stel my versameling op..."
@@ -1366,7 +1364,7 @@ msgid "Configure podcasts..."
msgstr "Stel potgooie op..."
#: internet/core/cloudfileservice.cpp:107
-#: internet/digitally/digitallyimportedservicebase.cpp:182
+#: internet/digitally/digitallyimportedservicebase.cpp:184
#: internet/googledrive/googledriveservice.cpp:231
#: ../bin/src/ui_globalsearchsettingspage.h:146
msgid "Configure..."
@@ -1428,11 +1426,11 @@ msgid "Copy to clipboard"
msgstr "Kopiëer na knipbord"
#: library/libraryview.cpp:419 internet/podcasts/podcastservice.cpp:438
-#: ui/mainwindow.cpp:719 widgets/fileviewlist.cpp:44
+#: ui/mainwindow.cpp:721 widgets/fileviewlist.cpp:44
msgid "Copy to device..."
msgstr "Kopiëer na die toestel..."
-#: devices/deviceview.cpp:228 ui/mainwindow.cpp:709
+#: devices/deviceview.cpp:228 ui/mainwindow.cpp:711
#: widgets/fileviewlist.cpp:40
msgid "Copy to library..."
msgstr "Kopiëer na my versameling"
@@ -1447,7 +1445,7 @@ msgid ""
"http://localhost:4040/"
msgstr "Kan nie aan Subsonic verbind nie. Kyk op die bediener se URL reg is. Byvoorbeeld: http://localhost:4040/"
-#: transcoder/transcoder.cpp:58
+#: transcoder/transcoder.cpp:59
#, qt-format
msgid ""
"Could not create the GStreamer element \"%1\" - make sure you have all the "
@@ -1471,14 +1469,14 @@ msgstr ""
msgid "Couldn't create playlist"
msgstr "Kon nie speellys skep nie"
-#: transcoder/transcoder.cpp:425
+#: transcoder/transcoder.cpp:426
#, qt-format
msgid ""
"Couldn't find a muxer for %1, check you have the correct GStreamer plugins "
"installed"
msgstr "Kan nie 'n multiplekser vir %1 vind nie. Maak seker jy het die korrekte GStreamer uitbreidings installeer."
-#: transcoder/transcoder.cpp:419
+#: transcoder/transcoder.cpp:420
#, qt-format
msgid ""
"Couldn't find an encoder for %1, check you have the correct GStreamer "
@@ -1519,7 +1517,7 @@ msgstr "Geen omslag"
msgid "Cover art set from %1"
msgstr "Omslag gestel vanaf %1"
-#: covers/coversearchstatisticsdialog.cpp:59 ui/albumcoversearcher.cpp:100
+#: covers/coversearchstatisticsdialog.cpp:61 ui/albumcoversearcher.cpp:100
#, qt-format
msgid "Covers from %1"
msgstr "Omslae vanaf %1"
@@ -1576,18 +1574,18 @@ msgstr ""
msgid "Dance"
msgstr "Dans"
-#: core/database.cpp:601
+#: core/database.cpp:617
msgid ""
"Database corruption detected. Please read https://github.com/clementine-"
"player/Clementine/wiki/Database-Corruption for instructions on how to "
"recover your database"
msgstr ""
-#: playlist/playlist.cpp:1399 ../bin/src/ui_edittagdialog.h:715
+#: playlist/playlist.cpp:1432 ../bin/src/ui_edittagdialog.h:715
msgid "Date created"
msgstr "Datum geskep"
-#: playlist/playlist.cpp:1397 ../bin/src/ui_edittagdialog.h:714
+#: playlist/playlist.cpp:1430 ../bin/src/ui_edittagdialog.h:714
msgid "Date modified"
msgstr "Datum verander"
@@ -1638,7 +1636,7 @@ msgid "Delete downloaded data"
msgstr "Vee afgelaaide data uit"
#: devices/deviceview.cpp:408 library/libraryview.cpp:678
-#: ui/mainwindow.cpp:2432 widgets/fileview.cpp:188
+#: ui/mainwindow.cpp:2458 widgets/fileview.cpp:188
msgid "Delete files"
msgstr "Skrap lêers"
@@ -1646,7 +1644,7 @@ msgstr "Skrap lêers"
msgid "Delete from device..."
msgstr "Skrap van toestel..."
-#: library/libraryview.cpp:422 ui/mainwindow.cpp:722
+#: library/libraryview.cpp:422 ui/mainwindow.cpp:724
#: widgets/fileviewlist.cpp:47
msgid "Delete from disk..."
msgstr "Skrap van skyf..."
@@ -1679,11 +1677,11 @@ msgstr "Lêers word geskrap"
msgid "Depth"
msgstr ""
-#: ui/mainwindow.cpp:1763
+#: ui/mainwindow.cpp:1789
msgid "Dequeue selected tracks"
msgstr "Verwyder gekose snitte uit die tou"
-#: ui/mainwindow.cpp:1761
+#: ui/mainwindow.cpp:1787
msgid "Dequeue track"
msgstr "Verwyder snit uit die tou"
@@ -1712,7 +1710,7 @@ msgstr "Toestelsnaam"
msgid "Device properties..."
msgstr "Toestelseienskappe..."
-#: ui/mainwindow.cpp:276
+#: ui/mainwindow.cpp:278
msgid "Devices"
msgstr "Toestelle"
@@ -1763,8 +1761,8 @@ msgctxt "Refers to search provider's status."
msgid "Disabled"
msgstr "Afgeskakel"
-#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1355
-#: ui/organisedialog.cpp:73 ../bin/src/ui_groupbydialog.h:139
+#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1388
+#: ui/organisedialog.cpp:74 ../bin/src/ui_groupbydialog.h:139
#: ../bin/src/ui_groupbydialog.h:158 ../bin/src/ui_groupbydialog.h:177
#: ../bin/src/ui_edittagdialog.h:722 ../bin/src/ui_ripcddialog.h:313
msgid "Disc"
@@ -1829,7 +1827,7 @@ msgid "Don't shuffle"
msgstr "Moenie skommel nie"
#: internet/magnatune/magnatunedownloaddialog.cpp:312
-#: ui/albumcovermanager.cpp:215
+#: ui/albumcovermanager.cpp:217
msgid "Don't stop!"
msgstr "Moenie stop nie!"
@@ -1842,11 +1840,11 @@ msgstr "Maak 'n skenking"
msgid "Double click to open"
msgstr "Dubbelkliek om oop te maak"
-#: ../bin/src/ui_behavioursettingspage.h:367
+#: ../bin/src/ui_behavioursettingspage.h:406
msgid "Double clicking a song in the playlist will..."
msgstr "As jy 'n liedjie in die snitlys tweemaal klik sal..."
-#: ../bin/src/ui_behavioursettingspage.h:353
+#: ../bin/src/ui_behavioursettingspage.h:392
msgid "Double clicking a song will..."
msgstr "Dubbelkliek op 'n liedjie sal..."
@@ -1955,7 +1953,7 @@ msgstr "Dinamiese skommeling"
msgid "Edit smart playlist..."
msgstr "Verander slimspeellys"
-#: ui/mainwindow.cpp:1813
+#: ui/mainwindow.cpp:1839
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Verander etiket \"%1\"..."
@@ -2001,7 +1999,7 @@ msgstr "Skakel grafiese effenaar aan"
msgid "Enable shortcuts only when Clementine is focused"
msgstr "Laat kortskakels slegs toe wanneer Clementine in fokus is"
-#: ../bin/src/ui_behavioursettingspage.h:339
+#: ../bin/src/ui_behavioursettingspage.h:375
msgid "Enable song metadata inline edition with click"
msgstr "Skakel liedjie metadata in-lyn uitgawe aan met 'n kliek"
@@ -2090,12 +2088,12 @@ msgid "Equivalent to --log-levels *:3"
msgstr "Ekwivalent aan --log-levels *:3"
#: internet/magnatune/magnatunedownloaddialog.cpp:246
-#: library/libraryview.cpp:672 ui/mainwindow.cpp:2105 ui/mainwindow.cpp:2384
-#: ui/mainwindow.cpp:2563
+#: library/libraryview.cpp:672 ui/mainwindow.cpp:2131 ui/mainwindow.cpp:2410
+#: ui/mainwindow.cpp:2589
msgid "Error"
msgstr "Fout"
-#: ripper/ripcddialog.cpp:152
+#: ripper/ripcddialog.cpp:154
msgid "Error Ripping CD"
msgstr "Fout met die \"rip\" van die CD"
@@ -2103,11 +2101,11 @@ msgstr "Fout met die \"rip\" van die CD"
msgid "Error connecting MTP device"
msgstr "Fout tydens verbinding aan MTP-toestel"
-#: ui/organiseerrordialog.cpp:52
+#: ui/organiseerrordialog.cpp:54
msgid "Error copying songs"
msgstr "Fout tydens kopiëring van liedjies"
-#: ui/organiseerrordialog.cpp:59
+#: ui/organiseerrordialog.cpp:61
msgid "Error deleting songs"
msgstr "Fout tydens verwydering van liedjies"
@@ -2125,12 +2123,12 @@ msgstr "Fout tydens aflaai van die Spotify uitbreiding"
msgid "Error loading %1"
msgstr "Fout tydens laai van %1"
-#: internet/digitally/digitallyimportedservicebase.cpp:200
+#: internet/digitally/digitallyimportedservicebase.cpp:202
#: internet/digitally/digitallyimportedurlhandler.cpp:96
msgid "Error loading di.fm playlist"
msgstr "Fout tydens laai van di.fm speellys"
-#: transcoder/transcoder.cpp:390
+#: transcoder/transcoder.cpp:391
#, qt-format
msgid "Error processing %1: %2"
msgstr "Fout tydens verwerking van %1:%2"
@@ -2204,16 +2202,16 @@ msgstr "Voer afgelaaide omslae uit"
msgid "Export embedded covers"
msgstr "Voer ingeslote omslae uit"
-#: ui/albumcovermanager.cpp:799 ui/albumcovermanager.cpp:823
+#: ui/albumcovermanager.cpp:801 ui/albumcovermanager.cpp:825
msgid "Export finished"
msgstr "Uitvoer voltooid"
-#: ui/albumcovermanager.cpp:808
+#: ui/albumcovermanager.cpp:810
#, qt-format
msgid "Exported %1 covers out of %2 (%3 skipped)"
msgstr "%1 omslae uit %2 uitgevoer (%3 gespring)"
-#: core/song.cpp:430 transcoder/transcoder.cpp:233
+#: core/song.cpp:430 transcoder/transcoder.cpp:234
#: ../bin/src/ui_magnatunedownloaddialog.h:136
#: ../bin/src/ui_magnatunesettingspage.h:170
#: ../bin/src/ui_transcodersettingspage.h:176
@@ -2237,7 +2235,7 @@ msgstr "Uitdowing"
msgid "Fading duration"
msgstr "Duur van uitdowing"
-#: ui/mainwindow.cpp:2106
+#: ui/mainwindow.cpp:2132
msgid "Failed reading CD drive"
msgstr "Kan nie van die CD-dryf lees nie"
@@ -2272,10 +2270,6 @@ msgstr ""
msgid "Fast"
msgstr "Vinnig"
-#: internet/soundcloud/soundcloudservice.cpp:141
-msgid "Favorites"
-msgstr ""
-
#: library/library.cpp:88
msgid "Favourite tracks"
msgstr "Gunsteling snitte"
@@ -2308,7 +2302,7 @@ msgstr "Fout met haal van omslae"
msgid "File Format"
msgstr "Lêer formaat"
-#: ui/organisedialog.cpp:82
+#: ui/organisedialog.cpp:83
msgid "File extension"
msgstr "Lêeruitsbreiding"
@@ -2316,11 +2310,11 @@ msgstr "Lêeruitsbreiding"
msgid "File formats"
msgstr "Lêer formate"
-#: playlist/playlist.cpp:1389 ../bin/src/ui_edittagdialog.h:716
+#: playlist/playlist.cpp:1422 ../bin/src/ui_edittagdialog.h:716
msgid "File name"
msgstr "Lêernaam"
-#: playlist/playlist.cpp:1391
+#: playlist/playlist.cpp:1424
msgid "File name (without path)"
msgstr "Lêernaam (sonder pad)"
@@ -2328,11 +2322,11 @@ msgstr "Lêernaam (sonder pad)"
msgid "File paths"
msgstr "Lêer roetes"
-#: playlist/playlist.cpp:1393 ../bin/src/ui_edittagdialog.h:710
+#: playlist/playlist.cpp:1426 ../bin/src/ui_edittagdialog.h:710
msgid "File size"
msgstr "Lêergrootte"
-#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1395
+#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1428
#: ../bin/src/ui_groupbydialog.h:132 ../bin/src/ui_groupbydialog.h:151
#: ../bin/src/ui_groupbydialog.h:170 ../bin/src/ui_edittagdialog.h:712
msgid "File type"
@@ -2342,7 +2336,7 @@ msgstr "Lêertipe"
msgid "Filename"
msgstr "Lêernaam"
-#: ui/mainwindow.cpp:266
+#: ui/mainwindow.cpp:268
msgid "Files"
msgstr "Lêers"
@@ -2455,7 +2449,7 @@ msgstr "Volle hoëtoon"
msgid "Ge&nre"
msgstr ""
-#: ui/settingsdialog.cpp:133
+#: ui/settingsdialog.cpp:132
msgid "General"
msgstr "Algemeen"
@@ -2463,8 +2457,8 @@ msgstr "Algemeen"
msgid "General settings"
msgstr "Algemene instellings"
-#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1361
-#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:133
+#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1394
+#: ui/organisedialog.cpp:78 ../bin/src/ui_groupbydialog.h:133
#: ../bin/src/ui_groupbydialog.h:152 ../bin/src/ui_groupbydialog.h:171
#: ../bin/src/ui_ripcddialog.h:316
msgid "Genre"
@@ -2484,7 +2478,7 @@ msgstr "Kry 'n URL om hierdie snitlys te deel"
msgid "Getting channels"
msgstr "Kanale word verkry"
-#: internet/digitally/digitallyimportedservicebase.cpp:100
+#: internet/digitally/digitallyimportedservicebase.cpp:102
msgid "Getting streams"
msgstr "Strome word verkry"
@@ -2508,13 +2502,13 @@ msgstr "Gaan na vorige speellys oortjie"
msgid "Google Drive"
msgstr "Google Drive"
-#: covers/coversearchstatisticsdialog.cpp:53 ui/albumcovermanager.cpp:465
+#: covers/coversearchstatisticsdialog.cpp:55 ui/albumcovermanager.cpp:467
#: ../bin/src/ui_coversearchstatisticsdialog.h:75
#, qt-format
msgid "Got %1 covers out of %2 (%3 failed)"
msgstr "%1 van %2 omslae is verky (%3 onsuksesvol)"
-#: ../bin/src/ui_behavioursettingspage.h:335
+#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Grey out non existent songs in my playlists"
msgstr "Maak lidejies in my speellys wat nie bestaan nie grys"
@@ -2522,7 +2516,7 @@ msgstr "Maak lidejies in my speellys wat nie bestaan nie grys"
msgid "Group Library by..."
msgstr "Groeppeer versameling volgens..."
-#: globalsearch/globalsearchview.cpp:477 library/libraryfilterwidget.cpp:100
+#: globalsearch/globalsearchview.cpp:478 library/libraryfilterwidget.cpp:100
msgid "Group by"
msgstr "Groeppeer volgens"
@@ -2554,8 +2548,8 @@ msgstr "Groeppeer volgens Genre/Album"
msgid "Group by Genre/Artist/Album"
msgstr "Groeppeer volgens Genre/Kunstenaar/Album"
-#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1369
-#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:141
+#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1402
+#: ui/organisedialog.cpp:71 ../bin/src/ui_groupbydialog.h:141
#: ../bin/src/ui_groupbydialog.h:160 ../bin/src/ui_groupbydialog.h:179
msgid "Grouping"
msgstr "Groepering"
@@ -2643,7 +2637,7 @@ msgstr "Ikone bo"
msgid "Identifying song"
msgstr "Liedjies word geïdentifiseer"
-#: ../bin/src/ui_behavioursettingspage.h:337
+#: ../bin/src/ui_behavioursettingspage.h:373
msgid ""
"If activated, clicking a selected song in the playlist view will let you "
"edit the tag value directly"
@@ -2663,6 +2657,10 @@ msgstr "As jy die URL van 'n potgooi ken, tik dit hier onder in en druk dan op G
msgid "Ignore \"The\" in artist names"
msgstr "Ignoreer \"The\" in kunstenaars se name"
+#: ../bin/src/ui_behavioursettingspage.h:423
+msgid "Ignore prefix word(s)"
+msgstr ""
+
#: ui/albumcoverchoicecontroller.cpp:44
msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
msgstr "Beelde (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
@@ -2744,15 +2742,15 @@ msgstr "Voeg in..."
msgid "Installed"
msgstr "Geïnstalleer"
-#: core/database.cpp:585
+#: core/database.cpp:601
msgid "Integrity check"
msgstr "Integriteitstoets"
-#: ui/mainwindow.cpp:272
+#: ui/mainwindow.cpp:274
msgid "Internet"
msgstr "Internet"
-#: ui/settingsdialog.cpp:156
+#: ui/settingsdialog.cpp:155
msgid "Internet providers"
msgstr "Insternet verskaffers"
@@ -2765,7 +2763,7 @@ msgstr "Internet dienste"
msgid "Intro tracks"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:280
+#: internet/lastfm/lastfmservice.cpp:282
msgid "Invalid API key"
msgstr "Ongeldige API sleutel"
@@ -2773,27 +2771,27 @@ msgstr "Ongeldige API sleutel"
msgid "Invalid URL"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:270
+#: internet/lastfm/lastfmservice.cpp:272
msgid "Invalid format"
msgstr "Ongeldige formaat"
-#: internet/lastfm/lastfmservice.cpp:266
+#: internet/lastfm/lastfmservice.cpp:268
msgid "Invalid method"
msgstr "Ongeldige metode"
-#: internet/lastfm/lastfmservice.cpp:272
+#: internet/lastfm/lastfmservice.cpp:274
msgid "Invalid parameters"
msgstr "Ongeldige parameters"
-#: internet/lastfm/lastfmservice.cpp:274
+#: internet/lastfm/lastfmservice.cpp:276
msgid "Invalid resource specified"
msgstr "Ongeldige bron gespesifiseer"
-#: internet/lastfm/lastfmservice.cpp:264
+#: internet/lastfm/lastfmservice.cpp:266
msgid "Invalid service"
msgstr "Ongeldige diens"
-#: internet/lastfm/lastfmservice.cpp:278
+#: internet/lastfm/lastfmservice.cpp:280
msgid "Invalid session key"
msgstr "Ongeldige sessiesleutel"
@@ -2825,7 +2823,7 @@ msgstr "Jamendo se top snitte vir die week"
msgid "Jamendo database"
msgstr "Jamendo databasis"
-#: ../bin/src/ui_behavioursettingspage.h:350
+#: ../bin/src/ui_behavioursettingspage.h:389
msgid "Jump to previous song right away"
msgstr "Spring dadelik na vorige lied"
@@ -2845,7 +2843,7 @@ msgstr "Hou knoppies vir %1 sekonde vas"
msgid "Keep buttons for %1 seconds..."
msgstr "Hou knoppies vir %1 sekondes vas"
-#: ../bin/src/ui_behavioursettingspage.h:321
+#: ../bin/src/ui_behavioursettingspage.h:360
msgid "Keep running in the background when the window is closed"
msgstr "Hou aan uitvoer in die agtergrond al word die venster gesluit"
@@ -2862,7 +2860,7 @@ msgstr "Katjies"
msgid "Kuduro"
msgstr "Kuduro"
-#: ../bin/src/ui_behavioursettingspage.h:323
+#: ../bin/src/ui_behavioursettingspage.h:362
msgid "Language"
msgstr "Taal"
@@ -2894,7 +2892,7 @@ msgstr "Groot kantlyn-kieslys"
msgid "Last played"
msgstr "Laaste gespeel"
-#: playlist/playlist.cpp:1378 ../bin/src/ui_edittagdialog.h:707
+#: playlist/playlist.cpp:1411 ../bin/src/ui_edittagdialog.h:707
msgctxt "A playlist's tag."
msgid "Last played"
msgstr "Laaste gespeel"
@@ -2903,11 +2901,11 @@ msgstr "Laaste gespeel"
msgid "Last.fm"
msgstr "Last.fm"
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
msgid "Last.fm Authentication"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:287
+#: internet/lastfm/lastfmservice.cpp:289
msgid "Last.fm is currently busy, please try again in a few minutes"
msgstr "Last.fm is tans besig. Probeer asseblief later weer."
@@ -2931,12 +2929,12 @@ msgstr "Mins gunsteling snitte"
msgid "Left"
msgstr "Links"
-#: playlist/playlist.cpp:1351 ui/organisedialog.cpp:79
+#: playlist/playlist.cpp:1384 ui/organisedialog.cpp:80
#: ui/qtsystemtrayicon.cpp:254 ../bin/src/ui_edittagdialog.h:702
msgid "Length"
msgstr "Lengte"
-#: ui/mainwindow.cpp:251 ui/mainwindow.cpp:263
+#: ui/mainwindow.cpp:253 ui/mainwindow.cpp:265
#: ../bin/src/ui_seafilesettingspage.h:177
msgid "Library"
msgstr "Versameling"
@@ -2945,7 +2943,7 @@ msgstr "Versameling"
msgid "Library advanced grouping"
msgstr "Gevorderde groeppering van versameling"
-#: ui/mainwindow.cpp:2683
+#: ui/mainwindow.cpp:2709
msgid "Library rescan notice"
msgstr "Versameling hernagaan kennisgewing"
@@ -2981,7 +2979,7 @@ msgstr "Laai omslag vanaf skyf"
msgid "Load cover from disk..."
msgstr "Verkry omslag van skyf..."
-#: playlist/playlistcontainer.cpp:298
+#: playlist/playlistcontainer.cpp:300
msgid "Load playlist"
msgstr "Laai speellys"
@@ -3001,7 +2999,7 @@ msgstr "iPod databasis word gelaai"
msgid "Loading smart playlist"
msgstr "Slimspeellys word gelaai"
-#: library/librarymodel.cpp:169
+#: library/librarymodel.cpp:170
msgid "Loading songs"
msgstr "Liedjies word gelaai"
@@ -3019,7 +3017,7 @@ msgstr "Snitte word gelaai"
msgid "Loading tracks info"
msgstr "Snitinligting word gelaai"
-#: library/librarymodel.cpp:164
+#: library/librarymodel.cpp:165
#: internet/podcasts/podcastdiscoverymodel.cpp:105 widgets/prettyimage.cpp:168
#: widgets/widgetfadehelper.cpp:96 ../bin/src/ui_addpodcastdialog.h:179
#: ../bin/src/ui_searchpreview.h:105 ../bin/src/ui_organisedialog.h:261
@@ -3032,7 +3030,6 @@ msgstr "Laai lêers/URLs en vervang huidige speellys"
#: ../bin/src/ui_digitallyimportedsettingspage.h:162
#: ../bin/src/ui_magnatunesettingspage.h:163
-#: ../bin/src/ui_soundcloudsettingspage.h:102
#: ../bin/src/ui_spotifysettingspage.h:210
#: ../bin/src/ui_subsonicsettingspage.h:137
#: ../bin/src/ui_lastfmsettingspage.h:132
@@ -3073,7 +3070,7 @@ msgstr "Laag (256x256)"
msgid "Low complexity profile (LC)"
msgstr "Lae kompleksitietsprofiel (LC)"
-#: ui/organisedialog.cpp:71 ../bin/src/ui_songinfosettingspage.h:158
+#: ui/organisedialog.cpp:72 ../bin/src/ui_songinfosettingspage.h:158
msgid "Lyrics"
msgstr "Lirieke"
@@ -3086,11 +3083,11 @@ msgstr "Lirieke vanaf %1"
msgid "Lyrics from the tag"
msgstr ""
-#: transcoder/transcoder.cpp:235
+#: transcoder/transcoder.cpp:236
msgid "M4A AAC"
msgstr "M4A AAC"
-#: core/song.cpp:436 transcoder/transcoder.cpp:238
+#: core/song.cpp:436 transcoder/transcoder.cpp:239
#: ../bin/src/ui_transcodersettingspage.h:174
msgid "MP3"
msgstr "MP3"
@@ -3141,7 +3138,7 @@ msgstr "Maak dit so!"
msgid "Make playlist available offline"
msgstr "Maak speellys beskikbaar indien van lyn af"
-#: internet/lastfm/lastfmservice.cpp:299
+#: internet/lastfm/lastfmservice.cpp:301
msgid "Malformed response"
msgstr "Misvormde antwoord"
@@ -3182,7 +3179,7 @@ msgstr "Voldoen aan een of meer soekterme (OR)"
msgid "Maximum bitrate"
msgstr "Maksimum bistempo"
-#: ripper/ripcddialog.cpp:153
+#: ripper/ripcddialog.cpp:155
msgid "Media has changed. Reloading"
msgstr "Media het verander. 'n Herlaai word gedoen."
@@ -3232,7 +3229,7 @@ msgstr "Speel in Mono af"
msgid "Months"
msgstr "Maande"
-#: playlist/playlist.cpp:1406
+#: playlist/playlist.cpp:1439
msgid "Mood"
msgstr "Stemming"
@@ -3262,7 +3259,7 @@ msgstr "Monteringsadresse"
msgid "Move down"
msgstr "Skuid af"
-#: ui/mainwindow.cpp:712 widgets/fileviewlist.cpp:42
+#: ui/mainwindow.cpp:714 widgets/fileviewlist.cpp:42
msgid "Move to library..."
msgstr "Skuif na my versameling..."
@@ -3271,7 +3268,7 @@ msgstr "Skuif na my versameling..."
msgid "Move up"
msgstr "Skuid op"
-#: transcoder/transcodedialog.cpp:225 ui/mainwindow.cpp:2050
+#: transcoder/transcodedialog.cpp:227 ui/mainwindow.cpp:2076
msgid "Music"
msgstr "Musiek"
@@ -3318,8 +3315,8 @@ msgstr "Nooit"
msgid "Never played"
msgstr "Nooit deurgespeel"
-#: ../bin/src/ui_behavioursettingspage.h:343
-#: ../bin/src/ui_behavioursettingspage.h:363
+#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:402
msgid "Never start playing"
msgstr "Moet nooit begin speel nie"
@@ -3329,7 +3326,7 @@ msgstr "Moet nooit begin speel nie"
msgid "New folder"
msgstr "Nuwe gids"
-#: ui/mainwindow.cpp:1867 ../bin/src/ui_mainwindow.h:709
+#: ui/mainwindow.cpp:1893 ../bin/src/ui_mainwindow.h:709
msgid "New playlist"
msgstr "Nuwe speellys"
@@ -3374,7 +3371,7 @@ msgstr "Geen analiseerder"
msgid "No background image"
msgstr "Geen agtergrond prentjie"
-#: ui/albumcovermanager.cpp:800
+#: ui/albumcovermanager.cpp:802
msgid "No covers to export."
msgstr "Geen omslae om uit te voer nie"
@@ -3382,7 +3379,7 @@ msgstr "Geen omslae om uit te voer nie"
msgid "No long blocks"
msgstr "Geen lang blokke"
-#: playlist/playlistcontainer.cpp:383
+#: playlist/playlistcontainer.cpp:385
msgid ""
"No matches found. Clear the search box to show the whole playlist again."
msgstr "Geen gevind. Vee soekveld uit om hele speellys te toon."
@@ -3396,7 +3393,7 @@ msgstr "Geen kort blokke"
msgid "None"
msgstr "Geen"
-#: library/libraryview.cpp:673 ui/mainwindow.cpp:2385 ui/mainwindow.cpp:2564
+#: library/libraryview.cpp:673 ui/mainwindow.cpp:2411 ui/mainwindow.cpp:2590
msgid "None of the selected songs were suitable for copying to a device"
msgstr "Geen van die gekose liedjies is geskik om na die toestel te kopiëer nie."
@@ -3408,6 +3405,10 @@ msgstr "Normaal"
msgid "Normal block type"
msgstr "Normale blok tipe"
+#: ../bin/src/ui_behavioursettingspage.h:428
+msgid "Normal duration (at least 4 minutes or half the track length)"
+msgstr ""
+
#: playlist/playlistsequence.cpp:203
msgid "Not available while using a dynamic playlist"
msgstr "Nie beskibaar gedurende die gebruik van dinamies speellyste nie"
@@ -3416,19 +3417,19 @@ msgstr "Nie beskibaar gedurende die gebruik van dinamies speellyste nie"
msgid "Not connected"
msgstr "Nie verbind"
-#: internet/lastfm/lastfmservice.cpp:290
+#: internet/lastfm/lastfmservice.cpp:292
msgid "Not enough content"
msgstr "Nie genoeg inhoud"
-#: internet/lastfm/lastfmservice.cpp:294
+#: internet/lastfm/lastfmservice.cpp:296
msgid "Not enough fans"
msgstr "Nie genoeg ondersteuners nie"
-#: internet/lastfm/lastfmservice.cpp:292
+#: internet/lastfm/lastfmservice.cpp:294
msgid "Not enough members"
msgstr "Nie genoeg lidmate nie"
-#: internet/lastfm/lastfmservice.cpp:296
+#: internet/lastfm/lastfmservice.cpp:298
msgid "Not enough neighbors"
msgstr "Nie genoeg bure nie"
@@ -3436,7 +3437,7 @@ msgstr "Nie genoeg bure nie"
msgid "Not installed"
msgstr "Nie geïnstalleer"
-#: globalsearch/globalsearchsettingspage.cpp:120
+#: globalsearch/globalsearchsettingspage.cpp:122
#: globalsearch/searchproviderstatuswidget.cpp:47
msgid "Not logged in"
msgstr "Nie aangeteken nie"
@@ -3473,19 +3474,19 @@ msgstr "Af"
msgid "Ogg FLAC"
msgstr ""
-#: transcoder/transcoder.cpp:244
+#: transcoder/transcoder.cpp:245
msgid "Ogg Flac"
msgstr "Ogg Flac"
-#: core/song.cpp:444 transcoder/transcoder.cpp:250
+#: core/song.cpp:444 transcoder/transcoder.cpp:251
msgid "Ogg Opus"
msgstr "Ogg Opus"
-#: core/song.cpp:440 transcoder/transcoder.cpp:247
+#: core/song.cpp:440 transcoder/transcoder.cpp:248
msgid "Ogg Speex"
msgstr "Ogg Speex"
-#: core/song.cpp:442 transcoder/transcoder.cpp:241
+#: core/song.cpp:442 transcoder/transcoder.cpp:242
#: ../bin/src/ui_magnatunedownloaddialog.h:135
#: ../bin/src/ui_magnatunesettingspage.h:169
msgid "Ogg Vorbis"
@@ -3519,13 +3520,12 @@ msgstr "Toon slegs die eerste"
msgid "Opacity"
msgstr "Ondeursigtigheid"
-#: internet/digitally/digitallyimportedservicebase.cpp:175
+#: internet/digitally/digitallyimportedservicebase.cpp:177
#: internet/icecast/icecastservice.cpp:298
#: internet/jamendo/jamendoservice.cpp:427
#: internet/magnatune/magnatuneservice.cpp:287
#: internet/somafm/somafmservice.cpp:102
#: internet/intergalacticfm/intergalacticfmservice.cpp:102
-#: internet/soundcloud/soundcloudservice.cpp:377
#, qt-format
msgid "Open %1 in browser"
msgstr "Maak %1 in webblaaier oop"
@@ -3542,7 +3542,7 @@ msgstr "Maak OPML lêer oop"
msgid "Open OPML file..."
msgstr "Maak OPML lêer oop..."
-#: transcoder/transcodedialog.cpp:240
+#: transcoder/transcodedialog.cpp:242
msgid "Open a directory to import music from"
msgstr "Maak 'n gids oop om musiek van in te trek"
@@ -3558,13 +3558,13 @@ msgstr "Lêer..."
msgid "Open in Google Drive"
msgstr "Maak oop in Google Drive."
-#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:460
+#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:461
#: internet/core/internetservice.cpp:62 library/libraryview.cpp:389
#: widgets/fileviewlist.cpp:36
msgid "Open in new playlist"
msgstr "Maak in nuwe speellys oop"
-#: ../bin/src/ui_behavioursettingspage.h:358
+#: ../bin/src/ui_behavioursettingspage.h:397
msgctxt "Refers to behavior settings in Clementine settings page."
msgid "Open in new playlist"
msgstr "Open in 'n nuwe speellys"
@@ -3578,7 +3578,7 @@ msgstr ""
msgid "Open..."
msgstr "Maak oop..."
-#: internet/lastfm/lastfmservice.cpp:276
+#: internet/lastfm/lastfmservice.cpp:278
msgid "Operation failed"
msgstr "Aksie gestop"
@@ -3604,7 +3604,7 @@ msgstr "Opus"
msgid "Organise Files"
msgstr "Sorteer Lêers"
-#: library/libraryview.cpp:416 ui/mainwindow.cpp:715
+#: library/libraryview.cpp:416 ui/mainwindow.cpp:717
msgid "Organise files..."
msgstr "Sorteer Lêers..."
@@ -3616,8 +3616,8 @@ msgstr "Lêers word gesorteer"
msgid "Original tags"
msgstr "Oorspronklike etikette"
-#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1359
-#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:135
+#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1392
+#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:135
#: ../bin/src/ui_groupbydialog.h:154 ../bin/src/ui_groupbydialog.h:173
msgid "Original year"
msgstr ""
@@ -3688,7 +3688,7 @@ msgstr "Partytjie"
msgid "Password"
msgstr "Wagwoord"
-#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1160 ui/mainwindow.cpp:1663
+#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1170 ui/mainwindow.cpp:1689
#: ui/qtsystemtrayicon.cpp:189 wiimotedev/wiimotesettingspage.cpp:114
msgid "Pause"
msgstr "Vries"
@@ -3701,8 +3701,8 @@ msgstr "Vries terugspel"
msgid "Paused"
msgstr "Gevries"
-#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1367
-#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:140
+#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1400
+#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:140
#: ../bin/src/ui_groupbydialog.h:159 ../bin/src/ui_groupbydialog.h:178
#: ../bin/src/ui_edittagdialog.h:727
msgid "Performer"
@@ -3716,14 +3716,14 @@ msgstr "Pixel"
msgid "Plain sidebar"
msgstr "Gewone sykieslys"
-#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:676 ui/mainwindow.cpp:1126
-#: ui/mainwindow.cpp:1145 ui/mainwindow.cpp:1667 ui/qtsystemtrayicon.cpp:177
+#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:678 ui/mainwindow.cpp:1134
+#: ui/mainwindow.cpp:1155 ui/mainwindow.cpp:1693 ui/qtsystemtrayicon.cpp:177
#: ui/qtsystemtrayicon.cpp:203 wiimotedev/wiimotesettingspage.cpp:107
#: ../bin/src/ui_mainwindow.h:675
msgid "Play"
msgstr "Speel"
-#: playlist/playlist.cpp:1374 ../bin/src/ui_edittagdialog.h:703
+#: playlist/playlist.cpp:1407 ../bin/src/ui_edittagdialog.h:703
msgid "Play count"
msgstr "Speeltelling"
@@ -3731,16 +3731,16 @@ msgstr "Speeltelling"
msgid "Play if stopped, pause if playing"
msgstr "Speel indien gestop, vries indien aan die speel"
-#: ../bin/src/ui_behavioursettingspage.h:344
-#: ../bin/src/ui_behavioursettingspage.h:364
+#: ../bin/src/ui_behavioursettingspage.h:383
+#: ../bin/src/ui_behavioursettingspage.h:403
msgid "Play if there is nothing already playing"
msgstr "Speel as daar niks anders tans speel nie"
-#: library/libraryview.cpp:396 ui/mainwindow.cpp:1774
+#: library/libraryview.cpp:396 ui/mainwindow.cpp:1800
msgid "Play next"
msgstr ""
-#: ui/mainwindow.cpp:1772
+#: ui/mainwindow.cpp:1798
msgid "Play selected tracks next"
msgstr ""
@@ -3760,7 +3760,7 @@ msgstr "Terugspeel"
msgid "Player options"
msgstr "Speler keuses"
-#: playlist/playlistcontainer.cpp:294 playlist/playlistlistcontainer.cpp:325
+#: playlist/playlistcontainer.cpp:296 playlist/playlistlistcontainer.cpp:325
#: playlist/playlistmanager.cpp:87 playlist/playlistmanager.cpp:156
#: playlist/playlistmanager.cpp:525 playlist/playlisttabbar.cpp:366
msgid "Playlist"
@@ -3779,7 +3779,7 @@ msgstr "Speellys keuses"
msgid "Playlist type"
msgstr "Speellys tipe"
-#: internet/soundcloud/soundcloudservice.cpp:133 ui/mainwindow.cpp:269
+#: ui/mainwindow.cpp:271
msgid "Playlists"
msgstr "Speellys"
@@ -3787,7 +3787,7 @@ msgstr "Speellys"
msgid "Please close your browser and return to Clementine."
msgstr "Kies jou webblaaier en kom dan terug na Clementine."
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
#, qt-format
msgid "Please open this URL in your browser: %1"
msgstr ""
@@ -3870,7 +3870,7 @@ msgstr "Druk 'n knoppie"
msgid "Press a key combination to use for %1..."
msgstr "Druk 'n sleutelsametelling om te gebruik vir %1..."
-#: ../bin/src/ui_behavioursettingspage.h:347
+#: ../bin/src/ui_behavioursettingspage.h:386
msgid "Pressing \"Previous\" in player will..."
msgstr "Om \"Vorige\" in die speler te druk sal..."
@@ -3947,12 +3947,12 @@ msgstr "Toestel word ondervra..."
msgid "Queue Manager"
msgstr "Tou bestuurder"
-#: ui/mainwindow.cpp:1767
+#: ui/mainwindow.cpp:1793
msgid "Queue selected tracks"
msgstr "Plaas geselekteerde snitte in die tou"
-#: globalsearch/globalsearchview.cpp:464 library/libraryview.cpp:393
-#: ui/mainwindow.cpp:1765
+#: globalsearch/globalsearchview.cpp:465 library/libraryview.cpp:393
+#: ui/mainwindow.cpp:1791
msgid "Queue track"
msgstr "Plaas snit in die tou"
@@ -4001,12 +4001,12 @@ msgstr "Gee die huidige liedjie 4 sterre"
msgid "Rate the current song 5 stars"
msgstr "Gee die huidige liedjie 5 sterre"
-#: playlist/playlist.cpp:1372 ../bin/src/ui_edittagdialog.h:711
+#: playlist/playlist.cpp:1405 ../bin/src/ui_edittagdialog.h:711
msgid "Rating"
msgstr "Aantal sterre"
#: internet/magnatune/magnatunedownloaddialog.cpp:309
-#: ui/albumcovermanager.cpp:212
+#: ui/albumcovermanager.cpp:214
msgid "Really cancel?"
msgstr "Wil jy rêrig opgee?"
@@ -4033,7 +4033,7 @@ msgstr "Verfris kanale"
msgid "Refresh station list"
msgstr "Verfris lys van stasies"
-#: internet/digitally/digitallyimportedservicebase.cpp:178
+#: internet/digitally/digitallyimportedservicebase.cpp:180
msgid "Refresh streams"
msgstr "Verfris strome"
@@ -4042,7 +4042,7 @@ msgid "Reggae"
msgstr "Reggae"
#: playlist/playlistsaveoptionsdialog.cpp:33
-#: ../bin/src/ui_behavioursettingspage.h:380
+#: ../bin/src/ui_behavioursettingspage.h:419
msgid "Relative"
msgstr "Relatief"
@@ -4050,9 +4050,9 @@ msgstr "Relatief"
msgid "Remember Wii remote swing"
msgstr "Onthou die Wii-afstandsbeheer se swaai"
-#: ../bin/src/ui_behavioursettingspage.h:332
-msgid "Remember from last time"
-msgstr "Onthou van laas keer"
+#: ../bin/src/ui_behavioursettingspage.h:371
+msgid "Remember from &last time"
+msgstr ""
#: ../bin/src/ui_playlistsaveoptionsdialog.h:99
msgid "Remember my choice"
@@ -4124,13 +4124,13 @@ msgstr "Herhaal speellys"
msgid "Repeat track"
msgstr "Herhaal snit"
-#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:457
+#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:458
#: internet/core/internetservice.cpp:55 library/libraryview.cpp:386
#: widgets/fileviewlist.cpp:34
msgid "Replace current playlist"
msgstr "Vervang huidige speellys"
-#: ../bin/src/ui_behavioursettingspage.h:357
+#: ../bin/src/ui_behavioursettingspage.h:396
msgid "Replace the playlist"
msgstr "Vervang die speellys"
@@ -4162,7 +4162,7 @@ msgstr "Herstel"
msgid "Reset play counts"
msgstr "Herstel afspeeltelling"
-#: ../bin/src/ui_behavioursettingspage.h:351
+#: ../bin/src/ui_behavioursettingspage.h:390
msgid "Restart song, then jump to previous if pressed again"
msgstr "Herbegin lied, dan spring na vorige as weer gedruk"
@@ -4175,7 +4175,7 @@ msgstr "Hervat die snit, of speel die vorige snit indien binne 8 sekondes van di
msgid "Restrict to ASCII characters"
msgstr "Beperk tot ASCII karakters"
-#: ../bin/src/ui_behavioursettingspage.h:333
+#: ../bin/src/ui_behavioursettingspage.h:376
msgid "Resume playback on start"
msgstr "Hervat terugspel met opening"
@@ -4191,7 +4191,7 @@ msgstr "Regs"
msgid "Rip"
msgstr "\"Rip\""
-#: ripper/ripcddialog.cpp:105
+#: ripper/ripcddialog.cpp:107
msgid "Rip CD"
msgstr "\"Rip\" CD"
@@ -4229,13 +4229,13 @@ msgstr "Veilige verwydering van toestel"
msgid "Safely remove the device after copying"
msgstr "Verwyder toestel veilig na kopiëring"
-#: playlist/playlist.cpp:1387 ../bin/src/ui_edittagdialog.h:708
+#: playlist/playlist.cpp:1420 ../bin/src/ui_edittagdialog.h:708
#: ../bin/src/ui_playbacksettingspage.h:371
#: ../bin/src/ui_streamdetailsdialog.h:141
msgid "Sample rate"
msgstr "Monstertempo"
-#: ui/organisedialog.cpp:81
+#: ui/organisedialog.cpp:82
msgid "Samplerate"
msgstr "Monstertempo"
@@ -4309,7 +4309,7 @@ msgstr "Skaleerbare monstertempo profiel (SSR)"
msgid "Scale size"
msgstr "Geskaleerde grootte"
-#: playlist/playlist.cpp:1380 ../bin/src/ui_edittagdialog.h:709
+#: playlist/playlist.cpp:1413 ../bin/src/ui_edittagdialog.h:709
msgid "Score"
msgstr "Telling"
@@ -4317,7 +4317,7 @@ msgstr "Telling"
msgid "Scrobble tracks that I listen to"
msgstr "Scrobble snitte wat ek na luister op"
-#: ../bin/src/ui_behavioursettingspage.h:320
+#: ../bin/src/ui_behavioursettingspage.h:359
msgid "Scroll over icon to change track"
msgstr ""
@@ -4331,7 +4331,7 @@ msgstr "Seafile"
msgid "Search"
msgstr "Soek"
-#: ui/mainwindow.cpp:260 ../bin/src/ui_globalsearchsettingspage.h:141
+#: ui/mainwindow.cpp:262 ../bin/src/ui_globalsearchsettingspage.h:141
msgctxt "Global search settings dialog title."
msgid "Search"
msgstr "Soek"
@@ -4356,7 +4356,7 @@ msgstr "Soek deur Subsonic"
msgid "Search automatically"
msgstr "Soek outomaties"
-#: ui/mainwindow.cpp:696
+#: ui/mainwindow.cpp:698
msgid "Search for album"
msgstr ""
@@ -4369,11 +4369,11 @@ msgstr "Soek vir album omslae..."
msgid "Search for anything"
msgstr "Soek vir enigiets"
-#: ui/mainwindow.cpp:693
+#: ui/mainwindow.cpp:695
msgid "Search for artist"
msgstr ""
-#: globalsearch/globalsearchview.cpp:473 library/libraryview.cpp:401
+#: globalsearch/globalsearchview.cpp:474 library/libraryview.cpp:401
msgid "Search for this"
msgstr ""
@@ -4393,7 +4393,6 @@ msgstr "Soek modus"
msgid "Search options"
msgstr "Soek instellings"
-#: internet/soundcloud/soundcloudservice.cpp:119
#: internet/spotify/spotifyservice.cpp:400
msgid "Search results"
msgstr "Soekresultate"
@@ -4427,7 +4426,7 @@ msgstr "Streef 'n relatiewe hoeveelheid deur die huidige snit"
msgid "Seek the currently playing track to an absolute position"
msgstr "Streef na 'n spesifieke posisie in die huidige snit"
-#: ../bin/src/ui_behavioursettingspage.h:373
+#: ../bin/src/ui_behavioursettingspage.h:412
msgid "Seeking using a keyboard shortcut or mouse wheel"
msgstr ""
@@ -4483,11 +4482,11 @@ msgstr "URL van Bediener"
msgid "Server details"
msgstr "Bedienerbesonderhede"
-#: internet/lastfm/lastfmservice.cpp:282
+#: internet/lastfm/lastfmservice.cpp:284
msgid "Service offline"
msgstr "Diens aflyn"
-#: ui/mainwindow.cpp:1812
+#: ui/mainwindow.cpp:1838
#, qt-format
msgid "Set %1 to \"%2\"..."
msgstr "Stel %1 na \"%2\"..."
@@ -4504,6 +4503,10 @@ msgstr "Stel waarde vir alle geselekteerde snitte"
msgid "Settings"
msgstr "Verstellinge"
+#: ../bin/src/ui_behavioursettingspage.h:429
+msgid "Short duration (at least 1 minute or half the track length)"
+msgstr ""
+
#: ../bin/src/ui_globalshortcutssettingspage.h:172
msgid "Shortcut"
msgstr "Kortskakel"
@@ -4563,7 +4566,7 @@ msgstr "Wys 'n mooi skermbeeld"
msgid "Show above status bar"
msgstr "Wys bo toestandsbalk"
-#: ui/mainwindow.cpp:643
+#: ui/mainwindow.cpp:645
msgid "Show all songs"
msgstr "Wys alle liedjies"
@@ -4583,12 +4586,12 @@ msgstr "Wys verdelers"
msgid "Show fullsize..."
msgstr "Wys volgrootte..."
-#: library/libraryview.cpp:433 ui/mainwindow.cpp:725
+#: library/libraryview.cpp:433 ui/mainwindow.cpp:727
#: widgets/fileviewlist.cpp:53
msgid "Show in file browser..."
msgstr "Wys in lêerblaaier..."
-#: ui/mainwindow.cpp:727
+#: ui/mainwindow.cpp:729
msgid "Show in library..."
msgstr "Wys in die biblioteek..."
@@ -4600,11 +4603,11 @@ msgstr "Wys tussen verkeie kunstenaars"
msgid "Show moodbar"
msgstr "Wys stemmingsbalk"
-#: ui/mainwindow.cpp:645
+#: ui/mainwindow.cpp:647
msgid "Show only duplicates"
msgstr "Wys slegs duplikate"
-#: ui/mainwindow.cpp:647
+#: ui/mainwindow.cpp:649
msgid "Show only untagged"
msgstr "Wys slegs sonder etikette"
@@ -4628,7 +4631,7 @@ msgstr "Vertoon die \"bemin\" knoppie"
msgid "Show the scrobble button in the main window"
msgstr "Wys die scrobble knoppie in die hoofvenster"
-#: ../bin/src/ui_behavioursettingspage.h:319
+#: ../bin/src/ui_behavioursettingspage.h:358
msgid "Show tray icon"
msgstr "Wys in stelselbalk"
@@ -4688,7 +4691,7 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Spring terugwaarts in speellys"
-#: playlist/playlist.cpp:1376 ../bin/src/ui_edittagdialog.h:705
+#: playlist/playlist.cpp:1409 ../bin/src/ui_edittagdialog.h:705
msgid "Skip count"
msgstr "Aantal keer oorgeslaan"
@@ -4696,11 +4699,11 @@ msgstr "Aantal keer oorgeslaan"
msgid "Skip forwards in playlist"
msgstr "Spring voorentoe in speellys"
-#: ui/mainwindow.cpp:1783
+#: ui/mainwindow.cpp:1809
msgid "Skip selected tracks"
msgstr "Spring geselekteerde snitte"
-#: ui/mainwindow.cpp:1781
+#: ui/mainwindow.cpp:1807
msgid "Skip track"
msgstr "Spring snit"
@@ -4716,7 +4719,7 @@ msgstr "Klein kantbalk"
msgid "Smart playlist"
msgstr "Slimspeellys"
-#: library/librarymodel.cpp:1367
+#: library/librarymodel.cpp:1368
msgid "Smart playlists"
msgstr "Slimspeellyste"
@@ -4732,7 +4735,7 @@ msgstr "Sagte Rock"
msgid "Song Information"
msgstr "Liedjie Inligting"
-#: ui/mainwindow.cpp:280
+#: ui/mainwindow.cpp:282
msgid "Song info"
msgstr "Liedjie"
@@ -4764,11 +4767,7 @@ msgstr "Sorteer liedjies volgens"
msgid "Sorting"
msgstr "Sortering"
-#: ../bin/src/ui_soundcloudsettingspage.h:100
-msgid "SoundCloud"
-msgstr "SoundCloud"
-
-#: playlist/playlist.cpp:1404
+#: playlist/playlist.cpp:1437
msgid "Source"
msgstr "Bron"
@@ -4814,7 +4813,7 @@ msgstr "Standaard"
msgid "Starred"
msgstr "Gegradeer"
-#: ripper/ripcddialog.cpp:72
+#: ripper/ripcddialog.cpp:74
msgid "Start ripping"
msgstr "Bigin om te \"rip\""
@@ -4822,18 +4821,17 @@ msgstr "Bigin om te \"rip\""
msgid "Start the playlist currently playing"
msgstr "Begin die huidige speellys speel"
-#: transcoder/transcodedialog.cpp:90
+#: transcoder/transcodedialog.cpp:92
msgid "Start transcoding"
msgstr "Begin transkodering"
-#: internet/soundcloud/soundcloudservice.cpp:121
#: internet/spotify/spotifyservice.cpp:402
msgid ""
"Start typing something on the search box above to fill this search results "
"list"
msgstr "Begin iets bo in die soekblokkie te tik om resultate hier te sien"
-#: transcoder/transcoder.cpp:397
+#: transcoder/transcoder.cpp:398
#, qt-format
msgid "Starting %1"
msgstr "%1 word begin"
@@ -4859,7 +4857,7 @@ msgstr "Stop na elke snit"
msgid "Stop after every track"
msgstr "Stop na elke snit"
-#: ui/mainwindow.cpp:680 ../bin/src/ui_mainwindow.h:679
+#: ui/mainwindow.cpp:682 ../bin/src/ui_mainwindow.h:679
msgid "Stop after this track"
msgstr "Stop na hierdie snit"
@@ -4871,7 +4869,7 @@ msgstr "Beëindig terugspel"
msgid "Stop playback after current track"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:334
+#: ../bin/src/ui_behavioursettingspage.h:377
msgid "Stop playback if song fails to play"
msgstr ""
@@ -4919,7 +4917,7 @@ msgstr "Subsonic"
msgid "Success!"
msgstr "Sukses!"
-#: transcoder/transcoder.cpp:189
+#: transcoder/transcoder.cpp:190
#, qt-format
msgid "Successfully written %1"
msgstr "%1 suksesvol geskryf"
@@ -4987,7 +4985,7 @@ msgstr "Techno"
msgid "Text options"
msgstr "Teksinstellings"
-#: ui/about.cpp:74
+#: ui/about.cpp:76
msgid "Thanks to"
msgstr "Dank aan"
@@ -5027,7 +5025,7 @@ msgid ""
"license key. Visit subsonic.org for details."
msgstr "Die toetsperiode vir toegang tot die Subsonic bediener is verstreke. Gee asseblief 'n donasie om 'n lisensie sleutel te ontvang. Besoek subsonic.org vir meer inligting."
-#: ui/mainwindow.cpp:2674
+#: ui/mainwindow.cpp:2700
msgid ""
"The version of Clementine you've just updated to requires a full library "
"rescan because of the new features listed below:"
@@ -5051,13 +5049,13 @@ msgstr "Daar was 'n probleem met die haal van metadata vanaf Magnatune"
msgid "There was a problem parsing the response from the iTunes Store"
msgstr "Fout tydens analisering van iTunes winkel se antwoord"
-#: ui/organiseerrordialog.cpp:54
+#: ui/organiseerrordialog.cpp:56
msgid ""
"There were problems copying some songs. The following files could not be "
"copied:"
msgstr "Daar was 'n probleem met die kopiëring van liedjies. Die volgende lêers kan nie gekopiëer word nie:"
-#: ui/organiseerrordialog.cpp:61
+#: ui/organiseerrordialog.cpp:63
msgid ""
"There were problems deleting some songs. The following files could not be "
"deleted:"
@@ -5069,7 +5067,7 @@ msgid ""
"continue?"
msgstr "Hierdie lêers sal vanaf die toestel verwyder word. Is jy seker?"
-#: library/libraryview.cpp:679 ui/mainwindow.cpp:2433 widgets/fileview.cpp:189
+#: library/libraryview.cpp:679 ui/mainwindow.cpp:2459 widgets/fileview.cpp:189
msgid ""
"These files will be permanently deleted from disk, are you sure you want to "
"continue?"
@@ -5140,7 +5138,7 @@ msgstr "Dit is die eerste keer dat jy hierdie toestel verbind. Clementine gaan d
msgid "This option can be changed in the \"Behavior\" preferences"
msgstr "Die opsie kan in die \"Gedrag\" opstellinge verander word"
-#: internet/lastfm/lastfmservice.cpp:284
+#: internet/lastfm/lastfmservice.cpp:286
msgid "This stream is for paid subscribers only"
msgstr "Hierdie stroom is slegs vir betalende lede."
@@ -5149,11 +5147,11 @@ msgstr "Hierdie stroom is slegs vir betalende lede."
msgid "This type of device is not supported: %1"
msgstr "Hierdie tipe toestel word nie ondersteun nie: %1"
-#: ../bin/src/ui_behavioursettingspage.h:374
+#: ../bin/src/ui_behavioursettingspage.h:413
msgid "Time step"
msgstr ""
-#: playlist/playlist.cpp:1345 ui/organisedialog.cpp:63
+#: playlist/playlist.cpp:1378 ui/organisedialog.cpp:64
#: ui/qtsystemtrayicon.cpp:247 ../bin/src/ui_about.h:141
#: ../bin/src/ui_edittagdialog.h:719 ../bin/src/ui_trackselectiondialog.h:210
#: ../bin/src/ui_ripcddialog.h:306
@@ -5172,7 +5170,7 @@ msgstr "Skakel mooi skermbeeld aan/af"
msgid "Toggle fullscreen"
msgstr "Skakel volskerm aan/af"
-#: ui/mainwindow.cpp:1769
+#: ui/mainwindow.cpp:1795
msgid "Toggle queue status"
msgstr "Skakel tou-status aan/af"
@@ -5204,11 +5202,11 @@ msgstr "Top snitte"
msgid "Total albums:"
msgstr "Album totaal:"
-#: covers/coversearchstatisticsdialog.cpp:70
+#: covers/coversearchstatisticsdialog.cpp:72
msgid "Total bytes transferred"
msgstr "Totale aantal grepe oorgedra"
-#: covers/coversearchstatisticsdialog.cpp:67
+#: covers/coversearchstatisticsdialog.cpp:69
msgid "Total network requests made"
msgstr "Totale aantal versoeke oor die netwerk gemaak"
@@ -5216,15 +5214,11 @@ msgstr "Totale aantal versoeke oor die netwerk gemaak"
msgid "Trac&k"
msgstr ""
-#: playlist/playlist.cpp:1353 ui/organisedialog.cpp:72
+#: playlist/playlist.cpp:1386 ui/organisedialog.cpp:73
#: ../bin/src/ui_trackselectiondialog.h:212 ../bin/src/ui_ripcddialog.h:304
msgid "Track"
msgstr "Snit"
-#: internet/soundcloud/soundcloudservice.cpp:136
-msgid "Tracks"
-msgstr "Snitte"
-
#: ../bin/src/ui_transcodedialog.h:213 ../bin/src/ui_mainwindow.h:706
msgid "Transcode Music"
msgstr "Transkodeer musiek"
@@ -5237,7 +5231,7 @@ msgstr "Transkodeerder log"
msgid "Transcoding"
msgstr "Besig met transkodering"
-#: transcoder/transcoder.cpp:317
+#: transcoder/transcoder.cpp:318
#, qt-format
msgid "Transcoding %1 files using %2 threads"
msgstr "Lêer %1 word met %2 prosesse getranskodeer"
@@ -5288,8 +5282,8 @@ msgstr "Kan nie konnekteer nie"
msgid "Unable to download %1 (%2)"
msgstr "Kan nie %1 aflaai nie (%2)"
-#: core/song.cpp:465 library/librarymodel.cpp:374 library/librarymodel.cpp:379
-#: library/librarymodel.cpp:383 library/librarymodel.cpp:1159
+#: core/song.cpp:465 library/librarymodel.cpp:375 library/librarymodel.cpp:380
+#: library/librarymodel.cpp:384 library/librarymodel.cpp:1160
#: library/savedgroupingmanager.cpp:103 playlist/playlistdelegates.cpp:305
#: playlist/playlistmanager.cpp:532 playlist/playlistmanager.cpp:533
#: songinfo/streamdiscoverer.cpp:87 ui/albumcoverchoicecontroller.cpp:127
@@ -5302,7 +5296,7 @@ msgid "Unknown content-type"
msgstr "Onbekende inhoudtipe"
#: internet/digitally/digitallyimportedclient.cpp:74
-#: internet/lastfm/lastfmservice.cpp:303
+#: internet/lastfm/lastfmservice.cpp:305
msgid "Unknown error"
msgstr "Onbekende fout"
@@ -5310,11 +5304,11 @@ msgstr "Onbekende fout"
msgid "Unset cover"
msgstr "Verwyder omslag"
-#: ui/mainwindow.cpp:1779
+#: ui/mainwindow.cpp:1805
msgid "Unskip selected tracks"
msgstr "Moet nie geselekteerde snitte spring nie"
-#: ui/mainwindow.cpp:1777
+#: ui/mainwindow.cpp:1803
msgid "Unskip track"
msgstr "Moet nie snit spring nie"
@@ -5425,7 +5419,7 @@ msgstr ""
msgid "Use temporal noise shaping"
msgstr "Gebruik tydgebasseerde ruis vervorming"
-#: ../bin/src/ui_behavioursettingspage.h:326
+#: ../bin/src/ui_behavioursettingspage.h:365
msgid "Use the system default"
msgstr "Gebruik die stelsel se standaard waarde"
@@ -5445,7 +5439,7 @@ msgstr "Gebruik volume normalisering"
msgid "Used"
msgstr "Reeds gebruik"
-#: ui/settingsdialog.cpp:147
+#: ui/settingsdialog.cpp:146
msgid "User interface"
msgstr "Gebruikerskoppelvlak"
@@ -5457,7 +5451,7 @@ msgstr "Gebruikerskoppelvlak"
msgid "Username"
msgstr "Gebruikersnaam"
-#: ../bin/src/ui_behavioursettingspage.h:340
+#: ../bin/src/ui_behavioursettingspage.h:379
msgid "Using the menu to add a song will..."
msgstr "Deur van die kieslys gebruik te maak om 'n liedjie by te voeg sal..."
@@ -5474,8 +5468,8 @@ msgstr ""
msgid "Variable bit rate"
msgstr "Wisselende bistempo"
-#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:300
-#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:264
+#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:301
+#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:266
msgid "Various artists"
msgstr "Verskeie kunstenaars"
@@ -5483,7 +5477,7 @@ msgstr "Verskeie kunstenaars"
msgid "Verify Server certificate"
msgstr ""
-#: ui/about.cpp:33
+#: ui/about.cpp:35
#, qt-format
msgid "Version %1"
msgstr "Weergawe %1"
@@ -5530,11 +5524,11 @@ msgstr "WAV"
msgid "WMA"
msgstr "WMA"
-#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:322
+#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:361
msgid "Warn me when closing a playlist tab"
msgstr "Waarsku my met die sluit van 'n speellys oortjie"
-#: core/song.cpp:448 transcoder/transcoder.cpp:256
+#: core/song.cpp:448 transcoder/transcoder.cpp:257
msgid "Wav"
msgstr "Wav"
@@ -5550,20 +5544,28 @@ msgstr "Webtuiste"
msgid "Weeks"
msgstr "Weke"
-#: ../bin/src/ui_behavioursettingspage.h:329
+#: ../bin/src/ui_behavioursettingspage.h:368
msgid "When Clementine starts"
msgstr "Wanneer Clementine oopgemaak word"
+#: ../bin/src/ui_behavioursettingspage.h:427
+msgid "When calculating play counts, use"
+msgstr ""
+
#: ../bin/src/ui_librarysettingspage.h:203
msgid ""
"When looking for album art Clementine will first look for picture files that contain one of these words.\n"
"If there are no matches then it will use the largest image in the directory."
msgstr "Wanneer daar vir album omslae gesoek word, sal Clementine eers soek vir beelde met die volgende woorde in hulle name.\nAs daar niks gevind word nie word die grootste beeld gebruik."
-#: ../bin/src/ui_behavioursettingspage.h:377
+#: ../bin/src/ui_behavioursettingspage.h:416
msgid "When saving a playlist, file paths should be"
msgstr "Met die stoor van 'n speellys moet die lêer roetes"
+#: ../bin/src/ui_behavioursettingspage.h:422
+msgid "When sorting artists, albums and titles"
+msgstr ""
+
#: ../bin/src/ui_globalsearchsettingspage.h:147
msgid "When the list is empty..."
msgstr "Wanneer die lys leeg is..."
@@ -5622,7 +5624,7 @@ msgstr "Windows Media 40k"
msgid "Windows Media 64k"
msgstr "Windows Media 64k"
-#: core/song.cpp:428 transcoder/transcoder.cpp:253
+#: core/song.cpp:428 transcoder/transcoder.cpp:254
msgid "Windows Media audio"
msgstr "Windows Media oudio"
@@ -5636,7 +5638,7 @@ msgid ""
"well?"
msgstr "Wil jy die ander liedjies in hierdie album ook na Verskeie Kunstenaars skuif?"
-#: ui/mainwindow.cpp:2681
+#: ui/mainwindow.cpp:2707
msgid "Would you like to run a full rescan right now?"
msgstr "Wil jy alles van voor af deursoek?"
@@ -5644,7 +5646,7 @@ msgstr "Wil jy alles van voor af deursoek?"
msgid "Write all songs statistics into songs' files"
msgstr "Skryf al die liedjies se statistiek in die liedjie se lêer."
-#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:421
msgid "Write metadata"
msgstr "Skryf metedata"
@@ -5652,8 +5654,8 @@ msgstr "Skryf metedata"
msgid "Wrong username or password."
msgstr "Verkeerde gebruikersnaam of wagwoord."
-#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1357
-#: ui/organisedialog.cpp:75 ../bin/src/ui_groupbydialog.h:134
+#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1390
+#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:134
#: ../bin/src/ui_groupbydialog.h:153 ../bin/src/ui_groupbydialog.h:172
#: ../bin/src/ui_trackselectiondialog.h:211 ../bin/src/ui_ripcddialog.h:312
msgid "Year"
@@ -5730,13 +5732,6 @@ msgstr "Jy het nie Spotify Premium lidmaatskap nie."
msgid "You do not have an active subscription"
msgstr "Jy het nie 'n aktiewe lidmaatskap nie"
-#: ../bin/src/ui_soundcloudsettingspage.h:101
-msgid ""
-"You don't need to be logged in to search and to listen to music on "
-"SoundCloud. However, you need to login to access your playlists and your "
-"stream."
-msgstr "Jy hoef nie ingesluit te wees om op SoundCloud na musiek te soek of te luister nie. Jy moet egter insluit sou jy toegant tot jou strome en speellyste wil hê. "
-
#: internet/spotify/spotifyservice.cpp:205
msgid ""
"You have been logged out of Spotify, please re-enter your password in the "
@@ -5758,7 +5753,7 @@ msgid ""
"shortcuts in Clementine."
msgstr "Jy moet \"System Preferences\" oopmaak en Clementine toelaat om \"control your computer\" vir die gebruik van globale kortpaaie."
-#: ../bin/src/ui_behavioursettingspage.h:328
+#: ../bin/src/ui_behavioursettingspage.h:367
msgid "You will need to restart Clementine if you change the language."
msgstr "Jy moet Clementine van voor af oopmaak om die taal te verander."
@@ -5834,7 +5829,7 @@ msgstr "tussen"
msgid "biggest first"
msgstr "grootste eerste"
-#: playlist/playlistview.cpp:241 ui/edittagdialog.cpp:500
+#: playlist/playlistview.cpp:242 ui/edittagdialog.cpp:500
msgid "bpm"
msgstr "bpm"
@@ -5891,7 +5886,7 @@ msgstr "in die laaste"
#: internet/spotify/spotifysettingspage.cpp:62
#: internet/spotify/spotifysettingspage.cpp:63
-#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:245
+#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:246
#: ui/edittagdialog.cpp:502
msgid "kbps"
msgstr "kbps"
diff --git a/src/translations/ar.po b/src/translations/ar.po
index 518a37c5e..8056b9b08 100644
--- a/src/translations/ar.po
+++ b/src/translations/ar.po
@@ -16,7 +16,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
-"PO-Revision-Date: 2018-09-17 13:31+0000\n"
+"PO-Revision-Date: 2018-10-20 12:14+0000\n"
"Last-Translator: hatstand \n"
"Language-Team: Arabic (http://www.transifex.com/davidsansome/clementine/language/ar/)\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -59,7 +59,7 @@ msgstr "مث"
msgid " pt"
msgstr " pt"
-#: ../bin/src/ui_behavioursettingspage.h:375
+#: ../bin/src/ui_behavioursettingspage.h:414
msgid " s"
msgstr "ت"
@@ -98,7 +98,7 @@ msgstr "%1 مند أيام"
msgid "%1 on %2"
msgstr "%1 من %2"
-#: playlistparsers/playlistparser.cpp:87
+#: playlistparsers/playlistparser.cpp:89
#, qt-format
msgid "%1 playlists (%2)"
msgstr "%1 قوائم التشغيل (%2)"
@@ -128,12 +128,12 @@ msgstr "%1 العثور على مقاطع"
msgid "%1 songs found (showing %2)"
msgstr "عثر على 1% أغنية (يعرض منها 2%)"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
#, qt-format
msgid "%1 tracks"
msgstr "%1 المسارات"
-#: ui/albumcovermanager.cpp:472
+#: ui/albumcovermanager.cpp:474
#, qt-format
msgid "%1 transferred"
msgstr "%1 منقولة"
@@ -158,19 +158,19 @@ msgstr "%L1 مجموع التشغيل"
msgid "%filename%"
msgstr "%اسم الملف%"
-#: transcoder/transcodedialog.cpp:214
+#: transcoder/transcodedialog.cpp:216
#, c-format, qt-plural-format
msgctxt ""
msgid "%n failed"
msgstr "%n فشل"
-#: transcoder/transcodedialog.cpp:209
+#: transcoder/transcodedialog.cpp:211
#, c-format, qt-plural-format
msgctxt ""
msgid "%n finished"
msgstr "%n إنتهى"
-#: transcoder/transcodedialog.cpp:203
+#: transcoder/transcodedialog.cpp:205
#, c-format, qt-plural-format
msgctxt ""
msgid "%n remaining"
@@ -269,7 +269,7 @@ msgstr "(مختلفة عبر أغنيات متعددة)"
msgid ", by "
msgstr "، بقرب"
-#: ui/about.cpp:84
+#: ui/about.cpp:86
msgid "...and all the Amarok contributors"
msgstr "...وكل المساهمين في أماروك"
@@ -289,7 +289,7 @@ msgstr "0px"
msgid "1 day"
msgstr "1 يوم"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
msgid "1 track"
msgstr "1 مقطع"
@@ -401,6 +401,10 @@ msgid ""
"A song will be included in the playlist if it matches these conditions."
msgstr "سيتم إدراج المقطع في قائمة التشغيل إذا كان يتطابق مع هذه الشروط."
+#: ../bin/src/ui_behavioursettingspage.h:417
+msgid "A&utomatic"
+msgstr ""
+
#: smartplaylists/searchterm.cpp:396
msgid "A-Z"
msgstr "أ-ي"
@@ -429,11 +433,11 @@ msgstr "AIFF"
msgid "ALL GLORY TO THE HYPNOTOAD"
msgstr "HYPNOTOADكل المجد ل"
-#: ui/albumcovermanager.cpp:105 ui/albumcoversearcher.cpp:158
+#: ui/albumcovermanager.cpp:107 ui/albumcoversearcher.cpp:158
msgid "Abort"
msgstr "ألغ"
-#: ui/about.cpp:30
+#: ui/about.cpp:32
#, qt-format
msgid "About %1"
msgstr "عن %1"
@@ -447,7 +451,7 @@ msgid "About Qt..."
msgstr "عن QT..."
#: playlist/playlistsaveoptionsdialog.cpp:34
-#: ../bin/src/ui_behavioursettingspage.h:379
+#: ../bin/src/ui_behavioursettingspage.h:418
msgid "Absolute"
msgstr "مُطلق"
@@ -474,10 +478,6 @@ msgstr "الحركة"
msgid "Activate/Deactivate Wii Remote"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:128
-msgid "Activities stream"
-msgstr "سجل النشاطات"
-
#: internet/podcasts/addpodcastdialog.cpp:63
msgid "Add Podcast"
msgstr "إضافة بودكاست"
@@ -506,7 +506,7 @@ msgstr "إضافة Stream أخر"
msgid "Add directory..."
msgstr "أضف مجلد..."
-#: ui/mainwindow.cpp:2049
+#: ui/mainwindow.cpp:2075
msgid "Add file"
msgstr "أضف ملفا"
@@ -522,12 +522,12 @@ msgstr "أضف ملف(s) للتحويل"
msgid "Add file..."
msgstr "أضافة ملف..."
-#: transcoder/transcodedialog.cpp:224
+#: transcoder/transcodedialog.cpp:226
msgid "Add files to transcode"
msgstr "أضف ملفات للتحويل"
-#: transcoder/transcodedialog.cpp:306 ui/mainwindow.cpp:2076
-#: ripper/ripcddialog.cpp:201
+#: transcoder/transcodedialog.cpp:308 ui/mainwindow.cpp:2102
+#: ripper/ripcddialog.cpp:203
msgid "Add folder"
msgstr "إضافة مجلد"
@@ -631,7 +631,7 @@ msgstr "إضافة لقائمات تشغيل Spotify"
msgid "Add to Spotify starred"
msgstr "إضافة للمميزة على Spotify"
-#: ui/mainwindow.cpp:1850
+#: ui/mainwindow.cpp:1876
msgid "Add to another playlist"
msgstr "أضف إلى قائمة تشغيل أخرى"
@@ -639,8 +639,8 @@ msgstr "أضف إلى قائمة تشغيل أخرى"
msgid "Add to playlist"
msgstr "إضافة لقائمة التشغيل"
-#: ../bin/src/ui_behavioursettingspage.h:359
-#: ../bin/src/ui_behavioursettingspage.h:371
+#: ../bin/src/ui_behavioursettingspage.h:398
+#: ../bin/src/ui_behavioursettingspage.h:410
msgid "Add to the queue"
msgstr "أضف إلى لائحة الانتظار"
@@ -681,8 +681,8 @@ msgstr "بعد"
msgid "After copying..."
msgstr "بعد النسخ..."
-#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1349
-#: ui/organisedialog.cpp:64 ui/qtsystemtrayicon.cpp:251
+#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1382
+#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:251
#: ../bin/src/ui_groupbydialog.h:128 ../bin/src/ui_groupbydialog.h:147
#: ../bin/src/ui_groupbydialog.h:166 ../bin/src/ui_albumcoversearcher.h:110
#: ../bin/src/ui_albumcoversearcher.h:112 ../bin/src/ui_edittagdialog.h:723
@@ -694,8 +694,8 @@ msgstr "الألبوم"
msgid "Album (ideal loudness for all tracks)"
msgstr "ألبوم (شدة صوت مثلى لجميع المقاطع)"
-#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1363
-#: ui/organisedialog.cpp:67 ../bin/src/ui_groupbydialog.h:130
+#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1396
+#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:130
#: ../bin/src/ui_groupbydialog.h:149 ../bin/src/ui_groupbydialog.h:168
#: ../bin/src/ui_edittagdialog.h:725
msgid "Album artist"
@@ -709,11 +709,11 @@ msgstr "غلاف الألبوم"
msgid "Album info on jamendo.com..."
msgstr "معلومات الألبوم على Jamendo.com..."
-#: ui/albumcovermanager.cpp:129
+#: ui/albumcovermanager.cpp:131
msgid "Albums with covers"
msgstr "ألبومات بغلاف"
-#: ui/albumcovermanager.cpp:130
+#: ui/albumcovermanager.cpp:132
msgid "Albums without covers"
msgstr "ألبومات بدون غلاف"
@@ -721,7 +721,7 @@ msgstr "ألبومات بدون غلاف"
msgid "All"
msgstr "الكل"
-#: ui/mainwindow.cpp:158
+#: ui/mainwindow.cpp:160
msgid "All Files (*)"
msgstr "جميع الملفات (*)"
@@ -730,11 +730,11 @@ msgctxt "Label for button to enable/disable Hypnotoad background sound."
msgid "All Glory to the Hypnotoad!"
msgstr "العظمة لهيبنوتود!"
-#: ui/albumcovermanager.cpp:128
+#: ui/albumcovermanager.cpp:130
msgid "All albums"
msgstr "كل الألبومات"
-#: ui/albumcovermanager.cpp:262
+#: ui/albumcovermanager.cpp:264
msgid "All artists"
msgstr "كل الفنانين"
@@ -742,12 +742,12 @@ msgstr "كل الفنانين"
msgid "All files (*)"
msgstr "كل الملفات (*)"
-#: playlistparsers/playlistparser.cpp:74
+#: playlistparsers/playlistparser.cpp:76
#, qt-format
msgid "All playlists (%1)"
msgstr "كل قوائم التشغيل (%1)"
-#: ui/about.cpp:80
+#: ui/about.cpp:82
msgid "All the translators"
msgstr "كل المترجمين"
@@ -771,16 +771,16 @@ msgstr "اسمح بترميز mid/side"
msgid "Alongside the originals"
msgstr "بجانب الأصلية"
-#: ../bin/src/ui_behavioursettingspage.h:331
-msgid "Always hide the main window"
-msgstr "اخف النافذة الرئيسية دائما"
+#: ../bin/src/ui_behavioursettingspage.h:370
+msgid "Alwa&ys hide the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:330
-msgid "Always show the main window"
-msgstr "أظهر النافذة الرئيسية دائما"
+#: ../bin/src/ui_behavioursettingspage.h:369
+msgid "Always show &the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:345
-#: ../bin/src/ui_behavioursettingspage.h:365
+#: ../bin/src/ui_behavioursettingspage.h:384
+#: ../bin/src/ui_behavioursettingspage.h:404
msgid "Always start playing"
msgstr "ابدأ التشغيل دائما"
@@ -794,7 +794,7 @@ msgstr "لاستعمال Spotify في كلمنتاين تحتاج لملحق إ
msgid "An error occurred loading the iTunes database"
msgstr "حدث خطأ أثناء تحميل قاعدة بيانات iTunes"
-#: playlist/playlist.cpp:424 ui/edittagdialog.cpp:703
+#: playlist/playlist.cpp:454 ui/edittagdialog.cpp:703
#, qt-format
msgid "An error occurred writing metadata to '%1'"
msgstr "حدث خطأ أثناء حفظ المعلومات في '%1'"
@@ -803,7 +803,7 @@ msgstr "حدث خطأ أثناء حفظ المعلومات في '%1'"
msgid "An unspecified error occurred."
msgstr "حدث خطأ عير محدد."
-#: ui/about.cpp:85
+#: ui/about.cpp:87
msgid "And:"
msgstr "إضافة لـ:"
@@ -821,13 +821,13 @@ msgstr "المظهر"
msgid "Append files/URLs to the playlist"
msgstr "أضف الملفات/العناوين إلى قائمة التشغيل"
-#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:454
+#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:455
#: internet/core/internetservice.cpp:48 library/libraryview.cpp:383
#: widgets/fileviewlist.cpp:31
msgid "Append to current playlist"
msgstr "أضف إلى قائمة التشغيل الحالية"
-#: ../bin/src/ui_behavioursettingspage.h:356
+#: ../bin/src/ui_behavioursettingspage.h:395
msgid "Append to the playlist"
msgstr "أضف إلى قائمة التشغيل"
@@ -850,8 +850,8 @@ msgid ""
"the songs of your library?"
msgstr "هل أنت متأكد من رغبتك بكتابة احصائيات المقاطع في ملفات المقاطع بالنسبة لكل المقاطع التي في مكتبتك الصوتية؟"
-#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1347
-#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:249
+#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1380
+#: ui/organisedialog.cpp:66 ui/qtsystemtrayicon.cpp:249
#: ../bin/src/ui_groupbydialog.h:129 ../bin/src/ui_groupbydialog.h:148
#: ../bin/src/ui_groupbydialog.h:167 ../bin/src/ui_albumcoversearcher.h:106
#: ../bin/src/ui_albumcoversearcher.h:108 ../bin/src/ui_edittagdialog.h:721
@@ -859,17 +859,17 @@ msgstr "هل أنت متأكد من رغبتك بكتابة احصائيات ا
msgid "Artist"
msgstr "الفنان"
-#: ui/mainwindow.cpp:283
+#: ui/mainwindow.cpp:285
msgid "Artist info"
msgstr "معلومات الفنان"
-#: ui/organisedialog.cpp:66
+#: ui/organisedialog.cpp:67
msgid "Artist's initial"
msgstr "بداية الفنان"
-#: ../bin/src/ui_behavioursettingspage.h:381
-msgid "Ask when saving"
-msgstr "إسأل عند الحفظ"
+#: ../bin/src/ui_behavioursettingspage.h:420
+msgid "As&k when saving"
+msgstr ""
#: ../bin/src/ui_transcodedialog.h:225
#: ../bin/src/ui_networkremotesettingspage.h:250
@@ -883,7 +883,7 @@ msgstr "مخرج الصوت"
#: internet/digitally/digitallyimportedsettingspage.cpp:82
#: internet/magnatune/magnatunesettingspage.cpp:117
-#: internet/lastfm/lastfmservice.cpp:268
+#: internet/lastfm/lastfmservice.cpp:270
#: internet/lastfm/lastfmsettingspage.cpp:76
msgid "Authentication failed"
msgstr "فشلت عملية التحقق"
@@ -892,7 +892,7 @@ msgstr "فشلت عملية التحقق"
msgid "Author"
msgstr "المؤلف"
-#: ui/about.cpp:68
+#: ui/about.cpp:70
msgid "Authors"
msgstr "المؤلفون"
@@ -902,7 +902,6 @@ msgid "Auto"
msgstr "تلقائي"
#: playlist/playlistsaveoptionsdialog.cpp:32
-#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Automatic"
msgstr "تلقائي"
@@ -922,7 +921,7 @@ msgstr "متاح"
msgid "Average bitrate"
msgstr "صبيب متوسط"
-#: covers/coversearchstatisticsdialog.cpp:69
+#: covers/coversearchstatisticsdialog.cpp:71
msgid "Average image size"
msgstr "القياس المتوسط للصور"
@@ -930,7 +929,7 @@ msgstr "القياس المتوسط للصور"
msgid "BBC Podcasts"
msgstr "بودكاست BBC"
-#: playlist/playlist.cpp:1383 ui/organisedialog.cpp:74
+#: playlist/playlist.cpp:1416 ui/organisedialog.cpp:75
#: ../bin/src/ui_edittagdialog.h:704
msgid "BPM"
msgstr "BPM"
@@ -951,7 +950,7 @@ msgstr "صورة الخلفية"
msgid "Background opacity"
msgstr "شفافية الخلفية"
-#: core/database.cpp:648
+#: core/database.cpp:664
msgid "Backing up database"
msgstr "استعادة قاعدة البيانات"
@@ -975,7 +974,7 @@ msgstr "Basic Blue"
msgid "Basic audio type"
msgstr "صوت عادي"
-#: ../bin/src/ui_behavioursettingspage.h:318
+#: ../bin/src/ui_behavioursettingspage.h:357
msgid "Behavior"
msgstr "السلوك"
@@ -987,7 +986,7 @@ msgstr "الأفضل"
msgid "Biography"
msgstr "السيرة الذاتية"
-#: playlist/playlist.cpp:1385 ../bin/src/ui_edittagdialog.h:706
+#: playlist/playlist.cpp:1418 ../bin/src/ui_edittagdialog.h:706
#: ../bin/src/ui_streamdetailsdialog.h:139
msgid "Bit rate"
msgstr "معدل البت"
@@ -1002,7 +1001,7 @@ msgstr "معدل البت"
msgid "Bitrate"
msgstr "الصبيب"
-#: ui/organisedialog.cpp:80
+#: ui/organisedialog.cpp:81
msgctxt "Refers to bitrate in file organise dialog."
msgid "Bitrate"
msgstr "معدل البت"
@@ -1093,7 +1092,7 @@ msgstr "تغيير اختصار لوحة المفاتيح..."
msgid "Change shuffle mode"
msgstr "تغيير نمط الخلط"
-#: ../bin/src/ui_behavioursettingspage.h:370
+#: ../bin/src/ui_behavioursettingspage.h:409
msgid "Change the currently playing song"
msgstr "تغيير المقطع المشغل حاليا"
@@ -1123,7 +1122,7 @@ msgstr "التمس حلقات جديدة"
msgid "Check for updates"
msgstr "التمس التحديثات"
-#: ui/mainwindow.cpp:820
+#: ui/mainwindow.cpp:824
msgid "Check for updates..."
msgstr "التمس التحديثات"
@@ -1172,7 +1171,7 @@ msgstr "كلاسيكي"
msgid "Cleaning up"
msgstr "تنضيف"
-#: transcoder/transcodedialog.cpp:61 widgets/lineedit.cpp:41
+#: transcoder/transcodedialog.cpp:63 widgets/lineedit.cpp:41
#: ../bin/src/ui_queuemanager.h:151
msgid "Clear"
msgstr "امسح"
@@ -1265,7 +1264,6 @@ msgstr "اضغط هنا لتفضيل هذه القائمة. هكذا سيتم ح
msgid "Click to toggle between remaining time and total time"
msgstr "اضغط للتبديل بين الوقت المتبقي والوقت الكلي."
-#: ../bin/src/ui_soundcloudsettingspage.h:103
#: ../bin/src/ui_lastfmsettingspage.h:133
#: ../bin/src/ui_googledrivesettingspage.h:102
#: ../bin/src/ui_dropboxsettingspage.h:102
@@ -1292,7 +1290,7 @@ msgstr "غلق التأثيرات المرئية"
msgid "Closing this window will cancel the download."
msgstr "إغلاق هذه النافذة سيلغي التحميل."
-#: ui/albumcovermanager.cpp:213
+#: ui/albumcovermanager.cpp:215
msgid "Closing this window will stop searching for album covers."
msgstr "غلق هذه النافذة سينهي البحث عن أغلفة الألبومات"
@@ -1312,8 +1310,12 @@ msgstr "الألوان"
msgid "Comma separated list of class:level, level is 0-3"
msgstr "لائحة عناصر مفروقة بفاصلة لـ \"class:level\"، قيمة Level بين 0-3"
-#: playlist/playlist.cpp:1402 smartplaylists/searchterm.cpp:384
-#: ui/organisedialog.cpp:78 ../bin/src/ui_edittagdialog.h:718
+#: ../bin/src/ui_behavioursettingspage.h:425
+msgid "Comma seperated list of prefix words to ignore when sorting"
+msgstr ""
+
+#: playlist/playlist.cpp:1435 smartplaylists/searchterm.cpp:384
+#: ui/organisedialog.cpp:79 ../bin/src/ui_edittagdialog.h:718
msgid "Comment"
msgstr "تعليق"
@@ -1325,8 +1327,8 @@ msgstr "أكمل الوسوم تلقائيا"
msgid "Complete tags automatically..."
msgstr "أكمل الوسوم تلقائيا..."
-#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1365
-#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:131
+#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1398
+#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:131
#: ../bin/src/ui_groupbydialog.h:150 ../bin/src/ui_groupbydialog.h:169
msgid "Composer"
msgstr "الملحّن"
@@ -1344,10 +1346,6 @@ msgstr "إعدادات Magnature"
msgid "Configure Shortcuts"
msgstr "إعدادات اختصارات لوحة المفاتيح"
-#: internet/soundcloud/soundcloudservice.cpp:381
-msgid "Configure SoundCloud..."
-msgstr ""
-
#: internet/spotify/spotifyservice.cpp:927
msgid "Configure Spotify..."
msgstr "إعدادات Spotify..."
@@ -1356,11 +1354,11 @@ msgstr "إعدادات Spotify..."
msgid "Configure Subsonic..."
msgstr "إعدادات Subsonic..."
-#: globalsearch/globalsearchview.cpp:151 globalsearch/globalsearchview.cpp:480
+#: globalsearch/globalsearchview.cpp:152 globalsearch/globalsearchview.cpp:481
msgid "Configure global search..."
msgstr "إعدادات البحث العامة..."
-#: ui/mainwindow.cpp:659
+#: ui/mainwindow.cpp:661
msgid "Configure library..."
msgstr "إعدادات المكتبة"
@@ -1370,7 +1368,7 @@ msgid "Configure podcasts..."
msgstr "إعدادات بودكاست..."
#: internet/core/cloudfileservice.cpp:107
-#: internet/digitally/digitallyimportedservicebase.cpp:182
+#: internet/digitally/digitallyimportedservicebase.cpp:184
#: internet/googledrive/googledriveservice.cpp:231
#: ../bin/src/ui_globalsearchsettingspage.h:146
msgid "Configure..."
@@ -1432,11 +1430,11 @@ msgid "Copy to clipboard"
msgstr "نسخ إلى المكتبة..."
#: library/libraryview.cpp:419 internet/podcasts/podcastservice.cpp:438
-#: ui/mainwindow.cpp:719 widgets/fileviewlist.cpp:44
+#: ui/mainwindow.cpp:721 widgets/fileviewlist.cpp:44
msgid "Copy to device..."
msgstr "نسخ إلى جهاز..."
-#: devices/deviceview.cpp:228 ui/mainwindow.cpp:709
+#: devices/deviceview.cpp:228 ui/mainwindow.cpp:711
#: widgets/fileviewlist.cpp:40
msgid "Copy to library..."
msgstr "نسخ إلى المكتبة..."
@@ -1451,7 +1449,7 @@ msgid ""
"http://localhost:4040/"
msgstr "تعذر الاتصال بخادم Subsonic، تأكد من عنوان الخادم. مثال للعنوان: http://localhost:4040/"
-#: transcoder/transcoder.cpp:58
+#: transcoder/transcoder.cpp:59
#, qt-format
msgid ""
"Could not create the GStreamer element \"%1\" - make sure you have all the "
@@ -1475,14 +1473,14 @@ msgstr ""
msgid "Couldn't create playlist"
msgstr "لا تنشئ قائمة تشغيل"
-#: transcoder/transcoder.cpp:425
+#: transcoder/transcoder.cpp:426
#, qt-format
msgid ""
"Couldn't find a muxer for %1, check you have the correct GStreamer plugins "
"installed"
msgstr "تعذر العثور على معدد من أجل %1، تأكد أن ملحقات GStreamer الضرورية مثبتة"
-#: transcoder/transcoder.cpp:419
+#: transcoder/transcoder.cpp:420
#, qt-format
msgid ""
"Couldn't find an encoder for %1, check you have the correct GStreamer "
@@ -1523,7 +1521,7 @@ msgstr "الغلاف غير محدد"
msgid "Cover art set from %1"
msgstr "الغلاف محدد من %1"
-#: covers/coversearchstatisticsdialog.cpp:59 ui/albumcoversearcher.cpp:100
+#: covers/coversearchstatisticsdialog.cpp:61 ui/albumcoversearcher.cpp:100
#, qt-format
msgid "Covers from %1"
msgstr "الأغلفة من %1"
@@ -1580,18 +1578,18 @@ msgstr ""
msgid "Dance"
msgstr "رقص"
-#: core/database.cpp:601
+#: core/database.cpp:617
msgid ""
"Database corruption detected. Please read https://github.com/clementine-"
"player/Clementine/wiki/Database-Corruption for instructions on how to "
"recover your database"
msgstr ""
-#: playlist/playlist.cpp:1399 ../bin/src/ui_edittagdialog.h:715
+#: playlist/playlist.cpp:1432 ../bin/src/ui_edittagdialog.h:715
msgid "Date created"
msgstr "تاريخ الإنشاء"
-#: playlist/playlist.cpp:1397 ../bin/src/ui_edittagdialog.h:714
+#: playlist/playlist.cpp:1430 ../bin/src/ui_edittagdialog.h:714
msgid "Date modified"
msgstr "حُرِرَ بِتاريخ"
@@ -1642,7 +1640,7 @@ msgid "Delete downloaded data"
msgstr "حذف البيانات المحملة"
#: devices/deviceview.cpp:408 library/libraryview.cpp:678
-#: ui/mainwindow.cpp:2432 widgets/fileview.cpp:188
+#: ui/mainwindow.cpp:2458 widgets/fileview.cpp:188
msgid "Delete files"
msgstr "احذف الملفات"
@@ -1650,7 +1648,7 @@ msgstr "احذف الملفات"
msgid "Delete from device..."
msgstr "احذف من الجهاز"
-#: library/libraryview.cpp:422 ui/mainwindow.cpp:722
+#: library/libraryview.cpp:422 ui/mainwindow.cpp:724
#: widgets/fileviewlist.cpp:47
msgid "Delete from disk..."
msgstr "احذف من القرص..."
@@ -1683,11 +1681,11 @@ msgstr "حذف الملفات"
msgid "Depth"
msgstr ""
-#: ui/mainwindow.cpp:1763
+#: ui/mainwindow.cpp:1789
msgid "Dequeue selected tracks"
msgstr "أزل المختارة من لائحة الانتظار"
-#: ui/mainwindow.cpp:1761
+#: ui/mainwindow.cpp:1787
msgid "Dequeue track"
msgstr "أزل المقطع من لائحة الانتظار"
@@ -1716,7 +1714,7 @@ msgstr "اسم الجهاز"
msgid "Device properties..."
msgstr "خصائص الجهاز..."
-#: ui/mainwindow.cpp:276
+#: ui/mainwindow.cpp:278
msgid "Devices"
msgstr "أجهزة"
@@ -1767,8 +1765,8 @@ msgctxt "Refers to search provider's status."
msgid "Disabled"
msgstr "معطل"
-#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1355
-#: ui/organisedialog.cpp:73 ../bin/src/ui_groupbydialog.h:139
+#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1388
+#: ui/organisedialog.cpp:74 ../bin/src/ui_groupbydialog.h:139
#: ../bin/src/ui_groupbydialog.h:158 ../bin/src/ui_groupbydialog.h:177
#: ../bin/src/ui_edittagdialog.h:722 ../bin/src/ui_ripcddialog.h:313
msgid "Disc"
@@ -1833,7 +1831,7 @@ msgid "Don't shuffle"
msgstr "لا تخلط"
#: internet/magnatune/magnatunedownloaddialog.cpp:312
-#: ui/albumcovermanager.cpp:215
+#: ui/albumcovermanager.cpp:217
msgid "Don't stop!"
msgstr "لا تتوقف!"
@@ -1846,11 +1844,11 @@ msgstr "تبرع"
msgid "Double click to open"
msgstr "النقر مرتين للتشغيل"
-#: ../bin/src/ui_behavioursettingspage.h:367
+#: ../bin/src/ui_behavioursettingspage.h:406
msgid "Double clicking a song in the playlist will..."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:353
+#: ../bin/src/ui_behavioursettingspage.h:392
msgid "Double clicking a song will..."
msgstr "النقر مرتين على مقطع سـ..."
@@ -1959,7 +1957,7 @@ msgstr "مزج عشوائي تلقائيا"
msgid "Edit smart playlist..."
msgstr "حرر قائمة التشغيل الذكية"
-#: ui/mainwindow.cpp:1813
+#: ui/mainwindow.cpp:1839
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "حرر الوسم \"%1\""
@@ -2005,7 +2003,7 @@ msgstr "فعل معدل الصوت"
msgid "Enable shortcuts only when Clementine is focused"
msgstr "فعل اختصارات لوحة المفاتيح فقط حين يكون كلمنتاين في الواجهة"
-#: ../bin/src/ui_behavioursettingspage.h:339
+#: ../bin/src/ui_behavioursettingspage.h:375
msgid "Enable song metadata inline edition with click"
msgstr ""
@@ -2094,12 +2092,12 @@ msgid "Equivalent to --log-levels *:3"
msgstr "يكافئ --log-levels *:3"
#: internet/magnatune/magnatunedownloaddialog.cpp:246
-#: library/libraryview.cpp:672 ui/mainwindow.cpp:2105 ui/mainwindow.cpp:2384
-#: ui/mainwindow.cpp:2563
+#: library/libraryview.cpp:672 ui/mainwindow.cpp:2131 ui/mainwindow.cpp:2410
+#: ui/mainwindow.cpp:2589
msgid "Error"
msgstr "خطأ"
-#: ripper/ripcddialog.cpp:152
+#: ripper/ripcddialog.cpp:154
msgid "Error Ripping CD"
msgstr "خطأ في الاستخراج من القرص المضغوط"
@@ -2107,11 +2105,11 @@ msgstr "خطأ في الاستخراج من القرص المضغوط"
msgid "Error connecting MTP device"
msgstr "حدث خطأ بالاتصال بجهاز MTP"
-#: ui/organiseerrordialog.cpp:52
+#: ui/organiseerrordialog.cpp:54
msgid "Error copying songs"
msgstr "خطأ في نسخ المقاطع"
-#: ui/organiseerrordialog.cpp:59
+#: ui/organiseerrordialog.cpp:61
msgid "Error deleting songs"
msgstr "خطأ في حذف المقاطع"
@@ -2129,12 +2127,12 @@ msgstr "خطأ أثناء تحميل ملحق Spotify"
msgid "Error loading %1"
msgstr "خطأ في تحميل %1"
-#: internet/digitally/digitallyimportedservicebase.cpp:200
+#: internet/digitally/digitallyimportedservicebase.cpp:202
#: internet/digitally/digitallyimportedurlhandler.cpp:96
msgid "Error loading di.fm playlist"
msgstr "خطأ في تحميل قائمة تشغيل di.fm"
-#: transcoder/transcoder.cpp:390
+#: transcoder/transcoder.cpp:391
#, qt-format
msgid "Error processing %1: %2"
msgstr "حدث خطأ بتطبيق %1:%2"
@@ -2208,16 +2206,16 @@ msgstr "صدر الأغلفة المحملة"
msgid "Export embedded covers"
msgstr "صدر الأغلفة المدمجة"
-#: ui/albumcovermanager.cpp:799 ui/albumcovermanager.cpp:823
+#: ui/albumcovermanager.cpp:801 ui/albumcovermanager.cpp:825
msgid "Export finished"
msgstr "تم الانتهاء من التصدير"
-#: ui/albumcovermanager.cpp:808
+#: ui/albumcovermanager.cpp:810
#, qt-format
msgid "Exported %1 covers out of %2 (%3 skipped)"
msgstr "تم تصدير %1 أغلفة من إجمالي %2 (تم تخطي %3)"
-#: core/song.cpp:430 transcoder/transcoder.cpp:233
+#: core/song.cpp:430 transcoder/transcoder.cpp:234
#: ../bin/src/ui_magnatunedownloaddialog.h:136
#: ../bin/src/ui_magnatunesettingspage.h:170
#: ../bin/src/ui_transcodersettingspage.h:176
@@ -2241,7 +2239,7 @@ msgstr "تلاشي"
msgid "Fading duration"
msgstr "مدة التلاشي"
-#: ui/mainwindow.cpp:2106
+#: ui/mainwindow.cpp:2132
msgid "Failed reading CD drive"
msgstr "فشل في قراءة القرص CD"
@@ -2276,10 +2274,6 @@ msgstr ""
msgid "Fast"
msgstr "سريع"
-#: internet/soundcloud/soundcloudservice.cpp:141
-msgid "Favorites"
-msgstr "المفضّلات"
-
#: library/library.cpp:88
msgid "Favourite tracks"
msgstr "المقاطع المفضلة"
@@ -2312,7 +2306,7 @@ msgstr "خطأ أثناء جلب الغلاف"
msgid "File Format"
msgstr "صيغة الملف"
-#: ui/organisedialog.cpp:82
+#: ui/organisedialog.cpp:83
msgid "File extension"
msgstr "امتداد الملف"
@@ -2320,11 +2314,11 @@ msgstr "امتداد الملف"
msgid "File formats"
msgstr "صيغ الملف"
-#: playlist/playlist.cpp:1389 ../bin/src/ui_edittagdialog.h:716
+#: playlist/playlist.cpp:1422 ../bin/src/ui_edittagdialog.h:716
msgid "File name"
msgstr "اسم الملف"
-#: playlist/playlist.cpp:1391
+#: playlist/playlist.cpp:1424
msgid "File name (without path)"
msgstr "اسم الملف (من دون المسار)"
@@ -2332,11 +2326,11 @@ msgstr "اسم الملف (من دون المسار)"
msgid "File paths"
msgstr "مسار الملف"
-#: playlist/playlist.cpp:1393 ../bin/src/ui_edittagdialog.h:710
+#: playlist/playlist.cpp:1426 ../bin/src/ui_edittagdialog.h:710
msgid "File size"
msgstr "حجم الملف"
-#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1395
+#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1428
#: ../bin/src/ui_groupbydialog.h:132 ../bin/src/ui_groupbydialog.h:151
#: ../bin/src/ui_groupbydialog.h:170 ../bin/src/ui_edittagdialog.h:712
msgid "File type"
@@ -2346,7 +2340,7 @@ msgstr "نوع الملف"
msgid "Filename"
msgstr "اسم الملف"
-#: ui/mainwindow.cpp:266
+#: ui/mainwindow.cpp:268
msgid "Files"
msgstr "الملفات"
@@ -2459,7 +2453,7 @@ msgstr "Full Treble"
msgid "Ge&nre"
msgstr ""
-#: ui/settingsdialog.cpp:133
+#: ui/settingsdialog.cpp:132
msgid "General"
msgstr "عام"
@@ -2467,8 +2461,8 @@ msgstr "عام"
msgid "General settings"
msgstr "إعدادات عامة"
-#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1361
-#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:133
+#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1394
+#: ui/organisedialog.cpp:78 ../bin/src/ui_groupbydialog.h:133
#: ../bin/src/ui_groupbydialog.h:152 ../bin/src/ui_groupbydialog.h:171
#: ../bin/src/ui_ripcddialog.h:316
msgid "Genre"
@@ -2488,7 +2482,7 @@ msgstr ""
msgid "Getting channels"
msgstr "جاري جلب القنوات"
-#: internet/digitally/digitallyimportedservicebase.cpp:100
+#: internet/digitally/digitallyimportedservicebase.cpp:102
msgid "Getting streams"
msgstr "جاري جلب التيارات..."
@@ -2512,13 +2506,13 @@ msgstr "انتقل للسان قائمة التشغيل السابق"
msgid "Google Drive"
msgstr "Google Drive"
-#: covers/coversearchstatisticsdialog.cpp:53 ui/albumcovermanager.cpp:465
+#: covers/coversearchstatisticsdialog.cpp:55 ui/albumcovermanager.cpp:467
#: ../bin/src/ui_coversearchstatisticsdialog.h:75
#, qt-format
msgid "Got %1 covers out of %2 (%3 failed)"
msgstr "تم جلب %1 أغلفة من %2 (%3 فشلت)"
-#: ../bin/src/ui_behavioursettingspage.h:335
+#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Grey out non existent songs in my playlists"
msgstr "اجعل المقاطع التي لا توجد في مكتبتي بلون باهت"
@@ -2526,7 +2520,7 @@ msgstr "اجعل المقاطع التي لا توجد في مكتبتي بلو
msgid "Group Library by..."
msgstr "تجميع المكتبة حسب:"
-#: globalsearch/globalsearchview.cpp:477 library/libraryfilterwidget.cpp:100
+#: globalsearch/globalsearchview.cpp:478 library/libraryfilterwidget.cpp:100
msgid "Group by"
msgstr "تجميع حسب"
@@ -2558,8 +2552,8 @@ msgstr "تجميع حسب النوع/الألبوم"
msgid "Group by Genre/Artist/Album"
msgstr "تجميع حسب النوع/الفنان/الألبوم"
-#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1369
-#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:141
+#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1402
+#: ui/organisedialog.cpp:71 ../bin/src/ui_groupbydialog.h:141
#: ../bin/src/ui_groupbydialog.h:160 ../bin/src/ui_groupbydialog.h:179
msgid "Grouping"
msgstr "تجميع"
@@ -2647,7 +2641,7 @@ msgstr "الأيقونة في الأعلى"
msgid "Identifying song"
msgstr "جاري التعرف على المقطع"
-#: ../bin/src/ui_behavioursettingspage.h:337
+#: ../bin/src/ui_behavioursettingspage.h:373
msgid ""
"If activated, clicking a selected song in the playlist view will let you "
"edit the tag value directly"
@@ -2667,6 +2661,10 @@ msgstr "إن كنت تتوفر على رابط البودكاست، أدخله
msgid "Ignore \"The\" in artist names"
msgstr "تجاهل \"The\" في أسماء الفنانين"
+#: ../bin/src/ui_behavioursettingspage.h:423
+msgid "Ignore prefix word(s)"
+msgstr ""
+
#: ui/albumcoverchoicecontroller.cpp:44
msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
msgstr "الصور (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
@@ -2748,15 +2746,15 @@ msgstr "إدارج..."
msgid "Installed"
msgstr "مثبت"
-#: core/database.cpp:585
+#: core/database.cpp:601
msgid "Integrity check"
msgstr "فحص شامل"
-#: ui/mainwindow.cpp:272
+#: ui/mainwindow.cpp:274
msgid "Internet"
msgstr "انترنت"
-#: ui/settingsdialog.cpp:156
+#: ui/settingsdialog.cpp:155
msgid "Internet providers"
msgstr "خدمات الانترنت"
@@ -2769,7 +2767,7 @@ msgstr ""
msgid "Intro tracks"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:280
+#: internet/lastfm/lastfmservice.cpp:282
msgid "Invalid API key"
msgstr "مفتاح API غير صالح"
@@ -2777,27 +2775,27 @@ msgstr "مفتاح API غير صالح"
msgid "Invalid URL"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:270
+#: internet/lastfm/lastfmservice.cpp:272
msgid "Invalid format"
msgstr "صيغة غير متاحة"
-#: internet/lastfm/lastfmservice.cpp:266
+#: internet/lastfm/lastfmservice.cpp:268
msgid "Invalid method"
msgstr "طريقة غير متاحة"
-#: internet/lastfm/lastfmservice.cpp:272
+#: internet/lastfm/lastfmservice.cpp:274
msgid "Invalid parameters"
msgstr "إعدادات غير صالحة"
-#: internet/lastfm/lastfmservice.cpp:274
+#: internet/lastfm/lastfmservice.cpp:276
msgid "Invalid resource specified"
msgstr "تم تعيين مصدر غير صالح"
-#: internet/lastfm/lastfmservice.cpp:264
+#: internet/lastfm/lastfmservice.cpp:266
msgid "Invalid service"
msgstr "خدمة غير متاحة"
-#: internet/lastfm/lastfmservice.cpp:278
+#: internet/lastfm/lastfmservice.cpp:280
msgid "Invalid session key"
msgstr "مفتاح جلسة غير صالح"
@@ -2829,7 +2827,7 @@ msgstr "أفضل مقاطع الأسبوع على Jamendo"
msgid "Jamendo database"
msgstr "قاعدة بيانات Jamendo"
-#: ../bin/src/ui_behavioursettingspage.h:350
+#: ../bin/src/ui_behavioursettingspage.h:389
msgid "Jump to previous song right away"
msgstr ""
@@ -2849,7 +2847,7 @@ msgstr "أبق الأزار لمدة %1 ثانية..."
msgid "Keep buttons for %1 seconds..."
msgstr "أبق الأزار لمدة %1 ثواني"
-#: ../bin/src/ui_behavioursettingspage.h:321
+#: ../bin/src/ui_behavioursettingspage.h:360
msgid "Keep running in the background when the window is closed"
msgstr "تابع التشغيل في الخلفية عند إغلاق النافذة"
@@ -2866,7 +2864,7 @@ msgstr "هرر"
msgid "Kuduro"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:323
+#: ../bin/src/ui_behavioursettingspage.h:362
msgid "Language"
msgstr "اللغة"
@@ -2898,7 +2896,7 @@ msgstr "عارضة جانبية عريضة"
msgid "Last played"
msgstr "المشغلة مؤخرا"
-#: playlist/playlist.cpp:1378 ../bin/src/ui_edittagdialog.h:707
+#: playlist/playlist.cpp:1411 ../bin/src/ui_edittagdialog.h:707
msgctxt "A playlist's tag."
msgid "Last played"
msgstr "آخر تشغيل"
@@ -2907,11 +2905,11 @@ msgstr "آخر تشغيل"
msgid "Last.fm"
msgstr "Last.fm"
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
msgid "Last.fm Authentication"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:287
+#: internet/lastfm/lastfmservice.cpp:289
msgid "Last.fm is currently busy, please try again in a few minutes"
msgstr "Last.fm مشغول حاليا، الرجاء إعادة المحاولة بعد دقائق."
@@ -2935,12 +2933,12 @@ msgstr "المقاطع الأقل تفضيلا"
msgid "Left"
msgstr "يسار"
-#: playlist/playlist.cpp:1351 ui/organisedialog.cpp:79
+#: playlist/playlist.cpp:1384 ui/organisedialog.cpp:80
#: ui/qtsystemtrayicon.cpp:254 ../bin/src/ui_edittagdialog.h:702
msgid "Length"
msgstr "المدة"
-#: ui/mainwindow.cpp:251 ui/mainwindow.cpp:263
+#: ui/mainwindow.cpp:253 ui/mainwindow.cpp:265
#: ../bin/src/ui_seafilesettingspage.h:177
msgid "Library"
msgstr "المكتبة"
@@ -2949,7 +2947,7 @@ msgstr "المكتبة"
msgid "Library advanced grouping"
msgstr "إعدادات متقدمة لتجميع المكتبة"
-#: ui/mainwindow.cpp:2683
+#: ui/mainwindow.cpp:2709
msgid "Library rescan notice"
msgstr "إشعار إعادة فحص المكتبة"
@@ -2985,7 +2983,7 @@ msgstr "حمل الغلاف من القرص"
msgid "Load cover from disk..."
msgstr "تحميل الغلاف من القرص..."
-#: playlist/playlistcontainer.cpp:298
+#: playlist/playlistcontainer.cpp:300
msgid "Load playlist"
msgstr "تحميل قائمة تشغيل"
@@ -3005,7 +3003,7 @@ msgstr "تحميل قاعدة بيانات أيبود"
msgid "Loading smart playlist"
msgstr "تحميل قائمة تشغيل ذكية"
-#: library/librarymodel.cpp:169
+#: library/librarymodel.cpp:170
msgid "Loading songs"
msgstr "تحميل المقاطع"
@@ -3023,7 +3021,7 @@ msgstr "جاري تحميل المقاطع"
msgid "Loading tracks info"
msgstr "جاري تحميل معلومات المقاطع"
-#: library/librarymodel.cpp:164
+#: library/librarymodel.cpp:165
#: internet/podcasts/podcastdiscoverymodel.cpp:105 widgets/prettyimage.cpp:168
#: widgets/widgetfadehelper.cpp:96 ../bin/src/ui_addpodcastdialog.h:179
#: ../bin/src/ui_searchpreview.h:105 ../bin/src/ui_organisedialog.h:261
@@ -3036,7 +3034,6 @@ msgstr "تحميل ملفات/روابط، استبدال قائمة التشغ
#: ../bin/src/ui_digitallyimportedsettingspage.h:162
#: ../bin/src/ui_magnatunesettingspage.h:163
-#: ../bin/src/ui_soundcloudsettingspage.h:102
#: ../bin/src/ui_spotifysettingspage.h:210
#: ../bin/src/ui_subsonicsettingspage.h:137
#: ../bin/src/ui_lastfmsettingspage.h:132
@@ -3077,7 +3074,7 @@ msgstr "أقل (256x256)"
msgid "Low complexity profile (LC)"
msgstr "ملف تعريف بأقل تعقيد (LC)"
-#: ui/organisedialog.cpp:71 ../bin/src/ui_songinfosettingspage.h:158
+#: ui/organisedialog.cpp:72 ../bin/src/ui_songinfosettingspage.h:158
msgid "Lyrics"
msgstr "كلمات المقطع"
@@ -3090,11 +3087,11 @@ msgstr "كلمات المقطع من %1"
msgid "Lyrics from the tag"
msgstr ""
-#: transcoder/transcoder.cpp:235
+#: transcoder/transcoder.cpp:236
msgid "M4A AAC"
msgstr "M4A AAC"
-#: core/song.cpp:436 transcoder/transcoder.cpp:238
+#: core/song.cpp:436 transcoder/transcoder.cpp:239
#: ../bin/src/ui_transcodersettingspage.h:174
msgid "MP3"
msgstr "MP3"
@@ -3145,7 +3142,7 @@ msgstr "اجعلها كذلك!"
msgid "Make playlist available offline"
msgstr "اجعل قائمة التشغيل متاحة دون اتصال"
-#: internet/lastfm/lastfmservice.cpp:299
+#: internet/lastfm/lastfmservice.cpp:301
msgid "Malformed response"
msgstr "إجابة غير صالحة"
@@ -3186,7 +3183,7 @@ msgstr "طابق كلمة بحث أو عدة كلمات (أو)"
msgid "Maximum bitrate"
msgstr "أقصى صبيب"
-#: ripper/ripcddialog.cpp:153
+#: ripper/ripcddialog.cpp:155
msgid "Media has changed. Reloading"
msgstr "تغيرت المادة. يعاد التحميل"
@@ -3236,7 +3233,7 @@ msgstr "تشغيل مونو"
msgid "Months"
msgstr "الأشهر"
-#: playlist/playlist.cpp:1406
+#: playlist/playlist.cpp:1439
msgid "Mood"
msgstr "المزاج"
@@ -3266,7 +3263,7 @@ msgstr "نقط الوصل"
msgid "Move down"
msgstr "أسفل"
-#: ui/mainwindow.cpp:712 widgets/fileviewlist.cpp:42
+#: ui/mainwindow.cpp:714 widgets/fileviewlist.cpp:42
msgid "Move to library..."
msgstr "انقل إلى المكتبة"
@@ -3275,7 +3272,7 @@ msgstr "انقل إلى المكتبة"
msgid "Move up"
msgstr "أعلى"
-#: transcoder/transcodedialog.cpp:225 ui/mainwindow.cpp:2050
+#: transcoder/transcodedialog.cpp:227 ui/mainwindow.cpp:2076
msgid "Music"
msgstr "موسيقى"
@@ -3322,8 +3319,8 @@ msgstr "أبدا"
msgid "Never played"
msgstr "لم تشغل أبدا"
-#: ../bin/src/ui_behavioursettingspage.h:343
-#: ../bin/src/ui_behavioursettingspage.h:363
+#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:402
msgid "Never start playing"
msgstr "لم يبدأ تشغيلها أبدا"
@@ -3333,7 +3330,7 @@ msgstr "لم يبدأ تشغيلها أبدا"
msgid "New folder"
msgstr "مجلد جديد"
-#: ui/mainwindow.cpp:1867 ../bin/src/ui_mainwindow.h:709
+#: ui/mainwindow.cpp:1893 ../bin/src/ui_mainwindow.h:709
msgid "New playlist"
msgstr "قائمة تشغيل جديدة"
@@ -3378,7 +3375,7 @@ msgstr "دون محلل"
msgid "No background image"
msgstr "دون صورة خلفية"
-#: ui/albumcovermanager.cpp:800
+#: ui/albumcovermanager.cpp:802
msgid "No covers to export."
msgstr "لا توجد أغلفة للتصدير."
@@ -3386,7 +3383,7 @@ msgstr "لا توجد أغلفة للتصدير."
msgid "No long blocks"
msgstr "بدون أجزاء طويلة"
-#: playlist/playlistcontainer.cpp:383
+#: playlist/playlistcontainer.cpp:385
msgid ""
"No matches found. Clear the search box to show the whole playlist again."
msgstr "لم يتم العثور على أي نتيجة. امسح خانة البحث لإظهار جميع قوائم التشغيل من جديد."
@@ -3400,7 +3397,7 @@ msgstr "بدون أجزاء قصيرة"
msgid "None"
msgstr "لا شيء"
-#: library/libraryview.cpp:673 ui/mainwindow.cpp:2385 ui/mainwindow.cpp:2564
+#: library/libraryview.cpp:673 ui/mainwindow.cpp:2411 ui/mainwindow.cpp:2590
msgid "None of the selected songs were suitable for copying to a device"
msgstr "لا مقطع من المقاطع المختارة مناسب لنسخه لجهاز."
@@ -3412,6 +3409,10 @@ msgstr "عادي"
msgid "Normal block type"
msgstr "نوع أجزاء عادي"
+#: ../bin/src/ui_behavioursettingspage.h:428
+msgid "Normal duration (at least 4 minutes or half the track length)"
+msgstr ""
+
#: playlist/playlistsequence.cpp:203
msgid "Not available while using a dynamic playlist"
msgstr "غير متاح عند استعمال قائمة تشغيل ديناميكية"
@@ -3420,19 +3421,19 @@ msgstr "غير متاح عند استعمال قائمة تشغيل دينامي
msgid "Not connected"
msgstr "غير متصل"
-#: internet/lastfm/lastfmservice.cpp:290
+#: internet/lastfm/lastfmservice.cpp:292
msgid "Not enough content"
msgstr "لا يوجد محتوى كافي"
-#: internet/lastfm/lastfmservice.cpp:294
+#: internet/lastfm/lastfmservice.cpp:296
msgid "Not enough fans"
msgstr "عدد المعجبين غير كافٍ"
-#: internet/lastfm/lastfmservice.cpp:292
+#: internet/lastfm/lastfmservice.cpp:294
msgid "Not enough members"
msgstr "عدد الأعضاء غير كافٍ"
-#: internet/lastfm/lastfmservice.cpp:296
+#: internet/lastfm/lastfmservice.cpp:298
msgid "Not enough neighbors"
msgstr "عدد الجيران غير كافٍ"
@@ -3440,7 +3441,7 @@ msgstr "عدد الجيران غير كافٍ"
msgid "Not installed"
msgstr "غير مثبت"
-#: globalsearch/globalsearchsettingspage.cpp:120
+#: globalsearch/globalsearchsettingspage.cpp:122
#: globalsearch/searchproviderstatuswidget.cpp:47
msgid "Not logged in"
msgstr "غير متصل"
@@ -3477,19 +3478,19 @@ msgstr "معطل"
msgid "Ogg FLAC"
msgstr ""
-#: transcoder/transcoder.cpp:244
+#: transcoder/transcoder.cpp:245
msgid "Ogg Flac"
msgstr "Ogg Flac"
-#: core/song.cpp:444 transcoder/transcoder.cpp:250
+#: core/song.cpp:444 transcoder/transcoder.cpp:251
msgid "Ogg Opus"
msgstr "Ogg Opus"
-#: core/song.cpp:440 transcoder/transcoder.cpp:247
+#: core/song.cpp:440 transcoder/transcoder.cpp:248
msgid "Ogg Speex"
msgstr "Ogg Speex"
-#: core/song.cpp:442 transcoder/transcoder.cpp:241
+#: core/song.cpp:442 transcoder/transcoder.cpp:242
#: ../bin/src/ui_magnatunedownloaddialog.h:135
#: ../bin/src/ui_magnatunesettingspage.h:169
msgid "Ogg Vorbis"
@@ -3523,13 +3524,12 @@ msgstr "أظهر الأول فقط"
msgid "Opacity"
msgstr "الشفافية"
-#: internet/digitally/digitallyimportedservicebase.cpp:175
+#: internet/digitally/digitallyimportedservicebase.cpp:177
#: internet/icecast/icecastservice.cpp:298
#: internet/jamendo/jamendoservice.cpp:427
#: internet/magnatune/magnatuneservice.cpp:287
#: internet/somafm/somafmservice.cpp:102
#: internet/intergalacticfm/intergalacticfmservice.cpp:102
-#: internet/soundcloud/soundcloudservice.cpp:377
#, qt-format
msgid "Open %1 in browser"
msgstr "فتح %1 في المتصفح"
@@ -3546,7 +3546,7 @@ msgstr "فتح ملف OPML"
msgid "Open OPML file..."
msgstr "فتح ملف OPML..."
-#: transcoder/transcodedialog.cpp:240
+#: transcoder/transcodedialog.cpp:242
msgid "Open a directory to import music from"
msgstr ""
@@ -3562,13 +3562,13 @@ msgstr "فتح ملف..."
msgid "Open in Google Drive"
msgstr "فتح في Google Drive"
-#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:460
+#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:461
#: internet/core/internetservice.cpp:62 library/libraryview.cpp:389
#: widgets/fileviewlist.cpp:36
msgid "Open in new playlist"
msgstr "فتح في قائمة تشغيل جديدة"
-#: ../bin/src/ui_behavioursettingspage.h:358
+#: ../bin/src/ui_behavioursettingspage.h:397
msgctxt "Refers to behavior settings in Clementine settings page."
msgid "Open in new playlist"
msgstr "فتح في قائمة جديدة"
@@ -3582,7 +3582,7 @@ msgstr "إفتح في المتصفّح لديك"
msgid "Open..."
msgstr "فتح..."
-#: internet/lastfm/lastfmservice.cpp:276
+#: internet/lastfm/lastfmservice.cpp:278
msgid "Operation failed"
msgstr "فشلت العملية"
@@ -3608,7 +3608,7 @@ msgstr "Opus"
msgid "Organise Files"
msgstr "ترتيب الملفات"
-#: library/libraryview.cpp:416 ui/mainwindow.cpp:715
+#: library/libraryview.cpp:416 ui/mainwindow.cpp:717
msgid "Organise files..."
msgstr "ترتيب الملفات..."
@@ -3620,8 +3620,8 @@ msgstr "ترتيب الملفات"
msgid "Original tags"
msgstr "الوسوم الأصلية"
-#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1359
-#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:135
+#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1392
+#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:135
#: ../bin/src/ui_groupbydialog.h:154 ../bin/src/ui_groupbydialog.h:173
msgid "Original year"
msgstr "السنة الأصليّة"
@@ -3692,7 +3692,7 @@ msgstr "حفلة"
msgid "Password"
msgstr "كلمة السر"
-#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1160 ui/mainwindow.cpp:1663
+#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1170 ui/mainwindow.cpp:1689
#: ui/qtsystemtrayicon.cpp:189 wiimotedev/wiimotesettingspage.cpp:114
msgid "Pause"
msgstr "إيقاف مؤقت"
@@ -3705,8 +3705,8 @@ msgstr "أوقف التشغيل مؤقتا"
msgid "Paused"
msgstr "تم الإيقاف مؤقتا"
-#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1367
-#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:140
+#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1400
+#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:140
#: ../bin/src/ui_groupbydialog.h:159 ../bin/src/ui_groupbydialog.h:178
#: ../bin/src/ui_edittagdialog.h:727
msgid "Performer"
@@ -3720,14 +3720,14 @@ msgstr "بكسل"
msgid "Plain sidebar"
msgstr "شريط جانبي عريض"
-#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:676 ui/mainwindow.cpp:1126
-#: ui/mainwindow.cpp:1145 ui/mainwindow.cpp:1667 ui/qtsystemtrayicon.cpp:177
+#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:678 ui/mainwindow.cpp:1134
+#: ui/mainwindow.cpp:1155 ui/mainwindow.cpp:1693 ui/qtsystemtrayicon.cpp:177
#: ui/qtsystemtrayicon.cpp:203 wiimotedev/wiimotesettingspage.cpp:107
#: ../bin/src/ui_mainwindow.h:675
msgid "Play"
msgstr "تشغيل"
-#: playlist/playlist.cpp:1374 ../bin/src/ui_edittagdialog.h:703
+#: playlist/playlist.cpp:1407 ../bin/src/ui_edittagdialog.h:703
msgid "Play count"
msgstr "عدد مرات التشغيل"
@@ -3735,16 +3735,16 @@ msgstr "عدد مرات التشغيل"
msgid "Play if stopped, pause if playing"
msgstr "شغل إذا انتهى، أوقف إذا كان قيد التشغيل"
-#: ../bin/src/ui_behavioursettingspage.h:344
-#: ../bin/src/ui_behavioursettingspage.h:364
+#: ../bin/src/ui_behavioursettingspage.h:383
+#: ../bin/src/ui_behavioursettingspage.h:403
msgid "Play if there is nothing already playing"
msgstr "شغل إذا لم يكن هناك مقطع قيد التشغيل "
-#: library/libraryview.cpp:396 ui/mainwindow.cpp:1774
+#: library/libraryview.cpp:396 ui/mainwindow.cpp:1800
msgid "Play next"
msgstr ""
-#: ui/mainwindow.cpp:1772
+#: ui/mainwindow.cpp:1798
msgid "Play selected tracks next"
msgstr ""
@@ -3764,7 +3764,7 @@ msgstr "التشغيل"
msgid "Player options"
msgstr "خيارات المشغل"
-#: playlist/playlistcontainer.cpp:294 playlist/playlistlistcontainer.cpp:325
+#: playlist/playlistcontainer.cpp:296 playlist/playlistlistcontainer.cpp:325
#: playlist/playlistmanager.cpp:87 playlist/playlistmanager.cpp:156
#: playlist/playlistmanager.cpp:525 playlist/playlisttabbar.cpp:366
msgid "Playlist"
@@ -3783,7 +3783,7 @@ msgstr "خيارات قائمة التشغيل"
msgid "Playlist type"
msgstr "نوع قائمة التشغيل"
-#: internet/soundcloud/soundcloudservice.cpp:133 ui/mainwindow.cpp:269
+#: ui/mainwindow.cpp:271
msgid "Playlists"
msgstr "قوائم التشغيل"
@@ -3791,7 +3791,7 @@ msgstr "قوائم التشغيل"
msgid "Please close your browser and return to Clementine."
msgstr "الرجاء إغلاق متصفحك والعودة إلى كلمنتاين"
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
#, qt-format
msgid "Please open this URL in your browser: %1"
msgstr ""
@@ -3874,7 +3874,7 @@ msgstr "اضغط زرا"
msgid "Press a key combination to use for %1..."
msgstr "اضغط على تجميعة أزرار لاستخدامها في %1 ..."
-#: ../bin/src/ui_behavioursettingspage.h:347
+#: ../bin/src/ui_behavioursettingspage.h:386
msgid "Pressing \"Previous\" in player will..."
msgstr ""
@@ -3951,12 +3951,12 @@ msgstr "الاستعلام عن الجهاز..."
msgid "Queue Manager"
msgstr "مدير لائحة الانتظار"
-#: ui/mainwindow.cpp:1767
+#: ui/mainwindow.cpp:1793
msgid "Queue selected tracks"
msgstr "أضف المختارة للائحة الانتظار"
-#: globalsearch/globalsearchview.cpp:464 library/libraryview.cpp:393
-#: ui/mainwindow.cpp:1765
+#: globalsearch/globalsearchview.cpp:465 library/libraryview.cpp:393
+#: ui/mainwindow.cpp:1791
msgid "Queue track"
msgstr "أضف للائحة الانتظار"
@@ -4005,12 +4005,12 @@ msgstr "قيم المقطع الحالي ب 4 نجوم"
msgid "Rate the current song 5 stars"
msgstr "قيم المقطع الحالي ب 5 نجوم"
-#: playlist/playlist.cpp:1372 ../bin/src/ui_edittagdialog.h:711
+#: playlist/playlist.cpp:1405 ../bin/src/ui_edittagdialog.h:711
msgid "Rating"
msgstr "تقييم"
#: internet/magnatune/magnatunedownloaddialog.cpp:309
-#: ui/albumcovermanager.cpp:212
+#: ui/albumcovermanager.cpp:214
msgid "Really cancel?"
msgstr "تريد فعلا الإلغاء؟"
@@ -4037,7 +4037,7 @@ msgstr "حدث القنوات"
msgid "Refresh station list"
msgstr "حدث قائمة المحطة"
-#: internet/digitally/digitallyimportedservicebase.cpp:178
+#: internet/digitally/digitallyimportedservicebase.cpp:180
msgid "Refresh streams"
msgstr "حدث تيارات الانترنت"
@@ -4046,7 +4046,7 @@ msgid "Reggae"
msgstr "Reggae"
#: playlist/playlistsaveoptionsdialog.cpp:33
-#: ../bin/src/ui_behavioursettingspage.h:380
+#: ../bin/src/ui_behavioursettingspage.h:419
msgid "Relative"
msgstr "نسبي"
@@ -4054,9 +4054,9 @@ msgstr "نسبي"
msgid "Remember Wii remote swing"
msgstr "تذكر تحركات أداة التحكم عن بعد لـ Wii"
-#: ../bin/src/ui_behavioursettingspage.h:332
-msgid "Remember from last time"
-msgstr "تذكر من اخر مرة"
+#: ../bin/src/ui_behavioursettingspage.h:371
+msgid "Remember from &last time"
+msgstr ""
#: ../bin/src/ui_playlistsaveoptionsdialog.h:99
msgid "Remember my choice"
@@ -4128,13 +4128,13 @@ msgstr "كرر قائمة التشغيل"
msgid "Repeat track"
msgstr "كرر المقطع"
-#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:457
+#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:458
#: internet/core/internetservice.cpp:55 library/libraryview.cpp:386
#: widgets/fileviewlist.cpp:34
msgid "Replace current playlist"
msgstr "استبدل قائمة التشغيل الحالية"
-#: ../bin/src/ui_behavioursettingspage.h:357
+#: ../bin/src/ui_behavioursettingspage.h:396
msgid "Replace the playlist"
msgstr "استبدل قائمة التشغيل"
@@ -4166,7 +4166,7 @@ msgstr "استرجاع الحالة البدئية"
msgid "Reset play counts"
msgstr "صفّر عدد مرات التشغيل"
-#: ../bin/src/ui_behavioursettingspage.h:351
+#: ../bin/src/ui_behavioursettingspage.h:390
msgid "Restart song, then jump to previous if pressed again"
msgstr ""
@@ -4179,7 +4179,7 @@ msgstr "أعد تشغيل المقطع، أو شغل المقطع السابق
msgid "Restrict to ASCII characters"
msgstr "اكتف بأحرف ASCII"
-#: ../bin/src/ui_behavioursettingspage.h:333
+#: ../bin/src/ui_behavioursettingspage.h:376
msgid "Resume playback on start"
msgstr "تابع التشغيل عند البدء"
@@ -4195,7 +4195,7 @@ msgstr "يمين"
msgid "Rip"
msgstr "نسخ"
-#: ripper/ripcddialog.cpp:105
+#: ripper/ripcddialog.cpp:107
msgid "Rip CD"
msgstr "قرص RIP"
@@ -4233,13 +4233,13 @@ msgstr "احذف الجهاز بأمان"
msgid "Safely remove the device after copying"
msgstr "احذف الجهاز بأمان بعد انتهاء النسخ"
-#: playlist/playlist.cpp:1387 ../bin/src/ui_edittagdialog.h:708
+#: playlist/playlist.cpp:1420 ../bin/src/ui_edittagdialog.h:708
#: ../bin/src/ui_playbacksettingspage.h:371
#: ../bin/src/ui_streamdetailsdialog.h:141
msgid "Sample rate"
msgstr "معدل العينة"
-#: ui/organisedialog.cpp:81
+#: ui/organisedialog.cpp:82
msgid "Samplerate"
msgstr "معدل العينة"
@@ -4313,7 +4313,7 @@ msgstr "ملف التعريف Scalable sampling rate (SSR)"
msgid "Scale size"
msgstr "غيّر الحجم"
-#: playlist/playlist.cpp:1380 ../bin/src/ui_edittagdialog.h:709
+#: playlist/playlist.cpp:1413 ../bin/src/ui_edittagdialog.h:709
msgid "Score"
msgstr "النتيجة"
@@ -4321,7 +4321,7 @@ msgstr "النتيجة"
msgid "Scrobble tracks that I listen to"
msgstr "أرسل معلومات المقاطع التي استمع إليها"
-#: ../bin/src/ui_behavioursettingspage.h:320
+#: ../bin/src/ui_behavioursettingspage.h:359
msgid "Scroll over icon to change track"
msgstr ""
@@ -4335,7 +4335,7 @@ msgstr ""
msgid "Search"
msgstr "البحث"
-#: ui/mainwindow.cpp:260 ../bin/src/ui_globalsearchsettingspage.h:141
+#: ui/mainwindow.cpp:262 ../bin/src/ui_globalsearchsettingspage.h:141
msgctxt "Global search settings dialog title."
msgid "Search"
msgstr "بحث"
@@ -4360,7 +4360,7 @@ msgstr "بحث Subsonic"
msgid "Search automatically"
msgstr "ابحث تلقائيا"
-#: ui/mainwindow.cpp:696
+#: ui/mainwindow.cpp:698
msgid "Search for album"
msgstr ""
@@ -4373,11 +4373,11 @@ msgstr "ابحث عن أغلفة الألبومات..."
msgid "Search for anything"
msgstr "ابحث عن أي شيء"
-#: ui/mainwindow.cpp:693
+#: ui/mainwindow.cpp:695
msgid "Search for artist"
msgstr ""
-#: globalsearch/globalsearchview.cpp:473 library/libraryview.cpp:401
+#: globalsearch/globalsearchview.cpp:474 library/libraryview.cpp:401
msgid "Search for this"
msgstr ""
@@ -4397,7 +4397,6 @@ msgstr "نمط البحث"
msgid "Search options"
msgstr "إعدادات البحث"
-#: internet/soundcloud/soundcloudservice.cpp:119
#: internet/spotify/spotifyservice.cpp:400
msgid "Search results"
msgstr "نتائج البحث"
@@ -4431,7 +4430,7 @@ msgstr "انتقل في المقطع الحالي إلى موضع نسبي"
msgid "Seek the currently playing track to an absolute position"
msgstr "انتقل في المقطع الحالي إلى موضع محدد"
-#: ../bin/src/ui_behavioursettingspage.h:373
+#: ../bin/src/ui_behavioursettingspage.h:412
msgid "Seeking using a keyboard shortcut or mouse wheel"
msgstr ""
@@ -4487,11 +4486,11 @@ msgstr "عنوان الخادم"
msgid "Server details"
msgstr "معلومات الخادم"
-#: internet/lastfm/lastfmservice.cpp:282
+#: internet/lastfm/lastfmservice.cpp:284
msgid "Service offline"
msgstr "خدمة غير متصلة"
-#: ui/mainwindow.cpp:1812
+#: ui/mainwindow.cpp:1838
#, qt-format
msgid "Set %1 to \"%2\"..."
msgstr "غير %1 إلى %2"
@@ -4508,6 +4507,10 @@ msgstr "اجعل هذه القيمة لجميع المقاطع المختارة"
msgid "Settings"
msgstr "الإعدادات"
+#: ../bin/src/ui_behavioursettingspage.h:429
+msgid "Short duration (at least 1 minute or half the track length)"
+msgstr ""
+
#: ../bin/src/ui_globalshortcutssettingspage.h:172
msgid "Shortcut"
msgstr "اختصار لوحة المفاتيح"
@@ -4567,7 +4570,7 @@ msgstr "أظهر تنبيهات كلمنتاين"
msgid "Show above status bar"
msgstr "أظهر فوق شريط الحالة"
-#: ui/mainwindow.cpp:643
+#: ui/mainwindow.cpp:645
msgid "Show all songs"
msgstr "أظهر جميع المقاطع"
@@ -4587,12 +4590,12 @@ msgstr "أظهر الفواصل"
msgid "Show fullsize..."
msgstr "أظهر الحجم الأصلي..."
-#: library/libraryview.cpp:433 ui/mainwindow.cpp:725
+#: library/libraryview.cpp:433 ui/mainwindow.cpp:727
#: widgets/fileviewlist.cpp:53
msgid "Show in file browser..."
msgstr "أظهر في متصفح الملفات..."
-#: ui/mainwindow.cpp:727
+#: ui/mainwindow.cpp:729
msgid "Show in library..."
msgstr "أظهر في المكتبة..."
@@ -4604,11 +4607,11 @@ msgstr "أظهر في فنانين متنوعين"
msgid "Show moodbar"
msgstr "أظهر عارضة المزاج"
-#: ui/mainwindow.cpp:645
+#: ui/mainwindow.cpp:647
msgid "Show only duplicates"
msgstr "أظهر المقاطع المكررة فقط"
-#: ui/mainwindow.cpp:647
+#: ui/mainwindow.cpp:649
msgid "Show only untagged"
msgstr "أظهر المقطاع غير الموسومة فقط"
@@ -4632,7 +4635,7 @@ msgstr "أظهر زر \"حب\""
msgid "Show the scrobble button in the main window"
msgstr "أظهر زر نقل معلومات الاستماع في النافذة الرئيسية"
-#: ../bin/src/ui_behavioursettingspage.h:319
+#: ../bin/src/ui_behavioursettingspage.h:358
msgid "Show tray icon"
msgstr "أظهر الأيقونة في شريط التنبيهات"
@@ -4692,7 +4695,7 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "تجاهل السابق في قائمة التشغيل"
-#: playlist/playlist.cpp:1376 ../bin/src/ui_edittagdialog.h:705
+#: playlist/playlist.cpp:1409 ../bin/src/ui_edittagdialog.h:705
msgid "Skip count"
msgstr "تخطى العد"
@@ -4700,11 +4703,11 @@ msgstr "تخطى العد"
msgid "Skip forwards in playlist"
msgstr "تجاهل اللاحق في قائمة التشغيل"
-#: ui/mainwindow.cpp:1783
+#: ui/mainwindow.cpp:1809
msgid "Skip selected tracks"
msgstr "تجاوز المسارات المختارة"
-#: ui/mainwindow.cpp:1781
+#: ui/mainwindow.cpp:1807
msgid "Skip track"
msgstr "تجاوز المسار"
@@ -4720,7 +4723,7 @@ msgstr "عارضة جانبية صغيرة"
msgid "Smart playlist"
msgstr "قائمة تشغيل ذكية"
-#: library/librarymodel.cpp:1367
+#: library/librarymodel.cpp:1368
msgid "Smart playlists"
msgstr "قوائم تشغيل ذكية"
@@ -4736,7 +4739,7 @@ msgstr "Soft Rock"
msgid "Song Information"
msgstr "معلومات المقطع"
-#: ui/mainwindow.cpp:280
+#: ui/mainwindow.cpp:282
msgid "Song info"
msgstr "معلومات المقطع"
@@ -4768,11 +4771,7 @@ msgstr "رتب المقاطع حسب"
msgid "Sorting"
msgstr "ترتيب"
-#: ../bin/src/ui_soundcloudsettingspage.h:100
-msgid "SoundCloud"
-msgstr "SoundCloud"
-
-#: playlist/playlist.cpp:1404
+#: playlist/playlist.cpp:1437
msgid "Source"
msgstr "المصدر"
@@ -4818,7 +4817,7 @@ msgstr "قياسي"
msgid "Starred"
msgstr "مميز"
-#: ripper/ripcddialog.cpp:72
+#: ripper/ripcddialog.cpp:74
msgid "Start ripping"
msgstr "ابدء النسخ"
@@ -4826,18 +4825,17 @@ msgstr "ابدء النسخ"
msgid "Start the playlist currently playing"
msgstr "ابدأ قئمة التشغيل اللتي تعمل حالياً"
-#: transcoder/transcodedialog.cpp:90
+#: transcoder/transcodedialog.cpp:92
msgid "Start transcoding"
msgstr "ابدأ التحويل"
-#: internet/soundcloud/soundcloudservice.cpp:121
#: internet/spotify/spotifyservice.cpp:402
msgid ""
"Start typing something on the search box above to fill this search results "
"list"
msgstr "ابدأ بكتابة شيء ما في خانة البحث أعلاه لملء هذه اللائحة من النتائج"
-#: transcoder/transcoder.cpp:397
+#: transcoder/transcoder.cpp:398
#, qt-format
msgid "Starting %1"
msgstr "بدأ %1"
@@ -4863,7 +4861,7 @@ msgstr ""
msgid "Stop after every track"
msgstr ""
-#: ui/mainwindow.cpp:680 ../bin/src/ui_mainwindow.h:679
+#: ui/mainwindow.cpp:682 ../bin/src/ui_mainwindow.h:679
msgid "Stop after this track"
msgstr "أوقف بعد هذا المقطع"
@@ -4875,7 +4873,7 @@ msgstr "أوقف التشغيل"
msgid "Stop playback after current track"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:334
+#: ../bin/src/ui_behavioursettingspage.h:377
msgid "Stop playback if song fails to play"
msgstr ""
@@ -4923,7 +4921,7 @@ msgstr "Subsonic"
msgid "Success!"
msgstr "نجاح!"
-#: transcoder/transcoder.cpp:189
+#: transcoder/transcoder.cpp:190
#, qt-format
msgid "Successfully written %1"
msgstr "تم كتابة %1 بنجاح"
@@ -4991,7 +4989,7 @@ msgstr "Techno"
msgid "Text options"
msgstr "خيارات النص"
-#: ui/about.cpp:74
+#: ui/about.cpp:76
msgid "Thanks to"
msgstr "الشكر لـ"
@@ -5031,7 +5029,7 @@ msgid ""
"license key. Visit subsonic.org for details."
msgstr "لقد انتهت المدة التجريبية لخادم Subsonic. الرجاء التبرع للحصول على مفتاح رخصة. لمزيد من التفاصيل زر subsonic.org."
-#: ui/mainwindow.cpp:2674
+#: ui/mainwindow.cpp:2700
msgid ""
"The version of Clementine you've just updated to requires a full library "
"rescan because of the new features listed below:"
@@ -5055,13 +5053,13 @@ msgstr "واجه كلمنتاين مشاكل عند جلب المعلومات م
msgid "There was a problem parsing the response from the iTunes Store"
msgstr "حدثت مشكلة أثناء القراءة من متجر iTunes"
-#: ui/organiseerrordialog.cpp:54
+#: ui/organiseerrordialog.cpp:56
msgid ""
"There were problems copying some songs. The following files could not be "
"copied:"
msgstr "واجه كلمنتاين مشاكل عند نسخ بعض المقاطع. تعذر نسخ المقاطع التالية:"
-#: ui/organiseerrordialog.cpp:61
+#: ui/organiseerrordialog.cpp:63
msgid ""
"There were problems deleting some songs. The following files could not be "
"deleted:"
@@ -5073,7 +5071,7 @@ msgid ""
"continue?"
msgstr "سيتم حذف هذه الملفات من الجهاز. هل أنت متأكد من رغبتك بالاستمرار؟"
-#: library/libraryview.cpp:679 ui/mainwindow.cpp:2433 widgets/fileview.cpp:189
+#: library/libraryview.cpp:679 ui/mainwindow.cpp:2459 widgets/fileview.cpp:189
msgid ""
"These files will be permanently deleted from disk, are you sure you want to "
"continue?"
@@ -5144,7 +5142,7 @@ msgstr "هذه أول مرة تقوم بوصل هذا الجهاز. سيعمل
msgid "This option can be changed in the \"Behavior\" preferences"
msgstr "يمكن تغيير هذه الخاصية من إعدادات \"السلوك\""
-#: internet/lastfm/lastfmservice.cpp:284
+#: internet/lastfm/lastfmservice.cpp:286
msgid "This stream is for paid subscribers only"
msgstr "هذا التيار للاشتراكات المدفوعة فقط"
@@ -5153,11 +5151,11 @@ msgstr "هذا التيار للاشتراكات المدفوعة فقط"
msgid "This type of device is not supported: %1"
msgstr "هذا النوع من الأجهزة غير مدعوم: %1"
-#: ../bin/src/ui_behavioursettingspage.h:374
+#: ../bin/src/ui_behavioursettingspage.h:413
msgid "Time step"
msgstr ""
-#: playlist/playlist.cpp:1345 ui/organisedialog.cpp:63
+#: playlist/playlist.cpp:1378 ui/organisedialog.cpp:64
#: ui/qtsystemtrayicon.cpp:247 ../bin/src/ui_about.h:141
#: ../bin/src/ui_edittagdialog.h:719 ../bin/src/ui_trackselectiondialog.h:210
#: ../bin/src/ui_ripcddialog.h:306
@@ -5176,7 +5174,7 @@ msgstr "بدّل تنبيهات كلمنتاين"
msgid "Toggle fullscreen"
msgstr "بدّل نمط ملء الشاشة"
-#: ui/mainwindow.cpp:1769
+#: ui/mainwindow.cpp:1795
msgid "Toggle queue status"
msgstr "بدّل حالة لائحة الانتظار"
@@ -5208,11 +5206,11 @@ msgstr "أفضل المقاطع"
msgid "Total albums:"
msgstr "إجمالي الألبومات:"
-#: covers/coversearchstatisticsdialog.cpp:70
+#: covers/coversearchstatisticsdialog.cpp:72
msgid "Total bytes transferred"
msgstr "إجمالي البايتات المرسلة"
-#: covers/coversearchstatisticsdialog.cpp:67
+#: covers/coversearchstatisticsdialog.cpp:69
msgid "Total network requests made"
msgstr "إجمالي طلبات الشبكة "
@@ -5220,15 +5218,11 @@ msgstr "إجمالي طلبات الشبكة "
msgid "Trac&k"
msgstr ""
-#: playlist/playlist.cpp:1353 ui/organisedialog.cpp:72
+#: playlist/playlist.cpp:1386 ui/organisedialog.cpp:73
#: ../bin/src/ui_trackselectiondialog.h:212 ../bin/src/ui_ripcddialog.h:304
msgid "Track"
msgstr "المقطوعة"
-#: internet/soundcloud/soundcloudservice.cpp:136
-msgid "Tracks"
-msgstr "المسارات"
-
#: ../bin/src/ui_transcodedialog.h:213 ../bin/src/ui_mainwindow.h:706
msgid "Transcode Music"
msgstr "تحويل الصوتيات"
@@ -5241,7 +5235,7 @@ msgstr "سجل محول الصوتيات"
msgid "Transcoding"
msgstr "تحويل الصوتيات"
-#: transcoder/transcoder.cpp:317
+#: transcoder/transcoder.cpp:318
#, qt-format
msgid "Transcoding %1 files using %2 threads"
msgstr "جاري تحويل %1 ملفات على %2 أشغال"
@@ -5292,8 +5286,8 @@ msgstr ""
msgid "Unable to download %1 (%2)"
msgstr "تعذر تحميل %1 (%2)"
-#: core/song.cpp:465 library/librarymodel.cpp:374 library/librarymodel.cpp:379
-#: library/librarymodel.cpp:383 library/librarymodel.cpp:1159
+#: core/song.cpp:465 library/librarymodel.cpp:375 library/librarymodel.cpp:380
+#: library/librarymodel.cpp:384 library/librarymodel.cpp:1160
#: library/savedgroupingmanager.cpp:103 playlist/playlistdelegates.cpp:305
#: playlist/playlistmanager.cpp:532 playlist/playlistmanager.cpp:533
#: songinfo/streamdiscoverer.cpp:87 ui/albumcoverchoicecontroller.cpp:127
@@ -5306,7 +5300,7 @@ msgid "Unknown content-type"
msgstr "نوع محتوى غير معروف"
#: internet/digitally/digitallyimportedclient.cpp:74
-#: internet/lastfm/lastfmservice.cpp:303
+#: internet/lastfm/lastfmservice.cpp:305
msgid "Unknown error"
msgstr "خطأ مجهول"
@@ -5314,11 +5308,11 @@ msgstr "خطأ مجهول"
msgid "Unset cover"
msgstr "ألغ الغلاف"
-#: ui/mainwindow.cpp:1779
+#: ui/mainwindow.cpp:1805
msgid "Unskip selected tracks"
msgstr "إلغاء تجاوز المسارات المختارة"
-#: ui/mainwindow.cpp:1777
+#: ui/mainwindow.cpp:1803
msgid "Unskip track"
msgstr "إلغاء تجاوز المسار"
@@ -5429,7 +5423,7 @@ msgstr ""
msgid "Use temporal noise shaping"
msgstr "استخدم نمط التغيير المؤقت للتشويش"
-#: ../bin/src/ui_behavioursettingspage.h:326
+#: ../bin/src/ui_behavioursettingspage.h:365
msgid "Use the system default"
msgstr "استخدم إعدادات النظام الافتراضية"
@@ -5449,7 +5443,7 @@ msgstr "استخدم تسوية الصوت"
msgid "Used"
msgstr "مستعمل"
-#: ui/settingsdialog.cpp:147
+#: ui/settingsdialog.cpp:146
msgid "User interface"
msgstr "واجهة المستخدم"
@@ -5461,7 +5455,7 @@ msgstr "واجهة المستخدم"
msgid "Username"
msgstr "اسم المستخدم"
-#: ../bin/src/ui_behavioursettingspage.h:340
+#: ../bin/src/ui_behavioursettingspage.h:379
msgid "Using the menu to add a song will..."
msgstr "استخدام القائمة لإضافة مقطع سـ..."
@@ -5478,8 +5472,8 @@ msgstr ""
msgid "Variable bit rate"
msgstr "معدل بت متغير"
-#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:300
-#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:264
+#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:301
+#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:266
msgid "Various artists"
msgstr "فنانون متنوعون"
@@ -5487,7 +5481,7 @@ msgstr "فنانون متنوعون"
msgid "Verify Server certificate"
msgstr ""
-#: ui/about.cpp:33
+#: ui/about.cpp:35
#, qt-format
msgid "Version %1"
msgstr "النسخة %1"
@@ -5534,11 +5528,11 @@ msgstr "WAV"
msgid "WMA"
msgstr "WMA"
-#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:322
+#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:361
msgid "Warn me when closing a playlist tab"
msgstr "نبهني عند إغلاق لسان قائمة تشغيل"
-#: core/song.cpp:448 transcoder/transcoder.cpp:256
+#: core/song.cpp:448 transcoder/transcoder.cpp:257
msgid "Wav"
msgstr "Wav"
@@ -5554,20 +5548,28 @@ msgstr "الموقع"
msgid "Weeks"
msgstr "الأسابيع"
-#: ../bin/src/ui_behavioursettingspage.h:329
+#: ../bin/src/ui_behavioursettingspage.h:368
msgid "When Clementine starts"
msgstr "عند تشغيل كلمنتاين"
+#: ../bin/src/ui_behavioursettingspage.h:427
+msgid "When calculating play counts, use"
+msgstr ""
+
#: ../bin/src/ui_librarysettingspage.h:203
msgid ""
"When looking for album art Clementine will first look for picture files that contain one of these words.\n"
"If there are no matches then it will use the largest image in the directory."
msgstr "أثناء البحث عن غلاف للألبوم سيبحث كلمنتاين في ملفات الصور التي تحتوي على أحد الكلمات التالية.\nإن تعذر العثور على أي نتيجة، سيتم استخدام الصورة الأكبر حجما في المجلد."
-#: ../bin/src/ui_behavioursettingspage.h:377
+#: ../bin/src/ui_behavioursettingspage.h:416
msgid "When saving a playlist, file paths should be"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:422
+msgid "When sorting artists, albums and titles"
+msgstr ""
+
#: ../bin/src/ui_globalsearchsettingspage.h:147
msgid "When the list is empty..."
msgstr "عندما تكون القائمة فارغة..."
@@ -5626,7 +5628,7 @@ msgstr "Windows Media 40k"
msgid "Windows Media 64k"
msgstr "Windows Media 64k"
-#: core/song.cpp:428 transcoder/transcoder.cpp:253
+#: core/song.cpp:428 transcoder/transcoder.cpp:254
msgid "Windows Media audio"
msgstr "Windows Media audio"
@@ -5640,7 +5642,7 @@ msgid ""
"well?"
msgstr "هل ترغب بنقل المقاطع الأخرى في هذا الألبوم لفئة فنانون متنوعون؟"
-#: ui/mainwindow.cpp:2681
+#: ui/mainwindow.cpp:2707
msgid "Would you like to run a full rescan right now?"
msgstr "هل ترغب بالقيام بفحص شامل الآن؟"
@@ -5648,7 +5650,7 @@ msgstr "هل ترغب بالقيام بفحص شامل الآن؟"
msgid "Write all songs statistics into songs' files"
msgstr "أكتب جميع إحصائيات المقاطع في ملفات المقاطع"
-#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:421
msgid "Write metadata"
msgstr ""
@@ -5656,8 +5658,8 @@ msgstr ""
msgid "Wrong username or password."
msgstr "اسم مستخدم أو كلمة سر خاطئة."
-#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1357
-#: ui/organisedialog.cpp:75 ../bin/src/ui_groupbydialog.h:134
+#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1390
+#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:134
#: ../bin/src/ui_groupbydialog.h:153 ../bin/src/ui_groupbydialog.h:172
#: ../bin/src/ui_trackselectiondialog.h:211 ../bin/src/ui_ripcddialog.h:312
msgid "Year"
@@ -5734,13 +5736,6 @@ msgstr "لا تملك حساب Spotify مدفوع."
msgid "You do not have an active subscription"
msgstr "ليس لديك اشتراك مفعل"
-#: ../bin/src/ui_soundcloudsettingspage.h:101
-msgid ""
-"You don't need to be logged in to search and to listen to music on "
-"SoundCloud. However, you need to login to access your playlists and your "
-"stream."
-msgstr "ليس عليك أن تسجل دخولك حتى تبحث وتستمع إلى SoundCloud. لكن إذا أردت دخول قوائم تشغيلك وسير نشاطك فإنه عليك أن تسجل الدخول."
-
#: internet/spotify/spotifyservice.cpp:205
msgid ""
"You have been logged out of Spotify, please re-enter your password in the "
@@ -5762,7 +5757,7 @@ msgid ""
"shortcuts in Clementine."
msgstr "عليك أن تستخدم تفضيلات النظام وتمكن كليمينتين من \"التحكم في حاسوبك\" لتستخدم الاختصارات العامة في كليمينتين."
-#: ../bin/src/ui_behavioursettingspage.h:328
+#: ../bin/src/ui_behavioursettingspage.h:367
msgid "You will need to restart Clementine if you change the language."
msgstr "سيتوجب عليك إعادة تشغيل كلمنتاين إذا غيرت اللغة."
@@ -5838,7 +5833,7 @@ msgstr "بين"
msgid "biggest first"
msgstr "الأكبر أولا"
-#: playlist/playlistview.cpp:241 ui/edittagdialog.cpp:500
+#: playlist/playlistview.cpp:242 ui/edittagdialog.cpp:500
msgid "bpm"
msgstr "bpm"
@@ -5895,7 +5890,7 @@ msgstr "من بين اخر المقاطع المشغلة"
#: internet/spotify/spotifysettingspage.cpp:62
#: internet/spotify/spotifysettingspage.cpp:63
-#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:245
+#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:246
#: ui/edittagdialog.cpp:502
msgid "kbps"
msgstr "kbps"
diff --git a/src/translations/be.po b/src/translations/be.po
index 72bda415f..31752dc47 100644
--- a/src/translations/be.po
+++ b/src/translations/be.po
@@ -11,7 +11,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
-"PO-Revision-Date: 2018-09-17 13:31+0000\n"
+"PO-Revision-Date: 2018-10-20 12:14+0000\n"
"Last-Translator: hatstand \n"
"Language-Team: Belarusian (http://www.transifex.com/davidsansome/clementine/language/be/)\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -54,7 +54,7 @@ msgstr " мс"
msgid " pt"
msgstr " пунктаў"
-#: ../bin/src/ui_behavioursettingspage.h:375
+#: ../bin/src/ui_behavioursettingspage.h:414
msgid " s"
msgstr ""
@@ -93,7 +93,7 @@ msgstr "%1 дзён таму"
msgid "%1 on %2"
msgstr "%1 на %2"
-#: playlistparsers/playlistparser.cpp:87
+#: playlistparsers/playlistparser.cpp:89
#, qt-format
msgid "%1 playlists (%2)"
msgstr "%1 плэйлістоў (%2)"
@@ -123,12 +123,12 @@ msgstr "%1 кампазыцый знойдзена"
msgid "%1 songs found (showing %2)"
msgstr "%1 кампазыцый знойдзена (паказана %2)"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
#, qt-format
msgid "%1 tracks"
msgstr "%1 трэкаў"
-#: ui/albumcovermanager.cpp:472
+#: ui/albumcovermanager.cpp:474
#, qt-format
msgid "%1 transferred"
msgstr "%1 перададзены"
@@ -153,19 +153,19 @@ msgstr "%L1 прайграваньняў увогуле"
msgid "%filename%"
msgstr "%filename%"
-#: transcoder/transcodedialog.cpp:214
+#: transcoder/transcodedialog.cpp:216
#, c-format, qt-plural-format
msgctxt ""
msgid "%n failed"
msgstr "%n з памылкай"
-#: transcoder/transcodedialog.cpp:209
+#: transcoder/transcodedialog.cpp:211
#, c-format, qt-plural-format
msgctxt ""
msgid "%n finished"
msgstr "%n завершана"
-#: transcoder/transcodedialog.cpp:203
+#: transcoder/transcodedialog.cpp:205
#, c-format, qt-plural-format
msgctxt ""
msgid "%n remaining"
@@ -264,7 +264,7 @@ msgstr "(розны праз некалькі кампазыцый)"
msgid ", by "
msgstr ""
-#: ui/about.cpp:84
+#: ui/about.cpp:86
msgid "...and all the Amarok contributors"
msgstr "...і ўсім стваральнікам Amarok"
@@ -284,7 +284,7 @@ msgstr "0px"
msgid "1 day"
msgstr "1 дзень"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
msgid "1 track"
msgstr "1 кампазыцыя"
@@ -396,6 +396,10 @@ msgid ""
"A song will be included in the playlist if it matches these conditions."
msgstr "Кампазыцыя будзе дададзеная ў плэйліст, калі адпавядае гэтым умовам."
+#: ../bin/src/ui_behavioursettingspage.h:417
+msgid "A&utomatic"
+msgstr ""
+
#: smartplaylists/searchterm.cpp:396
msgid "A-Z"
msgstr "A-Z (А-Я)"
@@ -424,11 +428,11 @@ msgstr "AIFF"
msgid "ALL GLORY TO THE HYPNOTOAD"
msgstr "УСЯ СЛАВА ГІПНАЖАБЕ!"
-#: ui/albumcovermanager.cpp:105 ui/albumcoversearcher.cpp:158
+#: ui/albumcovermanager.cpp:107 ui/albumcoversearcher.cpp:158
msgid "Abort"
msgstr "Адмена"
-#: ui/about.cpp:30
+#: ui/about.cpp:32
#, qt-format
msgid "About %1"
msgstr "Пра %1"
@@ -442,7 +446,7 @@ msgid "About Qt..."
msgstr "Пра Qt..."
#: playlist/playlistsaveoptionsdialog.cpp:34
-#: ../bin/src/ui_behavioursettingspage.h:379
+#: ../bin/src/ui_behavioursettingspage.h:418
msgid "Absolute"
msgstr ""
@@ -469,10 +473,6 @@ msgstr ""
msgid "Activate/Deactivate Wii Remote"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:128
-msgid "Activities stream"
-msgstr ""
-
#: internet/podcasts/addpodcastdialog.cpp:63
msgid "Add Podcast"
msgstr "Дадаць Подкаст"
@@ -501,7 +501,7 @@ msgstr "Дадаць іншае струменевае вяшчанне"
msgid "Add directory..."
msgstr "Дадаць каталёг"
-#: ui/mainwindow.cpp:2049
+#: ui/mainwindow.cpp:2075
msgid "Add file"
msgstr "Дадаць файл"
@@ -517,12 +517,12 @@ msgstr ""
msgid "Add file..."
msgstr "Дадаць файл..."
-#: transcoder/transcodedialog.cpp:224
+#: transcoder/transcodedialog.cpp:226
msgid "Add files to transcode"
msgstr "Дадаць файлы для перакадаваньня"
-#: transcoder/transcodedialog.cpp:306 ui/mainwindow.cpp:2076
-#: ripper/ripcddialog.cpp:201
+#: transcoder/transcodedialog.cpp:308 ui/mainwindow.cpp:2102
+#: ripper/ripcddialog.cpp:203
msgid "Add folder"
msgstr "Дадаць каталёг"
@@ -626,7 +626,7 @@ msgstr ""
msgid "Add to Spotify starred"
msgstr ""
-#: ui/mainwindow.cpp:1850
+#: ui/mainwindow.cpp:1876
msgid "Add to another playlist"
msgstr "Дадаць у іншы плэйліст"
@@ -634,8 +634,8 @@ msgstr "Дадаць у іншы плэйліст"
msgid "Add to playlist"
msgstr "Дадаць у плэйліст"
-#: ../bin/src/ui_behavioursettingspage.h:359
-#: ../bin/src/ui_behavioursettingspage.h:371
+#: ../bin/src/ui_behavioursettingspage.h:398
+#: ../bin/src/ui_behavioursettingspage.h:410
msgid "Add to the queue"
msgstr "Дадаць у чаргу"
@@ -676,8 +676,8 @@ msgstr "Пасьля"
msgid "After copying..."
msgstr "Пасьля капіяваньня..."
-#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1349
-#: ui/organisedialog.cpp:64 ui/qtsystemtrayicon.cpp:251
+#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1382
+#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:251
#: ../bin/src/ui_groupbydialog.h:128 ../bin/src/ui_groupbydialog.h:147
#: ../bin/src/ui_groupbydialog.h:166 ../bin/src/ui_albumcoversearcher.h:110
#: ../bin/src/ui_albumcoversearcher.h:112 ../bin/src/ui_edittagdialog.h:723
@@ -689,8 +689,8 @@ msgstr "Альбом"
msgid "Album (ideal loudness for all tracks)"
msgstr "Альбом (ідэальная гучнасьць для ўсіх трэкаў)"
-#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1363
-#: ui/organisedialog.cpp:67 ../bin/src/ui_groupbydialog.h:130
+#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1396
+#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:130
#: ../bin/src/ui_groupbydialog.h:149 ../bin/src/ui_groupbydialog.h:168
#: ../bin/src/ui_edittagdialog.h:725
msgid "Album artist"
@@ -704,11 +704,11 @@ msgstr "Вокладка альбому"
msgid "Album info on jamendo.com..."
msgstr "Інфармацыя аб альбоме на jamendo.com..."
-#: ui/albumcovermanager.cpp:129
+#: ui/albumcovermanager.cpp:131
msgid "Albums with covers"
msgstr "Альбомы з вокладкамі"
-#: ui/albumcovermanager.cpp:130
+#: ui/albumcovermanager.cpp:132
msgid "Albums without covers"
msgstr "Альбомы бяз вокладак"
@@ -716,7 +716,7 @@ msgstr "Альбомы бяз вокладак"
msgid "All"
msgstr ""
-#: ui/mainwindow.cpp:158
+#: ui/mainwindow.cpp:160
msgid "All Files (*)"
msgstr "Усе файлы (*)"
@@ -725,11 +725,11 @@ msgctxt "Label for button to enable/disable Hypnotoad background sound."
msgid "All Glory to the Hypnotoad!"
msgstr ""
-#: ui/albumcovermanager.cpp:128
+#: ui/albumcovermanager.cpp:130
msgid "All albums"
msgstr "Усе альбомы"
-#: ui/albumcovermanager.cpp:262
+#: ui/albumcovermanager.cpp:264
msgid "All artists"
msgstr "Усе выканаўцы"
@@ -737,12 +737,12 @@ msgstr "Усе выканаўцы"
msgid "All files (*)"
msgstr "Усе файлы (*)"
-#: playlistparsers/playlistparser.cpp:74
+#: playlistparsers/playlistparser.cpp:76
#, qt-format
msgid "All playlists (%1)"
msgstr "Усе спісы прайгравання (%1)"
-#: ui/about.cpp:80
+#: ui/about.cpp:82
msgid "All the translators"
msgstr "Усе перакладчыкі"
@@ -766,16 +766,16 @@ msgstr "Дазволіць mid/side кадаваньне"
msgid "Alongside the originals"
msgstr "Разам з арыгіналамі"
-#: ../bin/src/ui_behavioursettingspage.h:331
-msgid "Always hide the main window"
-msgstr "Заўсёды хаваць галоўнае акно"
+#: ../bin/src/ui_behavioursettingspage.h:370
+msgid "Alwa&ys hide the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:330
-msgid "Always show the main window"
-msgstr "Заўсёды паказваць галоўнае акно"
+#: ../bin/src/ui_behavioursettingspage.h:369
+msgid "Always show &the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:345
-#: ../bin/src/ui_behavioursettingspage.h:365
+#: ../bin/src/ui_behavioursettingspage.h:384
+#: ../bin/src/ui_behavioursettingspage.h:404
msgid "Always start playing"
msgstr "Заўсёды пачынаць прайграваньне"
@@ -789,7 +789,7 @@ msgstr "Патрабуецца дадатковы плагін для выкар
msgid "An error occurred loading the iTunes database"
msgstr "Адбылася памылка пры загрузке дадзеных iTunes"
-#: playlist/playlist.cpp:424 ui/edittagdialog.cpp:703
+#: playlist/playlist.cpp:454 ui/edittagdialog.cpp:703
#, qt-format
msgid "An error occurred writing metadata to '%1'"
msgstr "Адбылася памылка пры запісе мэта-дадзеных в '%1'"
@@ -798,7 +798,7 @@ msgstr "Адбылася памылка пры запісе мэта-дадзе
msgid "An unspecified error occurred."
msgstr "Адбылася невядомая памылка"
-#: ui/about.cpp:85
+#: ui/about.cpp:87
msgid "And:"
msgstr "І:"
@@ -816,13 +816,13 @@ msgstr "Зьнешні выгляд"
msgid "Append files/URLs to the playlist"
msgstr "Дадаць файлы/URLs ў плэйліст"
-#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:454
+#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:455
#: internet/core/internetservice.cpp:48 library/libraryview.cpp:383
#: widgets/fileviewlist.cpp:31
msgid "Append to current playlist"
msgstr "Дадаць у бягучы плэйліст"
-#: ../bin/src/ui_behavioursettingspage.h:356
+#: ../bin/src/ui_behavioursettingspage.h:395
msgid "Append to the playlist"
msgstr "Дадаць у плэйліст"
@@ -845,8 +845,8 @@ msgid ""
"the songs of your library?"
msgstr ""
-#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1347
-#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:249
+#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1380
+#: ui/organisedialog.cpp:66 ui/qtsystemtrayicon.cpp:249
#: ../bin/src/ui_groupbydialog.h:129 ../bin/src/ui_groupbydialog.h:148
#: ../bin/src/ui_groupbydialog.h:167 ../bin/src/ui_albumcoversearcher.h:106
#: ../bin/src/ui_albumcoversearcher.h:108 ../bin/src/ui_edittagdialog.h:721
@@ -854,16 +854,16 @@ msgstr ""
msgid "Artist"
msgstr "Выканаўца"
-#: ui/mainwindow.cpp:283
+#: ui/mainwindow.cpp:285
msgid "Artist info"
msgstr "Пра Артыста"
-#: ui/organisedialog.cpp:66
+#: ui/organisedialog.cpp:67
msgid "Artist's initial"
msgstr "Ініцыялы выканаўцы"
-#: ../bin/src/ui_behavioursettingspage.h:381
-msgid "Ask when saving"
+#: ../bin/src/ui_behavioursettingspage.h:420
+msgid "As&k when saving"
msgstr ""
#: ../bin/src/ui_transcodedialog.h:225
@@ -878,7 +878,7 @@ msgstr ""
#: internet/digitally/digitallyimportedsettingspage.cpp:82
#: internet/magnatune/magnatunesettingspage.cpp:117
-#: internet/lastfm/lastfmservice.cpp:268
+#: internet/lastfm/lastfmservice.cpp:270
#: internet/lastfm/lastfmsettingspage.cpp:76
msgid "Authentication failed"
msgstr "Памылка аўтэнтыфікацыі"
@@ -887,7 +887,7 @@ msgstr "Памылка аўтэнтыфікацыі"
msgid "Author"
msgstr "Аутар"
-#: ui/about.cpp:68
+#: ui/about.cpp:70
msgid "Authors"
msgstr "Аўтары"
@@ -897,7 +897,6 @@ msgid "Auto"
msgstr "Аўта"
#: playlist/playlistsaveoptionsdialog.cpp:32
-#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Automatic"
msgstr ""
@@ -917,7 +916,7 @@ msgstr "Даступна"
msgid "Average bitrate"
msgstr "Сярэдні бітрэйт"
-#: covers/coversearchstatisticsdialog.cpp:69
+#: covers/coversearchstatisticsdialog.cpp:71
msgid "Average image size"
msgstr "Прыкладны памер выявы"
@@ -925,7 +924,7 @@ msgstr "Прыкладны памер выявы"
msgid "BBC Podcasts"
msgstr "Подкасты BBC"
-#: playlist/playlist.cpp:1383 ui/organisedialog.cpp:74
+#: playlist/playlist.cpp:1416 ui/organisedialog.cpp:75
#: ../bin/src/ui_edittagdialog.h:704
msgid "BPM"
msgstr "BPM"
@@ -946,7 +945,7 @@ msgstr "Фонавая выява"
msgid "Background opacity"
msgstr "Празрыстасьць фону"
-#: core/database.cpp:648
+#: core/database.cpp:664
msgid "Backing up database"
msgstr "Рэзэрвнае капіяваньне базы дадзеных"
@@ -970,7 +969,7 @@ msgstr "Стандартны блакітны"
msgid "Basic audio type"
msgstr "Фармат аўдыёзапісаў"
-#: ../bin/src/ui_behavioursettingspage.h:318
+#: ../bin/src/ui_behavioursettingspage.h:357
msgid "Behavior"
msgstr "Паводзіны"
@@ -982,7 +981,7 @@ msgstr "Найлепшая"
msgid "Biography"
msgstr ""
-#: playlist/playlist.cpp:1385 ../bin/src/ui_edittagdialog.h:706
+#: playlist/playlist.cpp:1418 ../bin/src/ui_edittagdialog.h:706
#: ../bin/src/ui_streamdetailsdialog.h:139
msgid "Bit rate"
msgstr "Бітрэйт"
@@ -997,7 +996,7 @@ msgstr "Бітрэйт"
msgid "Bitrate"
msgstr "Бітрэйт"
-#: ui/organisedialog.cpp:80
+#: ui/organisedialog.cpp:81
msgctxt "Refers to bitrate in file organise dialog."
msgid "Bitrate"
msgstr ""
@@ -1088,7 +1087,7 @@ msgstr "Зьмяніць камбінацыю клявішаў..."
msgid "Change shuffle mode"
msgstr "Зьмяніць рэжым мяшаньня"
-#: ../bin/src/ui_behavioursettingspage.h:370
+#: ../bin/src/ui_behavioursettingspage.h:409
msgid "Change the currently playing song"
msgstr ""
@@ -1118,7 +1117,7 @@ msgstr "Праверыць новыя выпускі"
msgid "Check for updates"
msgstr ""
-#: ui/mainwindow.cpp:820
+#: ui/mainwindow.cpp:824
msgid "Check for updates..."
msgstr "Праверыць абнаўленьні..."
@@ -1167,7 +1166,7 @@ msgstr "Клясычная"
msgid "Cleaning up"
msgstr "Ачыстка"
-#: transcoder/transcodedialog.cpp:61 widgets/lineedit.cpp:41
+#: transcoder/transcodedialog.cpp:63 widgets/lineedit.cpp:41
#: ../bin/src/ui_queuemanager.h:151
msgid "Clear"
msgstr "Ачысьціць"
@@ -1260,7 +1259,6 @@ msgstr ""
msgid "Click to toggle between remaining time and total time"
msgstr "Націсьніце для пераключэньня паміж часам, які застаецца і поўнай працягласьцю"
-#: ../bin/src/ui_soundcloudsettingspage.h:103
#: ../bin/src/ui_lastfmsettingspage.h:133
#: ../bin/src/ui_googledrivesettingspage.h:102
#: ../bin/src/ui_dropboxsettingspage.h:102
@@ -1287,7 +1285,7 @@ msgstr "Зачыніць візуалізацыю"
msgid "Closing this window will cancel the download."
msgstr "Закрыцьцё гэтага вакна адменіць загрузку."
-#: ui/albumcovermanager.cpp:213
+#: ui/albumcovermanager.cpp:215
msgid "Closing this window will stop searching for album covers."
msgstr "Закрыцьцё гэтага вакна спыніць пошук вокладак альбомаў."
@@ -1307,8 +1305,12 @@ msgstr "Колеры"
msgid "Comma separated list of class:level, level is 0-3"
msgstr "Падзелены коскамі сьпіс \"кляс:узровень\", дзе ўзровень ад 0 да 3"
-#: playlist/playlist.cpp:1402 smartplaylists/searchterm.cpp:384
-#: ui/organisedialog.cpp:78 ../bin/src/ui_edittagdialog.h:718
+#: ../bin/src/ui_behavioursettingspage.h:425
+msgid "Comma seperated list of prefix words to ignore when sorting"
+msgstr ""
+
+#: playlist/playlist.cpp:1435 smartplaylists/searchterm.cpp:384
+#: ui/organisedialog.cpp:79 ../bin/src/ui_edittagdialog.h:718
msgid "Comment"
msgstr "Камэнтар"
@@ -1320,8 +1322,8 @@ msgstr "Аўтаматычна запоўніць тэгі"
msgid "Complete tags automatically..."
msgstr "Аўтаматычна запоўніць тэгі..."
-#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1365
-#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:131
+#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1398
+#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:131
#: ../bin/src/ui_groupbydialog.h:150 ../bin/src/ui_groupbydialog.h:169
msgid "Composer"
msgstr "Кампазытар"
@@ -1339,10 +1341,6 @@ msgstr "Наладзіць Magnatune..."
msgid "Configure Shortcuts"
msgstr "Камбінацыі клявішаў"
-#: internet/soundcloud/soundcloudservice.cpp:381
-msgid "Configure SoundCloud..."
-msgstr ""
-
#: internet/spotify/spotifyservice.cpp:927
msgid "Configure Spotify..."
msgstr "Наладзіць Spotify..."
@@ -1351,11 +1349,11 @@ msgstr "Наладзіць Spotify..."
msgid "Configure Subsonic..."
msgstr "Наладзіць Subsonic..."
-#: globalsearch/globalsearchview.cpp:151 globalsearch/globalsearchview.cpp:480
+#: globalsearch/globalsearchview.cpp:152 globalsearch/globalsearchview.cpp:481
msgid "Configure global search..."
msgstr "Наладзіць глябальны пошук..."
-#: ui/mainwindow.cpp:659
+#: ui/mainwindow.cpp:661
msgid "Configure library..."
msgstr "Наладзіць калекцыю..."
@@ -1365,7 +1363,7 @@ msgid "Configure podcasts..."
msgstr "Наладзіць подкасты..."
#: internet/core/cloudfileservice.cpp:107
-#: internet/digitally/digitallyimportedservicebase.cpp:182
+#: internet/digitally/digitallyimportedservicebase.cpp:184
#: internet/googledrive/googledriveservice.cpp:231
#: ../bin/src/ui_globalsearchsettingspage.h:146
msgid "Configure..."
@@ -1427,11 +1425,11 @@ msgid "Copy to clipboard"
msgstr "Скапіяваць у буфэр"
#: library/libraryview.cpp:419 internet/podcasts/podcastservice.cpp:438
-#: ui/mainwindow.cpp:719 widgets/fileviewlist.cpp:44
+#: ui/mainwindow.cpp:721 widgets/fileviewlist.cpp:44
msgid "Copy to device..."
msgstr "Капіяваць на прыладу..."
-#: devices/deviceview.cpp:228 ui/mainwindow.cpp:709
+#: devices/deviceview.cpp:228 ui/mainwindow.cpp:711
#: widgets/fileviewlist.cpp:40
msgid "Copy to library..."
msgstr "Капіяваць у калекцыю..."
@@ -1446,7 +1444,7 @@ msgid ""
"http://localhost:4040/"
msgstr "Немагчыма злучыцца з Subsonic, праверце URL. Прыклад: http://localhost:4040/"
-#: transcoder/transcoder.cpp:58
+#: transcoder/transcoder.cpp:59
#, qt-format
msgid ""
"Could not create the GStreamer element \"%1\" - make sure you have all the "
@@ -1470,14 +1468,14 @@ msgstr ""
msgid "Couldn't create playlist"
msgstr ""
-#: transcoder/transcoder.cpp:425
+#: transcoder/transcoder.cpp:426
#, qt-format
msgid ""
"Couldn't find a muxer for %1, check you have the correct GStreamer plugins "
"installed"
msgstr "Немагчыма знайсці мультыплексар для %1. Пераканайцеся, што ў вас усталяваныя неабходныя плагіны GStreamer."
-#: transcoder/transcoder.cpp:419
+#: transcoder/transcoder.cpp:420
#, qt-format
msgid ""
"Couldn't find an encoder for %1, check you have the correct GStreamer "
@@ -1518,7 +1516,7 @@ msgstr "Вокладка не заданая"
msgid "Cover art set from %1"
msgstr "Вокладка заданая з %1"
-#: covers/coversearchstatisticsdialog.cpp:59 ui/albumcoversearcher.cpp:100
+#: covers/coversearchstatisticsdialog.cpp:61 ui/albumcoversearcher.cpp:100
#, qt-format
msgid "Covers from %1"
msgstr "Вокладкі з %1"
@@ -1575,18 +1573,18 @@ msgstr ""
msgid "Dance"
msgstr "Танцавальны"
-#: core/database.cpp:601
+#: core/database.cpp:617
msgid ""
"Database corruption detected. Please read https://github.com/clementine-"
"player/Clementine/wiki/Database-Corruption for instructions on how to "
"recover your database"
msgstr ""
-#: playlist/playlist.cpp:1399 ../bin/src/ui_edittagdialog.h:715
+#: playlist/playlist.cpp:1432 ../bin/src/ui_edittagdialog.h:715
msgid "Date created"
msgstr "Дата стварэньня"
-#: playlist/playlist.cpp:1397 ../bin/src/ui_edittagdialog.h:714
+#: playlist/playlist.cpp:1430 ../bin/src/ui_edittagdialog.h:714
msgid "Date modified"
msgstr "Дата зьмены"
@@ -1637,7 +1635,7 @@ msgid "Delete downloaded data"
msgstr "Выдаліць спампаваныя дадзеныя"
#: devices/deviceview.cpp:408 library/libraryview.cpp:678
-#: ui/mainwindow.cpp:2432 widgets/fileview.cpp:188
+#: ui/mainwindow.cpp:2458 widgets/fileview.cpp:188
msgid "Delete files"
msgstr "Выдаліць файлы"
@@ -1645,7 +1643,7 @@ msgstr "Выдаліць файлы"
msgid "Delete from device..."
msgstr "Выдаліць з прылады"
-#: library/libraryview.cpp:422 ui/mainwindow.cpp:722
+#: library/libraryview.cpp:422 ui/mainwindow.cpp:724
#: widgets/fileviewlist.cpp:47
msgid "Delete from disk..."
msgstr "Выдаліць з дыску..."
@@ -1678,11 +1676,11 @@ msgstr "Выдаленьне файлаў"
msgid "Depth"
msgstr ""
-#: ui/mainwindow.cpp:1763
+#: ui/mainwindow.cpp:1789
msgid "Dequeue selected tracks"
msgstr "Прыбраць з чаргі абраныя трэкі"
-#: ui/mainwindow.cpp:1761
+#: ui/mainwindow.cpp:1787
msgid "Dequeue track"
msgstr "Прыбраць трэк з чаргі "
@@ -1711,7 +1709,7 @@ msgstr "Імя прылады"
msgid "Device properties..."
msgstr "Уласьцівасьці прылады..."
-#: ui/mainwindow.cpp:276
+#: ui/mainwindow.cpp:278
msgid "Devices"
msgstr "Прылады"
@@ -1762,8 +1760,8 @@ msgctxt "Refers to search provider's status."
msgid "Disabled"
msgstr ""
-#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1355
-#: ui/organisedialog.cpp:73 ../bin/src/ui_groupbydialog.h:139
+#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1388
+#: ui/organisedialog.cpp:74 ../bin/src/ui_groupbydialog.h:139
#: ../bin/src/ui_groupbydialog.h:158 ../bin/src/ui_groupbydialog.h:177
#: ../bin/src/ui_edittagdialog.h:722 ../bin/src/ui_ripcddialog.h:313
msgid "Disc"
@@ -1828,7 +1826,7 @@ msgid "Don't shuffle"
msgstr "Ня зьмешваць"
#: internet/magnatune/magnatunedownloaddialog.cpp:312
-#: ui/albumcovermanager.cpp:215
+#: ui/albumcovermanager.cpp:217
msgid "Don't stop!"
msgstr "Не спыняць!"
@@ -1841,11 +1839,11 @@ msgstr "Ахвяраваць"
msgid "Double click to open"
msgstr "Двайная пстрычка для адкрыцьця"
-#: ../bin/src/ui_behavioursettingspage.h:367
+#: ../bin/src/ui_behavioursettingspage.h:406
msgid "Double clicking a song in the playlist will..."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:353
+#: ../bin/src/ui_behavioursettingspage.h:392
msgid "Double clicking a song will..."
msgstr "Двайны клік на песьні"
@@ -1954,7 +1952,7 @@ msgstr "Выпадковы дынамічны мікс"
msgid "Edit smart playlist..."
msgstr "Рэдагаваць смарт-плэйліст"
-#: ui/mainwindow.cpp:1813
+#: ui/mainwindow.cpp:1839
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@@ -2000,7 +1998,7 @@ msgstr "Задзейнічаць эквалайзэр"
msgid "Enable shortcuts only when Clementine is focused"
msgstr "Задзейнічаць камбінацыі толькі ў вакне праграмы"
-#: ../bin/src/ui_behavioursettingspage.h:339
+#: ../bin/src/ui_behavioursettingspage.h:375
msgid "Enable song metadata inline edition with click"
msgstr ""
@@ -2089,12 +2087,12 @@ msgid "Equivalent to --log-levels *:3"
msgstr "Аналягічна --log-levels *:3"
#: internet/magnatune/magnatunedownloaddialog.cpp:246
-#: library/libraryview.cpp:672 ui/mainwindow.cpp:2105 ui/mainwindow.cpp:2384
-#: ui/mainwindow.cpp:2563
+#: library/libraryview.cpp:672 ui/mainwindow.cpp:2131 ui/mainwindow.cpp:2410
+#: ui/mainwindow.cpp:2589
msgid "Error"
msgstr "Памылка"
-#: ripper/ripcddialog.cpp:152
+#: ripper/ripcddialog.cpp:154
msgid "Error Ripping CD"
msgstr ""
@@ -2102,11 +2100,11 @@ msgstr ""
msgid "Error connecting MTP device"
msgstr "Памылка падлучэньня да прылады MTP"
-#: ui/organiseerrordialog.cpp:52
+#: ui/organiseerrordialog.cpp:54
msgid "Error copying songs"
msgstr "Памылка капіяваньня песень"
-#: ui/organiseerrordialog.cpp:59
+#: ui/organiseerrordialog.cpp:61
msgid "Error deleting songs"
msgstr "Памылка выдаленьня песень"
@@ -2124,12 +2122,12 @@ msgstr "Памылка запампоўкі плагіна Spotify"
msgid "Error loading %1"
msgstr "Памылка загрузкі %1"
-#: internet/digitally/digitallyimportedservicebase.cpp:200
+#: internet/digitally/digitallyimportedservicebase.cpp:202
#: internet/digitally/digitallyimportedurlhandler.cpp:96
msgid "Error loading di.fm playlist"
msgstr "Памылка пры загрузке плэйлісту di.fm"
-#: transcoder/transcoder.cpp:390
+#: transcoder/transcoder.cpp:391
#, qt-format
msgid "Error processing %1: %2"
msgstr "Памылка пры апрацоўке %1: %2"
@@ -2203,16 +2201,16 @@ msgstr "Экспартаваць спампаваныя вокладкі"
msgid "Export embedded covers"
msgstr ""
-#: ui/albumcovermanager.cpp:799 ui/albumcovermanager.cpp:823
+#: ui/albumcovermanager.cpp:801 ui/albumcovermanager.cpp:825
msgid "Export finished"
msgstr "Экспартаваньне скончана"
-#: ui/albumcovermanager.cpp:808
+#: ui/albumcovermanager.cpp:810
#, qt-format
msgid "Exported %1 covers out of %2 (%3 skipped)"
msgstr "Экспартавана %1 вокладак(кі) з %2 (%3 прапушчана)"
-#: core/song.cpp:430 transcoder/transcoder.cpp:233
+#: core/song.cpp:430 transcoder/transcoder.cpp:234
#: ../bin/src/ui_magnatunedownloaddialog.h:136
#: ../bin/src/ui_magnatunesettingspage.h:170
#: ../bin/src/ui_transcodersettingspage.h:176
@@ -2236,7 +2234,7 @@ msgstr "Згасаньне"
msgid "Fading duration"
msgstr "Працягласьць згасаньня"
-#: ui/mainwindow.cpp:2106
+#: ui/mainwindow.cpp:2132
msgid "Failed reading CD drive"
msgstr ""
@@ -2271,10 +2269,6 @@ msgstr ""
msgid "Fast"
msgstr "Хутка"
-#: internet/soundcloud/soundcloudservice.cpp:141
-msgid "Favorites"
-msgstr ""
-
#: library/library.cpp:88
msgid "Favourite tracks"
msgstr "Улюбёныя трэкі"
@@ -2307,7 +2301,7 @@ msgstr "Памылка пошуку вокладкі"
msgid "File Format"
msgstr ""
-#: ui/organisedialog.cpp:82
+#: ui/organisedialog.cpp:83
msgid "File extension"
msgstr "Пашырэньне файлу"
@@ -2315,11 +2309,11 @@ msgstr "Пашырэньне файлу"
msgid "File formats"
msgstr "Фарматы файлаў"
-#: playlist/playlist.cpp:1389 ../bin/src/ui_edittagdialog.h:716
+#: playlist/playlist.cpp:1422 ../bin/src/ui_edittagdialog.h:716
msgid "File name"
msgstr "Імя файла"
-#: playlist/playlist.cpp:1391
+#: playlist/playlist.cpp:1424
msgid "File name (without path)"
msgstr "Імя файла (без указаньня шляху)"
@@ -2327,11 +2321,11 @@ msgstr "Імя файла (без указаньня шляху)"
msgid "File paths"
msgstr ""
-#: playlist/playlist.cpp:1393 ../bin/src/ui_edittagdialog.h:710
+#: playlist/playlist.cpp:1426 ../bin/src/ui_edittagdialog.h:710
msgid "File size"
msgstr "Памер файлу"
-#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1395
+#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1428
#: ../bin/src/ui_groupbydialog.h:132 ../bin/src/ui_groupbydialog.h:151
#: ../bin/src/ui_groupbydialog.h:170 ../bin/src/ui_edittagdialog.h:712
msgid "File type"
@@ -2341,7 +2335,7 @@ msgstr "Тып файлу"
msgid "Filename"
msgstr "Имя файлу"
-#: ui/mainwindow.cpp:266
+#: ui/mainwindow.cpp:268
msgid "Files"
msgstr "Файлы"
@@ -2454,7 +2448,7 @@ msgstr "Full Treble"
msgid "Ge&nre"
msgstr ""
-#: ui/settingsdialog.cpp:133
+#: ui/settingsdialog.cpp:132
msgid "General"
msgstr "Агульныя"
@@ -2462,8 +2456,8 @@ msgstr "Агульныя"
msgid "General settings"
msgstr "Агульныя налады"
-#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1361
-#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:133
+#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1394
+#: ui/organisedialog.cpp:78 ../bin/src/ui_groupbydialog.h:133
#: ../bin/src/ui_groupbydialog.h:152 ../bin/src/ui_groupbydialog.h:171
#: ../bin/src/ui_ripcddialog.h:316
msgid "Genre"
@@ -2483,7 +2477,7 @@ msgstr ""
msgid "Getting channels"
msgstr "Атрыманьне каналаў"
-#: internet/digitally/digitallyimportedservicebase.cpp:100
+#: internet/digitally/digitallyimportedservicebase.cpp:102
msgid "Getting streams"
msgstr "Атрыманьне струменяў"
@@ -2507,13 +2501,13 @@ msgstr "Перайсьці да папярэдняга сьпісу прайгр
msgid "Google Drive"
msgstr "Google Drive"
-#: covers/coversearchstatisticsdialog.cpp:53 ui/albumcovermanager.cpp:465
+#: covers/coversearchstatisticsdialog.cpp:55 ui/albumcovermanager.cpp:467
#: ../bin/src/ui_coversearchstatisticsdialog.h:75
#, qt-format
msgid "Got %1 covers out of %2 (%3 failed)"
msgstr "Атрымана %1 вокладак з %2 (%3 атрымаць не ўдалося)"
-#: ../bin/src/ui_behavioursettingspage.h:335
+#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Grey out non existent songs in my playlists"
msgstr "Адзначаць шэрым няісныя песьні ў плэйлістах"
@@ -2521,7 +2515,7 @@ msgstr "Адзначаць шэрым няісныя песьні ў плэйл
msgid "Group Library by..."
msgstr "Сартаваць Бібліятэку па..."
-#: globalsearch/globalsearchview.cpp:477 library/libraryfilterwidget.cpp:100
+#: globalsearch/globalsearchview.cpp:478 library/libraryfilterwidget.cpp:100
msgid "Group by"
msgstr "Згрупаваць па"
@@ -2553,8 +2547,8 @@ msgstr "Сартаваць па Жанр/Альбом"
msgid "Group by Genre/Artist/Album"
msgstr "Сартаваць па Жанр/Выканаўца/Альбом"
-#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1369
-#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:141
+#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1402
+#: ui/organisedialog.cpp:71 ../bin/src/ui_groupbydialog.h:141
#: ../bin/src/ui_groupbydialog.h:160 ../bin/src/ui_groupbydialog.h:179
msgid "Grouping"
msgstr "Групаваньне"
@@ -2642,7 +2636,7 @@ msgstr "Іконкі ўверсе"
msgid "Identifying song"
msgstr "Вызначэньне песьні"
-#: ../bin/src/ui_behavioursettingspage.h:337
+#: ../bin/src/ui_behavioursettingspage.h:373
msgid ""
"If activated, clicking a selected song in the playlist view will let you "
"edit the tag value directly"
@@ -2662,6 +2656,10 @@ msgstr "Калі вы ведаеце URL подкасту, уведзьце яг
msgid "Ignore \"The\" in artist names"
msgstr "Ігнараваць \"The\" ў імені выканаўцы"
+#: ../bin/src/ui_behavioursettingspage.h:423
+msgid "Ignore prefix word(s)"
+msgstr ""
+
#: ui/albumcoverchoicecontroller.cpp:44
msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
msgstr "Выявы (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
@@ -2743,15 +2741,15 @@ msgstr "Устаўка"
msgid "Installed"
msgstr "Усталявана"
-#: core/database.cpp:585
+#: core/database.cpp:601
msgid "Integrity check"
msgstr "Праверка цельнасьці"
-#: ui/mainwindow.cpp:272
+#: ui/mainwindow.cpp:274
msgid "Internet"
msgstr "Інтэрнэт"
-#: ui/settingsdialog.cpp:156
+#: ui/settingsdialog.cpp:155
msgid "Internet providers"
msgstr "Інтрэрнэт правайдэры"
@@ -2764,7 +2762,7 @@ msgstr ""
msgid "Intro tracks"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:280
+#: internet/lastfm/lastfmservice.cpp:282
msgid "Invalid API key"
msgstr "Нявправільны ключ API"
@@ -2772,27 +2770,27 @@ msgstr "Нявправільны ключ API"
msgid "Invalid URL"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:270
+#: internet/lastfm/lastfmservice.cpp:272
msgid "Invalid format"
msgstr "Няверны фармат"
-#: internet/lastfm/lastfmservice.cpp:266
+#: internet/lastfm/lastfmservice.cpp:268
msgid "Invalid method"
msgstr "Няправільны мэтад"
-#: internet/lastfm/lastfmservice.cpp:272
+#: internet/lastfm/lastfmservice.cpp:274
msgid "Invalid parameters"
msgstr "Няверныя парамэтры"
-#: internet/lastfm/lastfmservice.cpp:274
+#: internet/lastfm/lastfmservice.cpp:276
msgid "Invalid resource specified"
msgstr "Няправільна ўказаная крыніца"
-#: internet/lastfm/lastfmservice.cpp:264
+#: internet/lastfm/lastfmservice.cpp:266
msgid "Invalid service"
msgstr "Няправільная служба"
-#: internet/lastfm/lastfmservice.cpp:278
+#: internet/lastfm/lastfmservice.cpp:280
msgid "Invalid session key"
msgstr "Няправільны ключ сэсіі"
@@ -2824,7 +2822,7 @@ msgstr "Самыя папулярныя трэкі тыдня на Jamendo"
msgid "Jamendo database"
msgstr "База Jamendo"
-#: ../bin/src/ui_behavioursettingspage.h:350
+#: ../bin/src/ui_behavioursettingspage.h:389
msgid "Jump to previous song right away"
msgstr ""
@@ -2844,7 +2842,7 @@ msgstr "Адлюстроўваць кнопкі на працягу %1 сэку
msgid "Keep buttons for %1 seconds..."
msgstr "Адлюстроўваць кнопкі на працягу %1 сэкунды..."
-#: ../bin/src/ui_behavioursettingspage.h:321
+#: ../bin/src/ui_behavioursettingspage.h:360
msgid "Keep running in the background when the window is closed"
msgstr "Працягваць працу ў фонавым рэжыме, калі вакно зачыненае"
@@ -2861,7 +2859,7 @@ msgstr ""
msgid "Kuduro"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:323
+#: ../bin/src/ui_behavioursettingspage.h:362
msgid "Language"
msgstr "Мова"
@@ -2893,7 +2891,7 @@ msgstr "Шырокая бакавая панэль"
msgid "Last played"
msgstr "Апошняе праслуханае"
-#: playlist/playlist.cpp:1378 ../bin/src/ui_edittagdialog.h:707
+#: playlist/playlist.cpp:1411 ../bin/src/ui_edittagdialog.h:707
msgctxt "A playlist's tag."
msgid "Last played"
msgstr ""
@@ -2902,11 +2900,11 @@ msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
msgid "Last.fm Authentication"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:287
+#: internet/lastfm/lastfmservice.cpp:289
msgid "Last.fm is currently busy, please try again in a few minutes"
msgstr "Last.fm у дадзены момант заняты, паспрабуйце праз некаторы час"
@@ -2930,12 +2928,12 @@ msgstr "Найменш улюбёныя трэкі"
msgid "Left"
msgstr "Левы"
-#: playlist/playlist.cpp:1351 ui/organisedialog.cpp:79
+#: playlist/playlist.cpp:1384 ui/organisedialog.cpp:80
#: ui/qtsystemtrayicon.cpp:254 ../bin/src/ui_edittagdialog.h:702
msgid "Length"
msgstr "Працягласьць"
-#: ui/mainwindow.cpp:251 ui/mainwindow.cpp:263
+#: ui/mainwindow.cpp:253 ui/mainwindow.cpp:265
#: ../bin/src/ui_seafilesettingspage.h:177
msgid "Library"
msgstr "Бібліятэка"
@@ -2944,7 +2942,7 @@ msgstr "Бібліятэка"
msgid "Library advanced grouping"
msgstr "Пашыраная сартоўка калекцыі"
-#: ui/mainwindow.cpp:2683
+#: ui/mainwindow.cpp:2709
msgid "Library rescan notice"
msgstr "Апавяшчэньне сканіраваньня бібліятэкі"
@@ -2980,7 +2978,7 @@ msgstr "Загрузіць вокладку з дыску"
msgid "Load cover from disk..."
msgstr "Загрузіць вокладку з дыску..."
-#: playlist/playlistcontainer.cpp:298
+#: playlist/playlistcontainer.cpp:300
msgid "Load playlist"
msgstr "Загрузіць плэйліст"
@@ -3000,7 +2998,7 @@ msgstr "Загрузка базы дадзеных iPod"
msgid "Loading smart playlist"
msgstr "Загрузка смарт-плэйлісту"
-#: library/librarymodel.cpp:169
+#: library/librarymodel.cpp:170
msgid "Loading songs"
msgstr "Загрузка песень"
@@ -3018,7 +3016,7 @@ msgstr "Загрузка трэкаў"
msgid "Loading tracks info"
msgstr "Загрузка інфармацыі пра трэк"
-#: library/librarymodel.cpp:164
+#: library/librarymodel.cpp:165
#: internet/podcasts/podcastdiscoverymodel.cpp:105 widgets/prettyimage.cpp:168
#: widgets/widgetfadehelper.cpp:96 ../bin/src/ui_addpodcastdialog.h:179
#: ../bin/src/ui_searchpreview.h:105 ../bin/src/ui_organisedialog.h:261
@@ -3031,7 +3029,6 @@ msgstr "Загрузіць файлы/URLs, замяняючы бягучы пл
#: ../bin/src/ui_digitallyimportedsettingspage.h:162
#: ../bin/src/ui_magnatunesettingspage.h:163
-#: ../bin/src/ui_soundcloudsettingspage.h:102
#: ../bin/src/ui_spotifysettingspage.h:210
#: ../bin/src/ui_subsonicsettingspage.h:137
#: ../bin/src/ui_lastfmsettingspage.h:132
@@ -3072,7 +3069,7 @@ msgstr "Нізкая (256x256)"
msgid "Low complexity profile (LC)"
msgstr "Профіль нізкай складанасьці (LC)"
-#: ui/organisedialog.cpp:71 ../bin/src/ui_songinfosettingspage.h:158
+#: ui/organisedialog.cpp:72 ../bin/src/ui_songinfosettingspage.h:158
msgid "Lyrics"
msgstr "Тэксты песень"
@@ -3085,11 +3082,11 @@ msgstr "Тэкст песьні з %1"
msgid "Lyrics from the tag"
msgstr ""
-#: transcoder/transcoder.cpp:235
+#: transcoder/transcoder.cpp:236
msgid "M4A AAC"
msgstr ""
-#: core/song.cpp:436 transcoder/transcoder.cpp:238
+#: core/song.cpp:436 transcoder/transcoder.cpp:239
#: ../bin/src/ui_transcodersettingspage.h:174
msgid "MP3"
msgstr "MP3"
@@ -3140,7 +3137,7 @@ msgstr ""
msgid "Make playlist available offline"
msgstr "Зрабіць плэйліст даступным офлайн"
-#: internet/lastfm/lastfmservice.cpp:299
+#: internet/lastfm/lastfmservice.cpp:301
msgid "Malformed response"
msgstr "Няправільны адказ"
@@ -3181,7 +3178,7 @@ msgstr "Супадае з адным ці некалькімі ўмовамі (
msgid "Maximum bitrate"
msgstr "Максымальны бітрэйт"
-#: ripper/ripcddialog.cpp:153
+#: ripper/ripcddialog.cpp:155
msgid "Media has changed. Reloading"
msgstr ""
@@ -3231,7 +3228,7 @@ msgstr "Прайграваньне мона"
msgid "Months"
msgstr "Месяцаў"
-#: playlist/playlist.cpp:1406
+#: playlist/playlist.cpp:1439
msgid "Mood"
msgstr "Настрой"
@@ -3261,7 +3258,7 @@ msgstr "Пункты мантаваньня"
msgid "Move down"
msgstr "Перамясьціць долу"
-#: ui/mainwindow.cpp:712 widgets/fileviewlist.cpp:42
+#: ui/mainwindow.cpp:714 widgets/fileviewlist.cpp:42
msgid "Move to library..."
msgstr "Перамясьціць у бібліятэку"
@@ -3270,7 +3267,7 @@ msgstr "Перамясьціць у бібліятэку"
msgid "Move up"
msgstr "Перамясьціць вышэй"
-#: transcoder/transcodedialog.cpp:225 ui/mainwindow.cpp:2050
+#: transcoder/transcodedialog.cpp:227 ui/mainwindow.cpp:2076
msgid "Music"
msgstr "Музыка"
@@ -3317,8 +3314,8 @@ msgstr "Ніколі"
msgid "Never played"
msgstr "Ніколі не праслухоўвалася"
-#: ../bin/src/ui_behavioursettingspage.h:343
-#: ../bin/src/ui_behavioursettingspage.h:363
+#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:402
msgid "Never start playing"
msgstr "Ніколі не пачынаць прайграваць"
@@ -3328,7 +3325,7 @@ msgstr "Ніколі не пачынаць прайграваць"
msgid "New folder"
msgstr "Новая тэчка"
-#: ui/mainwindow.cpp:1867 ../bin/src/ui_mainwindow.h:709
+#: ui/mainwindow.cpp:1893 ../bin/src/ui_mainwindow.h:709
msgid "New playlist"
msgstr "Новы плэйліст"
@@ -3373,7 +3370,7 @@ msgstr "Без аналізатару"
msgid "No background image"
msgstr "Няма фонавай выявы"
-#: ui/albumcovermanager.cpp:800
+#: ui/albumcovermanager.cpp:802
msgid "No covers to export."
msgstr "Няма вокладак для экспартаваньня."
@@ -3381,7 +3378,7 @@ msgstr "Няма вокладак для экспартаваньня."
msgid "No long blocks"
msgstr "Бяз доўгіх блёкаў"
-#: playlist/playlistcontainer.cpp:383
+#: playlist/playlistcontainer.cpp:385
msgid ""
"No matches found. Clear the search box to show the whole playlist again."
msgstr "Супадзеньняў ня знойдзена. Ачысьціце радок пошуку, каб зноў убачыць плэйліст."
@@ -3395,7 +3392,7 @@ msgstr "Без кароткіх блёкаў"
msgid "None"
msgstr "Нічога"
-#: library/libraryview.cpp:673 ui/mainwindow.cpp:2385 ui/mainwindow.cpp:2564
+#: library/libraryview.cpp:673 ui/mainwindow.cpp:2411 ui/mainwindow.cpp:2590
msgid "None of the selected songs were suitable for copying to a device"
msgstr "Ніводная з абраных песень ня будзе скапіяваная на прыладу"
@@ -3407,6 +3404,10 @@ msgstr "Звычайны"
msgid "Normal block type"
msgstr "Нармальны тып блёкаў"
+#: ../bin/src/ui_behavioursettingspage.h:428
+msgid "Normal duration (at least 4 minutes or half the track length)"
+msgstr ""
+
#: playlist/playlistsequence.cpp:203
msgid "Not available while using a dynamic playlist"
msgstr "Не даступныя пры выкарыстаньні дынамічных плэйлістоў"
@@ -3415,19 +3416,19 @@ msgstr "Не даступныя пры выкарыстаньні дынаміч
msgid "Not connected"
msgstr "Не падключана"
-#: internet/lastfm/lastfmservice.cpp:290
+#: internet/lastfm/lastfmservice.cpp:292
msgid "Not enough content"
msgstr "Нестае зьместу"
-#: internet/lastfm/lastfmservice.cpp:294
+#: internet/lastfm/lastfmservice.cpp:296
msgid "Not enough fans"
msgstr "Нестае фанаў"
-#: internet/lastfm/lastfmservice.cpp:292
+#: internet/lastfm/lastfmservice.cpp:294
msgid "Not enough members"
msgstr "Нестае ўдзельнікаў"
-#: internet/lastfm/lastfmservice.cpp:296
+#: internet/lastfm/lastfmservice.cpp:298
msgid "Not enough neighbors"
msgstr "Нестае суседзяў"
@@ -3435,7 +3436,7 @@ msgstr "Нестае суседзяў"
msgid "Not installed"
msgstr "Не ўсталявана"
-#: globalsearch/globalsearchsettingspage.cpp:120
+#: globalsearch/globalsearchsettingspage.cpp:122
#: globalsearch/searchproviderstatuswidget.cpp:47
msgid "Not logged in"
msgstr "Ня быў выкананы логін"
@@ -3472,19 +3473,19 @@ msgstr ""
msgid "Ogg FLAC"
msgstr ""
-#: transcoder/transcoder.cpp:244
+#: transcoder/transcoder.cpp:245
msgid "Ogg Flac"
msgstr "Ogg Flac"
-#: core/song.cpp:444 transcoder/transcoder.cpp:250
+#: core/song.cpp:444 transcoder/transcoder.cpp:251
msgid "Ogg Opus"
msgstr "Ogg Opus"
-#: core/song.cpp:440 transcoder/transcoder.cpp:247
+#: core/song.cpp:440 transcoder/transcoder.cpp:248
msgid "Ogg Speex"
msgstr "Ogg Speex"
-#: core/song.cpp:442 transcoder/transcoder.cpp:241
+#: core/song.cpp:442 transcoder/transcoder.cpp:242
#: ../bin/src/ui_magnatunedownloaddialog.h:135
#: ../bin/src/ui_magnatunesettingspage.h:169
msgid "Ogg Vorbis"
@@ -3518,13 +3519,12 @@ msgstr "Паказваць толькі першы"
msgid "Opacity"
msgstr "Непразрыстасьць"
-#: internet/digitally/digitallyimportedservicebase.cpp:175
+#: internet/digitally/digitallyimportedservicebase.cpp:177
#: internet/icecast/icecastservice.cpp:298
#: internet/jamendo/jamendoservice.cpp:427
#: internet/magnatune/magnatuneservice.cpp:287
#: internet/somafm/somafmservice.cpp:102
#: internet/intergalacticfm/intergalacticfmservice.cpp:102
-#: internet/soundcloud/soundcloudservice.cpp:377
#, qt-format
msgid "Open %1 in browser"
msgstr "Адчыніць %1 у браўзэры"
@@ -3541,7 +3541,7 @@ msgstr "Адкрыць файл OPML"
msgid "Open OPML file..."
msgstr "Адкрыць файл OPML..."
-#: transcoder/transcodedialog.cpp:240
+#: transcoder/transcodedialog.cpp:242
msgid "Open a directory to import music from"
msgstr ""
@@ -3557,13 +3557,13 @@ msgstr "Адкрыць файл..."
msgid "Open in Google Drive"
msgstr "Адчыніць у Google Drive"
-#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:460
+#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:461
#: internet/core/internetservice.cpp:62 library/libraryview.cpp:389
#: widgets/fileviewlist.cpp:36
msgid "Open in new playlist"
msgstr "Адкрыць у новым плэйлісьце"
-#: ../bin/src/ui_behavioursettingspage.h:358
+#: ../bin/src/ui_behavioursettingspage.h:397
msgctxt "Refers to behavior settings in Clementine settings page."
msgid "Open in new playlist"
msgstr ""
@@ -3577,7 +3577,7 @@ msgstr ""
msgid "Open..."
msgstr "Адкрыць"
-#: internet/lastfm/lastfmservice.cpp:276
+#: internet/lastfm/lastfmservice.cpp:278
msgid "Operation failed"
msgstr "Апэрацыя не ўдалася"
@@ -3603,7 +3603,7 @@ msgstr "Opus"
msgid "Organise Files"
msgstr "Упарадкаваць файлы"
-#: library/libraryview.cpp:416 ui/mainwindow.cpp:715
+#: library/libraryview.cpp:416 ui/mainwindow.cpp:717
msgid "Organise files..."
msgstr "Упарадкаваць файлы..."
@@ -3615,8 +3615,8 @@ msgstr "Арганізацыя файлаў"
msgid "Original tags"
msgstr "Першапачатковыя тэгі"
-#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1359
-#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:135
+#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1392
+#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:135
#: ../bin/src/ui_groupbydialog.h:154 ../bin/src/ui_groupbydialog.h:173
msgid "Original year"
msgstr ""
@@ -3687,7 +3687,7 @@ msgstr "Party"
msgid "Password"
msgstr "Пароль"
-#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1160 ui/mainwindow.cpp:1663
+#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1170 ui/mainwindow.cpp:1689
#: ui/qtsystemtrayicon.cpp:189 wiimotedev/wiimotesettingspage.cpp:114
msgid "Pause"
msgstr "Прыпыніць"
@@ -3700,8 +3700,8 @@ msgstr "Прыпыніць прайграваньне"
msgid "Paused"
msgstr "Прыпынены"
-#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1367
-#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:140
+#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1400
+#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:140
#: ../bin/src/ui_groupbydialog.h:159 ../bin/src/ui_groupbydialog.h:178
#: ../bin/src/ui_edittagdialog.h:727
msgid "Performer"
@@ -3715,14 +3715,14 @@ msgstr ""
msgid "Plain sidebar"
msgstr "Нармальная бакавая панэль"
-#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:676 ui/mainwindow.cpp:1126
-#: ui/mainwindow.cpp:1145 ui/mainwindow.cpp:1667 ui/qtsystemtrayicon.cpp:177
+#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:678 ui/mainwindow.cpp:1134
+#: ui/mainwindow.cpp:1155 ui/mainwindow.cpp:1693 ui/qtsystemtrayicon.cpp:177
#: ui/qtsystemtrayicon.cpp:203 wiimotedev/wiimotesettingspage.cpp:107
#: ../bin/src/ui_mainwindow.h:675
msgid "Play"
msgstr "Прайграць"
-#: playlist/playlist.cpp:1374 ../bin/src/ui_edittagdialog.h:703
+#: playlist/playlist.cpp:1407 ../bin/src/ui_edittagdialog.h:703
msgid "Play count"
msgstr "Колькасць прайграваньняў"
@@ -3730,16 +3730,16 @@ msgstr "Колькасць прайграваньняў"
msgid "Play if stopped, pause if playing"
msgstr "Прайграць калі спынена, прыпыніць калі прайграваецца"
-#: ../bin/src/ui_behavioursettingspage.h:344
-#: ../bin/src/ui_behavioursettingspage.h:364
+#: ../bin/src/ui_behavioursettingspage.h:383
+#: ../bin/src/ui_behavioursettingspage.h:403
msgid "Play if there is nothing already playing"
msgstr "Прайграць, калі яшчэ нічога не прайграваецца"
-#: library/libraryview.cpp:396 ui/mainwindow.cpp:1774
+#: library/libraryview.cpp:396 ui/mainwindow.cpp:1800
msgid "Play next"
msgstr ""
-#: ui/mainwindow.cpp:1772
+#: ui/mainwindow.cpp:1798
msgid "Play selected tracks next"
msgstr ""
@@ -3759,7 +3759,7 @@ msgstr "Прайграваньне"
msgid "Player options"
msgstr "Налады плэеру"
-#: playlist/playlistcontainer.cpp:294 playlist/playlistlistcontainer.cpp:325
+#: playlist/playlistcontainer.cpp:296 playlist/playlistlistcontainer.cpp:325
#: playlist/playlistmanager.cpp:87 playlist/playlistmanager.cpp:156
#: playlist/playlistmanager.cpp:525 playlist/playlisttabbar.cpp:366
msgid "Playlist"
@@ -3778,7 +3778,7 @@ msgstr "Налады плэйлісту"
msgid "Playlist type"
msgstr "Тып плэйлісту"
-#: internet/soundcloud/soundcloudservice.cpp:133 ui/mainwindow.cpp:269
+#: ui/mainwindow.cpp:271
msgid "Playlists"
msgstr "Плэйлісты"
@@ -3786,7 +3786,7 @@ msgstr "Плэйлісты"
msgid "Please close your browser and return to Clementine."
msgstr "Зачыніце браўзэр і вяпніцеся ў Clementine."
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
#, qt-format
msgid "Please open this URL in your browser: %1"
msgstr ""
@@ -3869,7 +3869,7 @@ msgstr "Націсьніце клявішу"
msgid "Press a key combination to use for %1..."
msgstr "Нажміце камбінацыю клявішаў для %1..."
-#: ../bin/src/ui_behavioursettingspage.h:347
+#: ../bin/src/ui_behavioursettingspage.h:386
msgid "Pressing \"Previous\" in player will..."
msgstr ""
@@ -3946,12 +3946,12 @@ msgstr "Апытваньне прылады..."
msgid "Queue Manager"
msgstr "Мэнэджэр Чаргі"
-#: ui/mainwindow.cpp:1767
+#: ui/mainwindow.cpp:1793
msgid "Queue selected tracks"
msgstr "Дадаць абраныя трэкі ў чаргу"
-#: globalsearch/globalsearchview.cpp:464 library/libraryview.cpp:393
-#: ui/mainwindow.cpp:1765
+#: globalsearch/globalsearchview.cpp:465 library/libraryview.cpp:393
+#: ui/mainwindow.cpp:1791
msgid "Queue track"
msgstr "Дадаць у чаргу"
@@ -4000,12 +4000,12 @@ msgstr "Ацаніць бягучую кампазыцыю ў 4 зоркі"
msgid "Rate the current song 5 stars"
msgstr "Ацаніць бягучую кампазыцыю ў 5 зорак"
-#: playlist/playlist.cpp:1372 ../bin/src/ui_edittagdialog.h:711
+#: playlist/playlist.cpp:1405 ../bin/src/ui_edittagdialog.h:711
msgid "Rating"
msgstr "Рэйтынг"
#: internet/magnatune/magnatunedownloaddialog.cpp:309
-#: ui/albumcovermanager.cpp:212
+#: ui/albumcovermanager.cpp:214
msgid "Really cancel?"
msgstr "Ці сапраўды адмяніць?"
@@ -4032,7 +4032,7 @@ msgstr "Абнавіць каналы"
msgid "Refresh station list"
msgstr "Абнавіць сьпіс станцый"
-#: internet/digitally/digitallyimportedservicebase.cpp:178
+#: internet/digitally/digitallyimportedservicebase.cpp:180
msgid "Refresh streams"
msgstr "Абнавіць струмені"
@@ -4041,7 +4041,7 @@ msgid "Reggae"
msgstr "Reggae"
#: playlist/playlistsaveoptionsdialog.cpp:33
-#: ../bin/src/ui_behavioursettingspage.h:380
+#: ../bin/src/ui_behavioursettingspage.h:419
msgid "Relative"
msgstr ""
@@ -4049,9 +4049,9 @@ msgstr ""
msgid "Remember Wii remote swing"
msgstr "Запомніць рух пульта Wii"
-#: ../bin/src/ui_behavioursettingspage.h:332
-msgid "Remember from last time"
-msgstr "Запомніць апошняе"
+#: ../bin/src/ui_behavioursettingspage.h:371
+msgid "Remember from &last time"
+msgstr ""
#: ../bin/src/ui_playlistsaveoptionsdialog.h:99
msgid "Remember my choice"
@@ -4123,13 +4123,13 @@ msgstr "Паўтараць плэйліст"
msgid "Repeat track"
msgstr "Паўтараць трэк"
-#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:457
+#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:458
#: internet/core/internetservice.cpp:55 library/libraryview.cpp:386
#: widgets/fileviewlist.cpp:34
msgid "Replace current playlist"
msgstr "Замяніць бягучы плэйліст"
-#: ../bin/src/ui_behavioursettingspage.h:357
+#: ../bin/src/ui_behavioursettingspage.h:396
msgid "Replace the playlist"
msgstr "Замяніць плэйліст"
@@ -4161,7 +4161,7 @@ msgstr "Ськід"
msgid "Reset play counts"
msgstr "Ськінуць лічыльнікі прайграваньня"
-#: ../bin/src/ui_behavioursettingspage.h:351
+#: ../bin/src/ui_behavioursettingspage.h:390
msgid "Restart song, then jump to previous if pressed again"
msgstr ""
@@ -4174,7 +4174,7 @@ msgstr ""
msgid "Restrict to ASCII characters"
msgstr "Абмежаваць толькі сымбалямі ASCII"
-#: ../bin/src/ui_behavioursettingspage.h:333
+#: ../bin/src/ui_behavioursettingspage.h:376
msgid "Resume playback on start"
msgstr "Працягваць прайграваньне пры запуску"
@@ -4190,7 +4190,7 @@ msgstr "Правы"
msgid "Rip"
msgstr ""
-#: ripper/ripcddialog.cpp:105
+#: ripper/ripcddialog.cpp:107
msgid "Rip CD"
msgstr ""
@@ -4228,13 +4228,13 @@ msgstr "Бясьпечна выняць прыладу"
msgid "Safely remove the device after copying"
msgstr "Бясьпечна выняць прыладу пасьля капіяваньня"
-#: playlist/playlist.cpp:1387 ../bin/src/ui_edittagdialog.h:708
+#: playlist/playlist.cpp:1420 ../bin/src/ui_edittagdialog.h:708
#: ../bin/src/ui_playbacksettingspage.h:371
#: ../bin/src/ui_streamdetailsdialog.h:141
msgid "Sample rate"
msgstr "Чашчыня"
-#: ui/organisedialog.cpp:81
+#: ui/organisedialog.cpp:82
msgid "Samplerate"
msgstr "Чашчыня дыскрэтызацыі"
@@ -4308,7 +4308,7 @@ msgstr "Профіль Scalable sampling rate (SSR)"
msgid "Scale size"
msgstr ""
-#: playlist/playlist.cpp:1380 ../bin/src/ui_edittagdialog.h:709
+#: playlist/playlist.cpp:1413 ../bin/src/ui_edittagdialog.h:709
msgid "Score"
msgstr "Лік"
@@ -4316,7 +4316,7 @@ msgstr "Лік"
msgid "Scrobble tracks that I listen to"
msgstr "Скробліць трэкі, якія я слухаю"
-#: ../bin/src/ui_behavioursettingspage.h:320
+#: ../bin/src/ui_behavioursettingspage.h:359
msgid "Scroll over icon to change track"
msgstr ""
@@ -4330,7 +4330,7 @@ msgstr ""
msgid "Search"
msgstr "Пошук"
-#: ui/mainwindow.cpp:260 ../bin/src/ui_globalsearchsettingspage.h:141
+#: ui/mainwindow.cpp:262 ../bin/src/ui_globalsearchsettingspage.h:141
msgctxt "Global search settings dialog title."
msgid "Search"
msgstr ""
@@ -4355,7 +4355,7 @@ msgstr "Пошук "
msgid "Search automatically"
msgstr ""
-#: ui/mainwindow.cpp:696
+#: ui/mainwindow.cpp:698
msgid "Search for album"
msgstr ""
@@ -4368,11 +4368,11 @@ msgstr "Шукаць вокладкі альбомаў..."
msgid "Search for anything"
msgstr "Пошук усяго"
-#: ui/mainwindow.cpp:693
+#: ui/mainwindow.cpp:695
msgid "Search for artist"
msgstr ""
-#: globalsearch/globalsearchview.cpp:473 library/libraryview.cpp:401
+#: globalsearch/globalsearchview.cpp:474 library/libraryview.cpp:401
msgid "Search for this"
msgstr ""
@@ -4392,7 +4392,6 @@ msgstr "Рэжым пошуку"
msgid "Search options"
msgstr "Парамэтры пошуку"
-#: internet/soundcloud/soundcloudservice.cpp:119
#: internet/spotify/spotifyservice.cpp:400
msgid "Search results"
msgstr "Вынікі пошуку"
@@ -4426,7 +4425,7 @@ msgstr "Крыху пераматаць быгучы трэк"
msgid "Seek the currently playing track to an absolute position"
msgstr "Пераматаць бягучы трэк на абсалютную пазыцыю"
-#: ../bin/src/ui_behavioursettingspage.h:373
+#: ../bin/src/ui_behavioursettingspage.h:412
msgid "Seeking using a keyboard shortcut or mouse wheel"
msgstr ""
@@ -4482,11 +4481,11 @@ msgstr "URL Сэрвэру"
msgid "Server details"
msgstr "Дэталі сэрвэру"
-#: internet/lastfm/lastfmservice.cpp:282
+#: internet/lastfm/lastfmservice.cpp:284
msgid "Service offline"
msgstr "Служба не працуе"
-#: ui/mainwindow.cpp:1812
+#: ui/mainwindow.cpp:1838
#, qt-format
msgid "Set %1 to \"%2\"..."
msgstr "Усталяваць %1 у \"%2\"..."
@@ -4503,6 +4502,10 @@ msgstr "Усталяваць значэньне для вызначаных тр
msgid "Settings"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:429
+msgid "Short duration (at least 1 minute or half the track length)"
+msgstr ""
+
#: ../bin/src/ui_globalshortcutssettingspage.h:172
msgid "Shortcut"
msgstr "Камбінацыя клявішаў"
@@ -4562,7 +4565,7 @@ msgstr "Паказваць OSD"
msgid "Show above status bar"
msgstr "Паказаць над радком стану"
-#: ui/mainwindow.cpp:643
+#: ui/mainwindow.cpp:645
msgid "Show all songs"
msgstr "Паказаць усе кампазыцыі"
@@ -4582,12 +4585,12 @@ msgstr "Паказваць падзяляльнікі"
msgid "Show fullsize..."
msgstr "Паказаць поўны памер..."
-#: library/libraryview.cpp:433 ui/mainwindow.cpp:725
+#: library/libraryview.cpp:433 ui/mainwindow.cpp:727
#: widgets/fileviewlist.cpp:53
msgid "Show in file browser..."
msgstr "Паказаць ў аглядчыку файлаў"
-#: ui/mainwindow.cpp:727
+#: ui/mainwindow.cpp:729
msgid "Show in library..."
msgstr ""
@@ -4599,11 +4602,11 @@ msgstr "Паказаць ў \"Розных выканаўцах\""
msgid "Show moodbar"
msgstr "Паказаць панэль настрою"
-#: ui/mainwindow.cpp:645
+#: ui/mainwindow.cpp:647
msgid "Show only duplicates"
msgstr "Паказваць толькі дубляваныя"
-#: ui/mainwindow.cpp:647
+#: ui/mainwindow.cpp:649
msgid "Show only untagged"
msgstr "Паказваць толькі бяз тэгаў"
@@ -4627,7 +4630,7 @@ msgstr ""
msgid "Show the scrobble button in the main window"
msgstr "Паказваць кнопку скроблінгу ў галоўным вакне"
-#: ../bin/src/ui_behavioursettingspage.h:319
+#: ../bin/src/ui_behavioursettingspage.h:358
msgid "Show tray icon"
msgstr "Паказаць значок у латку"
@@ -4687,7 +4690,7 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Перамясьціць назад у плэйлісьце"
-#: playlist/playlist.cpp:1376 ../bin/src/ui_edittagdialog.h:705
+#: playlist/playlist.cpp:1409 ../bin/src/ui_edittagdialog.h:705
msgid "Skip count"
msgstr "Прапусьціць падлік"
@@ -4695,11 +4698,11 @@ msgstr "Прапусьціць падлік"
msgid "Skip forwards in playlist"
msgstr "Перамясьціць наперад ў плэйлісьце"
-#: ui/mainwindow.cpp:1783
+#: ui/mainwindow.cpp:1809
msgid "Skip selected tracks"
msgstr ""
-#: ui/mainwindow.cpp:1781
+#: ui/mainwindow.cpp:1807
msgid "Skip track"
msgstr ""
@@ -4715,7 +4718,7 @@ msgstr "Вузкая бакавая панэль"
msgid "Smart playlist"
msgstr "Смарт-плэйліст"
-#: library/librarymodel.cpp:1367
+#: library/librarymodel.cpp:1368
msgid "Smart playlists"
msgstr "Смарт-плэйлісты"
@@ -4731,7 +4734,7 @@ msgstr "Soft Rock"
msgid "Song Information"
msgstr "Інфармацыя аб кампазыцыі"
-#: ui/mainwindow.cpp:280
+#: ui/mainwindow.cpp:282
msgid "Song info"
msgstr "Пра Песьню"
@@ -4763,11 +4766,7 @@ msgstr "Сартаваць песьні па"
msgid "Sorting"
msgstr "Сартаваць"
-#: ../bin/src/ui_soundcloudsettingspage.h:100
-msgid "SoundCloud"
-msgstr ""
-
-#: playlist/playlist.cpp:1404
+#: playlist/playlist.cpp:1437
msgid "Source"
msgstr "Крыніца"
@@ -4813,7 +4812,7 @@ msgstr "Стандартны"
msgid "Starred"
msgstr "Ацэненыя"
-#: ripper/ripcddialog.cpp:72
+#: ripper/ripcddialog.cpp:74
msgid "Start ripping"
msgstr ""
@@ -4821,18 +4820,17 @@ msgstr ""
msgid "Start the playlist currently playing"
msgstr "Запусьціць бягучы плэйліст"
-#: transcoder/transcodedialog.cpp:90
+#: transcoder/transcodedialog.cpp:92
msgid "Start transcoding"
msgstr "Пачаць перакадаваньне"
-#: internet/soundcloud/soundcloudservice.cpp:121
#: internet/spotify/spotifyservice.cpp:402
msgid ""
"Start typing something on the search box above to fill this search results "
"list"
msgstr "Пачніце друкаваць штосьці ў пошукавым радку"
-#: transcoder/transcoder.cpp:397
+#: transcoder/transcoder.cpp:398
#, qt-format
msgid "Starting %1"
msgstr "Запуск %1"
@@ -4858,7 +4856,7 @@ msgstr ""
msgid "Stop after every track"
msgstr ""
-#: ui/mainwindow.cpp:680 ../bin/src/ui_mainwindow.h:679
+#: ui/mainwindow.cpp:682 ../bin/src/ui_mainwindow.h:679
msgid "Stop after this track"
msgstr "Спыніць пасьля гэтага трэку"
@@ -4870,7 +4868,7 @@ msgstr "Спыніць прайграваньне"
msgid "Stop playback after current track"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:334
+#: ../bin/src/ui_behavioursettingspage.h:377
msgid "Stop playback if song fails to play"
msgstr ""
@@ -4918,7 +4916,7 @@ msgstr "Subsonic"
msgid "Success!"
msgstr "Пасьпяхова!"
-#: transcoder/transcoder.cpp:189
+#: transcoder/transcoder.cpp:190
#, qt-format
msgid "Successfully written %1"
msgstr "Пасьпяхова запісанае %1"
@@ -4986,7 +4984,7 @@ msgstr "Techno"
msgid "Text options"
msgstr "Уласьцівасьці тэксту"
-#: ui/about.cpp:74
+#: ui/about.cpp:76
msgid "Thanks to"
msgstr "Дзякуй"
@@ -5026,7 +5024,7 @@ msgid ""
"license key. Visit subsonic.org for details."
msgstr "Скончыўся пробны пэрыяд сэрвэру Subsonic. Калі ласка заплаціце каб атрымаць ліцэнзыйны ключ. Наведайце subsonic.org для падрабязнасьцяў."
-#: ui/mainwindow.cpp:2674
+#: ui/mainwindow.cpp:2700
msgid ""
"The version of Clementine you've just updated to requires a full library "
"rescan because of the new features listed below:"
@@ -5050,13 +5048,13 @@ msgstr "Праблема атрыманьня мэтададзеных з Magnat
msgid "There was a problem parsing the response from the iTunes Store"
msgstr "Праблема разбору адказу ад iTunes Store"
-#: ui/organiseerrordialog.cpp:54
+#: ui/organiseerrordialog.cpp:56
msgid ""
"There were problems copying some songs. The following files could not be "
"copied:"
msgstr "Падчас капіяваньня некаторых кампазыцый узьніклі праблемы. Наступныя файлы ня могуць быць скапіяваныя:"
-#: ui/organiseerrordialog.cpp:61
+#: ui/organiseerrordialog.cpp:63
msgid ""
"There were problems deleting some songs. The following files could not be "
"deleted:"
@@ -5068,7 +5066,7 @@ msgid ""
"continue?"
msgstr "Гэтыя файлы будуць выдаленыя з прылады, вы дакладна жадаеце працягнуць?"
-#: library/libraryview.cpp:679 ui/mainwindow.cpp:2433 widgets/fileview.cpp:189
+#: library/libraryview.cpp:679 ui/mainwindow.cpp:2459 widgets/fileview.cpp:189
msgid ""
"These files will be permanently deleted from disk, are you sure you want to "
"continue?"
@@ -5139,7 +5137,7 @@ msgstr "Гэта першы раз, калі вы падключылі прыл
msgid "This option can be changed in the \"Behavior\" preferences"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:284
+#: internet/lastfm/lastfmservice.cpp:286
msgid "This stream is for paid subscribers only"
msgstr "Гэты струмень толькі для платных падпісантаў"
@@ -5148,11 +5146,11 @@ msgstr "Гэты струмень толькі для платных падпі
msgid "This type of device is not supported: %1"
msgstr "Гэты тып прылады не падтрымліваецца: %1"
-#: ../bin/src/ui_behavioursettingspage.h:374
+#: ../bin/src/ui_behavioursettingspage.h:413
msgid "Time step"
msgstr ""
-#: playlist/playlist.cpp:1345 ui/organisedialog.cpp:63
+#: playlist/playlist.cpp:1378 ui/organisedialog.cpp:64
#: ui/qtsystemtrayicon.cpp:247 ../bin/src/ui_about.h:141
#: ../bin/src/ui_edittagdialog.h:719 ../bin/src/ui_trackselectiondialog.h:210
#: ../bin/src/ui_ripcddialog.h:306
@@ -5171,7 +5169,7 @@ msgstr "Уключыць"
msgid "Toggle fullscreen"
msgstr "Укл/Выкл поўнаэкранны рэжым"
-#: ui/mainwindow.cpp:1769
+#: ui/mainwindow.cpp:1795
msgid "Toggle queue status"
msgstr "Пераключыць стан чаргі"
@@ -5203,11 +5201,11 @@ msgstr "Самыя папулярныя"
msgid "Total albums:"
msgstr ""
-#: covers/coversearchstatisticsdialog.cpp:70
+#: covers/coversearchstatisticsdialog.cpp:72
msgid "Total bytes transferred"
msgstr "Перадана байтаў увогуле"
-#: covers/coversearchstatisticsdialog.cpp:67
+#: covers/coversearchstatisticsdialog.cpp:69
msgid "Total network requests made"
msgstr "Выканана сеткавых запытаў увогуле"
@@ -5215,15 +5213,11 @@ msgstr "Выканана сеткавых запытаў увогуле"
msgid "Trac&k"
msgstr ""
-#: playlist/playlist.cpp:1353 ui/organisedialog.cpp:72
+#: playlist/playlist.cpp:1386 ui/organisedialog.cpp:73
#: ../bin/src/ui_trackselectiondialog.h:212 ../bin/src/ui_ripcddialog.h:304
msgid "Track"
msgstr "Трэк"
-#: internet/soundcloud/soundcloudservice.cpp:136
-msgid "Tracks"
-msgstr ""
-
#: ../bin/src/ui_transcodedialog.h:213 ../bin/src/ui_mainwindow.h:706
msgid "Transcode Music"
msgstr "Перакадаваньне Музыкі"
@@ -5236,7 +5230,7 @@ msgstr "Лог Перакадоўшчыку"
msgid "Transcoding"
msgstr "Перакадоўка"
-#: transcoder/transcoder.cpp:317
+#: transcoder/transcoder.cpp:318
#, qt-format
msgid "Transcoding %1 files using %2 threads"
msgstr "Перакадавана %1 файлаў, выкарыстоўваючы %2 тэм"
@@ -5287,8 +5281,8 @@ msgstr ""
msgid "Unable to download %1 (%2)"
msgstr "Немагчыма спампаваць %1 (%2)"
-#: core/song.cpp:465 library/librarymodel.cpp:374 library/librarymodel.cpp:379
-#: library/librarymodel.cpp:383 library/librarymodel.cpp:1159
+#: core/song.cpp:465 library/librarymodel.cpp:375 library/librarymodel.cpp:380
+#: library/librarymodel.cpp:384 library/librarymodel.cpp:1160
#: library/savedgroupingmanager.cpp:103 playlist/playlistdelegates.cpp:305
#: playlist/playlistmanager.cpp:532 playlist/playlistmanager.cpp:533
#: songinfo/streamdiscoverer.cpp:87 ui/albumcoverchoicecontroller.cpp:127
@@ -5301,7 +5295,7 @@ msgid "Unknown content-type"
msgstr "Невядомы тып кантэнту"
#: internet/digitally/digitallyimportedclient.cpp:74
-#: internet/lastfm/lastfmservice.cpp:303
+#: internet/lastfm/lastfmservice.cpp:305
msgid "Unknown error"
msgstr "Невядомая памылка"
@@ -5309,11 +5303,11 @@ msgstr "Невядомая памылка"
msgid "Unset cover"
msgstr "Выдаліць вокладку"
-#: ui/mainwindow.cpp:1779
+#: ui/mainwindow.cpp:1805
msgid "Unskip selected tracks"
msgstr ""
-#: ui/mainwindow.cpp:1777
+#: ui/mainwindow.cpp:1803
msgid "Unskip track"
msgstr ""
@@ -5424,7 +5418,7 @@ msgstr ""
msgid "Use temporal noise shaping"
msgstr "Выкарыстоўваць часавое зглажваньне шумоў"
-#: ../bin/src/ui_behavioursettingspage.h:326
+#: ../bin/src/ui_behavioursettingspage.h:365
msgid "Use the system default"
msgstr "Выкарыстоўваць сыстэмныя змоўчаньні"
@@ -5444,7 +5438,7 @@ msgstr "Выкарыстоўваць выраўнаваньне гучнасьц
msgid "Used"
msgstr "Скарыстана"
-#: ui/settingsdialog.cpp:147
+#: ui/settingsdialog.cpp:146
msgid "User interface"
msgstr "Інтэрфэйс"
@@ -5456,7 +5450,7 @@ msgstr "Інтэрфэйс"
msgid "Username"
msgstr "Імя карыстальніку"
-#: ../bin/src/ui_behavioursettingspage.h:340
+#: ../bin/src/ui_behavioursettingspage.h:379
msgid "Using the menu to add a song will..."
msgstr "Выкарыстаньне мэню для даданьня песьні..."
@@ -5473,8 +5467,8 @@ msgstr ""
msgid "Variable bit rate"
msgstr "Пераменны бітрэйт"
-#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:300
-#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:264
+#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:301
+#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:266
msgid "Various artists"
msgstr "Розныя выканаўцы"
@@ -5482,7 +5476,7 @@ msgstr "Розныя выканаўцы"
msgid "Verify Server certificate"
msgstr ""
-#: ui/about.cpp:33
+#: ui/about.cpp:35
#, qt-format
msgid "Version %1"
msgstr "Вэрсія %1"
@@ -5529,11 +5523,11 @@ msgstr "WAV"
msgid "WMA"
msgstr "WMA"
-#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:322
+#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:361
msgid "Warn me when closing a playlist tab"
msgstr ""
-#: core/song.cpp:448 transcoder/transcoder.cpp:256
+#: core/song.cpp:448 transcoder/transcoder.cpp:257
msgid "Wav"
msgstr "Wav"
@@ -5549,20 +5543,28 @@ msgstr "Вэб-сайт"
msgid "Weeks"
msgstr "Тыдняў"
-#: ../bin/src/ui_behavioursettingspage.h:329
+#: ../bin/src/ui_behavioursettingspage.h:368
msgid "When Clementine starts"
msgstr "Падчас запуску Clementine"
+#: ../bin/src/ui_behavioursettingspage.h:427
+msgid "When calculating play counts, use"
+msgstr ""
+
#: ../bin/src/ui_librarysettingspage.h:203
msgid ""
"When looking for album art Clementine will first look for picture files that contain one of these words.\n"
"If there are no matches then it will use the largest image in the directory."
msgstr "Пры пошуку вокладак альбомаў Clementine будзе спачатку шукаць файлы выяў, якія зьмяшчаюць адно з гэтых словаў.\nПры адсутнасьці супадзеньняў ён будзе выкарыстоўваць найбольшую выяву ў каталёгу."
-#: ../bin/src/ui_behavioursettingspage.h:377
+#: ../bin/src/ui_behavioursettingspage.h:416
msgid "When saving a playlist, file paths should be"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:422
+msgid "When sorting artists, albums and titles"
+msgstr ""
+
#: ../bin/src/ui_globalsearchsettingspage.h:147
msgid "When the list is empty..."
msgstr "Калі сьпіс пусты..."
@@ -5621,7 +5623,7 @@ msgstr "Windows Media 40k"
msgid "Windows Media 64k"
msgstr "Windows Media 64k"
-#: core/song.cpp:428 transcoder/transcoder.cpp:253
+#: core/song.cpp:428 transcoder/transcoder.cpp:254
msgid "Windows Media audio"
msgstr "Windows Media audio"
@@ -5635,7 +5637,7 @@ msgid ""
"well?"
msgstr "Перасунуць іншыя песьні з гэтага альбому ў Розныя Выканаўцы?"
-#: ui/mainwindow.cpp:2681
+#: ui/mainwindow.cpp:2707
msgid "Would you like to run a full rescan right now?"
msgstr "Ці жадаеце запусьціць паўторнае сканіраваньне?"
@@ -5643,7 +5645,7 @@ msgstr "Ці жадаеце запусьціць паўторнае сканір
msgid "Write all songs statistics into songs' files"
msgstr "Запісваць усю статыстыку песень ў іх файлы"
-#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:421
msgid "Write metadata"
msgstr ""
@@ -5651,8 +5653,8 @@ msgstr ""
msgid "Wrong username or password."
msgstr "Няправільнае імя ці пароль."
-#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1357
-#: ui/organisedialog.cpp:75 ../bin/src/ui_groupbydialog.h:134
+#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1390
+#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:134
#: ../bin/src/ui_groupbydialog.h:153 ../bin/src/ui_groupbydialog.h:172
#: ../bin/src/ui_trackselectiondialog.h:211 ../bin/src/ui_ripcddialog.h:312
msgid "Year"
@@ -5729,13 +5731,6 @@ msgstr "Вы ня маеце акаунту Spotify Premium"
msgid "You do not have an active subscription"
msgstr "Вы ня маеце актыўнае падпіскі"
-#: ../bin/src/ui_soundcloudsettingspage.h:101
-msgid ""
-"You don't need to be logged in to search and to listen to music on "
-"SoundCloud. However, you need to login to access your playlists and your "
-"stream."
-msgstr ""
-
#: internet/spotify/spotifyservice.cpp:205
msgid ""
"You have been logged out of Spotify, please re-enter your password in the "
@@ -5757,7 +5752,7 @@ msgid ""
"shortcuts in Clementine."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:328
+#: ../bin/src/ui_behavioursettingspage.h:367
msgid "You will need to restart Clementine if you change the language."
msgstr "Пасьля зьмены мовы патрабуецца перазапуск Clementine."
@@ -5833,7 +5828,7 @@ msgstr "паміж"
msgid "biggest first"
msgstr "спачатку найбольшыя"
-#: playlist/playlistview.cpp:241 ui/edittagdialog.cpp:500
+#: playlist/playlistview.cpp:242 ui/edittagdialog.cpp:500
msgid "bpm"
msgstr "bpm"
@@ -5890,7 +5885,7 @@ msgstr "у апошнія"
#: internet/spotify/spotifysettingspage.cpp:62
#: internet/spotify/spotifysettingspage.cpp:63
-#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:245
+#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:246
#: ui/edittagdialog.cpp:502
msgid "kbps"
msgstr "кбіт/с"
diff --git a/src/translations/bg.po b/src/translations/bg.po
index 811a87aee..808cb48c9 100644
--- a/src/translations/bg.po
+++ b/src/translations/bg.po
@@ -15,7 +15,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
-"PO-Revision-Date: 2018-09-17 13:31+0000\n"
+"PO-Revision-Date: 2018-10-20 12:14+0000\n"
"Last-Translator: hatstand \n"
"Language-Team: Bulgarian (http://www.transifex.com/davidsansome/clementine/language/bg/)\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -58,7 +58,7 @@ msgstr " ms"
msgid " pt"
msgstr " точки"
-#: ../bin/src/ui_behavioursettingspage.h:375
+#: ../bin/src/ui_behavioursettingspage.h:414
msgid " s"
msgstr ""
@@ -97,7 +97,7 @@ msgstr "Преди %1 дни"
msgid "%1 on %2"
msgstr "%1 на %2"
-#: playlistparsers/playlistparser.cpp:87
+#: playlistparsers/playlistparser.cpp:89
#, qt-format
msgid "%1 playlists (%2)"
msgstr "%1 списъци с песни (%2)"
@@ -127,12 +127,12 @@ msgstr "%1 намерени песни"
msgid "%1 songs found (showing %2)"
msgstr "%1 намерени песни (%2 показани)"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
#, qt-format
msgid "%1 tracks"
msgstr "%1 песни"
-#: ui/albumcovermanager.cpp:472
+#: ui/albumcovermanager.cpp:474
#, qt-format
msgid "%1 transferred"
msgstr "%1 прехвърлени"
@@ -157,19 +157,19 @@ msgstr "%L1 прослушвания общо"
msgid "%filename%"
msgstr "%filename%"
-#: transcoder/transcodedialog.cpp:214
+#: transcoder/transcodedialog.cpp:216
#, c-format, qt-plural-format
msgctxt ""
msgid "%n failed"
msgstr "%n неуспешно"
-#: transcoder/transcodedialog.cpp:209
+#: transcoder/transcodedialog.cpp:211
#, c-format, qt-plural-format
msgctxt ""
msgid "%n finished"
msgstr "%n завършено"
-#: transcoder/transcodedialog.cpp:203
+#: transcoder/transcodedialog.cpp:205
#, c-format, qt-plural-format
msgctxt ""
msgid "%n remaining"
@@ -268,7 +268,7 @@ msgstr "(различен по време на множество песни)"
msgid ", by "
msgstr ", от"
-#: ui/about.cpp:84
+#: ui/about.cpp:86
msgid "...and all the Amarok contributors"
msgstr "... и всички сътрудници от Amarok"
@@ -288,7 +288,7 @@ msgstr "0px"
msgid "1 day"
msgstr "1 ден"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
msgid "1 track"
msgstr "1 песен"
@@ -400,6 +400,10 @@ msgid ""
"A song will be included in the playlist if it matches these conditions."
msgstr "Една песен ще бъде включена в списъка с песни, ако отговаря на тези критерии."
+#: ../bin/src/ui_behavioursettingspage.h:417
+msgid "A&utomatic"
+msgstr ""
+
#: smartplaylists/searchterm.cpp:396
msgid "A-Z"
msgstr "А-Я"
@@ -428,11 +432,11 @@ msgstr "AIFF"
msgid "ALL GLORY TO THE HYPNOTOAD"
msgstr "Славният хипножабок!"
-#: ui/albumcovermanager.cpp:105 ui/albumcoversearcher.cpp:158
+#: ui/albumcovermanager.cpp:107 ui/albumcoversearcher.cpp:158
msgid "Abort"
msgstr "Отхвърляне"
-#: ui/about.cpp:30
+#: ui/about.cpp:32
#, qt-format
msgid "About %1"
msgstr "Относно %1"
@@ -446,7 +450,7 @@ msgid "About Qt..."
msgstr "Относно QT..."
#: playlist/playlistsaveoptionsdialog.cpp:34
-#: ../bin/src/ui_behavioursettingspage.h:379
+#: ../bin/src/ui_behavioursettingspage.h:418
msgid "Absolute"
msgstr "Абосолютен"
@@ -473,10 +477,6 @@ msgstr "Действие"
msgid "Activate/Deactivate Wii Remote"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:128
-msgid "Activities stream"
-msgstr "Поток от действия"
-
#: internet/podcasts/addpodcastdialog.cpp:63
msgid "Add Podcast"
msgstr "Добави подкаст"
@@ -505,7 +505,7 @@ msgstr "Добавяне на друг поток..."
msgid "Add directory..."
msgstr "Добавяне на папка..."
-#: ui/mainwindow.cpp:2049
+#: ui/mainwindow.cpp:2075
msgid "Add file"
msgstr "Добавяне на файл"
@@ -521,12 +521,12 @@ msgstr "Добавяне на файл(ове) към прекодера"
msgid "Add file..."
msgstr "Добавяне на файл..."
-#: transcoder/transcodedialog.cpp:224
+#: transcoder/transcodedialog.cpp:226
msgid "Add files to transcode"
msgstr "Добавяне на файлове за прекодиране"
-#: transcoder/transcodedialog.cpp:306 ui/mainwindow.cpp:2076
-#: ripper/ripcddialog.cpp:201
+#: transcoder/transcodedialog.cpp:308 ui/mainwindow.cpp:2102
+#: ripper/ripcddialog.cpp:203
msgid "Add folder"
msgstr "Добавяне на папка"
@@ -630,7 +630,7 @@ msgstr "Добавяне към списъците с песни от Spotify"
msgid "Add to Spotify starred"
msgstr "Добавяне към оценените песни от Spotify"
-#: ui/mainwindow.cpp:1850
+#: ui/mainwindow.cpp:1876
msgid "Add to another playlist"
msgstr "Добави в друг списък с песни"
@@ -638,8 +638,8 @@ msgstr "Добави в друг списък с песни"
msgid "Add to playlist"
msgstr "Добавяне към списъка с песни"
-#: ../bin/src/ui_behavioursettingspage.h:359
-#: ../bin/src/ui_behavioursettingspage.h:371
+#: ../bin/src/ui_behavioursettingspage.h:398
+#: ../bin/src/ui_behavioursettingspage.h:410
msgid "Add to the queue"
msgstr "Добави към опашката"
@@ -680,8 +680,8 @@ msgstr "След "
msgid "After copying..."
msgstr "След копиране..."
-#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1349
-#: ui/organisedialog.cpp:64 ui/qtsystemtrayicon.cpp:251
+#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1382
+#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:251
#: ../bin/src/ui_groupbydialog.h:128 ../bin/src/ui_groupbydialog.h:147
#: ../bin/src/ui_groupbydialog.h:166 ../bin/src/ui_albumcoversearcher.h:110
#: ../bin/src/ui_albumcoversearcher.h:112 ../bin/src/ui_edittagdialog.h:723
@@ -693,8 +693,8 @@ msgstr "Албум"
msgid "Album (ideal loudness for all tracks)"
msgstr "Албум (идеална сила на звука за всички песни)"
-#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1363
-#: ui/organisedialog.cpp:67 ../bin/src/ui_groupbydialog.h:130
+#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1396
+#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:130
#: ../bin/src/ui_groupbydialog.h:149 ../bin/src/ui_groupbydialog.h:168
#: ../bin/src/ui_edittagdialog.h:725
msgid "Album artist"
@@ -708,11 +708,11 @@ msgstr "Обложка на албума"
msgid "Album info on jamendo.com..."
msgstr "Информация за албума на jamendo.com..."
-#: ui/albumcovermanager.cpp:129
+#: ui/albumcovermanager.cpp:131
msgid "Albums with covers"
msgstr "Албуми с обложки"
-#: ui/albumcovermanager.cpp:130
+#: ui/albumcovermanager.cpp:132
msgid "Albums without covers"
msgstr "Албуми без обложки"
@@ -720,7 +720,7 @@ msgstr "Албуми без обложки"
msgid "All"
msgstr "Всички"
-#: ui/mainwindow.cpp:158
+#: ui/mainwindow.cpp:160
msgid "All Files (*)"
msgstr "Всички файлове (*)"
@@ -729,11 +729,11 @@ msgctxt "Label for button to enable/disable Hypnotoad background sound."
msgid "All Glory to the Hypnotoad!"
msgstr "Славният хипножабок!"
-#: ui/albumcovermanager.cpp:128
+#: ui/albumcovermanager.cpp:130
msgid "All albums"
msgstr "Всички албуми"
-#: ui/albumcovermanager.cpp:262
+#: ui/albumcovermanager.cpp:264
msgid "All artists"
msgstr "Всички изпълнители"
@@ -741,12 +741,12 @@ msgstr "Всички изпълнители"
msgid "All files (*)"
msgstr "Всички файлове (*)"
-#: playlistparsers/playlistparser.cpp:74
+#: playlistparsers/playlistparser.cpp:76
#, qt-format
msgid "All playlists (%1)"
msgstr "Всички списъци с песни (%1)"
-#: ui/about.cpp:80
+#: ui/about.cpp:82
msgid "All the translators"
msgstr "Всички преводачи"
@@ -770,16 +770,16 @@ msgstr "Позволи mid/side кодиране"
msgid "Alongside the originals"
msgstr "Заедно с оригиналите"
-#: ../bin/src/ui_behavioursettingspage.h:331
-msgid "Always hide the main window"
-msgstr "Винаги скриване на основния прозорец"
+#: ../bin/src/ui_behavioursettingspage.h:370
+msgid "Alwa&ys hide the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:330
-msgid "Always show the main window"
-msgstr "Винаги показвай основния прозорец"
+#: ../bin/src/ui_behavioursettingspage.h:369
+msgid "Always show &the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:345
-#: ../bin/src/ui_behavioursettingspage.h:365
+#: ../bin/src/ui_behavioursettingspage.h:384
+#: ../bin/src/ui_behavioursettingspage.h:404
msgid "Always start playing"
msgstr "Винаги започвай възпроизвеждането"
@@ -793,7 +793,7 @@ msgstr "За да използвате Spotify в Clementine е необходи
msgid "An error occurred loading the iTunes database"
msgstr "Възникна грешка при зареждането на базата данни на iTunes"
-#: playlist/playlist.cpp:424 ui/edittagdialog.cpp:703
+#: playlist/playlist.cpp:454 ui/edittagdialog.cpp:703
#, qt-format
msgid "An error occurred writing metadata to '%1'"
msgstr "Получи се грешка при запис метаданните на '%1'"
@@ -802,7 +802,7 @@ msgstr "Получи се грешка при запис метаданните
msgid "An unspecified error occurred."
msgstr "Възникна неизвестна грешка."
-#: ui/about.cpp:85
+#: ui/about.cpp:87
msgid "And:"
msgstr "И:"
@@ -820,13 +820,13 @@ msgstr "Облик"
msgid "Append files/URLs to the playlist"
msgstr "Добавяне на файлове/URL адреси към списъка с песни"
-#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:454
+#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:455
#: internet/core/internetservice.cpp:48 library/libraryview.cpp:383
#: widgets/fileviewlist.cpp:31
msgid "Append to current playlist"
msgstr "Добавяне към текущия списък с песни"
-#: ../bin/src/ui_behavioursettingspage.h:356
+#: ../bin/src/ui_behavioursettingspage.h:395
msgid "Append to the playlist"
msgstr "Добавяне към списъка с песни"
@@ -849,8 +849,8 @@ msgid ""
"the songs of your library?"
msgstr "Сигурни ли сте, че искате да запишете статистиките на песните във файловете на всички песни в библиотеката си?"
-#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1347
-#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:249
+#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1380
+#: ui/organisedialog.cpp:66 ui/qtsystemtrayicon.cpp:249
#: ../bin/src/ui_groupbydialog.h:129 ../bin/src/ui_groupbydialog.h:148
#: ../bin/src/ui_groupbydialog.h:167 ../bin/src/ui_albumcoversearcher.h:106
#: ../bin/src/ui_albumcoversearcher.h:108 ../bin/src/ui_edittagdialog.h:721
@@ -858,17 +858,17 @@ msgstr "Сигурни ли сте, че искате да запишете ст
msgid "Artist"
msgstr "Изпълнител"
-#: ui/mainwindow.cpp:283
+#: ui/mainwindow.cpp:285
msgid "Artist info"
msgstr "Информация за изпълнителя"
-#: ui/organisedialog.cpp:66
+#: ui/organisedialog.cpp:67
msgid "Artist's initial"
msgstr "Инициали на изпълнителя"
-#: ../bin/src/ui_behavioursettingspage.h:381
-msgid "Ask when saving"
-msgstr "Питай при запис"
+#: ../bin/src/ui_behavioursettingspage.h:420
+msgid "As&k when saving"
+msgstr ""
#: ../bin/src/ui_transcodedialog.h:225
#: ../bin/src/ui_networkremotesettingspage.h:250
@@ -882,7 +882,7 @@ msgstr "Аудио изход"
#: internet/digitally/digitallyimportedsettingspage.cpp:82
#: internet/magnatune/magnatunesettingspage.cpp:117
-#: internet/lastfm/lastfmservice.cpp:268
+#: internet/lastfm/lastfmservice.cpp:270
#: internet/lastfm/lastfmsettingspage.cpp:76
msgid "Authentication failed"
msgstr "Неуспешна идентификация"
@@ -891,7 +891,7 @@ msgstr "Неуспешна идентификация"
msgid "Author"
msgstr "Автор"
-#: ui/about.cpp:68
+#: ui/about.cpp:70
msgid "Authors"
msgstr "Автори"
@@ -901,7 +901,6 @@ msgid "Auto"
msgstr "Автоматично"
#: playlist/playlistsaveoptionsdialog.cpp:32
-#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Automatic"
msgstr "Автоматично"
@@ -921,7 +920,7 @@ msgstr "Налични"
msgid "Average bitrate"
msgstr "Среден битов поток"
-#: covers/coversearchstatisticsdialog.cpp:69
+#: covers/coversearchstatisticsdialog.cpp:71
msgid "Average image size"
msgstr "Среден размер на изображение"
@@ -929,7 +928,7 @@ msgstr "Среден размер на изображение"
msgid "BBC Podcasts"
msgstr "BBC подкасти"
-#: playlist/playlist.cpp:1383 ui/organisedialog.cpp:74
+#: playlist/playlist.cpp:1416 ui/organisedialog.cpp:75
#: ../bin/src/ui_edittagdialog.h:704
msgid "BPM"
msgstr "Темпо"
@@ -950,7 +949,7 @@ msgstr "Фоново изображение"
msgid "Background opacity"
msgstr "Прозрачност на фона"
-#: core/database.cpp:648
+#: core/database.cpp:664
msgid "Backing up database"
msgstr "Архивиране на базата данни"
@@ -974,7 +973,7 @@ msgstr "Основно синьо"
msgid "Basic audio type"
msgstr "Обикновен тип на звука"
-#: ../bin/src/ui_behavioursettingspage.h:318
+#: ../bin/src/ui_behavioursettingspage.h:357
msgid "Behavior"
msgstr "Поведение"
@@ -986,7 +985,7 @@ msgstr "Най-добро"
msgid "Biography"
msgstr ""
-#: playlist/playlist.cpp:1385 ../bin/src/ui_edittagdialog.h:706
+#: playlist/playlist.cpp:1418 ../bin/src/ui_edittagdialog.h:706
#: ../bin/src/ui_streamdetailsdialog.h:139
msgid "Bit rate"
msgstr "Поток в битове"
@@ -1001,7 +1000,7 @@ msgstr "Поток в битове"
msgid "Bitrate"
msgstr "Поток в битове"
-#: ui/organisedialog.cpp:80
+#: ui/organisedialog.cpp:81
msgctxt "Refers to bitrate in file organise dialog."
msgid "Bitrate"
msgstr "Поток в битове"
@@ -1092,7 +1091,7 @@ msgstr "Промяна на бърз клавиш..."
msgid "Change shuffle mode"
msgstr "Смени режим разбъркване"
-#: ../bin/src/ui_behavioursettingspage.h:370
+#: ../bin/src/ui_behavioursettingspage.h:409
msgid "Change the currently playing song"
msgstr ""
@@ -1122,7 +1121,7 @@ msgstr "Провери за нови епизоди"
msgid "Check for updates"
msgstr "Проверка за обновления"
-#: ui/mainwindow.cpp:820
+#: ui/mainwindow.cpp:824
msgid "Check for updates..."
msgstr "Проверка за обновления..."
@@ -1171,7 +1170,7 @@ msgstr "Класически"
msgid "Cleaning up"
msgstr "Почистване"
-#: transcoder/transcodedialog.cpp:61 widgets/lineedit.cpp:41
+#: transcoder/transcodedialog.cpp:63 widgets/lineedit.cpp:41
#: ../bin/src/ui_queuemanager.h:151
msgid "Clear"
msgstr "Изчистване"
@@ -1264,7 +1263,6 @@ msgstr "Щракнете тук, за да добавите списък с пе
msgid "Click to toggle between remaining time and total time"
msgstr "Цъкнете за да превключите между оставащо и пълно време"
-#: ../bin/src/ui_soundcloudsettingspage.h:103
#: ../bin/src/ui_lastfmsettingspage.h:133
#: ../bin/src/ui_googledrivesettingspage.h:102
#: ../bin/src/ui_dropboxsettingspage.h:102
@@ -1291,7 +1289,7 @@ msgstr "Затваря визуализацията"
msgid "Closing this window will cancel the download."
msgstr "Затварянето на този прозорец ще прекрати свалянето"
-#: ui/albumcovermanager.cpp:213
+#: ui/albumcovermanager.cpp:215
msgid "Closing this window will stop searching for album covers."
msgstr "Затварянето на този прозорец ще прекрати търсенето на обложки."
@@ -1311,8 +1309,12 @@ msgstr "Цветове"
msgid "Comma separated list of class:level, level is 0-3"
msgstr "Разделен със запетаи списък с class:level, level (ниво) е 0-3"
-#: playlist/playlist.cpp:1402 smartplaylists/searchterm.cpp:384
-#: ui/organisedialog.cpp:78 ../bin/src/ui_edittagdialog.h:718
+#: ../bin/src/ui_behavioursettingspage.h:425
+msgid "Comma seperated list of prefix words to ignore when sorting"
+msgstr ""
+
+#: playlist/playlist.cpp:1435 smartplaylists/searchterm.cpp:384
+#: ui/organisedialog.cpp:79 ../bin/src/ui_edittagdialog.h:718
msgid "Comment"
msgstr "Коментар"
@@ -1324,8 +1326,8 @@ msgstr "Автоматично довършване на етикетите"
msgid "Complete tags automatically..."
msgstr "Автоматично довършване на етикетите..."
-#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1365
-#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:131
+#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1398
+#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:131
#: ../bin/src/ui_groupbydialog.h:150 ../bin/src/ui_groupbydialog.h:169
msgid "Composer"
msgstr "Композитор"
@@ -1343,10 +1345,6 @@ msgstr "Настройване на Magnatune..."
msgid "Configure Shortcuts"
msgstr "Настройване на бързите клавиши"
-#: internet/soundcloud/soundcloudservice.cpp:381
-msgid "Configure SoundCloud..."
-msgstr ""
-
#: internet/spotify/spotifyservice.cpp:927
msgid "Configure Spotify..."
msgstr "Настройване на Spotify..."
@@ -1355,11 +1353,11 @@ msgstr "Настройване на Spotify..."
msgid "Configure Subsonic..."
msgstr "Конфигурация на Subsonic..."
-#: globalsearch/globalsearchview.cpp:151 globalsearch/globalsearchview.cpp:480
+#: globalsearch/globalsearchview.cpp:152 globalsearch/globalsearchview.cpp:481
msgid "Configure global search..."
msgstr "Конфигурирай глобално търсене"
-#: ui/mainwindow.cpp:659
+#: ui/mainwindow.cpp:661
msgid "Configure library..."
msgstr "Настройване на библиотека..."
@@ -1369,7 +1367,7 @@ msgid "Configure podcasts..."
msgstr "Конфигуриране на подкасти..."
#: internet/core/cloudfileservice.cpp:107
-#: internet/digitally/digitallyimportedservicebase.cpp:182
+#: internet/digitally/digitallyimportedservicebase.cpp:184
#: internet/googledrive/googledriveservice.cpp:231
#: ../bin/src/ui_globalsearchsettingspage.h:146
msgid "Configure..."
@@ -1431,11 +1429,11 @@ msgid "Copy to clipboard"
msgstr "Копиране в буфера"
#: library/libraryview.cpp:419 internet/podcasts/podcastservice.cpp:438
-#: ui/mainwindow.cpp:719 widgets/fileviewlist.cpp:44
+#: ui/mainwindow.cpp:721 widgets/fileviewlist.cpp:44
msgid "Copy to device..."
msgstr "Копирай в устройство..."
-#: devices/deviceview.cpp:228 ui/mainwindow.cpp:709
+#: devices/deviceview.cpp:228 ui/mainwindow.cpp:711
#: widgets/fileviewlist.cpp:40
msgid "Copy to library..."
msgstr "Копиране в библиотека..."
@@ -1450,7 +1448,7 @@ msgid ""
"http://localhost:4040/"
msgstr "Не можах да се свържа със Subsonic, проверете URL адреса на сървъра. Например: http://localhost:4040/"
-#: transcoder/transcoder.cpp:58
+#: transcoder/transcoder.cpp:59
#, qt-format
msgid ""
"Could not create the GStreamer element \"%1\" - make sure you have all the "
@@ -1474,14 +1472,14 @@ msgstr ""
msgid "Couldn't create playlist"
msgstr "Не можах да създам списък с песни."
-#: transcoder/transcoder.cpp:425
+#: transcoder/transcoder.cpp:426
#, qt-format
msgid ""
"Couldn't find a muxer for %1, check you have the correct GStreamer plugins "
"installed"
msgstr "Не мога да намеря миксер за %1, проверете дали имате инсталирани правилните GStreamer плъгини."
-#: transcoder/transcoder.cpp:419
+#: transcoder/transcoder.cpp:420
#, qt-format
msgid ""
"Couldn't find an encoder for %1, check you have the correct GStreamer "
@@ -1522,7 +1520,7 @@ msgstr "Обложката не е зададена"
msgid "Cover art set from %1"
msgstr "Обложката е зададена от %1"
-#: covers/coversearchstatisticsdialog.cpp:59 ui/albumcoversearcher.cpp:100
+#: covers/coversearchstatisticsdialog.cpp:61 ui/albumcoversearcher.cpp:100
#, qt-format
msgid "Covers from %1"
msgstr "Обложки от %1"
@@ -1579,18 +1577,18 @@ msgstr ""
msgid "Dance"
msgstr "Денс"
-#: core/database.cpp:601
+#: core/database.cpp:617
msgid ""
"Database corruption detected. Please read https://github.com/clementine-"
"player/Clementine/wiki/Database-Corruption for instructions on how to "
"recover your database"
msgstr ""
-#: playlist/playlist.cpp:1399 ../bin/src/ui_edittagdialog.h:715
+#: playlist/playlist.cpp:1432 ../bin/src/ui_edittagdialog.h:715
msgid "Date created"
msgstr "Дата на създаване"
-#: playlist/playlist.cpp:1397 ../bin/src/ui_edittagdialog.h:714
+#: playlist/playlist.cpp:1430 ../bin/src/ui_edittagdialog.h:714
msgid "Date modified"
msgstr "Дата на променяне"
@@ -1641,7 +1639,7 @@ msgid "Delete downloaded data"
msgstr "Изтрий свалените данни"
#: devices/deviceview.cpp:408 library/libraryview.cpp:678
-#: ui/mainwindow.cpp:2432 widgets/fileview.cpp:188
+#: ui/mainwindow.cpp:2458 widgets/fileview.cpp:188
msgid "Delete files"
msgstr "Изтриване на файлове"
@@ -1649,7 +1647,7 @@ msgstr "Изтриване на файлове"
msgid "Delete from device..."
msgstr "Изтриване от устройство"
-#: library/libraryview.cpp:422 ui/mainwindow.cpp:722
+#: library/libraryview.cpp:422 ui/mainwindow.cpp:724
#: widgets/fileviewlist.cpp:47
msgid "Delete from disk..."
msgstr "Изтриване от диска..."
@@ -1682,11 +1680,11 @@ msgstr "Изтриване на файлове"
msgid "Depth"
msgstr ""
-#: ui/mainwindow.cpp:1763
+#: ui/mainwindow.cpp:1789
msgid "Dequeue selected tracks"
msgstr "Махни от опашката избраните парчета"
-#: ui/mainwindow.cpp:1761
+#: ui/mainwindow.cpp:1787
msgid "Dequeue track"
msgstr "Махни от опашката парчето"
@@ -1715,7 +1713,7 @@ msgstr "Име на устройство"
msgid "Device properties..."
msgstr "Свойства на устройство..."
-#: ui/mainwindow.cpp:276
+#: ui/mainwindow.cpp:278
msgid "Devices"
msgstr "Устройства"
@@ -1766,8 +1764,8 @@ msgctxt "Refers to search provider's status."
msgid "Disabled"
msgstr "Изключено"
-#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1355
-#: ui/organisedialog.cpp:73 ../bin/src/ui_groupbydialog.h:139
+#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1388
+#: ui/organisedialog.cpp:74 ../bin/src/ui_groupbydialog.h:139
#: ../bin/src/ui_groupbydialog.h:158 ../bin/src/ui_groupbydialog.h:177
#: ../bin/src/ui_edittagdialog.h:722 ../bin/src/ui_ripcddialog.h:313
msgid "Disc"
@@ -1832,7 +1830,7 @@ msgid "Don't shuffle"
msgstr "Не разбърквай"
#: internet/magnatune/magnatunedownloaddialog.cpp:312
-#: ui/albumcovermanager.cpp:215
+#: ui/albumcovermanager.cpp:217
msgid "Don't stop!"
msgstr "Не спирай!"
@@ -1845,11 +1843,11 @@ msgstr "Дарете"
msgid "Double click to open"
msgstr "Двойно цъкване за отваряне"
-#: ../bin/src/ui_behavioursettingspage.h:367
+#: ../bin/src/ui_behavioursettingspage.h:406
msgid "Double clicking a song in the playlist will..."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:353
+#: ../bin/src/ui_behavioursettingspage.h:392
msgid "Double clicking a song will..."
msgstr "Двойното цъкване върху песен ще..."
@@ -1958,7 +1956,7 @@ msgstr "Динамичен случаен микс"
msgid "Edit smart playlist..."
msgstr "Редактиране умен списък с песни..."
-#: ui/mainwindow.cpp:1813
+#: ui/mainwindow.cpp:1839
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Редактиране на етикет \"%1\"..."
@@ -2004,7 +2002,7 @@ msgstr "Разреши еквалазйзера"
msgid "Enable shortcuts only when Clementine is focused"
msgstr "Разреши бързите клавиши, само когато Clementine е активен прозорец"
-#: ../bin/src/ui_behavioursettingspage.h:339
+#: ../bin/src/ui_behavioursettingspage.h:375
msgid "Enable song metadata inline edition with click"
msgstr "Позволи директна поправка на метаданните за песента при щракане"
@@ -2093,12 +2091,12 @@ msgid "Equivalent to --log-levels *:3"
msgstr "Еквивалентно на --log-levels *:3"
#: internet/magnatune/magnatunedownloaddialog.cpp:246
-#: library/libraryview.cpp:672 ui/mainwindow.cpp:2105 ui/mainwindow.cpp:2384
-#: ui/mainwindow.cpp:2563
+#: library/libraryview.cpp:672 ui/mainwindow.cpp:2131 ui/mainwindow.cpp:2410
+#: ui/mainwindow.cpp:2589
msgid "Error"
msgstr "Грешка"
-#: ripper/ripcddialog.cpp:152
+#: ripper/ripcddialog.cpp:154
msgid "Error Ripping CD"
msgstr "Грешка при печене на CD"
@@ -2106,11 +2104,11 @@ msgstr "Грешка при печене на CD"
msgid "Error connecting MTP device"
msgstr "Грешка при свързването на MTP устройство"
-#: ui/organiseerrordialog.cpp:52
+#: ui/organiseerrordialog.cpp:54
msgid "Error copying songs"
msgstr "Грешка при копиране на песни"
-#: ui/organiseerrordialog.cpp:59
+#: ui/organiseerrordialog.cpp:61
msgid "Error deleting songs"
msgstr "Грешка при изтриване на песни"
@@ -2128,12 +2126,12 @@ msgstr "Грешка при изтеглянето на приставка за
msgid "Error loading %1"
msgstr "Грешка при зареждане на %1"
-#: internet/digitally/digitallyimportedservicebase.cpp:200
+#: internet/digitally/digitallyimportedservicebase.cpp:202
#: internet/digitally/digitallyimportedurlhandler.cpp:96
msgid "Error loading di.fm playlist"
msgstr "Грешка при зареждане на di.fm списък с песни"
-#: transcoder/transcoder.cpp:390
+#: transcoder/transcoder.cpp:391
#, qt-format
msgid "Error processing %1: %2"
msgstr "Грешка при обработване на %1: %2"
@@ -2207,16 +2205,16 @@ msgstr "Експортиране на свалени обложки"
msgid "Export embedded covers"
msgstr "Експортиране на вградени обложки"
-#: ui/albumcovermanager.cpp:799 ui/albumcovermanager.cpp:823
+#: ui/albumcovermanager.cpp:801 ui/albumcovermanager.cpp:825
msgid "Export finished"
msgstr "Експортирането приключи"
-#: ui/albumcovermanager.cpp:808
+#: ui/albumcovermanager.cpp:810
#, qt-format
msgid "Exported %1 covers out of %2 (%3 skipped)"
msgstr "Експортирах %1 обложки от %2 (прескочих %3)"
-#: core/song.cpp:430 transcoder/transcoder.cpp:233
+#: core/song.cpp:430 transcoder/transcoder.cpp:234
#: ../bin/src/ui_magnatunedownloaddialog.h:136
#: ../bin/src/ui_magnatunesettingspage.h:170
#: ../bin/src/ui_transcodersettingspage.h:176
@@ -2240,7 +2238,7 @@ msgstr "Заглушаване"
msgid "Fading duration"
msgstr "Продължителност на заглушаване"
-#: ui/mainwindow.cpp:2106
+#: ui/mainwindow.cpp:2132
msgid "Failed reading CD drive"
msgstr "Не успях да прочета CD устройството"
@@ -2275,10 +2273,6 @@ msgstr ""
msgid "Fast"
msgstr "Бързо"
-#: internet/soundcloud/soundcloudservice.cpp:141
-msgid "Favorites"
-msgstr ""
-
#: library/library.cpp:88
msgid "Favourite tracks"
msgstr "Любими парчета"
@@ -2311,7 +2305,7 @@ msgstr "Грешка по време на свалянето на обложка
msgid "File Format"
msgstr "Файлов формат"
-#: ui/organisedialog.cpp:82
+#: ui/organisedialog.cpp:83
msgid "File extension"
msgstr "Файлово разширение"
@@ -2319,11 +2313,11 @@ msgstr "Файлово разширение"
msgid "File formats"
msgstr "Файлови формати"
-#: playlist/playlist.cpp:1389 ../bin/src/ui_edittagdialog.h:716
+#: playlist/playlist.cpp:1422 ../bin/src/ui_edittagdialog.h:716
msgid "File name"
msgstr "Име на файл"
-#: playlist/playlist.cpp:1391
+#: playlist/playlist.cpp:1424
msgid "File name (without path)"
msgstr "Име на файл (без път)"
@@ -2331,11 +2325,11 @@ msgstr "Име на файл (без път)"
msgid "File paths"
msgstr "Пътища към файл"
-#: playlist/playlist.cpp:1393 ../bin/src/ui_edittagdialog.h:710
+#: playlist/playlist.cpp:1426 ../bin/src/ui_edittagdialog.h:710
msgid "File size"
msgstr "Размер на файла"
-#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1395
+#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1428
#: ../bin/src/ui_groupbydialog.h:132 ../bin/src/ui_groupbydialog.h:151
#: ../bin/src/ui_groupbydialog.h:170 ../bin/src/ui_edittagdialog.h:712
msgid "File type"
@@ -2345,7 +2339,7 @@ msgstr "Тип на файла"
msgid "Filename"
msgstr "Име на файл"
-#: ui/mainwindow.cpp:266
+#: ui/mainwindow.cpp:268
msgid "Files"
msgstr "Файлове"
@@ -2458,7 +2452,7 @@ msgstr "Пълни високи"
msgid "Ge&nre"
msgstr ""
-#: ui/settingsdialog.cpp:133
+#: ui/settingsdialog.cpp:132
msgid "General"
msgstr "Общи"
@@ -2466,8 +2460,8 @@ msgstr "Общи"
msgid "General settings"
msgstr "Общи настройки"
-#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1361
-#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:133
+#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1394
+#: ui/organisedialog.cpp:78 ../bin/src/ui_groupbydialog.h:133
#: ../bin/src/ui_groupbydialog.h:152 ../bin/src/ui_groupbydialog.h:171
#: ../bin/src/ui_ripcddialog.h:316
msgid "Genre"
@@ -2487,7 +2481,7 @@ msgstr "Вземете линк за споделяне на този плейл
msgid "Getting channels"
msgstr "Получаване на канали"
-#: internet/digitally/digitallyimportedservicebase.cpp:100
+#: internet/digitally/digitallyimportedservicebase.cpp:102
msgid "Getting streams"
msgstr "Извличане на потоците"
@@ -2511,13 +2505,13 @@ msgstr "Отиване към подпрозореца с предишния с
msgid "Google Drive"
msgstr "Google Drive"
-#: covers/coversearchstatisticsdialog.cpp:53 ui/albumcovermanager.cpp:465
+#: covers/coversearchstatisticsdialog.cpp:55 ui/albumcovermanager.cpp:467
#: ../bin/src/ui_coversearchstatisticsdialog.h:75
#, qt-format
msgid "Got %1 covers out of %2 (%3 failed)"
msgstr "Успешно изтегляне на %1 от общо %2 обложки (неуспешно на %3)"
-#: ../bin/src/ui_behavioursettingspage.h:335
+#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Grey out non existent songs in my playlists"
msgstr "Посивяване на песните, които не съществуват в моят списък с песни"
@@ -2525,7 +2519,7 @@ msgstr "Посивяване на песните, които не съществ
msgid "Group Library by..."
msgstr "Групиране на Библиотеката по..."
-#: globalsearch/globalsearchview.cpp:477 library/libraryfilterwidget.cpp:100
+#: globalsearch/globalsearchview.cpp:478 library/libraryfilterwidget.cpp:100
msgid "Group by"
msgstr "Групиране по"
@@ -2557,8 +2551,8 @@ msgstr "Групиране по Жанр/Албум"
msgid "Group by Genre/Artist/Album"
msgstr "Групиране по Жанр/Изпълнител/Албум"
-#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1369
-#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:141
+#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1402
+#: ui/organisedialog.cpp:71 ../bin/src/ui_groupbydialog.h:141
#: ../bin/src/ui_groupbydialog.h:160 ../bin/src/ui_groupbydialog.h:179
msgid "Grouping"
msgstr "Групиране"
@@ -2646,7 +2640,7 @@ msgstr "Иконите отгоре"
msgid "Identifying song"
msgstr "Идентифициране на песента"
-#: ../bin/src/ui_behavioursettingspage.h:337
+#: ../bin/src/ui_behavioursettingspage.h:373
msgid ""
"If activated, clicking a selected song in the playlist view will let you "
"edit the tag value directly"
@@ -2666,6 +2660,10 @@ msgstr "Ако знаете URL-а на подкаст, въведете го п
msgid "Ignore \"The\" in artist names"
msgstr "Игнориране на \"The\" в имена на изпълнители"
+#: ../bin/src/ui_behavioursettingspage.h:423
+msgid "Ignore prefix word(s)"
+msgstr ""
+
#: ui/albumcoverchoicecontroller.cpp:44
msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
msgstr "Изображения (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
@@ -2747,15 +2745,15 @@ msgstr "Вмъкване..."
msgid "Installed"
msgstr "Инсталирани"
-#: core/database.cpp:585
+#: core/database.cpp:601
msgid "Integrity check"
msgstr "Проверка на интегритета"
-#: ui/mainwindow.cpp:272
+#: ui/mainwindow.cpp:274
msgid "Internet"
msgstr "Интернет"
-#: ui/settingsdialog.cpp:156
+#: ui/settingsdialog.cpp:155
msgid "Internet providers"
msgstr "Интернет доставчици"
@@ -2768,7 +2766,7 @@ msgstr "Интернет услуги"
msgid "Intro tracks"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:280
+#: internet/lastfm/lastfmservice.cpp:282
msgid "Invalid API key"
msgstr "Невалиден API ключ"
@@ -2776,27 +2774,27 @@ msgstr "Невалиден API ключ"
msgid "Invalid URL"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:270
+#: internet/lastfm/lastfmservice.cpp:272
msgid "Invalid format"
msgstr "Невалиден формат"
-#: internet/lastfm/lastfmservice.cpp:266
+#: internet/lastfm/lastfmservice.cpp:268
msgid "Invalid method"
msgstr "Невалиден метод"
-#: internet/lastfm/lastfmservice.cpp:272
+#: internet/lastfm/lastfmservice.cpp:274
msgid "Invalid parameters"
msgstr "Невалидни параметри"
-#: internet/lastfm/lastfmservice.cpp:274
+#: internet/lastfm/lastfmservice.cpp:276
msgid "Invalid resource specified"
msgstr "Невалиден ресурс"
-#: internet/lastfm/lastfmservice.cpp:264
+#: internet/lastfm/lastfmservice.cpp:266
msgid "Invalid service"
msgstr "Невалидна услуга"
-#: internet/lastfm/lastfmservice.cpp:278
+#: internet/lastfm/lastfmservice.cpp:280
msgid "Invalid session key"
msgstr "Невалиден ключ за сесия"
@@ -2828,7 +2826,7 @@ msgstr "Най-високо класираните парчета в Jamendo т
msgid "Jamendo database"
msgstr "Jamendo база от данни"
-#: ../bin/src/ui_behavioursettingspage.h:350
+#: ../bin/src/ui_behavioursettingspage.h:389
msgid "Jump to previous song right away"
msgstr "Премини към предната песен веднага"
@@ -2848,7 +2846,7 @@ msgstr "Пази бутоните за %1 секундa..."
msgid "Keep buttons for %1 seconds..."
msgstr "Пази бутоните за %1 секунди..."
-#: ../bin/src/ui_behavioursettingspage.h:321
+#: ../bin/src/ui_behavioursettingspage.h:360
msgid "Keep running in the background when the window is closed"
msgstr "Продължи ипзълнението и във фонов режим, дори когато прозореца е затворен"
@@ -2865,7 +2863,7 @@ msgstr "Котенца"
msgid "Kuduro"
msgstr "Kuduro"
-#: ../bin/src/ui_behavioursettingspage.h:323
+#: ../bin/src/ui_behavioursettingspage.h:362
msgid "Language"
msgstr "Език"
@@ -2897,7 +2895,7 @@ msgstr "Голяма странична лента"
msgid "Last played"
msgstr "Последно изпълнение"
-#: playlist/playlist.cpp:1378 ../bin/src/ui_edittagdialog.h:707
+#: playlist/playlist.cpp:1411 ../bin/src/ui_edittagdialog.h:707
msgctxt "A playlist's tag."
msgid "Last played"
msgstr "Последно изпълнение"
@@ -2906,11 +2904,11 @@ msgstr "Последно изпълнение"
msgid "Last.fm"
msgstr "Last.fm"
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
msgid "Last.fm Authentication"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:287
+#: internet/lastfm/lastfmservice.cpp:289
msgid "Last.fm is currently busy, please try again in a few minutes"
msgstr "Last.fm е претоварен в момента, моля, опитайте след няколко минути"
@@ -2934,12 +2932,12 @@ msgstr "Най-малко любими песни"
msgid "Left"
msgstr "Ляво"
-#: playlist/playlist.cpp:1351 ui/organisedialog.cpp:79
+#: playlist/playlist.cpp:1384 ui/organisedialog.cpp:80
#: ui/qtsystemtrayicon.cpp:254 ../bin/src/ui_edittagdialog.h:702
msgid "Length"
msgstr "Дължина"
-#: ui/mainwindow.cpp:251 ui/mainwindow.cpp:263
+#: ui/mainwindow.cpp:253 ui/mainwindow.cpp:265
#: ../bin/src/ui_seafilesettingspage.h:177
msgid "Library"
msgstr "Библиотека"
@@ -2948,7 +2946,7 @@ msgstr "Библиотека"
msgid "Library advanced grouping"
msgstr "Разширено групиране на Библиотеката"
-#: ui/mainwindow.cpp:2683
+#: ui/mainwindow.cpp:2709
msgid "Library rescan notice"
msgstr "Известие за повторно сканиране на библиотеката"
@@ -2984,7 +2982,7 @@ msgstr "Зареждане на обложка от диск"
msgid "Load cover from disk..."
msgstr "Зареждане на обложката от диска..."
-#: playlist/playlistcontainer.cpp:298
+#: playlist/playlistcontainer.cpp:300
msgid "Load playlist"
msgstr "Зареждане на списък с песни"
@@ -3004,7 +3002,7 @@ msgstr "Зареждане на iPod база данни"
msgid "Loading smart playlist"
msgstr "Зареждане на умен списък с песни"
-#: library/librarymodel.cpp:169
+#: library/librarymodel.cpp:170
msgid "Loading songs"
msgstr "Зареждане на песни"
@@ -3022,7 +3020,7 @@ msgstr "Зареждане на песни"
msgid "Loading tracks info"
msgstr "Зареждане на информация за песните"
-#: library/librarymodel.cpp:164
+#: library/librarymodel.cpp:165
#: internet/podcasts/podcastdiscoverymodel.cpp:105 widgets/prettyimage.cpp:168
#: widgets/widgetfadehelper.cpp:96 ../bin/src/ui_addpodcastdialog.h:179
#: ../bin/src/ui_searchpreview.h:105 ../bin/src/ui_organisedialog.h:261
@@ -3035,7 +3033,6 @@ msgstr "Зареждане на файлове/URL адреси, заместв
#: ../bin/src/ui_digitallyimportedsettingspage.h:162
#: ../bin/src/ui_magnatunesettingspage.h:163
-#: ../bin/src/ui_soundcloudsettingspage.h:102
#: ../bin/src/ui_spotifysettingspage.h:210
#: ../bin/src/ui_subsonicsettingspage.h:137
#: ../bin/src/ui_lastfmsettingspage.h:132
@@ -3076,7 +3073,7 @@ msgstr "Ниско (256x256)"
msgid "Low complexity profile (LC)"
msgstr "Low complexity profile (LC)"
-#: ui/organisedialog.cpp:71 ../bin/src/ui_songinfosettingspage.h:158
+#: ui/organisedialog.cpp:72 ../bin/src/ui_songinfosettingspage.h:158
msgid "Lyrics"
msgstr "Текстове на песни"
@@ -3089,11 +3086,11 @@ msgstr "Текстове на песни от %1"
msgid "Lyrics from the tag"
msgstr ""
-#: transcoder/transcoder.cpp:235
+#: transcoder/transcoder.cpp:236
msgid "M4A AAC"
msgstr "M4A AAC"
-#: core/song.cpp:436 transcoder/transcoder.cpp:238
+#: core/song.cpp:436 transcoder/transcoder.cpp:239
#: ../bin/src/ui_transcodersettingspage.h:174
msgid "MP3"
msgstr "MP3"
@@ -3144,7 +3141,7 @@ msgstr "Нека бъде!"
msgid "Make playlist available offline"
msgstr "Списъкът с песни да е наличен в режим извън мрежа"
-#: internet/lastfm/lastfmservice.cpp:299
+#: internet/lastfm/lastfmservice.cpp:301
msgid "Malformed response"
msgstr "Грешка при отговора"
@@ -3185,7 +3182,7 @@ msgstr "Съвпадане на един или повече терминала
msgid "Maximum bitrate"
msgstr "Максимален битов поток"
-#: ripper/ripcddialog.cpp:153
+#: ripper/ripcddialog.cpp:155
msgid "Media has changed. Reloading"
msgstr "Медията се промени. Презареждам"
@@ -3235,7 +3232,7 @@ msgstr "Моно възпроизвеждане"
msgid "Months"
msgstr "Месеца"
-#: playlist/playlist.cpp:1406
+#: playlist/playlist.cpp:1439
msgid "Mood"
msgstr "Статус"
@@ -3265,7 +3262,7 @@ msgstr "Точки за монтиране"
msgid "Move down"
msgstr "Преместване надолу"
-#: ui/mainwindow.cpp:712 widgets/fileviewlist.cpp:42
+#: ui/mainwindow.cpp:714 widgets/fileviewlist.cpp:42
msgid "Move to library..."
msgstr "Преместване в библиотека..."
@@ -3274,7 +3271,7 @@ msgstr "Преместване в библиотека..."
msgid "Move up"
msgstr "Преместване нагоре"
-#: transcoder/transcodedialog.cpp:225 ui/mainwindow.cpp:2050
+#: transcoder/transcodedialog.cpp:227 ui/mainwindow.cpp:2076
msgid "Music"
msgstr "Музика"
@@ -3321,8 +3318,8 @@ msgstr "Никога"
msgid "Never played"
msgstr "Никога пускани"
-#: ../bin/src/ui_behavioursettingspage.h:343
-#: ../bin/src/ui_behavioursettingspage.h:363
+#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:402
msgid "Never start playing"
msgstr "Никога да не се пуска възпроизвеждането"
@@ -3332,7 +3329,7 @@ msgstr "Никога да не се пуска възпроизвежданет
msgid "New folder"
msgstr "Нова папка"
-#: ui/mainwindow.cpp:1867 ../bin/src/ui_mainwindow.h:709
+#: ui/mainwindow.cpp:1893 ../bin/src/ui_mainwindow.h:709
msgid "New playlist"
msgstr "Нов списък с песни"
@@ -3377,7 +3374,7 @@ msgstr "Без анализатор"
msgid "No background image"
msgstr "Няма фоново изображение"
-#: ui/albumcovermanager.cpp:800
+#: ui/albumcovermanager.cpp:802
msgid "No covers to export."
msgstr "Няма обложки за експортиране."
@@ -3385,7 +3382,7 @@ msgstr "Няма обложки за експортиране."
msgid "No long blocks"
msgstr "No long blocks"
-#: playlist/playlistcontainer.cpp:383
+#: playlist/playlistcontainer.cpp:385
msgid ""
"No matches found. Clear the search box to show the whole playlist again."
msgstr "Няма намерени съвпадения. Изтрийте текста, за да видите отново цялото съдържание."
@@ -3399,7 +3396,7 @@ msgstr "No short blocks"
msgid "None"
msgstr "Никаква"
-#: library/libraryview.cpp:673 ui/mainwindow.cpp:2385 ui/mainwindow.cpp:2564
+#: library/libraryview.cpp:673 ui/mainwindow.cpp:2411 ui/mainwindow.cpp:2590
msgid "None of the selected songs were suitable for copying to a device"
msgstr "Никоя от избраните песни бяха сподобни да бъдат копирани на устройството"
@@ -3411,6 +3408,10 @@ msgstr "Нормално"
msgid "Normal block type"
msgstr "Normal block type"
+#: ../bin/src/ui_behavioursettingspage.h:428
+msgid "Normal duration (at least 4 minutes or half the track length)"
+msgstr ""
+
#: playlist/playlistsequence.cpp:203
msgid "Not available while using a dynamic playlist"
msgstr "Не е налично при използването на динамичен списък с песни"
@@ -3419,19 +3420,19 @@ msgstr "Не е налично при използването на динами
msgid "Not connected"
msgstr "Не е свързан"
-#: internet/lastfm/lastfmservice.cpp:290
+#: internet/lastfm/lastfmservice.cpp:292
msgid "Not enough content"
msgstr "Недостатъчно съдържание"
-#: internet/lastfm/lastfmservice.cpp:294
+#: internet/lastfm/lastfmservice.cpp:296
msgid "Not enough fans"
msgstr "Недостатъчно почитатели"
-#: internet/lastfm/lastfmservice.cpp:292
+#: internet/lastfm/lastfmservice.cpp:294
msgid "Not enough members"
msgstr "Недостатъчно членове"
-#: internet/lastfm/lastfmservice.cpp:296
+#: internet/lastfm/lastfmservice.cpp:298
msgid "Not enough neighbors"
msgstr "Недостатъчно съседи"
@@ -3439,7 +3440,7 @@ msgstr "Недостатъчно съседи"
msgid "Not installed"
msgstr "Не е инсталиран"
-#: globalsearch/globalsearchsettingspage.cpp:120
+#: globalsearch/globalsearchsettingspage.cpp:122
#: globalsearch/searchproviderstatuswidget.cpp:47
msgid "Not logged in"
msgstr "Не сте вписан"
@@ -3476,19 +3477,19 @@ msgstr "Изключено"
msgid "Ogg FLAC"
msgstr ""
-#: transcoder/transcoder.cpp:244
+#: transcoder/transcoder.cpp:245
msgid "Ogg Flac"
msgstr "Ogg Flac"
-#: core/song.cpp:444 transcoder/transcoder.cpp:250
+#: core/song.cpp:444 transcoder/transcoder.cpp:251
msgid "Ogg Opus"
msgstr "Ogg Opus"
-#: core/song.cpp:440 transcoder/transcoder.cpp:247
+#: core/song.cpp:440 transcoder/transcoder.cpp:248
msgid "Ogg Speex"
msgstr "Ogg Speex"
-#: core/song.cpp:442 transcoder/transcoder.cpp:241
+#: core/song.cpp:442 transcoder/transcoder.cpp:242
#: ../bin/src/ui_magnatunedownloaddialog.h:135
#: ../bin/src/ui_magnatunesettingspage.h:169
msgid "Ogg Vorbis"
@@ -3522,13 +3523,12 @@ msgstr "Покажи само първите"
msgid "Opacity"
msgstr "Непрозрачност"
-#: internet/digitally/digitallyimportedservicebase.cpp:175
+#: internet/digitally/digitallyimportedservicebase.cpp:177
#: internet/icecast/icecastservice.cpp:298
#: internet/jamendo/jamendoservice.cpp:427
#: internet/magnatune/magnatuneservice.cpp:287
#: internet/somafm/somafmservice.cpp:102
#: internet/intergalacticfm/intergalacticfmservice.cpp:102
-#: internet/soundcloud/soundcloudservice.cpp:377
#, qt-format
msgid "Open %1 in browser"
msgstr "Отвори %1 в браузъра"
@@ -3545,7 +3545,7 @@ msgstr "Отваряне на OPML файл"
msgid "Open OPML file..."
msgstr "Отваряне на OPML файл..."
-#: transcoder/transcodedialog.cpp:240
+#: transcoder/transcodedialog.cpp:242
msgid "Open a directory to import music from"
msgstr "Отваряне на папка за импортиране на музика"
@@ -3561,13 +3561,13 @@ msgstr "Отваряне на файл..."
msgid "Open in Google Drive"
msgstr "Отвори в Google Drive"
-#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:460
+#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:461
#: internet/core/internetservice.cpp:62 library/libraryview.cpp:389
#: widgets/fileviewlist.cpp:36
msgid "Open in new playlist"
msgstr "Отворяне в нов списък с песни"
-#: ../bin/src/ui_behavioursettingspage.h:358
+#: ../bin/src/ui_behavioursettingspage.h:397
msgctxt "Refers to behavior settings in Clementine settings page."
msgid "Open in new playlist"
msgstr "Отваряне в нов списък с песни"
@@ -3581,7 +3581,7 @@ msgstr ""
msgid "Open..."
msgstr "Отваряне..."
-#: internet/lastfm/lastfmservice.cpp:276
+#: internet/lastfm/lastfmservice.cpp:278
msgid "Operation failed"
msgstr "Неуспешна операция"
@@ -3607,7 +3607,7 @@ msgstr "Opus"
msgid "Organise Files"
msgstr "Организиране на Файлове"
-#: library/libraryview.cpp:416 ui/mainwindow.cpp:715
+#: library/libraryview.cpp:416 ui/mainwindow.cpp:717
msgid "Organise files..."
msgstr "Организиране на файлове..."
@@ -3619,8 +3619,8 @@ msgstr "Файловете се организират"
msgid "Original tags"
msgstr "Оригинални етикети"
-#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1359
-#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:135
+#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1392
+#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:135
#: ../bin/src/ui_groupbydialog.h:154 ../bin/src/ui_groupbydialog.h:173
msgid "Original year"
msgstr ""
@@ -3691,7 +3691,7 @@ msgstr "Парти"
msgid "Password"
msgstr "Парола"
-#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1160 ui/mainwindow.cpp:1663
+#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1170 ui/mainwindow.cpp:1689
#: ui/qtsystemtrayicon.cpp:189 wiimotedev/wiimotesettingspage.cpp:114
msgid "Pause"
msgstr "Пауза"
@@ -3704,8 +3704,8 @@ msgstr "На пауза"
msgid "Paused"
msgstr "На пауза"
-#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1367
-#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:140
+#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1400
+#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:140
#: ../bin/src/ui_groupbydialog.h:159 ../bin/src/ui_groupbydialog.h:178
#: ../bin/src/ui_edittagdialog.h:727
msgid "Performer"
@@ -3719,14 +3719,14 @@ msgstr "Пиксел"
msgid "Plain sidebar"
msgstr "Стандартна странична лента"
-#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:676 ui/mainwindow.cpp:1126
-#: ui/mainwindow.cpp:1145 ui/mainwindow.cpp:1667 ui/qtsystemtrayicon.cpp:177
+#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:678 ui/mainwindow.cpp:1134
+#: ui/mainwindow.cpp:1155 ui/mainwindow.cpp:1693 ui/qtsystemtrayicon.cpp:177
#: ui/qtsystemtrayicon.cpp:203 wiimotedev/wiimotesettingspage.cpp:107
#: ../bin/src/ui_mainwindow.h:675
msgid "Play"
msgstr "Възпроизвеждане"
-#: playlist/playlist.cpp:1374 ../bin/src/ui_edittagdialog.h:703
+#: playlist/playlist.cpp:1407 ../bin/src/ui_edittagdialog.h:703
msgid "Play count"
msgstr "Брой изпълнения"
@@ -3734,16 +3734,16 @@ msgstr "Брой изпълнения"
msgid "Play if stopped, pause if playing"
msgstr "Продължаване ако е спряно и обратно"
-#: ../bin/src/ui_behavioursettingspage.h:344
-#: ../bin/src/ui_behavioursettingspage.h:364
+#: ../bin/src/ui_behavioursettingspage.h:383
+#: ../bin/src/ui_behavioursettingspage.h:403
msgid "Play if there is nothing already playing"
msgstr "Възпроизвеждане, ако има песен, която вече се изпълнява"
-#: library/libraryview.cpp:396 ui/mainwindow.cpp:1774
+#: library/libraryview.cpp:396 ui/mainwindow.cpp:1800
msgid "Play next"
msgstr ""
-#: ui/mainwindow.cpp:1772
+#: ui/mainwindow.cpp:1798
msgid "Play selected tracks next"
msgstr ""
@@ -3763,7 +3763,7 @@ msgstr "Възпроизвеждане"
msgid "Player options"
msgstr "Настройки на плеър"
-#: playlist/playlistcontainer.cpp:294 playlist/playlistlistcontainer.cpp:325
+#: playlist/playlistcontainer.cpp:296 playlist/playlistlistcontainer.cpp:325
#: playlist/playlistmanager.cpp:87 playlist/playlistmanager.cpp:156
#: playlist/playlistmanager.cpp:525 playlist/playlisttabbar.cpp:366
msgid "Playlist"
@@ -3782,7 +3782,7 @@ msgstr "Настройки на списъка с песни"
msgid "Playlist type"
msgstr "Тип на списъка с песни"
-#: internet/soundcloud/soundcloudservice.cpp:133 ui/mainwindow.cpp:269
+#: ui/mainwindow.cpp:271
msgid "Playlists"
msgstr "Списъци с песни"
@@ -3790,7 +3790,7 @@ msgstr "Списъци с песни"
msgid "Please close your browser and return to Clementine."
msgstr "Моля изберете вашия браузър и се върнете към Clementine"
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
#, qt-format
msgid "Please open this URL in your browser: %1"
msgstr ""
@@ -3873,7 +3873,7 @@ msgstr "Натиснете клавиш"
msgid "Press a key combination to use for %1..."
msgstr "Натиснете клавишна комбинация, която да използвате за %1..."
-#: ../bin/src/ui_behavioursettingspage.h:347
+#: ../bin/src/ui_behavioursettingspage.h:386
msgid "Pressing \"Previous\" in player will..."
msgstr "Натискане на \"Предишна\" в плейъра ще..."
@@ -3950,12 +3950,12 @@ msgstr "Заявящо устойство..."
msgid "Queue Manager"
msgstr "Мениджър на опашката"
-#: ui/mainwindow.cpp:1767
+#: ui/mainwindow.cpp:1793
msgid "Queue selected tracks"
msgstr "Пратете избраните песни на опашката"
-#: globalsearch/globalsearchview.cpp:464 library/libraryview.cpp:393
-#: ui/mainwindow.cpp:1765
+#: globalsearch/globalsearchview.cpp:465 library/libraryview.cpp:393
+#: ui/mainwindow.cpp:1791
msgid "Queue track"
msgstr "Прати избрана песен на опашката"
@@ -4004,12 +4004,12 @@ msgstr "Задай рейтинг на текущата песен 4 звезд
msgid "Rate the current song 5 stars"
msgstr "Задай рейтинг на текущата песен 5 звезди"
-#: playlist/playlist.cpp:1372 ../bin/src/ui_edittagdialog.h:711
+#: playlist/playlist.cpp:1405 ../bin/src/ui_edittagdialog.h:711
msgid "Rating"
msgstr "Рейтинг"
#: internet/magnatune/magnatunedownloaddialog.cpp:309
-#: ui/albumcovermanager.cpp:212
+#: ui/albumcovermanager.cpp:214
msgid "Really cancel?"
msgstr "Наистина ли искаш да затвориш?"
@@ -4036,7 +4036,7 @@ msgstr "Презареди каналите"
msgid "Refresh station list"
msgstr "Презареди листа със станциите"
-#: internet/digitally/digitallyimportedservicebase.cpp:178
+#: internet/digitally/digitallyimportedservicebase.cpp:180
msgid "Refresh streams"
msgstr "Обновяване на потоците"
@@ -4045,7 +4045,7 @@ msgid "Reggae"
msgstr "Реге"
#: playlist/playlistsaveoptionsdialog.cpp:33
-#: ../bin/src/ui_behavioursettingspage.h:380
+#: ../bin/src/ui_behavioursettingspage.h:419
msgid "Relative"
msgstr "Релативен"
@@ -4053,9 +4053,9 @@ msgstr "Релативен"
msgid "Remember Wii remote swing"
msgstr "Запомни Wiiremote суинг"
-#: ../bin/src/ui_behavioursettingspage.h:332
-msgid "Remember from last time"
-msgstr "Помни от предния път"
+#: ../bin/src/ui_behavioursettingspage.h:371
+msgid "Remember from &last time"
+msgstr ""
#: ../bin/src/ui_playlistsaveoptionsdialog.h:99
msgid "Remember my choice"
@@ -4127,13 +4127,13 @@ msgstr "Повтаряне на списъка с песни"
msgid "Repeat track"
msgstr "Повтаряне на песента"
-#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:457
+#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:458
#: internet/core/internetservice.cpp:55 library/libraryview.cpp:386
#: widgets/fileviewlist.cpp:34
msgid "Replace current playlist"
msgstr "Заместване на текущия списък с песни"
-#: ../bin/src/ui_behavioursettingspage.h:357
+#: ../bin/src/ui_behavioursettingspage.h:396
msgid "Replace the playlist"
msgstr "Заместване на списъка с песни"
@@ -4165,7 +4165,7 @@ msgstr "Възстановяване"
msgid "Reset play counts"
msgstr "Изчистване на броя възпроизвеждания"
-#: ../bin/src/ui_behavioursettingspage.h:351
+#: ../bin/src/ui_behavioursettingspage.h:390
msgid "Restart song, then jump to previous if pressed again"
msgstr "Започни песента отначало, после премини към предната, ако се натисне още веднъж"
@@ -4178,7 +4178,7 @@ msgstr "Рестартиране на песента, или свирене на
msgid "Restrict to ASCII characters"
msgstr "Само ASCII символи"
-#: ../bin/src/ui_behavioursettingspage.h:333
+#: ../bin/src/ui_behavioursettingspage.h:376
msgid "Resume playback on start"
msgstr "Продължаване на възпроизвеждането при стартиране"
@@ -4194,7 +4194,7 @@ msgstr "Дясно"
msgid "Rip"
msgstr "Печене"
-#: ripper/ripcddialog.cpp:105
+#: ripper/ripcddialog.cpp:107
msgid "Rip CD"
msgstr "Печене на CD"
@@ -4232,13 +4232,13 @@ msgstr "Безопасно премахване на устройството"
msgid "Safely remove the device after copying"
msgstr "Безопасно премахване на устройството след приключване на копирането"
-#: playlist/playlist.cpp:1387 ../bin/src/ui_edittagdialog.h:708
+#: playlist/playlist.cpp:1420 ../bin/src/ui_edittagdialog.h:708
#: ../bin/src/ui_playbacksettingspage.h:371
#: ../bin/src/ui_streamdetailsdialog.h:141
msgid "Sample rate"
msgstr "Дискретизация"
-#: ui/organisedialog.cpp:81
+#: ui/organisedialog.cpp:82
msgid "Samplerate"
msgstr "Дискретизация"
@@ -4312,7 +4312,7 @@ msgstr "Scalable sampling rate profile (SSR)"
msgid "Scale size"
msgstr "Размер на омащабяването"
-#: playlist/playlist.cpp:1380 ../bin/src/ui_edittagdialog.h:709
+#: playlist/playlist.cpp:1413 ../bin/src/ui_edittagdialog.h:709
msgid "Score"
msgstr "Резултат"
@@ -4320,7 +4320,7 @@ msgstr "Резултат"
msgid "Scrobble tracks that I listen to"
msgstr "Запази песните, които слушам"
-#: ../bin/src/ui_behavioursettingspage.h:320
+#: ../bin/src/ui_behavioursettingspage.h:359
msgid "Scroll over icon to change track"
msgstr ""
@@ -4334,7 +4334,7 @@ msgstr "Seafile"
msgid "Search"
msgstr "Търсене"
-#: ui/mainwindow.cpp:260 ../bin/src/ui_globalsearchsettingspage.h:141
+#: ui/mainwindow.cpp:262 ../bin/src/ui_globalsearchsettingspage.h:141
msgctxt "Global search settings dialog title."
msgid "Search"
msgstr "Търсене"
@@ -4359,7 +4359,7 @@ msgstr "Търсене в Subsonic"
msgid "Search automatically"
msgstr "Автоматично търсене"
-#: ui/mainwindow.cpp:696
+#: ui/mainwindow.cpp:698
msgid "Search for album"
msgstr ""
@@ -4372,11 +4372,11 @@ msgstr "Търси за обложки"
msgid "Search for anything"
msgstr "Търсене из всички"
-#: ui/mainwindow.cpp:693
+#: ui/mainwindow.cpp:695
msgid "Search for artist"
msgstr ""
-#: globalsearch/globalsearchview.cpp:473 library/libraryview.cpp:401
+#: globalsearch/globalsearchview.cpp:474 library/libraryview.cpp:401
msgid "Search for this"
msgstr ""
@@ -4396,7 +4396,6 @@ msgstr "Режим \"Търсене\""
msgid "Search options"
msgstr "Опции при търсене"
-#: internet/soundcloud/soundcloudservice.cpp:119
#: internet/spotify/spotifyservice.cpp:400
msgid "Search results"
msgstr "Резултати от търсенето"
@@ -4430,7 +4429,7 @@ msgstr "Следене на текущата песен с относителн
msgid "Seek the currently playing track to an absolute position"
msgstr "Следене на текущата песен с абсолютно позиция"
-#: ../bin/src/ui_behavioursettingspage.h:373
+#: ../bin/src/ui_behavioursettingspage.h:412
msgid "Seeking using a keyboard shortcut or mouse wheel"
msgstr ""
@@ -4486,11 +4485,11 @@ msgstr "URL адрес на сървъра"
msgid "Server details"
msgstr "Подробности за сървъра"
-#: internet/lastfm/lastfmservice.cpp:282
+#: internet/lastfm/lastfmservice.cpp:284
msgid "Service offline"
msgstr "Услугата е недостъпна"
-#: ui/mainwindow.cpp:1812
+#: ui/mainwindow.cpp:1838
#, qt-format
msgid "Set %1 to \"%2\"..."
msgstr "Задай %1 да е %2\"..."
@@ -4507,6 +4506,10 @@ msgstr "Избери стойност за всички песни"
msgid "Settings"
msgstr "Настройки"
+#: ../bin/src/ui_behavioursettingspage.h:429
+msgid "Short duration (at least 1 minute or half the track length)"
+msgstr ""
+
#: ../bin/src/ui_globalshortcutssettingspage.h:172
msgid "Shortcut"
msgstr "Бърз клавиш"
@@ -4566,7 +4569,7 @@ msgstr "Показване на красиво OSD"
msgid "Show above status bar"
msgstr "Покажи над status bar-а"
-#: ui/mainwindow.cpp:643
+#: ui/mainwindow.cpp:645
msgid "Show all songs"
msgstr "Показвай всички песни"
@@ -4586,12 +4589,12 @@ msgstr "Покажи разделители"
msgid "Show fullsize..."
msgstr "Покажи в пълен размер..."
-#: library/libraryview.cpp:433 ui/mainwindow.cpp:725
+#: library/libraryview.cpp:433 ui/mainwindow.cpp:727
#: widgets/fileviewlist.cpp:53
msgid "Show in file browser..."
msgstr "Покажи във файловия мениджър..."
-#: ui/mainwindow.cpp:727
+#: ui/mainwindow.cpp:729
msgid "Show in library..."
msgstr "Показване в библиотеката..."
@@ -4603,11 +4606,11 @@ msgstr "Показване в смесени изпълнители"
msgid "Show moodbar"
msgstr "Показване на лента по настроение"
-#: ui/mainwindow.cpp:645
+#: ui/mainwindow.cpp:647
msgid "Show only duplicates"
msgstr "Показвай само дубликати"
-#: ui/mainwindow.cpp:647
+#: ui/mainwindow.cpp:649
msgid "Show only untagged"
msgstr "Показване само на неотбелязани"
@@ -4631,7 +4634,7 @@ msgstr "Показване на бутона \"харесвам\""
msgid "Show the scrobble button in the main window"
msgstr "Показване на бутона скроблинг в главния прозорец"
-#: ../bin/src/ui_behavioursettingspage.h:319
+#: ../bin/src/ui_behavioursettingspage.h:358
msgid "Show tray icon"
msgstr "Показване на икона в областта за уведомяване"
@@ -4691,7 +4694,7 @@ msgstr "Ска"
msgid "Skip backwards in playlist"
msgstr "Прескачане назад в списъка с песни"
-#: playlist/playlist.cpp:1376 ../bin/src/ui_edittagdialog.h:705
+#: playlist/playlist.cpp:1409 ../bin/src/ui_edittagdialog.h:705
msgid "Skip count"
msgstr "Презключи броя"
@@ -4699,11 +4702,11 @@ msgstr "Презключи броя"
msgid "Skip forwards in playlist"
msgstr "Прескачане напред в списъка с песни"
-#: ui/mainwindow.cpp:1783
+#: ui/mainwindow.cpp:1809
msgid "Skip selected tracks"
msgstr "Прескачане на избраните песни"
-#: ui/mainwindow.cpp:1781
+#: ui/mainwindow.cpp:1807
msgid "Skip track"
msgstr "Прескачане на песента"
@@ -4719,7 +4722,7 @@ msgstr "Малка странична лента"
msgid "Smart playlist"
msgstr "Умен списък с песни"
-#: library/librarymodel.cpp:1367
+#: library/librarymodel.cpp:1368
msgid "Smart playlists"
msgstr "Умни списъци с песни"
@@ -4735,7 +4738,7 @@ msgstr "Лек рок"
msgid "Song Information"
msgstr "Информация за песен"
-#: ui/mainwindow.cpp:280
+#: ui/mainwindow.cpp:282
msgid "Song info"
msgstr "Информация за песен"
@@ -4767,11 +4770,7 @@ msgstr "Сортиране на песните по"
msgid "Sorting"
msgstr "Сортиране"
-#: ../bin/src/ui_soundcloudsettingspage.h:100
-msgid "SoundCloud"
-msgstr "SoundCloud"
-
-#: playlist/playlist.cpp:1404
+#: playlist/playlist.cpp:1437
msgid "Source"
msgstr "Източник"
@@ -4817,7 +4816,7 @@ msgstr "Стандартно"
msgid "Starred"
msgstr "Със звезда"
-#: ripper/ripcddialog.cpp:72
+#: ripper/ripcddialog.cpp:74
msgid "Start ripping"
msgstr "Започни печене"
@@ -4825,18 +4824,17 @@ msgstr "Започни печене"
msgid "Start the playlist currently playing"
msgstr "Стартиране на текущо възпроизвеждания списък с песни"
-#: transcoder/transcodedialog.cpp:90
+#: transcoder/transcodedialog.cpp:92
msgid "Start transcoding"
msgstr "Начало на прекодирането"
-#: internet/soundcloud/soundcloudservice.cpp:121
#: internet/spotify/spotifyservice.cpp:402
msgid ""
"Start typing something on the search box above to fill this search results "
"list"
msgstr "Започнете да пишете нещо в кутията за търсене отгоре, за да запълните списъка с резултати от търсенето"
-#: transcoder/transcoder.cpp:397
+#: transcoder/transcoder.cpp:398
#, qt-format
msgid "Starting %1"
msgstr "Стартиране на %1"
@@ -4862,7 +4860,7 @@ msgstr ""
msgid "Stop after every track"
msgstr ""
-#: ui/mainwindow.cpp:680 ../bin/src/ui_mainwindow.h:679
+#: ui/mainwindow.cpp:682 ../bin/src/ui_mainwindow.h:679
msgid "Stop after this track"
msgstr "Спри след тази песен"
@@ -4874,7 +4872,7 @@ msgstr "Спиране на възпроизвеждането"
msgid "Stop playback after current track"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:334
+#: ../bin/src/ui_behavioursettingspage.h:377
msgid "Stop playback if song fails to play"
msgstr ""
@@ -4922,7 +4920,7 @@ msgstr "Subsonic"
msgid "Success!"
msgstr "Успешно!"
-#: transcoder/transcoder.cpp:189
+#: transcoder/transcoder.cpp:190
#, qt-format
msgid "Successfully written %1"
msgstr "Успешно записан %1"
@@ -4990,7 +4988,7 @@ msgstr "Техно"
msgid "Text options"
msgstr "Настройки на текста"
-#: ui/about.cpp:74
+#: ui/about.cpp:76
msgid "Thanks to"
msgstr "Благодарности на"
@@ -5030,7 +5028,7 @@ msgid ""
"license key. Visit subsonic.org for details."
msgstr "Пробния период на Subsonic сървъра изтече. Моля дайте дарение за да получите ключ за лиценз. Посетете subsonic.org за подробности."
-#: ui/mainwindow.cpp:2674
+#: ui/mainwindow.cpp:2700
msgid ""
"The version of Clementine you've just updated to requires a full library "
"rescan because of the new features listed below:"
@@ -5054,13 +5052,13 @@ msgstr "Имаше проблем с изтеглянето на метадан
msgid "There was a problem parsing the response from the iTunes Store"
msgstr "Имаше проблем в разбора на отговора от iTunes Store"
-#: ui/organiseerrordialog.cpp:54
+#: ui/organiseerrordialog.cpp:56
msgid ""
"There were problems copying some songs. The following files could not be "
"copied:"
msgstr "Имаше проблем с копирането на някои песни.Следните не можаха да бъдат копирани:"
-#: ui/organiseerrordialog.cpp:61
+#: ui/organiseerrordialog.cpp:63
msgid ""
"There were problems deleting some songs. The following files could not be "
"deleted:"
@@ -5072,7 +5070,7 @@ msgid ""
"continue?"
msgstr "Тези файлове ще бъдат изтрити от устройството,сигурни ли сте че искате да продължите?"
-#: library/libraryview.cpp:679 ui/mainwindow.cpp:2433 widgets/fileview.cpp:189
+#: library/libraryview.cpp:679 ui/mainwindow.cpp:2459 widgets/fileview.cpp:189
msgid ""
"These files will be permanently deleted from disk, are you sure you want to "
"continue?"
@@ -5143,7 +5141,7 @@ msgstr "Това е първият път,когато мушкате това
msgid "This option can be changed in the \"Behavior\" preferences"
msgstr "Тази опция може да се промени от предпочитанията \"Поведение\""
-#: internet/lastfm/lastfmservice.cpp:284
+#: internet/lastfm/lastfmservice.cpp:286
msgid "This stream is for paid subscribers only"
msgstr "Този поток е само за платени регистрации."
@@ -5152,11 +5150,11 @@ msgstr "Този поток е само за платени регистраци
msgid "This type of device is not supported: %1"
msgstr "Този тип устройство не е подържано:%1"
-#: ../bin/src/ui_behavioursettingspage.h:374
+#: ../bin/src/ui_behavioursettingspage.h:413
msgid "Time step"
msgstr ""
-#: playlist/playlist.cpp:1345 ui/organisedialog.cpp:63
+#: playlist/playlist.cpp:1378 ui/organisedialog.cpp:64
#: ui/qtsystemtrayicon.cpp:247 ../bin/src/ui_about.h:141
#: ../bin/src/ui_edittagdialog.h:719 ../bin/src/ui_trackselectiondialog.h:210
#: ../bin/src/ui_ripcddialog.h:306
@@ -5175,7 +5173,7 @@ msgstr "Вкл./Изкл. на красиво екранно меню"
msgid "Toggle fullscreen"
msgstr "Превключване на пълен екран"
-#: ui/mainwindow.cpp:1769
+#: ui/mainwindow.cpp:1795
msgid "Toggle queue status"
msgstr "Покажи статус на опашката"
@@ -5207,11 +5205,11 @@ msgstr "Топ песни"
msgid "Total albums:"
msgstr "Общо албуми:"
-#: covers/coversearchstatisticsdialog.cpp:70
+#: covers/coversearchstatisticsdialog.cpp:72
msgid "Total bytes transferred"
msgstr "Общо прехвърлени байта"
-#: covers/coversearchstatisticsdialog.cpp:67
+#: covers/coversearchstatisticsdialog.cpp:69
msgid "Total network requests made"
msgstr "Общ брой направени мрежови заявки"
@@ -5219,15 +5217,11 @@ msgstr "Общ брой направени мрежови заявки"
msgid "Trac&k"
msgstr ""
-#: playlist/playlist.cpp:1353 ui/organisedialog.cpp:72
+#: playlist/playlist.cpp:1386 ui/organisedialog.cpp:73
#: ../bin/src/ui_trackselectiondialog.h:212 ../bin/src/ui_ripcddialog.h:304
msgid "Track"
msgstr "Песен"
-#: internet/soundcloud/soundcloudservice.cpp:136
-msgid "Tracks"
-msgstr "Песни"
-
#: ../bin/src/ui_transcodedialog.h:213 ../bin/src/ui_mainwindow.h:706
msgid "Transcode Music"
msgstr "Прекодирай музиката"
@@ -5240,7 +5234,7 @@ msgstr "Журнал на прекодирането"
msgid "Transcoding"
msgstr "Прекодиране"
-#: transcoder/transcoder.cpp:317
+#: transcoder/transcoder.cpp:318
#, qt-format
msgid "Transcoding %1 files using %2 threads"
msgstr "Прекодиране на %1 файлове чрез %2 начина"
@@ -5291,8 +5285,8 @@ msgstr "Не можах да се свържа"
msgid "Unable to download %1 (%2)"
msgstr "Неуспешно сваляне %1 (%2)"
-#: core/song.cpp:465 library/librarymodel.cpp:374 library/librarymodel.cpp:379
-#: library/librarymodel.cpp:383 library/librarymodel.cpp:1159
+#: core/song.cpp:465 library/librarymodel.cpp:375 library/librarymodel.cpp:380
+#: library/librarymodel.cpp:384 library/librarymodel.cpp:1160
#: library/savedgroupingmanager.cpp:103 playlist/playlistdelegates.cpp:305
#: playlist/playlistmanager.cpp:532 playlist/playlistmanager.cpp:533
#: songinfo/streamdiscoverer.cpp:87 ui/albumcoverchoicecontroller.cpp:127
@@ -5305,7 +5299,7 @@ msgid "Unknown content-type"
msgstr "Неизвестен тип съдържание"
#: internet/digitally/digitallyimportedclient.cpp:74
-#: internet/lastfm/lastfmservice.cpp:303
+#: internet/lastfm/lastfmservice.cpp:305
msgid "Unknown error"
msgstr "Неизвестна грешка"
@@ -5313,11 +5307,11 @@ msgstr "Неизвестна грешка"
msgid "Unset cover"
msgstr "Махни обложката"
-#: ui/mainwindow.cpp:1779
+#: ui/mainwindow.cpp:1805
msgid "Unskip selected tracks"
msgstr "Не прескачай избраните песни"
-#: ui/mainwindow.cpp:1777
+#: ui/mainwindow.cpp:1803
msgid "Unskip track"
msgstr "Не прескачай песента"
@@ -5428,7 +5422,7 @@ msgstr ""
msgid "Use temporal noise shaping"
msgstr "Използване на оформяне на звук по време"
-#: ../bin/src/ui_behavioursettingspage.h:326
+#: ../bin/src/ui_behavioursettingspage.h:365
msgid "Use the system default"
msgstr "Използвай подразбиращия се за систмета"
@@ -5448,7 +5442,7 @@ msgstr "Използване на нормализация на звука"
msgid "Used"
msgstr "Използван"
-#: ui/settingsdialog.cpp:147
+#: ui/settingsdialog.cpp:146
msgid "User interface"
msgstr "Потребителски интерфейс"
@@ -5460,7 +5454,7 @@ msgstr "Потребителски интерфейс"
msgid "Username"
msgstr "Потребителско име"
-#: ../bin/src/ui_behavioursettingspage.h:340
+#: ../bin/src/ui_behavioursettingspage.h:379
msgid "Using the menu to add a song will..."
msgstr "Използването на менюто за добавяне на песен ще..."
@@ -5477,8 +5471,8 @@ msgstr ""
msgid "Variable bit rate"
msgstr "Променлив битов поток"
-#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:300
-#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:264
+#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:301
+#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:266
msgid "Various artists"
msgstr "Сборни формации"
@@ -5486,7 +5480,7 @@ msgstr "Сборни формации"
msgid "Verify Server certificate"
msgstr ""
-#: ui/about.cpp:33
+#: ui/about.cpp:35
#, qt-format
msgid "Version %1"
msgstr "Версия %1"
@@ -5533,11 +5527,11 @@ msgstr "WAV"
msgid "WMA"
msgstr "WMA"
-#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:322
+#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:361
msgid "Warn me when closing a playlist tab"
msgstr "Предупреди ме, преди да се затвори подпрозорец със списък от песни"
-#: core/song.cpp:448 transcoder/transcoder.cpp:256
+#: core/song.cpp:448 transcoder/transcoder.cpp:257
msgid "Wav"
msgstr "Wav"
@@ -5553,20 +5547,28 @@ msgstr "Уебсайт"
msgid "Weeks"
msgstr "Седмици"
-#: ../bin/src/ui_behavioursettingspage.h:329
+#: ../bin/src/ui_behavioursettingspage.h:368
msgid "When Clementine starts"
msgstr "При стартиране на Clementine"
+#: ../bin/src/ui_behavioursettingspage.h:427
+msgid "When calculating play counts, use"
+msgstr ""
+
#: ../bin/src/ui_librarysettingspage.h:203
msgid ""
"When looking for album art Clementine will first look for picture files that contain one of these words.\n"
"If there are no matches then it will use the largest image in the directory."
msgstr "Когато Clementine търси обложки първо ще потърси за картинки съдържащи една от тези думи.\nАко няма свъпадения тогава ще използва най-големите изображения в директорията,"
-#: ../bin/src/ui_behavioursettingspage.h:377
+#: ../bin/src/ui_behavioursettingspage.h:416
msgid "When saving a playlist, file paths should be"
msgstr "При запис на списъци с песни, пътищата на файла трябва да са"
+#: ../bin/src/ui_behavioursettingspage.h:422
+msgid "When sorting artists, albums and titles"
+msgstr ""
+
#: ../bin/src/ui_globalsearchsettingspage.h:147
msgid "When the list is empty..."
msgstr "Когато списъка е празен"
@@ -5625,7 +5627,7 @@ msgstr "Windows Media 40k"
msgid "Windows Media 64k"
msgstr "Windows Media 64k"
-#: core/song.cpp:428 transcoder/transcoder.cpp:253
+#: core/song.cpp:428 transcoder/transcoder.cpp:254
msgid "Windows Media audio"
msgstr "Аудио — Windows Media"
@@ -5639,7 +5641,7 @@ msgid ""
"well?"
msgstr "Искате ли да преместим другите песни от този албум в Различни изпълнители?"
-#: ui/mainwindow.cpp:2681
+#: ui/mainwindow.cpp:2707
msgid "Would you like to run a full rescan right now?"
msgstr "Искате ли да изпълните пълно повторно сканиране сега?"
@@ -5647,7 +5649,7 @@ msgstr "Искате ли да изпълните пълно повторно с
msgid "Write all songs statistics into songs' files"
msgstr "Записване на всички статистики за песните във файловете на песните"
-#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:421
msgid "Write metadata"
msgstr "Запиши метадата"
@@ -5655,8 +5657,8 @@ msgstr "Запиши метадата"
msgid "Wrong username or password."
msgstr "Грешно потребителско име или парола."
-#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1357
-#: ui/organisedialog.cpp:75 ../bin/src/ui_groupbydialog.h:134
+#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1390
+#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:134
#: ../bin/src/ui_groupbydialog.h:153 ../bin/src/ui_groupbydialog.h:172
#: ../bin/src/ui_trackselectiondialog.h:211 ../bin/src/ui_ripcddialog.h:312
msgid "Year"
@@ -5733,13 +5735,6 @@ msgstr "Нямате Spotify Premium акаунт."
msgid "You do not have an active subscription"
msgstr "Нямате активен абонамент"
-#: ../bin/src/ui_soundcloudsettingspage.h:101
-msgid ""
-"You don't need to be logged in to search and to listen to music on "
-"SoundCloud. However, you need to login to access your playlists and your "
-"stream."
-msgstr "Не е нужно да сте логнати, за да слушате музика от SoundCloud. Но е нужно за да имате достъп до плейлистите си и потока си."
-
#: internet/spotify/spotifyservice.cpp:205
msgid ""
"You have been logged out of Spotify, please re-enter your password in the "
@@ -5761,7 +5756,7 @@ msgid ""
"shortcuts in Clementine."
msgstr "Трябва да влезете в Системните Настройки и да позволите на Clementine да \"контролира вашия компютър\" за да изпозлвате глобалните клавишни комбинации в Clementine."
-#: ../bin/src/ui_behavioursettingspage.h:328
+#: ../bin/src/ui_behavioursettingspage.h:367
msgid "You will need to restart Clementine if you change the language."
msgstr "Трябва да рестартирате Clementine, ако смените езика."
@@ -5837,7 +5832,7 @@ msgstr "между"
msgid "biggest first"
msgstr "Пъво най-големите"
-#: playlist/playlistview.cpp:241 ui/edittagdialog.cpp:500
+#: playlist/playlistview.cpp:242 ui/edittagdialog.cpp:500
msgid "bpm"
msgstr "удари в минута"
@@ -5894,7 +5889,7 @@ msgstr "в последните"
#: internet/spotify/spotifysettingspage.cpp:62
#: internet/spotify/spotifysettingspage.cpp:63
-#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:245
+#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:246
#: ui/edittagdialog.cpp:502
msgid "kbps"
msgstr "килобита/сек"
diff --git a/src/translations/bn.po b/src/translations/bn.po
index a1692a5ad..01e708ff8 100644
--- a/src/translations/bn.po
+++ b/src/translations/bn.po
@@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
-"PO-Revision-Date: 2018-09-17 13:31+0000\n"
+"PO-Revision-Date: 2018-10-20 12:14+0000\n"
"Last-Translator: hatstand \n"
"Language-Team: Bengali (http://www.transifex.com/davidsansome/clementine/language/bn/)\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -52,7 +52,7 @@ msgstr " মিলিসেকেন্ড"
msgid " pt"
msgstr " পয়েন্ট"
-#: ../bin/src/ui_behavioursettingspage.h:375
+#: ../bin/src/ui_behavioursettingspage.h:414
msgid " s"
msgstr ""
@@ -91,7 +91,7 @@ msgstr "%1 দিন পুরানো"
msgid "%1 on %2"
msgstr "%2 এ %1"
-#: playlistparsers/playlistparser.cpp:87
+#: playlistparsers/playlistparser.cpp:89
#, qt-format
msgid "%1 playlists (%2)"
msgstr "%1 প্লে লিস্ট (%2)"
@@ -121,12 +121,12 @@ msgstr "%1 গান পাওয়া গেছে"
msgid "%1 songs found (showing %2)"
msgstr "%1 গান পাওয়া গেছে ( দৃশ্যমান %2)"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
#, qt-format
msgid "%1 tracks"
msgstr "%1 ট্রাকস"
-#: ui/albumcovermanager.cpp:472
+#: ui/albumcovermanager.cpp:474
#, qt-format
msgid "%1 transferred"
msgstr "%1 ট্রানসফারড"
@@ -151,19 +151,19 @@ msgstr "%L1 টোটাল প্লে"
msgid "%filename%"
msgstr "%filename%"
-#: transcoder/transcodedialog.cpp:214
+#: transcoder/transcodedialog.cpp:216
#, c-format, qt-plural-format
msgctxt ""
msgid "%n failed"
msgstr "%n অসফল"
-#: transcoder/transcodedialog.cpp:209
+#: transcoder/transcodedialog.cpp:211
#, c-format, qt-plural-format
msgctxt ""
msgid "%n finished"
msgstr "%n সমাপ্ত"
-#: transcoder/transcodedialog.cpp:203
+#: transcoder/transcodedialog.cpp:205
#, c-format, qt-plural-format
msgctxt ""
msgid "%n remaining"
@@ -262,7 +262,7 @@ msgstr "আনুপূর্বিক তফাৎ"
msgid ", by "
msgstr ""
-#: ui/about.cpp:84
+#: ui/about.cpp:86
msgid "...and all the Amarok contributors"
msgstr "এবং অন্য সমস্ত এমরক সহযোগকারি গন"
@@ -282,7 +282,7 @@ msgstr ""
msgid "1 day"
msgstr "১ দিন"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
msgid "1 track"
msgstr "১টি ট্র্যাক"
@@ -394,6 +394,10 @@ msgid ""
"A song will be included in the playlist if it matches these conditions."
msgstr "এক টি সঙ্গীত প্লে লিস্ট এ অন্তর্ভুক্ত হয় যদি কিনা মান গুলি ঠিক পুরন করে।"
+#: ../bin/src/ui_behavioursettingspage.h:417
+msgid "A&utomatic"
+msgstr ""
+
#: smartplaylists/searchterm.cpp:396
msgid "A-Z"
msgstr "এ থেকে জেড পর্যন্ত"
@@ -422,11 +426,11 @@ msgstr "এআইএফএফ"
msgid "ALL GLORY TO THE HYPNOTOAD"
msgstr ""
-#: ui/albumcovermanager.cpp:105 ui/albumcoversearcher.cpp:158
+#: ui/albumcovermanager.cpp:107 ui/albumcoversearcher.cpp:158
msgid "Abort"
msgstr ""
-#: ui/about.cpp:30
+#: ui/about.cpp:32
#, qt-format
msgid "About %1"
msgstr "%1-এর সম্বন্ধে"
@@ -440,7 +444,7 @@ msgid "About Qt..."
msgstr "কিউ টি সন্মন্ধে"
#: playlist/playlistsaveoptionsdialog.cpp:34
-#: ../bin/src/ui_behavioursettingspage.h:379
+#: ../bin/src/ui_behavioursettingspage.h:418
msgid "Absolute"
msgstr ""
@@ -467,10 +471,6 @@ msgstr ""
msgid "Activate/Deactivate Wii Remote"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:128
-msgid "Activities stream"
-msgstr ""
-
#: internet/podcasts/addpodcastdialog.cpp:63
msgid "Add Podcast"
msgstr ""
@@ -499,7 +499,7 @@ msgstr "অন্য এক্ টি সঙ্গীত যোগ করুন"
msgid "Add directory..."
msgstr "ডাইরেকট রি যোগ করুন"
-#: ui/mainwindow.cpp:2049
+#: ui/mainwindow.cpp:2075
msgid "Add file"
msgstr ""
@@ -515,12 +515,12 @@ msgstr ""
msgid "Add file..."
msgstr "ফাইল যোগ করুন"
-#: transcoder/transcodedialog.cpp:224
+#: transcoder/transcodedialog.cpp:226
msgid "Add files to transcode"
msgstr "অনুবাদ এর জন্য ফাইল যোগ করুন"
-#: transcoder/transcodedialog.cpp:306 ui/mainwindow.cpp:2076
-#: ripper/ripcddialog.cpp:201
+#: transcoder/transcodedialog.cpp:308 ui/mainwindow.cpp:2102
+#: ripper/ripcddialog.cpp:203
msgid "Add folder"
msgstr "ফোল্ডার যোগ করুন"
@@ -624,7 +624,7 @@ msgstr ""
msgid "Add to Spotify starred"
msgstr ""
-#: ui/mainwindow.cpp:1850
+#: ui/mainwindow.cpp:1876
msgid "Add to another playlist"
msgstr "অন্য প্লে লিস্ট যুক্ত করুন"
@@ -632,8 +632,8 @@ msgstr "অন্য প্লে লিস্ট যুক্ত করুন"
msgid "Add to playlist"
msgstr "প্লে লিস্ট যোগ করুন"
-#: ../bin/src/ui_behavioursettingspage.h:359
-#: ../bin/src/ui_behavioursettingspage.h:371
+#: ../bin/src/ui_behavioursettingspage.h:398
+#: ../bin/src/ui_behavioursettingspage.h:410
msgid "Add to the queue"
msgstr "সঙ্গীত ধারাবাহিকতায় যুক্ত করুন"
@@ -674,8 +674,8 @@ msgstr ""
msgid "After copying..."
msgstr "কপি হওয়ার পর"
-#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1349
-#: ui/organisedialog.cpp:64 ui/qtsystemtrayicon.cpp:251
+#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1382
+#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:251
#: ../bin/src/ui_groupbydialog.h:128 ../bin/src/ui_groupbydialog.h:147
#: ../bin/src/ui_groupbydialog.h:166 ../bin/src/ui_albumcoversearcher.h:110
#: ../bin/src/ui_albumcoversearcher.h:112 ../bin/src/ui_edittagdialog.h:723
@@ -687,8 +687,8 @@ msgstr "অ্যালবাম"
msgid "Album (ideal loudness for all tracks)"
msgstr "অ্যালবাম (পরিচ্ছন্ন আওয়াজ সমস্ত সঙ্গীত এর জন্য)"
-#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1363
-#: ui/organisedialog.cpp:67 ../bin/src/ui_groupbydialog.h:130
+#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1396
+#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:130
#: ../bin/src/ui_groupbydialog.h:149 ../bin/src/ui_groupbydialog.h:168
#: ../bin/src/ui_edittagdialog.h:725
msgid "Album artist"
@@ -702,11 +702,11 @@ msgstr ""
msgid "Album info on jamendo.com..."
msgstr "জামেন্দ.কম এর অ্যালবাম তথ্য..."
-#: ui/albumcovermanager.cpp:129
+#: ui/albumcovermanager.cpp:131
msgid "Albums with covers"
msgstr "অ্যালবাম কভার"
-#: ui/albumcovermanager.cpp:130
+#: ui/albumcovermanager.cpp:132
msgid "Albums without covers"
msgstr "কভারবিহীন অ্যালবাম"
@@ -714,7 +714,7 @@ msgstr "কভারবিহীন অ্যালবাম"
msgid "All"
msgstr ""
-#: ui/mainwindow.cpp:158
+#: ui/mainwindow.cpp:160
msgid "All Files (*)"
msgstr "সব ফাইল (*)"
@@ -723,11 +723,11 @@ msgctxt "Label for button to enable/disable Hypnotoad background sound."
msgid "All Glory to the Hypnotoad!"
msgstr ""
-#: ui/albumcovermanager.cpp:128
+#: ui/albumcovermanager.cpp:130
msgid "All albums"
msgstr "সমস্ত অ্যালবাম গুলি"
-#: ui/albumcovermanager.cpp:262
+#: ui/albumcovermanager.cpp:264
msgid "All artists"
msgstr "সমস্ত শিল্পীগণ"
@@ -735,12 +735,12 @@ msgstr "সমস্ত শিল্পীগণ"
msgid "All files (*)"
msgstr "সর্বধরনের ফাইল (*)"
-#: playlistparsers/playlistparser.cpp:74
+#: playlistparsers/playlistparser.cpp:76
#, qt-format
msgid "All playlists (%1)"
msgstr "সমস্ত প্লে লিস্ট (%1)"
-#: ui/about.cpp:80
+#: ui/about.cpp:82
msgid "All the translators"
msgstr "সমস্ত অনুবাদকগন"
@@ -764,16 +764,16 @@ msgstr "মধ্য/পার্শ্ববর্তী এনকোডিং
msgid "Alongside the originals"
msgstr "আসল টি র সমান্তরাল ভাবে"
-#: ../bin/src/ui_behavioursettingspage.h:331
-msgid "Always hide the main window"
-msgstr "স্থায়ী ভাবে মেন উইন্ডো সরিয়ে ফেলুন"
+#: ../bin/src/ui_behavioursettingspage.h:370
+msgid "Alwa&ys hide the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:330
-msgid "Always show the main window"
-msgstr "স্থায়ী ভাবে মেন উইন্ডো বর্তমান রাখুন"
+#: ../bin/src/ui_behavioursettingspage.h:369
+msgid "Always show &the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:345
-#: ../bin/src/ui_behavioursettingspage.h:365
+#: ../bin/src/ui_behavioursettingspage.h:384
+#: ../bin/src/ui_behavioursettingspage.h:404
msgid "Always start playing"
msgstr "স্থায়ী ভাবে সঙ্গীত চালু রাখুন"
@@ -787,7 +787,7 @@ msgstr "এক্ টি প্লাগ ইন প্রয়োজন। আপ
msgid "An error occurred loading the iTunes database"
msgstr "iTune ডাটাবেস লোডইং ত্রুটি র জন্য দুঃখিত ।"
-#: playlist/playlist.cpp:424 ui/edittagdialog.cpp:703
+#: playlist/playlist.cpp:454 ui/edittagdialog.cpp:703
#, qt-format
msgid "An error occurred writing metadata to '%1'"
msgstr "ত্রুটি পূর্ণ মেটা ডাটা সংযুক্তি %1"
@@ -796,7 +796,7 @@ msgstr "ত্রুটি পূর্ণ মেটা ডাটা সংয
msgid "An unspecified error occurred."
msgstr ""
-#: ui/about.cpp:85
+#: ui/about.cpp:87
msgid "And:"
msgstr "এবং"
@@ -814,13 +814,13 @@ msgstr "উপস্থিতি"
msgid "Append files/URLs to the playlist"
msgstr "ফাইল / ইউ আর এল প্লে লিস্ট এ সংযুক্তি করন"
-#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:454
+#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:455
#: internet/core/internetservice.cpp:48 library/libraryview.cpp:383
#: widgets/fileviewlist.cpp:31
msgid "Append to current playlist"
msgstr "প্লে লিস্ট এ সংযুক্তি করন"
-#: ../bin/src/ui_behavioursettingspage.h:356
+#: ../bin/src/ui_behavioursettingspage.h:395
msgid "Append to the playlist"
msgstr "প্লে লিস্ট এ সংযুক্তি করন"
@@ -843,8 +843,8 @@ msgid ""
"the songs of your library?"
msgstr ""
-#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1347
-#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:249
+#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1380
+#: ui/organisedialog.cpp:66 ui/qtsystemtrayicon.cpp:249
#: ../bin/src/ui_groupbydialog.h:129 ../bin/src/ui_groupbydialog.h:148
#: ../bin/src/ui_groupbydialog.h:167 ../bin/src/ui_albumcoversearcher.h:106
#: ../bin/src/ui_albumcoversearcher.h:108 ../bin/src/ui_edittagdialog.h:721
@@ -852,16 +852,16 @@ msgstr ""
msgid "Artist"
msgstr "শিল্পী"
-#: ui/mainwindow.cpp:283
+#: ui/mainwindow.cpp:285
msgid "Artist info"
msgstr "শিল্পী সম্পকিত তথ্য"
-#: ui/organisedialog.cpp:66
+#: ui/organisedialog.cpp:67
msgid "Artist's initial"
msgstr "শিল্পীর অদ্যাক্ষর"
-#: ../bin/src/ui_behavioursettingspage.h:381
-msgid "Ask when saving"
+#: ../bin/src/ui_behavioursettingspage.h:420
+msgid "As&k when saving"
msgstr ""
#: ../bin/src/ui_transcodedialog.h:225
@@ -876,7 +876,7 @@ msgstr ""
#: internet/digitally/digitallyimportedsettingspage.cpp:82
#: internet/magnatune/magnatunesettingspage.cpp:117
-#: internet/lastfm/lastfmservice.cpp:268
+#: internet/lastfm/lastfmservice.cpp:270
#: internet/lastfm/lastfmsettingspage.cpp:76
msgid "Authentication failed"
msgstr ""
@@ -885,7 +885,7 @@ msgstr ""
msgid "Author"
msgstr ""
-#: ui/about.cpp:68
+#: ui/about.cpp:70
msgid "Authors"
msgstr "গীতিকার"
@@ -895,7 +895,6 @@ msgid "Auto"
msgstr ""
#: playlist/playlistsaveoptionsdialog.cpp:32
-#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Automatic"
msgstr ""
@@ -915,7 +914,7 @@ msgstr ""
msgid "Average bitrate"
msgstr ""
-#: covers/coversearchstatisticsdialog.cpp:69
+#: covers/coversearchstatisticsdialog.cpp:71
msgid "Average image size"
msgstr ""
@@ -923,7 +922,7 @@ msgstr ""
msgid "BBC Podcasts"
msgstr ""
-#: playlist/playlist.cpp:1383 ui/organisedialog.cpp:74
+#: playlist/playlist.cpp:1416 ui/organisedialog.cpp:75
#: ../bin/src/ui_edittagdialog.h:704
msgid "BPM"
msgstr "বিপিএম"
@@ -944,7 +943,7 @@ msgstr ""
msgid "Background opacity"
msgstr ""
-#: core/database.cpp:648
+#: core/database.cpp:664
msgid "Backing up database"
msgstr ""
@@ -968,7 +967,7 @@ msgstr ""
msgid "Basic audio type"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:318
+#: ../bin/src/ui_behavioursettingspage.h:357
msgid "Behavior"
msgstr ""
@@ -980,7 +979,7 @@ msgstr ""
msgid "Biography"
msgstr ""
-#: playlist/playlist.cpp:1385 ../bin/src/ui_edittagdialog.h:706
+#: playlist/playlist.cpp:1418 ../bin/src/ui_edittagdialog.h:706
#: ../bin/src/ui_streamdetailsdialog.h:139
msgid "Bit rate"
msgstr ""
@@ -995,7 +994,7 @@ msgstr ""
msgid "Bitrate"
msgstr ""
-#: ui/organisedialog.cpp:80
+#: ui/organisedialog.cpp:81
msgctxt "Refers to bitrate in file organise dialog."
msgid "Bitrate"
msgstr ""
@@ -1086,7 +1085,7 @@ msgstr ""
msgid "Change shuffle mode"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:370
+#: ../bin/src/ui_behavioursettingspage.h:409
msgid "Change the currently playing song"
msgstr ""
@@ -1116,7 +1115,7 @@ msgstr ""
msgid "Check for updates"
msgstr ""
-#: ui/mainwindow.cpp:820
+#: ui/mainwindow.cpp:824
msgid "Check for updates..."
msgstr ""
@@ -1165,7 +1164,7 @@ msgstr ""
msgid "Cleaning up"
msgstr ""
-#: transcoder/transcodedialog.cpp:61 widgets/lineedit.cpp:41
+#: transcoder/transcodedialog.cpp:63 widgets/lineedit.cpp:41
#: ../bin/src/ui_queuemanager.h:151
msgid "Clear"
msgstr ""
@@ -1258,7 +1257,6 @@ msgstr ""
msgid "Click to toggle between remaining time and total time"
msgstr ""
-#: ../bin/src/ui_soundcloudsettingspage.h:103
#: ../bin/src/ui_lastfmsettingspage.h:133
#: ../bin/src/ui_googledrivesettingspage.h:102
#: ../bin/src/ui_dropboxsettingspage.h:102
@@ -1285,7 +1283,7 @@ msgstr ""
msgid "Closing this window will cancel the download."
msgstr ""
-#: ui/albumcovermanager.cpp:213
+#: ui/albumcovermanager.cpp:215
msgid "Closing this window will stop searching for album covers."
msgstr ""
@@ -1305,8 +1303,12 @@ msgstr ""
msgid "Comma separated list of class:level, level is 0-3"
msgstr ""
-#: playlist/playlist.cpp:1402 smartplaylists/searchterm.cpp:384
-#: ui/organisedialog.cpp:78 ../bin/src/ui_edittagdialog.h:718
+#: ../bin/src/ui_behavioursettingspage.h:425
+msgid "Comma seperated list of prefix words to ignore when sorting"
+msgstr ""
+
+#: playlist/playlist.cpp:1435 smartplaylists/searchterm.cpp:384
+#: ui/organisedialog.cpp:79 ../bin/src/ui_edittagdialog.h:718
msgid "Comment"
msgstr ""
@@ -1318,8 +1320,8 @@ msgstr ""
msgid "Complete tags automatically..."
msgstr ""
-#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1365
-#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:131
+#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1398
+#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:131
#: ../bin/src/ui_groupbydialog.h:150 ../bin/src/ui_groupbydialog.h:169
msgid "Composer"
msgstr ""
@@ -1337,10 +1339,6 @@ msgstr ""
msgid "Configure Shortcuts"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:381
-msgid "Configure SoundCloud..."
-msgstr ""
-
#: internet/spotify/spotifyservice.cpp:927
msgid "Configure Spotify..."
msgstr ""
@@ -1349,11 +1347,11 @@ msgstr ""
msgid "Configure Subsonic..."
msgstr ""
-#: globalsearch/globalsearchview.cpp:151 globalsearch/globalsearchview.cpp:480
+#: globalsearch/globalsearchview.cpp:152 globalsearch/globalsearchview.cpp:481
msgid "Configure global search..."
msgstr ""
-#: ui/mainwindow.cpp:659
+#: ui/mainwindow.cpp:661
msgid "Configure library..."
msgstr ""
@@ -1363,7 +1361,7 @@ msgid "Configure podcasts..."
msgstr ""
#: internet/core/cloudfileservice.cpp:107
-#: internet/digitally/digitallyimportedservicebase.cpp:182
+#: internet/digitally/digitallyimportedservicebase.cpp:184
#: internet/googledrive/googledriveservice.cpp:231
#: ../bin/src/ui_globalsearchsettingspage.h:146
msgid "Configure..."
@@ -1425,11 +1423,11 @@ msgid "Copy to clipboard"
msgstr ""
#: library/libraryview.cpp:419 internet/podcasts/podcastservice.cpp:438
-#: ui/mainwindow.cpp:719 widgets/fileviewlist.cpp:44
+#: ui/mainwindow.cpp:721 widgets/fileviewlist.cpp:44
msgid "Copy to device..."
msgstr ""
-#: devices/deviceview.cpp:228 ui/mainwindow.cpp:709
+#: devices/deviceview.cpp:228 ui/mainwindow.cpp:711
#: widgets/fileviewlist.cpp:40
msgid "Copy to library..."
msgstr ""
@@ -1444,7 +1442,7 @@ msgid ""
"http://localhost:4040/"
msgstr ""
-#: transcoder/transcoder.cpp:58
+#: transcoder/transcoder.cpp:59
#, qt-format
msgid ""
"Could not create the GStreamer element \"%1\" - make sure you have all the "
@@ -1468,14 +1466,14 @@ msgstr ""
msgid "Couldn't create playlist"
msgstr ""
-#: transcoder/transcoder.cpp:425
+#: transcoder/transcoder.cpp:426
#, qt-format
msgid ""
"Couldn't find a muxer for %1, check you have the correct GStreamer plugins "
"installed"
msgstr ""
-#: transcoder/transcoder.cpp:419
+#: transcoder/transcoder.cpp:420
#, qt-format
msgid ""
"Couldn't find an encoder for %1, check you have the correct GStreamer "
@@ -1516,7 +1514,7 @@ msgstr ""
msgid "Cover art set from %1"
msgstr ""
-#: covers/coversearchstatisticsdialog.cpp:59 ui/albumcoversearcher.cpp:100
+#: covers/coversearchstatisticsdialog.cpp:61 ui/albumcoversearcher.cpp:100
#, qt-format
msgid "Covers from %1"
msgstr ""
@@ -1573,18 +1571,18 @@ msgstr ""
msgid "Dance"
msgstr ""
-#: core/database.cpp:601
+#: core/database.cpp:617
msgid ""
"Database corruption detected. Please read https://github.com/clementine-"
"player/Clementine/wiki/Database-Corruption for instructions on how to "
"recover your database"
msgstr ""
-#: playlist/playlist.cpp:1399 ../bin/src/ui_edittagdialog.h:715
+#: playlist/playlist.cpp:1432 ../bin/src/ui_edittagdialog.h:715
msgid "Date created"
msgstr ""
-#: playlist/playlist.cpp:1397 ../bin/src/ui_edittagdialog.h:714
+#: playlist/playlist.cpp:1430 ../bin/src/ui_edittagdialog.h:714
msgid "Date modified"
msgstr ""
@@ -1635,7 +1633,7 @@ msgid "Delete downloaded data"
msgstr ""
#: devices/deviceview.cpp:408 library/libraryview.cpp:678
-#: ui/mainwindow.cpp:2432 widgets/fileview.cpp:188
+#: ui/mainwindow.cpp:2458 widgets/fileview.cpp:188
msgid "Delete files"
msgstr ""
@@ -1643,7 +1641,7 @@ msgstr ""
msgid "Delete from device..."
msgstr ""
-#: library/libraryview.cpp:422 ui/mainwindow.cpp:722
+#: library/libraryview.cpp:422 ui/mainwindow.cpp:724
#: widgets/fileviewlist.cpp:47
msgid "Delete from disk..."
msgstr ""
@@ -1676,11 +1674,11 @@ msgstr ""
msgid "Depth"
msgstr ""
-#: ui/mainwindow.cpp:1763
+#: ui/mainwindow.cpp:1789
msgid "Dequeue selected tracks"
msgstr ""
-#: ui/mainwindow.cpp:1761
+#: ui/mainwindow.cpp:1787
msgid "Dequeue track"
msgstr ""
@@ -1709,7 +1707,7 @@ msgstr ""
msgid "Device properties..."
msgstr ""
-#: ui/mainwindow.cpp:276
+#: ui/mainwindow.cpp:278
msgid "Devices"
msgstr ""
@@ -1760,8 +1758,8 @@ msgctxt "Refers to search provider's status."
msgid "Disabled"
msgstr ""
-#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1355
-#: ui/organisedialog.cpp:73 ../bin/src/ui_groupbydialog.h:139
+#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1388
+#: ui/organisedialog.cpp:74 ../bin/src/ui_groupbydialog.h:139
#: ../bin/src/ui_groupbydialog.h:158 ../bin/src/ui_groupbydialog.h:177
#: ../bin/src/ui_edittagdialog.h:722 ../bin/src/ui_ripcddialog.h:313
msgid "Disc"
@@ -1826,7 +1824,7 @@ msgid "Don't shuffle"
msgstr ""
#: internet/magnatune/magnatunedownloaddialog.cpp:312
-#: ui/albumcovermanager.cpp:215
+#: ui/albumcovermanager.cpp:217
msgid "Don't stop!"
msgstr ""
@@ -1839,11 +1837,11 @@ msgstr ""
msgid "Double click to open"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:367
+#: ../bin/src/ui_behavioursettingspage.h:406
msgid "Double clicking a song in the playlist will..."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:353
+#: ../bin/src/ui_behavioursettingspage.h:392
msgid "Double clicking a song will..."
msgstr ""
@@ -1952,7 +1950,7 @@ msgstr ""
msgid "Edit smart playlist..."
msgstr ""
-#: ui/mainwindow.cpp:1813
+#: ui/mainwindow.cpp:1839
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@@ -1998,7 +1996,7 @@ msgstr ""
msgid "Enable shortcuts only when Clementine is focused"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:339
+#: ../bin/src/ui_behavioursettingspage.h:375
msgid "Enable song metadata inline edition with click"
msgstr ""
@@ -2087,12 +2085,12 @@ msgid "Equivalent to --log-levels *:3"
msgstr ""
#: internet/magnatune/magnatunedownloaddialog.cpp:246
-#: library/libraryview.cpp:672 ui/mainwindow.cpp:2105 ui/mainwindow.cpp:2384
-#: ui/mainwindow.cpp:2563
+#: library/libraryview.cpp:672 ui/mainwindow.cpp:2131 ui/mainwindow.cpp:2410
+#: ui/mainwindow.cpp:2589
msgid "Error"
msgstr ""
-#: ripper/ripcddialog.cpp:152
+#: ripper/ripcddialog.cpp:154
msgid "Error Ripping CD"
msgstr ""
@@ -2100,11 +2098,11 @@ msgstr ""
msgid "Error connecting MTP device"
msgstr ""
-#: ui/organiseerrordialog.cpp:52
+#: ui/organiseerrordialog.cpp:54
msgid "Error copying songs"
msgstr ""
-#: ui/organiseerrordialog.cpp:59
+#: ui/organiseerrordialog.cpp:61
msgid "Error deleting songs"
msgstr ""
@@ -2122,12 +2120,12 @@ msgstr ""
msgid "Error loading %1"
msgstr ""
-#: internet/digitally/digitallyimportedservicebase.cpp:200
+#: internet/digitally/digitallyimportedservicebase.cpp:202
#: internet/digitally/digitallyimportedurlhandler.cpp:96
msgid "Error loading di.fm playlist"
msgstr ""
-#: transcoder/transcoder.cpp:390
+#: transcoder/transcoder.cpp:391
#, qt-format
msgid "Error processing %1: %2"
msgstr ""
@@ -2201,16 +2199,16 @@ msgstr ""
msgid "Export embedded covers"
msgstr ""
-#: ui/albumcovermanager.cpp:799 ui/albumcovermanager.cpp:823
+#: ui/albumcovermanager.cpp:801 ui/albumcovermanager.cpp:825
msgid "Export finished"
msgstr ""
-#: ui/albumcovermanager.cpp:808
+#: ui/albumcovermanager.cpp:810
#, qt-format
msgid "Exported %1 covers out of %2 (%3 skipped)"
msgstr ""
-#: core/song.cpp:430 transcoder/transcoder.cpp:233
+#: core/song.cpp:430 transcoder/transcoder.cpp:234
#: ../bin/src/ui_magnatunedownloaddialog.h:136
#: ../bin/src/ui_magnatunesettingspage.h:170
#: ../bin/src/ui_transcodersettingspage.h:176
@@ -2234,7 +2232,7 @@ msgstr ""
msgid "Fading duration"
msgstr ""
-#: ui/mainwindow.cpp:2106
+#: ui/mainwindow.cpp:2132
msgid "Failed reading CD drive"
msgstr ""
@@ -2269,10 +2267,6 @@ msgstr ""
msgid "Fast"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:141
-msgid "Favorites"
-msgstr ""
-
#: library/library.cpp:88
msgid "Favourite tracks"
msgstr ""
@@ -2305,7 +2299,7 @@ msgstr ""
msgid "File Format"
msgstr ""
-#: ui/organisedialog.cpp:82
+#: ui/organisedialog.cpp:83
msgid "File extension"
msgstr ""
@@ -2313,11 +2307,11 @@ msgstr ""
msgid "File formats"
msgstr ""
-#: playlist/playlist.cpp:1389 ../bin/src/ui_edittagdialog.h:716
+#: playlist/playlist.cpp:1422 ../bin/src/ui_edittagdialog.h:716
msgid "File name"
msgstr ""
-#: playlist/playlist.cpp:1391
+#: playlist/playlist.cpp:1424
msgid "File name (without path)"
msgstr ""
@@ -2325,11 +2319,11 @@ msgstr ""
msgid "File paths"
msgstr ""
-#: playlist/playlist.cpp:1393 ../bin/src/ui_edittagdialog.h:710
+#: playlist/playlist.cpp:1426 ../bin/src/ui_edittagdialog.h:710
msgid "File size"
msgstr ""
-#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1395
+#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1428
#: ../bin/src/ui_groupbydialog.h:132 ../bin/src/ui_groupbydialog.h:151
#: ../bin/src/ui_groupbydialog.h:170 ../bin/src/ui_edittagdialog.h:712
msgid "File type"
@@ -2339,7 +2333,7 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: ui/mainwindow.cpp:266
+#: ui/mainwindow.cpp:268
msgid "Files"
msgstr ""
@@ -2452,7 +2446,7 @@ msgstr ""
msgid "Ge&nre"
msgstr ""
-#: ui/settingsdialog.cpp:133
+#: ui/settingsdialog.cpp:132
msgid "General"
msgstr ""
@@ -2460,8 +2454,8 @@ msgstr ""
msgid "General settings"
msgstr ""
-#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1361
-#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:133
+#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1394
+#: ui/organisedialog.cpp:78 ../bin/src/ui_groupbydialog.h:133
#: ../bin/src/ui_groupbydialog.h:152 ../bin/src/ui_groupbydialog.h:171
#: ../bin/src/ui_ripcddialog.h:316
msgid "Genre"
@@ -2481,7 +2475,7 @@ msgstr ""
msgid "Getting channels"
msgstr ""
-#: internet/digitally/digitallyimportedservicebase.cpp:100
+#: internet/digitally/digitallyimportedservicebase.cpp:102
msgid "Getting streams"
msgstr ""
@@ -2505,13 +2499,13 @@ msgstr ""
msgid "Google Drive"
msgstr ""
-#: covers/coversearchstatisticsdialog.cpp:53 ui/albumcovermanager.cpp:465
+#: covers/coversearchstatisticsdialog.cpp:55 ui/albumcovermanager.cpp:467
#: ../bin/src/ui_coversearchstatisticsdialog.h:75
#, qt-format
msgid "Got %1 covers out of %2 (%3 failed)"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:335
+#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Grey out non existent songs in my playlists"
msgstr ""
@@ -2519,7 +2513,7 @@ msgstr ""
msgid "Group Library by..."
msgstr ""
-#: globalsearch/globalsearchview.cpp:477 library/libraryfilterwidget.cpp:100
+#: globalsearch/globalsearchview.cpp:478 library/libraryfilterwidget.cpp:100
msgid "Group by"
msgstr ""
@@ -2551,8 +2545,8 @@ msgstr ""
msgid "Group by Genre/Artist/Album"
msgstr ""
-#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1369
-#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:141
+#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1402
+#: ui/organisedialog.cpp:71 ../bin/src/ui_groupbydialog.h:141
#: ../bin/src/ui_groupbydialog.h:160 ../bin/src/ui_groupbydialog.h:179
msgid "Grouping"
msgstr ""
@@ -2640,7 +2634,7 @@ msgstr ""
msgid "Identifying song"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:337
+#: ../bin/src/ui_behavioursettingspage.h:373
msgid ""
"If activated, clicking a selected song in the playlist view will let you "
"edit the tag value directly"
@@ -2660,6 +2654,10 @@ msgstr ""
msgid "Ignore \"The\" in artist names"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:423
+msgid "Ignore prefix word(s)"
+msgstr ""
+
#: ui/albumcoverchoicecontroller.cpp:44
msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
msgstr ""
@@ -2741,15 +2739,15 @@ msgstr ""
msgid "Installed"
msgstr ""
-#: core/database.cpp:585
+#: core/database.cpp:601
msgid "Integrity check"
msgstr ""
-#: ui/mainwindow.cpp:272
+#: ui/mainwindow.cpp:274
msgid "Internet"
msgstr ""
-#: ui/settingsdialog.cpp:156
+#: ui/settingsdialog.cpp:155
msgid "Internet providers"
msgstr ""
@@ -2762,7 +2760,7 @@ msgstr ""
msgid "Intro tracks"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:280
+#: internet/lastfm/lastfmservice.cpp:282
msgid "Invalid API key"
msgstr ""
@@ -2770,27 +2768,27 @@ msgstr ""
msgid "Invalid URL"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:270
+#: internet/lastfm/lastfmservice.cpp:272
msgid "Invalid format"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:266
+#: internet/lastfm/lastfmservice.cpp:268
msgid "Invalid method"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:272
+#: internet/lastfm/lastfmservice.cpp:274
msgid "Invalid parameters"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:274
+#: internet/lastfm/lastfmservice.cpp:276
msgid "Invalid resource specified"
msgstr "ভুল তথ্য দেয়া হয়েছে"
-#: internet/lastfm/lastfmservice.cpp:264
+#: internet/lastfm/lastfmservice.cpp:266
msgid "Invalid service"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:278
+#: internet/lastfm/lastfmservice.cpp:280
msgid "Invalid session key"
msgstr ""
@@ -2822,7 +2820,7 @@ msgstr ""
msgid "Jamendo database"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:350
+#: ../bin/src/ui_behavioursettingspage.h:389
msgid "Jump to previous song right away"
msgstr ""
@@ -2842,7 +2840,7 @@ msgstr ""
msgid "Keep buttons for %1 seconds..."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:321
+#: ../bin/src/ui_behavioursettingspage.h:360
msgid "Keep running in the background when the window is closed"
msgstr "উইন্ডো বন্ধ করা হলেও পেছনে চলতে থাকুক"
@@ -2859,7 +2857,7 @@ msgstr ""
msgid "Kuduro"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:323
+#: ../bin/src/ui_behavioursettingspage.h:362
msgid "Language"
msgstr ""
@@ -2891,7 +2889,7 @@ msgstr ""
msgid "Last played"
msgstr ""
-#: playlist/playlist.cpp:1378 ../bin/src/ui_edittagdialog.h:707
+#: playlist/playlist.cpp:1411 ../bin/src/ui_edittagdialog.h:707
msgctxt "A playlist's tag."
msgid "Last played"
msgstr ""
@@ -2900,11 +2898,11 @@ msgstr ""
msgid "Last.fm"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
msgid "Last.fm Authentication"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:287
+#: internet/lastfm/lastfmservice.cpp:289
msgid "Last.fm is currently busy, please try again in a few minutes"
msgstr ""
@@ -2928,12 +2926,12 @@ msgstr ""
msgid "Left"
msgstr ""
-#: playlist/playlist.cpp:1351 ui/organisedialog.cpp:79
+#: playlist/playlist.cpp:1384 ui/organisedialog.cpp:80
#: ui/qtsystemtrayicon.cpp:254 ../bin/src/ui_edittagdialog.h:702
msgid "Length"
msgstr "দৈর্ঘ্য"
-#: ui/mainwindow.cpp:251 ui/mainwindow.cpp:263
+#: ui/mainwindow.cpp:253 ui/mainwindow.cpp:265
#: ../bin/src/ui_seafilesettingspage.h:177
msgid "Library"
msgstr ""
@@ -2942,7 +2940,7 @@ msgstr ""
msgid "Library advanced grouping"
msgstr ""
-#: ui/mainwindow.cpp:2683
+#: ui/mainwindow.cpp:2709
msgid "Library rescan notice"
msgstr ""
@@ -2978,7 +2976,7 @@ msgstr ""
msgid "Load cover from disk..."
msgstr ""
-#: playlist/playlistcontainer.cpp:298
+#: playlist/playlistcontainer.cpp:300
msgid "Load playlist"
msgstr ""
@@ -2998,7 +2996,7 @@ msgstr ""
msgid "Loading smart playlist"
msgstr ""
-#: library/librarymodel.cpp:169
+#: library/librarymodel.cpp:170
msgid "Loading songs"
msgstr ""
@@ -3016,7 +3014,7 @@ msgstr ""
msgid "Loading tracks info"
msgstr ""
-#: library/librarymodel.cpp:164
+#: library/librarymodel.cpp:165
#: internet/podcasts/podcastdiscoverymodel.cpp:105 widgets/prettyimage.cpp:168
#: widgets/widgetfadehelper.cpp:96 ../bin/src/ui_addpodcastdialog.h:179
#: ../bin/src/ui_searchpreview.h:105 ../bin/src/ui_organisedialog.h:261
@@ -3029,7 +3027,6 @@ msgstr ""
#: ../bin/src/ui_digitallyimportedsettingspage.h:162
#: ../bin/src/ui_magnatunesettingspage.h:163
-#: ../bin/src/ui_soundcloudsettingspage.h:102
#: ../bin/src/ui_spotifysettingspage.h:210
#: ../bin/src/ui_subsonicsettingspage.h:137
#: ../bin/src/ui_lastfmsettingspage.h:132
@@ -3070,7 +3067,7 @@ msgstr ""
msgid "Low complexity profile (LC)"
msgstr ""
-#: ui/organisedialog.cpp:71 ../bin/src/ui_songinfosettingspage.h:158
+#: ui/organisedialog.cpp:72 ../bin/src/ui_songinfosettingspage.h:158
msgid "Lyrics"
msgstr ""
@@ -3083,11 +3080,11 @@ msgstr ""
msgid "Lyrics from the tag"
msgstr ""
-#: transcoder/transcoder.cpp:235
+#: transcoder/transcoder.cpp:236
msgid "M4A AAC"
msgstr ""
-#: core/song.cpp:436 transcoder/transcoder.cpp:238
+#: core/song.cpp:436 transcoder/transcoder.cpp:239
#: ../bin/src/ui_transcodersettingspage.h:174
msgid "MP3"
msgstr ""
@@ -3138,7 +3135,7 @@ msgstr ""
msgid "Make playlist available offline"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:299
+#: internet/lastfm/lastfmservice.cpp:301
msgid "Malformed response"
msgstr ""
@@ -3179,7 +3176,7 @@ msgstr ""
msgid "Maximum bitrate"
msgstr ""
-#: ripper/ripcddialog.cpp:153
+#: ripper/ripcddialog.cpp:155
msgid "Media has changed. Reloading"
msgstr ""
@@ -3229,7 +3226,7 @@ msgstr ""
msgid "Months"
msgstr ""
-#: playlist/playlist.cpp:1406
+#: playlist/playlist.cpp:1439
msgid "Mood"
msgstr ""
@@ -3259,7 +3256,7 @@ msgstr ""
msgid "Move down"
msgstr ""
-#: ui/mainwindow.cpp:712 widgets/fileviewlist.cpp:42
+#: ui/mainwindow.cpp:714 widgets/fileviewlist.cpp:42
msgid "Move to library..."
msgstr ""
@@ -3268,7 +3265,7 @@ msgstr ""
msgid "Move up"
msgstr ""
-#: transcoder/transcodedialog.cpp:225 ui/mainwindow.cpp:2050
+#: transcoder/transcodedialog.cpp:227 ui/mainwindow.cpp:2076
msgid "Music"
msgstr "সঙ্গীত"
@@ -3315,8 +3312,8 @@ msgstr ""
msgid "Never played"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:343
-#: ../bin/src/ui_behavioursettingspage.h:363
+#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:402
msgid "Never start playing"
msgstr ""
@@ -3326,7 +3323,7 @@ msgstr ""
msgid "New folder"
msgstr ""
-#: ui/mainwindow.cpp:1867 ../bin/src/ui_mainwindow.h:709
+#: ui/mainwindow.cpp:1893 ../bin/src/ui_mainwindow.h:709
msgid "New playlist"
msgstr ""
@@ -3371,7 +3368,7 @@ msgstr ""
msgid "No background image"
msgstr ""
-#: ui/albumcovermanager.cpp:800
+#: ui/albumcovermanager.cpp:802
msgid "No covers to export."
msgstr ""
@@ -3379,7 +3376,7 @@ msgstr ""
msgid "No long blocks"
msgstr ""
-#: playlist/playlistcontainer.cpp:383
+#: playlist/playlistcontainer.cpp:385
msgid ""
"No matches found. Clear the search box to show the whole playlist again."
msgstr ""
@@ -3393,7 +3390,7 @@ msgstr ""
msgid "None"
msgstr ""
-#: library/libraryview.cpp:673 ui/mainwindow.cpp:2385 ui/mainwindow.cpp:2564
+#: library/libraryview.cpp:673 ui/mainwindow.cpp:2411 ui/mainwindow.cpp:2590
msgid "None of the selected songs were suitable for copying to a device"
msgstr ""
@@ -3405,6 +3402,10 @@ msgstr ""
msgid "Normal block type"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:428
+msgid "Normal duration (at least 4 minutes or half the track length)"
+msgstr ""
+
#: playlist/playlistsequence.cpp:203
msgid "Not available while using a dynamic playlist"
msgstr ""
@@ -3413,19 +3414,19 @@ msgstr ""
msgid "Not connected"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:290
+#: internet/lastfm/lastfmservice.cpp:292
msgid "Not enough content"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:294
+#: internet/lastfm/lastfmservice.cpp:296
msgid "Not enough fans"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:292
+#: internet/lastfm/lastfmservice.cpp:294
msgid "Not enough members"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:296
+#: internet/lastfm/lastfmservice.cpp:298
msgid "Not enough neighbors"
msgstr ""
@@ -3433,7 +3434,7 @@ msgstr ""
msgid "Not installed"
msgstr ""
-#: globalsearch/globalsearchsettingspage.cpp:120
+#: globalsearch/globalsearchsettingspage.cpp:122
#: globalsearch/searchproviderstatuswidget.cpp:47
msgid "Not logged in"
msgstr ""
@@ -3470,19 +3471,19 @@ msgstr ""
msgid "Ogg FLAC"
msgstr ""
-#: transcoder/transcoder.cpp:244
+#: transcoder/transcoder.cpp:245
msgid "Ogg Flac"
msgstr ""
-#: core/song.cpp:444 transcoder/transcoder.cpp:250
+#: core/song.cpp:444 transcoder/transcoder.cpp:251
msgid "Ogg Opus"
msgstr ""
-#: core/song.cpp:440 transcoder/transcoder.cpp:247
+#: core/song.cpp:440 transcoder/transcoder.cpp:248
msgid "Ogg Speex"
msgstr ""
-#: core/song.cpp:442 transcoder/transcoder.cpp:241
+#: core/song.cpp:442 transcoder/transcoder.cpp:242
#: ../bin/src/ui_magnatunedownloaddialog.h:135
#: ../bin/src/ui_magnatunesettingspage.h:169
msgid "Ogg Vorbis"
@@ -3516,13 +3517,12 @@ msgstr ""
msgid "Opacity"
msgstr ""
-#: internet/digitally/digitallyimportedservicebase.cpp:175
+#: internet/digitally/digitallyimportedservicebase.cpp:177
#: internet/icecast/icecastservice.cpp:298
#: internet/jamendo/jamendoservice.cpp:427
#: internet/magnatune/magnatuneservice.cpp:287
#: internet/somafm/somafmservice.cpp:102
#: internet/intergalacticfm/intergalacticfmservice.cpp:102
-#: internet/soundcloud/soundcloudservice.cpp:377
#, qt-format
msgid "Open %1 in browser"
msgstr ""
@@ -3539,7 +3539,7 @@ msgstr ""
msgid "Open OPML file..."
msgstr ""
-#: transcoder/transcodedialog.cpp:240
+#: transcoder/transcodedialog.cpp:242
msgid "Open a directory to import music from"
msgstr ""
@@ -3555,13 +3555,13 @@ msgstr ""
msgid "Open in Google Drive"
msgstr ""
-#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:460
+#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:461
#: internet/core/internetservice.cpp:62 library/libraryview.cpp:389
#: widgets/fileviewlist.cpp:36
msgid "Open in new playlist"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:358
+#: ../bin/src/ui_behavioursettingspage.h:397
msgctxt "Refers to behavior settings in Clementine settings page."
msgid "Open in new playlist"
msgstr ""
@@ -3575,7 +3575,7 @@ msgstr ""
msgid "Open..."
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:276
+#: internet/lastfm/lastfmservice.cpp:278
msgid "Operation failed"
msgstr ""
@@ -3601,7 +3601,7 @@ msgstr ""
msgid "Organise Files"
msgstr ""
-#: library/libraryview.cpp:416 ui/mainwindow.cpp:715
+#: library/libraryview.cpp:416 ui/mainwindow.cpp:717
msgid "Organise files..."
msgstr ""
@@ -3613,8 +3613,8 @@ msgstr ""
msgid "Original tags"
msgstr ""
-#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1359
-#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:135
+#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1392
+#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:135
#: ../bin/src/ui_groupbydialog.h:154 ../bin/src/ui_groupbydialog.h:173
msgid "Original year"
msgstr ""
@@ -3685,7 +3685,7 @@ msgstr ""
msgid "Password"
msgstr ""
-#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1160 ui/mainwindow.cpp:1663
+#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1170 ui/mainwindow.cpp:1689
#: ui/qtsystemtrayicon.cpp:189 wiimotedev/wiimotesettingspage.cpp:114
msgid "Pause"
msgstr ""
@@ -3698,8 +3698,8 @@ msgstr ""
msgid "Paused"
msgstr ""
-#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1367
-#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:140
+#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1400
+#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:140
#: ../bin/src/ui_groupbydialog.h:159 ../bin/src/ui_groupbydialog.h:178
#: ../bin/src/ui_edittagdialog.h:727
msgid "Performer"
@@ -3713,14 +3713,14 @@ msgstr ""
msgid "Plain sidebar"
msgstr ""
-#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:676 ui/mainwindow.cpp:1126
-#: ui/mainwindow.cpp:1145 ui/mainwindow.cpp:1667 ui/qtsystemtrayicon.cpp:177
+#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:678 ui/mainwindow.cpp:1134
+#: ui/mainwindow.cpp:1155 ui/mainwindow.cpp:1693 ui/qtsystemtrayicon.cpp:177
#: ui/qtsystemtrayicon.cpp:203 wiimotedev/wiimotesettingspage.cpp:107
#: ../bin/src/ui_mainwindow.h:675
msgid "Play"
msgstr ""
-#: playlist/playlist.cpp:1374 ../bin/src/ui_edittagdialog.h:703
+#: playlist/playlist.cpp:1407 ../bin/src/ui_edittagdialog.h:703
msgid "Play count"
msgstr ""
@@ -3728,16 +3728,16 @@ msgstr ""
msgid "Play if stopped, pause if playing"
msgstr "যদি বন্ধ থাকে তবে চালাও, যদি চালু থাকে তবে আটকাও"
-#: ../bin/src/ui_behavioursettingspage.h:344
-#: ../bin/src/ui_behavioursettingspage.h:364
+#: ../bin/src/ui_behavioursettingspage.h:383
+#: ../bin/src/ui_behavioursettingspage.h:403
msgid "Play if there is nothing already playing"
msgstr "চালু কর যদি অন্য কিছু চালু না থাকে"
-#: library/libraryview.cpp:396 ui/mainwindow.cpp:1774
+#: library/libraryview.cpp:396 ui/mainwindow.cpp:1800
msgid "Play next"
msgstr ""
-#: ui/mainwindow.cpp:1772
+#: ui/mainwindow.cpp:1798
msgid "Play selected tracks next"
msgstr ""
@@ -3757,7 +3757,7 @@ msgstr ""
msgid "Player options"
msgstr ""
-#: playlist/playlistcontainer.cpp:294 playlist/playlistlistcontainer.cpp:325
+#: playlist/playlistcontainer.cpp:296 playlist/playlistlistcontainer.cpp:325
#: playlist/playlistmanager.cpp:87 playlist/playlistmanager.cpp:156
#: playlist/playlistmanager.cpp:525 playlist/playlisttabbar.cpp:366
msgid "Playlist"
@@ -3776,7 +3776,7 @@ msgstr ""
msgid "Playlist type"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:133 ui/mainwindow.cpp:269
+#: ui/mainwindow.cpp:271
msgid "Playlists"
msgstr ""
@@ -3784,7 +3784,7 @@ msgstr ""
msgid "Please close your browser and return to Clementine."
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
#, qt-format
msgid "Please open this URL in your browser: %1"
msgstr ""
@@ -3867,7 +3867,7 @@ msgstr ""
msgid "Press a key combination to use for %1..."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:347
+#: ../bin/src/ui_behavioursettingspage.h:386
msgid "Pressing \"Previous\" in player will..."
msgstr ""
@@ -3944,12 +3944,12 @@ msgstr ""
msgid "Queue Manager"
msgstr "ক্রম সংগঠক"
-#: ui/mainwindow.cpp:1767
+#: ui/mainwindow.cpp:1793
msgid "Queue selected tracks"
msgstr ""
-#: globalsearch/globalsearchview.cpp:464 library/libraryview.cpp:393
-#: ui/mainwindow.cpp:1765
+#: globalsearch/globalsearchview.cpp:465 library/libraryview.cpp:393
+#: ui/mainwindow.cpp:1791
msgid "Queue track"
msgstr ""
@@ -3998,12 +3998,12 @@ msgstr ""
msgid "Rate the current song 5 stars"
msgstr ""
-#: playlist/playlist.cpp:1372 ../bin/src/ui_edittagdialog.h:711
+#: playlist/playlist.cpp:1405 ../bin/src/ui_edittagdialog.h:711
msgid "Rating"
msgstr ""
#: internet/magnatune/magnatunedownloaddialog.cpp:309
-#: ui/albumcovermanager.cpp:212
+#: ui/albumcovermanager.cpp:214
msgid "Really cancel?"
msgstr ""
@@ -4030,7 +4030,7 @@ msgstr ""
msgid "Refresh station list"
msgstr ""
-#: internet/digitally/digitallyimportedservicebase.cpp:178
+#: internet/digitally/digitallyimportedservicebase.cpp:180
msgid "Refresh streams"
msgstr ""
@@ -4039,7 +4039,7 @@ msgid "Reggae"
msgstr ""
#: playlist/playlistsaveoptionsdialog.cpp:33
-#: ../bin/src/ui_behavioursettingspage.h:380
+#: ../bin/src/ui_behavioursettingspage.h:419
msgid "Relative"
msgstr ""
@@ -4047,8 +4047,8 @@ msgstr ""
msgid "Remember Wii remote swing"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:332
-msgid "Remember from last time"
+#: ../bin/src/ui_behavioursettingspage.h:371
+msgid "Remember from &last time"
msgstr ""
#: ../bin/src/ui_playlistsaveoptionsdialog.h:99
@@ -4121,13 +4121,13 @@ msgstr ""
msgid "Repeat track"
msgstr ""
-#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:457
+#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:458
#: internet/core/internetservice.cpp:55 library/libraryview.cpp:386
#: widgets/fileviewlist.cpp:34
msgid "Replace current playlist"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:357
+#: ../bin/src/ui_behavioursettingspage.h:396
msgid "Replace the playlist"
msgstr ""
@@ -4159,7 +4159,7 @@ msgstr ""
msgid "Reset play counts"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:351
+#: ../bin/src/ui_behavioursettingspage.h:390
msgid "Restart song, then jump to previous if pressed again"
msgstr ""
@@ -4172,7 +4172,7 @@ msgstr ""
msgid "Restrict to ASCII characters"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:333
+#: ../bin/src/ui_behavioursettingspage.h:376
msgid "Resume playback on start"
msgstr ""
@@ -4188,7 +4188,7 @@ msgstr ""
msgid "Rip"
msgstr ""
-#: ripper/ripcddialog.cpp:105
+#: ripper/ripcddialog.cpp:107
msgid "Rip CD"
msgstr ""
@@ -4226,13 +4226,13 @@ msgstr ""
msgid "Safely remove the device after copying"
msgstr ""
-#: playlist/playlist.cpp:1387 ../bin/src/ui_edittagdialog.h:708
+#: playlist/playlist.cpp:1420 ../bin/src/ui_edittagdialog.h:708
#: ../bin/src/ui_playbacksettingspage.h:371
#: ../bin/src/ui_streamdetailsdialog.h:141
msgid "Sample rate"
msgstr ""
-#: ui/organisedialog.cpp:81
+#: ui/organisedialog.cpp:82
msgid "Samplerate"
msgstr ""
@@ -4306,7 +4306,7 @@ msgstr ""
msgid "Scale size"
msgstr ""
-#: playlist/playlist.cpp:1380 ../bin/src/ui_edittagdialog.h:709
+#: playlist/playlist.cpp:1413 ../bin/src/ui_edittagdialog.h:709
msgid "Score"
msgstr ""
@@ -4314,7 +4314,7 @@ msgstr ""
msgid "Scrobble tracks that I listen to"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:320
+#: ../bin/src/ui_behavioursettingspage.h:359
msgid "Scroll over icon to change track"
msgstr ""
@@ -4328,7 +4328,7 @@ msgstr ""
msgid "Search"
msgstr ""
-#: ui/mainwindow.cpp:260 ../bin/src/ui_globalsearchsettingspage.h:141
+#: ui/mainwindow.cpp:262 ../bin/src/ui_globalsearchsettingspage.h:141
msgctxt "Global search settings dialog title."
msgid "Search"
msgstr ""
@@ -4353,7 +4353,7 @@ msgstr ""
msgid "Search automatically"
msgstr ""
-#: ui/mainwindow.cpp:696
+#: ui/mainwindow.cpp:698
msgid "Search for album"
msgstr ""
@@ -4366,11 +4366,11 @@ msgstr ""
msgid "Search for anything"
msgstr ""
-#: ui/mainwindow.cpp:693
+#: ui/mainwindow.cpp:695
msgid "Search for artist"
msgstr ""
-#: globalsearch/globalsearchview.cpp:473 library/libraryview.cpp:401
+#: globalsearch/globalsearchview.cpp:474 library/libraryview.cpp:401
msgid "Search for this"
msgstr ""
@@ -4390,7 +4390,6 @@ msgstr ""
msgid "Search options"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:119
#: internet/spotify/spotifyservice.cpp:400
msgid "Search results"
msgstr ""
@@ -4424,7 +4423,7 @@ msgstr ""
msgid "Seek the currently playing track to an absolute position"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:373
+#: ../bin/src/ui_behavioursettingspage.h:412
msgid "Seeking using a keyboard shortcut or mouse wheel"
msgstr ""
@@ -4480,11 +4479,11 @@ msgstr ""
msgid "Server details"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:282
+#: internet/lastfm/lastfmservice.cpp:284
msgid "Service offline"
msgstr ""
-#: ui/mainwindow.cpp:1812
+#: ui/mainwindow.cpp:1838
#, qt-format
msgid "Set %1 to \"%2\"..."
msgstr ""
@@ -4501,6 +4500,10 @@ msgstr ""
msgid "Settings"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:429
+msgid "Short duration (at least 1 minute or half the track length)"
+msgstr ""
+
#: ../bin/src/ui_globalshortcutssettingspage.h:172
msgid "Shortcut"
msgstr ""
@@ -4560,7 +4563,7 @@ msgstr ""
msgid "Show above status bar"
msgstr ""
-#: ui/mainwindow.cpp:643
+#: ui/mainwindow.cpp:645
msgid "Show all songs"
msgstr ""
@@ -4580,12 +4583,12 @@ msgstr ""
msgid "Show fullsize..."
msgstr ""
-#: library/libraryview.cpp:433 ui/mainwindow.cpp:725
+#: library/libraryview.cpp:433 ui/mainwindow.cpp:727
#: widgets/fileviewlist.cpp:53
msgid "Show in file browser..."
msgstr ""
-#: ui/mainwindow.cpp:727
+#: ui/mainwindow.cpp:729
msgid "Show in library..."
msgstr ""
@@ -4597,11 +4600,11 @@ msgstr ""
msgid "Show moodbar"
msgstr ""
-#: ui/mainwindow.cpp:645
+#: ui/mainwindow.cpp:647
msgid "Show only duplicates"
msgstr ""
-#: ui/mainwindow.cpp:647
+#: ui/mainwindow.cpp:649
msgid "Show only untagged"
msgstr ""
@@ -4625,7 +4628,7 @@ msgstr ""
msgid "Show the scrobble button in the main window"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:319
+#: ../bin/src/ui_behavioursettingspage.h:358
msgid "Show tray icon"
msgstr ""
@@ -4685,7 +4688,7 @@ msgstr ""
msgid "Skip backwards in playlist"
msgstr ""
-#: playlist/playlist.cpp:1376 ../bin/src/ui_edittagdialog.h:705
+#: playlist/playlist.cpp:1409 ../bin/src/ui_edittagdialog.h:705
msgid "Skip count"
msgstr ""
@@ -4693,11 +4696,11 @@ msgstr ""
msgid "Skip forwards in playlist"
msgstr ""
-#: ui/mainwindow.cpp:1783
+#: ui/mainwindow.cpp:1809
msgid "Skip selected tracks"
msgstr ""
-#: ui/mainwindow.cpp:1781
+#: ui/mainwindow.cpp:1807
msgid "Skip track"
msgstr ""
@@ -4713,7 +4716,7 @@ msgstr ""
msgid "Smart playlist"
msgstr ""
-#: library/librarymodel.cpp:1367
+#: library/librarymodel.cpp:1368
msgid "Smart playlists"
msgstr ""
@@ -4729,7 +4732,7 @@ msgstr ""
msgid "Song Information"
msgstr "গানের তথ্য"
-#: ui/mainwindow.cpp:280
+#: ui/mainwindow.cpp:282
msgid "Song info"
msgstr "গানের তথ্য"
@@ -4761,11 +4764,7 @@ msgstr ""
msgid "Sorting"
msgstr ""
-#: ../bin/src/ui_soundcloudsettingspage.h:100
-msgid "SoundCloud"
-msgstr ""
-
-#: playlist/playlist.cpp:1404
+#: playlist/playlist.cpp:1437
msgid "Source"
msgstr "উৎস"
@@ -4811,7 +4810,7 @@ msgstr ""
msgid "Starred"
msgstr ""
-#: ripper/ripcddialog.cpp:72
+#: ripper/ripcddialog.cpp:74
msgid "Start ripping"
msgstr ""
@@ -4819,18 +4818,17 @@ msgstr ""
msgid "Start the playlist currently playing"
msgstr ""
-#: transcoder/transcodedialog.cpp:90
+#: transcoder/transcodedialog.cpp:92
msgid "Start transcoding"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:121
#: internet/spotify/spotifyservice.cpp:402
msgid ""
"Start typing something on the search box above to fill this search results "
"list"
msgstr ""
-#: transcoder/transcoder.cpp:397
+#: transcoder/transcoder.cpp:398
#, qt-format
msgid "Starting %1"
msgstr ""
@@ -4856,7 +4854,7 @@ msgstr ""
msgid "Stop after every track"
msgstr ""
-#: ui/mainwindow.cpp:680 ../bin/src/ui_mainwindow.h:679
+#: ui/mainwindow.cpp:682 ../bin/src/ui_mainwindow.h:679
msgid "Stop after this track"
msgstr ""
@@ -4868,7 +4866,7 @@ msgstr ""
msgid "Stop playback after current track"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:334
+#: ../bin/src/ui_behavioursettingspage.h:377
msgid "Stop playback if song fails to play"
msgstr ""
@@ -4916,7 +4914,7 @@ msgstr ""
msgid "Success!"
msgstr ""
-#: transcoder/transcoder.cpp:189
+#: transcoder/transcoder.cpp:190
#, qt-format
msgid "Successfully written %1"
msgstr ""
@@ -4984,7 +4982,7 @@ msgstr ""
msgid "Text options"
msgstr ""
-#: ui/about.cpp:74
+#: ui/about.cpp:76
msgid "Thanks to"
msgstr ""
@@ -5024,7 +5022,7 @@ msgid ""
"license key. Visit subsonic.org for details."
msgstr ""
-#: ui/mainwindow.cpp:2674
+#: ui/mainwindow.cpp:2700
msgid ""
"The version of Clementine you've just updated to requires a full library "
"rescan because of the new features listed below:"
@@ -5048,13 +5046,13 @@ msgstr ""
msgid "There was a problem parsing the response from the iTunes Store"
msgstr ""
-#: ui/organiseerrordialog.cpp:54
+#: ui/organiseerrordialog.cpp:56
msgid ""
"There were problems copying some songs. The following files could not be "
"copied:"
msgstr ""
-#: ui/organiseerrordialog.cpp:61
+#: ui/organiseerrordialog.cpp:63
msgid ""
"There were problems deleting some songs. The following files could not be "
"deleted:"
@@ -5066,7 +5064,7 @@ msgid ""
"continue?"
msgstr ""
-#: library/libraryview.cpp:679 ui/mainwindow.cpp:2433 widgets/fileview.cpp:189
+#: library/libraryview.cpp:679 ui/mainwindow.cpp:2459 widgets/fileview.cpp:189
msgid ""
"These files will be permanently deleted from disk, are you sure you want to "
"continue?"
@@ -5137,7 +5135,7 @@ msgstr ""
msgid "This option can be changed in the \"Behavior\" preferences"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:284
+#: internet/lastfm/lastfmservice.cpp:286
msgid "This stream is for paid subscribers only"
msgstr ""
@@ -5146,11 +5144,11 @@ msgstr ""
msgid "This type of device is not supported: %1"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:374
+#: ../bin/src/ui_behavioursettingspage.h:413
msgid "Time step"
msgstr ""
-#: playlist/playlist.cpp:1345 ui/organisedialog.cpp:63
+#: playlist/playlist.cpp:1378 ui/organisedialog.cpp:64
#: ui/qtsystemtrayicon.cpp:247 ../bin/src/ui_about.h:141
#: ../bin/src/ui_edittagdialog.h:719 ../bin/src/ui_trackselectiondialog.h:210
#: ../bin/src/ui_ripcddialog.h:306
@@ -5169,7 +5167,7 @@ msgstr ""
msgid "Toggle fullscreen"
msgstr ""
-#: ui/mainwindow.cpp:1769
+#: ui/mainwindow.cpp:1795
msgid "Toggle queue status"
msgstr ""
@@ -5201,11 +5199,11 @@ msgstr ""
msgid "Total albums:"
msgstr ""
-#: covers/coversearchstatisticsdialog.cpp:70
+#: covers/coversearchstatisticsdialog.cpp:72
msgid "Total bytes transferred"
msgstr ""
-#: covers/coversearchstatisticsdialog.cpp:67
+#: covers/coversearchstatisticsdialog.cpp:69
msgid "Total network requests made"
msgstr ""
@@ -5213,15 +5211,11 @@ msgstr ""
msgid "Trac&k"
msgstr ""
-#: playlist/playlist.cpp:1353 ui/organisedialog.cpp:72
+#: playlist/playlist.cpp:1386 ui/organisedialog.cpp:73
#: ../bin/src/ui_trackselectiondialog.h:212 ../bin/src/ui_ripcddialog.h:304
msgid "Track"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:136
-msgid "Tracks"
-msgstr ""
-
#: ../bin/src/ui_transcodedialog.h:213 ../bin/src/ui_mainwindow.h:706
msgid "Transcode Music"
msgstr ""
@@ -5234,7 +5228,7 @@ msgstr ""
msgid "Transcoding"
msgstr ""
-#: transcoder/transcoder.cpp:317
+#: transcoder/transcoder.cpp:318
#, qt-format
msgid "Transcoding %1 files using %2 threads"
msgstr ""
@@ -5285,8 +5279,8 @@ msgstr ""
msgid "Unable to download %1 (%2)"
msgstr ""
-#: core/song.cpp:465 library/librarymodel.cpp:374 library/librarymodel.cpp:379
-#: library/librarymodel.cpp:383 library/librarymodel.cpp:1159
+#: core/song.cpp:465 library/librarymodel.cpp:375 library/librarymodel.cpp:380
+#: library/librarymodel.cpp:384 library/librarymodel.cpp:1160
#: library/savedgroupingmanager.cpp:103 playlist/playlistdelegates.cpp:305
#: playlist/playlistmanager.cpp:532 playlist/playlistmanager.cpp:533
#: songinfo/streamdiscoverer.cpp:87 ui/albumcoverchoicecontroller.cpp:127
@@ -5299,7 +5293,7 @@ msgid "Unknown content-type"
msgstr ""
#: internet/digitally/digitallyimportedclient.cpp:74
-#: internet/lastfm/lastfmservice.cpp:303
+#: internet/lastfm/lastfmservice.cpp:305
msgid "Unknown error"
msgstr ""
@@ -5307,11 +5301,11 @@ msgstr ""
msgid "Unset cover"
msgstr ""
-#: ui/mainwindow.cpp:1779
+#: ui/mainwindow.cpp:1805
msgid "Unskip selected tracks"
msgstr ""
-#: ui/mainwindow.cpp:1777
+#: ui/mainwindow.cpp:1803
msgid "Unskip track"
msgstr ""
@@ -5422,7 +5416,7 @@ msgstr ""
msgid "Use temporal noise shaping"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:326
+#: ../bin/src/ui_behavioursettingspage.h:365
msgid "Use the system default"
msgstr ""
@@ -5442,7 +5436,7 @@ msgstr ""
msgid "Used"
msgstr ""
-#: ui/settingsdialog.cpp:147
+#: ui/settingsdialog.cpp:146
msgid "User interface"
msgstr ""
@@ -5454,7 +5448,7 @@ msgstr ""
msgid "Username"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:340
+#: ../bin/src/ui_behavioursettingspage.h:379
msgid "Using the menu to add a song will..."
msgstr ""
@@ -5471,8 +5465,8 @@ msgstr ""
msgid "Variable bit rate"
msgstr ""
-#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:300
-#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:264
+#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:301
+#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:266
msgid "Various artists"
msgstr ""
@@ -5480,7 +5474,7 @@ msgstr ""
msgid "Verify Server certificate"
msgstr ""
-#: ui/about.cpp:33
+#: ui/about.cpp:35
#, qt-format
msgid "Version %1"
msgstr ""
@@ -5527,11 +5521,11 @@ msgstr ""
msgid "WMA"
msgstr ""
-#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:322
+#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:361
msgid "Warn me when closing a playlist tab"
msgstr ""
-#: core/song.cpp:448 transcoder/transcoder.cpp:256
+#: core/song.cpp:448 transcoder/transcoder.cpp:257
msgid "Wav"
msgstr ""
@@ -5547,20 +5541,28 @@ msgstr ""
msgid "Weeks"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:329
+#: ../bin/src/ui_behavioursettingspage.h:368
msgid "When Clementine starts"
msgstr "যখন ক্লেমেন্টাইন চালু হয়"
+#: ../bin/src/ui_behavioursettingspage.h:427
+msgid "When calculating play counts, use"
+msgstr ""
+
#: ../bin/src/ui_librarysettingspage.h:203
msgid ""
"When looking for album art Clementine will first look for picture files that contain one of these words.\n"
"If there are no matches then it will use the largest image in the directory."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:377
+#: ../bin/src/ui_behavioursettingspage.h:416
msgid "When saving a playlist, file paths should be"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:422
+msgid "When sorting artists, albums and titles"
+msgstr ""
+
#: ../bin/src/ui_globalsearchsettingspage.h:147
msgid "When the list is empty..."
msgstr "যখন তালিকা খালি..."
@@ -5619,7 +5621,7 @@ msgstr ""
msgid "Windows Media 64k"
msgstr ""
-#: core/song.cpp:428 transcoder/transcoder.cpp:253
+#: core/song.cpp:428 transcoder/transcoder.cpp:254
msgid "Windows Media audio"
msgstr ""
@@ -5633,7 +5635,7 @@ msgid ""
"well?"
msgstr ""
-#: ui/mainwindow.cpp:2681
+#: ui/mainwindow.cpp:2707
msgid "Would you like to run a full rescan right now?"
msgstr ""
@@ -5641,7 +5643,7 @@ msgstr ""
msgid "Write all songs statistics into songs' files"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:421
msgid "Write metadata"
msgstr ""
@@ -5649,8 +5651,8 @@ msgstr ""
msgid "Wrong username or password."
msgstr ""
-#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1357
-#: ui/organisedialog.cpp:75 ../bin/src/ui_groupbydialog.h:134
+#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1390
+#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:134
#: ../bin/src/ui_groupbydialog.h:153 ../bin/src/ui_groupbydialog.h:172
#: ../bin/src/ui_trackselectiondialog.h:211 ../bin/src/ui_ripcddialog.h:312
msgid "Year"
@@ -5727,13 +5729,6 @@ msgstr ""
msgid "You do not have an active subscription"
msgstr ""
-#: ../bin/src/ui_soundcloudsettingspage.h:101
-msgid ""
-"You don't need to be logged in to search and to listen to music on "
-"SoundCloud. However, you need to login to access your playlists and your "
-"stream."
-msgstr ""
-
#: internet/spotify/spotifyservice.cpp:205
msgid ""
"You have been logged out of Spotify, please re-enter your password in the "
@@ -5755,7 +5750,7 @@ msgid ""
"shortcuts in Clementine."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:328
+#: ../bin/src/ui_behavioursettingspage.h:367
msgid "You will need to restart Clementine if you change the language."
msgstr ""
@@ -5831,7 +5826,7 @@ msgstr ""
msgid "biggest first"
msgstr ""
-#: playlist/playlistview.cpp:241 ui/edittagdialog.cpp:500
+#: playlist/playlistview.cpp:242 ui/edittagdialog.cpp:500
msgid "bpm"
msgstr ""
@@ -5888,7 +5883,7 @@ msgstr ""
#: internet/spotify/spotifysettingspage.cpp:62
#: internet/spotify/spotifysettingspage.cpp:63
-#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:245
+#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:246
#: ui/edittagdialog.cpp:502
msgid "kbps"
msgstr ""
diff --git a/src/translations/br.po b/src/translations/br.po
index 1ffd9397c..df50d3d0d 100644
--- a/src/translations/br.po
+++ b/src/translations/br.po
@@ -14,7 +14,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
-"PO-Revision-Date: 2018-09-17 13:31+0000\n"
+"PO-Revision-Date: 2018-10-20 12:14+0000\n"
"Last-Translator: hatstand \n"
"Language-Team: Breton (http://www.transifex.com/davidsansome/clementine/language/br/)\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -57,7 +57,7 @@ msgstr " me"
msgid " pt"
msgstr " pik"
-#: ../bin/src/ui_behavioursettingspage.h:375
+#: ../bin/src/ui_behavioursettingspage.h:414
msgid " s"
msgstr "s"
@@ -96,7 +96,7 @@ msgstr "%1 a zevezhioù 'zo"
msgid "%1 on %2"
msgstr "%1 war %2"
-#: playlistparsers/playlistparser.cpp:87
+#: playlistparsers/playlistparser.cpp:89
#, qt-format
msgid "%1 playlists (%2)"
msgstr "%1 roll seniñ (%2)"
@@ -126,12 +126,12 @@ msgstr "%1 a donioù kavet"
msgid "%1 songs found (showing %2)"
msgstr "%1 a donioù kavet (%2 diskouezet)"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
#, qt-format
msgid "%1 tracks"
msgstr "%1 a roudoù"
-#: ui/albumcovermanager.cpp:472
+#: ui/albumcovermanager.cpp:474
#, qt-format
msgid "%1 transferred"
msgstr "%1 kaset"
@@ -156,19 +156,19 @@ msgstr "bet selaouet %L1 a wechoù"
msgid "%filename%"
msgstr "%filename%"
-#: transcoder/transcodedialog.cpp:214
+#: transcoder/transcodedialog.cpp:216
#, c-format, qt-plural-format
msgctxt ""
msgid "%n failed"
msgstr "%n c'hwitet"
-#: transcoder/transcodedialog.cpp:209
+#: transcoder/transcodedialog.cpp:211
#, c-format, qt-plural-format
msgctxt ""
msgid "%n finished"
msgstr "%n echuet"
-#: transcoder/transcodedialog.cpp:203
+#: transcoder/transcodedialog.cpp:205
#, c-format, qt-plural-format
msgctxt ""
msgid "%n remaining"
@@ -267,7 +267,7 @@ msgstr "(disheñvel a-dreuz kanaouennoù liesseurt)"
msgid ", by "
msgstr ", gant"
-#: ui/about.cpp:84
+#: ui/about.cpp:86
msgid "...and all the Amarok contributors"
msgstr "... Ha holl kenlabourerien Amarok"
@@ -287,7 +287,7 @@ msgstr "0px"
msgid "1 day"
msgstr "1 devezh"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
msgid "1 track"
msgstr "1 ton"
@@ -399,6 +399,10 @@ msgid ""
"A song will be included in the playlist if it matches these conditions."
msgstr "Un ton a vo lakaet er roll seniñ ma glot gant an amplegadoù-mañ :"
+#: ../bin/src/ui_behavioursettingspage.h:417
+msgid "A&utomatic"
+msgstr ""
+
#: smartplaylists/searchterm.cpp:396
msgid "A-Z"
msgstr "A-Z"
@@ -427,11 +431,11 @@ msgstr "AIFF"
msgid "ALL GLORY TO THE HYPNOTOAD"
msgstr "ALL GLORY TO THE HYPNOTOAD"
-#: ui/albumcovermanager.cpp:105 ui/albumcoversearcher.cpp:158
+#: ui/albumcovermanager.cpp:107 ui/albumcoversearcher.cpp:158
msgid "Abort"
msgstr "Dilezel"
-#: ui/about.cpp:30
+#: ui/about.cpp:32
#, qt-format
msgid "About %1"
msgstr "A-zivout %1"
@@ -445,7 +449,7 @@ msgid "About Qt..."
msgstr "A-zivout Qt..."
#: playlist/playlistsaveoptionsdialog.cpp:34
-#: ../bin/src/ui_behavioursettingspage.h:379
+#: ../bin/src/ui_behavioursettingspage.h:418
msgid "Absolute"
msgstr "Absolut"
@@ -472,10 +476,6 @@ msgstr "Oberenn"
msgid "Activate/Deactivate Wii Remote"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:128
-msgid "Activities stream"
-msgstr "Red obererezhioù"
-
#: internet/podcasts/addpodcastdialog.cpp:63
msgid "Add Podcast"
msgstr "Ouzhpennañ ar podkast"
@@ -504,7 +504,7 @@ msgstr "Ouzhpennañ ul lanv all..."
msgid "Add directory..."
msgstr "Ouzhpennañ un teuliad..."
-#: ui/mainwindow.cpp:2049
+#: ui/mainwindow.cpp:2075
msgid "Add file"
msgstr "Ouzhpennañ ur restr"
@@ -520,12 +520,12 @@ msgstr "Ouzhpennañ ur restr pe muioc'h d'an treuzkemmer"
msgid "Add file..."
msgstr "Ouzhpennañ ur restr..."
-#: transcoder/transcodedialog.cpp:224
+#: transcoder/transcodedialog.cpp:226
msgid "Add files to transcode"
msgstr "Ouzhpennañ restroù da"
-#: transcoder/transcodedialog.cpp:306 ui/mainwindow.cpp:2076
-#: ripper/ripcddialog.cpp:201
+#: transcoder/transcodedialog.cpp:308 ui/mainwindow.cpp:2102
+#: ripper/ripcddialog.cpp:203
msgid "Add folder"
msgstr "Ouzhpennañ un teuliad"
@@ -629,7 +629,7 @@ msgstr "Ouzhpennañ d'am rolloù-seniñ Spotify"
msgid "Add to Spotify starred"
msgstr "Ouzhpennañ da tonioù karetañ Spotify"
-#: ui/mainwindow.cpp:1850
+#: ui/mainwindow.cpp:1876
msgid "Add to another playlist"
msgstr "Ouzhpennañ d'ur roll seniñ all"
@@ -637,8 +637,8 @@ msgstr "Ouzhpennañ d'ur roll seniñ all"
msgid "Add to playlist"
msgstr "Ouzhpennañ d'ar roll seniñ"
-#: ../bin/src/ui_behavioursettingspage.h:359
-#: ../bin/src/ui_behavioursettingspage.h:371
+#: ../bin/src/ui_behavioursettingspage.h:398
+#: ../bin/src/ui_behavioursettingspage.h:410
msgid "Add to the queue"
msgstr "Ouzhpennañ d'al listenn c'hortoz"
@@ -679,8 +679,8 @@ msgstr "Goude "
msgid "After copying..."
msgstr "Goude an eiladur..."
-#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1349
-#: ui/organisedialog.cpp:64 ui/qtsystemtrayicon.cpp:251
+#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1382
+#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:251
#: ../bin/src/ui_groupbydialog.h:128 ../bin/src/ui_groupbydialog.h:147
#: ../bin/src/ui_groupbydialog.h:166 ../bin/src/ui_albumcoversearcher.h:110
#: ../bin/src/ui_albumcoversearcher.h:112 ../bin/src/ui_edittagdialog.h:723
@@ -692,8 +692,8 @@ msgstr "Albom"
msgid "Album (ideal loudness for all tracks)"
msgstr "Albom (Ampled peurvat evit an holl roud)"
-#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1363
-#: ui/organisedialog.cpp:67 ../bin/src/ui_groupbydialog.h:130
+#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1396
+#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:130
#: ../bin/src/ui_groupbydialog.h:149 ../bin/src/ui_groupbydialog.h:168
#: ../bin/src/ui_edittagdialog.h:725
msgid "Album artist"
@@ -707,11 +707,11 @@ msgstr "Golo Albom"
msgid "Album info on jamendo.com..."
msgstr "Titouroù an albom war jamendo.com..."
-#: ui/albumcovermanager.cpp:129
+#: ui/albumcovermanager.cpp:131
msgid "Albums with covers"
msgstr "Albomoù gant ur golo"
-#: ui/albumcovermanager.cpp:130
+#: ui/albumcovermanager.cpp:132
msgid "Albums without covers"
msgstr "Albomoù hep golo"
@@ -719,7 +719,7 @@ msgstr "Albomoù hep golo"
msgid "All"
msgstr "Pep tra"
-#: ui/mainwindow.cpp:158
+#: ui/mainwindow.cpp:160
msgid "All Files (*)"
msgstr "Holl restroù (*)"
@@ -728,11 +728,11 @@ msgctxt "Label for button to enable/disable Hypnotoad background sound."
msgid "All Glory to the Hypnotoad!"
msgstr "All Glory to the Hypnotoad!"
-#: ui/albumcovermanager.cpp:128
+#: ui/albumcovermanager.cpp:130
msgid "All albums"
msgstr "An holl albomoù"
-#: ui/albumcovermanager.cpp:262
+#: ui/albumcovermanager.cpp:264
msgid "All artists"
msgstr "An holl arzourien"
@@ -740,12 +740,12 @@ msgstr "An holl arzourien"
msgid "All files (*)"
msgstr "Holl restroù (*)"
-#: playlistparsers/playlistparser.cpp:74
+#: playlistparsers/playlistparser.cpp:76
#, qt-format
msgid "All playlists (%1)"
msgstr "Holl rolloù seniñ (%1)"
-#: ui/about.cpp:80
+#: ui/about.cpp:82
msgid "All the translators"
msgstr "An holl troerien"
@@ -769,16 +769,16 @@ msgstr "Aotren an enkodiñ mid/side"
msgid "Alongside the originals"
msgstr "E-kichen ar reoù orin"
-#: ../bin/src/ui_behavioursettingspage.h:331
-msgid "Always hide the main window"
-msgstr "Atav kuzhat ar prenestr pennañ"
+#: ../bin/src/ui_behavioursettingspage.h:370
+msgid "Alwa&ys hide the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:330
-msgid "Always show the main window"
-msgstr "Atav diskouez ar prenestr pennañ"
+#: ../bin/src/ui_behavioursettingspage.h:369
+msgid "Always show &the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:345
-#: ../bin/src/ui_behavioursettingspage.h:365
+#: ../bin/src/ui_behavioursettingspage.h:384
+#: ../bin/src/ui_behavioursettingspage.h:404
msgid "Always start playing"
msgstr "Atav kregin da lenn"
@@ -792,7 +792,7 @@ msgstr "Un enlugellad a zo ezhomm a-benn implij Spotify e-barzh Clementine. C'ho
msgid "An error occurred loading the iTunes database"
msgstr "Ur gudenn a zo savet en ur c'hargañ stlennvon iTunes"
-#: playlist/playlist.cpp:424 ui/edittagdialog.cpp:703
+#: playlist/playlist.cpp:454 ui/edittagdialog.cpp:703
#, qt-format
msgid "An error occurred writing metadata to '%1'"
msgstr "Ur gudenn a zo savet e-pad enskrivadur ar metaroadennoù e-barzh '%1'"
@@ -801,7 +801,7 @@ msgstr "Ur gudenn a zo savet e-pad enskrivadur ar metaroadennoù e-barzh '%1'"
msgid "An unspecified error occurred."
msgstr "Ur gudenn dianav a zo bet."
-#: ui/about.cpp:85
+#: ui/about.cpp:87
msgid "And:"
msgstr "Ha(g) :"
@@ -819,13 +819,13 @@ msgstr "Neuz"
msgid "Append files/URLs to the playlist"
msgstr "Ouzhpennañ restroù pe liammoù internet d'ar roll seniñ"
-#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:454
+#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:455
#: internet/core/internetservice.cpp:48 library/libraryview.cpp:383
#: widgets/fileviewlist.cpp:31
msgid "Append to current playlist"
msgstr "Ouzhpennañ d'ar roll seniñ lennet"
-#: ../bin/src/ui_behavioursettingspage.h:356
+#: ../bin/src/ui_behavioursettingspage.h:395
msgid "Append to the playlist"
msgstr "Ouzhpennañ d'ar roll seniñ"
@@ -848,8 +848,8 @@ msgid ""
"the songs of your library?"
msgstr "Ha sur oc'h da gaout c'hoant enrollañ an stadegoù an ton e-barzh restr an ton evit kement ton en ho sonaoueg ?"
-#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1347
-#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:249
+#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1380
+#: ui/organisedialog.cpp:66 ui/qtsystemtrayicon.cpp:249
#: ../bin/src/ui_groupbydialog.h:129 ../bin/src/ui_groupbydialog.h:148
#: ../bin/src/ui_groupbydialog.h:167 ../bin/src/ui_albumcoversearcher.h:106
#: ../bin/src/ui_albumcoversearcher.h:108 ../bin/src/ui_edittagdialog.h:721
@@ -857,17 +857,17 @@ msgstr "Ha sur oc'h da gaout c'hoant enrollañ an stadegoù an ton e-barzh restr
msgid "Artist"
msgstr "Arzour"
-#: ui/mainwindow.cpp:283
+#: ui/mainwindow.cpp:285
msgid "Artist info"
msgstr "Arzour"
-#: ui/organisedialog.cpp:66
+#: ui/organisedialog.cpp:67
msgid "Artist's initial"
msgstr "Lizherennoù-tal an arzour"
-#: ../bin/src/ui_behavioursettingspage.h:381
-msgid "Ask when saving"
-msgstr "Goulenn pa vez savetaet"
+#: ../bin/src/ui_behavioursettingspage.h:420
+msgid "As&k when saving"
+msgstr ""
#: ../bin/src/ui_transcodedialog.h:225
#: ../bin/src/ui_networkremotesettingspage.h:250
@@ -881,7 +881,7 @@ msgstr "Ezkas son"
#: internet/digitally/digitallyimportedsettingspage.cpp:82
#: internet/magnatune/magnatunesettingspage.cpp:117
-#: internet/lastfm/lastfmservice.cpp:268
+#: internet/lastfm/lastfmservice.cpp:270
#: internet/lastfm/lastfmsettingspage.cpp:76
msgid "Authentication failed"
msgstr "Dilesadur sac'het"
@@ -890,7 +890,7 @@ msgstr "Dilesadur sac'het"
msgid "Author"
msgstr "Aozer"
-#: ui/about.cpp:68
+#: ui/about.cpp:70
msgid "Authors"
msgstr "Aozerien"
@@ -900,7 +900,6 @@ msgid "Auto"
msgstr "Emgefreek"
#: playlist/playlistsaveoptionsdialog.cpp:32
-#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Automatic"
msgstr "Ent emgefreek"
@@ -920,7 +919,7 @@ msgstr "Hegerz"
msgid "Average bitrate"
msgstr "Fonnder keidennek"
-#: covers/coversearchstatisticsdialog.cpp:69
+#: covers/coversearchstatisticsdialog.cpp:71
msgid "Average image size"
msgstr "Ment keidennek ar skeudenn"
@@ -928,7 +927,7 @@ msgstr "Ment keidennek ar skeudenn"
msgid "BBC Podcasts"
msgstr "Podkastoù BBC"
-#: playlist/playlist.cpp:1383 ui/organisedialog.cpp:74
+#: playlist/playlist.cpp:1416 ui/organisedialog.cpp:75
#: ../bin/src/ui_edittagdialog.h:704
msgid "BPM"
msgstr "BPM"
@@ -949,7 +948,7 @@ msgstr "Skeudenn drekleur"
msgid "Background opacity"
msgstr "Divoullder drekleur"
-#: core/database.cpp:648
+#: core/database.cpp:664
msgid "Backing up database"
msgstr "Enrolladenn ar stlennvon"
@@ -973,7 +972,7 @@ msgstr "Glas boutin"
msgid "Basic audio type"
msgstr "Stumm audio boaz"
-#: ../bin/src/ui_behavioursettingspage.h:318
+#: ../bin/src/ui_behavioursettingspage.h:357
msgid "Behavior"
msgstr "Emzalc'h"
@@ -985,7 +984,7 @@ msgstr "Gwell"
msgid "Biography"
msgstr "Buhezskrid"
-#: playlist/playlist.cpp:1385 ../bin/src/ui_edittagdialog.h:706
+#: playlist/playlist.cpp:1418 ../bin/src/ui_edittagdialog.h:706
#: ../bin/src/ui_streamdetailsdialog.h:139
msgid "Bit rate"
msgstr "Fonnder"
@@ -1000,7 +999,7 @@ msgstr "Fonnder"
msgid "Bitrate"
msgstr "Bitrate"
-#: ui/organisedialog.cpp:80
+#: ui/organisedialog.cpp:81
msgctxt "Refers to bitrate in file organise dialog."
msgid "Bitrate"
msgstr "Fonnder bit"
@@ -1091,7 +1090,7 @@ msgstr "Kemmañ ar berradenn"
msgid "Change shuffle mode"
msgstr "Cheñch an doare meskañ"
-#: ../bin/src/ui_behavioursettingspage.h:370
+#: ../bin/src/ui_behavioursettingspage.h:409
msgid "Change the currently playing song"
msgstr "O kemmañ an ton o vezañ lennet"
@@ -1121,7 +1120,7 @@ msgstr "Klask pennadoù nevez"
msgid "Check for updates"
msgstr "Gwiriekaat an hizivadennoù"
-#: ui/mainwindow.cpp:820
+#: ui/mainwindow.cpp:824
msgid "Check for updates..."
msgstr "Klask hizivadurioù..."
@@ -1170,7 +1169,7 @@ msgstr "Klasel"
msgid "Cleaning up"
msgstr "O naetaat"
-#: transcoder/transcodedialog.cpp:61 widgets/lineedit.cpp:41
+#: transcoder/transcodedialog.cpp:63 widgets/lineedit.cpp:41
#: ../bin/src/ui_queuemanager.h:151
msgid "Clear"
msgstr "Goullonderiñ"
@@ -1263,7 +1262,6 @@ msgstr "Klikit aze evit merkañ ar roll seniñ-mañ evit ma vefe enrollet hag e
msgid "Click to toggle between remaining time and total time"
msgstr "Klikit evit kemmañ etre an amzer a chom hag an amzer total"
-#: ../bin/src/ui_soundcloudsettingspage.h:103
#: ../bin/src/ui_lastfmsettingspage.h:133
#: ../bin/src/ui_googledrivesettingspage.h:102
#: ../bin/src/ui_dropboxsettingspage.h:102
@@ -1290,7 +1288,7 @@ msgstr "Serriñ an hewelaat"
msgid "Closing this window will cancel the download."
msgstr "Serrin ar prenestr-mañ a paouezo ar pellgargadenn"
-#: ui/albumcovermanager.cpp:213
+#: ui/albumcovermanager.cpp:215
msgid "Closing this window will stop searching for album covers."
msgstr "Ma serrit ar prenestr-mañ e vo paouezet gant an enklask golo albom."
@@ -1310,8 +1308,12 @@ msgstr "Livioù"
msgid "Comma separated list of class:level, level is 0-3"
msgstr "Listenn dispartiet gant ur virgulenn eus klas:live, live etre 0 ha 3"
-#: playlist/playlist.cpp:1402 smartplaylists/searchterm.cpp:384
-#: ui/organisedialog.cpp:78 ../bin/src/ui_edittagdialog.h:718
+#: ../bin/src/ui_behavioursettingspage.h:425
+msgid "Comma seperated list of prefix words to ignore when sorting"
+msgstr ""
+
+#: playlist/playlist.cpp:1435 smartplaylists/searchterm.cpp:384
+#: ui/organisedialog.cpp:79 ../bin/src/ui_edittagdialog.h:718
msgid "Comment"
msgstr "Evezhiadenn"
@@ -1323,8 +1325,8 @@ msgstr "Leuniañ ar c'hlavioù ent emgefreek"
msgid "Complete tags automatically..."
msgstr "Leuniañ ar c'hlavioù ent emgefreek..."
-#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1365
-#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:131
+#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1398
+#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:131
#: ../bin/src/ui_groupbydialog.h:150 ../bin/src/ui_groupbydialog.h:169
msgid "Composer"
msgstr "Aozer"
@@ -1342,10 +1344,6 @@ msgstr "KefluniañMagnatune..."
msgid "Configure Shortcuts"
msgstr "Kefluniañ ar Berradennoù"
-#: internet/soundcloud/soundcloudservice.cpp:381
-msgid "Configure SoundCloud..."
-msgstr "Kefluniañ SoundCloud..."
-
#: internet/spotify/spotifyservice.cpp:927
msgid "Configure Spotify..."
msgstr "Kefluniañ Spotify"
@@ -1354,11 +1352,11 @@ msgstr "Kefluniañ Spotify"
msgid "Configure Subsonic..."
msgstr "Kefluniañ Subsonic..."
-#: globalsearch/globalsearchview.cpp:151 globalsearch/globalsearchview.cpp:480
+#: globalsearch/globalsearchview.cpp:152 globalsearch/globalsearchview.cpp:481
msgid "Configure global search..."
msgstr "Kefluniañ an enklsak hollek..."
-#: ui/mainwindow.cpp:659
+#: ui/mainwindow.cpp:661
msgid "Configure library..."
msgstr "Kefluniañ ar sonaoueg..."
@@ -1368,7 +1366,7 @@ msgid "Configure podcasts..."
msgstr "Kefluniañ ar podkastoù"
#: internet/core/cloudfileservice.cpp:107
-#: internet/digitally/digitallyimportedservicebase.cpp:182
+#: internet/digitally/digitallyimportedservicebase.cpp:184
#: internet/googledrive/googledriveservice.cpp:231
#: ../bin/src/ui_globalsearchsettingspage.h:146
msgid "Configure..."
@@ -1430,11 +1428,11 @@ msgid "Copy to clipboard"
msgstr "Kopiañ d'ar golver"
#: library/libraryview.cpp:419 internet/podcasts/podcastservice.cpp:438
-#: ui/mainwindow.cpp:719 widgets/fileviewlist.cpp:44
+#: ui/mainwindow.cpp:721 widgets/fileviewlist.cpp:44
msgid "Copy to device..."
msgstr "Kopiañ war an drobarzhell"
-#: devices/deviceview.cpp:228 ui/mainwindow.cpp:709
+#: devices/deviceview.cpp:228 ui/mainwindow.cpp:711
#: widgets/fileviewlist.cpp:40
msgid "Copy to library..."
msgstr "Eilañ er sonaoueg..."
@@ -1449,7 +1447,7 @@ msgid ""
"http://localhost:4040/"
msgstr "Dibosupl kennaskañ ouzh Subsonic, gwiriekait URL an dafariad. Skouer : http://localhost:4040/"
-#: transcoder/transcoder.cpp:58
+#: transcoder/transcoder.cpp:59
#, qt-format
msgid ""
"Could not create the GStreamer element \"%1\" - make sure you have all the "
@@ -1473,14 +1471,14 @@ msgstr ""
msgid "Couldn't create playlist"
msgstr "N'eus ket bet tu krouiñ ar roll-seniñ"
-#: transcoder/transcoder.cpp:425
+#: transcoder/transcoder.cpp:426
#, qt-format
msgid ""
"Couldn't find a muxer for %1, check you have the correct GStreamer plugins "
"installed"
msgstr "Dibosupl eo kavout ur multiplekser evit %1, gwiriekait ez eo staliet an enlugelladoù a-zere evit GStreamer"
-#: transcoder/transcoder.cpp:419
+#: transcoder/transcoder.cpp:420
#, qt-format
msgid ""
"Couldn't find an encoder for %1, check you have the correct GStreamer "
@@ -1521,7 +1519,7 @@ msgstr "Golo nann diuzet"
msgid "Cover art set from %1"
msgstr "Golo diuzet adalek %1"
-#: covers/coversearchstatisticsdialog.cpp:59 ui/albumcoversearcher.cpp:100
+#: covers/coversearchstatisticsdialog.cpp:61 ui/albumcoversearcher.cpp:100
#, qt-format
msgid "Covers from %1"
msgstr "Goloioù adalek %1"
@@ -1578,18 +1576,18 @@ msgstr ""
msgid "Dance"
msgstr "Dañs"
-#: core/database.cpp:601
+#: core/database.cpp:617
msgid ""
"Database corruption detected. Please read https://github.com/clementine-"
"player/Clementine/wiki/Database-Corruption for instructions on how to "
"recover your database"
msgstr "Stlennvon kontronet dinoet. Lennit https://github.com/clementine-player/Clementine/wiki/Database-Corruption evit kaout titouroù a-benn atoriñ ho stlennvon"
-#: playlist/playlist.cpp:1399 ../bin/src/ui_edittagdialog.h:715
+#: playlist/playlist.cpp:1432 ../bin/src/ui_edittagdialog.h:715
msgid "Date created"
msgstr "Deizad krouadur"
-#: playlist/playlist.cpp:1397 ../bin/src/ui_edittagdialog.h:714
+#: playlist/playlist.cpp:1430 ../bin/src/ui_edittagdialog.h:714
msgid "Date modified"
msgstr "Deizad kemmadur"
@@ -1640,7 +1638,7 @@ msgid "Delete downloaded data"
msgstr "Diverkañ ar roadennoù pellgarget"
#: devices/deviceview.cpp:408 library/libraryview.cpp:678
-#: ui/mainwindow.cpp:2432 widgets/fileview.cpp:188
+#: ui/mainwindow.cpp:2458 widgets/fileview.cpp:188
msgid "Delete files"
msgstr "Diverkañ restroù"
@@ -1648,7 +1646,7 @@ msgstr "Diverkañ restroù"
msgid "Delete from device..."
msgstr "Diverkañ eus an drobarzhell"
-#: library/libraryview.cpp:422 ui/mainwindow.cpp:722
+#: library/libraryview.cpp:422 ui/mainwindow.cpp:724
#: widgets/fileviewlist.cpp:47
msgid "Delete from disk..."
msgstr "Diverkañ eus ar bladenn"
@@ -1681,11 +1679,11 @@ msgstr "O tiverkañ restroù"
msgid "Depth"
msgstr ""
-#: ui/mainwindow.cpp:1763
+#: ui/mainwindow.cpp:1789
msgid "Dequeue selected tracks"
msgstr "Dilemel ar roudoù diuzet diwar al listenn c'hortoz"
-#: ui/mainwindow.cpp:1761
+#: ui/mainwindow.cpp:1787
msgid "Dequeue track"
msgstr "Dilemel ar roud-mañ diwar al listenn c'hortoz"
@@ -1714,7 +1712,7 @@ msgstr "Anv an drobarzhell"
msgid "Device properties..."
msgstr "Oerzhioù an drobarzhell..."
-#: ui/mainwindow.cpp:276
+#: ui/mainwindow.cpp:278
msgid "Devices"
msgstr "Trevnadoù"
@@ -1765,8 +1763,8 @@ msgctxt "Refers to search provider's status."
msgid "Disabled"
msgstr "Diwederakaet"
-#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1355
-#: ui/organisedialog.cpp:73 ../bin/src/ui_groupbydialog.h:139
+#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1388
+#: ui/organisedialog.cpp:74 ../bin/src/ui_groupbydialog.h:139
#: ../bin/src/ui_groupbydialog.h:158 ../bin/src/ui_groupbydialog.h:177
#: ../bin/src/ui_edittagdialog.h:722 ../bin/src/ui_ripcddialog.h:313
msgid "Disc"
@@ -1831,7 +1829,7 @@ msgid "Don't shuffle"
msgstr "Chom hep meskañ"
#: internet/magnatune/magnatunedownloaddialog.cpp:312
-#: ui/albumcovermanager.cpp:215
+#: ui/albumcovermanager.cpp:217
msgid "Don't stop!"
msgstr "Chom hep paouez!"
@@ -1844,11 +1842,11 @@ msgstr "Reiñ arc'hant"
msgid "Double click to open"
msgstr "Daouglikañ evit digeriñ"
-#: ../bin/src/ui_behavioursettingspage.h:367
+#: ../bin/src/ui_behavioursettingspage.h:406
msgid "Double clicking a song in the playlist will..."
msgstr "Daou-glikañ un ton er roll seniñ a..."
-#: ../bin/src/ui_behavioursettingspage.h:353
+#: ../bin/src/ui_behavioursettingspage.h:392
msgid "Double clicking a song will..."
msgstr "Daouglikañ war un ton..."
@@ -1957,7 +1955,7 @@ msgstr "Meskaj dargouezhek dialuskel"
msgid "Edit smart playlist..."
msgstr "Kemmañ ar roll seniñ speredek..."
-#: ui/mainwindow.cpp:1813
+#: ui/mainwindow.cpp:1839
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Cheñch an tag \"%1\"..."
@@ -2003,7 +2001,7 @@ msgstr "Aktivañ ar c'hevataler"
msgid "Enable shortcuts only when Clementine is focused"
msgstr "Aotren ar beradennoù pa vez enaouet prenestr Clementine nemetken"
-#: ../bin/src/ui_behavioursettingspage.h:339
+#: ../bin/src/ui_behavioursettingspage.h:375
msgid "Enable song metadata inline edition with click"
msgstr "Gweredekaat an embann meta-roadennoù eeun gant ur c'hlik"
@@ -2092,12 +2090,12 @@ msgid "Equivalent to --log-levels *:3"
msgstr "Kenkoulz a --log-levels *:3"
#: internet/magnatune/magnatunedownloaddialog.cpp:246
-#: library/libraryview.cpp:672 ui/mainwindow.cpp:2105 ui/mainwindow.cpp:2384
-#: ui/mainwindow.cpp:2563
+#: library/libraryview.cpp:672 ui/mainwindow.cpp:2131 ui/mainwindow.cpp:2410
+#: ui/mainwindow.cpp:2589
msgid "Error"
msgstr "Fazi"
-#: ripper/ripcddialog.cpp:152
+#: ripper/ripcddialog.cpp:154
msgid "Error Ripping CD"
msgstr "Kudenn en ur eztennañ ar CD"
@@ -2105,11 +2103,11 @@ msgstr "Kudenn en ur eztennañ ar CD"
msgid "Error connecting MTP device"
msgstr "Ur gudenn a zo zo savet e-kerzh ar c'hennask gant an drobarzhell MTP"
-#: ui/organiseerrordialog.cpp:52
+#: ui/organiseerrordialog.cpp:54
msgid "Error copying songs"
msgstr "Ur gudenn a zo savet e-kerzh kopiadur an tonioù"
-#: ui/organiseerrordialog.cpp:59
+#: ui/organiseerrordialog.cpp:61
msgid "Error deleting songs"
msgstr "Ur gudenn a zo savet e-kerzh dilamidigezh an tonioù"
@@ -2127,12 +2125,12 @@ msgstr "Ur gudenn a zo savet o pellgargañ enlugellad Spotify"
msgid "Error loading %1"
msgstr "Ur gudenn a zo savet e-pad kargadur %1"
-#: internet/digitally/digitallyimportedservicebase.cpp:200
+#: internet/digitally/digitallyimportedservicebase.cpp:202
#: internet/digitally/digitallyimportedurlhandler.cpp:96
msgid "Error loading di.fm playlist"
msgstr "Kudenn o kargañ roll seniñ di.fm"
-#: transcoder/transcoder.cpp:390
+#: transcoder/transcoder.cpp:391
#, qt-format
msgid "Error processing %1: %2"
msgstr "Ur gudenn a zo savet e-pad treterezh %1 : %2"
@@ -2206,16 +2204,16 @@ msgstr "Ezporzhiañ ar goloioù pellgarget"
msgid "Export embedded covers"
msgstr "Ezporzhiañ ar goloioù enlakaet"
-#: ui/albumcovermanager.cpp:799 ui/albumcovermanager.cpp:823
+#: ui/albumcovermanager.cpp:801 ui/albumcovermanager.cpp:825
msgid "Export finished"
msgstr "Ezporzhiadur echuet"
-#: ui/albumcovermanager.cpp:808
+#: ui/albumcovermanager.cpp:810
#, qt-format
msgid "Exported %1 covers out of %2 (%3 skipped)"
msgstr "Ezporzhiet %1 golo war %2 (%3 tremenet)"
-#: core/song.cpp:430 transcoder/transcoder.cpp:233
+#: core/song.cpp:430 transcoder/transcoder.cpp:234
#: ../bin/src/ui_magnatunedownloaddialog.h:136
#: ../bin/src/ui_magnatunesettingspage.h:170
#: ../bin/src/ui_transcodersettingspage.h:176
@@ -2239,7 +2237,7 @@ msgstr "Arveuz"
msgid "Fading duration"
msgstr "Padelezh an arveuz"
-#: ui/mainwindow.cpp:2106
+#: ui/mainwindow.cpp:2132
msgid "Failed reading CD drive"
msgstr "Kudenn en ul lenn ar CD"
@@ -2274,10 +2272,6 @@ msgstr "C'hwitadenn war skrivañ klavioù emgefreek nevez da '%1'"
msgid "Fast"
msgstr "Trumm"
-#: internet/soundcloud/soundcloudservice.cpp:141
-msgid "Favorites"
-msgstr "Karetañ"
-
#: library/library.cpp:88
msgid "Favourite tracks"
msgstr "Roudoù karetañ"
@@ -2310,7 +2304,7 @@ msgstr "Ur gudenn a zo savet e-pad pellgargadur ar golo"
msgid "File Format"
msgstr "Mentrezh ar restr"
-#: ui/organisedialog.cpp:82
+#: ui/organisedialog.cpp:83
msgid "File extension"
msgstr "Askouzehadenn ar restr"
@@ -2318,11 +2312,11 @@ msgstr "Askouzehadenn ar restr"
msgid "File formats"
msgstr "Mentrezhoù restroù"
-#: playlist/playlist.cpp:1389 ../bin/src/ui_edittagdialog.h:716
+#: playlist/playlist.cpp:1422 ../bin/src/ui_edittagdialog.h:716
msgid "File name"
msgstr "Anv ar restr"
-#: playlist/playlist.cpp:1391
+#: playlist/playlist.cpp:1424
msgid "File name (without path)"
msgstr "Anv ar restr (hep an hent)"
@@ -2330,11 +2324,11 @@ msgstr "Anv ar restr (hep an hent)"
msgid "File paths"
msgstr "Treugoù ar restr"
-#: playlist/playlist.cpp:1393 ../bin/src/ui_edittagdialog.h:710
+#: playlist/playlist.cpp:1426 ../bin/src/ui_edittagdialog.h:710
msgid "File size"
msgstr "Ment ar restr"
-#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1395
+#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1428
#: ../bin/src/ui_groupbydialog.h:132 ../bin/src/ui_groupbydialog.h:151
#: ../bin/src/ui_groupbydialog.h:170 ../bin/src/ui_edittagdialog.h:712
msgid "File type"
@@ -2344,7 +2338,7 @@ msgstr "Stumm ar restr"
msgid "Filename"
msgstr "Anv ar restr"
-#: ui/mainwindow.cpp:266
+#: ui/mainwindow.cpp:268
msgid "Files"
msgstr "Restroù"
@@ -2457,7 +2451,7 @@ msgstr "Full Treble"
msgid "Ge&nre"
msgstr ""
-#: ui/settingsdialog.cpp:133
+#: ui/settingsdialog.cpp:132
msgid "General"
msgstr "Hollek"
@@ -2465,8 +2459,8 @@ msgstr "Hollek"
msgid "General settings"
msgstr "Arventennoù hollek"
-#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1361
-#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:133
+#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1394
+#: ui/organisedialog.cpp:78 ../bin/src/ui_groupbydialog.h:133
#: ../bin/src/ui_groupbydialog.h:152 ../bin/src/ui_groupbydialog.h:171
#: ../bin/src/ui_ripcddialog.h:316
msgid "Genre"
@@ -2486,7 +2480,7 @@ msgstr "Kaout un URL evit rannañ ar roll-seniñ mañ"
msgid "Getting channels"
msgstr "O taspugn ar c'hanolioù"
-#: internet/digitally/digitallyimportedservicebase.cpp:100
+#: internet/digitally/digitallyimportedservicebase.cpp:102
msgid "Getting streams"
msgstr "O tegemer al lanvioù"
@@ -2510,13 +2504,13 @@ msgstr "Mont d'ar roll seniñ a-raok"
msgid "Google Drive"
msgstr "Google Drive"
-#: covers/coversearchstatisticsdialog.cpp:53 ui/albumcovermanager.cpp:465
+#: covers/coversearchstatisticsdialog.cpp:55 ui/albumcovermanager.cpp:467
#: ../bin/src/ui_coversearchstatisticsdialog.h:75
#, qt-format
msgid "Got %1 covers out of %2 (%3 failed)"
msgstr "Kavet %1 golo diwar %2 (%3 c'hwitet)"
-#: ../bin/src/ui_behavioursettingspage.h:335
+#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Grey out non existent songs in my playlists"
msgstr "Grisaat an tonioù n'int ket mui em roll seniñ"
@@ -2524,7 +2518,7 @@ msgstr "Grisaat an tonioù n'int ket mui em roll seniñ"
msgid "Group Library by..."
msgstr "Strollañ al sonaoueg dre..."
-#: globalsearch/globalsearchview.cpp:477 library/libraryfilterwidget.cpp:100
+#: globalsearch/globalsearchview.cpp:478 library/libraryfilterwidget.cpp:100
msgid "Group by"
msgstr "Strollad dre"
@@ -2556,8 +2550,8 @@ msgstr "Strollañ dre Zoare/Albom"
msgid "Group by Genre/Artist/Album"
msgstr "Strollañ dre Zoare/Arzour/Albom"
-#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1369
-#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:141
+#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1402
+#: ui/organisedialog.cpp:71 ../bin/src/ui_groupbydialog.h:141
#: ../bin/src/ui_groupbydialog.h:160 ../bin/src/ui_groupbydialog.h:179
msgid "Grouping"
msgstr "Strolladenn"
@@ -2645,7 +2639,7 @@ msgstr "Arlunioù en uhelañ"
msgid "Identifying song"
msgstr "Anaoudadur an ton"
-#: ../bin/src/ui_behavioursettingspage.h:337
+#: ../bin/src/ui_behavioursettingspage.h:373
msgid ""
"If activated, clicking a selected song in the playlist view will let you "
"edit the tag value directly"
@@ -2665,6 +2659,10 @@ msgstr "Ma anavezit URL ur podkast, lakait anezhañ dindan ha pouezit war Go."
msgid "Ignore \"The\" in artist names"
msgstr "Ober hep ma vefe \"The\" e anvioù an arzourien"
+#: ../bin/src/ui_behavioursettingspage.h:423
+msgid "Ignore prefix word(s)"
+msgstr ""
+
#: ui/albumcoverchoicecontroller.cpp:44
msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
msgstr "Skeudennoù (*.png, *.jpg, *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
@@ -2746,15 +2744,15 @@ msgstr "Enlakaat..."
msgid "Installed"
msgstr "Staliaet"
-#: core/database.cpp:585
+#: core/database.cpp:601
msgid "Integrity check"
msgstr "O gwiriañ an anterinder"
-#: ui/mainwindow.cpp:272
+#: ui/mainwindow.cpp:274
msgid "Internet"
msgstr "Internet"
-#: ui/settingsdialog.cpp:156
+#: ui/settingsdialog.cpp:155
msgid "Internet providers"
msgstr "Pourchaserien internet"
@@ -2767,7 +2765,7 @@ msgstr "Servijoù internet"
msgid "Intro tracks"
msgstr "Roudennoù digeriñ"
-#: internet/lastfm/lastfmservice.cpp:280
+#: internet/lastfm/lastfmservice.cpp:282
msgid "Invalid API key"
msgstr "Alc'hwez API didalvoudek"
@@ -2775,27 +2773,27 @@ msgstr "Alc'hwez API didalvoudek"
msgid "Invalid URL"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:270
+#: internet/lastfm/lastfmservice.cpp:272
msgid "Invalid format"
msgstr "Mentrezh didalvoudek"
-#: internet/lastfm/lastfmservice.cpp:266
+#: internet/lastfm/lastfmservice.cpp:268
msgid "Invalid method"
msgstr "Hentenn didalvoudek"
-#: internet/lastfm/lastfmservice.cpp:272
+#: internet/lastfm/lastfmservice.cpp:274
msgid "Invalid parameters"
msgstr "Arventennoù didalvoudek"
-#: internet/lastfm/lastfmservice.cpp:274
+#: internet/lastfm/lastfmservice.cpp:276
msgid "Invalid resource specified"
msgstr "Loazioù erspizet didalvoudek"
-#: internet/lastfm/lastfmservice.cpp:264
+#: internet/lastfm/lastfmservice.cpp:266
msgid "Invalid service"
msgstr "Servij didalvoudek"
-#: internet/lastfm/lastfmservice.cpp:278
+#: internet/lastfm/lastfmservice.cpp:280
msgid "Invalid session key"
msgstr "Kudenn gant alc'hwez an dalc'h"
@@ -2827,7 +2825,7 @@ msgstr "Top ar sizhun roudoù Jamendo"
msgid "Jamendo database"
msgstr "Stlennvon Jamendo"
-#: ../bin/src/ui_behavioursettingspage.h:350
+#: ../bin/src/ui_behavioursettingspage.h:389
msgid "Jump to previous song right away"
msgstr "Lammat diouzhtu d'an ton a-raok"
@@ -2847,7 +2845,7 @@ msgstr "Pouezhit war ar bouton e-pad %1 eilenn..."
msgid "Keep buttons for %1 seconds..."
msgstr "Pouezhit war ar boutoñn e-pad %1 eilenn..."
-#: ../bin/src/ui_behavioursettingspage.h:321
+#: ../bin/src/ui_behavioursettingspage.h:360
msgid "Keep running in the background when the window is closed"
msgstr "Leuskel da dreiñ pa 'z eo serret ar prenstr"
@@ -2864,7 +2862,7 @@ msgstr "Bisig"
msgid "Kuduro"
msgstr "Kuduro"
-#: ../bin/src/ui_behavioursettingspage.h:323
+#: ../bin/src/ui_behavioursettingspage.h:362
msgid "Language"
msgstr "Yezh"
@@ -2896,7 +2894,7 @@ msgstr "Barenn gostez ledan"
msgid "Last played"
msgstr "Selaouet e ziwezhañ"
-#: playlist/playlist.cpp:1378 ../bin/src/ui_edittagdialog.h:707
+#: playlist/playlist.cpp:1411 ../bin/src/ui_edittagdialog.h:707
msgctxt "A playlist's tag."
msgid "Last played"
msgstr "Sonet e ziwezhañ"
@@ -2905,11 +2903,11 @@ msgstr "Sonet e ziwezhañ"
msgid "Last.fm"
msgstr "Last.fm"
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
msgid "Last.fm Authentication"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:287
+#: internet/lastfm/lastfmservice.cpp:289
msgid "Last.fm is currently busy, please try again in a few minutes"
msgstr "Last.fm a zo ac'hubet, klaskit en-dro en un nebeut munutennoù"
@@ -2933,12 +2931,12 @@ msgstr "Roudoù an nebeutañ plijet"
msgid "Left"
msgstr "Kleiz"
-#: playlist/playlist.cpp:1351 ui/organisedialog.cpp:79
+#: playlist/playlist.cpp:1384 ui/organisedialog.cpp:80
#: ui/qtsystemtrayicon.cpp:254 ../bin/src/ui_edittagdialog.h:702
msgid "Length"
msgstr "Padelezh"
-#: ui/mainwindow.cpp:251 ui/mainwindow.cpp:263
+#: ui/mainwindow.cpp:253 ui/mainwindow.cpp:265
#: ../bin/src/ui_seafilesettingspage.h:177
msgid "Library"
msgstr "Sonaoueg"
@@ -2947,7 +2945,7 @@ msgstr "Sonaoueg"
msgid "Library advanced grouping"
msgstr "Strolladur ar sonaoueg kempleshoc'h"
-#: ui/mainwindow.cpp:2683
+#: ui/mainwindow.cpp:2709
msgid "Library rescan notice"
msgstr "Kemenn hizivadur ar sonaoueg"
@@ -2983,7 +2981,7 @@ msgstr "Kargañ ur golo adalek ar bladenn"
msgid "Load cover from disk..."
msgstr "Kargañ ar golo adalek ur bladenn..."
-#: playlist/playlistcontainer.cpp:298
+#: playlist/playlistcontainer.cpp:300
msgid "Load playlist"
msgstr "Kargañ ar roll seniñ"
@@ -3003,7 +3001,7 @@ msgstr "O kargañ stlennvon iPod"
msgid "Loading smart playlist"
msgstr "Kargañ ar roll seniñ speredek"
-#: library/librarymodel.cpp:169
+#: library/librarymodel.cpp:170
msgid "Loading songs"
msgstr "O kargañ tonioù"
@@ -3021,7 +3019,7 @@ msgstr "O kargan roudoù"
msgid "Loading tracks info"
msgstr "O kargañ titouroù ar roud"
-#: library/librarymodel.cpp:164
+#: library/librarymodel.cpp:165
#: internet/podcasts/podcastdiscoverymodel.cpp:105 widgets/prettyimage.cpp:168
#: widgets/widgetfadehelper.cpp:96 ../bin/src/ui_addpodcastdialog.h:179
#: ../bin/src/ui_searchpreview.h:105 ../bin/src/ui_organisedialog.h:261
@@ -3034,7 +3032,6 @@ msgstr "Kargañ restroù pe liammoù internet, hag eilec'hiañ ar roll seniñ"
#: ../bin/src/ui_digitallyimportedsettingspage.h:162
#: ../bin/src/ui_magnatunesettingspage.h:163
-#: ../bin/src/ui_soundcloudsettingspage.h:102
#: ../bin/src/ui_spotifysettingspage.h:210
#: ../bin/src/ui_subsonicsettingspage.h:137
#: ../bin/src/ui_lastfmsettingspage.h:132
@@ -3075,7 +3072,7 @@ msgstr "Izel (256x256)"
msgid "Low complexity profile (LC)"
msgstr "Aelad e Luzierezh Gwan (ALG)"
-#: ui/organisedialog.cpp:71 ../bin/src/ui_songinfosettingspage.h:158
+#: ui/organisedialog.cpp:72 ../bin/src/ui_songinfosettingspage.h:158
msgid "Lyrics"
msgstr "Komzoù"
@@ -3088,11 +3085,11 @@ msgstr "Komzoù eus %1"
msgid "Lyrics from the tag"
msgstr ""
-#: transcoder/transcoder.cpp:235
+#: transcoder/transcoder.cpp:236
msgid "M4A AAC"
msgstr "M4A AAC"
-#: core/song.cpp:436 transcoder/transcoder.cpp:238
+#: core/song.cpp:436 transcoder/transcoder.cpp:239
#: ../bin/src/ui_transcodersettingspage.h:174
msgid "MP3"
msgstr "MP3"
@@ -3143,7 +3140,7 @@ msgstr "Gra an dra-mañ !"
msgid "Make playlist available offline"
msgstr "Lakaat ar roll seniñ da vezañ lennus ezlinenn"
-#: internet/lastfm/lastfmservice.cpp:299
+#: internet/lastfm/lastfmservice.cpp:301
msgid "Malformed response"
msgstr "Respont stummet fall"
@@ -3184,7 +3181,7 @@ msgstr "Implij unan pe meur a gerioù enklask (PE)"
msgid "Maximum bitrate"
msgstr "Fonnder uhelañ"
-#: ripper/ripcddialog.cpp:153
+#: ripper/ripcddialog.cpp:155
msgid "Media has changed. Reloading"
msgstr "Kemmet eo bet ar media. Adkargadenn"
@@ -3234,7 +3231,7 @@ msgstr "Lenn e mono"
msgid "Months"
msgstr "Mizioù"
-#: playlist/playlist.cpp:1406
+#: playlist/playlist.cpp:1439
msgid "Mood"
msgstr "Imor"
@@ -3264,7 +3261,7 @@ msgstr "Poentoù staliañ"
msgid "Move down"
msgstr "Dindan"
-#: ui/mainwindow.cpp:712 widgets/fileviewlist.cpp:42
+#: ui/mainwindow.cpp:714 widgets/fileviewlist.cpp:42
msgid "Move to library..."
msgstr "Dilec'hiañ davet ar sonaoueg..."
@@ -3273,7 +3270,7 @@ msgstr "Dilec'hiañ davet ar sonaoueg..."
msgid "Move up"
msgstr "A-us"
-#: transcoder/transcodedialog.cpp:225 ui/mainwindow.cpp:2050
+#: transcoder/transcodedialog.cpp:227 ui/mainwindow.cpp:2076
msgid "Music"
msgstr "Sonerezh"
@@ -3320,8 +3317,8 @@ msgstr "Morse"
msgid "Never played"
msgstr "Morse sonet"
-#: ../bin/src/ui_behavioursettingspage.h:343
-#: ../bin/src/ui_behavioursettingspage.h:363
+#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:402
msgid "Never start playing"
msgstr "Morse kregiñ da lenn"
@@ -3331,7 +3328,7 @@ msgstr "Morse kregiñ da lenn"
msgid "New folder"
msgstr "Teuliad nevez"
-#: ui/mainwindow.cpp:1867 ../bin/src/ui_mainwindow.h:709
+#: ui/mainwindow.cpp:1893 ../bin/src/ui_mainwindow.h:709
msgid "New playlist"
msgstr "Roll seniñ nevez"
@@ -3376,7 +3373,7 @@ msgstr "Dezrannerez ebet"
msgid "No background image"
msgstr "Skeudenn drekleur ebet"
-#: ui/albumcovermanager.cpp:800
+#: ui/albumcovermanager.cpp:802
msgid "No covers to export."
msgstr "Golo ebet da ezporzhiañ"
@@ -3384,7 +3381,7 @@ msgstr "Golo ebet da ezporzhiañ"
msgid "No long blocks"
msgstr "Bloc'h hir ebet"
-#: playlist/playlistcontainer.cpp:383
+#: playlist/playlistcontainer.cpp:385
msgid ""
"No matches found. Clear the search box to show the whole playlist again."
msgstr "N'eo bet kavet netra. Diverkañ ar boest enklask evit diskouez ar roll seniñ en e-bezh."
@@ -3398,7 +3395,7 @@ msgstr "Bloc'h berr ebet"
msgid "None"
msgstr "Hini ebet"
-#: library/libraryview.cpp:673 ui/mainwindow.cpp:2385 ui/mainwindow.cpp:2564
+#: library/libraryview.cpp:673 ui/mainwindow.cpp:2411 ui/mainwindow.cpp:2590
msgid "None of the selected songs were suitable for copying to a device"
msgstr "Ton ebet eus ar reoù diuzet a oa mat evit bezañ kopiet war an drobarzhell"
@@ -3410,6 +3407,10 @@ msgstr "Reizh"
msgid "Normal block type"
msgstr "Rizh bloc'h skoueriek"
+#: ../bin/src/ui_behavioursettingspage.h:428
+msgid "Normal duration (at least 4 minutes or half the track length)"
+msgstr ""
+
#: playlist/playlistsequence.cpp:203
msgid "Not available while using a dynamic playlist"
msgstr "N'eus ket tu implij pa vez implijet ur roll seniñ dinamek"
@@ -3418,19 +3419,19 @@ msgstr "N'eus ket tu implij pa vez implijet ur roll seniñ dinamek"
msgid "Not connected"
msgstr "Digennasket"
-#: internet/lastfm/lastfmservice.cpp:290
+#: internet/lastfm/lastfmservice.cpp:292
msgid "Not enough content"
msgstr "N'eus ket trawalc'h a endalc'h"
-#: internet/lastfm/lastfmservice.cpp:294
+#: internet/lastfm/lastfmservice.cpp:296
msgid "Not enough fans"
msgstr "N'eus ket trawalc'h a fans"
-#: internet/lastfm/lastfmservice.cpp:292
+#: internet/lastfm/lastfmservice.cpp:294
msgid "Not enough members"
msgstr "N'eus ket izili a-walc'h"
-#: internet/lastfm/lastfmservice.cpp:296
+#: internet/lastfm/lastfmservice.cpp:298
msgid "Not enough neighbors"
msgstr "N'eus ket trawalc'h a amezeizen"
@@ -3438,7 +3439,7 @@ msgstr "N'eus ket trawalc'h a amezeizen"
msgid "Not installed"
msgstr "N'eo ket staliet"
-#: globalsearch/globalsearchsettingspage.cpp:120
+#: globalsearch/globalsearchsettingspage.cpp:122
#: globalsearch/searchproviderstatuswidget.cpp:47
msgid "Not logged in"
msgstr "N'eo ket kennasket"
@@ -3475,19 +3476,19 @@ msgstr "Off"
msgid "Ogg FLAC"
msgstr ""
-#: transcoder/transcoder.cpp:244
+#: transcoder/transcoder.cpp:245
msgid "Ogg Flac"
msgstr "Ogg Flac"
-#: core/song.cpp:444 transcoder/transcoder.cpp:250
+#: core/song.cpp:444 transcoder/transcoder.cpp:251
msgid "Ogg Opus"
msgstr "Ogg Opus"
-#: core/song.cpp:440 transcoder/transcoder.cpp:247
+#: core/song.cpp:440 transcoder/transcoder.cpp:248
msgid "Ogg Speex"
msgstr "Ogg Speex"
-#: core/song.cpp:442 transcoder/transcoder.cpp:241
+#: core/song.cpp:442 transcoder/transcoder.cpp:242
#: ../bin/src/ui_magnatunedownloaddialog.h:135
#: ../bin/src/ui_magnatunesettingspage.h:169
msgid "Ogg Vorbis"
@@ -3521,13 +3522,12 @@ msgstr "Diskouez an hini kentañ nemetken"
msgid "Opacity"
msgstr "Demerez"
-#: internet/digitally/digitallyimportedservicebase.cpp:175
+#: internet/digitally/digitallyimportedservicebase.cpp:177
#: internet/icecast/icecastservice.cpp:298
#: internet/jamendo/jamendoservice.cpp:427
#: internet/magnatune/magnatuneservice.cpp:287
#: internet/somafm/somafmservice.cpp:102
#: internet/intergalacticfm/intergalacticfmservice.cpp:102
-#: internet/soundcloud/soundcloudservice.cpp:377
#, qt-format
msgid "Open %1 in browser"
msgstr "Digeriñ %1 er merdeer"
@@ -3544,7 +3544,7 @@ msgstr "Digeriñ ur restr OPML"
msgid "Open OPML file..."
msgstr "Digeriñ ur restr OPML..."
-#: transcoder/transcodedialog.cpp:240
+#: transcoder/transcodedialog.cpp:242
msgid "Open a directory to import music from"
msgstr "Digeriñ ur c'havlec'h evit enporzhiañ ar sonerezh dioutañ"
@@ -3560,13 +3560,13 @@ msgstr "Digeriñ ur restr..."
msgid "Open in Google Drive"
msgstr "Digeriñ e-barzh Google Drive"
-#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:460
+#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:461
#: internet/core/internetservice.cpp:62 library/libraryview.cpp:389
#: widgets/fileviewlist.cpp:36
msgid "Open in new playlist"
msgstr "Digerin en ur roll seniñ nevez"
-#: ../bin/src/ui_behavioursettingspage.h:358
+#: ../bin/src/ui_behavioursettingspage.h:397
msgctxt "Refers to behavior settings in Clementine settings page."
msgid "Open in new playlist"
msgstr "Digeriñ en ur roll-seniñ nevez"
@@ -3580,7 +3580,7 @@ msgstr "Digeriñ en ho merdeer"
msgid "Open..."
msgstr "Digeriñ..."
-#: internet/lastfm/lastfmservice.cpp:276
+#: internet/lastfm/lastfmservice.cpp:278
msgid "Operation failed"
msgstr "Oberiadenn c'hwitet"
@@ -3606,7 +3606,7 @@ msgstr "Opus"
msgid "Organise Files"
msgstr "Aozañ ar restroù"
-#: library/libraryview.cpp:416 ui/mainwindow.cpp:715
+#: library/libraryview.cpp:416 ui/mainwindow.cpp:717
msgid "Organise files..."
msgstr "Aozañ ar restroù..."
@@ -3618,8 +3618,8 @@ msgstr "Oc'h aozañ ar restroù"
msgid "Original tags"
msgstr "Klavioù orin"
-#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1359
-#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:135
+#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1392
+#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:135
#: ../bin/src/ui_groupbydialog.h:154 ../bin/src/ui_groupbydialog.h:173
msgid "Original year"
msgstr "Bloavezh orin"
@@ -3690,7 +3690,7 @@ msgstr "Fest"
msgid "Password"
msgstr "Ger-tremen"
-#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1160 ui/mainwindow.cpp:1663
+#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1170 ui/mainwindow.cpp:1689
#: ui/qtsystemtrayicon.cpp:189 wiimotedev/wiimotesettingspage.cpp:114
msgid "Pause"
msgstr "Ehan"
@@ -3703,8 +3703,8 @@ msgstr "Ehan al lenn"
msgid "Paused"
msgstr "Ehanet"
-#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1367
-#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:140
+#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1400
+#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:140
#: ../bin/src/ui_groupbydialog.h:159 ../bin/src/ui_groupbydialog.h:178
#: ../bin/src/ui_edittagdialog.h:727
msgid "Performer"
@@ -3718,14 +3718,14 @@ msgstr "Piksel"
msgid "Plain sidebar"
msgstr "Bareen gostez simpl"
-#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:676 ui/mainwindow.cpp:1126
-#: ui/mainwindow.cpp:1145 ui/mainwindow.cpp:1667 ui/qtsystemtrayicon.cpp:177
+#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:678 ui/mainwindow.cpp:1134
+#: ui/mainwindow.cpp:1155 ui/mainwindow.cpp:1693 ui/qtsystemtrayicon.cpp:177
#: ui/qtsystemtrayicon.cpp:203 wiimotedev/wiimotesettingspage.cpp:107
#: ../bin/src/ui_mainwindow.h:675
msgid "Play"
msgstr "Lenn"
-#: playlist/playlist.cpp:1374 ../bin/src/ui_edittagdialog.h:703
+#: playlist/playlist.cpp:1407 ../bin/src/ui_edittagdialog.h:703
msgid "Play count"
msgstr "Konter selaouadennoù"
@@ -3733,16 +3733,16 @@ msgstr "Konter selaouadennoù"
msgid "Play if stopped, pause if playing"
msgstr "Lenn pe ehan, hervez ar stad"
-#: ../bin/src/ui_behavioursettingspage.h:344
-#: ../bin/src/ui_behavioursettingspage.h:364
+#: ../bin/src/ui_behavioursettingspage.h:383
+#: ../bin/src/ui_behavioursettingspage.h:403
msgid "Play if there is nothing already playing"
msgstr "Lenn ma vez netra all o vezañ lennet"
-#: library/libraryview.cpp:396 ui/mainwindow.cpp:1774
+#: library/libraryview.cpp:396 ui/mainwindow.cpp:1800
msgid "Play next"
msgstr ""
-#: ui/mainwindow.cpp:1772
+#: ui/mainwindow.cpp:1798
msgid "Play selected tracks next"
msgstr ""
@@ -3762,7 +3762,7 @@ msgstr "Lenn sonerezh"
msgid "Player options"
msgstr "Dibarzhioù al lenner"
-#: playlist/playlistcontainer.cpp:294 playlist/playlistlistcontainer.cpp:325
+#: playlist/playlistcontainer.cpp:296 playlist/playlistlistcontainer.cpp:325
#: playlist/playlistmanager.cpp:87 playlist/playlistmanager.cpp:156
#: playlist/playlistmanager.cpp:525 playlist/playlisttabbar.cpp:366
msgid "Playlist"
@@ -3781,7 +3781,7 @@ msgstr "Dibarzhioù ar roll seniñ"
msgid "Playlist type"
msgstr "Doare ar roll seniñ"
-#: internet/soundcloud/soundcloudservice.cpp:133 ui/mainwindow.cpp:269
+#: ui/mainwindow.cpp:271
msgid "Playlists"
msgstr "Rolloù seniñ"
@@ -3789,7 +3789,7 @@ msgstr "Rolloù seniñ"
msgid "Please close your browser and return to Clementine."
msgstr "Klozit ho merdeer ha deuit en-dro war Clementine mar plij."
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
#, qt-format
msgid "Please open this URL in your browser: %1"
msgstr ""
@@ -3872,7 +3872,7 @@ msgstr "Pouezit war un douchenn"
msgid "Press a key combination to use for %1..."
msgstr "Pouezit war ur kombinadenn touchennoù evit implij %1"
-#: ../bin/src/ui_behavioursettingspage.h:347
+#: ../bin/src/ui_behavioursettingspage.h:386
msgid "Pressing \"Previous\" in player will..."
msgstr "Pouezañ \"A-raok' el lenner a..."
@@ -3949,12 +3949,12 @@ msgstr "Goulennadeg trobarzhell"
msgid "Queue Manager"
msgstr "Merour listenn c'hortoz"
-#: ui/mainwindow.cpp:1767
+#: ui/mainwindow.cpp:1793
msgid "Queue selected tracks"
msgstr "Lakaat ar roudoù da heul"
-#: globalsearch/globalsearchview.cpp:464 library/libraryview.cpp:393
-#: ui/mainwindow.cpp:1765
+#: globalsearch/globalsearchview.cpp:465 library/libraryview.cpp:393
+#: ui/mainwindow.cpp:1791
msgid "Queue track"
msgstr "Lakaat ar roud da heul"
@@ -4003,12 +4003,12 @@ msgstr "Lakaat 4 steredenn evit an ton lennet"
msgid "Rate the current song 5 stars"
msgstr "Lakaat 5 steredenn evit an ton lennet"
-#: playlist/playlist.cpp:1372 ../bin/src/ui_edittagdialog.h:711
+#: playlist/playlist.cpp:1405 ../bin/src/ui_edittagdialog.h:711
msgid "Rating"
msgstr "Notenn"
#: internet/magnatune/magnatunedownloaddialog.cpp:309
-#: ui/albumcovermanager.cpp:212
+#: ui/albumcovermanager.cpp:214
msgid "Really cancel?"
msgstr "Sur oc'h da gaout c'hoant da nullañ"
@@ -4035,7 +4035,7 @@ msgstr "Hizivaat ar c'hanolioù"
msgid "Refresh station list"
msgstr "Hizivat listenn ar savlec'hioù"
-#: internet/digitally/digitallyimportedservicebase.cpp:178
+#: internet/digitally/digitallyimportedservicebase.cpp:180
msgid "Refresh streams"
msgstr "Hizivaat al lanvioù"
@@ -4044,7 +4044,7 @@ msgid "Reggae"
msgstr "Reggae"
#: playlist/playlistsaveoptionsdialog.cpp:33
-#: ../bin/src/ui_behavioursettingspage.h:380
+#: ../bin/src/ui_behavioursettingspage.h:419
msgid "Relative"
msgstr "Relativel"
@@ -4052,9 +4052,9 @@ msgstr "Relativel"
msgid "Remember Wii remote swing"
msgstr "Kaout soñj eus fiñv ar Wii remote"
-#: ../bin/src/ui_behavioursettingspage.h:332
-msgid "Remember from last time"
-msgstr "Kaout soñj eus ar wech diwezhañ"
+#: ../bin/src/ui_behavioursettingspage.h:371
+msgid "Remember from &last time"
+msgstr ""
#: ../bin/src/ui_playlistsaveoptionsdialog.h:99
msgid "Remember my choice"
@@ -4126,13 +4126,13 @@ msgstr "Adlenn ar roll seniñ"
msgid "Repeat track"
msgstr "Adlenn an ton"
-#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:457
+#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:458
#: internet/core/internetservice.cpp:55 library/libraryview.cpp:386
#: widgets/fileviewlist.cpp:34
msgid "Replace current playlist"
msgstr "Eillec'hiañ ar roll seniñ lennet"
-#: ../bin/src/ui_behavioursettingspage.h:357
+#: ../bin/src/ui_behavioursettingspage.h:396
msgid "Replace the playlist"
msgstr "Eillec'hiañ ar roll seniñ"
@@ -4164,7 +4164,7 @@ msgstr "Adderaouiñ"
msgid "Reset play counts"
msgstr "Adderaouiñ ar konter lennadennoù"
-#: ../bin/src/ui_behavioursettingspage.h:351
+#: ../bin/src/ui_behavioursettingspage.h:390
msgid "Restart song, then jump to previous if pressed again"
msgstr "Adlenn an ton, ha lammat d'an hini a-raok ma vez adpouezet"
@@ -4177,7 +4177,7 @@ msgstr "Adkregiñ ar roud, pe lenn ar roud a-raok m'eo kroget abaoe 8 eilenn pe
msgid "Restrict to ASCII characters"
msgstr "Bevenniñ ouzh an arouezennoù ASCII"
-#: ../bin/src/ui_behavioursettingspage.h:333
+#: ../bin/src/ui_behavioursettingspage.h:376
msgid "Resume playback on start"
msgstr "Kenderc'hel da seniñ pa grog ar poellad"
@@ -4193,7 +4193,7 @@ msgstr "Dehou"
msgid "Rip"
msgstr "Eztennañ"
-#: ripper/ripcddialog.cpp:105
+#: ripper/ripcddialog.cpp:107
msgid "Rip CD"
msgstr "Eztennañ ar bladenn"
@@ -4231,13 +4231,13 @@ msgstr "Tennañ an drobarzhell diarvar"
msgid "Safely remove the device after copying"
msgstr "Tennañ an drobarzhell diarvar goude an eilañ"
-#: playlist/playlist.cpp:1387 ../bin/src/ui_edittagdialog.h:708
+#: playlist/playlist.cpp:1420 ../bin/src/ui_edittagdialog.h:708
#: ../bin/src/ui_playbacksettingspage.h:371
#: ../bin/src/ui_streamdetailsdialog.h:141
msgid "Sample rate"
msgstr "Standilhonañ"
-#: ui/organisedialog.cpp:81
+#: ui/organisedialog.cpp:82
msgid "Samplerate"
msgstr "Standilhonañ"
@@ -4311,7 +4311,7 @@ msgstr "Aelad ar feur standilhonañ (SSR)"
msgid "Scale size"
msgstr "Cheñch ar ment"
-#: playlist/playlist.cpp:1380 ../bin/src/ui_edittagdialog.h:709
+#: playlist/playlist.cpp:1413 ../bin/src/ui_edittagdialog.h:709
msgid "Score"
msgstr "Poentoù"
@@ -4319,7 +4319,7 @@ msgstr "Poentoù"
msgid "Scrobble tracks that I listen to"
msgstr "Scrobble ar roudoù selaouet ganin"
-#: ../bin/src/ui_behavioursettingspage.h:320
+#: ../bin/src/ui_behavioursettingspage.h:359
msgid "Scroll over icon to change track"
msgstr "Dibunit betek an arlun da gemmañ ar roud"
@@ -4333,7 +4333,7 @@ msgstr "Seafile"
msgid "Search"
msgstr "Klask"
-#: ui/mainwindow.cpp:260 ../bin/src/ui_globalsearchsettingspage.h:141
+#: ui/mainwindow.cpp:262 ../bin/src/ui_globalsearchsettingspage.h:141
msgctxt "Global search settings dialog title."
msgid "Search"
msgstr "Klask"
@@ -4358,7 +4358,7 @@ msgstr "Klask Subsonic"
msgid "Search automatically"
msgstr "Klask ent emgefreek"
-#: ui/mainwindow.cpp:696
+#: ui/mainwindow.cpp:698
msgid "Search for album"
msgstr ""
@@ -4371,11 +4371,11 @@ msgstr "Klask goloioù albom..."
msgid "Search for anything"
msgstr "Klask pep tra"
-#: ui/mainwindow.cpp:693
+#: ui/mainwindow.cpp:695
msgid "Search for artist"
msgstr ""
-#: globalsearch/globalsearchview.cpp:473 library/libraryview.cpp:401
+#: globalsearch/globalsearchview.cpp:474 library/libraryview.cpp:401
msgid "Search for this"
msgstr ""
@@ -4395,7 +4395,6 @@ msgstr "Doare klask"
msgid "Search options"
msgstr "Dibarzhioù klask"
-#: internet/soundcloud/soundcloudservice.cpp:119
#: internet/spotify/spotifyservice.cpp:400
msgid "Search results"
msgstr "Disoc'hoù an enklask"
@@ -4429,7 +4428,7 @@ msgstr "Klask ar roud lennet gant ur sammad relativel"
msgid "Seek the currently playing track to an absolute position"
msgstr "Klask ar roud lennet gant ul lec'hiadur absolud"
-#: ../bin/src/ui_behavioursettingspage.h:373
+#: ../bin/src/ui_behavioursettingspage.h:412
msgid "Seeking using a keyboard shortcut or mouse wheel"
msgstr "Klask gant berradennoù klavier pe rod al logodenn"
@@ -4485,11 +4484,11 @@ msgstr "URL an dafariad"
msgid "Server details"
msgstr "Munudoù an dafariad"
-#: internet/lastfm/lastfmservice.cpp:282
+#: internet/lastfm/lastfmservice.cpp:284
msgid "Service offline"
msgstr "Servij ezlinenn"
-#: ui/mainwindow.cpp:1812
+#: ui/mainwindow.cpp:1838
#, qt-format
msgid "Set %1 to \"%2\"..."
msgstr "Termeniñ %1 d'an talvoud %2..."
@@ -4506,6 +4505,10 @@ msgstr "Lakaat un talvoud evit an holll roudoù diuzet"
msgid "Settings"
msgstr "Arventennoù"
+#: ../bin/src/ui_behavioursettingspage.h:429
+msgid "Short duration (at least 1 minute or half the track length)"
+msgstr ""
+
#: ../bin/src/ui_globalshortcutssettingspage.h:172
msgid "Shortcut"
msgstr "Berradenn"
@@ -4565,7 +4568,7 @@ msgstr "Diskouez un OSD brav"
msgid "Show above status bar"
msgstr "Diskouez a-us d'ar varenn stad"
-#: ui/mainwindow.cpp:643
+#: ui/mainwindow.cpp:645
msgid "Show all songs"
msgstr "Diskouez an holl tonioù"
@@ -4585,12 +4588,12 @@ msgstr "Diskouez an dispartierien"
msgid "Show fullsize..."
msgstr "Diskouez er ment gwirion..."
-#: library/libraryview.cpp:433 ui/mainwindow.cpp:725
+#: library/libraryview.cpp:433 ui/mainwindow.cpp:727
#: widgets/fileviewlist.cpp:53
msgid "Show in file browser..."
msgstr "Diskouez er merdeer retroù"
-#: ui/mainwindow.cpp:727
+#: ui/mainwindow.cpp:729
msgid "Show in library..."
msgstr "Diskouez er sonaoueg"
@@ -4602,11 +4605,11 @@ msgstr "Diskouez e \"Arzourien Liesseurt\""
msgid "Show moodbar"
msgstr "Diskouez ar varenn imor"
-#: ui/mainwindow.cpp:645
+#: ui/mainwindow.cpp:647
msgid "Show only duplicates"
msgstr "Diskouez an doublennoù nemetken"
-#: ui/mainwindow.cpp:647
+#: ui/mainwindow.cpp:649
msgid "Show only untagged"
msgstr "Diskouez an tonioù hep klav nemetken"
@@ -4630,7 +4633,7 @@ msgstr "Diskouez ar bouton \"karout\""
msgid "Show the scrobble button in the main window"
msgstr "Diskouez ar bouton scrobbling er prenestr pennañ"
-#: ../bin/src/ui_behavioursettingspage.h:319
+#: ../bin/src/ui_behavioursettingspage.h:358
msgid "Show tray icon"
msgstr "Diskouez an ikon er zonenn kemenadennoù"
@@ -4690,7 +4693,7 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Mont a-drek er roll seniñ"
-#: playlist/playlist.cpp:1376 ../bin/src/ui_edittagdialog.h:705
+#: playlist/playlist.cpp:1409 ../bin/src/ui_edittagdialog.h:705
msgid "Skip count"
msgstr "Konter tonioù lammet"
@@ -4698,11 +4701,11 @@ msgstr "Konter tonioù lammet"
msgid "Skip forwards in playlist"
msgstr "Mont dirak er roll seniñ"
-#: ui/mainwindow.cpp:1783
+#: ui/mainwindow.cpp:1809
msgid "Skip selected tracks"
msgstr "Tremen ar roudoù diuzet"
-#: ui/mainwindow.cpp:1781
+#: ui/mainwindow.cpp:1807
msgid "Skip track"
msgstr "Tremen ar roud"
@@ -4718,7 +4721,7 @@ msgstr "Barenn gostez bihan"
msgid "Smart playlist"
msgstr "Roll seniñ speredek"
-#: library/librarymodel.cpp:1367
+#: library/librarymodel.cpp:1368
msgid "Smart playlists"
msgstr "Rolloù seniñ speredek"
@@ -4734,7 +4737,7 @@ msgstr "Soft Rock"
msgid "Song Information"
msgstr "Titouroù an ton"
-#: ui/mainwindow.cpp:280
+#: ui/mainwindow.cpp:282
msgid "Song info"
msgstr "Ton"
@@ -4766,11 +4769,7 @@ msgstr "Urzhiañ an tonioù gant"
msgid "Sorting"
msgstr "Urzhiañ"
-#: ../bin/src/ui_soundcloudsettingspage.h:100
-msgid "SoundCloud"
-msgstr "SoundCloud"
-
-#: playlist/playlist.cpp:1404
+#: playlist/playlist.cpp:1437
msgid "Source"
msgstr "Mammenn"
@@ -4816,7 +4815,7 @@ msgstr "Boaz"
msgid "Starred"
msgstr "Karetañ"
-#: ripper/ripcddialog.cpp:72
+#: ripper/ripcddialog.cpp:74
msgid "Start ripping"
msgstr "Kregiñ gant an eztennadenn"
@@ -4824,18 +4823,17 @@ msgstr "Kregiñ gant an eztennadenn"
msgid "Start the playlist currently playing"
msgstr "Kregiñ ar roll seniñ"
-#: transcoder/transcodedialog.cpp:90
+#: transcoder/transcodedialog.cpp:92
msgid "Start transcoding"
msgstr "Kregin an transkodiñ"
-#: internet/soundcloud/soundcloudservice.cpp:121
#: internet/spotify/spotifyservice.cpp:402
msgid ""
"Start typing something on the search box above to fill this search results "
"list"
msgstr "Krogit da skrivañ un dra bennak er boest enklask a-us evit leuniañ listenn an disoc'hoù."
-#: transcoder/transcoder.cpp:397
+#: transcoder/transcoder.cpp:398
#, qt-format
msgid "Starting %1"
msgstr "O kregiñ %1"
@@ -4861,7 +4859,7 @@ msgstr "Paouez goude pep roudenn"
msgid "Stop after every track"
msgstr "Paouez goude pep roudenn"
-#: ui/mainwindow.cpp:680 ../bin/src/ui_mainwindow.h:679
+#: ui/mainwindow.cpp:682 ../bin/src/ui_mainwindow.h:679
msgid "Stop after this track"
msgstr "Paouez goude ar roud-mañ"
@@ -4873,7 +4871,7 @@ msgstr "Paouez goude vefe lennet an ton"
msgid "Stop playback after current track"
msgstr "Paouez gant al lenn goude ar roud bremanel"
-#: ../bin/src/ui_behavioursettingspage.h:334
+#: ../bin/src/ui_behavioursettingspage.h:377
msgid "Stop playback if song fails to play"
msgstr ""
@@ -4921,7 +4919,7 @@ msgstr "Subsonic"
msgid "Success!"
msgstr "Berzh !"
-#: transcoder/transcoder.cpp:189
+#: transcoder/transcoder.cpp:190
#, qt-format
msgid "Successfully written %1"
msgstr "%1 skrivet"
@@ -4989,7 +4987,7 @@ msgstr "Tekno"
msgid "Text options"
msgstr "Dibarzhioù an testenn"
-#: ui/about.cpp:74
+#: ui/about.cpp:76
msgid "Thanks to"
msgstr "Trugarez da"
@@ -5029,7 +5027,7 @@ msgid ""
"license key. Visit subsonic.org for details."
msgstr "Ar mare amprouiñ evit an dafariad Subsonic a zo echuet. Roit arc'hant evit kaout un alc'hwez lañvaz mar plij. Kit war subsonic.org evit ar munudoù."
-#: ui/mainwindow.cpp:2674
+#: ui/mainwindow.cpp:2700
msgid ""
"The version of Clementine you've just updated to requires a full library "
"rescan because of the new features listed below:"
@@ -5053,13 +5051,13 @@ msgstr "Ur gudenn a zo savet evit kaout metaroadennoù adalek Magnatune"
msgid "There was a problem parsing the response from the iTunes Store"
msgstr "Ur gudenn a zo bet o lenn respont ar servij iTunes"
-#: ui/organiseerrordialog.cpp:54
+#: ui/organiseerrordialog.cpp:56
msgid ""
"There were problems copying some songs. The following files could not be "
"copied:"
msgstr "Ur gudenn a zo evit kopian tonioù 'zo. Ar restroù-mañ n'int ket bet kopiet :"
-#: ui/organiseerrordialog.cpp:61
+#: ui/organiseerrordialog.cpp:63
msgid ""
"There were problems deleting some songs. The following files could not be "
"deleted:"
@@ -5071,7 +5069,7 @@ msgid ""
"continue?"
msgstr "Ar restroù-mañ a vo diverket eus an drobarzhell, sur oc'h da gaout c'hoant kenderc'hel ?"
-#: library/libraryview.cpp:679 ui/mainwindow.cpp:2433 widgets/fileview.cpp:189
+#: library/libraryview.cpp:679 ui/mainwindow.cpp:2459 widgets/fileview.cpp:189
msgid ""
"These files will be permanently deleted from disk, are you sure you want to "
"continue?"
@@ -5142,7 +5140,7 @@ msgstr "Ar wech kentañ eo e liammit un drobarzhell-mañ. Clementine a skanno an
msgid "This option can be changed in the \"Behavior\" preferences"
msgstr "Ar arventenn-mañ a c'hell bezañ kemmet e rann \"Emzalc'h\" ar gwellvezioù"
-#: internet/lastfm/lastfmservice.cpp:284
+#: internet/lastfm/lastfmservice.cpp:286
msgid "This stream is for paid subscribers only"
msgstr "Al lanv-mañ a zo evit an izili o deus paet."
@@ -5151,11 +5149,11 @@ msgstr "Al lanv-mañ a zo evit an izili o deus paet."
msgid "This type of device is not supported: %1"
msgstr "An doare trobarzhell-mañ n'eo ket meret :%1"
-#: ../bin/src/ui_behavioursettingspage.h:374
+#: ../bin/src/ui_behavioursettingspage.h:413
msgid "Time step"
msgstr "Paz amzer"
-#: playlist/playlist.cpp:1345 ui/organisedialog.cpp:63
+#: playlist/playlist.cpp:1378 ui/organisedialog.cpp:64
#: ui/qtsystemtrayicon.cpp:247 ../bin/src/ui_about.h:141
#: ../bin/src/ui_edittagdialog.h:719 ../bin/src/ui_trackselectiondialog.h:210
#: ../bin/src/ui_ripcddialog.h:306
@@ -5174,7 +5172,7 @@ msgstr "Gweredekaat/Diweredekaat an OSD brav"
msgid "Toggle fullscreen"
msgstr "Tremen e skramm leun"
-#: ui/mainwindow.cpp:1769
+#: ui/mainwindow.cpp:1795
msgid "Toggle queue status"
msgstr "Cheñch stad al listenn c'hortoz"
@@ -5206,11 +5204,11 @@ msgstr "Top tonioù"
msgid "Total albums:"
msgstr "Hollad an albomoù:"
-#: covers/coversearchstatisticsdialog.cpp:70
+#: covers/coversearchstatisticsdialog.cpp:72
msgid "Total bytes transferred"
msgstr "Niver a eizhbit treuzkaset"
-#: covers/coversearchstatisticsdialog.cpp:67
+#: covers/coversearchstatisticsdialog.cpp:69
msgid "Total network requests made"
msgstr "Niver a atersadennoù rouedad"
@@ -5218,15 +5216,11 @@ msgstr "Niver a atersadennoù rouedad"
msgid "Trac&k"
msgstr ""
-#: playlist/playlist.cpp:1353 ui/organisedialog.cpp:72
+#: playlist/playlist.cpp:1386 ui/organisedialog.cpp:73
#: ../bin/src/ui_trackselectiondialog.h:212 ../bin/src/ui_ripcddialog.h:304
msgid "Track"
msgstr "Roud"
-#: internet/soundcloud/soundcloudservice.cpp:136
-msgid "Tracks"
-msgstr "Roudoù"
-
#: ../bin/src/ui_transcodedialog.h:213 ../bin/src/ui_mainwindow.h:706
msgid "Transcode Music"
msgstr "Treuzkodañ Sonerezh"
@@ -5239,7 +5233,7 @@ msgstr "Renabl an transkoder"
msgid "Transcoding"
msgstr "Transkodiñ"
-#: transcoder/transcoder.cpp:317
+#: transcoder/transcoder.cpp:318
#, qt-format
msgid "Transcoding %1 files using %2 threads"
msgstr "O transkodiñ %1 restr oc'h implij %2 threads"
@@ -5290,8 +5284,8 @@ msgstr "Dibosupl kennaskañ"
msgid "Unable to download %1 (%2)"
msgstr "N'eus ket tu pellgargañ %1 (%2)"
-#: core/song.cpp:465 library/librarymodel.cpp:374 library/librarymodel.cpp:379
-#: library/librarymodel.cpp:383 library/librarymodel.cpp:1159
+#: core/song.cpp:465 library/librarymodel.cpp:375 library/librarymodel.cpp:380
+#: library/librarymodel.cpp:384 library/librarymodel.cpp:1160
#: library/savedgroupingmanager.cpp:103 playlist/playlistdelegates.cpp:305
#: playlist/playlistmanager.cpp:532 playlist/playlistmanager.cpp:533
#: songinfo/streamdiscoverer.cpp:87 ui/albumcoverchoicecontroller.cpp:127
@@ -5304,7 +5298,7 @@ msgid "Unknown content-type"
msgstr "Doare endalc'h dianavezet"
#: internet/digitally/digitallyimportedclient.cpp:74
-#: internet/lastfm/lastfmservice.cpp:303
+#: internet/lastfm/lastfmservice.cpp:305
msgid "Unknown error"
msgstr "Kudenn dianav"
@@ -5312,11 +5306,11 @@ msgstr "Kudenn dianav"
msgid "Unset cover"
msgstr "Ar golo n'eo ket bet lakaet"
-#: ui/mainwindow.cpp:1779
+#: ui/mainwindow.cpp:1805
msgid "Unskip selected tracks"
msgstr "Nullañ tremen ar roudoù diuzet"
-#: ui/mainwindow.cpp:1777
+#: ui/mainwindow.cpp:1803
msgid "Unskip track"
msgstr "Nullañ tremen ar roud"
@@ -5427,7 +5421,7 @@ msgstr ""
msgid "Use temporal noise shaping"
msgstr "Implij ar mod kemmañ ar sonioù evit ur mare"
-#: ../bin/src/ui_behavioursettingspage.h:326
+#: ../bin/src/ui_behavioursettingspage.h:365
msgid "Use the system default"
msgstr "Implij yezh dre ziouer ar reizhad"
@@ -5447,7 +5441,7 @@ msgstr "Implij normalizadur an ampled"
msgid "Used"
msgstr "Implijet"
-#: ui/settingsdialog.cpp:147
+#: ui/settingsdialog.cpp:146
msgid "User interface"
msgstr "Etrefas implijer"
@@ -5459,7 +5453,7 @@ msgstr "Etrefas implijer"
msgid "Username"
msgstr "Lezanv"
-#: ../bin/src/ui_behavioursettingspage.h:340
+#: ../bin/src/ui_behavioursettingspage.h:379
msgid "Using the menu to add a song will..."
msgstr "Implij ar roll evit ouzhpennañ un ton a..."
@@ -5476,8 +5470,8 @@ msgstr ""
msgid "Variable bit rate"
msgstr "Fonnder kemmus"
-#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:300
-#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:264
+#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:301
+#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:266
msgid "Various artists"
msgstr "Arzourien Liesseurt"
@@ -5485,7 +5479,7 @@ msgstr "Arzourien Liesseurt"
msgid "Verify Server certificate"
msgstr ""
-#: ui/about.cpp:33
+#: ui/about.cpp:35
#, qt-format
msgid "Version %1"
msgstr "Handelv %1"
@@ -5532,11 +5526,11 @@ msgstr "WAV"
msgid "WMA"
msgstr "WMA"
-#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:322
+#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:361
msgid "Warn me when closing a playlist tab"
msgstr "Gervel ac'hanon pa vez serret un ivinell roll seniñ"
-#: core/song.cpp:448 transcoder/transcoder.cpp:256
+#: core/song.cpp:448 transcoder/transcoder.cpp:257
msgid "Wav"
msgstr "Wav"
@@ -5552,20 +5546,28 @@ msgstr "Lec'hienn web"
msgid "Weeks"
msgstr "Sizhunvezhioù"
-#: ../bin/src/ui_behavioursettingspage.h:329
+#: ../bin/src/ui_behavioursettingspage.h:368
msgid "When Clementine starts"
msgstr "Pa grog Clementine"
+#: ../bin/src/ui_behavioursettingspage.h:427
+msgid "When calculating play counts, use"
+msgstr ""
+
#: ../bin/src/ui_librarysettingspage.h:203
msgid ""
"When looking for album art Clementine will first look for picture files that contain one of these words.\n"
"If there are no matches then it will use the largest image in the directory."
msgstr "E-pad ma klask Clementine goloioù, implij a raio e penn kentañ ar restroù gant unan eus an anvioù-se. Ma n'eus ket diouto, Clementine a implijo skeudenn brasañ an teuliad."
-#: ../bin/src/ui_behavioursettingspage.h:377
+#: ../bin/src/ui_behavioursettingspage.h:416
msgid "When saving a playlist, file paths should be"
msgstr "Pa vez savetaet ur roll-seniñ, ar c'havlec'hioù a rank bezañ"
+#: ../bin/src/ui_behavioursettingspage.h:422
+msgid "When sorting artists, albums and titles"
+msgstr ""
+
#: ../bin/src/ui_globalsearchsettingspage.h:147
msgid "When the list is empty..."
msgstr "Pa 'z eo goullo al listenn..."
@@ -5624,7 +5626,7 @@ msgstr "Windows Media 40k"
msgid "Windows Media 64k"
msgstr "Windows Media 64k"
-#: core/song.cpp:428 transcoder/transcoder.cpp:253
+#: core/song.cpp:428 transcoder/transcoder.cpp:254
msgid "Windows Media audio"
msgstr "ausio Windows Media"
@@ -5638,7 +5640,7 @@ msgid ""
"well?"
msgstr "Ha c'hoant ho peus lakaat tonioù all an albom-mañ e Arzourien Liesseurt ?"
-#: ui/mainwindow.cpp:2681
+#: ui/mainwindow.cpp:2707
msgid "Would you like to run a full rescan right now?"
msgstr "C'hoant ho peus d'ober ur c'hwilervadenn eus al levraoueg bremañ ?"
@@ -5646,7 +5648,7 @@ msgstr "C'hoant ho peus d'ober ur c'hwilervadenn eus al levraoueg bremañ ?"
msgid "Write all songs statistics into songs' files"
msgstr "Skrivañ stadegoù an holl tonioù e restroù an tonioù"
-#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:421
msgid "Write metadata"
msgstr "Skrivañ ar meta-roadennoù"
@@ -5654,8 +5656,8 @@ msgstr "Skrivañ ar meta-roadennoù"
msgid "Wrong username or password."
msgstr "Anv-implijer pe ger-tremen fall."
-#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1357
-#: ui/organisedialog.cpp:75 ../bin/src/ui_groupbydialog.h:134
+#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1390
+#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:134
#: ../bin/src/ui_groupbydialog.h:153 ../bin/src/ui_groupbydialog.h:172
#: ../bin/src/ui_trackselectiondialog.h:211 ../bin/src/ui_ripcddialog.h:312
msgid "Year"
@@ -5732,13 +5734,6 @@ msgstr "N'ho peus ket a kont Spotify Premium."
msgid "You do not have an active subscription"
msgstr "N'ho peus ket a koumanant gweredekaet"
-#: ../bin/src/ui_soundcloudsettingspage.h:101
-msgid ""
-"You don't need to be logged in to search and to listen to music on "
-"SoundCloud. However, you need to login to access your playlists and your "
-"stream."
-msgstr "N'oc'h eus ket ezhomm bezañ kennasket evit selaou ouzh sonerezh war SoundCloud. Hogen, tu zo deoc'h kennaskañ evit tizhout ho rolloù-seniñ hag ho red."
-
#: internet/spotify/spotifyservice.cpp:205
msgid ""
"You have been logged out of Spotify, please re-enter your password in the "
@@ -5760,7 +5755,7 @@ msgid ""
"shortcuts in Clementine."
msgstr "Ezhomm ho peus da lañsañ ar Gwellvezioù Reizhad ha aotren Clementine da \"kontroliñ ho urzhiataer\" evit implij berradennoù hollek e Clementine"
-#: ../bin/src/ui_behavioursettingspage.h:328
+#: ../bin/src/ui_behavioursettingspage.h:367
msgid "You will need to restart Clementine if you change the language."
msgstr "Ezhomm a vo adloc'hañ Clementine ma cheñchit ar yezh."
@@ -5836,7 +5831,7 @@ msgstr "etre"
msgid "biggest first"
msgstr "brasañ araok"
-#: playlist/playlistview.cpp:241 ui/edittagdialog.cpp:500
+#: playlist/playlistview.cpp:242 ui/edittagdialog.cpp:500
msgid "bpm"
msgstr "bdm"
@@ -5893,7 +5888,7 @@ msgstr "etrezek ar re ziwezhañ"
#: internet/spotify/spotifysettingspage.cpp:62
#: internet/spotify/spotifysettingspage.cpp:63
-#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:245
+#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:246
#: ui/edittagdialog.cpp:502
msgid "kbps"
msgstr "kbde"
diff --git a/src/translations/bs.po b/src/translations/bs.po
index 33fb1ddb3..1e1991e62 100644
--- a/src/translations/bs.po
+++ b/src/translations/bs.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
-"PO-Revision-Date: 2018-09-17 13:31+0000\n"
+"PO-Revision-Date: 2018-10-20 12:14+0000\n"
"Last-Translator: hatstand \n"
"Language-Team: Bosnian (http://www.transifex.com/davidsansome/clementine/language/bs/)\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -50,7 +50,7 @@ msgstr " ms"
msgid " pt"
msgstr " pt"
-#: ../bin/src/ui_behavioursettingspage.h:375
+#: ../bin/src/ui_behavioursettingspage.h:414
msgid " s"
msgstr ""
@@ -89,7 +89,7 @@ msgstr "prije %1 dana"
msgid "%1 on %2"
msgstr ""
-#: playlistparsers/playlistparser.cpp:87
+#: playlistparsers/playlistparser.cpp:89
#, qt-format
msgid "%1 playlists (%2)"
msgstr "%1 popisa pjesama (%2)"
@@ -119,12 +119,12 @@ msgstr "%1 pjesama pronađeno"
msgid "%1 songs found (showing %2)"
msgstr "%1 pjesama pronađeno (prikazano %2)"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
#, qt-format
msgid "%1 tracks"
msgstr "%1 pjesama"
-#: ui/albumcovermanager.cpp:472
+#: ui/albumcovermanager.cpp:474
#, qt-format
msgid "%1 transferred"
msgstr ""
@@ -149,19 +149,19 @@ msgstr ""
msgid "%filename%"
msgstr ""
-#: transcoder/transcodedialog.cpp:214
+#: transcoder/transcodedialog.cpp:216
#, c-format, qt-plural-format
msgctxt ""
msgid "%n failed"
msgstr "%n neuspjelo"
-#: transcoder/transcodedialog.cpp:209
+#: transcoder/transcodedialog.cpp:211
#, c-format, qt-plural-format
msgctxt ""
msgid "%n finished"
msgstr "%n završeno"
-#: transcoder/transcodedialog.cpp:203
+#: transcoder/transcodedialog.cpp:205
#, c-format, qt-plural-format
msgctxt ""
msgid "%n remaining"
@@ -260,7 +260,7 @@ msgstr "(različito među više pjesama)"
msgid ", by "
msgstr ""
-#: ui/about.cpp:84
+#: ui/about.cpp:86
msgid "...and all the Amarok contributors"
msgstr "...i svim Amarok pomagačima"
@@ -280,7 +280,7 @@ msgstr ""
msgid "1 day"
msgstr "1 dan"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
msgid "1 track"
msgstr "1 pjesma"
@@ -392,6 +392,10 @@ msgid ""
"A song will be included in the playlist if it matches these conditions."
msgstr "Pjesma će biti uključena u listu pjesama ako zadovoljava ove uslove."
+#: ../bin/src/ui_behavioursettingspage.h:417
+msgid "A&utomatic"
+msgstr ""
+
#: smartplaylists/searchterm.cpp:396
msgid "A-Z"
msgstr "A-Z"
@@ -420,11 +424,11 @@ msgstr "AIFF"
msgid "ALL GLORY TO THE HYPNOTOAD"
msgstr "SVA SLAVA HIPNOŽABI"
-#: ui/albumcovermanager.cpp:105 ui/albumcoversearcher.cpp:158
+#: ui/albumcovermanager.cpp:107 ui/albumcoversearcher.cpp:158
msgid "Abort"
msgstr ""
-#: ui/about.cpp:30
+#: ui/about.cpp:32
#, qt-format
msgid "About %1"
msgstr "O %1"
@@ -438,7 +442,7 @@ msgid "About Qt..."
msgstr "O Qt-u..."
#: playlist/playlistsaveoptionsdialog.cpp:34
-#: ../bin/src/ui_behavioursettingspage.h:379
+#: ../bin/src/ui_behavioursettingspage.h:418
msgid "Absolute"
msgstr ""
@@ -465,10 +469,6 @@ msgstr ""
msgid "Activate/Deactivate Wii Remote"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:128
-msgid "Activities stream"
-msgstr ""
-
#: internet/podcasts/addpodcastdialog.cpp:63
msgid "Add Podcast"
msgstr ""
@@ -497,7 +497,7 @@ msgstr "Dodaj još jedan tok..."
msgid "Add directory..."
msgstr "Dodaj fasciklu..."
-#: ui/mainwindow.cpp:2049
+#: ui/mainwindow.cpp:2075
msgid "Add file"
msgstr ""
@@ -513,12 +513,12 @@ msgstr ""
msgid "Add file..."
msgstr "Dodaj datoteku..."
-#: transcoder/transcodedialog.cpp:224
+#: transcoder/transcodedialog.cpp:226
msgid "Add files to transcode"
msgstr "Dodaj datoteke za pretvorbu"
-#: transcoder/transcodedialog.cpp:306 ui/mainwindow.cpp:2076
-#: ripper/ripcddialog.cpp:201
+#: transcoder/transcodedialog.cpp:308 ui/mainwindow.cpp:2102
+#: ripper/ripcddialog.cpp:203
msgid "Add folder"
msgstr "Dodaj fasciklu"
@@ -622,7 +622,7 @@ msgstr ""
msgid "Add to Spotify starred"
msgstr ""
-#: ui/mainwindow.cpp:1850
+#: ui/mainwindow.cpp:1876
msgid "Add to another playlist"
msgstr "Dodaj drugoj listi pjesama"
@@ -630,8 +630,8 @@ msgstr "Dodaj drugoj listi pjesama"
msgid "Add to playlist"
msgstr "Dodaj u listu pjesama"
-#: ../bin/src/ui_behavioursettingspage.h:359
-#: ../bin/src/ui_behavioursettingspage.h:371
+#: ../bin/src/ui_behavioursettingspage.h:398
+#: ../bin/src/ui_behavioursettingspage.h:410
msgid "Add to the queue"
msgstr "Dodaj na listu čekanja"
@@ -672,8 +672,8 @@ msgstr ""
msgid "After copying..."
msgstr "Poslije kopiranja..."
-#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1349
-#: ui/organisedialog.cpp:64 ui/qtsystemtrayicon.cpp:251
+#: library/savedgroupingmanager.cpp:65 playlist/playlist.cpp:1382
+#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:251
#: ../bin/src/ui_groupbydialog.h:128 ../bin/src/ui_groupbydialog.h:147
#: ../bin/src/ui_groupbydialog.h:166 ../bin/src/ui_albumcoversearcher.h:110
#: ../bin/src/ui_albumcoversearcher.h:112 ../bin/src/ui_edittagdialog.h:723
@@ -685,8 +685,8 @@ msgstr "Album"
msgid "Album (ideal loudness for all tracks)"
msgstr "Album (idealna jačina za sve pjesme)"
-#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1363
-#: ui/organisedialog.cpp:67 ../bin/src/ui_groupbydialog.h:130
+#: library/savedgroupingmanager.cpp:80 playlist/playlist.cpp:1396
+#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:130
#: ../bin/src/ui_groupbydialog.h:149 ../bin/src/ui_groupbydialog.h:168
#: ../bin/src/ui_edittagdialog.h:725
msgid "Album artist"
@@ -700,11 +700,11 @@ msgstr ""
msgid "Album info on jamendo.com..."
msgstr "Informacije o albumu na jamendo.com..."
-#: ui/albumcovermanager.cpp:129
+#: ui/albumcovermanager.cpp:131
msgid "Albums with covers"
msgstr "Albumi sa omotom"
-#: ui/albumcovermanager.cpp:130
+#: ui/albumcovermanager.cpp:132
msgid "Albums without covers"
msgstr "Albumi bez omota"
@@ -712,7 +712,7 @@ msgstr "Albumi bez omota"
msgid "All"
msgstr ""
-#: ui/mainwindow.cpp:158
+#: ui/mainwindow.cpp:160
msgid "All Files (*)"
msgstr "Sve datoteke (*)"
@@ -721,11 +721,11 @@ msgctxt "Label for button to enable/disable Hypnotoad background sound."
msgid "All Glory to the Hypnotoad!"
msgstr ""
-#: ui/albumcovermanager.cpp:128
+#: ui/albumcovermanager.cpp:130
msgid "All albums"
msgstr "Svi albumi."
-#: ui/albumcovermanager.cpp:262
+#: ui/albumcovermanager.cpp:264
msgid "All artists"
msgstr "Svi izvođači"
@@ -733,12 +733,12 @@ msgstr "Svi izvođači"
msgid "All files (*)"
msgstr "Sve datoteke (*)"
-#: playlistparsers/playlistparser.cpp:74
+#: playlistparsers/playlistparser.cpp:76
#, qt-format
msgid "All playlists (%1)"
msgstr "Sve liste pjesama (%1)"
-#: ui/about.cpp:80
+#: ui/about.cpp:82
msgid "All the translators"
msgstr "Svi prevodioci"
@@ -762,16 +762,16 @@ msgstr ""
msgid "Alongside the originals"
msgstr "Pored orginala"
-#: ../bin/src/ui_behavioursettingspage.h:331
-msgid "Always hide the main window"
-msgstr "Uvjek sakrij glavni prozor"
+#: ../bin/src/ui_behavioursettingspage.h:370
+msgid "Alwa&ys hide the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:330
-msgid "Always show the main window"
-msgstr "Uvjek prikaži glavni prozor"
+#: ../bin/src/ui_behavioursettingspage.h:369
+msgid "Always show &the main window"
+msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:345
-#: ../bin/src/ui_behavioursettingspage.h:365
+#: ../bin/src/ui_behavioursettingspage.h:384
+#: ../bin/src/ui_behavioursettingspage.h:404
msgid "Always start playing"
msgstr "Uvjek počni sa slušanjem"
@@ -785,7 +785,7 @@ msgstr ""
msgid "An error occurred loading the iTunes database"
msgstr "Desila se greška prilikom učitavanja iTunes baze podataka"
-#: playlist/playlist.cpp:424 ui/edittagdialog.cpp:703
+#: playlist/playlist.cpp:454 ui/edittagdialog.cpp:703
#, qt-format
msgid "An error occurred writing metadata to '%1'"
msgstr "Desila se greška prilikom zapisivanja meta podataka na '%1'"
@@ -794,7 +794,7 @@ msgstr "Desila se greška prilikom zapisivanja meta podataka na '%1'"
msgid "An unspecified error occurred."
msgstr ""
-#: ui/about.cpp:85
+#: ui/about.cpp:87
msgid "And:"
msgstr "I:"
@@ -812,13 +812,13 @@ msgstr "Izgled"
msgid "Append files/URLs to the playlist"
msgstr "Dodaj datoteke/URL.ove listi pjesama"
-#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:454
+#: devices/deviceview.cpp:218 globalsearch/globalsearchview.cpp:455
#: internet/core/internetservice.cpp:48 library/libraryview.cpp:383
#: widgets/fileviewlist.cpp:31
msgid "Append to current playlist"
msgstr "Dodaj trenutnoj listi pjesama"
-#: ../bin/src/ui_behavioursettingspage.h:356
+#: ../bin/src/ui_behavioursettingspage.h:395
msgid "Append to the playlist"
msgstr ""
@@ -841,8 +841,8 @@ msgid ""
"the songs of your library?"
msgstr ""
-#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1347
-#: ui/organisedialog.cpp:65 ui/qtsystemtrayicon.cpp:249
+#: library/savedgroupingmanager.cpp:62 playlist/playlist.cpp:1380
+#: ui/organisedialog.cpp:66 ui/qtsystemtrayicon.cpp:249
#: ../bin/src/ui_groupbydialog.h:129 ../bin/src/ui_groupbydialog.h:148
#: ../bin/src/ui_groupbydialog.h:167 ../bin/src/ui_albumcoversearcher.h:106
#: ../bin/src/ui_albumcoversearcher.h:108 ../bin/src/ui_edittagdialog.h:721
@@ -850,16 +850,16 @@ msgstr ""
msgid "Artist"
msgstr "Izvođač"
-#: ui/mainwindow.cpp:283
+#: ui/mainwindow.cpp:285
msgid "Artist info"
msgstr "Informacije o izvođaču"
-#: ui/organisedialog.cpp:66
+#: ui/organisedialog.cpp:67
msgid "Artist's initial"
msgstr "Izvođačevi inicijali"
-#: ../bin/src/ui_behavioursettingspage.h:381
-msgid "Ask when saving"
+#: ../bin/src/ui_behavioursettingspage.h:420
+msgid "As&k when saving"
msgstr ""
#: ../bin/src/ui_transcodedialog.h:225
@@ -874,7 +874,7 @@ msgstr ""
#: internet/digitally/digitallyimportedsettingspage.cpp:82
#: internet/magnatune/magnatunesettingspage.cpp:117
-#: internet/lastfm/lastfmservice.cpp:268
+#: internet/lastfm/lastfmservice.cpp:270
#: internet/lastfm/lastfmsettingspage.cpp:76
msgid "Authentication failed"
msgstr "Autentifikacija nije prošla"
@@ -883,7 +883,7 @@ msgstr "Autentifikacija nije prošla"
msgid "Author"
msgstr ""
-#: ui/about.cpp:68
+#: ui/about.cpp:70
msgid "Authors"
msgstr "Autori"
@@ -893,7 +893,6 @@ msgid "Auto"
msgstr ""
#: playlist/playlistsaveoptionsdialog.cpp:32
-#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Automatic"
msgstr ""
@@ -913,7 +912,7 @@ msgstr "Dostupno"
msgid "Average bitrate"
msgstr ""
-#: covers/coversearchstatisticsdialog.cpp:69
+#: covers/coversearchstatisticsdialog.cpp:71
msgid "Average image size"
msgstr ""
@@ -921,7 +920,7 @@ msgstr ""
msgid "BBC Podcasts"
msgstr ""
-#: playlist/playlist.cpp:1383 ui/organisedialog.cpp:74
+#: playlist/playlist.cpp:1416 ui/organisedialog.cpp:75
#: ../bin/src/ui_edittagdialog.h:704
msgid "BPM"
msgstr "BPM"
@@ -942,7 +941,7 @@ msgstr ""
msgid "Background opacity"
msgstr "Providnost pozadine"
-#: core/database.cpp:648
+#: core/database.cpp:664
msgid "Backing up database"
msgstr ""
@@ -966,7 +965,7 @@ msgstr "Osnovna plava"
msgid "Basic audio type"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:318
+#: ../bin/src/ui_behavioursettingspage.h:357
msgid "Behavior"
msgstr "Ponašanje"
@@ -978,7 +977,7 @@ msgstr ""
msgid "Biography"
msgstr ""
-#: playlist/playlist.cpp:1385 ../bin/src/ui_edittagdialog.h:706
+#: playlist/playlist.cpp:1418 ../bin/src/ui_edittagdialog.h:706
#: ../bin/src/ui_streamdetailsdialog.h:139
msgid "Bit rate"
msgstr "Protok bitova"
@@ -993,7 +992,7 @@ msgstr "Protok bitova"
msgid "Bitrate"
msgstr ""
-#: ui/organisedialog.cpp:80
+#: ui/organisedialog.cpp:81
msgctxt "Refers to bitrate in file organise dialog."
msgid "Bitrate"
msgstr ""
@@ -1084,7 +1083,7 @@ msgstr "Promjeni kraticu..."
msgid "Change shuffle mode"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:370
+#: ../bin/src/ui_behavioursettingspage.h:409
msgid "Change the currently playing song"
msgstr ""
@@ -1114,7 +1113,7 @@ msgstr ""
msgid "Check for updates"
msgstr ""
-#: ui/mainwindow.cpp:820
+#: ui/mainwindow.cpp:824
msgid "Check for updates..."
msgstr "Provjeri za nadogradnje..."
@@ -1163,7 +1162,7 @@ msgstr "Klasična"
msgid "Cleaning up"
msgstr ""
-#: transcoder/transcodedialog.cpp:61 widgets/lineedit.cpp:41
+#: transcoder/transcodedialog.cpp:63 widgets/lineedit.cpp:41
#: ../bin/src/ui_queuemanager.h:151
msgid "Clear"
msgstr "Čisto"
@@ -1256,7 +1255,6 @@ msgstr ""
msgid "Click to toggle between remaining time and total time"
msgstr "Kliknite da mjenjate između ukupnog i preostalog vremena"
-#: ../bin/src/ui_soundcloudsettingspage.h:103
#: ../bin/src/ui_lastfmsettingspage.h:133
#: ../bin/src/ui_googledrivesettingspage.h:102
#: ../bin/src/ui_dropboxsettingspage.h:102
@@ -1283,7 +1281,7 @@ msgstr "Zatvorite vizualizacije"
msgid "Closing this window will cancel the download."
msgstr "Zatvarajući ovaj prozor, otkazat ćete preuzimanje."
-#: ui/albumcovermanager.cpp:213
+#: ui/albumcovermanager.cpp:215
msgid "Closing this window will stop searching for album covers."
msgstr "Zatvarajući ovaj prozor, zaustavit ćete pretrzagu za omotima albuma."
@@ -1303,8 +1301,12 @@ msgstr ""
msgid "Comma separated list of class:level, level is 0-3"
msgstr ""
-#: playlist/playlist.cpp:1402 smartplaylists/searchterm.cpp:384
-#: ui/organisedialog.cpp:78 ../bin/src/ui_edittagdialog.h:718
+#: ../bin/src/ui_behavioursettingspage.h:425
+msgid "Comma seperated list of prefix words to ignore when sorting"
+msgstr ""
+
+#: playlist/playlist.cpp:1435 smartplaylists/searchterm.cpp:384
+#: ui/organisedialog.cpp:79 ../bin/src/ui_edittagdialog.h:718
msgid "Comment"
msgstr "Komentar"
@@ -1316,8 +1318,8 @@ msgstr "Automatski završi oznake"
msgid "Complete tags automatically..."
msgstr "Automatski završi oznake..."
-#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1365
-#: ui/organisedialog.cpp:68 ../bin/src/ui_groupbydialog.h:131
+#: library/savedgroupingmanager.cpp:74 playlist/playlist.cpp:1398
+#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:131
#: ../bin/src/ui_groupbydialog.h:150 ../bin/src/ui_groupbydialog.h:169
msgid "Composer"
msgstr "Kompozitor"
@@ -1335,10 +1337,6 @@ msgstr "Podesi Magnatune..."
msgid "Configure Shortcuts"
msgstr "Podesi prečice"
-#: internet/soundcloud/soundcloudservice.cpp:381
-msgid "Configure SoundCloud..."
-msgstr ""
-
#: internet/spotify/spotifyservice.cpp:927
msgid "Configure Spotify..."
msgstr ""
@@ -1347,11 +1345,11 @@ msgstr ""
msgid "Configure Subsonic..."
msgstr ""
-#: globalsearch/globalsearchview.cpp:151 globalsearch/globalsearchview.cpp:480
+#: globalsearch/globalsearchview.cpp:152 globalsearch/globalsearchview.cpp:481
msgid "Configure global search..."
msgstr ""
-#: ui/mainwindow.cpp:659
+#: ui/mainwindow.cpp:661
msgid "Configure library..."
msgstr "Podesi biblioteku..."
@@ -1361,7 +1359,7 @@ msgid "Configure podcasts..."
msgstr ""
#: internet/core/cloudfileservice.cpp:107
-#: internet/digitally/digitallyimportedservicebase.cpp:182
+#: internet/digitally/digitallyimportedservicebase.cpp:184
#: internet/googledrive/googledriveservice.cpp:231
#: ../bin/src/ui_globalsearchsettingspage.h:146
msgid "Configure..."
@@ -1423,11 +1421,11 @@ msgid "Copy to clipboard"
msgstr ""
#: library/libraryview.cpp:419 internet/podcasts/podcastservice.cpp:438
-#: ui/mainwindow.cpp:719 widgets/fileviewlist.cpp:44
+#: ui/mainwindow.cpp:721 widgets/fileviewlist.cpp:44
msgid "Copy to device..."
msgstr "Kopiraj na uređaj..."
-#: devices/deviceview.cpp:228 ui/mainwindow.cpp:709
+#: devices/deviceview.cpp:228 ui/mainwindow.cpp:711
#: widgets/fileviewlist.cpp:40
msgid "Copy to library..."
msgstr "Kopiraj u biblioteku..."
@@ -1442,7 +1440,7 @@ msgid ""
"http://localhost:4040/"
msgstr ""
-#: transcoder/transcoder.cpp:58
+#: transcoder/transcoder.cpp:59
#, qt-format
msgid ""
"Could not create the GStreamer element \"%1\" - make sure you have all the "
@@ -1466,14 +1464,14 @@ msgstr ""
msgid "Couldn't create playlist"
msgstr ""
-#: transcoder/transcoder.cpp:425
+#: transcoder/transcoder.cpp:426
#, qt-format
msgid ""
"Couldn't find a muxer for %1, check you have the correct GStreamer plugins "
"installed"
msgstr "Nemoguće pronaći muxer za %1, provjerite da li imate sve potrebne GStreamer dodatke instalirane."
-#: transcoder/transcoder.cpp:419
+#: transcoder/transcoder.cpp:420
#, qt-format
msgid ""
"Couldn't find an encoder for %1, check you have the correct GStreamer "
@@ -1514,7 +1512,7 @@ msgstr "Omot nije podešen"
msgid "Cover art set from %1"
msgstr "Omot podešen sa %1"
-#: covers/coversearchstatisticsdialog.cpp:59 ui/albumcoversearcher.cpp:100
+#: covers/coversearchstatisticsdialog.cpp:61 ui/albumcoversearcher.cpp:100
#, qt-format
msgid "Covers from %1"
msgstr ""
@@ -1571,18 +1569,18 @@ msgstr ""
msgid "Dance"
msgstr "Dens"
-#: core/database.cpp:601
+#: core/database.cpp:617
msgid ""
"Database corruption detected. Please read https://github.com/clementine-"
"player/Clementine/wiki/Database-Corruption for instructions on how to "
"recover your database"
msgstr ""
-#: playlist/playlist.cpp:1399 ../bin/src/ui_edittagdialog.h:715
+#: playlist/playlist.cpp:1432 ../bin/src/ui_edittagdialog.h:715
msgid "Date created"
msgstr "Datum stvaranja"
-#: playlist/playlist.cpp:1397 ../bin/src/ui_edittagdialog.h:714
+#: playlist/playlist.cpp:1430 ../bin/src/ui_edittagdialog.h:714
msgid "Date modified"
msgstr "Datum izmjenje"
@@ -1633,7 +1631,7 @@ msgid "Delete downloaded data"
msgstr ""
#: devices/deviceview.cpp:408 library/libraryview.cpp:678
-#: ui/mainwindow.cpp:2432 widgets/fileview.cpp:188
+#: ui/mainwindow.cpp:2458 widgets/fileview.cpp:188
msgid "Delete files"
msgstr "Obriši datoteke"
@@ -1641,7 +1639,7 @@ msgstr "Obriši datoteke"
msgid "Delete from device..."
msgstr "Obriši sa uređaja"
-#: library/libraryview.cpp:422 ui/mainwindow.cpp:722
+#: library/libraryview.cpp:422 ui/mainwindow.cpp:724
#: widgets/fileviewlist.cpp:47
msgid "Delete from disk..."
msgstr "Obriši sa diska..."
@@ -1674,11 +1672,11 @@ msgstr "Brišem datoteke"
msgid "Depth"
msgstr ""
-#: ui/mainwindow.cpp:1763
+#: ui/mainwindow.cpp:1789
msgid "Dequeue selected tracks"
msgstr "Makni sa liste čekanja označene pjesme"
-#: ui/mainwindow.cpp:1761
+#: ui/mainwindow.cpp:1787
msgid "Dequeue track"
msgstr "Makni sa liste čekanja označenu pjesmu"
@@ -1707,7 +1705,7 @@ msgstr "Ime uređaja"
msgid "Device properties..."
msgstr "Osobine uređaja..."
-#: ui/mainwindow.cpp:276
+#: ui/mainwindow.cpp:278
msgid "Devices"
msgstr "Uređaji"
@@ -1758,8 +1756,8 @@ msgctxt "Refers to search provider's status."
msgid "Disabled"
msgstr ""
-#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1355
-#: ui/organisedialog.cpp:73 ../bin/src/ui_groupbydialog.h:139
+#: library/savedgroupingmanager.cpp:95 playlist/playlist.cpp:1388
+#: ui/organisedialog.cpp:74 ../bin/src/ui_groupbydialog.h:139
#: ../bin/src/ui_groupbydialog.h:158 ../bin/src/ui_groupbydialog.h:177
#: ../bin/src/ui_edittagdialog.h:722 ../bin/src/ui_ripcddialog.h:313
msgid "Disc"
@@ -1824,7 +1822,7 @@ msgid "Don't shuffle"
msgstr "Ne mješaj"
#: internet/magnatune/magnatunedownloaddialog.cpp:312
-#: ui/albumcovermanager.cpp:215
+#: ui/albumcovermanager.cpp:217
msgid "Don't stop!"
msgstr "Ne zaustavljaj!"
@@ -1837,11 +1835,11 @@ msgstr ""
msgid "Double click to open"
msgstr "Dupli klik za otvaranje"
-#: ../bin/src/ui_behavioursettingspage.h:367
+#: ../bin/src/ui_behavioursettingspage.h:406
msgid "Double clicking a song in the playlist will..."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:353
+#: ../bin/src/ui_behavioursettingspage.h:392
msgid "Double clicking a song will..."
msgstr "Dupli klik na pjesmu će..."
@@ -1950,7 +1948,7 @@ msgstr ""
msgid "Edit smart playlist..."
msgstr ""
-#: ui/mainwindow.cpp:1813
+#: ui/mainwindow.cpp:1839
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@@ -1996,7 +1994,7 @@ msgstr ""
msgid "Enable shortcuts only when Clementine is focused"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:339
+#: ../bin/src/ui_behavioursettingspage.h:375
msgid "Enable song metadata inline edition with click"
msgstr ""
@@ -2085,12 +2083,12 @@ msgid "Equivalent to --log-levels *:3"
msgstr ""
#: internet/magnatune/magnatunedownloaddialog.cpp:246
-#: library/libraryview.cpp:672 ui/mainwindow.cpp:2105 ui/mainwindow.cpp:2384
-#: ui/mainwindow.cpp:2563
+#: library/libraryview.cpp:672 ui/mainwindow.cpp:2131 ui/mainwindow.cpp:2410
+#: ui/mainwindow.cpp:2589
msgid "Error"
msgstr ""
-#: ripper/ripcddialog.cpp:152
+#: ripper/ripcddialog.cpp:154
msgid "Error Ripping CD"
msgstr ""
@@ -2098,11 +2096,11 @@ msgstr ""
msgid "Error connecting MTP device"
msgstr ""
-#: ui/organiseerrordialog.cpp:52
+#: ui/organiseerrordialog.cpp:54
msgid "Error copying songs"
msgstr ""
-#: ui/organiseerrordialog.cpp:59
+#: ui/organiseerrordialog.cpp:61
msgid "Error deleting songs"
msgstr ""
@@ -2120,12 +2118,12 @@ msgstr ""
msgid "Error loading %1"
msgstr ""
-#: internet/digitally/digitallyimportedservicebase.cpp:200
+#: internet/digitally/digitallyimportedservicebase.cpp:202
#: internet/digitally/digitallyimportedurlhandler.cpp:96
msgid "Error loading di.fm playlist"
msgstr ""
-#: transcoder/transcoder.cpp:390
+#: transcoder/transcoder.cpp:391
#, qt-format
msgid "Error processing %1: %2"
msgstr ""
@@ -2199,16 +2197,16 @@ msgstr ""
msgid "Export embedded covers"
msgstr ""
-#: ui/albumcovermanager.cpp:799 ui/albumcovermanager.cpp:823
+#: ui/albumcovermanager.cpp:801 ui/albumcovermanager.cpp:825
msgid "Export finished"
msgstr ""
-#: ui/albumcovermanager.cpp:808
+#: ui/albumcovermanager.cpp:810
#, qt-format
msgid "Exported %1 covers out of %2 (%3 skipped)"
msgstr ""
-#: core/song.cpp:430 transcoder/transcoder.cpp:233
+#: core/song.cpp:430 transcoder/transcoder.cpp:234
#: ../bin/src/ui_magnatunedownloaddialog.h:136
#: ../bin/src/ui_magnatunesettingspage.h:170
#: ../bin/src/ui_transcodersettingspage.h:176
@@ -2232,7 +2230,7 @@ msgstr ""
msgid "Fading duration"
msgstr ""
-#: ui/mainwindow.cpp:2106
+#: ui/mainwindow.cpp:2132
msgid "Failed reading CD drive"
msgstr ""
@@ -2267,10 +2265,6 @@ msgstr ""
msgid "Fast"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:141
-msgid "Favorites"
-msgstr ""
-
#: library/library.cpp:88
msgid "Favourite tracks"
msgstr ""
@@ -2303,7 +2297,7 @@ msgstr ""
msgid "File Format"
msgstr ""
-#: ui/organisedialog.cpp:82
+#: ui/organisedialog.cpp:83
msgid "File extension"
msgstr ""
@@ -2311,11 +2305,11 @@ msgstr ""
msgid "File formats"
msgstr ""
-#: playlist/playlist.cpp:1389 ../bin/src/ui_edittagdialog.h:716
+#: playlist/playlist.cpp:1422 ../bin/src/ui_edittagdialog.h:716
msgid "File name"
msgstr ""
-#: playlist/playlist.cpp:1391
+#: playlist/playlist.cpp:1424
msgid "File name (without path)"
msgstr ""
@@ -2323,11 +2317,11 @@ msgstr ""
msgid "File paths"
msgstr ""
-#: playlist/playlist.cpp:1393 ../bin/src/ui_edittagdialog.h:710
+#: playlist/playlist.cpp:1426 ../bin/src/ui_edittagdialog.h:710
msgid "File size"
msgstr ""
-#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1395
+#: library/savedgroupingmanager.cpp:83 playlist/playlist.cpp:1428
#: ../bin/src/ui_groupbydialog.h:132 ../bin/src/ui_groupbydialog.h:151
#: ../bin/src/ui_groupbydialog.h:170 ../bin/src/ui_edittagdialog.h:712
msgid "File type"
@@ -2337,7 +2331,7 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: ui/mainwindow.cpp:266
+#: ui/mainwindow.cpp:268
msgid "Files"
msgstr ""
@@ -2450,7 +2444,7 @@ msgstr ""
msgid "Ge&nre"
msgstr ""
-#: ui/settingsdialog.cpp:133
+#: ui/settingsdialog.cpp:132
msgid "General"
msgstr ""
@@ -2458,8 +2452,8 @@ msgstr ""
msgid "General settings"
msgstr ""
-#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1361
-#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:133
+#: library/savedgroupingmanager.cpp:77 playlist/playlist.cpp:1394
+#: ui/organisedialog.cpp:78 ../bin/src/ui_groupbydialog.h:133
#: ../bin/src/ui_groupbydialog.h:152 ../bin/src/ui_groupbydialog.h:171
#: ../bin/src/ui_ripcddialog.h:316
msgid "Genre"
@@ -2479,7 +2473,7 @@ msgstr ""
msgid "Getting channels"
msgstr ""
-#: internet/digitally/digitallyimportedservicebase.cpp:100
+#: internet/digitally/digitallyimportedservicebase.cpp:102
msgid "Getting streams"
msgstr ""
@@ -2503,13 +2497,13 @@ msgstr ""
msgid "Google Drive"
msgstr ""
-#: covers/coversearchstatisticsdialog.cpp:53 ui/albumcovermanager.cpp:465
+#: covers/coversearchstatisticsdialog.cpp:55 ui/albumcovermanager.cpp:467
#: ../bin/src/ui_coversearchstatisticsdialog.h:75
#, qt-format
msgid "Got %1 covers out of %2 (%3 failed)"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:335
+#: ../bin/src/ui_behavioursettingspage.h:378
msgid "Grey out non existent songs in my playlists"
msgstr ""
@@ -2517,7 +2511,7 @@ msgstr ""
msgid "Group Library by..."
msgstr ""
-#: globalsearch/globalsearchview.cpp:477 library/libraryfilterwidget.cpp:100
+#: globalsearch/globalsearchview.cpp:478 library/libraryfilterwidget.cpp:100
msgid "Group by"
msgstr ""
@@ -2549,8 +2543,8 @@ msgstr ""
msgid "Group by Genre/Artist/Album"
msgstr ""
-#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1369
-#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:141
+#: library/savedgroupingmanager.cpp:89 playlist/playlist.cpp:1402
+#: ui/organisedialog.cpp:71 ../bin/src/ui_groupbydialog.h:141
#: ../bin/src/ui_groupbydialog.h:160 ../bin/src/ui_groupbydialog.h:179
msgid "Grouping"
msgstr ""
@@ -2638,7 +2632,7 @@ msgstr ""
msgid "Identifying song"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:337
+#: ../bin/src/ui_behavioursettingspage.h:373
msgid ""
"If activated, clicking a selected song in the playlist view will let you "
"edit the tag value directly"
@@ -2658,6 +2652,10 @@ msgstr ""
msgid "Ignore \"The\" in artist names"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:423
+msgid "Ignore prefix word(s)"
+msgstr ""
+
#: ui/albumcoverchoicecontroller.cpp:44
msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"
msgstr ""
@@ -2739,15 +2737,15 @@ msgstr ""
msgid "Installed"
msgstr ""
-#: core/database.cpp:585
+#: core/database.cpp:601
msgid "Integrity check"
msgstr ""
-#: ui/mainwindow.cpp:272
+#: ui/mainwindow.cpp:274
msgid "Internet"
msgstr ""
-#: ui/settingsdialog.cpp:156
+#: ui/settingsdialog.cpp:155
msgid "Internet providers"
msgstr ""
@@ -2760,7 +2758,7 @@ msgstr ""
msgid "Intro tracks"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:280
+#: internet/lastfm/lastfmservice.cpp:282
msgid "Invalid API key"
msgstr ""
@@ -2768,27 +2766,27 @@ msgstr ""
msgid "Invalid URL"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:270
+#: internet/lastfm/lastfmservice.cpp:272
msgid "Invalid format"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:266
+#: internet/lastfm/lastfmservice.cpp:268
msgid "Invalid method"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:272
+#: internet/lastfm/lastfmservice.cpp:274
msgid "Invalid parameters"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:274
+#: internet/lastfm/lastfmservice.cpp:276
msgid "Invalid resource specified"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:264
+#: internet/lastfm/lastfmservice.cpp:266
msgid "Invalid service"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:278
+#: internet/lastfm/lastfmservice.cpp:280
msgid "Invalid session key"
msgstr ""
@@ -2820,7 +2818,7 @@ msgstr ""
msgid "Jamendo database"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:350
+#: ../bin/src/ui_behavioursettingspage.h:389
msgid "Jump to previous song right away"
msgstr ""
@@ -2840,7 +2838,7 @@ msgstr ""
msgid "Keep buttons for %1 seconds..."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:321
+#: ../bin/src/ui_behavioursettingspage.h:360
msgid "Keep running in the background when the window is closed"
msgstr ""
@@ -2857,7 +2855,7 @@ msgstr ""
msgid "Kuduro"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:323
+#: ../bin/src/ui_behavioursettingspage.h:362
msgid "Language"
msgstr ""
@@ -2889,7 +2887,7 @@ msgstr ""
msgid "Last played"
msgstr ""
-#: playlist/playlist.cpp:1378 ../bin/src/ui_edittagdialog.h:707
+#: playlist/playlist.cpp:1411 ../bin/src/ui_edittagdialog.h:707
msgctxt "A playlist's tag."
msgid "Last played"
msgstr ""
@@ -2898,11 +2896,11 @@ msgstr ""
msgid "Last.fm"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
msgid "Last.fm Authentication"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:287
+#: internet/lastfm/lastfmservice.cpp:289
msgid "Last.fm is currently busy, please try again in a few minutes"
msgstr ""
@@ -2926,12 +2924,12 @@ msgstr ""
msgid "Left"
msgstr ""
-#: playlist/playlist.cpp:1351 ui/organisedialog.cpp:79
+#: playlist/playlist.cpp:1384 ui/organisedialog.cpp:80
#: ui/qtsystemtrayicon.cpp:254 ../bin/src/ui_edittagdialog.h:702
msgid "Length"
msgstr ""
-#: ui/mainwindow.cpp:251 ui/mainwindow.cpp:263
+#: ui/mainwindow.cpp:253 ui/mainwindow.cpp:265
#: ../bin/src/ui_seafilesettingspage.h:177
msgid "Library"
msgstr ""
@@ -2940,7 +2938,7 @@ msgstr ""
msgid "Library advanced grouping"
msgstr ""
-#: ui/mainwindow.cpp:2683
+#: ui/mainwindow.cpp:2709
msgid "Library rescan notice"
msgstr ""
@@ -2976,7 +2974,7 @@ msgstr ""
msgid "Load cover from disk..."
msgstr ""
-#: playlist/playlistcontainer.cpp:298
+#: playlist/playlistcontainer.cpp:300
msgid "Load playlist"
msgstr ""
@@ -2996,7 +2994,7 @@ msgstr ""
msgid "Loading smart playlist"
msgstr ""
-#: library/librarymodel.cpp:169
+#: library/librarymodel.cpp:170
msgid "Loading songs"
msgstr ""
@@ -3014,7 +3012,7 @@ msgstr ""
msgid "Loading tracks info"
msgstr ""
-#: library/librarymodel.cpp:164
+#: library/librarymodel.cpp:165
#: internet/podcasts/podcastdiscoverymodel.cpp:105 widgets/prettyimage.cpp:168
#: widgets/widgetfadehelper.cpp:96 ../bin/src/ui_addpodcastdialog.h:179
#: ../bin/src/ui_searchpreview.h:105 ../bin/src/ui_organisedialog.h:261
@@ -3027,7 +3025,6 @@ msgstr ""
#: ../bin/src/ui_digitallyimportedsettingspage.h:162
#: ../bin/src/ui_magnatunesettingspage.h:163
-#: ../bin/src/ui_soundcloudsettingspage.h:102
#: ../bin/src/ui_spotifysettingspage.h:210
#: ../bin/src/ui_subsonicsettingspage.h:137
#: ../bin/src/ui_lastfmsettingspage.h:132
@@ -3068,7 +3065,7 @@ msgstr ""
msgid "Low complexity profile (LC)"
msgstr ""
-#: ui/organisedialog.cpp:71 ../bin/src/ui_songinfosettingspage.h:158
+#: ui/organisedialog.cpp:72 ../bin/src/ui_songinfosettingspage.h:158
msgid "Lyrics"
msgstr ""
@@ -3081,11 +3078,11 @@ msgstr ""
msgid "Lyrics from the tag"
msgstr ""
-#: transcoder/transcoder.cpp:235
+#: transcoder/transcoder.cpp:236
msgid "M4A AAC"
msgstr ""
-#: core/song.cpp:436 transcoder/transcoder.cpp:238
+#: core/song.cpp:436 transcoder/transcoder.cpp:239
#: ../bin/src/ui_transcodersettingspage.h:174
msgid "MP3"
msgstr ""
@@ -3136,7 +3133,7 @@ msgstr ""
msgid "Make playlist available offline"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:299
+#: internet/lastfm/lastfmservice.cpp:301
msgid "Malformed response"
msgstr ""
@@ -3177,7 +3174,7 @@ msgstr ""
msgid "Maximum bitrate"
msgstr ""
-#: ripper/ripcddialog.cpp:153
+#: ripper/ripcddialog.cpp:155
msgid "Media has changed. Reloading"
msgstr ""
@@ -3227,7 +3224,7 @@ msgstr ""
msgid "Months"
msgstr ""
-#: playlist/playlist.cpp:1406
+#: playlist/playlist.cpp:1439
msgid "Mood"
msgstr ""
@@ -3257,7 +3254,7 @@ msgstr ""
msgid "Move down"
msgstr ""
-#: ui/mainwindow.cpp:712 widgets/fileviewlist.cpp:42
+#: ui/mainwindow.cpp:714 widgets/fileviewlist.cpp:42
msgid "Move to library..."
msgstr ""
@@ -3266,7 +3263,7 @@ msgstr ""
msgid "Move up"
msgstr ""
-#: transcoder/transcodedialog.cpp:225 ui/mainwindow.cpp:2050
+#: transcoder/transcodedialog.cpp:227 ui/mainwindow.cpp:2076
msgid "Music"
msgstr ""
@@ -3313,8 +3310,8 @@ msgstr ""
msgid "Never played"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:343
-#: ../bin/src/ui_behavioursettingspage.h:363
+#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:402
msgid "Never start playing"
msgstr ""
@@ -3324,7 +3321,7 @@ msgstr ""
msgid "New folder"
msgstr ""
-#: ui/mainwindow.cpp:1867 ../bin/src/ui_mainwindow.h:709
+#: ui/mainwindow.cpp:1893 ../bin/src/ui_mainwindow.h:709
msgid "New playlist"
msgstr ""
@@ -3369,7 +3366,7 @@ msgstr ""
msgid "No background image"
msgstr ""
-#: ui/albumcovermanager.cpp:800
+#: ui/albumcovermanager.cpp:802
msgid "No covers to export."
msgstr ""
@@ -3377,7 +3374,7 @@ msgstr ""
msgid "No long blocks"
msgstr ""
-#: playlist/playlistcontainer.cpp:383
+#: playlist/playlistcontainer.cpp:385
msgid ""
"No matches found. Clear the search box to show the whole playlist again."
msgstr ""
@@ -3391,7 +3388,7 @@ msgstr ""
msgid "None"
msgstr ""
-#: library/libraryview.cpp:673 ui/mainwindow.cpp:2385 ui/mainwindow.cpp:2564
+#: library/libraryview.cpp:673 ui/mainwindow.cpp:2411 ui/mainwindow.cpp:2590
msgid "None of the selected songs were suitable for copying to a device"
msgstr ""
@@ -3403,6 +3400,10 @@ msgstr ""
msgid "Normal block type"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:428
+msgid "Normal duration (at least 4 minutes or half the track length)"
+msgstr ""
+
#: playlist/playlistsequence.cpp:203
msgid "Not available while using a dynamic playlist"
msgstr ""
@@ -3411,19 +3412,19 @@ msgstr ""
msgid "Not connected"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:290
+#: internet/lastfm/lastfmservice.cpp:292
msgid "Not enough content"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:294
+#: internet/lastfm/lastfmservice.cpp:296
msgid "Not enough fans"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:292
+#: internet/lastfm/lastfmservice.cpp:294
msgid "Not enough members"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:296
+#: internet/lastfm/lastfmservice.cpp:298
msgid "Not enough neighbors"
msgstr ""
@@ -3431,7 +3432,7 @@ msgstr ""
msgid "Not installed"
msgstr ""
-#: globalsearch/globalsearchsettingspage.cpp:120
+#: globalsearch/globalsearchsettingspage.cpp:122
#: globalsearch/searchproviderstatuswidget.cpp:47
msgid "Not logged in"
msgstr ""
@@ -3468,19 +3469,19 @@ msgstr ""
msgid "Ogg FLAC"
msgstr ""
-#: transcoder/transcoder.cpp:244
+#: transcoder/transcoder.cpp:245
msgid "Ogg Flac"
msgstr ""
-#: core/song.cpp:444 transcoder/transcoder.cpp:250
+#: core/song.cpp:444 transcoder/transcoder.cpp:251
msgid "Ogg Opus"
msgstr ""
-#: core/song.cpp:440 transcoder/transcoder.cpp:247
+#: core/song.cpp:440 transcoder/transcoder.cpp:248
msgid "Ogg Speex"
msgstr ""
-#: core/song.cpp:442 transcoder/transcoder.cpp:241
+#: core/song.cpp:442 transcoder/transcoder.cpp:242
#: ../bin/src/ui_magnatunedownloaddialog.h:135
#: ../bin/src/ui_magnatunesettingspage.h:169
msgid "Ogg Vorbis"
@@ -3514,13 +3515,12 @@ msgstr ""
msgid "Opacity"
msgstr ""
-#: internet/digitally/digitallyimportedservicebase.cpp:175
+#: internet/digitally/digitallyimportedservicebase.cpp:177
#: internet/icecast/icecastservice.cpp:298
#: internet/jamendo/jamendoservice.cpp:427
#: internet/magnatune/magnatuneservice.cpp:287
#: internet/somafm/somafmservice.cpp:102
#: internet/intergalacticfm/intergalacticfmservice.cpp:102
-#: internet/soundcloud/soundcloudservice.cpp:377
#, qt-format
msgid "Open %1 in browser"
msgstr ""
@@ -3537,7 +3537,7 @@ msgstr ""
msgid "Open OPML file..."
msgstr ""
-#: transcoder/transcodedialog.cpp:240
+#: transcoder/transcodedialog.cpp:242
msgid "Open a directory to import music from"
msgstr ""
@@ -3553,13 +3553,13 @@ msgstr ""
msgid "Open in Google Drive"
msgstr ""
-#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:460
+#: devices/deviceview.cpp:224 globalsearch/globalsearchview.cpp:461
#: internet/core/internetservice.cpp:62 library/libraryview.cpp:389
#: widgets/fileviewlist.cpp:36
msgid "Open in new playlist"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:358
+#: ../bin/src/ui_behavioursettingspage.h:397
msgctxt "Refers to behavior settings in Clementine settings page."
msgid "Open in new playlist"
msgstr ""
@@ -3573,7 +3573,7 @@ msgstr ""
msgid "Open..."
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:276
+#: internet/lastfm/lastfmservice.cpp:278
msgid "Operation failed"
msgstr ""
@@ -3599,7 +3599,7 @@ msgstr ""
msgid "Organise Files"
msgstr ""
-#: library/libraryview.cpp:416 ui/mainwindow.cpp:715
+#: library/libraryview.cpp:416 ui/mainwindow.cpp:717
msgid "Organise files..."
msgstr ""
@@ -3611,8 +3611,8 @@ msgstr ""
msgid "Original tags"
msgstr ""
-#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1359
-#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:135
+#: library/savedgroupingmanager.cpp:101 playlist/playlist.cpp:1392
+#: ui/organisedialog.cpp:77 ../bin/src/ui_groupbydialog.h:135
#: ../bin/src/ui_groupbydialog.h:154 ../bin/src/ui_groupbydialog.h:173
msgid "Original year"
msgstr ""
@@ -3683,7 +3683,7 @@ msgstr ""
msgid "Password"
msgstr ""
-#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1160 ui/mainwindow.cpp:1663
+#: core/globalshortcuts.cpp:50 ui/mainwindow.cpp:1170 ui/mainwindow.cpp:1689
#: ui/qtsystemtrayicon.cpp:189 wiimotedev/wiimotesettingspage.cpp:114
msgid "Pause"
msgstr ""
@@ -3696,8 +3696,8 @@ msgstr ""
msgid "Paused"
msgstr ""
-#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1367
-#: ui/organisedialog.cpp:69 ../bin/src/ui_groupbydialog.h:140
+#: library/savedgroupingmanager.cpp:86 playlist/playlist.cpp:1400
+#: ui/organisedialog.cpp:70 ../bin/src/ui_groupbydialog.h:140
#: ../bin/src/ui_groupbydialog.h:159 ../bin/src/ui_groupbydialog.h:178
#: ../bin/src/ui_edittagdialog.h:727
msgid "Performer"
@@ -3711,14 +3711,14 @@ msgstr ""
msgid "Plain sidebar"
msgstr ""
-#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:676 ui/mainwindow.cpp:1126
-#: ui/mainwindow.cpp:1145 ui/mainwindow.cpp:1667 ui/qtsystemtrayicon.cpp:177
+#: core/globalshortcuts.cpp:49 ui/mainwindow.cpp:678 ui/mainwindow.cpp:1134
+#: ui/mainwindow.cpp:1155 ui/mainwindow.cpp:1693 ui/qtsystemtrayicon.cpp:177
#: ui/qtsystemtrayicon.cpp:203 wiimotedev/wiimotesettingspage.cpp:107
#: ../bin/src/ui_mainwindow.h:675
msgid "Play"
msgstr ""
-#: playlist/playlist.cpp:1374 ../bin/src/ui_edittagdialog.h:703
+#: playlist/playlist.cpp:1407 ../bin/src/ui_edittagdialog.h:703
msgid "Play count"
msgstr ""
@@ -3726,16 +3726,16 @@ msgstr ""
msgid "Play if stopped, pause if playing"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:344
-#: ../bin/src/ui_behavioursettingspage.h:364
+#: ../bin/src/ui_behavioursettingspage.h:383
+#: ../bin/src/ui_behavioursettingspage.h:403
msgid "Play if there is nothing already playing"
msgstr ""
-#: library/libraryview.cpp:396 ui/mainwindow.cpp:1774
+#: library/libraryview.cpp:396 ui/mainwindow.cpp:1800
msgid "Play next"
msgstr ""
-#: ui/mainwindow.cpp:1772
+#: ui/mainwindow.cpp:1798
msgid "Play selected tracks next"
msgstr ""
@@ -3755,7 +3755,7 @@ msgstr ""
msgid "Player options"
msgstr ""
-#: playlist/playlistcontainer.cpp:294 playlist/playlistlistcontainer.cpp:325
+#: playlist/playlistcontainer.cpp:296 playlist/playlistlistcontainer.cpp:325
#: playlist/playlistmanager.cpp:87 playlist/playlistmanager.cpp:156
#: playlist/playlistmanager.cpp:525 playlist/playlisttabbar.cpp:366
msgid "Playlist"
@@ -3774,7 +3774,7 @@ msgstr ""
msgid "Playlist type"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:133 ui/mainwindow.cpp:269
+#: ui/mainwindow.cpp:271
msgid "Playlists"
msgstr ""
@@ -3782,7 +3782,7 @@ msgstr ""
msgid "Please close your browser and return to Clementine."
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:178
+#: internet/lastfm/lastfmservice.cpp:180
#, qt-format
msgid "Please open this URL in your browser: %1"
msgstr ""
@@ -3865,7 +3865,7 @@ msgstr ""
msgid "Press a key combination to use for %1..."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:347
+#: ../bin/src/ui_behavioursettingspage.h:386
msgid "Pressing \"Previous\" in player will..."
msgstr ""
@@ -3942,12 +3942,12 @@ msgstr ""
msgid "Queue Manager"
msgstr ""
-#: ui/mainwindow.cpp:1767
+#: ui/mainwindow.cpp:1793
msgid "Queue selected tracks"
msgstr ""
-#: globalsearch/globalsearchview.cpp:464 library/libraryview.cpp:393
-#: ui/mainwindow.cpp:1765
+#: globalsearch/globalsearchview.cpp:465 library/libraryview.cpp:393
+#: ui/mainwindow.cpp:1791
msgid "Queue track"
msgstr ""
@@ -3996,12 +3996,12 @@ msgstr ""
msgid "Rate the current song 5 stars"
msgstr ""
-#: playlist/playlist.cpp:1372 ../bin/src/ui_edittagdialog.h:711
+#: playlist/playlist.cpp:1405 ../bin/src/ui_edittagdialog.h:711
msgid "Rating"
msgstr ""
#: internet/magnatune/magnatunedownloaddialog.cpp:309
-#: ui/albumcovermanager.cpp:212
+#: ui/albumcovermanager.cpp:214
msgid "Really cancel?"
msgstr ""
@@ -4028,7 +4028,7 @@ msgstr ""
msgid "Refresh station list"
msgstr ""
-#: internet/digitally/digitallyimportedservicebase.cpp:178
+#: internet/digitally/digitallyimportedservicebase.cpp:180
msgid "Refresh streams"
msgstr ""
@@ -4037,7 +4037,7 @@ msgid "Reggae"
msgstr ""
#: playlist/playlistsaveoptionsdialog.cpp:33
-#: ../bin/src/ui_behavioursettingspage.h:380
+#: ../bin/src/ui_behavioursettingspage.h:419
msgid "Relative"
msgstr ""
@@ -4045,8 +4045,8 @@ msgstr ""
msgid "Remember Wii remote swing"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:332
-msgid "Remember from last time"
+#: ../bin/src/ui_behavioursettingspage.h:371
+msgid "Remember from &last time"
msgstr ""
#: ../bin/src/ui_playlistsaveoptionsdialog.h:99
@@ -4119,13 +4119,13 @@ msgstr ""
msgid "Repeat track"
msgstr ""
-#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:457
+#: devices/deviceview.cpp:221 globalsearch/globalsearchview.cpp:458
#: internet/core/internetservice.cpp:55 library/libraryview.cpp:386
#: widgets/fileviewlist.cpp:34
msgid "Replace current playlist"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:357
+#: ../bin/src/ui_behavioursettingspage.h:396
msgid "Replace the playlist"
msgstr ""
@@ -4157,7 +4157,7 @@ msgstr ""
msgid "Reset play counts"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:351
+#: ../bin/src/ui_behavioursettingspage.h:390
msgid "Restart song, then jump to previous if pressed again"
msgstr ""
@@ -4170,7 +4170,7 @@ msgstr ""
msgid "Restrict to ASCII characters"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:333
+#: ../bin/src/ui_behavioursettingspage.h:376
msgid "Resume playback on start"
msgstr ""
@@ -4186,7 +4186,7 @@ msgstr ""
msgid "Rip"
msgstr ""
-#: ripper/ripcddialog.cpp:105
+#: ripper/ripcddialog.cpp:107
msgid "Rip CD"
msgstr ""
@@ -4224,13 +4224,13 @@ msgstr ""
msgid "Safely remove the device after copying"
msgstr ""
-#: playlist/playlist.cpp:1387 ../bin/src/ui_edittagdialog.h:708
+#: playlist/playlist.cpp:1420 ../bin/src/ui_edittagdialog.h:708
#: ../bin/src/ui_playbacksettingspage.h:371
#: ../bin/src/ui_streamdetailsdialog.h:141
msgid "Sample rate"
msgstr ""
-#: ui/organisedialog.cpp:81
+#: ui/organisedialog.cpp:82
msgid "Samplerate"
msgstr ""
@@ -4304,7 +4304,7 @@ msgstr ""
msgid "Scale size"
msgstr ""
-#: playlist/playlist.cpp:1380 ../bin/src/ui_edittagdialog.h:709
+#: playlist/playlist.cpp:1413 ../bin/src/ui_edittagdialog.h:709
msgid "Score"
msgstr ""
@@ -4312,7 +4312,7 @@ msgstr ""
msgid "Scrobble tracks that I listen to"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:320
+#: ../bin/src/ui_behavioursettingspage.h:359
msgid "Scroll over icon to change track"
msgstr ""
@@ -4326,7 +4326,7 @@ msgstr ""
msgid "Search"
msgstr ""
-#: ui/mainwindow.cpp:260 ../bin/src/ui_globalsearchsettingspage.h:141
+#: ui/mainwindow.cpp:262 ../bin/src/ui_globalsearchsettingspage.h:141
msgctxt "Global search settings dialog title."
msgid "Search"
msgstr ""
@@ -4351,7 +4351,7 @@ msgstr ""
msgid "Search automatically"
msgstr ""
-#: ui/mainwindow.cpp:696
+#: ui/mainwindow.cpp:698
msgid "Search for album"
msgstr ""
@@ -4364,11 +4364,11 @@ msgstr ""
msgid "Search for anything"
msgstr ""
-#: ui/mainwindow.cpp:693
+#: ui/mainwindow.cpp:695
msgid "Search for artist"
msgstr ""
-#: globalsearch/globalsearchview.cpp:473 library/libraryview.cpp:401
+#: globalsearch/globalsearchview.cpp:474 library/libraryview.cpp:401
msgid "Search for this"
msgstr ""
@@ -4388,7 +4388,6 @@ msgstr ""
msgid "Search options"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:119
#: internet/spotify/spotifyservice.cpp:400
msgid "Search results"
msgstr ""
@@ -4422,7 +4421,7 @@ msgstr ""
msgid "Seek the currently playing track to an absolute position"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:373
+#: ../bin/src/ui_behavioursettingspage.h:412
msgid "Seeking using a keyboard shortcut or mouse wheel"
msgstr ""
@@ -4478,11 +4477,11 @@ msgstr ""
msgid "Server details"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:282
+#: internet/lastfm/lastfmservice.cpp:284
msgid "Service offline"
msgstr ""
-#: ui/mainwindow.cpp:1812
+#: ui/mainwindow.cpp:1838
#, qt-format
msgid "Set %1 to \"%2\"..."
msgstr ""
@@ -4499,6 +4498,10 @@ msgstr ""
msgid "Settings"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:429
+msgid "Short duration (at least 1 minute or half the track length)"
+msgstr ""
+
#: ../bin/src/ui_globalshortcutssettingspage.h:172
msgid "Shortcut"
msgstr ""
@@ -4558,7 +4561,7 @@ msgstr ""
msgid "Show above status bar"
msgstr ""
-#: ui/mainwindow.cpp:643
+#: ui/mainwindow.cpp:645
msgid "Show all songs"
msgstr ""
@@ -4578,12 +4581,12 @@ msgstr ""
msgid "Show fullsize..."
msgstr ""
-#: library/libraryview.cpp:433 ui/mainwindow.cpp:725
+#: library/libraryview.cpp:433 ui/mainwindow.cpp:727
#: widgets/fileviewlist.cpp:53
msgid "Show in file browser..."
msgstr ""
-#: ui/mainwindow.cpp:727
+#: ui/mainwindow.cpp:729
msgid "Show in library..."
msgstr ""
@@ -4595,11 +4598,11 @@ msgstr ""
msgid "Show moodbar"
msgstr ""
-#: ui/mainwindow.cpp:645
+#: ui/mainwindow.cpp:647
msgid "Show only duplicates"
msgstr ""
-#: ui/mainwindow.cpp:647
+#: ui/mainwindow.cpp:649
msgid "Show only untagged"
msgstr ""
@@ -4623,7 +4626,7 @@ msgstr ""
msgid "Show the scrobble button in the main window"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:319
+#: ../bin/src/ui_behavioursettingspage.h:358
msgid "Show tray icon"
msgstr ""
@@ -4683,7 +4686,7 @@ msgstr ""
msgid "Skip backwards in playlist"
msgstr ""
-#: playlist/playlist.cpp:1376 ../bin/src/ui_edittagdialog.h:705
+#: playlist/playlist.cpp:1409 ../bin/src/ui_edittagdialog.h:705
msgid "Skip count"
msgstr ""
@@ -4691,11 +4694,11 @@ msgstr ""
msgid "Skip forwards in playlist"
msgstr ""
-#: ui/mainwindow.cpp:1783
+#: ui/mainwindow.cpp:1809
msgid "Skip selected tracks"
msgstr ""
-#: ui/mainwindow.cpp:1781
+#: ui/mainwindow.cpp:1807
msgid "Skip track"
msgstr ""
@@ -4711,7 +4714,7 @@ msgstr ""
msgid "Smart playlist"
msgstr ""
-#: library/librarymodel.cpp:1367
+#: library/librarymodel.cpp:1368
msgid "Smart playlists"
msgstr ""
@@ -4727,7 +4730,7 @@ msgstr ""
msgid "Song Information"
msgstr ""
-#: ui/mainwindow.cpp:280
+#: ui/mainwindow.cpp:282
msgid "Song info"
msgstr ""
@@ -4759,11 +4762,7 @@ msgstr ""
msgid "Sorting"
msgstr ""
-#: ../bin/src/ui_soundcloudsettingspage.h:100
-msgid "SoundCloud"
-msgstr ""
-
-#: playlist/playlist.cpp:1404
+#: playlist/playlist.cpp:1437
msgid "Source"
msgstr ""
@@ -4809,7 +4808,7 @@ msgstr ""
msgid "Starred"
msgstr ""
-#: ripper/ripcddialog.cpp:72
+#: ripper/ripcddialog.cpp:74
msgid "Start ripping"
msgstr ""
@@ -4817,18 +4816,17 @@ msgstr ""
msgid "Start the playlist currently playing"
msgstr ""
-#: transcoder/transcodedialog.cpp:90
+#: transcoder/transcodedialog.cpp:92
msgid "Start transcoding"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:121
#: internet/spotify/spotifyservice.cpp:402
msgid ""
"Start typing something on the search box above to fill this search results "
"list"
msgstr ""
-#: transcoder/transcoder.cpp:397
+#: transcoder/transcoder.cpp:398
#, qt-format
msgid "Starting %1"
msgstr ""
@@ -4854,7 +4852,7 @@ msgstr ""
msgid "Stop after every track"
msgstr ""
-#: ui/mainwindow.cpp:680 ../bin/src/ui_mainwindow.h:679
+#: ui/mainwindow.cpp:682 ../bin/src/ui_mainwindow.h:679
msgid "Stop after this track"
msgstr ""
@@ -4866,7 +4864,7 @@ msgstr ""
msgid "Stop playback after current track"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:334
+#: ../bin/src/ui_behavioursettingspage.h:377
msgid "Stop playback if song fails to play"
msgstr ""
@@ -4914,7 +4912,7 @@ msgstr ""
msgid "Success!"
msgstr ""
-#: transcoder/transcoder.cpp:189
+#: transcoder/transcoder.cpp:190
#, qt-format
msgid "Successfully written %1"
msgstr ""
@@ -4982,7 +4980,7 @@ msgstr ""
msgid "Text options"
msgstr ""
-#: ui/about.cpp:74
+#: ui/about.cpp:76
msgid "Thanks to"
msgstr ""
@@ -5022,7 +5020,7 @@ msgid ""
"license key. Visit subsonic.org for details."
msgstr ""
-#: ui/mainwindow.cpp:2674
+#: ui/mainwindow.cpp:2700
msgid ""
"The version of Clementine you've just updated to requires a full library "
"rescan because of the new features listed below:"
@@ -5046,13 +5044,13 @@ msgstr ""
msgid "There was a problem parsing the response from the iTunes Store"
msgstr ""
-#: ui/organiseerrordialog.cpp:54
+#: ui/organiseerrordialog.cpp:56
msgid ""
"There were problems copying some songs. The following files could not be "
"copied:"
msgstr ""
-#: ui/organiseerrordialog.cpp:61
+#: ui/organiseerrordialog.cpp:63
msgid ""
"There were problems deleting some songs. The following files could not be "
"deleted:"
@@ -5064,7 +5062,7 @@ msgid ""
"continue?"
msgstr ""
-#: library/libraryview.cpp:679 ui/mainwindow.cpp:2433 widgets/fileview.cpp:189
+#: library/libraryview.cpp:679 ui/mainwindow.cpp:2459 widgets/fileview.cpp:189
msgid ""
"These files will be permanently deleted from disk, are you sure you want to "
"continue?"
@@ -5135,7 +5133,7 @@ msgstr ""
msgid "This option can be changed in the \"Behavior\" preferences"
msgstr ""
-#: internet/lastfm/lastfmservice.cpp:284
+#: internet/lastfm/lastfmservice.cpp:286
msgid "This stream is for paid subscribers only"
msgstr ""
@@ -5144,11 +5142,11 @@ msgstr ""
msgid "This type of device is not supported: %1"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:374
+#: ../bin/src/ui_behavioursettingspage.h:413
msgid "Time step"
msgstr ""
-#: playlist/playlist.cpp:1345 ui/organisedialog.cpp:63
+#: playlist/playlist.cpp:1378 ui/organisedialog.cpp:64
#: ui/qtsystemtrayicon.cpp:247 ../bin/src/ui_about.h:141
#: ../bin/src/ui_edittagdialog.h:719 ../bin/src/ui_trackselectiondialog.h:210
#: ../bin/src/ui_ripcddialog.h:306
@@ -5167,7 +5165,7 @@ msgstr ""
msgid "Toggle fullscreen"
msgstr ""
-#: ui/mainwindow.cpp:1769
+#: ui/mainwindow.cpp:1795
msgid "Toggle queue status"
msgstr ""
@@ -5199,11 +5197,11 @@ msgstr ""
msgid "Total albums:"
msgstr ""
-#: covers/coversearchstatisticsdialog.cpp:70
+#: covers/coversearchstatisticsdialog.cpp:72
msgid "Total bytes transferred"
msgstr ""
-#: covers/coversearchstatisticsdialog.cpp:67
+#: covers/coversearchstatisticsdialog.cpp:69
msgid "Total network requests made"
msgstr ""
@@ -5211,15 +5209,11 @@ msgstr ""
msgid "Trac&k"
msgstr ""
-#: playlist/playlist.cpp:1353 ui/organisedialog.cpp:72
+#: playlist/playlist.cpp:1386 ui/organisedialog.cpp:73
#: ../bin/src/ui_trackselectiondialog.h:212 ../bin/src/ui_ripcddialog.h:304
msgid "Track"
msgstr ""
-#: internet/soundcloud/soundcloudservice.cpp:136
-msgid "Tracks"
-msgstr ""
-
#: ../bin/src/ui_transcodedialog.h:213 ../bin/src/ui_mainwindow.h:706
msgid "Transcode Music"
msgstr ""
@@ -5232,7 +5226,7 @@ msgstr ""
msgid "Transcoding"
msgstr ""
-#: transcoder/transcoder.cpp:317
+#: transcoder/transcoder.cpp:318
#, qt-format
msgid "Transcoding %1 files using %2 threads"
msgstr ""
@@ -5283,8 +5277,8 @@ msgstr ""
msgid "Unable to download %1 (%2)"
msgstr ""
-#: core/song.cpp:465 library/librarymodel.cpp:374 library/librarymodel.cpp:379
-#: library/librarymodel.cpp:383 library/librarymodel.cpp:1159
+#: core/song.cpp:465 library/librarymodel.cpp:375 library/librarymodel.cpp:380
+#: library/librarymodel.cpp:384 library/librarymodel.cpp:1160
#: library/savedgroupingmanager.cpp:103 playlist/playlistdelegates.cpp:305
#: playlist/playlistmanager.cpp:532 playlist/playlistmanager.cpp:533
#: songinfo/streamdiscoverer.cpp:87 ui/albumcoverchoicecontroller.cpp:127
@@ -5297,7 +5291,7 @@ msgid "Unknown content-type"
msgstr ""
#: internet/digitally/digitallyimportedclient.cpp:74
-#: internet/lastfm/lastfmservice.cpp:303
+#: internet/lastfm/lastfmservice.cpp:305
msgid "Unknown error"
msgstr ""
@@ -5305,11 +5299,11 @@ msgstr ""
msgid "Unset cover"
msgstr ""
-#: ui/mainwindow.cpp:1779
+#: ui/mainwindow.cpp:1805
msgid "Unskip selected tracks"
msgstr ""
-#: ui/mainwindow.cpp:1777
+#: ui/mainwindow.cpp:1803
msgid "Unskip track"
msgstr ""
@@ -5420,7 +5414,7 @@ msgstr ""
msgid "Use temporal noise shaping"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:326
+#: ../bin/src/ui_behavioursettingspage.h:365
msgid "Use the system default"
msgstr ""
@@ -5440,7 +5434,7 @@ msgstr ""
msgid "Used"
msgstr ""
-#: ui/settingsdialog.cpp:147
+#: ui/settingsdialog.cpp:146
msgid "User interface"
msgstr ""
@@ -5452,7 +5446,7 @@ msgstr ""
msgid "Username"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:340
+#: ../bin/src/ui_behavioursettingspage.h:379
msgid "Using the menu to add a song will..."
msgstr ""
@@ -5469,8 +5463,8 @@ msgstr ""
msgid "Variable bit rate"
msgstr ""
-#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:300
-#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:264
+#: globalsearch/globalsearchmodel.cpp:109 library/librarymodel.cpp:301
+#: playlist/playlistmanager.cpp:544 ui/albumcovermanager.cpp:266
msgid "Various artists"
msgstr ""
@@ -5478,7 +5472,7 @@ msgstr ""
msgid "Verify Server certificate"
msgstr ""
-#: ui/about.cpp:33
+#: ui/about.cpp:35
#, qt-format
msgid "Version %1"
msgstr ""
@@ -5525,11 +5519,11 @@ msgstr ""
msgid "WMA"
msgstr ""
-#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:322
+#: playlist/playlisttabbar.cpp:192 ../bin/src/ui_behavioursettingspage.h:361
msgid "Warn me when closing a playlist tab"
msgstr ""
-#: core/song.cpp:448 transcoder/transcoder.cpp:256
+#: core/song.cpp:448 transcoder/transcoder.cpp:257
msgid "Wav"
msgstr ""
@@ -5545,20 +5539,28 @@ msgstr ""
msgid "Weeks"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:329
+#: ../bin/src/ui_behavioursettingspage.h:368
msgid "When Clementine starts"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:427
+msgid "When calculating play counts, use"
+msgstr ""
+
#: ../bin/src/ui_librarysettingspage.h:203
msgid ""
"When looking for album art Clementine will first look for picture files that contain one of these words.\n"
"If there are no matches then it will use the largest image in the directory."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:377
+#: ../bin/src/ui_behavioursettingspage.h:416
msgid "When saving a playlist, file paths should be"
msgstr ""
+#: ../bin/src/ui_behavioursettingspage.h:422
+msgid "When sorting artists, albums and titles"
+msgstr ""
+
#: ../bin/src/ui_globalsearchsettingspage.h:147
msgid "When the list is empty..."
msgstr ""
@@ -5617,7 +5619,7 @@ msgstr ""
msgid "Windows Media 64k"
msgstr ""
-#: core/song.cpp:428 transcoder/transcoder.cpp:253
+#: core/song.cpp:428 transcoder/transcoder.cpp:254
msgid "Windows Media audio"
msgstr ""
@@ -5631,7 +5633,7 @@ msgid ""
"well?"
msgstr ""
-#: ui/mainwindow.cpp:2681
+#: ui/mainwindow.cpp:2707
msgid "Would you like to run a full rescan right now?"
msgstr ""
@@ -5639,7 +5641,7 @@ msgstr ""
msgid "Write all songs statistics into songs' files"
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:382
+#: ../bin/src/ui_behavioursettingspage.h:421
msgid "Write metadata"
msgstr ""
@@ -5647,8 +5649,8 @@ msgstr ""
msgid "Wrong username or password."
msgstr ""
-#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1357
-#: ui/organisedialog.cpp:75 ../bin/src/ui_groupbydialog.h:134
+#: library/savedgroupingmanager.cpp:71 playlist/playlist.cpp:1390
+#: ui/organisedialog.cpp:76 ../bin/src/ui_groupbydialog.h:134
#: ../bin/src/ui_groupbydialog.h:153 ../bin/src/ui_groupbydialog.h:172
#: ../bin/src/ui_trackselectiondialog.h:211 ../bin/src/ui_ripcddialog.h:312
msgid "Year"
@@ -5725,13 +5727,6 @@ msgstr ""
msgid "You do not have an active subscription"
msgstr ""
-#: ../bin/src/ui_soundcloudsettingspage.h:101
-msgid ""
-"You don't need to be logged in to search and to listen to music on "
-"SoundCloud. However, you need to login to access your playlists and your "
-"stream."
-msgstr ""
-
#: internet/spotify/spotifyservice.cpp:205
msgid ""
"You have been logged out of Spotify, please re-enter your password in the "
@@ -5753,7 +5748,7 @@ msgid ""
"shortcuts in Clementine."
msgstr ""
-#: ../bin/src/ui_behavioursettingspage.h:328
+#: ../bin/src/ui_behavioursettingspage.h:367
msgid "You will need to restart Clementine if you change the language."
msgstr ""
@@ -5829,7 +5824,7 @@ msgstr ""
msgid "biggest first"
msgstr ""
-#: playlist/playlistview.cpp:241 ui/edittagdialog.cpp:500
+#: playlist/playlistview.cpp:242 ui/edittagdialog.cpp:500
msgid "bpm"
msgstr ""
@@ -5886,7 +5881,7 @@ msgstr ""
#: internet/spotify/spotifysettingspage.cpp:62
#: internet/spotify/spotifysettingspage.cpp:63
-#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:245
+#: internet/spotify/spotifysettingspage.cpp:64 playlist/playlistview.cpp:246
#: ui/edittagdialog.cpp:502
msgid "kbps"
msgstr ""
diff --git a/src/translations/ca.po b/src/translations/ca.po
index 29ff437ad..2fcc1d4ec 100644
--- a/src/translations/ca.po
+++ b/src/translations/ca.po
@@ -3,21 +3,21 @@
# This file is distributed under the same license as the Clementine package.
#
# Translators:
-# Adolfo Jayme Barrientos, 2014-2015
-# Adolfo Jayme Barrientos, 2012-2013,2018
-# Adolfo Jayme Barrientos, 2016,2018
-# Adolfo Jayme Barrientos, 2015-2016
-# Adolfo Jayme Barrientos, 2013
-# Adolfo Jayme Barrientos, 2014
+# Adolfo Jayme-Barrientos, 2014-2015
+# Adolfo Jayme-Barrientos, 2012-2013,2018
+# Adolfo Jayme-Barrientos, 2016,2018
+# Adolfo Jayme-Barrientos, 2015-2016
+# Adolfo Jayme-Barrientos, 2013
+# Adolfo Jayme-Barrientos, 2014
# FIRST AUTHOR , 2010
-# Juanjo, 2016-2017
+# Juanjo, 2016-2018
# davidsansome , 2013
# Roger Pueyo Centelles , 2011-2014,2017
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
-"PO-Revision-Date: 2018-09-17 16:51+0000\n"
-"Last-Translator: Adolfo Jayme Barrientos\n"
+"PO-Revision-Date: 2018-10-23 04:30+0000\n"
+"Last-Translator: Adolfo Jayme-Barrientos\n"
"Language-Team: Catalan (http://www.transifex.com/davidsansome/clementine/language/ca/)\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -59,7 +59,7 @@ msgstr " ms"
msgid " pt"
msgstr " pt"
-#: ../bin/src/ui_behavioursettingspage.h:375
+#: ../bin/src/ui_behavioursettingspage.h:414
msgid " s"
msgstr " s"
@@ -98,7 +98,7 @@ msgstr "fa %1 dies"
msgid "%1 on %2"
msgstr "%1 a %2"
-#: playlistparsers/playlistparser.cpp:87
+#: playlistparsers/playlistparser.cpp:89
#, qt-format
msgid "%1 playlists (%2)"
msgstr "%1 llistes de reproducció (%2)"
@@ -128,12 +128,12 @@ msgstr "%1 cançons trobades"
msgid "%1 songs found (showing %2)"
msgstr "%1 cançons trobades (mostrant %2)"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
#, qt-format
msgid "%1 tracks"
msgstr "%1 peces"
-#: ui/albumcovermanager.cpp:472
+#: ui/albumcovermanager.cpp:474
#, qt-format
msgid "%1 transferred"
msgstr "%1 transferit"
@@ -158,19 +158,19 @@ msgstr "%L1 reproduccions en total"
msgid "%filename%"
msgstr "%filename%"
-#: transcoder/transcodedialog.cpp:214
+#: transcoder/transcodedialog.cpp:216
#, c-format, qt-plural-format
msgctxt ""
msgid "%n failed"
msgstr "%n han fallat"
-#: transcoder/transcodedialog.cpp:209
+#: transcoder/transcodedialog.cpp:211
#, c-format, qt-plural-format
msgctxt ""
msgid "%n finished"
msgstr "%n han acabat"
-#: transcoder/transcodedialog.cpp:203
+#: transcoder/transcodedialog.cpp:205
#, c-format, qt-plural-format
msgctxt ""
msgid "%n remaining"
@@ -247,7 +247,7 @@ msgstr "&Dreta"
#: ../bin/src/ui_mainwindow.h:702
msgid "&Shuffle mode"
-msgstr "Mode de mescla aleatòria"
+msgstr "Mode de me&scla"
#: playlist/playlistheader.cpp:34
msgid "&Stretch columns to fit window"
@@ -269,7 +269,7 @@ msgstr "(diferents a les diverses cançons)"
msgid ", by "
msgstr ", per"
-#: ui/about.cpp:84
+#: ui/about.cpp:86
msgid "...and all the Amarok contributors"
msgstr "… i tots aquells que han contribuït amb l’Amarok"
@@ -289,7 +289,7 @@ msgstr "0px"
msgid "1 day"
msgstr "1 dia"
-#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:220
+#: playlist/playlistmanager.cpp:435 playlist/queue.cpp:222
msgid "1 track"
msgstr "1 peça"
@@ -350,7 +350,7 @@ msgid ""
"played in the last 180 minutes.
Available fields: %1.