Compare commits
44 Commits
1.4.0rc1-8
...
master
Author | SHA1 | Date |
---|---|---|
Clementine Buildbot | 1506c27696 | |
Clementine Buildbot | d99cbb269b | |
Clementine Buildbot | 3cca9bb98a | |
Clementine Buildbot | 650bd81508 | |
Clementine Buildbot | 7607ddcb96 | |
Clementine Buildbot | e249911937 | |
Clementine Buildbot | 4ae57a4b5d | |
Clementine Buildbot | 2f3464403b | |
Clementine Buildbot | f76dbffa6b | |
Clementine Buildbot | fbb266adc2 | |
Clementine Buildbot | 9638ac70b3 | |
Clementine Buildbot | c93b4e1149 | |
Clementine Buildbot | d014a315c9 | |
Isaiah W | df4181940d | |
Isaiah W | ebe3c45476 | |
Clementine Buildbot | 634910238d | |
Clementine Buildbot | 62ed69fa3d | |
Clementine Buildbot | dd0a94e8a6 | |
Clementine Buildbot | 1566148c50 | |
Clementine Buildbot | 98a520552b | |
Clementine Buildbot | 5968648aa1 | |
Clementine Buildbot | f3ddd7eee4 | |
Clementine Buildbot | 19b44fb831 | |
Robert-André Mauchin | 994d16effa | |
xoza | 4768cb9efb | |
Clementine Buildbot | 7b678f26e0 | |
Marcus Müller | 3f572a4139 | |
Marcus Müller | f3837f95db | |
Marcus Müller | 6820a0a58d | |
Marcus Müller | cfcddf7c0f | |
Marcus Müller | 98e24f626b | |
Marcus Müller | 8e47ab59e5 | |
Marcus Müller | 63208b4e1f | |
Marcus Müller | 20773dee29 | |
John Maguire | c2a5b9b07e | |
Quentin Snow | de7455eebd | |
Marcus Müller | 2a14ec9d4d | |
Clementine Buildbot | 86e81cea05 | |
Clementine Buildbot | 10570316dd | |
Clementine Buildbot | ad8fd81ba9 | |
Clementine Buildbot | 6ff5768634 | |
Clementine Buildbot | 08bfb88912 | |
Clementine Buildbot | d3108b32e8 | |
Clementine Buildbot | 0701bef103 |
|
@ -105,7 +105,6 @@ jobs:
|
||||||
- build_fedora_38
|
- build_fedora_38
|
||||||
- build_focal_64
|
- build_focal_64
|
||||||
- build_jammy_64
|
- build_jammy_64
|
||||||
- build_kinetic_64
|
|
||||||
# - build_mac
|
# - build_mac
|
||||||
- build_mingw
|
- build_mingw
|
||||||
- build_source
|
- build_source
|
||||||
|
@ -232,6 +231,8 @@ jobs:
|
||||||
qt5-qtbase-devel
|
qt5-qtbase-devel
|
||||||
qt5-qtx11extras-devel
|
qt5-qtx11extras-devel
|
||||||
qt5-rpm-macros
|
qt5-rpm-macros
|
||||||
|
qtsingleapplication-qt5-devel
|
||||||
|
qtsinglecoreapplication-qt5-devel
|
||||||
rpmdevtools
|
rpmdevtools
|
||||||
sha2-devel
|
sha2-devel
|
||||||
sparsehash-devel
|
sparsehash-devel
|
||||||
|
@ -243,7 +244,7 @@ jobs:
|
||||||
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
|
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
|
||||||
- name: cmake
|
- name: cmake
|
||||||
working-directory: bin
|
working-directory: bin
|
||||||
run: cmake ..
|
run: cmake -DUSE_SYSTEM_QTSINGLEAPPLICATION=On ..
|
||||||
- name: Build source tarball
|
- name: Build source tarball
|
||||||
working-directory: bin
|
working-directory: bin
|
||||||
run: ../dist/maketarball.sh
|
run: ../dist/maketarball.sh
|
||||||
|
@ -304,6 +305,8 @@ jobs:
|
||||||
qt5-qtbase-devel
|
qt5-qtbase-devel
|
||||||
qt5-qtx11extras-devel
|
qt5-qtx11extras-devel
|
||||||
qt5-rpm-macros
|
qt5-rpm-macros
|
||||||
|
qtsingleapplication-qt5-devel
|
||||||
|
qtsinglecoreapplication-qt5-devel
|
||||||
rpmdevtools
|
rpmdevtools
|
||||||
sha2-devel
|
sha2-devel
|
||||||
sparsehash-devel
|
sparsehash-devel
|
||||||
|
@ -315,7 +318,7 @@ jobs:
|
||||||
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
|
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
|
||||||
- name: cmake
|
- name: cmake
|
||||||
working-directory: bin
|
working-directory: bin
|
||||||
run: cmake ..
|
run: cmake -DUSE_SYSTEM_QTSINGLEAPPLICATION=On ..
|
||||||
- name: Build source tarball
|
- name: Build source tarball
|
||||||
working-directory: bin
|
working-directory: bin
|
||||||
run: ../dist/maketarball.sh
|
run: ../dist/maketarball.sh
|
||||||
|
@ -376,6 +379,8 @@ jobs:
|
||||||
qt5-qtbase-devel
|
qt5-qtbase-devel
|
||||||
qt5-qtx11extras-devel
|
qt5-qtx11extras-devel
|
||||||
qt5-rpm-macros
|
qt5-rpm-macros
|
||||||
|
qtsingleapplication-qt5-devel
|
||||||
|
qtsinglecoreapplication-qt5-devel
|
||||||
rpmdevtools
|
rpmdevtools
|
||||||
sha2-devel
|
sha2-devel
|
||||||
sparsehash-devel
|
sparsehash-devel
|
||||||
|
@ -387,7 +392,7 @@ jobs:
|
||||||
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
|
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
|
||||||
- name: cmake
|
- name: cmake
|
||||||
working-directory: bin
|
working-directory: bin
|
||||||
run: cmake ..
|
run: cmake -DUSE_SYSTEM_QTSINGLEAPPLICATION=On ..
|
||||||
- name: Build source tarball
|
- name: Build source tarball
|
||||||
working-directory: bin
|
working-directory: bin
|
||||||
run: ../dist/maketarball.sh
|
run: ../dist/maketarball.sh
|
||||||
|
@ -909,74 +914,6 @@ jobs:
|
||||||
name: release_jammy_64
|
name: release_jammy_64
|
||||||
path: bin/clementine_*.deb
|
path: bin/clementine_*.deb
|
||||||
|
|
||||||
build_kinetic_64:
|
|
||||||
name: Build Ubuntu Kinetic 64-bit deb
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
container:
|
|
||||||
image: ubuntu:kinetic
|
|
||||||
steps:
|
|
||||||
- name: Install dependencies
|
|
||||||
env:
|
|
||||||
DEBIAN_FRONTEND: noninteractive
|
|
||||||
run: >
|
|
||||||
apt-get update && apt-get install -y
|
|
||||||
cmake
|
|
||||||
dpkg-dev
|
|
||||||
debhelper
|
|
||||||
fakeroot
|
|
||||||
g++
|
|
||||||
gettext
|
|
||||||
git
|
|
||||||
libasound2-dev
|
|
||||||
libboost-dev
|
|
||||||
libboost-serialization-dev
|
|
||||||
libcdio-cdda2
|
|
||||||
libcdio-dev
|
|
||||||
libchromaprint-dev
|
|
||||||
libcrypto++-dev
|
|
||||||
libdbus-1-dev
|
|
||||||
libfftw3-dev
|
|
||||||
libglew-dev
|
|
||||||
libgpod-dev
|
|
||||||
libgstreamer-plugins-base1.0-dev
|
|
||||||
libgstreamer1.0-dev
|
|
||||||
liblastfm5-dev
|
|
||||||
libmtp-dev
|
|
||||||
libmygpo-qt-dev
|
|
||||||
libplist-dev
|
|
||||||
libprotobuf-dev
|
|
||||||
libpulse-dev
|
|
||||||
libqca-qt5-2-dev
|
|
||||||
libqca-qt5-2-plugins
|
|
||||||
libqt5x11extras5-dev
|
|
||||||
libsparsehash-dev
|
|
||||||
libsqlite3-dev
|
|
||||||
libtag1-dev
|
|
||||||
libusbmuxd-dev
|
|
||||||
protobuf-compiler
|
|
||||||
qtbase5-dev
|
|
||||||
qttools5-dev-tools
|
|
||||||
qttools5-dev
|
|
||||||
ssh
|
|
||||||
- uses: actions/checkout@v1.2.0
|
|
||||||
- name: git hackery
|
|
||||||
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
|
|
||||||
- name: cmake
|
|
||||||
working-directory: bin
|
|
||||||
run: >
|
|
||||||
cmake ..
|
|
||||||
-DWITH_DEBIAN=ON
|
|
||||||
-DDEB_ARCH=amd64
|
|
||||||
-DDEB_DIST=kinetic
|
|
||||||
-DENABLE_SPOTIFY_BLOB=OFF
|
|
||||||
- name: make
|
|
||||||
working-directory: bin
|
|
||||||
run : make -j2 deb
|
|
||||||
- uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: release_kinetic_64
|
|
||||||
path: bin/clementine_*.deb
|
|
||||||
|
|
||||||
build_mac:
|
build_mac:
|
||||||
if: false
|
if: false
|
||||||
name: Build Mac DMG
|
name: Build Mac DMG
|
||||||
|
|
|
@ -1,128 +0,0 @@
|
||||||
/* Copyright 2014, Uwe L. Korn <uwelk@xhochy.com>
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in all
|
|
||||||
* copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
* SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "Json.h"
|
|
||||||
|
|
||||||
// Qt version specific includes
|
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 )
|
|
||||||
#include <QJsonDocument>
|
|
||||||
#include <QMetaProperty>
|
|
||||||
#else
|
|
||||||
#include <qjson/parser.h>
|
|
||||||
#include <qjson/qobjecthelper.h>
|
|
||||||
#include <qjson/serializer.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace QJsonWrapper
|
|
||||||
{
|
|
||||||
|
|
||||||
QVariantMap
|
|
||||||
qobject2qvariant( const QObject* object )
|
|
||||||
{
|
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 )
|
|
||||||
QVariantMap map;
|
|
||||||
if ( object == NULL )
|
|
||||||
{
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
const QMetaObject* metaObject = object->metaObject();
|
|
||||||
for ( int i = 0; i < metaObject->propertyCount(); ++i )
|
|
||||||
{
|
|
||||||
QMetaProperty metaproperty = metaObject->property( i );
|
|
||||||
if ( metaproperty.isReadable() )
|
|
||||||
{
|
|
||||||
map[ QLatin1String( metaproperty.name() ) ] = object->property( metaproperty.name() );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
#else
|
|
||||||
return QJson::QObjectHelper::qobject2qvariant( object );
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
qvariant2qobject( const QVariantMap& variant, QObject* object )
|
|
||||||
{
|
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 )
|
|
||||||
for ( QVariantMap::const_iterator iter = variant.begin(); iter != variant.end(); ++iter )
|
|
||||||
{
|
|
||||||
QVariant property = object->property( iter.key().toLatin1() );
|
|
||||||
Q_ASSERT( property.isValid() );
|
|
||||||
if ( property.isValid() )
|
|
||||||
{
|
|
||||||
QVariant value = iter.value();
|
|
||||||
if ( value.canConvert( property.type() ) )
|
|
||||||
{
|
|
||||||
value.convert( property.type() );
|
|
||||||
object->setProperty( iter.key().toLatin1(), value );
|
|
||||||
} else if ( QString( QLatin1String("QVariant") ).compare( QLatin1String( property.typeName() ) ) == 0 ) {
|
|
||||||
object->setProperty( iter.key().toLatin1(), value );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
QJson::QObjectHelper::qvariant2qobject( variant, object );
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QVariant
|
|
||||||
parseJson( const QByteArray& jsonData, bool* ok )
|
|
||||||
{
|
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 )
|
|
||||||
QJsonParseError error;
|
|
||||||
QJsonDocument doc = QJsonDocument::fromJson( jsonData, &error );
|
|
||||||
if ( ok != NULL )
|
|
||||||
{
|
|
||||||
*ok = ( error.error == QJsonParseError::NoError );
|
|
||||||
}
|
|
||||||
return doc.toVariant();
|
|
||||||
#else
|
|
||||||
QJson::Parser p;
|
|
||||||
return p.parse( jsonData, ok );
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QByteArray
|
|
||||||
toJson( const QVariant &variant, bool* ok )
|
|
||||||
{
|
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 )
|
|
||||||
QJsonDocument doc = QJsonDocument::fromVariant( variant );
|
|
||||||
if ( ok != NULL )
|
|
||||||
{
|
|
||||||
*ok = !doc.isNull();
|
|
||||||
}
|
|
||||||
return doc.toJson( QJsonDocument::Compact );
|
|
||||||
#else
|
|
||||||
QJson::Serializer serializer;
|
|
||||||
QByteArray ret = serializer.serialize(variant);
|
|
||||||
if ( ok != NULL )
|
|
||||||
{
|
|
||||||
*ok = !ret.isNull();
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
/* Copyright 2014, Uwe L. Korn <uwelk@xhochy.com>
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in all
|
|
||||||
* copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
* SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
#ifndef QJSONWRAPPER_JSON_H
|
|
||||||
#define QJSONWRAPPER_JSON_H
|
|
||||||
|
|
||||||
#include <QVariant>
|
|
||||||
|
|
||||||
namespace QJsonWrapper
|
|
||||||
{
|
|
||||||
QVariantMap qobject2qvariant( const QObject* object );
|
|
||||||
void qvariant2qobject( const QVariantMap& variant, QObject* object );
|
|
||||||
QVariant parseJson( const QByteArray& jsonData, bool* ok = 0 );
|
|
||||||
QByteArray toJson( const QVariant &variant, bool* ok = 0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // QJSONWRAPPER_JSON_H
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
cmake_minimum_required(VERSION 3.0.0)
|
||||||
project(clementine)
|
project(clementine)
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.0.0)
|
|
||||||
cmake_policy(SET CMP0053 OLD)
|
cmake_policy(SET CMP0053 OLD)
|
||||||
|
|
||||||
include(CheckCXXCompilerFlag)
|
include(CheckCXXCompilerFlag)
|
||||||
|
@ -347,11 +347,18 @@ include_directories("3rdparty/qsqlite")
|
||||||
|
|
||||||
# When/if upstream accepts our patches then these options can be used to link
|
# When/if upstream accepts our patches then these options can be used to link
|
||||||
# to system installed qtsingleapplication instead.
|
# to system installed qtsingleapplication instead.
|
||||||
option(USE_SYSTEM_QTSINGLEAPPLICATION "Don't set this option unless your system QtSingleApplication library has been compiled with the Clementine patches in 3rdparty" OFF)
|
option(USE_SYSTEM_QTSINGLEAPPLICATION "Use the system-provided QtSingleApplication library (needs to have clementine patches, but these seem to be in Qt5)" OFF)
|
||||||
if(USE_SYSTEM_QTSINGLEAPPLICATION)
|
if(USE_SYSTEM_QTSINGLEAPPLICATION)
|
||||||
find_path(QTSINGLEAPPLICATION_INCLUDE_DIRS qtsingleapplication.h PATH_SUFFIXES qt5/QtSolutions)
|
find_path(QTSINGLEAPPLICATION_INCLUDE_DIRS qtsingleapplication.h PATH_SUFFIXES qt5/QtSolutions REQUIRED)
|
||||||
find_library(QTSINGLEAPPLICATION_LIBRARIES Qt5Solutions_SingleApplication-2.6)
|
find_library(QTSINGLEAPPLICATION_LIBRARIES Qt5Solutions_SingleApplication-2.6 REQUIRED)
|
||||||
find_library(QTSINGLECOREAPPLICATION_LIBRARIES Qt5Solutions_SingleCoreApplication-2.6)
|
add_library(qtsingleapplication INTERFACE)
|
||||||
|
target_link_libraries(qtsingleapplication INTERFACE QTSINGLEAPPLICATION_LIBRARIES)
|
||||||
|
target_include_directories(qtsingleapplication INTERFACE QTSINGLEAPPLICATION_INCLUDE_DIRS)
|
||||||
|
find_path(QTSINGLECOREAPPLICATION_INCLUDE_DIRS qtsinglecoreapplication.h PATH_SUFFIXES qt5/QtSolutions REQUIRED)
|
||||||
|
find_library(QTSINGLECOREAPPLICATION_LIBRARIES Qt5Solutions_SingleCoreApplication-2.6 REQUIRED)
|
||||||
|
add_library(qtsinglecoreapplication INTERFACE)
|
||||||
|
target_link_libraries(qtsinglecoreapplication INTERFACE QTSINGLECOREAPPLICATION_LIBRARIES)
|
||||||
|
target_include_directories(qtsinglecoreapplication INTERFACE QTSINGLECOREAPPLICATION_INCLUDE_DIRS)
|
||||||
else(USE_SYSTEM_QTSINGLEAPPLICATION)
|
else(USE_SYSTEM_QTSINGLEAPPLICATION)
|
||||||
add_subdirectory(3rdparty/qtsingleapplication)
|
add_subdirectory(3rdparty/qtsingleapplication)
|
||||||
set(QTSINGLEAPPLICATION_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtsingleapplication)
|
set(QTSINGLEAPPLICATION_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtsingleapplication)
|
||||||
|
|
|
@ -41,7 +41,7 @@ Compile and install:
|
||||||
|
|
||||||
cd bin
|
cd bin
|
||||||
cmake ..
|
cmake ..
|
||||||
make -j8
|
make -j$(nproc)
|
||||||
sudo make install
|
sudo make install
|
||||||
|
|
||||||
See the Wiki for more instructions and a list of dependencies:
|
See the Wiki for more instructions and a list of dependencies:
|
||||||
|
|
|
@ -88,17 +88,6 @@
|
||||||
<item begin="</a" end=">"/>
|
<item begin="</a" end=">"/>
|
||||||
</exclude>
|
</exclude>
|
||||||
</provider>
|
</provider>
|
||||||
<provider name="hindilyrics.net (Bollywood songs)" title="{title} ({album})" charset="utf-8" url="http://www.hindilyrics.net/lyrics/of-{Title}.html">
|
|
||||||
<urlFormat replace=" _@;\/"'()[]" with="%20"/>
|
|
||||||
<urlFormat replace="?" with=""/>
|
|
||||||
<extract>
|
|
||||||
<item begin="<div class=nm>Movie</div>:" end="</pre>"/>
|
|
||||||
</extract>
|
|
||||||
<exclude>
|
|
||||||
<item begin="<span class=" end="">"/>
|
|
||||||
</exclude>
|
|
||||||
<invalidIndicator value="Couldn't find that page."/>
|
|
||||||
</provider>
|
|
||||||
<provider name="letras.mus.br" title="" charset="utf-8" url="https://www.letras.mus.br/winamp.php?musica={title}&artista={artist}">
|
<provider name="letras.mus.br" title="" charset="utf-8" url="https://www.letras.mus.br/winamp.php?musica={title}&artista={artist}">
|
||||||
<urlFormat replace="_@,;&\/"" with="_"/>
|
<urlFormat replace="_@,;&\/"" with="_"/>
|
||||||
<urlFormat replace=" " with="+"/>
|
<urlFormat replace=" " with="+"/>
|
||||||
|
@ -114,13 +103,6 @@
|
||||||
</extract>
|
</extract>
|
||||||
<invalidIndicator value="ERROR"/>
|
<invalidIndicator value="ERROR"/>
|
||||||
</provider>
|
</provider>
|
||||||
<provider name="loudson.gs" title="" charset="utf-8" url="http://www.loudson.gs/{a}/{artist}/{album}/{title}">
|
|
||||||
<urlFormat replace=" _@,;&\/"" with="-"/>
|
|
||||||
<urlFormat replace="." with=""/>
|
|
||||||
<extract>
|
|
||||||
<item tag="<div class="middle_col_TracksLyrics ">"/>
|
|
||||||
</extract>
|
|
||||||
</provider>
|
|
||||||
<provider name="lyrics.com" title="{artist} - {title} Lyrics" charset="utf-8" url="http://www.lyrics.com/lyrics/{artist}/{title}.html">
|
<provider name="lyrics.com" title="{artist} - {title} Lyrics" charset="utf-8" url="http://www.lyrics.com/lyrics/{artist}/{title}.html">
|
||||||
<urlFormat replace=" _@,;&\/"" with="-"/>
|
<urlFormat replace=" _@,;&\/"" with="-"/>
|
||||||
<urlFormat replace="'." with=""/>
|
<urlFormat replace="'." with=""/>
|
||||||
|
@ -194,14 +176,6 @@
|
||||||
</extract>
|
</extract>
|
||||||
<invalidIndicator value="Page not Found"/>
|
<invalidIndicator value="Page not Found"/>
|
||||||
</provider>
|
</provider>
|
||||||
<provider name="lyricstime.com" title="{artist} - {title} Lyrics" charset="iso-8859-1" url="http://www.lyricstime.com/{artist}-{title}-lyrics.html">
|
|
||||||
<urlFormat replace=" _@,;&\/"'" with="-"/>
|
|
||||||
<urlFormat replace="." with=""/>
|
|
||||||
<extract>
|
|
||||||
<item tag="<div id="songlyrics" >"/>
|
|
||||||
<item tag="<p>"/>
|
|
||||||
</extract>
|
|
||||||
</provider>
|
|
||||||
<provider name="lyriki.com" title="" charset="utf-8" url="http://www.lyriki.com/{artist}:{title}">
|
<provider name="lyriki.com" title="" charset="utf-8" url="http://www.lyriki.com/{artist}:{title}">
|
||||||
<urlFormat replace=" _@,;&\/"" with="_"/>
|
<urlFormat replace=" _@,;&\/"" with="_"/>
|
||||||
<urlFormat replace="." with=""/>
|
<urlFormat replace="." with=""/>
|
||||||
|
@ -210,20 +184,6 @@
|
||||||
<item tag="<p>"/>
|
<item tag="<p>"/>
|
||||||
</extract>
|
</extract>
|
||||||
</provider>
|
</provider>
|
||||||
<provider name="metrolyrics.com" title="{artist} - {title} LYRICS" charset="utf-8" url="http://www.metrolyrics.com/{title}-lyrics-{artist}.html">
|
|
||||||
<urlFormat replace=" _@,;&\/"" with="-"/>
|
|
||||||
<urlFormat replace="'." with=""/>
|
|
||||||
<extract>
|
|
||||||
<item tag="<span id="lyrics">"/>
|
|
||||||
</extract>
|
|
||||||
<extract>
|
|
||||||
<item tag="<div id="lyrics">"/>
|
|
||||||
</extract>
|
|
||||||
<exclude>
|
|
||||||
<item tag="<h5>"/>
|
|
||||||
</exclude>
|
|
||||||
<invalidIndicator value="These lyrics are missing"/>
|
|
||||||
</provider>
|
|
||||||
<provider name="mp3lyrics.org" title="{artist} &quot;{title}&quot; Lyrics" charset="utf-8" url="http://www.mp3lyrics.org/{a}/{artist}/{title}/">
|
<provider name="mp3lyrics.org" title="{artist} &quot;{title}&quot; Lyrics" charset="utf-8" url="http://www.mp3lyrics.org/{a}/{artist}/{title}/">
|
||||||
<urlFormat replace=" _@,;&\/"" with="-"/>
|
<urlFormat replace=" _@,;&\/"" with="-"/>
|
||||||
<urlFormat replace="'." with=""/>
|
<urlFormat replace="'." with=""/>
|
||||||
|
@ -251,13 +211,6 @@
|
||||||
</exclude>
|
</exclude>
|
||||||
<invalidIndicator value="We couldn't find that page."/>
|
<invalidIndicator value="We couldn't find that page."/>
|
||||||
</provider>
|
</provider>
|
||||||
<provider name="seeklyrics.com" title="{artist} - {title} Lyrics" charset="iso-8859-1" url="http://www.seeklyrics.com/lyrics/{Artist}/{Title}.html">
|
|
||||||
<urlFormat replace=" _@,;&\/'"" with="-"/>
|
|
||||||
<urlFormat replace="." with=""/>
|
|
||||||
<extract>
|
|
||||||
<item tag="<div id="songlyrics">"/>
|
|
||||||
</extract>
|
|
||||||
</provider>
|
|
||||||
<provider name="songlyrics.com" title="{title} LYRICS - {artist}" charset="utf-8" url="http://www.songlyrics.com/{artist}/{title}-lyrics/">
|
<provider name="songlyrics.com" title="{title} LYRICS - {artist}" charset="utf-8" url="http://www.songlyrics.com/{artist}/{title}-lyrics/">
|
||||||
<urlFormat replace=" ._@,;&\/"" with="-"/>
|
<urlFormat replace=" ._@,;&\/"" with="-"/>
|
||||||
<urlFormat replace="'" with="_"/>
|
<urlFormat replace="'" with="_"/>
|
||||||
|
|
|
@ -18,6 +18,7 @@ BuildRequires: liblastfm-qt5-devel
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
BuildRequires: hicolor-icon-theme
|
BuildRequires: hicolor-icon-theme
|
||||||
BuildRequires: libappstream-glib
|
BuildRequires: libappstream-glib
|
||||||
|
BuildRequires: qtsingleapplication-qt5-devel
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: pkgconfig(glib-2.0)
|
BuildRequires: pkgconfig(glib-2.0)
|
||||||
BuildRequires: pkgconfig(gio-2.0)
|
BuildRequires: pkgconfig(gio-2.0)
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include "core/song.h"
|
#include "core/song.h"
|
||||||
|
|
||||||
class TranscoderPreset;
|
struct TranscoderPreset;
|
||||||
|
|
||||||
class OrganiseFormat {
|
class OrganiseFormat {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -41,16 +41,16 @@ class DigitallyImportedServiceBase : public InternetService {
|
||||||
const QString& api_service_name,
|
const QString& api_service_name,
|
||||||
Application* app, InternetModel* model,
|
Application* app, InternetModel* model,
|
||||||
bool has_premium, QObject* parent = nullptr);
|
bool has_premium, QObject* parent = nullptr);
|
||||||
~DigitallyImportedServiceBase();
|
~DigitallyImportedServiceBase() override;
|
||||||
|
|
||||||
static const char* kSettingsGroup;
|
static const char* kSettingsGroup;
|
||||||
static const int kStreamsCacheDurationSecs;
|
static const int kStreamsCacheDurationSecs;
|
||||||
|
|
||||||
QStandardItem* CreateRootItem();
|
QStandardItem* CreateRootItem() override;
|
||||||
void LazyPopulate(QStandardItem* parent);
|
void LazyPopulate(QStandardItem* parent) override;
|
||||||
void ShowContextMenu(const QPoint& global_pos);
|
void ShowContextMenu(const QPoint& global_pos) override;
|
||||||
|
|
||||||
void ReloadSettings();
|
void ReloadSettings() override;
|
||||||
|
|
||||||
bool is_premium_account() const;
|
bool is_premium_account() const;
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ class IcecastService : public InternetService {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
IcecastService(Application* app, InternetModel* parent);
|
IcecastService(Application* app, InternetModel* parent);
|
||||||
~IcecastService();
|
~IcecastService() override;
|
||||||
|
|
||||||
static const char* kServiceName;
|
static const char* kServiceName;
|
||||||
static const char* kDirectoryUrl;
|
static const char* kDirectoryUrl;
|
||||||
|
@ -51,12 +51,12 @@ class IcecastService : public InternetService {
|
||||||
Type_Genre,
|
Type_Genre,
|
||||||
};
|
};
|
||||||
|
|
||||||
QStandardItem* CreateRootItem();
|
QStandardItem* CreateRootItem() override;
|
||||||
void LazyPopulate(QStandardItem* item);
|
void LazyPopulate(QStandardItem* item) override;
|
||||||
|
|
||||||
void ShowContextMenu(const QPoint& global_pos);
|
void ShowContextMenu(const QPoint& global_pos) override;
|
||||||
|
|
||||||
QWidget* HeaderWidget() const;
|
QWidget* HeaderWidget() const override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void LoadDirectory();
|
void LoadDirectory();
|
||||||
|
|
|
@ -39,7 +39,7 @@ class IntergalacticFMServiceBase : public InternetService {
|
||||||
const QString& name, const QUrl& channel_list_url,
|
const QString& name, const QUrl& channel_list_url,
|
||||||
const QUrl& homepage_url,
|
const QUrl& homepage_url,
|
||||||
const QUrl& donate_page_url, const QIcon& icon);
|
const QUrl& donate_page_url, const QIcon& icon);
|
||||||
~IntergalacticFMServiceBase();
|
~IntergalacticFMServiceBase() override;
|
||||||
|
|
||||||
enum ItemType {
|
enum ItemType {
|
||||||
Type_Stream = 2000,
|
Type_Stream = 2000,
|
||||||
|
@ -59,14 +59,14 @@ class IntergalacticFMServiceBase : public InternetService {
|
||||||
const QString& url_scheme() const { return url_scheme_; }
|
const QString& url_scheme() const { return url_scheme_; }
|
||||||
const QIcon& icon() const { return icon_; }
|
const QIcon& icon() const { return icon_; }
|
||||||
|
|
||||||
QStandardItem* CreateRootItem();
|
QStandardItem* CreateRootItem() override;
|
||||||
void LazyPopulate(QStandardItem* item);
|
void LazyPopulate(QStandardItem* item) override;
|
||||||
void ShowContextMenu(const QPoint& global_pos);
|
void ShowContextMenu(const QPoint& global_pos) override;
|
||||||
|
|
||||||
PlaylistItem::Options playlistitem_options() const;
|
PlaylistItem::Options playlistitem_options() const override;
|
||||||
QNetworkAccessManager* network() const { return network_; }
|
QNetworkAccessManager* network() const { return network_; }
|
||||||
|
|
||||||
void ReloadSettings();
|
void ReloadSettings() override;
|
||||||
|
|
||||||
bool IsStreamListStale() const { return streams_.IsStale(); }
|
bool IsStreamListStale() const { return streams_.IsStale(); }
|
||||||
StreamList Streams();
|
StreamList Streams();
|
||||||
|
|
|
@ -34,7 +34,7 @@ class SavedRadio : public InternetService {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SavedRadio(Application* app, InternetModel* parent);
|
SavedRadio(Application* app, InternetModel* parent);
|
||||||
~SavedRadio();
|
~SavedRadio() override;
|
||||||
|
|
||||||
enum ItemType {
|
enum ItemType {
|
||||||
Type_Stream = 2000,
|
Type_Stream = 2000,
|
||||||
|
@ -57,10 +57,10 @@ class SavedRadio : public InternetService {
|
||||||
static const char* kServiceName;
|
static const char* kServiceName;
|
||||||
static const char* kSettingsGroup;
|
static const char* kSettingsGroup;
|
||||||
|
|
||||||
QStandardItem* CreateRootItem();
|
QStandardItem* CreateRootItem() override;
|
||||||
void LazyPopulate(QStandardItem* item);
|
void LazyPopulate(QStandardItem* item) override;
|
||||||
|
|
||||||
void ShowContextMenu(const QPoint& global_pos);
|
void ShowContextMenu(const QPoint& global_pos) override;
|
||||||
|
|
||||||
void Add(const QUrl& url, const QString& name = QString(),
|
void Add(const QUrl& url, const QString& name = QString(),
|
||||||
const QUrl& url_logo = QUrl());
|
const QUrl& url_logo = QUrl());
|
||||||
|
|
|
@ -43,14 +43,14 @@ class JamendoService : public InternetService {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
JamendoService(Application* app, InternetModel* parent);
|
JamendoService(Application* app, InternetModel* parent);
|
||||||
~JamendoService();
|
~JamendoService() override;
|
||||||
|
|
||||||
QStandardItem* CreateRootItem();
|
QStandardItem* CreateRootItem() override;
|
||||||
void LazyPopulate(QStandardItem* item);
|
void LazyPopulate(QStandardItem* item) override;
|
||||||
|
|
||||||
void ShowContextMenu(const QPoint& global_pos);
|
void ShowContextMenu(const QPoint& global_pos) override;
|
||||||
|
|
||||||
QWidget* HeaderWidget() const;
|
QWidget* HeaderWidget() const override;
|
||||||
|
|
||||||
LibraryBackend* library_backend() const { return library_backend_.get(); }
|
LibraryBackend* library_backend() const { return library_backend_.get(); }
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ class MagnatuneService : public InternetService {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MagnatuneService(Application* app, InternetModel* parent);
|
MagnatuneService(Application* app, InternetModel* parent);
|
||||||
~MagnatuneService();
|
~MagnatuneService() override;
|
||||||
|
|
||||||
// Values are saved in QSettings and are indices into the combo box in
|
// Values are saved in QSettings and are indices into the combo box in
|
||||||
// MagnatuneConfig
|
// MagnatuneConfig
|
||||||
|
@ -71,14 +71,14 @@ class MagnatuneService : public InternetService {
|
||||||
|
|
||||||
static QString ReadElementText(QXmlStreamReader& reader);
|
static QString ReadElementText(QXmlStreamReader& reader);
|
||||||
|
|
||||||
QStandardItem* CreateRootItem();
|
QStandardItem* CreateRootItem() override;
|
||||||
void LazyPopulate(QStandardItem* item);
|
void LazyPopulate(QStandardItem* item) override;
|
||||||
|
|
||||||
void ShowContextMenu(const QPoint& global_pos);
|
void ShowContextMenu(const QPoint& global_pos) override;
|
||||||
|
|
||||||
QWidget* HeaderWidget() const;
|
QWidget* HeaderWidget() const override;
|
||||||
|
|
||||||
void ReloadSettings();
|
void ReloadSettings() override;
|
||||||
|
|
||||||
// Magnatune specific stuff
|
// Magnatune specific stuff
|
||||||
MembershipType membership_type() const { return membership_; }
|
MembershipType membership_type() const { return membership_; }
|
||||||
|
@ -99,7 +99,7 @@ class MagnatuneService : public InternetService {
|
||||||
|
|
||||||
void Download();
|
void Download();
|
||||||
void Homepage();
|
void Homepage();
|
||||||
void ShowConfig();
|
void ShowConfig() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void EnsureMenuCreated();
|
void EnsureMenuCreated();
|
||||||
|
|
|
@ -44,7 +44,7 @@ class PodcastService : public InternetService {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PodcastService(Application* app, InternetModel* parent);
|
PodcastService(Application* app, InternetModel* parent);
|
||||||
~PodcastService();
|
~PodcastService() override;
|
||||||
|
|
||||||
static const char* kServiceName;
|
static const char* kServiceName;
|
||||||
static const char* kSettingsGroup;
|
static const char* kSettingsGroup;
|
||||||
|
@ -57,12 +57,12 @@ class PodcastService : public InternetService {
|
||||||
|
|
||||||
enum Role { Role_Podcast = InternetModel::RoleCount, Role_Episode };
|
enum Role { Role_Podcast = InternetModel::RoleCount, Role_Episode };
|
||||||
|
|
||||||
QStandardItem* CreateRootItem();
|
QStandardItem* CreateRootItem() override;
|
||||||
void LazyPopulate(QStandardItem* parent);
|
void LazyPopulate(QStandardItem* parent) override;
|
||||||
bool has_initial_load_settings() const { return true; }
|
bool has_initial_load_settings() const override { return true; }
|
||||||
void ShowContextMenu(const QPoint& global_pos);
|
void ShowContextMenu(const QPoint& global_pos) override;
|
||||||
void ReloadSettings();
|
void ReloadSettings() override;
|
||||||
void InitialLoadSettings();
|
void InitialLoadSettings() override;
|
||||||
// Called by SongLoader when the user adds a Podcast URL directly. Adds a
|
// Called by SongLoader when the user adds a Podcast URL directly. Adds a
|
||||||
// subscription to the podcast and displays it in the UI. If the QVariant
|
// subscription to the podcast and displays it in the UI. If the QVariant
|
||||||
// contains an OPML file then this displays it in the Add Podcast dialog.
|
// contains an OPML file then this displays it in the Add Podcast dialog.
|
||||||
|
@ -81,7 +81,7 @@ class PodcastService : public InternetService {
|
||||||
void DeleteDownloadedData();
|
void DeleteDownloadedData();
|
||||||
void SetNew();
|
void SetNew();
|
||||||
void SetListened();
|
void SetListened();
|
||||||
void ShowConfig();
|
void ShowConfig() override;
|
||||||
|
|
||||||
void SubscriptionAdded(const Podcast& podcast);
|
void SubscriptionAdded(const Podcast& podcast);
|
||||||
void SubscriptionRemoved(const Podcast& podcast);
|
void SubscriptionRemoved(const Podcast& podcast);
|
||||||
|
|
|
@ -35,7 +35,7 @@ class RadioBrowserService : public InternetService {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RadioBrowserService(Application* app, InternetModel* parent);
|
RadioBrowserService(Application* app, InternetModel* parent);
|
||||||
~RadioBrowserService(){};
|
~RadioBrowserService() override{};
|
||||||
|
|
||||||
enum ItemType {
|
enum ItemType {
|
||||||
Type_Stream = 2000,
|
Type_Stream = 2000,
|
||||||
|
|
|
@ -39,7 +39,7 @@ class SomaFMServiceBase : public InternetService {
|
||||||
const QString& name, const QUrl& channel_list_url,
|
const QString& name, const QUrl& channel_list_url,
|
||||||
const QUrl& homepage_url, const QUrl& donate_page_url,
|
const QUrl& homepage_url, const QUrl& donate_page_url,
|
||||||
const QIcon& icon);
|
const QIcon& icon);
|
||||||
~SomaFMServiceBase();
|
~SomaFMServiceBase() override;
|
||||||
|
|
||||||
enum ItemType {
|
enum ItemType {
|
||||||
Type_Stream = 2000,
|
Type_Stream = 2000,
|
||||||
|
@ -59,14 +59,14 @@ class SomaFMServiceBase : public InternetService {
|
||||||
const QString& url_scheme() const { return url_scheme_; }
|
const QString& url_scheme() const { return url_scheme_; }
|
||||||
const QIcon& icon() const { return icon_; }
|
const QIcon& icon() const { return icon_; }
|
||||||
|
|
||||||
QStandardItem* CreateRootItem();
|
QStandardItem* CreateRootItem() override;
|
||||||
void LazyPopulate(QStandardItem* item);
|
void LazyPopulate(QStandardItem* item) override;
|
||||||
void ShowContextMenu(const QPoint& global_pos);
|
void ShowContextMenu(const QPoint& global_pos) override;
|
||||||
|
|
||||||
PlaylistItem::Options playlistitem_options() const;
|
PlaylistItem::Options playlistitem_options() const override;
|
||||||
QNetworkAccessManager* network() const { return network_; }
|
QNetworkAccessManager* network() const { return network_; }
|
||||||
|
|
||||||
void ReloadSettings();
|
void ReloadSettings() override;
|
||||||
|
|
||||||
bool IsStreamListStale() const { return streams_.IsStale(); }
|
bool IsStreamListStale() const { return streams_.IsStale(); }
|
||||||
StreamList Streams();
|
StreamList Streams();
|
||||||
|
|
|
@ -530,6 +530,11 @@ void SubsonicLibraryScanner::OnGetAlbumFinished(QNetworkReply* reply) {
|
||||||
|
|
||||||
// Read song information
|
// Read song information
|
||||||
while (reader.readNextStartElement()) {
|
while (reader.readNextStartElement()) {
|
||||||
|
// skip multi-artist and multi-genre tags
|
||||||
|
if ((reader.name() == "artists") || (reader.name() == "genres")) {
|
||||||
|
reader.skipCurrentElement();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (reader.name() != "song") {
|
if (reader.name() != "song") {
|
||||||
ParsingError("song tag expected. Aborting scan.");
|
ParsingError("song tag expected. Aborting scan.");
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -42,7 +42,7 @@ class SubsonicService : public InternetService {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SubsonicService(Application* app, InternetModel* parent);
|
SubsonicService(Application* app, InternetModel* parent);
|
||||||
~SubsonicService();
|
~SubsonicService() override;
|
||||||
|
|
||||||
enum LoginState {
|
enum LoginState {
|
||||||
LoginState_Loggedin,
|
LoginState_Loggedin,
|
||||||
|
@ -90,11 +90,11 @@ class SubsonicService : public InternetService {
|
||||||
bool IsConfigured() const;
|
bool IsConfigured() const;
|
||||||
bool IsAmpache() const;
|
bool IsAmpache() const;
|
||||||
|
|
||||||
QStandardItem* CreateRootItem();
|
QStandardItem* CreateRootItem() override;
|
||||||
void LazyPopulate(QStandardItem* item);
|
void LazyPopulate(QStandardItem* item) override;
|
||||||
void ShowContextMenu(const QPoint& global_pos);
|
void ShowContextMenu(const QPoint& global_pos) override;
|
||||||
QWidget* HeaderWidget() const;
|
QWidget* HeaderWidget() const override;
|
||||||
void ReloadSettings();
|
void ReloadSettings() override;
|
||||||
|
|
||||||
void Login();
|
void Login();
|
||||||
void Login(const QString& server, const QString& username,
|
void Login(const QString& server, const QString& username,
|
||||||
|
@ -175,7 +175,7 @@ class SubsonicService : public InternetService {
|
||||||
void OnLoginStateChanged(SubsonicService::LoginState newstate);
|
void OnLoginStateChanged(SubsonicService::LoginState newstate);
|
||||||
void OnPingFinished(QNetworkReply* reply);
|
void OnPingFinished(QNetworkReply* reply);
|
||||||
|
|
||||||
void ShowConfig();
|
void ShowConfig() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
class SubsonicLibraryScanner : public QObject {
|
class SubsonicLibraryScanner : public QObject {
|
||||||
|
@ -184,7 +184,7 @@ class SubsonicLibraryScanner : public QObject {
|
||||||
public:
|
public:
|
||||||
explicit SubsonicLibraryScanner(SubsonicService* service,
|
explicit SubsonicLibraryScanner(SubsonicService* service,
|
||||||
QObject* parent = nullptr);
|
QObject* parent = nullptr);
|
||||||
~SubsonicLibraryScanner();
|
~SubsonicLibraryScanner() override;
|
||||||
|
|
||||||
void Scan();
|
void Scan();
|
||||||
const SongList& GetSongs() const { return songs_; }
|
const SongList& GetSongs() const { return songs_; }
|
||||||
|
|
|
@ -896,7 +896,7 @@ LibraryBackend::AlbumList LibraryBackend::GetAlbums(const QString& artist,
|
||||||
QString last_artist;
|
QString last_artist;
|
||||||
QString last_album_artist;
|
QString last_album_artist;
|
||||||
while (query.Next()) {
|
while (query.Next()) {
|
||||||
bool compilation = query.Value(3).toBool() | query.Value(4).toBool();
|
bool compilation = query.Value(3).toBool() || query.Value(4).toBool();
|
||||||
|
|
||||||
Album info;
|
Album info;
|
||||||
info.artist = compilation ? QString() : query.Value(1).toString();
|
info.artist = compilation ? QString() : query.Value(1).toString();
|
||||||
|
|
|
@ -92,12 +92,10 @@ void MoodbarBuilder::Normalize(QList<Rgb>* vals, double Rgb::*member) {
|
||||||
}
|
}
|
||||||
|
|
||||||
double avg = 0;
|
double avg = 0;
|
||||||
int t = 0;
|
|
||||||
for (const Rgb& rgb : *vals) {
|
for (const Rgb& rgb : *vals) {
|
||||||
const double value = rgb.*member;
|
const double value = rgb.*member;
|
||||||
if (value != mini && value != maxi) {
|
if (value != mini && value != maxi) {
|
||||||
avg += value / vals->count();
|
avg += value / vals->count();
|
||||||
t++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,6 @@ void OutgoingDataCreator::CheckEnabledProviders() {
|
||||||
<< "lyricstime.com"
|
<< "lyricstime.com"
|
||||||
<< "lyricsreg.com"
|
<< "lyricsreg.com"
|
||||||
<< "lyricsmania.com"
|
<< "lyricsmania.com"
|
||||||
<< "metrolyrics.com"
|
|
||||||
<< "azlyrics.com"
|
<< "azlyrics.com"
|
||||||
<< "songlyrics.com"
|
<< "songlyrics.com"
|
||||||
<< "elyrics.net"
|
<< "elyrics.net"
|
||||||
|
@ -106,7 +105,6 @@ void OutgoingDataCreator::CheckEnabledProviders() {
|
||||||
<< "lyrics.com"
|
<< "lyrics.com"
|
||||||
<< "lyricsbay.com"
|
<< "lyricsbay.com"
|
||||||
<< "directlyrics.com"
|
<< "directlyrics.com"
|
||||||
<< "loudson.gs"
|
|
||||||
<< "teksty.org"
|
<< "teksty.org"
|
||||||
<< "tekstowo.pl (Polish translations)"
|
<< "tekstowo.pl (Polish translations)"
|
||||||
<< "vagalume.uol.com.br"
|
<< "vagalume.uol.com.br"
|
||||||
|
|
|
@ -1729,13 +1729,11 @@ PlaylistItemList Playlist::RemoveItemsWithoutUndo(int row, int count) {
|
||||||
endRemoveRows();
|
endRemoveRows();
|
||||||
|
|
||||||
QList<int>::iterator it = virtual_items_.begin();
|
QList<int>::iterator it = virtual_items_.begin();
|
||||||
int i = 0;
|
|
||||||
while (it != virtual_items_.end()) {
|
while (it != virtual_items_.end()) {
|
||||||
if (*it >= items_.count())
|
if (*it >= items_.count())
|
||||||
it = virtual_items_.erase(it);
|
it = virtual_items_.erase(it);
|
||||||
else
|
else
|
||||||
++it;
|
++it;
|
||||||
++i;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset current_virtual_index_
|
// Reset current_virtual_index_
|
||||||
|
|
|
@ -34,12 +34,6 @@
|
||||||
#undef AddJob
|
#undef AddJob
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace {
|
|
||||||
const char kWavHeaderRiffMarker[] = "RIFF";
|
|
||||||
const char kWavFileTypeFormatChunk[] = "WAVEfmt ";
|
|
||||||
const char kWavDataString[] = "data";
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
Ripper::Ripper(int track_count, QObject* parent)
|
Ripper::Ripper(int track_count, QObject* parent)
|
||||||
: QObject(parent),
|
: QObject(parent),
|
||||||
track_count_(track_count),
|
track_count_(track_count),
|
||||||
|
|
|
@ -90,10 +90,8 @@ void SongInfoView::ReloadSettings() {
|
||||||
|
|
||||||
QVariantList default_order;
|
QVariantList default_order;
|
||||||
default_order << "lyrics.wikia.com"
|
default_order << "lyrics.wikia.com"
|
||||||
<< "lyricstime.com"
|
|
||||||
<< "lyricsreg.com"
|
<< "lyricsreg.com"
|
||||||
<< "lyricsmania.com"
|
<< "lyricsmania.com"
|
||||||
<< "metrolyrics.com"
|
|
||||||
<< "azlyrics.com"
|
<< "azlyrics.com"
|
||||||
<< "songlyrics.com"
|
<< "songlyrics.com"
|
||||||
<< "elyrics.net"
|
<< "elyrics.net"
|
||||||
|
@ -101,7 +99,6 @@ void SongInfoView::ReloadSettings() {
|
||||||
<< "lyrics.com"
|
<< "lyrics.com"
|
||||||
<< "lyricsbay.com"
|
<< "lyricsbay.com"
|
||||||
<< "directlyrics.com"
|
<< "directlyrics.com"
|
||||||
<< "loudson.gs"
|
|
||||||
<< "teksty.org"
|
<< "teksty.org"
|
||||||
<< "tekstowo.pl (Polish translations)"
|
<< "tekstowo.pl (Polish translations)"
|
||||||
<< "vagalume.uol.com.br"
|
<< "vagalume.uol.com.br"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -42,6 +42,7 @@
|
||||||
# Martin Brodbeck <martin@brodbeck-online.de>, 2013
|
# Martin Brodbeck <martin@brodbeck-online.de>, 2013
|
||||||
# Martin Herkt <lachs0r@hong-mailing.de>, 2011
|
# Martin Herkt <lachs0r@hong-mailing.de>, 2011
|
||||||
# Martin Herkt <luck3r@phicode.de>, 2010
|
# Martin Herkt <luck3r@phicode.de>, 2010
|
||||||
|
# Michael Kohler, 2024
|
||||||
# MCMicS, 2020
|
# MCMicS, 2020
|
||||||
# Mohamed Sakhri, 2013
|
# Mohamed Sakhri, 2013
|
||||||
# Mohamed Sakhri, 2013
|
# Mohamed Sakhri, 2013
|
||||||
|
@ -49,7 +50,7 @@
|
||||||
# Paul E. <>, 2012
|
# Paul E. <>, 2012
|
||||||
# Peter B. <pb@das-werkstatt.com>, 2014-2017,2020
|
# Peter B. <pb@das-werkstatt.com>, 2014-2017,2020
|
||||||
# Phillip Schichtel, 2013
|
# Phillip Schichtel, 2013
|
||||||
# Phillip Schichtel, 2013
|
# 17760e672035fcff50bc74f55db0788a_695e6fa, 2013
|
||||||
# robfloop <robertbeckmann@fastmail.fm>, 2012
|
# robfloop <robertbeckmann@fastmail.fm>, 2012
|
||||||
# robfloop <robertbeckmann@fastmail.fm>, 2012
|
# robfloop <robertbeckmann@fastmail.fm>, 2012
|
||||||
# Robin Cornelio Thomas <rc.thomas90@gmail.com>, 2012
|
# Robin Cornelio Thomas <rc.thomas90@gmail.com>, 2012
|
||||||
|
@ -70,7 +71,7 @@ msgstr ""
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-04-09 10:24+0000\n"
|
"POT-Creation-Date: 2011-04-09 10:24+0000\n"
|
||||||
"PO-Revision-Date: 2011-10-27 18:53+0000\n"
|
"PO-Revision-Date: 2011-10-27 18:53+0000\n"
|
||||||
"Last-Translator: 6543 <6543@obermui.de>, 2020\n"
|
"Last-Translator: Michael Kohler, 2024\n"
|
||||||
"Language-Team: German (http://app.transifex.com/davidsansome/clementine/language/de/)\n"
|
"Language-Team: German (http://app.transifex.com/davidsansome/clementine/language/de/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
@ -219,7 +220,7 @@ msgid "1 track"
|
||||||
msgstr "1 Titel"
|
msgstr "1 Titel"
|
||||||
|
|
||||||
msgid "128K MP3"
|
msgid "128K MP3"
|
||||||
msgstr ""
|
msgstr "128K MP3"
|
||||||
|
|
||||||
msgid "128k MP3"
|
msgid "128k MP3"
|
||||||
msgstr "128k MP3"
|
msgstr "128k MP3"
|
||||||
|
@ -240,7 +241,7 @@ msgid "A Grooveshark Anywhere account is required."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "A Spotify Premium account is required."
|
msgid "A Spotify Premium account is required."
|
||||||
msgstr ""
|
msgstr "Spotify Premium Zugang wird benötigt."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A smart playlist is a dynamic list of songs that come from your library. "
|
"A smart playlist is a dynamic list of songs that come from your library. "
|
||||||
|
@ -293,7 +294,7 @@ msgid "Action"
|
||||||
msgstr "Aktion"
|
msgstr "Aktion"
|
||||||
|
|
||||||
msgid "Active/deactive Wiiremote"
|
msgid "Active/deactive Wiiremote"
|
||||||
msgstr ""
|
msgstr "Aktivieren/deaktivieren Wiiremote"
|
||||||
|
|
||||||
msgid "Add Stream"
|
msgid "Add Stream"
|
||||||
msgstr "Datenstrom hinzufügen"
|
msgstr "Datenstrom hinzufügen"
|
||||||
|
@ -326,7 +327,7 @@ msgid "Add folder..."
|
||||||
msgstr "Ordner hinzufügen …"
|
msgstr "Ordner hinzufügen …"
|
||||||
|
|
||||||
msgid "Add media"
|
msgid "Add media"
|
||||||
msgstr ""
|
msgstr "Medien hinzufügen ..."
|
||||||
|
|
||||||
msgid "Add new folder..."
|
msgid "Add new folder..."
|
||||||
msgstr "Neuen Ordner hinzufügen …"
|
msgstr "Neuen Ordner hinzufügen …"
|
||||||
|
@ -386,7 +387,7 @@ msgid "Add wiimotedev action"
|
||||||
msgstr "Aktion für Wii-Fernbedienung hinzufügen"
|
msgstr "Aktion für Wii-Fernbedienung hinzufügen"
|
||||||
|
|
||||||
msgid "Add..."
|
msgid "Add..."
|
||||||
msgstr ""
|
msgstr "Hinzufügen …"
|
||||||
|
|
||||||
msgid "Added this month"
|
msgid "Added this month"
|
||||||
msgstr "Diesen Monat hinzugefügt"
|
msgstr "Diesen Monat hinzugefügt"
|
||||||
|
@ -422,7 +423,7 @@ msgid "Album info on jamendo.com..."
|
||||||
msgstr "Albuminformationen auf jamendo.com …"
|
msgstr "Albuminformationen auf jamendo.com …"
|
||||||
|
|
||||||
msgid "Albumartist"
|
msgid "Albumartist"
|
||||||
msgstr ""
|
msgstr "Albumkünstler"
|
||||||
|
|
||||||
msgid "Albums with covers"
|
msgid "Albums with covers"
|
||||||
msgstr "Alben mit Titelbildern"
|
msgstr "Alben mit Titelbildern"
|
||||||
|
@ -633,7 +634,7 @@ msgid "CUE sheet support"
|
||||||
msgstr "Unterstützung von Cuesheets"
|
msgstr "Unterstützung von Cuesheets"
|
||||||
|
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr ""
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
msgid "Change cover art"
|
msgid "Change cover art"
|
||||||
msgstr "Titelbilder ändern"
|
msgstr "Titelbilder ändern"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3,10 +3,10 @@
|
||||||
# This file is distributed under the same license as the Clementine package.
|
# This file is distributed under the same license as the Clementine package.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Adolfo Jayme-Barrientos, 2014
|
# Adolfo Jayme Barrientos, 2014
|
||||||
# Adolfo Jayme-Barrientos, 2018-2022
|
# Adolfo Jayme Barrientos, 2018-2022
|
||||||
# Adolfo Jayme-Barrientos, 2015-2016
|
# Adolfo Jayme Barrientos, 2015-2016
|
||||||
# Adolfo Jayme-Barrientos, 2014
|
# Adolfo Jayme Barrientos, 2014
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-04-09 10:24+0000\n"
|
"POT-Creation-Date: 2011-04-09 10:24+0000\n"
|
||||||
"PO-Revision-Date: 2011-10-27 18:53+0000\n"
|
"PO-Revision-Date: 2011-10-27 18:53+0000\n"
|
||||||
"Last-Translator: Adolfo Jayme-Barrientos, 2018-2022\n"
|
"Last-Translator: Adolfo Jayme Barrientos, 2018-2022\n"
|
||||||
"Language-Team: Esperanto (http://app.transifex.com/davidsansome/clementine/language/eo/)\n"
|
"Language-Team: Esperanto (http://app.transifex.com/davidsansome/clementine/language/eo/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
|
|
@ -4,12 +4,12 @@
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Coroccotta <adiazubierna@gmail.com>, 2012
|
# Coroccotta <adiazubierna@gmail.com>, 2012
|
||||||
# Adolfo Jayme-Barrientos, 2014
|
# Adolfo Jayme Barrientos, 2014
|
||||||
# Adolfo Jayme-Barrientos, 2012-2013,2018,2021
|
# Adolfo Jayme Barrientos, 2012-2013,2018,2021
|
||||||
# Adolfo Jayme-Barrientos, 2016-2022
|
# Adolfo Jayme Barrientos, 2016-2022
|
||||||
# Adolfo Jayme-Barrientos, 2015-2016
|
# Adolfo Jayme Barrientos, 2015-2016
|
||||||
# Adolfo Jayme-Barrientos, 2013
|
# Adolfo Jayme Barrientos, 2013
|
||||||
# Adolfo Jayme-Barrientos, 2014
|
# Adolfo Jayme Barrientos, 2014
|
||||||
# Adrián Prado Castro <adrian.prado@gmail.com>, 2013
|
# Adrián Prado Castro <adrian.prado@gmail.com>, 2013
|
||||||
# Adrián Ramirez Escalante <buried.prophet@gmail.com>, 2012
|
# Adrián Ramirez Escalante <buried.prophet@gmail.com>, 2012
|
||||||
# Amaury Ortega <amauryocortega@gmail.com>, 2018
|
# Amaury Ortega <amauryocortega@gmail.com>, 2018
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -24,7 +24,7 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Language: he\n"
|
"Language: he\n"
|
||||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
|
"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n"
|
||||||
"X-Generator: Launchpad (build 13168)\n"
|
"X-Generator: Launchpad (build 13168)\n"
|
||||||
"X-Launchpad-Export-Date: 2011-06-27 04:53+0000\n"
|
"X-Launchpad-Export-Date: 2011-06-27 04:53+0000\n"
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Language: he_IL\n"
|
"Language: he_IL\n"
|
||||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
|
"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n"
|
||||||
"X-Generator: Launchpad (build 13168)\n"
|
"X-Generator: Launchpad (build 13168)\n"
|
||||||
"X-Launchpad-Export-Date: 2011-06-27 04:53+0000\n"
|
"X-Launchpad-Export-Date: 2011-06-27 04:53+0000\n"
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Baiba Bērziņa <baibabeerzinnaa@gmail.com>, 2015
|
# Baiba Bērziņa <baibabeerzinnaa@gmail.com>, 2015
|
||||||
# Eduards 963, 2023
|
# Eduards Lasmanis, 2023
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
|
||||||
# Gatis Kalniņš <>, 2014
|
# Gatis Kalniņš <>, 2014
|
||||||
# Kristaps, 2012
|
# Kristaps, 2012
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-04-09 10:24+0000\n"
|
"POT-Creation-Date: 2011-04-09 10:24+0000\n"
|
||||||
"PO-Revision-Date: 2011-10-27 18:53+0000\n"
|
"PO-Revision-Date: 2011-10-27 18:53+0000\n"
|
||||||
"Last-Translator: Eduards 963, 2023\n"
|
"Last-Translator: Eduards Lasmanis, 2023\n"
|
||||||
"Language-Team: Latvian (http://app.transifex.com/davidsansome/clementine/language/lv/)\n"
|
"Language-Team: Latvian (http://app.transifex.com/davidsansome/clementine/language/lv/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
# arnaudbienner <arnaud.bienner@gmail.com>, 2011
|
# arnaudbienner <arnaud.bienner@gmail.com>, 2011
|
||||||
# arnaudbienner <arnaud.bienner@gmail.com>, 2011
|
# arnaudbienner <arnaud.bienner@gmail.com>, 2011
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010
|
||||||
# Hugo Carvalho <hugokarvalho@hotmail.com>, 2015,2020-2023
|
# Hugo Carvalho <hugokarvalho@hotmail.com>, 2015,2020-2024
|
||||||
# João Santos <joaoopsantos@gmail.com>, 2015
|
# João Santos <joaoopsantos@gmail.com>, 2015
|
||||||
# Rui <xymarior@yandex.com>, 2019
|
# Rui <xymarior@yandex.com>, 2019
|
||||||
# Alexandro Casanova <shorterfire@gmail.com>, 2013
|
# Alexandro Casanova <shorterfire@gmail.com>, 2013
|
||||||
|
@ -18,7 +18,7 @@ msgstr ""
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-04-09 10:24+0000\n"
|
"POT-Creation-Date: 2011-04-09 10:24+0000\n"
|
||||||
"PO-Revision-Date: 2011-10-27 18:53+0000\n"
|
"PO-Revision-Date: 2011-10-27 18:53+0000\n"
|
||||||
"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>, 2015,2020-2023\n"
|
"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>, 2015,2020-2024\n"
|
||||||
"Language-Team: Portuguese (http://app.transifex.com/davidsansome/clementine/language/pt/)\n"
|
"Language-Team: Portuguese (http://app.transifex.com/davidsansome/clementine/language/pt/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
@ -61,7 +61,7 @@ msgstr "%1 listas de reprodução (%2)"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "%1 selected of"
|
msgid "%1 selected of"
|
||||||
msgstr ""
|
msgstr "%1 selecionada(s) de"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "%1 song"
|
msgid "%1 song"
|
||||||
|
@ -185,10 +185,10 @@ msgid ""
|
||||||
msgstr "<p>Os \"tokens\" iniciam com %, por exemplo: %artist %album %title </p>\n\n<p>Ao colocar parênteses entre as secções de texto que contêm \"tokens\", essa secção será ocultada se o \"token\" estiver vazio</p>"
|
msgstr "<p>Os \"tokens\" iniciam com %, por exemplo: %artist %album %title </p>\n\n<p>Ao colocar parênteses entre as secções de texto que contêm \"tokens\", essa secção será ocultada se o \"token\" estiver vazio</p>"
|
||||||
|
|
||||||
msgid "A Grooveshark Anywhere account is required."
|
msgid "A Grooveshark Anywhere account is required."
|
||||||
msgstr ""
|
msgstr "Requer uma conta Grooveshark Anywhere"
|
||||||
|
|
||||||
msgid "A Spotify Premium account is required."
|
msgid "A Spotify Premium account is required."
|
||||||
msgstr ""
|
msgstr "Requer uma conta Spotify Premium."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A smart playlist is a dynamic list of songs that come from your library. "
|
"A smart playlist is a dynamic list of songs that come from your library. "
|
||||||
|
@ -207,13 +207,13 @@ msgid "AAC"
|
||||||
msgstr "AAC"
|
msgstr "AAC"
|
||||||
|
|
||||||
msgid "AAC 128k (Premium only)"
|
msgid "AAC 128k (Premium only)"
|
||||||
msgstr ""
|
msgstr "AAC 128k (Premium)"
|
||||||
|
|
||||||
msgid "AAC 32k"
|
msgid "AAC 32k"
|
||||||
msgstr "AAC 32k"
|
msgstr "AAC 32k"
|
||||||
|
|
||||||
msgid "AAC 64k (Premium only)"
|
msgid "AAC 64k (Premium only)"
|
||||||
msgstr ""
|
msgstr "AAC 64k (Premium)"
|
||||||
|
|
||||||
msgid "AIFF"
|
msgid "AIFF"
|
||||||
msgstr "AIFF"
|
msgstr "AIFF"
|
||||||
|
@ -241,7 +241,7 @@ msgid "Action"
|
||||||
msgstr "Ação"
|
msgstr "Ação"
|
||||||
|
|
||||||
msgid "Active/deactive Wiiremote"
|
msgid "Active/deactive Wiiremote"
|
||||||
msgstr ""
|
msgstr "Ativar/desativar Wiiremote"
|
||||||
|
|
||||||
msgid "Add Stream"
|
msgid "Add Stream"
|
||||||
msgstr "Adicionar emissão"
|
msgstr "Adicionar emissão"
|
||||||
|
@ -253,7 +253,7 @@ msgid "Add action"
|
||||||
msgstr "Adicionar uma ação"
|
msgstr "Adicionar uma ação"
|
||||||
|
|
||||||
msgid "Add and play now"
|
msgid "Add and play now"
|
||||||
msgstr ""
|
msgstr "Adicionar e reproduzir"
|
||||||
|
|
||||||
msgid "Add another stream..."
|
msgid "Add another stream..."
|
||||||
msgstr "Adicionar outra emissão..."
|
msgstr "Adicionar outra emissão..."
|
||||||
|
@ -274,7 +274,7 @@ msgid "Add folder..."
|
||||||
msgstr "Adicionar diretório..."
|
msgstr "Adicionar diretório..."
|
||||||
|
|
||||||
msgid "Add media"
|
msgid "Add media"
|
||||||
msgstr ""
|
msgstr "Adicionar ficheiros"
|
||||||
|
|
||||||
msgid "Add new folder..."
|
msgid "Add new folder..."
|
||||||
msgstr "Adicionar novo diretório..."
|
msgstr "Adicionar novo diretório..."
|
||||||
|
@ -334,7 +334,7 @@ msgid "Add wiimotedev action"
|
||||||
msgstr "Adicionar uma ação wiimotedev"
|
msgstr "Adicionar uma ação wiimotedev"
|
||||||
|
|
||||||
msgid "Add..."
|
msgid "Add..."
|
||||||
msgstr ""
|
msgstr "Adicionar..."
|
||||||
|
|
||||||
msgid "Added this month"
|
msgid "Added this month"
|
||||||
msgstr "Adicionadas este mês"
|
msgstr "Adicionadas este mês"
|
||||||
|
@ -370,7 +370,7 @@ msgid "Album info on jamendo.com..."
|
||||||
msgstr "Informações do álbum em jamendo.com..."
|
msgstr "Informações do álbum em jamendo.com..."
|
||||||
|
|
||||||
msgid "Albumartist"
|
msgid "Albumartist"
|
||||||
msgstr ""
|
msgstr "Álbum - artista"
|
||||||
|
|
||||||
msgid "Albums with covers"
|
msgid "Albums with covers"
|
||||||
msgstr "Álbuns com capas"
|
msgstr "Álbuns com capas"
|
||||||
|
|
|
@ -1270,13 +1270,13 @@ msgid "Files to transcode"
|
||||||
msgstr "Arquivos para converter"
|
msgstr "Arquivos para converter"
|
||||||
|
|
||||||
msgid "Filesystem name"
|
msgid "Filesystem name"
|
||||||
msgstr ""
|
msgstr "Nome do sistema de arquivos"
|
||||||
|
|
||||||
msgid "Filesystem serial number"
|
msgid "Filesystem serial number"
|
||||||
msgstr ""
|
msgstr "Número de série do sistema de arquivos"
|
||||||
|
|
||||||
msgid "Filesystem type"
|
msgid "Filesystem type"
|
||||||
msgstr ""
|
msgstr "Tipo do sistema de arquivos"
|
||||||
|
|
||||||
msgid "Find songs in your library that match the criteria you specify."
|
msgid "Find songs in your library that match the criteria you specify."
|
||||||
msgstr "Encontrar músicas na sua biblioteca que satisfazem aos critérios que você especificar."
|
msgstr "Encontrar músicas na sua biblioteca que satisfazem aos critérios que você especificar."
|
||||||
|
@ -1291,13 +1291,13 @@ msgid "First level"
|
||||||
msgstr "Primeiro nível"
|
msgstr "Primeiro nível"
|
||||||
|
|
||||||
msgid "Flac"
|
msgid "Flac"
|
||||||
msgstr ""
|
msgstr "Flac"
|
||||||
|
|
||||||
msgid "Font size"
|
msgid "Font size"
|
||||||
msgstr "Tamanho da fonte"
|
msgstr "Tamanho da fonte"
|
||||||
|
|
||||||
msgid "For licensing reasons Spotify support is in a separate plugin."
|
msgid "For licensing reasons Spotify support is in a separate plugin."
|
||||||
msgstr ""
|
msgstr "Por motivos de licenciamento, o suporte ao Spotify está em um plugin separado."
|
||||||
|
|
||||||
msgid "Force mono encoding"
|
msgid "Force mono encoding"
|
||||||
msgstr "Forçar codificação em mono"
|
msgstr "Forçar codificação em mono"
|
||||||
|
@ -1323,7 +1323,7 @@ msgid "Frames per buffer"
|
||||||
msgstr "Quadros por buffer"
|
msgstr "Quadros por buffer"
|
||||||
|
|
||||||
msgid "Friends"
|
msgid "Friends"
|
||||||
msgstr ""
|
msgstr "Amigos"
|
||||||
|
|
||||||
msgid "Full Bass"
|
msgid "Full Bass"
|
||||||
msgstr "Graves"
|
msgstr "Graves"
|
||||||
|
@ -1335,7 +1335,7 @@ msgid "Full Treble"
|
||||||
msgstr "Muito Agudo"
|
msgstr "Muito Agudo"
|
||||||
|
|
||||||
msgid "GStreamer audio engine"
|
msgid "GStreamer audio engine"
|
||||||
msgstr ""
|
msgstr "Mecanismo de áudio GStreamer"
|
||||||
|
|
||||||
msgid "General settings"
|
msgid "General settings"
|
||||||
msgstr "Configurações gerais"
|
msgstr "Configurações gerais"
|
||||||
|
@ -1353,7 +1353,7 @@ msgid "Give it a name:"
|
||||||
msgstr "Nome da transmissão:"
|
msgstr "Nome da transmissão:"
|
||||||
|
|
||||||
msgid "Global search"
|
msgid "Global search"
|
||||||
msgstr ""
|
msgstr "Busca global"
|
||||||
|
|
||||||
msgid "Go to next playlist tab"
|
msgid "Go to next playlist tab"
|
||||||
msgstr "Ir até a aba do próximo playlist"
|
msgstr "Ir até a aba do próximo playlist"
|
||||||
|
@ -1362,10 +1362,10 @@ msgid "Go to previous playlist tab"
|
||||||
msgstr "Ir até a aba lista de reprodução anterior"
|
msgstr "Ir até a aba lista de reprodução anterior"
|
||||||
|
|
||||||
msgid "Google password"
|
msgid "Google password"
|
||||||
msgstr ""
|
msgstr "Senha da Google"
|
||||||
|
|
||||||
msgid "Google username"
|
msgid "Google username"
|
||||||
msgstr ""
|
msgstr "Nome de usuário da Google"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Got %1 covers out of %2 (%3 failed)"
|
msgid "Got %1 covers out of %2 (%3 failed)"
|
||||||
|
@ -1375,10 +1375,10 @@ msgid "Grey out non existent songs in my playlists"
|
||||||
msgstr "Acinzentar músicas inexistentes na minha lista de reprodução"
|
msgstr "Acinzentar músicas inexistentes na minha lista de reprodução"
|
||||||
|
|
||||||
msgid "Grooveshark"
|
msgid "Grooveshark"
|
||||||
msgstr ""
|
msgstr "Grooveshark"
|
||||||
|
|
||||||
msgid "Grooveshark login error"
|
msgid "Grooveshark login error"
|
||||||
msgstr ""
|
msgstr "Erro ao logar no Grooveshark"
|
||||||
|
|
||||||
msgid "Group Library by..."
|
msgid "Group Library by..."
|
||||||
msgstr "Organizar Biblioteca por..."
|
msgstr "Organizar Biblioteca por..."
|
||||||
|
@ -1424,7 +1424,7 @@ msgid "High (1024x1024)"
|
||||||
msgstr "Alta (1024x1024)"
|
msgstr "Alta (1024x1024)"
|
||||||
|
|
||||||
msgid "High (35 fps)"
|
msgid "High (35 fps)"
|
||||||
msgstr ""
|
msgstr "Alto (35 fps)"
|
||||||
|
|
||||||
msgid "Hours"
|
msgid "Hours"
|
||||||
msgstr "Horas"
|
msgstr "Horas"
|
||||||
|
@ -1452,7 +1452,7 @@ msgstr "Se você continar, este dispositivo funcionará lentamente e as músicas
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you use the remote on more than one computer, this name will help you "
|
"If you use the remote on more than one computer, this name will help you "
|
||||||
"choose which one to connect to on your phone."
|
"choose which one to connect to on your phone."
|
||||||
msgstr ""
|
msgstr "Se você usar o controle remoto em mais de um computador, este nome irá ajudá-lo a escolher qual deles irá conectar-se em seu telefone."
|
||||||
|
|
||||||
msgid "Ignore \"The\" in artist names"
|
msgid "Ignore \"The\" in artist names"
|
||||||
msgstr "Ignorar o \"The\" em nomes de artistas"
|
msgstr "Ignorar o \"The\" em nomes de artistas"
|
||||||
|
@ -1469,7 +1469,7 @@ msgid ""
|
||||||
msgstr "No modo dinâmico, novas faixas serão escolhidas e adicionadas à lista de reprodução toda a vez que uma musica terminar."
|
msgstr "No modo dinâmico, novas faixas serão escolhidas e adicionadas à lista de reprodução toda a vez que uma musica terminar."
|
||||||
|
|
||||||
msgid "Inbox"
|
msgid "Inbox"
|
||||||
msgstr ""
|
msgstr "Caixa de entrada"
|
||||||
|
|
||||||
msgid "Include album art in the notification"
|
msgid "Include album art in the notification"
|
||||||
msgstr "Incluir capa do álbum na notificação"
|
msgstr "Incluir capa do álbum na notificação"
|
||||||
|
@ -1478,7 +1478,7 @@ msgid "Include all songs"
|
||||||
msgstr "Incluir todas as músicas"
|
msgstr "Incluir todas as músicas"
|
||||||
|
|
||||||
msgid "Increase the volume by 4%"
|
msgid "Increase the volume by 4%"
|
||||||
msgstr ""
|
msgstr "Aumentar volume em 4%"
|
||||||
|
|
||||||
msgid "Increase volume"
|
msgid "Increase volume"
|
||||||
msgstr "Aumentar volume"
|
msgstr "Aumentar volume"
|
||||||
|
@ -1490,7 +1490,7 @@ msgid "Insert..."
|
||||||
msgstr "Inserir..."
|
msgstr "Inserir..."
|
||||||
|
|
||||||
msgid "Installed"
|
msgid "Installed"
|
||||||
msgstr ""
|
msgstr "Instalado"
|
||||||
|
|
||||||
msgid "Internet"
|
msgid "Internet"
|
||||||
msgstr "Internet"
|
msgstr "Internet"
|
||||||
|
@ -1499,10 +1499,10 @@ msgid "Invalid API key"
|
||||||
msgstr "Chave API inválida"
|
msgstr "Chave API inválida"
|
||||||
|
|
||||||
msgid "Invalid SKY.fm username or password"
|
msgid "Invalid SKY.fm username or password"
|
||||||
msgstr ""
|
msgstr "Senha ou usuário inválido para SKY.fm"
|
||||||
|
|
||||||
msgid "Invalid di.fm username or password"
|
msgid "Invalid di.fm username or password"
|
||||||
msgstr ""
|
msgstr "Senha ou usuário inválido para di.fm"
|
||||||
|
|
||||||
msgid "Invalid format"
|
msgid "Invalid format"
|
||||||
msgstr "Formato inválido"
|
msgstr "Formato inválido"
|
||||||
|
@ -1523,7 +1523,7 @@ msgid "Invalid session key"
|
||||||
msgstr "Chave de sessão inválida"
|
msgstr "Chave de sessão inválida"
|
||||||
|
|
||||||
msgid "Invalid username and/or password"
|
msgid "Invalid username and/or password"
|
||||||
msgstr ""
|
msgstr "Usuário e/ou senha inválida"
|
||||||
|
|
||||||
msgid "Jamendo"
|
msgid "Jamendo"
|
||||||
msgstr "Jamendo"
|
msgstr "Jamendo"
|
||||||
|
@ -1561,7 +1561,7 @@ msgid "Keep the original files"
|
||||||
msgstr "Manter arquivos originais"
|
msgstr "Manter arquivos originais"
|
||||||
|
|
||||||
msgid "Kittens"
|
msgid "Kittens"
|
||||||
msgstr ""
|
msgstr "Gatinhos"
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Idioma"
|
msgstr "Idioma"
|
||||||
|
@ -1586,37 +1586,37 @@ msgstr "Last.fm"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Last.fm Custom Radio: %1"
|
msgid "Last.fm Custom Radio: %1"
|
||||||
msgstr ""
|
msgstr "Rádio personalizada do Last.fm: %1"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Last.fm Library - %1"
|
msgid "Last.fm Library - %1"
|
||||||
msgstr ""
|
msgstr "Biblioteca Last.fm - %1"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Last.fm Mix Radio - %1"
|
msgid "Last.fm Mix Radio - %1"
|
||||||
msgstr ""
|
msgstr "Rádio mista do last.fm: %1"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Last.fm Neighbor Radio - %1"
|
msgid "Last.fm Neighbor Radio - %1"
|
||||||
msgstr ""
|
msgstr "Rádio do vizinho no Last.fm - %1"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Last.fm Radio Station - %1"
|
msgid "Last.fm Radio Station - %1"
|
||||||
msgstr ""
|
msgstr "Estação de Rádio Last.fm - %1"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Last.fm Similar Artists to %1"
|
msgid "Last.fm Similar Artists to %1"
|
||||||
msgstr ""
|
msgstr "Artistas Last.fm Similares a %1"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Last.fm Tag Radio: %1"
|
msgid "Last.fm Tag Radio: %1"
|
||||||
msgstr ""
|
msgstr "Etiqueta de Rádio do Last.fm: %1"
|
||||||
|
|
||||||
msgid "Last.fm is currently busy, please try again in a few minutes"
|
msgid "Last.fm is currently busy, please try again in a few minutes"
|
||||||
msgstr "Last.fm está ocupado no momento, por favor tente novamente daqui a alguns minutos"
|
msgstr "Last.fm está ocupado no momento, por favor tente novamente daqui a alguns minutos"
|
||||||
|
|
||||||
msgid "Last.fm password"
|
msgid "Last.fm password"
|
||||||
msgstr ""
|
msgstr "Senha do Last.fm"
|
||||||
|
|
||||||
msgid "Last.fm play counts"
|
msgid "Last.fm play counts"
|
||||||
msgstr "Número de reproduções do last.fm"
|
msgstr "Número de reproduções do last.fm"
|
||||||
|
@ -1625,7 +1625,7 @@ msgid "Last.fm tags"
|
||||||
msgstr "Tags do Last.fm"
|
msgstr "Tags do Last.fm"
|
||||||
|
|
||||||
msgid "Last.fm username"
|
msgid "Last.fm username"
|
||||||
msgstr ""
|
msgstr "Nome de usuário do Last.fm"
|
||||||
|
|
||||||
msgid "Last.fm wiki"
|
msgid "Last.fm wiki"
|
||||||
msgstr "Wiki do last.fm"
|
msgstr "Wiki do last.fm"
|
||||||
|
@ -1634,7 +1634,7 @@ msgid "Least favourite tracks"
|
||||||
msgstr "Faixas menos preferidas"
|
msgstr "Faixas menos preferidas"
|
||||||
|
|
||||||
msgid "Leave blank for the default. Examples: \"/dev/dsp\", \"front\", etc."
|
msgid "Leave blank for the default. Examples: \"/dev/dsp\", \"front\", etc."
|
||||||
msgstr ""
|
msgstr "Deixe em branco por padrão. Exemplos: \"/dev/dsp\", \"front\", etc."
|
||||||
|
|
||||||
msgid "Length"
|
msgid "Length"
|
||||||
msgstr "Duração"
|
msgstr "Duração"
|
||||||
|
@ -1676,13 +1676,13 @@ msgid "Load playlist..."
|
||||||
msgstr "Carregar lista de reprodução..."
|
msgstr "Carregar lista de reprodução..."
|
||||||
|
|
||||||
msgid "Loading Last.fm radio"
|
msgid "Loading Last.fm radio"
|
||||||
msgstr ""
|
msgstr "Carregando rádio Last.fm"
|
||||||
|
|
||||||
msgid "Loading MTP device"
|
msgid "Loading MTP device"
|
||||||
msgstr "Carregando dispositivo MTP"
|
msgstr "Carregando dispositivo MTP"
|
||||||
|
|
||||||
msgid "Loading Windows Media device"
|
msgid "Loading Windows Media device"
|
||||||
msgstr ""
|
msgstr "Carregando dispositivo do Windows Media"
|
||||||
|
|
||||||
msgid "Loading iPod database"
|
msgid "Loading iPod database"
|
||||||
msgstr "Carregando banco de dados do iPod"
|
msgstr "Carregando banco de dados do iPod"
|
||||||
|
@ -1722,7 +1722,7 @@ msgid "Low (%1 fps)"
|
||||||
msgstr "Baixo (%1 fps)"
|
msgstr "Baixo (%1 fps)"
|
||||||
|
|
||||||
msgid "Low (15 fps)"
|
msgid "Low (15 fps)"
|
||||||
msgstr ""
|
msgstr "Baixo (15 fps)"
|
||||||
|
|
||||||
msgid "Low (256x256)"
|
msgid "Low (256x256)"
|
||||||
msgstr "Baixa (256x256)"
|
msgstr "Baixa (256x256)"
|
||||||
|
@ -1741,7 +1741,7 @@ msgid "MP3"
|
||||||
msgstr "MP3"
|
msgstr "MP3"
|
||||||
|
|
||||||
msgid "MP3 256k (Premium only)"
|
msgid "MP3 256k (Premium only)"
|
||||||
msgstr ""
|
msgstr "MP3 256k (Premium)"
|
||||||
|
|
||||||
msgid "MP3 96k"
|
msgid "MP3 96k"
|
||||||
msgstr "MP3 96k"
|
msgstr "MP3 96k"
|
||||||
|
@ -1765,7 +1765,7 @@ msgid "Main profile (MAIN)"
|
||||||
msgstr "Menu perfil (PRINCIPAL)"
|
msgstr "Menu perfil (PRINCIPAL)"
|
||||||
|
|
||||||
msgid "Make playlist available offline"
|
msgid "Make playlist available offline"
|
||||||
msgstr ""
|
msgstr "Tornar lista de reprodução disponível offline"
|
||||||
|
|
||||||
msgid "Malformed response"
|
msgid "Malformed response"
|
||||||
msgstr "Resposta inválida"
|
msgstr "Resposta inválida"
|
||||||
|
@ -1790,7 +1790,7 @@ msgid "Medium (%1 fps)"
|
||||||
msgstr "Médio (%1 fps)"
|
msgstr "Médio (%1 fps)"
|
||||||
|
|
||||||
msgid "Medium (25 fps)"
|
msgid "Medium (25 fps)"
|
||||||
msgstr ""
|
msgstr "Médio (25 fps)"
|
||||||
|
|
||||||
msgid "Medium (512x512)"
|
msgid "Medium (512x512)"
|
||||||
msgstr "Média (512x512)"
|
msgstr "Média (512x512)"
|
||||||
|
@ -1835,7 +1835,7 @@ msgid "&Music"
|
||||||
msgstr "Música"
|
msgstr "Música"
|
||||||
|
|
||||||
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
msgstr ""
|
msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
|
|
||||||
msgid "Music Library"
|
msgid "Music Library"
|
||||||
msgstr "Biblioteca de Músicas"
|
msgstr "Biblioteca de Músicas"
|
||||||
|
@ -1844,28 +1844,28 @@ msgid "Mute"
|
||||||
msgstr "Mudo"
|
msgstr "Mudo"
|
||||||
|
|
||||||
msgid "My Last.fm Library"
|
msgid "My Last.fm Library"
|
||||||
msgstr ""
|
msgstr "Minha biblioteca no Last.fm"
|
||||||
|
|
||||||
msgid "My Last.fm Mix Radio"
|
msgid "My Last.fm Mix Radio"
|
||||||
msgstr ""
|
msgstr "Minha Rádio Mix do Last.fm"
|
||||||
|
|
||||||
msgid "My Last.fm Neighborhood"
|
msgid "My Last.fm Neighborhood"
|
||||||
msgstr ""
|
msgstr "Minha Vizinhança no Last.fm"
|
||||||
|
|
||||||
msgid "My Last.fm Recommended Radio"
|
msgid "My Last.fm Recommended Radio"
|
||||||
msgstr ""
|
msgstr "Minha Rádio recomendada no Last.fm"
|
||||||
|
|
||||||
msgid "My Mix Radio"
|
msgid "My Mix Radio"
|
||||||
msgstr ""
|
msgstr "Minha Rádio Mix"
|
||||||
|
|
||||||
msgid "My Neighborhood"
|
msgid "My Neighborhood"
|
||||||
msgstr ""
|
msgstr "Minha Vizinhança"
|
||||||
|
|
||||||
msgid "My Radio Station"
|
msgid "My Radio Station"
|
||||||
msgstr ""
|
msgstr "Minha Estação de Rádio"
|
||||||
|
|
||||||
msgid "My Recommendations"
|
msgid "My Recommendations"
|
||||||
msgstr ""
|
msgstr "Minhas Recomendações"
|
||||||
|
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nome"
|
msgstr "Nome"
|
||||||
|
@ -1877,10 +1877,10 @@ msgid "Narrow band (NB)"
|
||||||
msgstr "Banda baixa (NB)"
|
msgstr "Banda baixa (NB)"
|
||||||
|
|
||||||
msgid "Neighbors"
|
msgid "Neighbors"
|
||||||
msgstr ""
|
msgstr "Vizinhos"
|
||||||
|
|
||||||
msgid "Network"
|
msgid "Network"
|
||||||
msgstr ""
|
msgstr "Rede"
|
||||||
|
|
||||||
msgid "Network Proxy"
|
msgid "Network Proxy"
|
||||||
msgstr "Proxy da Rede"
|
msgstr "Proxy da Rede"
|
||||||
|
@ -1956,7 +1956,7 @@ msgid "Not enough neighbors"
|
||||||
msgstr "Sem vizinhos o bastante"
|
msgstr "Sem vizinhos o bastante"
|
||||||
|
|
||||||
msgid "Not installed"
|
msgid "Not installed"
|
||||||
msgstr ""
|
msgstr "Não instalado"
|
||||||
|
|
||||||
msgid "Not mounted - double click to mount"
|
msgid "Not mounted - double click to mount"
|
||||||
msgstr "Não montado - clique duas vezes para montar"
|
msgstr "Não montado - clique duas vezes para montar"
|
||||||
|
@ -1996,25 +1996,25 @@ msgid "Open device"
|
||||||
msgstr "Abrir dispositivo"
|
msgstr "Abrir dispositivo"
|
||||||
|
|
||||||
msgid "Open dir.xiph.org in browser"
|
msgid "Open dir.xiph.org in browser"
|
||||||
msgstr ""
|
msgstr "Abrir dir.xiph.org no navegador"
|
||||||
|
|
||||||
msgid "Open in new playlist"
|
msgid "Open in new playlist"
|
||||||
msgstr "Abrir em nova lista de reprodução"
|
msgstr "Abrir em nova lista de reprodução"
|
||||||
|
|
||||||
msgid "Open jamendo.com in browser"
|
msgid "Open jamendo.com in browser"
|
||||||
msgstr ""
|
msgstr "Abrir jamendo.com no navegador"
|
||||||
|
|
||||||
msgid "Open magnatune.com in browser"
|
msgid "Open magnatune.com in browser"
|
||||||
msgstr ""
|
msgstr "Abrir magnatune.com no navegador"
|
||||||
|
|
||||||
msgid "Open media..."
|
msgid "Open media..."
|
||||||
msgstr ""
|
msgstr "Abrir mídia..."
|
||||||
|
|
||||||
msgid "Open somafm.com in browser"
|
msgid "Open somafm.com in browser"
|
||||||
msgstr ""
|
msgstr "Abrir somafm.com no navegador"
|
||||||
|
|
||||||
msgid "Open intergalacticfm.com in browser"
|
msgid "Open intergalacticfm.com in browser"
|
||||||
msgstr ""
|
msgstr "Abrir intergalacticfm.com no navegador"
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "Abrir..."
|
msgstr "Abrir..."
|
||||||
|
@ -2053,7 +2053,7 @@ msgid "Output options"
|
||||||
msgstr "Opções de Saída"
|
msgstr "Opções de Saída"
|
||||||
|
|
||||||
msgid "Output plugin"
|
msgid "Output plugin"
|
||||||
msgstr ""
|
msgstr "Plugin de saída"
|
||||||
|
|
||||||
msgid "Overwrite existing files"
|
msgid "Overwrite existing files"
|
||||||
msgstr "Sobrescrever arquivos existentes"
|
msgstr "Sobrescrever arquivos existentes"
|
||||||
|
@ -2068,7 +2068,7 @@ msgid "Password"
|
||||||
msgstr "Senha"
|
msgstr "Senha"
|
||||||
|
|
||||||
msgid "Password Protected"
|
msgid "Password Protected"
|
||||||
msgstr ""
|
msgstr "Protegido por senha"
|
||||||
|
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Pausar"
|
msgstr "Pausar"
|
||||||
|
@ -2086,19 +2086,19 @@ msgid "Play"
|
||||||
msgstr "Reproduzir"
|
msgstr "Reproduzir"
|
||||||
|
|
||||||
msgid "Play Artist or Tag"
|
msgid "Play Artist or Tag"
|
||||||
msgstr ""
|
msgstr "Reproduzir Artista ou Etiqueta"
|
||||||
|
|
||||||
msgid "Play artist radio..."
|
msgid "Play artist radio..."
|
||||||
msgstr ""
|
msgstr "Reproduzir rádio do artista..."
|
||||||
|
|
||||||
msgid "Play count"
|
msgid "Play count"
|
||||||
msgstr "Número de reproduções"
|
msgstr "Número de reproduções"
|
||||||
|
|
||||||
msgid "Play custom radio..."
|
msgid "Play custom radio..."
|
||||||
msgstr ""
|
msgstr "Reproduzir rádio personalizada..."
|
||||||
|
|
||||||
msgid "Play from my Library"
|
msgid "Play from my Library"
|
||||||
msgstr ""
|
msgstr "Reproduzir da minha Biblioteca"
|
||||||
|
|
||||||
msgid "Play if stopped, pause if playing"
|
msgid "Play if stopped, pause if playing"
|
||||||
msgstr "Reproduzir se estiver parado, pausar se estiver tocando"
|
msgstr "Reproduzir se estiver parado, pausar se estiver tocando"
|
||||||
|
@ -2107,13 +2107,13 @@ msgid "Play if there is nothing already playing"
|
||||||
msgstr "Tocar se não houver nada tocando"
|
msgstr "Tocar se não houver nada tocando"
|
||||||
|
|
||||||
msgid "Play last.fm artist radio"
|
msgid "Play last.fm artist radio"
|
||||||
msgstr ""
|
msgstr "Reproduzir rádio do artista na last.fm"
|
||||||
|
|
||||||
msgid "Play last.fm tag radio"
|
msgid "Play last.fm tag radio"
|
||||||
msgstr ""
|
msgstr "Reproduzir rádio da etiqueta da last.fm"
|
||||||
|
|
||||||
msgid "Play tag radio..."
|
msgid "Play tag radio..."
|
||||||
msgstr ""
|
msgstr "Reproduzir rádio da etiqueta..."
|
||||||
|
|
||||||
msgid "Play the <n>th track in the playlist"
|
msgid "Play the <n>th track in the playlist"
|
||||||
msgstr "Tocar a <n>ª faixa da lista"
|
msgstr "Tocar a <n>ª faixa da lista"
|
||||||
|
@ -2125,7 +2125,7 @@ msgid "Playback"
|
||||||
msgstr "Reproduzir"
|
msgstr "Reproduzir"
|
||||||
|
|
||||||
msgid "Player name"
|
msgid "Player name"
|
||||||
msgstr ""
|
msgstr "Nome do reprodutor"
|
||||||
|
|
||||||
msgid "Player options"
|
msgid "Player options"
|
||||||
msgstr "Opções do player"
|
msgstr "Opções do player"
|
||||||
|
@ -2140,13 +2140,13 @@ msgid "Playlist options"
|
||||||
msgstr "Opções da lista de reprodução"
|
msgstr "Opções da lista de reprodução"
|
||||||
|
|
||||||
msgid "Playlist search"
|
msgid "Playlist search"
|
||||||
msgstr ""
|
msgstr "Busca na lista de reprodução"
|
||||||
|
|
||||||
msgid "Playlist type"
|
msgid "Playlist type"
|
||||||
msgstr "Tipo de lista de reprodução"
|
msgstr "Tipo de lista de reprodução"
|
||||||
|
|
||||||
msgid "Plugin status:"
|
msgid "Plugin status:"
|
||||||
msgstr ""
|
msgstr "Status do plugin:"
|
||||||
|
|
||||||
msgid "Pop"
|
msgid "Pop"
|
||||||
msgstr "Pop"
|
msgstr "Pop"
|
||||||
|
@ -2216,7 +2216,7 @@ msgid "Put songs in a random order"
|
||||||
msgstr "Colocar músicas em ordem aleatória"
|
msgstr "Colocar músicas em ordem aleatória"
|
||||||
|
|
||||||
msgid "Quality"
|
msgid "Quality"
|
||||||
msgstr ""
|
msgstr "Qualidade"
|
||||||
|
|
||||||
msgid "Querying device..."
|
msgid "Querying device..."
|
||||||
msgstr "Consultando dispositivo..."
|
msgstr "Consultando dispositivo..."
|
||||||
|
@ -2270,7 +2270,7 @@ msgid "Refresh channels"
|
||||||
msgstr "Atualizar canais"
|
msgstr "Atualizar canais"
|
||||||
|
|
||||||
msgid "Refresh friends list"
|
msgid "Refresh friends list"
|
||||||
msgstr ""
|
msgstr "Atualizar lista de amigos"
|
||||||
|
|
||||||
msgid "Refresh station list"
|
msgid "Refresh station list"
|
||||||
msgstr "Atualizar lista de estações"
|
msgstr "Atualizar lista de estações"
|
||||||
|
@ -2285,10 +2285,10 @@ msgid "Remember Wii remote swing"
|
||||||
msgstr "Lembrar balanço do Wiimote"
|
msgstr "Lembrar balanço do Wiimote"
|
||||||
|
|
||||||
msgid "Remember from last time"
|
msgid "Remember from last time"
|
||||||
msgstr ""
|
msgstr "Lembrar da última vez"
|
||||||
|
|
||||||
msgid "Remote Control"
|
msgid "Remote Control"
|
||||||
msgstr ""
|
msgstr "Controle remoto"
|
||||||
|
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Remover"
|
msgstr "Remover"
|
||||||
|
@ -2330,7 +2330,7 @@ msgid "Repeat track"
|
||||||
msgstr "Repetir uma faixa"
|
msgstr "Repetir uma faixa"
|
||||||
|
|
||||||
msgid "Replace and play now"
|
msgid "Replace and play now"
|
||||||
msgstr ""
|
msgstr "Substituir e reproduzir agora"
|
||||||
|
|
||||||
msgid "Replace current playlist"
|
msgid "Replace current playlist"
|
||||||
msgstr "Substituir lista de reprodução atual"
|
msgstr "Substituir lista de reprodução atual"
|
||||||
|
@ -2387,7 +2387,7 @@ msgid "Save image"
|
||||||
msgstr "Salvar imagem"
|
msgstr "Salvar imagem"
|
||||||
|
|
||||||
msgid "Save playlist"
|
msgid "Save playlist"
|
||||||
msgstr ""
|
msgstr "Salvar lista de reprodução"
|
||||||
|
|
||||||
msgid "Save playlist..."
|
msgid "Save playlist..."
|
||||||
msgstr "Salvar lista de reprodução..."
|
msgstr "Salvar lista de reprodução..."
|
||||||
|
@ -2414,10 +2414,10 @@ msgid "Search"
|
||||||
msgstr "Pesquisar"
|
msgstr "Pesquisar"
|
||||||
|
|
||||||
msgid "Search Grooveshark"
|
msgid "Search Grooveshark"
|
||||||
msgstr ""
|
msgstr "Buscar no Grooveshark"
|
||||||
|
|
||||||
msgid "Search Grooveshark (opens a new tab)"
|
msgid "Search Grooveshark (opens a new tab)"
|
||||||
msgstr ""
|
msgstr "Buscar no Grooveshark (abrir uma nova aba)"
|
||||||
|
|
||||||
msgid "Search Icecast stations"
|
msgid "Search Icecast stations"
|
||||||
msgstr "Pesquisar estações do Icecast"
|
msgstr "Pesquisar estações do Icecast"
|
||||||
|
@ -2429,13 +2429,13 @@ msgid "Search Magnatune"
|
||||||
msgstr "Pesquisar Magnatune"
|
msgstr "Pesquisar Magnatune"
|
||||||
|
|
||||||
msgid "Search Spotify"
|
msgid "Search Spotify"
|
||||||
msgstr ""
|
msgstr "Buscar no Spotify"
|
||||||
|
|
||||||
msgid "Search Spotify (opens a new tab)"
|
msgid "Search Spotify (opens a new tab)"
|
||||||
msgstr ""
|
msgstr "Buscar no Spotify (abre uma nova aba)"
|
||||||
|
|
||||||
msgid "Search Spotify (opens a new tab)..."
|
msgid "Search Spotify (opens a new tab)..."
|
||||||
msgstr ""
|
msgstr "Buscar no Spotify (abre uma nova aba)..."
|
||||||
|
|
||||||
msgid "Search for album covers..."
|
msgid "Search for album covers..."
|
||||||
msgstr "Procurar por capas dos álbuns..."
|
msgstr "Procurar por capas dos álbuns..."
|
||||||
|
@ -2513,7 +2513,7 @@ msgid "Show"
|
||||||
msgstr "Exibir"
|
msgstr "Exibir"
|
||||||
|
|
||||||
msgid "Show Global Search Popup"
|
msgid "Show Global Search Popup"
|
||||||
msgstr ""
|
msgstr "Mostrar menu de busca global"
|
||||||
|
|
||||||
msgid "Show OSD"
|
msgid "Show OSD"
|
||||||
msgstr "Mostrar aviso na tela"
|
msgstr "Mostrar aviso na tela"
|
||||||
|
@ -2568,10 +2568,10 @@ msgstr "Mostrar somente os sem tag"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Show results from %1"
|
msgid "Show results from %1"
|
||||||
msgstr ""
|
msgstr "Exibir resultados de %1"
|
||||||
|
|
||||||
msgid "Show the \"love\" and \"ban\" buttons"
|
msgid "Show the \"love\" and \"ban\" buttons"
|
||||||
msgstr ""
|
msgstr "Exibir os botões \"Curtir\" e \"Não curtir\""
|
||||||
|
|
||||||
msgid "Show the scrobble button in the main window"
|
msgid "Show the scrobble button in the main window"
|
||||||
msgstr "Mostrar o botão scrobble na janela principal"
|
msgstr "Mostrar o botão scrobble na janela principal"
|
||||||
|
@ -2589,7 +2589,7 @@ msgid "Shuffle all"
|
||||||
msgstr "Embaralhar tudo"
|
msgstr "Embaralhar tudo"
|
||||||
|
|
||||||
msgid "Shuffle by album"
|
msgid "Shuffle by album"
|
||||||
msgstr ""
|
msgstr "Misturar por álbum"
|
||||||
|
|
||||||
msgid "&Shuffle mode"
|
msgid "&Shuffle mode"
|
||||||
msgstr "Modo aleatório"
|
msgstr "Modo aleatório"
|
||||||
|
@ -2604,7 +2604,7 @@ msgid "Signing in..."
|
||||||
msgstr "Conectando..."
|
msgstr "Conectando..."
|
||||||
|
|
||||||
msgid "Similar artists"
|
msgid "Similar artists"
|
||||||
msgstr ""
|
msgstr "Artistas similares"
|
||||||
|
|
||||||
msgid "Ska"
|
msgid "Ska"
|
||||||
msgstr "Ska"
|
msgstr "Ska"
|
||||||
|
@ -2667,22 +2667,22 @@ msgid "Speex"
|
||||||
msgstr "Speex"
|
msgstr "Speex"
|
||||||
|
|
||||||
msgid "Spotify"
|
msgid "Spotify"
|
||||||
msgstr ""
|
msgstr "Spotify"
|
||||||
|
|
||||||
msgid "Spotify login error"
|
msgid "Spotify login error"
|
||||||
msgstr ""
|
msgstr "Erro ao logar no Spotify"
|
||||||
|
|
||||||
msgid "Spotify plugin"
|
msgid "Spotify plugin"
|
||||||
msgstr ""
|
msgstr "Plugin Spofity"
|
||||||
|
|
||||||
msgid "Spotify plugin not installed"
|
msgid "Spotify plugin not installed"
|
||||||
msgstr ""
|
msgstr "Plugin Spofity não instalado"
|
||||||
|
|
||||||
msgid "Standard"
|
msgid "Standard"
|
||||||
msgstr "Padrão"
|
msgstr "Padrão"
|
||||||
|
|
||||||
msgid "Starred"
|
msgid "Starred"
|
||||||
msgstr ""
|
msgstr "Com estrela"
|
||||||
|
|
||||||
msgid "Start the playlist currently playing"
|
msgid "Start the playlist currently playing"
|
||||||
msgstr "Iniciar a lista que está em execução"
|
msgstr "Iniciar a lista que está em execução"
|
||||||
|
@ -2691,10 +2691,10 @@ msgid "Start transcoding"
|
||||||
msgstr "Começar conversão"
|
msgstr "Começar conversão"
|
||||||
|
|
||||||
msgid "Start typing in the search box above to find music on Grooveshark."
|
msgid "Start typing in the search box above to find music on Grooveshark."
|
||||||
msgstr ""
|
msgstr "Comece a escrever algo na caixa de busca para descobrir músicas no Grooveshark"
|
||||||
|
|
||||||
msgid "Start typing in the search box above to find music on Spotify."
|
msgid "Start typing in the search box above to find music on Spotify."
|
||||||
msgstr ""
|
msgstr "Comece a escrever algo na caixa de busca para descobrir músicas no Spotify."
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Starting %1"
|
msgid "Starting %1"
|
||||||
|
@ -2742,34 +2742,34 @@ msgid "Super high (%1 fps)"
|
||||||
msgstr "Super alto (%1 fps)"
|
msgstr "Super alto (%1 fps)"
|
||||||
|
|
||||||
msgid "Super high (60 fps)"
|
msgid "Super high (60 fps)"
|
||||||
msgstr ""
|
msgstr "Super alto (60 fps)"
|
||||||
|
|
||||||
msgid "Supported formats"
|
msgid "Supported formats"
|
||||||
msgstr "Formatos suportados"
|
msgstr "Formatos suportados"
|
||||||
|
|
||||||
msgid "Switch provider"
|
msgid "Switch provider"
|
||||||
msgstr ""
|
msgstr "Trocar provedor"
|
||||||
|
|
||||||
msgid "Syncing Spotify inbox"
|
msgid "Syncing Spotify inbox"
|
||||||
msgstr ""
|
msgstr "Sincronizando caixa de entrada do Spotify"
|
||||||
|
|
||||||
msgid "Syncing Spotify playlist"
|
msgid "Syncing Spotify playlist"
|
||||||
msgstr ""
|
msgstr "Sincronizando lista de reprodução do Spotify"
|
||||||
|
|
||||||
msgid "Syncing Spotify starred tracks"
|
msgid "Syncing Spotify starred tracks"
|
||||||
msgstr ""
|
msgstr "Sincronizando faixas favoritas do Spotify"
|
||||||
|
|
||||||
msgid "Tabs on top"
|
msgid "Tabs on top"
|
||||||
msgstr "Mostrar abas no topo"
|
msgstr "Mostrar abas no topo"
|
||||||
|
|
||||||
msgid "Tag"
|
msgid "Tag"
|
||||||
msgstr ""
|
msgstr "Etiqueta"
|
||||||
|
|
||||||
msgid "Tag fetcher"
|
msgid "Tag fetcher"
|
||||||
msgstr "Buscador de tag"
|
msgstr "Buscador de tag"
|
||||||
|
|
||||||
msgid "Tag radio"
|
msgid "Tag radio"
|
||||||
msgstr ""
|
msgstr "Etiqueta da rádio"
|
||||||
|
|
||||||
msgid "Target bitrate"
|
msgid "Target bitrate"
|
||||||
msgstr "Taxa de bits alvo"
|
msgstr "Taxa de bits alvo"
|
||||||
|
@ -2793,7 +2793,7 @@ msgstr "O diretório %1 não é válido"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "The playlist '%1' was empty or could not be loaded."
|
msgid "The playlist '%1' was empty or could not be loaded."
|
||||||
msgstr ""
|
msgstr "A lista de reprodução '%1' estava vazia ou não pôde ser carregada."
|
||||||
|
|
||||||
msgid "The second value must be greater than the first one!"
|
msgid "The second value must be greater than the first one!"
|
||||||
msgstr "O segundo valor tem que ser maior que o primeiro!"
|
msgstr "O segundo valor tem que ser maior que o primeiro!"
|
||||||
|
@ -2824,7 +2824,7 @@ msgstr "Houve problemas ao deletar algumas músicas. Os seguintes arquivos não
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"These files will be deleted from disk, are you sure you want to continue?"
|
"These files will be deleted from disk, are you sure you want to continue?"
|
||||||
msgstr ""
|
msgstr "Estes arquivos serão deletados do disco, tem certeza que deseja continuar?"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"These files will be deleted from the device, are you sure you want to "
|
"These files will be deleted from the device, are you sure you want to "
|
||||||
|
@ -2876,7 +2876,7 @@ msgstr "Esta é a primeira vez que você conecta este dispositivo. O Clementine
|
||||||
msgid ""
|
msgid ""
|
||||||
"This playlist will be removed; the action can't be undone. Are you sure you "
|
"This playlist will be removed; the action can't be undone. Are you sure you "
|
||||||
"want to continue?"
|
"want to continue?"
|
||||||
msgstr ""
|
msgstr "Esta lista de reprodução será removida; a ação não poderá ser desfeita. Você tem certeza disso?"
|
||||||
|
|
||||||
msgid "This stream is for paid subscribers only"
|
msgid "This stream is for paid subscribers only"
|
||||||
msgstr "Este canal é apenas para assinantes"
|
msgstr "Este canal é apenas para assinantes"
|
||||||
|
@ -2886,10 +2886,10 @@ msgid "This type of device is not supported: %1"
|
||||||
msgstr "Este tipo de dispositivo não é suportado: %1"
|
msgstr "Este tipo de dispositivo não é suportado: %1"
|
||||||
|
|
||||||
msgid "Timeout"
|
msgid "Timeout"
|
||||||
msgstr ""
|
msgstr "Tempo limite"
|
||||||
|
|
||||||
msgid "Timezone"
|
msgid "Timezone"
|
||||||
msgstr ""
|
msgstr "Fuso horário"
|
||||||
|
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Título"
|
msgstr "Título"
|
||||||
|
@ -2925,7 +2925,7 @@ msgid "Transcode Music"
|
||||||
msgstr "Converter Música"
|
msgstr "Converter Música"
|
||||||
|
|
||||||
msgid "Transcoder Log"
|
msgid "Transcoder Log"
|
||||||
msgstr ""
|
msgstr "Log do transcodificador"
|
||||||
|
|
||||||
msgid "Transcoding"
|
msgid "Transcoding"
|
||||||
msgstr "Conversão"
|
msgstr "Conversão"
|
||||||
|
@ -3026,7 +3026,7 @@ msgstr "Usado"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "User %1 doesn't have a Grooveshark Anywhere account"
|
msgid "User %1 doesn't have a Grooveshark Anywhere account"
|
||||||
msgstr ""
|
msgstr "Usuário %1 não possui uma conta Grooveshark Anywhere"
|
||||||
|
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Nome de usuário"
|
msgstr "Nome de usuário"
|
||||||
|
@ -3041,7 +3041,7 @@ msgid "Variable bit rate"
|
||||||
msgstr "Taxa de bits variável"
|
msgstr "Taxa de bits variável"
|
||||||
|
|
||||||
msgid "Various Artists"
|
msgid "Various Artists"
|
||||||
msgstr ""
|
msgstr "Vários artistas"
|
||||||
|
|
||||||
msgid "Various artists"
|
msgid "Various artists"
|
||||||
msgstr "Vários artistas"
|
msgstr "Vários artistas"
|
||||||
|
@ -3070,7 +3070,7 @@ msgid "Volume %1%"
|
||||||
msgstr "Volume %1%"
|
msgstr "Volume %1%"
|
||||||
|
|
||||||
msgid "Volume name"
|
msgid "Volume name"
|
||||||
msgstr ""
|
msgstr "Nome do volume"
|
||||||
|
|
||||||
msgid "Vorbis"
|
msgid "Vorbis"
|
||||||
msgstr "Vorbis"
|
msgstr "Vorbis"
|
||||||
|
@ -3096,14 +3096,14 @@ msgid ""
|
||||||
msgstr "Ao procurar por capas de discos, o Clementine primeiro procurará por arquivos que contenham uma destas palavras.\nSe não houver resultados, ele usará a maior imagem no diretório."
|
msgstr "Ao procurar por capas de discos, o Clementine primeiro procurará por arquivos que contenham uma destas palavras.\nSe não houver resultados, ele usará a maior imagem no diretório."
|
||||||
|
|
||||||
msgid "WiFi MAC Address"
|
msgid "WiFi MAC Address"
|
||||||
msgstr ""
|
msgstr "Endereço MAC do WiFi"
|
||||||
|
|
||||||
msgid "Wide band (WB)"
|
msgid "Wide band (WB)"
|
||||||
msgstr "Banda larga (WB)"
|
msgstr "Banda larga (WB)"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Wii Remote %1: actived"
|
msgid "Wii Remote %1: actived"
|
||||||
msgstr ""
|
msgstr "Wii Remote %1: ativado"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "Wii Remote %1: connected"
|
msgid "Wii Remote %1: connected"
|
||||||
|
@ -3129,13 +3129,13 @@ msgid "Wiimotedev"
|
||||||
msgstr "Wiimotedev"
|
msgstr "Wiimotedev"
|
||||||
|
|
||||||
msgid "Windows Media 128k (Premium only)"
|
msgid "Windows Media 128k (Premium only)"
|
||||||
msgstr ""
|
msgstr "Windows Media 128k (Premium)"
|
||||||
|
|
||||||
msgid "Windows Media 40k"
|
msgid "Windows Media 40k"
|
||||||
msgstr "Windows Media 40k"
|
msgstr "Windows Media 40k"
|
||||||
|
|
||||||
msgid "Windows Media 64k (Premium only)"
|
msgid "Windows Media 64k (Premium only)"
|
||||||
msgstr ""
|
msgstr "Windows Media 64k (Premium)"
|
||||||
|
|
||||||
msgid "Windows Media audio"
|
msgid "Windows Media audio"
|
||||||
msgstr "Áudio do Windows Media"
|
msgstr "Áudio do Windows Media"
|
||||||
|
@ -3174,7 +3174,7 @@ msgstr "Você pode mudar a forma de organização das músicas na biblioteca."
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can listen for free without an account, but Premium members can listen "
|
"You can listen for free without an account, but Premium members can listen "
|
||||||
"to higher quality streams without advertisements."
|
"to higher quality streams without advertisements."
|
||||||
msgstr ""
|
msgstr "Você pode ouvir de graça sem uma conta, mas os membros Premium podem ouvir transmissões de alta qualidade, sem propagandas."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can listen to Magnatune songs for free without an account. Purchasing a"
|
"You can listen to Magnatune songs for free without an account. Purchasing a"
|
||||||
|
@ -3188,7 +3188,7 @@ msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
||||||
"Clementine."
|
"Clementine."
|
||||||
msgstr ""
|
msgstr "Você pode obter os nomes das faixas de graça, mas apenas <span style=\" font-weight:600;\">assinantes</span> podem ouvir rádio da Last.fm do Clementine."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can use your Wii Remote as a remote control for Clementine. <a "
|
"You can use your Wii Remote as a remote control for Clementine. <a "
|
||||||
|
@ -3197,18 +3197,18 @@ msgid ""
|
||||||
msgstr "Você pode usar seu Wii Remote como controle remoto do Clementine. <a href=\"http://www.clementine-player.org/wiimote\">Veja a página na wiki do Clementine</a> para mais informações.\n"
|
msgstr "Você pode usar seu Wii Remote como controle remoto do Clementine. <a href=\"http://www.clementine-player.org/wiimote\">Veja a página na wiki do Clementine</a> para mais informações.\n"
|
||||||
|
|
||||||
msgid "You do not have a Grooveshark Anywhere account."
|
msgid "You do not have a Grooveshark Anywhere account."
|
||||||
msgstr ""
|
msgstr "Você não possui uma conta Grooveshark Anywhere."
|
||||||
|
|
||||||
msgid "You do not have a Spotify Premium account."
|
msgid "You do not have a Spotify Premium account."
|
||||||
msgstr ""
|
msgstr "Você não possui uma conta Spotify Premium."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You have selected a Premium-only audio type but do not have any account "
|
"You have selected a Premium-only audio type but do not have any account "
|
||||||
"details entered"
|
"details entered"
|
||||||
msgstr ""
|
msgstr "Você selecionou um tipo de áudio disponível apenas para membros Premium mas não forneceu detalhes de nenhuma conta"
|
||||||
|
|
||||||
msgid "You have selected an invalid audio type setting"
|
msgid "You have selected an invalid audio type setting"
|
||||||
msgstr ""
|
msgstr "Você selecionou um tipo de áudio inválido"
|
||||||
|
|
||||||
msgid "You love this track"
|
msgid "You love this track"
|
||||||
msgstr "Você curtiu essa faixa"
|
msgstr "Você curtiu essa faixa"
|
||||||
|
@ -3217,7 +3217,7 @@ msgid ""
|
||||||
"You need to launch System Preferences and turn on \"<span style=\" font-"
|
"You need to launch System Preferences and turn on \"<span style=\" font-"
|
||||||
"style:italic;\">Enable access for assistive devices</span>\" to use global "
|
"style:italic;\">Enable access for assistive devices</span>\" to use global "
|
||||||
"shortcuts in Clementine."
|
"shortcuts in Clementine."
|
||||||
msgstr ""
|
msgstr "Você precisa acessar as Preferências do Sistema e habilitar a opção \"<span style=\" font-style:italic;\">Ativar acesso para dispositivos assistivos</span>\" para utilizar os atalhos globais no Clementine."
|
||||||
|
|
||||||
msgid "You will need to restart Clementine if you change the language."
|
msgid "You will need to restart Clementine if you change the language."
|
||||||
msgstr "Você precisará reiniciar o Clementine se mudar o idioma."
|
msgstr "Você precisará reiniciar o Clementine se mudar o idioma."
|
||||||
|
@ -3225,17 +3225,17 @@ msgstr "Você precisará reiniciar o Clementine se mudar o idioma."
|
||||||
msgid ""
|
msgid ""
|
||||||
"You will not be able to play Last.fm radio stations as you are not a Last.fm"
|
"You will not be able to play Last.fm radio stations as you are not a Last.fm"
|
||||||
" subscriber."
|
" subscriber."
|
||||||
msgstr ""
|
msgstr "Você não poderá escutar a rádio Last.fm se você não for um assinante Last.fm"
|
||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "You're logged in as <b>%1</b>"
|
msgid "You're logged in as <b>%1</b>"
|
||||||
msgstr ""
|
msgstr "Você está logado como <b>%1</b>"
|
||||||
|
|
||||||
msgid "Your Google credentials were incorrect"
|
msgid "Your Google credentials were incorrect"
|
||||||
msgstr ""
|
msgstr "Suas credenciais da Google estão incorretas"
|
||||||
|
|
||||||
msgid "Your Last.fm credentials were incorrect"
|
msgid "Your Last.fm credentials were incorrect"
|
||||||
msgstr ""
|
msgstr "Suas credencias do Last.fm estavam incorretas"
|
||||||
|
|
||||||
msgid "Your Magnatune credentials were incorrect"
|
msgid "Your Magnatune credentials were incorrect"
|
||||||
msgstr "Suas credenciais do Magnatune estão incorretas"
|
msgstr "Suas credenciais do Magnatune estão incorretas"
|
||||||
|
@ -3244,7 +3244,7 @@ msgid ""
|
||||||
"Your gstreamer installation is missing the 'ofa' plugin. This is required "
|
"Your gstreamer installation is missing the 'ofa' plugin. This is required "
|
||||||
"for automatic tag fetching. Try installing the 'gstreamer-plugins-bad' "
|
"for automatic tag fetching. Try installing the 'gstreamer-plugins-bad' "
|
||||||
"package."
|
"package."
|
||||||
msgstr ""
|
msgstr "Seu gstreamer instalado não possui o plugin 'ofa'. Este plugin é obrigatório para obter etiquetas. Tente instalar o pacote 'gstreamer-plugins-bad'."
|
||||||
|
|
||||||
msgid "Your library is empty!"
|
msgid "Your library is empty!"
|
||||||
msgstr "Sua biblioteca está vazia!"
|
msgstr "Sua biblioteca está vazia!"
|
||||||
|
@ -3257,7 +3257,7 @@ msgid "Your scrobbles: %1"
|
||||||
msgstr "Seus scrobbles: %1"
|
msgstr "Seus scrobbles: %1"
|
||||||
|
|
||||||
msgid "Your username or password was incorrect."
|
msgid "Your username or password was incorrect."
|
||||||
msgstr ""
|
msgstr "Seu nome de usuário ou senha estava incorreta."
|
||||||
|
|
||||||
msgid "Z-A"
|
msgid "Z-A"
|
||||||
msgstr "Z-A"
|
msgstr "Z-A"
|
||||||
|
@ -3328,7 +3328,7 @@ msgid "longest first"
|
||||||
msgstr "mais longas primeiro"
|
msgstr "mais longas primeiro"
|
||||||
|
|
||||||
msgid "move songs"
|
msgid "move songs"
|
||||||
msgstr ""
|
msgstr "mover músicas"
|
||||||
|
|
||||||
msgid "newest first"
|
msgid "newest first"
|
||||||
msgstr "mais novas primeiro"
|
msgstr "mais novas primeiro"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1262,10 +1262,14 @@ void MainWindow::TrackSkipped(PlaylistItemPtr item) {
|
||||||
|
|
||||||
const qint64 seconds_left = (length - position) / kNsecPerSec;
|
const qint64 seconds_left = (length - position) / kNsecPerSec;
|
||||||
const qint64 seconds_total = length / kNsecPerSec;
|
const qint64 seconds_total = length / kNsecPerSec;
|
||||||
|
const qint64 seconds_listened = position / kNsecPerSec;
|
||||||
|
|
||||||
if (((0.05 * seconds_total > 60 && percentage < 0.98) ||
|
if (((0.05 * seconds_total > 60 && percentage < 0.98) ||
|
||||||
percentage < 0.95) &&
|
percentage < 0.95) &&
|
||||||
seconds_left > 5) { // Never count the skip if under 5 seconds left
|
(seconds_left > 5 &&
|
||||||
|
5 < seconds_listened)) { // Never count the skip if under 5 seconds
|
||||||
|
// left. Or we haven't listened for more than
|
||||||
|
// 5 seconds.
|
||||||
app_->library_backend()->IncrementSkipCountAsync(song.id(), percentage);
|
app_->library_backend()->IncrementSkipCountAsync(song.id(), percentage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue