Merge remote-tracking branch 'remote/remotecontrol'

Conflicts:
	ext/libclementine-remote/remotecontrolmessages.proto
	src/networkremote/networkremote.cpp
This commit is contained in:
Andreas 2013-01-14 21:39:01 +01:00
commit aa8d512444
14 changed files with 832 additions and 782 deletions

View File

@ -10,13 +10,18 @@ enum MsgType {
REQUEST_PLAYLIST_SONGS = 4;
CHANGE_SONG = 5;
SET_VOLUME = 6;
<<<<<<< HEAD
=======
>>>>>>> remote/remotecontrol
// Messages send by both
PLAY = 20;
PLAYPAUSE = 21;
PAUSE = 22;
STOP = 23;
NEXT = 24;
<<<<<<< HEAD
PREVIOUS = 25;
SHUFFLE_PLAYLIST = 26;
// Messages that contain the repeat or random mode
@ -24,6 +29,11 @@ enum MsgType {
REPEAT = 27;
RANDOM = 28;
=======
PREV = 25;
TOGGLE_SHUFFLE = 26;
>>>>>>> remote/remotecontrol
// Messages send from server to client
INFOS = 40;
CURRENT_METAINFOS = 41;
@ -41,7 +51,25 @@ enum EngineState {
Paused = 3;
}
<<<<<<< HEAD
// Song Metadata
=======
message Message {
optional int32 version = 1 [default=1];
optional MsgType msgType = 2 [default=UNKNOWN];
optional EngineState state = 3;
optional ClementineInfo info = 4;
optional SongMetadata currentSong = 5;
optional int32 volume = 6;
repeated Playlist playlists = 7;
}
message ClementineInfo {
optional string version = 1;
}
>>>>>>> remote/remotecontrol
message SongMetadata {
optional int32 id = 1; // unique id of the song
optional int32 index = 2; // Index of the current row of the active playlist
@ -62,11 +90,16 @@ message SongMetadata {
message Playlist {
optional int32 id = 1;
optional string name = 2;
<<<<<<< HEAD
optional int32 item_count = 3;
optional bool active = 4;
// The songs are only sent when the client requests them.
// See src/remotecontrol/outgoingdatacreator.cpp for more info
=======
optional bool active = 3;
>>>>>>> remote/remotecontrol
repeated SongMetadata songs = 10;
}

View File

@ -344,6 +344,9 @@ void Mpris2::ArtLoaded(const Song& song, const QString& art_uri) {
AddMetadata("mpris:artUrl", art_uri, &last_metadata_);
}
AddMetadata("year", song.year(), &last_metadata_);
AddMetadata("bitrate", song.bitrate(), &last_metadata_);
EmitNotification("Metadata", last_metadata_);
}

View File

@ -583,7 +583,8 @@ void SongLoader::ErrorMessageReceived(GstMessage* msg) {
free(debugs);
if (state_ == WaitingForType &&
message_str == "Could not determine type of stream.") {
message_str == gst_error_get_message(
GST_STREAM_ERROR, GST_STREAM_ERROR_TYPE_NOT_FOUND)) {
// Don't give up - assume it's a playlist and see if one of our parsers can
// read it.
state_ = WaitingForMagic;

View File

@ -57,7 +57,6 @@ void AcoustidClient::Start(int id, const QString& fingerprint, int duration_msec
QNetworkRequest req(url);
QNetworkReply* reply = network_->get(req);
connect(reply, SIGNAL(finished()), SLOT(RequestFinished()));
NewClosure(reply, SIGNAL(finished()), this,
SLOT(RequestFinished(QNetworkReply*, int)), reply, id);
requests_[id] = reply;

View File

@ -155,6 +155,7 @@ QString Chromaprinter::CreateFingerprint() {
gst_app_sink_set_callbacks(reinterpret_cast<GstAppSink*>(sink), &callbacks, this, NULL);
gst_bus_set_sync_handler(gst_pipeline_get_bus(GST_PIPELINE(pipeline_)), NULL, NULL);
g_source_remove(bus_callback_id);
gst_element_set_state(pipeline_, GST_STATE_NULL);
gst_object_unref(pipeline_);
return fingerprint;

View File

@ -91,7 +91,7 @@ void IncomingDataParser::Parse(const QByteArray& data) {
break;
case pb::remote::CHANGE_SONG: ChangeSong(&msg);
break;
case pb::remote::TOOGLE_SHUFFLE: emit ShuffleCurrent();
case pb::remote::TOGGLE_SHUFFLE: emit ShuffleCurrent();
break;
default: break;
}

View File

@ -25,53 +25,44 @@
#include <QSettings>
const char* NetworkRemote::kSettingsGroup = "NetworkRemote";
const int NetworkRemote::kDefaultServerPort = 5500;
const quint16 NetworkRemote::kDefaultServerPort = 5500;
const int NetworkRemote::kProtocolBufferVersion = 1;
NetworkRemote::NetworkRemote(Application* app)
: app_(app)
{
signals_connected_ = false;
NetworkRemote::NetworkRemote(Application* app, QObject* parent)
: QObject(parent),
signals_connected_(false),
app_(app) {
}
NetworkRemote::~NetworkRemote() {
StopServer();
delete incoming_data_parser_;
delete outgoing_data_creator_;
}
void NetworkRemote::ReadSettings() {
QSettings s;
s.beginGroup(NetworkRemote::kSettingsGroup);
use_remote_ = s.value("use_remote").toBool();
port_ = s.value("port").toInt();
use_remote_ = s.value("use_remote", false).toBool();
port_ = s.value("port", kDefaultServerPort).toInt();
// Use only non public ips must be true be default
if (s.contains("only_non_public_ip")) {
only_non_public_ip_ = s.value("only_non_public_ip").toBool();
} else {
only_non_public_ip_ = true;
}
only_non_public_ip_ = s.value("only_non_public_ip", true).toBool();
if (port_ == 0) {
port_ = kDefaultServerPort;
}
s.endGroup();
}
void NetworkRemote::SetupServer() {
server_ = new QTcpServer();
server_ipv6_ = new QTcpServer();
incoming_data_parser_ = new IncomingDataParser(app_);
outgoing_data_creator_ = new OutgoingDataCreator(app_);
server_.reset(new QTcpServer());
server_ipv6_.reset(new QTcpServer());
incoming_data_parser_.reset(new IncomingDataParser(app_));
outgoing_data_creator_.reset(new OutgoingDataCreator(app_));
outgoing_data_creator_->SetClients(&clients_);
connect(app_->current_art_loader(),
SIGNAL(ArtLoaded(const Song&, const QString&, const QImage&)),
outgoing_data_creator_,
outgoing_data_creator_.get(),
SLOT(CurrentSongChanged(const Song&, const QString&, const QImage&)));
}
@ -89,8 +80,8 @@ void NetworkRemote::StartServer() {
qLog(Info) << "Starting network remote";
connect(server_, SIGNAL(newConnection()), this, SLOT(AcceptConnection()));
connect(server_ipv6_, SIGNAL(newConnection()), this, SLOT(AcceptConnection()));
connect(server_.get(), SIGNAL(newConnection()), this, SLOT(AcceptConnection()));
connect(server_ipv6_.get(), SIGNAL(newConnection()), this, SLOT(AcceptConnection()));
server_->listen(QHostAddress::Any, port_);
server_ipv6_->listen(QHostAddress::AnyIPv6, port_);
@ -116,26 +107,27 @@ void NetworkRemote::AcceptConnection() {
signals_connected_ = true;
// Setting up the signals, but only once
connect(incoming_data_parser_, SIGNAL(SendClementineInfos()),
outgoing_data_creator_, SLOT(SendClementineInfos()));
connect(incoming_data_parser_, SIGNAL(SendFirstData()),
outgoing_data_creator_, SLOT(SendFirstData()));
connect(incoming_data_parser_, SIGNAL(SendAllPlaylists()),
outgoing_data_creator_, SLOT(SendAllPlaylists()));
connect(incoming_data_parser_, SIGNAL(SendPlaylistSongs(int)),
outgoing_data_creator_, SLOT(SendPlaylistSongs(int)));
connect(incoming_data_parser_.get(), SIGNAL(SendClementineInfos()),
outgoing_data_creator_.get(), SLOT(SendClementineInfos()));
connect(incoming_data_parser_.get(), SIGNAL(SendFirstData()),
outgoing_data_creator_.get(), SLOT(SendFirstData()));
connect(incoming_data_parser_.get(), SIGNAL(SendAllPlaylists()),
outgoing_data_creator_.get(), SLOT(SendAllPlaylists()));
connect(incoming_data_parser_.get(), SIGNAL(SendPlaylistSongs(int)),
outgoing_data_creator_.get(), SLOT(SendPlaylistSongs(int)));
connect(app_->playlist_manager(), SIGNAL(ActiveChanged(Playlist*)),
outgoing_data_creator_, SLOT(ActiveChanged(Playlist*)));
outgoing_data_creator_.get(), SLOT(ActiveChanged(Playlist*)));
connect(app_->playlist_manager(), SIGNAL(PlaylistChanged(Playlist*)),
outgoing_data_creator_, SLOT(PlaylistChanged(Playlist*)));
outgoing_data_creator_.get(), SLOT(PlaylistChanged(Playlist*)));
connect(app_->player(), SIGNAL(VolumeChanged(int)), outgoing_data_creator_,
connect(app_->player(), SIGNAL(VolumeChanged(int)), outgoing_data_creator_.get(),
SLOT(VolumeChanged(int)));
connect(app_->player()->engine(), SIGNAL(StateChanged(Engine::State)),
outgoing_data_creator_, SLOT(StateChanged(Engine::State)));
outgoing_data_creator_.get(), SLOT(StateChanged(Engine::State)));
}
<<<<<<< HEAD
if (server_->hasPendingConnections()) {
QTcpSocket* client_socket = server_->nextPendingConnection();
// Check if our ip is in private scope
@ -148,17 +140,33 @@ void NetworkRemote::AcceptConnection() {
// TODO: Check private ips for ipv6
}
=======
QTcpServer* server = qobject_cast<QTcpServer*>(sender());
QTcpSocket* client_socket = server->nextPendingConnection();
// Check if our ip is in private scope
if (only_non_public_ip_ && !IpIsPrivate(client_socket->peerAddress())) {
qLog(Info) << "Got a connection from public ip" <<
client_socket->peerAddress().toString();
>>>>>>> remote/remotecontrol
} else {
// No checks on ipv6
CreateRemoteClient(server_ipv6_->nextPendingConnection());
CreateRemoteClient(client_socket);
}
}
bool NetworkRemote::IpIsPrivate(const QHostAddress& address) {
return
<<<<<<< HEAD
address.isInSubnet(QHostAddress::parseSubnet("127.0.0.1/8")) ||
// Link Local v6
address.isInSubnet(QHostAddress::parseSubnet("::1/128")) ||
=======
// Link Local v4
address.isInSubnet(QHostAddress::parseSubnet("127.0.0.1/8")) ||
// Link Local v6
address.isInSubnet(QHostAddress::parseSubnet("::1/128")) ||
address.isInSubnet(QHostAddress::parseSubnet("fe80::/10"));
// Private v4 range
>>>>>>> remote/remotecontrol
address.isInSubnet(QHostAddress::parseSubnet("192.168.0.0/16")) ||
address.isInSubnet(QHostAddress::parseSubnet("172.16.0.0/12")) ||
address.isInSubnet(QHostAddress::parseSubnet("10.0.0.0/8")) ||
@ -174,6 +182,6 @@ void NetworkRemote::CreateRemoteClient(QTcpSocket *client_socket) {
// Connect the signal to parse data
connect(client, SIGNAL(Parse(QByteArray)),
incoming_data_parser_, SLOT(Parse(QByteArray)));
incoming_data_parser_.get(), SLOT(Parse(QByteArray)));
}
}

View File

@ -1,6 +1,8 @@
#ifndef NETWORKREMOTE_H
#define NETWORKREMOTE_H
#include <boost/scoped_ptr.hpp>
#include <QTcpServer>
#include <QTcpSocket>
@ -10,14 +12,14 @@
#include "outgoingdatacreator.h"
#include "remoteclient.h"
class NetworkRemote : public QThread {
class NetworkRemote : public QObject {
Q_OBJECT
public:
static const char* kSettingsGroup;
static const int kDefaultServerPort;
static const quint16 kDefaultServerPort;
static const int kProtocolBufferVersion;
NetworkRemote(Application* app);
explicit NetworkRemote(Application* app, QObject* parent = 0);
~NetworkRemote();
public slots:
@ -27,11 +29,12 @@ public slots:
void AcceptConnection();
private:
QTcpServer* server_;
QTcpServer* server_ipv6_;
IncomingDataParser* incoming_data_parser_;
OutgoingDataCreator* outgoing_data_creator_;
int port_;
boost::scoped_ptr<QTcpServer> server_;
boost::scoped_ptr<QTcpServer> server_ipv6_;
boost::scoped_ptr<IncomingDataParser> incoming_data_parser_;
boost::scoped_ptr<OutgoingDataCreator> outgoing_data_creator_;
quint16 port_;
bool use_remote_;
bool only_non_public_ip_;
bool signals_connected_;

View File

@ -69,8 +69,8 @@ void OutgoingDataCreator::SendClementineInfos() {
QString version = QString("%1 %2").arg(QCoreApplication::applicationName(),
QCoreApplication::applicationVersion());
pb::remote::ClementineInfos *infos = msg.mutable_infos();
infos->set_version(version.toAscii());
pb::remote::ClementineInfo *info = msg.mutable_info();
info->set_version(version.toAscii());
SendDataToClients(&msg);
}
@ -107,8 +107,8 @@ void OutgoingDataCreator::SendAllPlaylists() {
pb::remote::Playlist* playlist = msg.add_playlists();
playlist->set_name(playlist_name.toStdString());
playlist->set_id(p->id());
playlist->set_item_count(p->GetAllSongs().size());
playlist->set_active((p->id() == active_playlist));
// TODO: Fill in the song metadata here.
}
SendDataToClients(&msg);
@ -217,7 +217,6 @@ void OutgoingDataCreator::SendPlaylistSongs(int id) {
// Create a new playlist
pb::remote::Playlist* pb_playlist = msg.add_playlists();
pb_playlist->set_id(id);
pb_playlist->set_item_count(playlist->GetAllSongs().size());
// Send all songs
int index = 0;

View File

@ -4,14 +4,15 @@
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
# <isolus@yopmail.com>, 2013.
# <mikel@hamahiru.org>, 2012.
# Mikel Iturbe Urretxa <mikel@hamahiru.org>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/clementine-player/issues/list\n"
"PO-Revision-Date: 2012-11-30 11:09+0000\n"
"Last-Translator: Clementine Buildbot <clementinebuildbot@davidsansome.com>\n"
"PO-Revision-Date: 2013-01-04 17:52+0000\n"
"Last-Translator: isolus <isolus@yopmail.com>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: eu\n"
@ -19,7 +20,7 @@ msgstr ""
#: ../bin/src/ui_podcastsettingspage.h:246
msgid " days"
msgstr ""
msgstr "egun"
#: ../bin/src/ui_transcoderoptionsaac.h:130
#: ../bin/src/ui_transcoderoptionsmp3.h:195
@ -229,7 +230,7 @@ msgstr "0:00:00"
#: ../bin/src/ui_appearancesettingspage.h:284
msgid "0px"
msgstr ""
msgstr "0px"
#: core/utilities.cpp:106
msgid "1 day"
@ -341,7 +342,7 @@ msgstr "Wiiremote-a aktibatu/desaktibatu"
#: podcasts/addpodcastdialog.cpp:56
msgid "Add Podcast"
msgstr ""
msgstr "Podcast-a gehitu"
#: ../bin/src/ui_addstreamdialog.h:113
msgid "Add Stream"
@ -389,11 +390,11 @@ msgstr "Gehitu karpeta berria..."
#: ../bin/src/ui_addpodcastdialog.h:179
msgid "Add podcast"
msgstr ""
msgstr "Podcast-a gehitu"
#: podcasts/podcastservice.cpp:257 ../bin/src/ui_mainwindow.h:716
msgid "Add podcast..."
msgstr ""
msgstr "Podcast-a gehitu..."
#: smartplaylists/searchtermwidget.cpp:341
msgid "Add search term"
@ -518,7 +519,7 @@ msgstr "Taldekatze aurreratua..."
#: ../bin/src/ui_podcastsettingspage.h:247
msgid "After "
msgstr ""
msgstr "Ondoren"
#: ../bin/src/ui_organisedialog.h:190
msgid "After copying..."
@ -642,7 +643,7 @@ msgstr "Eta:"
#: moodbar/moodbarrenderer.cpp:156
msgid "Angry"
msgstr ""
msgstr "Haserre"
#: ../bin/src/ui_songinfosettingspage.h:180
#: ../bin/src/ui_appearancesettingspage.h:266
@ -718,7 +719,7 @@ msgstr "Autentifikazioak huts egin du..."
#: ../bin/src/ui_podcastinfowidget.h:192
msgid "Author"
msgstr ""
msgstr "Egilea"
#: ui/about.cpp:64
msgid "Authors"
@ -750,7 +751,7 @@ msgstr "Batez besteko irudi-tamaina"
#: podcasts/addpodcastdialog.cpp:80
msgid "BBC Podcasts"
msgstr ""
msgstr "BBC-ko podcast-ak"
#: playlist/playlist.cpp:1209 ui/organisedialog.cpp:62
#: ../bin/src/ui_edittagdialog.h:638
@ -775,7 +776,7 @@ msgstr "Atzeko planoko opakotasuna"
#: core/database.cpp:672
msgid "Backing up database"
msgstr ""
msgstr "Datu-basearen babeskopia burutzen"
#: ../bin/src/ui_mainwindow.h:659
msgid "Ban"
@ -948,7 +949,7 @@ msgstr "Klasikoa"
#: ../bin/src/ui_podcastsettingspage.h:243
msgid "Cleaning up"
msgstr ""
msgstr "Garbiketa"
#: transcoder/transcodedialog.cpp:60 widgets/lineedit.cpp:41
#: ../bin/src/ui_queuemanager.h:139
@ -986,15 +987,15 @@ msgstr "Clementine-k automatikoki bihurtu dezake gailura kopiatzen den musika ho
#: ../bin/src/ui_dropboxsettingspage.h:104
msgid "Clementine can play music that you have uploaded to Dropbox"
msgstr ""
msgstr "Clementine-k Dropbox-era igo duzun musika erreproduzitu dezake"
#: ../bin/src/ui_googledrivesettingspage.h:104
msgid "Clementine can play music that you have uploaded to Google Drive"
msgstr ""
msgstr "Clementine-k Google Drive-ra igo duzun musika erreproduzitu dezake"
#: ../bin/src/ui_ubuntuonesettingspage.h:111
msgid "Clementine can play music that you have uploaded to Ubuntu One"
msgstr ""
msgstr "Clementine-k Ubuntu One-ra igo duzun musika erreproduzitu dezake"
#: ../bin/src/ui_notificationssettingspage.h:403
msgid "Clementine can show a message when the track changes."
@ -1030,7 +1031,7 @@ msgstr "Clementine-k ezin izan du fitxategi honetarako emaitzak erakutsi"
#: ../bin/src/ui_globalsearchview.h:210
msgid "Clementine will find music in:"
msgstr ""
msgstr "Hemen bilatuko du musika Clementine-k:"
#: library/libraryview.cpp:349
msgid "Click here to add some music"
@ -1053,7 +1054,7 @@ msgstr "Itxi"
#: playlist/playlisttabbar.cpp:47
msgid "Close playlist"
msgstr ""
msgstr "Erreprodukzio-zerrenda itxi"
#: visualisations/visualisationcontainer.cpp:127
msgid "Close visualization"
@ -1105,7 +1106,7 @@ msgstr "Konpositorea"
#: internet/searchboxwidget.cpp:42
#, qt-format
msgid "Configure %1..."
msgstr ""
msgstr "%1 konfiguratu..."
#: internet/groovesharkservice.cpp:550
msgid "Configure Grooveshark..."
@ -1129,7 +1130,7 @@ msgstr "Konfiguratu Spotify..."
#: globalsearch/globalsearchview.cpp:138 globalsearch/globalsearchview.cpp:430
msgid "Configure global search..."
msgstr ""
msgstr "Bilaketa globala konfiguratu..."
#: ui/mainwindow.cpp:470
msgid "Configure library..."
@ -1137,7 +1138,7 @@ msgstr "Konfiguratu bilduma..."
#: podcasts/addpodcastdialog.cpp:67 podcasts/podcastservice.cpp:288
msgid "Configure podcasts..."
msgstr ""
msgstr "Podcast-ak konfiguratu"
#: internet/digitallyimportedservicebase.cpp:186
#: ../bin/src/ui_globalsearchsettingspage.h:150
@ -1159,7 +1160,7 @@ msgstr "Konektatu Spotify-ra"
#: ../bin/src/ui_console.h:80 ../bin/src/ui_mainwindow.h:689
msgid "Console"
msgstr ""
msgstr "Kontsola"
#: ../bin/src/ui_transcoderoptionsmp3.h:196
msgid "Constant bitrate"
@ -1193,7 +1194,7 @@ msgstr "iPod-aren datu-basea kopiatzen"
#: ../bin/src/ui_podcastinfowidget.h:194
msgid "Copyright"
msgstr ""
msgstr "Copyright"
#: transcoder/transcoder.cpp:64
#, qt-format
@ -1375,7 +1376,7 @@ msgid ""
"Database corruption detected. Please read https://code.google.com/p"
"/clementine-player/wiki/DatabaseCorruption for instructions on how to "
"recover your database"
msgstr ""
msgstr "Datu-basea usteldurik dago. Datu-basea nola berreskuratu daitekeen jakiteko, irakurri mesedez https://code.google.com/p/clementine-player/wiki/DatabaseCorruption."
#: playlist/playlist.cpp:1217 ../bin/src/ui_edittagdialog.h:649
msgid "Date created"
@ -1416,7 +1417,7 @@ msgstr "Bistaratzeen arteko atzerapena"
#: playlist/playlistlistcontainer.cpp:75
#: ../bin/src/ui_playlistlistcontainer.h:122
msgid "Delete"
msgstr ""
msgstr "Ezabatu"
#: internet/groovesharkservice.cpp:521 internet/groovesharkservice.cpp:1289
msgid "Delete Grooveshark playlist"
@ -1424,7 +1425,7 @@ msgstr "Ezabatu Grooveshark-eko erreprodukzio-zerrenda"
#: podcasts/podcastservice.cpp:274
msgid "Delete downloaded data"
msgstr ""
msgstr "Ezabatu deskargatutako datuak"
#: devices/deviceview.cpp:388 library/libraryview.cpp:608
#: ui/mainwindow.cpp:1824 widgets/fileview.cpp:186
@ -1446,7 +1447,7 @@ msgstr ""
#: playlist/playlistlistcontainer.cpp:295
msgid "Delete playlists"
msgstr ""
msgstr "Ezabatu erreprodukzio-zerrenda"
#: ui/equalizer.cpp:190 ../bin/src/ui_equalizer.h:124
msgid "Delete preset"
@ -1531,7 +1532,7 @@ msgstr "Iraupena desgaitu"
#: ../bin/src/ui_appearancesettingspage.h:289
msgid "Disable moodbar generation"
msgstr ""
msgstr "Aldarte-barren sortzea desgaitu"
#: globalsearch/searchproviderstatuswidget.cpp:47
#: ../bin/src/ui_notificationssettingspage.h:405
@ -1632,7 +1633,7 @@ msgstr "Deskargatu..."
#: podcasts/podcastservice.cpp:195
#, qt-format
msgid "Downloading (%1%)..."
msgstr ""
msgstr "Deskargatzen (%%1)..."
#: internet/icecastservice.cpp:101
msgid "Downloading Icecast directory"
@ -1664,7 +1665,7 @@ msgstr "Unitate-letra"
#: ../bin/src/ui_dropboxsettingspage.h:103
msgid "Dropbox"
msgstr ""
msgstr "Dropbox"
#: ../bin/src/ui_dynamicplaylistcontrols.h:109
msgid "Dynamic mode is on"
@ -1744,7 +1745,7 @@ msgstr "Kodetze modua"
#: ../bin/src/ui_addpodcastbyurl.h:76
msgid "Enter a URL"
msgstr ""
msgstr "URL bat sartu"
#: ../bin/src/ui_coverfromurldialog.h:103
msgid "Enter a URL to download a cover from the Internet:"
@ -1783,7 +1784,7 @@ msgstr "Sartu interneteko irratiko jarioaren URLa:"
#: playlist/playlistlistcontainer.cpp:183
msgid "Enter the name of the folder"
msgstr ""
msgstr "Sartu karpetaren izena"
#: ../bin/src/ui_libraryfilterwidget.h:87
msgid "Entire collection"
@ -1848,31 +1849,31 @@ msgstr "Inoiz erreproduzitutakoak"
#: ../bin/src/ui_podcastsettingspage.h:232
msgid "Every 10 minutes"
msgstr ""
msgstr "10 minuturo"
#: ../bin/src/ui_podcastsettingspage.h:238
msgid "Every 12 hours"
msgstr ""
msgstr "12 orduro"
#: ../bin/src/ui_podcastsettingspage.h:236
msgid "Every 2 hours"
msgstr ""
msgstr "2 orduro"
#: ../bin/src/ui_podcastsettingspage.h:233
msgid "Every 20 minutes"
msgstr ""
msgstr "20 minuturo"
#: ../bin/src/ui_podcastsettingspage.h:234
msgid "Every 30 minutes"
msgstr ""
msgstr "30 minuturo"
#: ../bin/src/ui_podcastsettingspage.h:237
msgid "Every 6 hours"
msgstr ""
msgstr "6 orduro"
#: ../bin/src/ui_podcastsettingspage.h:235
msgid "Every hour"
msgstr ""
msgstr "Orduro"
#: ../bin/src/ui_playbacksettingspage.h:270
msgid "Except between tracks on the same album or in the same CUE sheet"
@ -1931,21 +1932,21 @@ msgstr "Iraungitzearen iraupena"
#: podcasts/gpoddertoptagspage.cpp:76
msgid "Failed to fetch directory"
msgstr ""
msgstr "Direktorioa ezin izan da eskuratu"
#: podcasts/gpoddersearchpage.cpp:76 podcasts/gpoddertoptagsmodel.cpp:109
#: podcasts/itunessearchpage.cpp:66 podcasts/itunessearchpage.cpp:75
#: podcasts/itunessearchpage.cpp:82
msgid "Failed to fetch podcasts"
msgstr ""
msgstr "Podcast-ak ezin izan dira lortu"
#: podcasts/addpodcastbyurl.cpp:70 podcasts/fixedopmlpage.cpp:54
msgid "Failed to load podcast"
msgstr ""
msgstr "Podcast-a ezin izan da kargatu"
#: podcasts/podcasturlloader.cpp:167
msgid "Failed to parse the XML for this RSS feed"
msgstr ""
msgstr "RSS kanal honen XML ezin izan da parseatu"
#: ../bin/src/ui_transcoderoptionsflac.h:82
#: ../bin/src/ui_transcoderoptionsmp3.h:200
@ -2110,7 +2111,7 @@ msgstr "Lagunak"
#: moodbar/moodbarrenderer.cpp:157
msgid "Frozen"
msgstr ""
msgstr "Izoztuta"
#: ui/equalizer.cpp:112
msgid "Full Bass"
@ -2168,7 +2169,7 @@ msgstr "Izendatu:"
#: ../bin/src/ui_addpodcastbyurl.h:78
msgid "Go"
msgstr ""
msgstr "Joan"
#: ../bin/src/ui_mainwindow.h:704
msgid "Go to next playlist tab"
@ -2180,7 +2181,7 @@ msgstr "Aurreko erreprodukzio-zerrendara joan"
#: ../bin/src/ui_googledrivesettingspage.h:103
msgid "Google Drive"
msgstr ""
msgstr "Google Drive"
#: covers/coversearchstatisticsdialog.cpp:54 ui/albumcovermanager.cpp:413
#: ../bin/src/ui_coversearchstatisticsdialog.h:76
@ -2246,7 +2247,7 @@ msgstr "Taldekatu generoa/artista/albumaren arabera"
#: podcasts/podcasturlloader.cpp:196
msgid "HTML page did not contain any RSS feeds"
msgstr ""
msgstr "HTML orriak ez du inongo RSS kanalik"
#: ../bin/src/ui_networkproxysettingspage.h:163
msgid "HTTP proxy"
@ -2254,7 +2255,7 @@ msgstr "HTTP proxy-a"
#: moodbar/moodbarrenderer.cpp:158
msgid "Happy"
msgstr ""
msgstr "Pozik"
#: ../bin/src/ui_deviceproperties.h:371
msgid "Hardware information"
@ -2310,7 +2311,7 @@ msgstr "Aurrera jarraitzen bada, gailua astiro arituko da eta bertara kopiatutak
#: ../bin/src/ui_addpodcastbyurl.h:77
msgid "If you know the URL of a podcast, enter it below and press Go."
msgstr ""
msgstr "Podcast-aren URLa jakinez gero, sartu eta sakatu joan"
#: ../bin/src/ui_organisedialog.h:204
msgid "Ignore \"The\" in artist names"
@ -2327,12 +2328,12 @@ msgstr "Irudiak (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)"
#: core/utilities.cpp:143
#, qt-format
msgid "In %1 days"
msgstr ""
msgstr "%1 egunetan"
#: core/utilities.cpp:147
#, qt-format
msgid "In %1 weeks"
msgstr ""
msgstr "%1 asteetan"
#: ../bin/src/ui_wizardfinishpage.h:86
msgid ""
@ -2363,7 +2364,7 @@ msgstr "Bolumena igo"
#: internet/cloudfileservice.cpp:135
#, qt-format
msgid "Indexing %1"
msgstr ""
msgstr "Indexatzen: %1"
#: ../bin/src/ui_deviceproperties.h:373 wiimotedev/wiimotesettingspage.cpp:124
msgid "Information"
@ -2379,7 +2380,7 @@ msgstr "Instalatuta"
#: core/database.cpp:611
msgid "Integrity check"
msgstr ""
msgstr "Osotasunaren egiaztapena"
#: ui/mainwindow.cpp:235
msgid "Internet"
@ -2694,7 +2695,7 @@ msgstr "Saio-hasiera"
#: podcasts/podcastsettingspage.cpp:119
msgid "Login failed"
msgstr ""
msgstr "Saio hasieraren huts egitea"
#: ../bin/src/ui_transcoderoptionsaac.h:137
msgid "Long term prediction profile (LTP)"
@ -2782,7 +2783,7 @@ msgstr "Eskuzko proxy konfigurazioa"
#: ../bin/src/ui_podcastsettingspage.h:231
#: ../bin/src/ui_podcastsettingspage.h:245
msgid "Manually"
msgstr ""
msgstr "Eskuz"
#: devices/deviceproperties.cpp:153
msgid "Manufacturer"
@ -2790,11 +2791,11 @@ msgstr "Fabrikatzailea"
#: podcasts/podcastservice.cpp:284
msgid "Mark as listened"
msgstr ""
msgstr "Entzunda bezala markatu"
#: podcasts/podcastservice.cpp:282
msgid "Mark as new"
msgstr ""
msgstr "Berri bezala markatu"
#: ../bin/src/ui_querysearchpage.h:116
msgid "Match every search term (AND)"
@ -2848,16 +2849,16 @@ msgstr "Hilabete"
#: playlist/playlist.cpp:1221
msgid "Mood"
msgstr ""
msgstr "Aldarte"
#: ../bin/src/ui_appearancesettingspage.h:287
#: moodbar/moodbarproxystyle.cpp:342
msgid "Moodbar style"
msgstr ""
msgstr "Aldarte-barraren itxura"
#: ../bin/src/ui_appearancesettingspage.h:285
msgid "Moodbars"
msgstr ""
msgstr "Aldarte-barra"
#: library/library.cpp:72
msgid "Most played"
@ -2920,7 +2921,7 @@ msgstr "Nire Mix irratia"
#: internet/groovesharkservice.cpp:606
msgid "My Music"
msgstr ""
msgstr "Nire Musika"
#: internet/lastfmservice.cpp:202
msgid "My Neighborhood"
@ -2979,7 +2980,7 @@ msgstr "Inoiz ez hasi erreproduzitzen"
#: playlist/playlistlistcontainer.cpp:182
#: ../bin/src/ui_playlistlistcontainer.h:119
msgid "New folder"
msgstr ""
msgstr "Karpeta berria"
#: ui/mainwindow.cpp:1389 ../bin/src/ui_mainwindow.h:698
msgid "New playlist"
@ -3012,7 +3013,7 @@ msgstr "Hurrengo pista"
#: core/utilities.cpp:145
msgid "Next week"
msgstr ""
msgstr "Hurrengo astea"
#: analyzers/analyzercontainer.cpp:80
msgid "No analyzer"
@ -3046,7 +3047,7 @@ msgstr "Aukeraturiko abestietako bat ere ez zen aproposa gailu batera kopiatzeko
#: moodbar/moodbarrenderer.cpp:155
msgid "Normal"
msgstr ""
msgstr "Arrunta"
#: ../bin/src/ui_transcoderoptionsaac.h:144
msgid "Normal block type"
@ -3136,11 +3137,11 @@ msgstr "Ireki &audio CDa..."
#: podcasts/addpodcastdialog.cpp:230
msgid "Open OPML file"
msgstr ""
msgstr "OPML fitxategia ireki"
#: podcasts/addpodcastdialog.cpp:73
msgid "Open OPML file..."
msgstr ""
msgstr "OPML fitxategia ireki"
#: ../bin/src/ui_deviceproperties.h:382
msgid "Open device"
@ -3152,7 +3153,7 @@ msgstr "Ireki fitxategia..."
#: internet/googledriveservice.cpp:184
msgid "Open in Google Drive"
msgstr ""
msgstr "Google Drive-n iriki"
#: devices/deviceview.cpp:215 globalsearch/globalsearchview.cpp:421
#: internet/internetservice.cpp:76 library/libraryview.cpp:371
@ -3219,7 +3220,7 @@ msgstr "Existitzen diren fitxategiak gainidatzi"
#: ../bin/src/ui_podcastinfowidget.h:195
msgid "Owner"
msgstr ""
msgstr "Jabea"
#: internet/jamendoservice.cpp:213
msgid "Parsing Jamendo catalogue"
@ -3333,7 +3334,7 @@ msgstr "Erreprodukzio-zerrendak"
#: ../data/oauthsuccess.html:36
msgid "Please close your browser and return to Clementine."
msgstr ""
msgstr "Mesedez, itxi nabigatzailea eta itzuli Clementine-ra."
#: ../bin/src/ui_spotifysettingspage.h:215
msgid "Plugin status:"
@ -3341,7 +3342,7 @@ msgstr "Pluginaren egoera:"
#: podcasts/podcastservice.cpp:110 ../bin/src/ui_podcastsettingspage.h:226
msgid "Podcasts"
msgstr ""
msgstr "Podcast-ak"
#: ui/equalizer.cpp:119
msgid "Pop"
@ -3580,7 +3581,7 @@ msgstr "Kendu ekintza"
#: ../bin/src/ui_mainwindow.h:717
msgid "Remove duplicates from playlist"
msgstr ""
msgstr "Abesti bikoiztuak kendu erreprodukzio-zerrendatik "
#: ../bin/src/ui_librarysettingspage.h:160
msgid "Remove folder"
@ -3695,7 +3696,7 @@ msgstr "Grooveshark-eko erreprodukzio-zerrendak eskuratzen"
#: ../data/oauthsuccess.html:3
msgid "Return to Clementine"
msgstr ""
msgstr "Clementine-ra itzuli"
#: ui/equalizer.cpp:121
msgid "Rock"
@ -3703,7 +3704,7 @@ msgstr "Rock"
#: ../bin/src/ui_console.h:81
msgid "Run"
msgstr ""
msgstr "Exekutatu"
#: ../bin/src/ui_networkproxysettingspage.h:164
msgid "SOCKS proxy"
@ -3727,7 +3728,7 @@ msgstr "Lagintze-tasa"
#: ../bin/src/ui_appearancesettingspage.h:288
msgid "Save .mood files in your music library"
msgstr ""
msgstr ".mood fitxategiak musika-bilduman gorde"
#: ui/albumcoverchoicecontroller.cpp:114
msgid "Save album cover"
@ -3801,11 +3802,11 @@ msgstr "Bilatu edozer"
#: ../bin/src/ui_gpoddersearchpage.h:76
msgid "Search gpodder.net"
msgstr ""
msgstr "gpodder.net-en bilatu"
#: ../bin/src/ui_itunessearchpage.h:76
msgid "Search iTunes"
msgstr ""
msgstr "iTunes-en bilatu"
#: ../bin/src/ui_querysearchpage.h:113
msgid "Search mode"
@ -3818,7 +3819,7 @@ msgstr "Bilaketa-aukerak"
#: internet/groovesharkservice.cpp:567 internet/soundcloudservice.cpp:104
#: internet/spotifyservice.cpp:347
msgid "Search results"
msgstr ""
msgstr "Bilaketaren emaitzak"
#: smartplaylists/querywizardplugin.cpp:152
#: ../bin/src/ui_querysearchpage.h:120
@ -3935,7 +3936,7 @@ msgstr "Erakutsi oraingo pistaren animazio distiratsua"
#: ../bin/src/ui_appearancesettingspage.h:286
msgid "Show a moodbar in the track progress bar"
msgstr ""
msgstr "Aldarte-barra erakutsi aurrerapen barran"
#: ../bin/src/ui_notificationssettingspage.h:406
msgid "Show a native desktop notification"
@ -3992,7 +3993,7 @@ msgstr "Erakutsi hainbat artista"
#: moodbar/moodbarproxystyle.cpp:337
msgid "Show moodbar"
msgstr ""
msgstr "Aldarte-barra erakutsi"
#: ui/mainwindow.cpp:459
msgid "Show only duplicates"
@ -4004,7 +4005,7 @@ msgstr "Erakutsi etiketa gabeak bakarrik"
#: ../bin/src/ui_globalsearchsettingspage.h:153
msgid "Show search suggestions"
msgstr ""
msgstr "Bilaketaren iradokizunak erakutsi"
#: ../bin/src/ui_lastfmsettingspage.h:157
msgid "Show the \"love\" and \"ban\" buttons"
@ -4048,7 +4049,7 @@ msgstr "Album honetako pistak nahastu"
#: ../bin/src/ui_podcastsettingspage.h:252
msgid "Sign in"
msgstr ""
msgstr "Saioa hasi"
#: ../bin/src/ui_loginstatewidget.h:173
msgid "Sign out"
@ -4241,11 +4242,11 @@ msgstr "Harpidetutako erreprodukzio-zerrenda"
#: ../bin/src/ui_podcastinfowidget.h:196
msgid "Subscribers"
msgstr ""
msgstr "Harpidetzak"
#: ../data/oauthsuccess.html:34
msgid "Success!"
msgstr ""
msgstr "Eginda!"
#: transcoder/transcoder.cpp:200
#, qt-format
@ -4269,7 +4270,7 @@ msgstr "Oso altua (%1 fps)"
#: visualisations/visualisationcontainer.cpp:120
msgid "Super high (2048x2048)"
msgstr ""
msgstr "Oso altua (2048x2048)"
#: ../bin/src/ui_deviceproperties.h:374
msgid "Supported formats"
@ -4289,7 +4290,7 @@ msgstr "Spotify-ko pista izardunak sinkronizatzen"
#: moodbar/moodbarrenderer.cpp:159
msgid "System colors"
msgstr ""
msgstr "Sistemako koloreak"
#: widgets/fancytabwidget.cpp:654
msgid "Tabs on top"
@ -4508,7 +4509,7 @@ msgstr "Txandakatu pantailako bistaratze itxurosoaren ikuspena"
#: core/utilities.cpp:141
msgid "Tomorrow"
msgstr ""
msgstr "Bihar"
#: podcasts/podcasturlloader.cpp:116
msgid "Too many redirects"
@ -4516,7 +4517,7 @@ msgstr ""
#: internet/spotifyservice.cpp:366
msgid "Top tracks"
msgstr ""
msgstr "Pista gogokoenak"
#: covers/coversearchstatisticsdialog.cpp:71
msgid "Total bytes transferred"
@ -4574,7 +4575,7 @@ msgstr "URLa(k)"
#: ../bin/src/ui_ubuntuonesettingspage.h:110
msgid "Ubuntu One"
msgstr ""
msgstr "Ubuntu One"
#: ../bin/src/ui_transcoderoptionsspeex.h:228
msgid "Ultra wide band (UWB)"
@ -4595,7 +4596,7 @@ msgstr "Ezezaguna"
#: podcasts/podcasturlloader.cpp:198
msgid "Unknown content-type"
msgstr ""
msgstr "Eduki-mota ezezaguna"
#: internet/digitallyimportedclient.cpp:69 internet/lastfmservice.cpp:448
msgid "Unknown error"
@ -4607,11 +4608,11 @@ msgstr "Ezarri gabeko azala"
#: podcasts/addpodcastdialog.cpp:61 podcasts/podcastservice.cpp:277
msgid "Unsubscribe"
msgstr ""
msgstr "Harpidetza kendu"
#: songinfo/songkickconcerts.cpp:168
msgid "Upcoming Concerts"
msgstr ""
msgstr "Hurrengo Kontzertuak"
#: internet/groovesharkservice.cpp:1198
msgid "Update Grooveshark playlist"
@ -4619,7 +4620,7 @@ msgstr "Grooveshark erreprodukzio-zerrenda eguneratu"
#: podcasts/podcastservice.cpp:260
msgid "Update all podcasts"
msgstr ""
msgstr "Eguneratu podcast guztiak"
#: ../bin/src/ui_mainwindow.h:706
msgid "Update changed library folders"
@ -4631,11 +4632,11 @@ msgstr "Eguneratu bilduma Clementine abiaraztean"
#: podcasts/podcastservice.cpp:268
msgid "Update this podcast"
msgstr ""
msgstr "Podcast hau eguneratu"
#: ../bin/src/ui_podcastsettingspage.h:227
msgid "Updating"
msgstr ""
msgstr "Eguneratzen"
#: library/librarywatcher.cpp:92
#, qt-format
@ -4807,7 +4808,7 @@ msgstr "Wav"
#: ../bin/src/ui_podcastinfowidget.h:193
msgid "Website"
msgstr ""
msgstr "Webgunea"
#: smartplaylists/searchterm.cpp:308
msgid "Weeks"
@ -4825,11 +4826,11 @@ msgstr "Albumetako azalen bilatzean, Clementine-k aurretik honako hitzetako bat
#: ../bin/src/ui_globalsearchsettingspage.h:151
msgid "When the list is empty..."
msgstr ""
msgstr "Zerrenda hutsik dagoenean..."
#: ../bin/src/ui_globalsearchview.h:212
msgid "Why not try..."
msgstr ""
msgstr "Zergatik ez probatu..."
#: devices/ilister.cpp:121
msgid "WiFi MAC Address"
@ -4922,7 +4923,7 @@ msgstr "Atzo"
#: playlist/playlistlistcontainer.cpp:296
#, qt-format
msgid "You are about to delete %1 playlists, are you sure?"
msgstr ""
msgstr "Ziur zaude %1 erreprodukzio-zerrenda ezabatu nahi dituzula?"
#: ../bin/src/ui_magnatunedownloaddialog.h:132
msgid "You are about to download the following albums"
@ -5122,11 +5123,11 @@ msgstr "berdin"
#: ../bin/src/ui_podcastsettingspage.h:249
msgid "gpodder.net"
msgstr ""
msgstr "gpodder.net"
#: podcasts/gpoddertoptagspage.cpp:34
msgid "gpodder.net directory"
msgstr ""
msgstr "gpodder.net direktorioa"
#: smartplaylists/searchterm.cpp:221
msgid "greater than"
@ -5153,7 +5154,7 @@ msgstr "luzeenak arinago"
#: playlist/playlistundocommands.cpp:99
#, c-format
msgid "move %n songs"
msgstr ""
msgstr "%n abesti mugitu"
#: smartplaylists/searchterm.cpp:294
msgid "newest first"
@ -5198,7 +5199,7 @@ msgstr "laburrenak arinago"
#: playlist/playlistundocommands.cpp:138
msgid "shuffle songs"
msgstr ""
msgstr "abestiak nahastu"
#: smartplaylists/searchterm.cpp:297
msgid "smallest first"
@ -5206,7 +5207,7 @@ msgstr "txikienak arinago"
#: playlist/playlistundocommands.cpp:131
msgid "sort songs"
msgstr ""
msgstr "abestiak ordenatu"
#: smartplaylists/searchterm.cpp:219
msgid "starts with"

File diff suppressed because it is too large Load Diff

View File

@ -8,6 +8,7 @@
# Alexander Vysotskiy <loki13gm@gmail.com>, 2012.
# Andy Dufrane <>, 2012.
# <arnaud.bienner@gmail.com>, 2011.
# <dronmax@gmail.com>, 2013.
# Just a baka <justabaka@gmail.com>, 2012.
# <karlsson169@gmail.com>, 2012.
# <kolyadas89@gmail.com>, 2011.
@ -24,8 +25,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/clementine-player/issues/list\n"
"PO-Revision-Date: 2012-12-26 10:56+0000\n"
"Last-Translator: Владимир Пахомчик <v.pahomchik@gmail.com>\n"
"PO-Revision-Date: 2013-01-01 20:30+0000\n"
"Last-Translator: drmx <dronmax@gmail.com>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ru\n"
@ -162,7 +163,7 @@ msgstr "%n осталось"
#: playlist/playlistheader.cpp:37
msgid "&Align text"
msgstr "Выровнять текст"
msgstr "Выровнять &текст"
#: playlist/playlistheader.cpp:40
msgid "&Center"
@ -256,7 +257,7 @@ msgstr "1 композиция"
#: ../bin/src/ui_magnatunedownloaddialog.h:143
#: ../bin/src/ui_magnatunesettingspage.h:174
msgid "128k MP3"
msgstr "128к MP3"
msgstr "128k MP3"
#: library/library.cpp:58
msgid "50 random tracks"
@ -307,7 +308,7 @@ msgstr "AAC 128к"
#: ../bin/src/ui_digitallyimportedsettingspage.h:171
msgid "AAC 32k"
msgstr "AAC 32к"
msgstr "AAC 32k"
#: ../bin/src/ui_digitallyimportedsettingspage.h:178
msgid "AAC 64k"
@ -563,7 +564,7 @@ msgstr "Обложка альбома"
#: internet/jamendoservice.cpp:414
msgid "Album info on jamendo.com..."
msgstr "Информация об альбоме на Jamendo.com…"
msgstr "Информация об альбоме на jamendo.com…"
#: ui/albumcovermanager.cpp:122
msgid "Albums with covers"
@ -706,7 +707,7 @@ msgstr "Исполнитель"
#: ui/mainwindow.cpp:239
msgid "Artist info"
msgstr "Об исполнителе"
msgstr "Артист"
#: internet/lastfmservice.cpp:208
msgid "Artist radio"
@ -714,7 +715,7 @@ msgstr "Радио исполнителя"
#: songinfo/echonesttags.cpp:59
msgid "Artist tags"
msgstr "Тэги испольнителя"
msgstr "Теги испольнителя"
#: ui/organisedialog.cpp:57
msgid "Artist's initial"
@ -822,7 +823,7 @@ msgstr "Биография из %1"
#: playlist/playlist.cpp:1210 ../bin/src/ui_edittagdialog.h:640
msgid "Bit rate"
msgstr "Битрейт"
msgstr "Скорость передачи данных"
#: ui/organisedialog.cpp:67 ../bin/src/ui_transcoderoptionsaac.h:129
#: ../bin/src/ui_transcoderoptionsmp3.h:194
@ -1430,7 +1431,7 @@ msgstr "Задержка между визуализациями"
#: playlist/playlistlistcontainer.cpp:75
#: ../bin/src/ui_playlistlistcontainer.h:122
msgid "Delete"
msgstr ""
msgstr "Удалить"
#: internet/groovesharkservice.cpp:521 internet/groovesharkservice.cpp:1289
msgid "Delete Grooveshark playlist"
@ -1460,7 +1461,7 @@ msgstr "Удаллить прослушанные выпуски"
#: playlist/playlistlistcontainer.cpp:295
msgid "Delete playlists"
msgstr ""
msgstr "Удалить списки"
#: ui/equalizer.cpp:190 ../bin/src/ui_equalizer.h:124
msgid "Delete preset"
@ -1545,7 +1546,7 @@ msgstr "Отключить продолжительность"
#: ../bin/src/ui_appearancesettingspage.h:289
msgid "Disable moodbar generation"
msgstr ""
msgstr "Отключить создание индикатора настроения"
#: globalsearch/searchproviderstatuswidget.cpp:47
#: ../bin/src/ui_notificationssettingspage.h:405
@ -2593,7 +2594,7 @@ msgstr "Длительность"
#: ui/mainwindow.cpp:222 ui/mainwindow.cpp:232
msgid "Library"
msgstr "Коллекция"
msgstr "Фонотека"
#: ../bin/src/ui_groupbydialog.h:122
msgid "Library advanced grouping"
@ -2867,11 +2868,11 @@ msgstr "Настроение"
#: ../bin/src/ui_appearancesettingspage.h:287
#: moodbar/moodbarproxystyle.cpp:342
msgid "Moodbar style"
msgstr "Стиль полосок настроения"
msgstr "Стиль индикаторов настроения"
#: ../bin/src/ui_appearancesettingspage.h:285
msgid "Moodbars"
msgstr "Полоски настроения"
msgstr "Индикаторы настроения"
#: library/library.cpp:72
msgid "Most played"
@ -3741,7 +3742,7 @@ msgstr "Частота дискретизации"
#: ../bin/src/ui_appearancesettingspage.h:288
msgid "Save .mood files in your music library"
msgstr "Сохранить файлы .mood в библиотеку музыки"
msgstr "Сохранить файлы настроения .mood в библиотеку музыки"
#: ui/albumcoverchoicecontroller.cpp:114
msgid "Save album cover"
@ -3949,7 +3950,7 @@ msgstr "Подсвечивать проигрывающийся трек"
#: ../bin/src/ui_appearancesettingspage.h:286
msgid "Show a moodbar in the track progress bar"
msgstr "Показывать полоски настроения в статусе воспроизведения композиции"
msgstr "Показывать индикаторы настроения в статусе воспроизведения композиции"
#: ../bin/src/ui_notificationssettingspage.h:406
msgid "Show a native desktop notification"
@ -4006,7 +4007,7 @@ msgstr "Показать в \"Разных исполнителях\""
#: moodbar/moodbarproxystyle.cpp:337
msgid "Show moodbar"
msgstr "Показывать полоски настроения"
msgstr "Показывать индикаторы настроения"
#: ui/mainwindow.cpp:459
msgid "Show only duplicates"
@ -4014,7 +4015,7 @@ msgstr "Показывать только повторяющиеся"
#: ui/mainwindow.cpp:460
msgid "Show only untagged"
msgstr "Показывать только без тэгов"
msgstr "Показывать только без тегов"
#: ../bin/src/ui_globalsearchsettingspage.h:153
msgid "Show search suggestions"
@ -4122,7 +4123,7 @@ msgstr "Сведения о композиции"
#: ui/mainwindow.cpp:238
msgid "Song info"
msgstr "О композиции"
msgstr "О песне"
#: analyzers/sonogram.cpp:18
msgid "Sonogram"

View File

@ -3,12 +3,13 @@
# This file is distributed under the same license as the Clementine package.
#
# Translators:
# Umidjon Almasov <u.almasov@gmail.com>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/clementine-player/issues/list\n"
"PO-Revision-Date: 2012-11-30 11:10+0000\n"
"Last-Translator: Clementine Buildbot <clementinebuildbot@davidsansome.com>\n"
"PO-Revision-Date: 2013-01-06 13:17+0000\n"
"Last-Translator: Umidjon Almasov <u.almasov@gmail.com>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: uz\n"
@ -226,7 +227,7 @@ msgstr "0:00:00"
#: ../bin/src/ui_appearancesettingspage.h:284
msgid "0px"
msgstr ""
msgstr "0px"
#: core/utilities.cpp:106
msgid "1 day"
@ -562,7 +563,7 @@ msgstr "Hamma fayllar (*)"
#: ../bin/src/ui_mainwindow.h:686
msgid "All Glory to the Hypnotoad!"
msgstr ""
msgstr "Gipnobaqaga shon-sharaflar!"
#: ui/albumcovermanager.cpp:121
msgid "All albums"
@ -983,7 +984,7 @@ msgstr "Clementine ushbu uskunaga nusxa olinayotgan musiqan ui ijro etaoladigan
#: ../bin/src/ui_dropboxsettingspage.h:104
msgid "Clementine can play music that you have uploaded to Dropbox"
msgstr ""
msgstr "Clementine Dropboxga yuklangan musiqangizni ijri ettirishi mumkin"
#: ../bin/src/ui_googledrivesettingspage.h:104
msgid "Clementine can play music that you have uploaded to Google Drive"
@ -1156,7 +1157,7 @@ msgstr "Spotify'ga ulanmoqda"
#: ../bin/src/ui_console.h:80 ../bin/src/ui_mainwindow.h:689
msgid "Console"
msgstr ""
msgstr "Konsol"
#: ../bin/src/ui_transcoderoptionsmp3.h:196
msgid "Constant bitrate"
@ -1190,7 +1191,7 @@ msgstr "iPod ma'lumot bazasi nusxa olinmoqda"
#: ../bin/src/ui_podcastinfowidget.h:194
msgid "Copyright"
msgstr ""
msgstr "Mualliflik huquqlari"
#: transcoder/transcoder.cpp:64
#, qt-format
@ -1413,7 +1414,7 @@ msgstr ""
#: playlist/playlistlistcontainer.cpp:75
#: ../bin/src/ui_playlistlistcontainer.h:122
msgid "Delete"
msgstr ""
msgstr "O'chirish"
#: internet/groovesharkservice.cpp:521 internet/groovesharkservice.cpp:1289
msgid "Delete Grooveshark playlist"
@ -1439,7 +1440,7 @@ msgstr "Diskdan o'chirish..."
#: ../bin/src/ui_podcastsettingspage.h:244
msgid "Delete played episodes"
msgstr ""
msgstr "Ijro etilgan epizodlarni o'chirish"
#: playlist/playlistlistcontainer.cpp:295
msgid "Delete playlists"
@ -1661,7 +1662,7 @@ msgstr ""
#: ../bin/src/ui_dropboxsettingspage.h:103
msgid "Dropbox"
msgstr ""
msgstr "Dropbox"
#: ../bin/src/ui_dynamicplaylistcontrols.h:109
msgid "Dynamic mode is on"
@ -1780,7 +1781,7 @@ msgstr "Internet radio to'lqini uchun URL kiriting:"
#: playlist/playlistlistcontainer.cpp:183
msgid "Enter the name of the folder"
msgstr ""
msgstr "Jild nomini kiriting"
#: ../bin/src/ui_libraryfilterwidget.h:87
msgid "Entire collection"
@ -1934,15 +1935,15 @@ msgstr ""
#: podcasts/itunessearchpage.cpp:66 podcasts/itunessearchpage.cpp:75
#: podcasts/itunessearchpage.cpp:82
msgid "Failed to fetch podcasts"
msgstr ""
msgstr "Podkast olish muvaffaqiyatsiz tugadi"
#: podcasts/addpodcastbyurl.cpp:70 podcasts/fixedopmlpage.cpp:54
msgid "Failed to load podcast"
msgstr ""
msgstr "Podkast yuklash muvaffaqiyatsiz tugadi"
#: podcasts/podcasturlloader.cpp:167
msgid "Failed to parse the XML for this RSS feed"
msgstr ""
msgstr "Ushbu RSS manbai uchun XML tahlil qilish muvaffaqiyatsiz tugadi"
#: ../bin/src/ui_transcoderoptionsflac.h:82
#: ../bin/src/ui_transcoderoptionsmp3.h:200
@ -2165,7 +2166,7 @@ msgstr ""
#: ../bin/src/ui_addpodcastbyurl.h:78
msgid "Go"
msgstr ""
msgstr "O'tish"
#: ../bin/src/ui_mainwindow.h:704
msgid "Go to next playlist tab"
@ -2177,7 +2178,7 @@ msgstr ""
#: ../bin/src/ui_googledrivesettingspage.h:103
msgid "Google Drive"
msgstr ""
msgstr "Google Drive"
#: covers/coversearchstatisticsdialog.cpp:54 ui/albumcovermanager.cpp:413
#: ../bin/src/ui_coversearchstatisticsdialog.h:76
@ -2324,12 +2325,12 @@ msgstr "Rasmlar (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)"
#: core/utilities.cpp:143
#, qt-format
msgid "In %1 days"
msgstr ""
msgstr "%1 kundan so'ng"
#: core/utilities.cpp:147
#, qt-format
msgid "In %1 weeks"
msgstr ""
msgstr "%1 haftadan so'ng"
#: ../bin/src/ui_wizardfinishpage.h:86
msgid ""
@ -2762,7 +2763,7 @@ msgstr ""
#: core/backgroundstreams.cpp:36 ../bin/src/ui_mainwindow.h:687
msgid "Make it so!"
msgstr ""
msgstr "Shunday qilinsin!"
#: internet/spotifyservice.cpp:533
msgid "Make playlist available offline"
@ -2917,7 +2918,7 @@ msgstr ""
#: internet/groovesharkservice.cpp:606
msgid "My Music"
msgstr ""
msgstr "Mening musiqam"
#: internet/lastfmservice.cpp:202
msgid "My Neighborhood"
@ -2976,7 +2977,7 @@ msgstr ""
#: playlist/playlistlistcontainer.cpp:182
#: ../bin/src/ui_playlistlistcontainer.h:119
msgid "New folder"
msgstr ""
msgstr "Yangi jild"
#: ui/mainwindow.cpp:1389 ../bin/src/ui_mainwindow.h:698
msgid "New playlist"
@ -3009,7 +3010,7 @@ msgstr "Keyingi trek"
#: core/utilities.cpp:145
msgid "Next week"
msgstr ""
msgstr "Kelasi hafta"
#: analyzers/analyzercontainer.cpp:80
msgid "No analyzer"
@ -3059,7 +3060,7 @@ msgstr "Ulanmagan"
#: internet/lastfmservice.cpp:439
msgid "Not enough content"
msgstr ""
msgstr "Hajmi yetarli emas"
#: internet/lastfmservice.cpp:441
msgid "Not enough fans"
@ -3149,7 +3150,7 @@ msgstr "Failni ochish..."
#: internet/googledriveservice.cpp:184
msgid "Open in Google Drive"
msgstr ""
msgstr "Google Driveda ochish"
#: devices/deviceview.cpp:215 globalsearch/globalsearchview.cpp:421
#: internet/internetservice.cpp:76 library/libraryview.cpp:371
@ -3188,11 +3189,11 @@ msgstr "Fayllarni boshqarish..."
#: core/organise.cpp:65
msgid "Organising files"
msgstr ""
msgstr "Fayllarni tashkillashtirish"
#: ui/trackselectiondialog.cpp:167
msgid "Original tags"
msgstr ""
msgstr "Asl teglar"
#: core/commandlineoptions.cpp:160
msgid "Other options"
@ -3200,19 +3201,19 @@ msgstr "Boshqa parametrlar"
#: ../bin/src/ui_playbacksettingspage.h:289
msgid "Output device"
msgstr ""
msgstr "Chiqarish uskunasi"
#: ../bin/src/ui_transcodedialog.h:209
msgid "Output options"
msgstr ""
msgstr "Chiqarish parametrlari"
#: ../bin/src/ui_playbacksettingspage.h:284
msgid "Output plugin"
msgstr ""
msgstr "Chiqarish plagini"
#: ../bin/src/ui_organisedialog.h:207
msgid "Overwrite existing files"
msgstr ""
msgstr "Mavjud fayllarni almashtirish"
#: ../bin/src/ui_podcastinfowidget.h:195
msgid "Owner"
@ -3330,7 +3331,7 @@ msgstr "Pleylistlar"
#: ../data/oauthsuccess.html:36
msgid "Please close your browser and return to Clementine."
msgstr ""
msgstr "Brauzerni yopib Clementinega qayting"
#: ../bin/src/ui_spotifysettingspage.h:215
msgid "Plugin status:"
@ -3346,7 +3347,7 @@ msgstr "Pop"
#: internet/groovesharkservice.cpp:575
msgid "Popular songs"
msgstr ""
msgstr "Mashhur qo'shiqlar"
#: internet/groovesharkservice.cpp:578
msgid "Popular songs of the Month"
@ -3354,7 +3355,7 @@ msgstr ""
#: internet/groovesharkservice.cpp:585
msgid "Popular songs today"
msgstr ""
msgstr "Bugun mashhur qo'shiqlar"
#: ../bin/src/ui_notificationssettingspage.h:410
msgid "Popup duration"
@ -3362,7 +3363,7 @@ msgstr ""
#: ../bin/src/ui_networkproxysettingspage.h:166
msgid "Port"
msgstr ""
msgstr "Port"
#: ui/equalizer.cpp:46 ../bin/src/ui_playbacksettingspage.h:281
msgid "Pre-amp"
@ -3385,11 +3386,11 @@ msgstr ""
#: ../bin/src/ui_magnatunesettingspage.h:167
msgid "Preferred audio format"
msgstr ""
msgstr "Afzal audio formati"
#: ../bin/src/ui_spotifysettingspage.h:218
msgid "Preferred bitrate"
msgstr ""
msgstr "Afzal bitreyt"
#: ../bin/src/ui_deviceproperties.h:380
msgid "Preferred format"
@ -3409,7 +3410,7 @@ msgstr ""
#: ../bin/src/ui_globalshortcutgrabber.h:73
msgid "Press a key"
msgstr ""
msgstr "Tugmani bosing"
#: ui/globalshortcutgrabber.cpp:39 ../bin/src/ui_globalshortcutgrabber.h:74
#, qt-format
@ -3424,7 +3425,7 @@ msgstr ""
#: ../bin/src/ui_notificationssettingspage.h:418
#: ../bin/src/ui_organisedialog.h:208
msgid "Preview"
msgstr ""
msgstr "Ko'rib chiqish"
#: ui/edittagdialog.cpp:160 ui/trackselectiondialog.cpp:48
msgid "Previous"
@ -3488,7 +3489,7 @@ msgstr ""
#: internet/groovesharkservice.cpp:593
msgid "Radios"
msgstr ""
msgstr "Radio"
#: core/backgroundstreams.cpp:31 ../bin/src/ui_mainwindow.h:685
msgid "Rain"
@ -3532,7 +3533,7 @@ msgstr "Rostdan bekor qilinsinmi?"
#: internet/groovesharkservice.cpp:547
msgid "Refresh"
msgstr ""
msgstr "Yangilash"
#: internet/jamendoservice.cpp:419 internet/magnatuneservice.cpp:277
msgid "Refresh catalogue"
@ -3585,7 +3586,7 @@ msgstr ""
#: internet/groovesharkservice.cpp:534
msgid "Remove from My Music"
msgstr ""
msgstr "Mening musiqamdan o'chirish"
#: internet/groovesharkservice.cpp:531
msgid "Remove from favorites"
@ -3597,7 +3598,7 @@ msgstr ""
#: internet/groovesharkservice.cpp:1537
msgid "Removing songs from My Music"
msgstr ""
msgstr "Mening musiqamdan o'chirilmoqda"
#: internet/groovesharkservice.cpp:1487
msgid "Removing songs from favorites"
@ -3606,7 +3607,7 @@ msgstr ""
#: internet/groovesharkservice.cpp:1335
#, qt-format
msgid "Rename \"%1\" playlist"
msgstr ""
msgstr "\"%1\" pleylistning nomini o'zgartirish"
#: internet/groovesharkservice.cpp:524
msgid "Rename Grooveshark playlist"
@ -3692,7 +3693,7 @@ msgstr ""
#: ../data/oauthsuccess.html:3
msgid "Return to Clementine"
msgstr ""
msgstr "Clementinega qaytish"
#: ui/equalizer.cpp:121
msgid "Rock"
@ -4242,7 +4243,7 @@ msgstr ""
#: ../data/oauthsuccess.html:34
msgid "Success!"
msgstr ""
msgstr "Muvaffaqiyat!"
#: transcoder/transcoder.cpp:200
#, qt-format
@ -4286,7 +4287,7 @@ msgstr ""
#: moodbar/moodbarrenderer.cpp:159
msgid "System colors"
msgstr ""
msgstr "Tizim ranglari"
#: widgets/fancytabwidget.cpp:654
msgid "Tabs on top"
@ -4359,7 +4360,7 @@ msgstr ""
#: library/libraryview.cpp:529
msgid "There are other songs in this album"
msgstr ""
msgstr "Ushbi albomda boshqa qo'shiqlar mavjud"
#: podcasts/gpoddersearchpage.cpp:77 podcasts/gpoddertoptagsmodel.cpp:110
#: podcasts/gpoddertoptagspage.cpp:77
@ -4505,7 +4506,7 @@ msgstr ""
#: core/utilities.cpp:141
msgid "Tomorrow"
msgstr ""
msgstr "Ertaga"
#: podcasts/podcasturlloader.cpp:116
msgid "Too many redirects"
@ -4571,7 +4572,7 @@ msgstr "URL(lar)"
#: ../bin/src/ui_ubuntuonesettingspage.h:110
msgid "Ubuntu One"
msgstr ""
msgstr "Ubuntu One"
#: ../bin/src/ui_transcoderoptionsspeex.h:228
msgid "Ultra wide band (UWB)"
@ -4612,7 +4613,7 @@ msgstr ""
#: internet/groovesharkservice.cpp:1198
msgid "Update Grooveshark playlist"
msgstr ""
msgstr "Grooveshark pleylistini yangilash"
#: podcasts/podcastservice.cpp:260
msgid "Update all podcasts"

View File

@ -6,14 +6,14 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
# Lê Trường An <pinkyfinger111@gmail.com>, 2011, 2012.
# Lê Trường An <truongan@linuxmail.org>, 2011, 2012.
# Lê Trường An <truongan@linuxmail.org>, 2011-2012.
# Lê Trường An <truongan@linuxmail.org>, 2011-2013.
# Lê Trường An <truongan@linuxmail.org>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/clementine-player/issues/list\n"
"PO-Revision-Date: 2012-11-30 11:09+0000\n"
"Last-Translator: Clementine Buildbot <clementinebuildbot@davidsansome.com>\n"
"PO-Revision-Date: 2013-01-05 03:38+0000\n"
"Last-Translator: Lê Trường An <truongan@linuxmail.org>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: vi\n"
@ -619,7 +619,7 @@ msgstr "Bắt đầu phát nhạc"
msgid ""
"An additional plugin is required to use Spotify in Clementine. Would you "
"like to download and install it now?"
msgstr "Cần phải có một trình cắm thêm để sử dụng Spotify trong Clementine. Bạn có muốn tải nó về và cài đặt ngay không?"
msgstr "Cần có một phần mở rộng để sử dụng Spotify trong Clementine. Bạn có muốn tải nó về và cài đặt ngay không?"
#: devices/afcdevice.cpp:63
msgid "An error occurred copying the iTunes database from the device"
@ -988,15 +988,15 @@ msgstr "Clementine có thể tự động chuyển đổi định dạng nhạc
#: ../bin/src/ui_dropboxsettingspage.h:104
msgid "Clementine can play music that you have uploaded to Dropbox"
msgstr ""
msgstr "Clementine có thể phát nhạc trong tài khoản Dropbox"
#: ../bin/src/ui_googledrivesettingspage.h:104
msgid "Clementine can play music that you have uploaded to Google Drive"
msgstr "Clementine có thể phát nhạc trên Google Drive"
msgstr "Clementine có thể phát nhạc trong tài khoản Google Drive"
#: ../bin/src/ui_ubuntuonesettingspage.h:111
msgid "Clementine can play music that you have uploaded to Ubuntu One"
msgstr ""
msgstr "Clementine có thể phát nhạc trong tài khoản Ubuntu One"
#: ../bin/src/ui_notificationssettingspage.h:403
msgid "Clementine can show a message when the track changes."
@ -1533,7 +1533,7 @@ msgstr "Tắt thời lượng"
#: ../bin/src/ui_appearancesettingspage.h:289
msgid "Disable moodbar generation"
msgstr ""
msgstr "Tắt khởi tạo thanh trạng thái"
#: globalsearch/searchproviderstatuswidget.cpp:47
#: ../bin/src/ui_notificationssettingspage.h:405
@ -1666,7 +1666,7 @@ msgstr "Tên phân vùng ổ đĩa"
#: ../bin/src/ui_dropboxsettingspage.h:103
msgid "Dropbox"
msgstr ""
msgstr "Dropbox"
#: ../bin/src/ui_dynamicplaylistcontrols.h:109
msgid "Dynamic mode is on"
@ -4576,7 +4576,7 @@ msgstr "URL(s)"
#: ../bin/src/ui_ubuntuonesettingspage.h:110
msgid "Ubuntu One"
msgstr ""
msgstr "Ubuntu One"
#: ../bin/src/ui_transcoderoptionsspeex.h:228
msgid "Ultra wide band (UWB)"