mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-23 09:49:52 +00:00
** I18N Commit **
- Better i18n thanks to dynamic text support - Some typos fixed in translatable texts - Provide exemples to make translators' task easier - Update translation files
This commit is contained in:
parent
86b1be7db6
commit
87f440aa9e
@ -20,6 +20,7 @@
|
||||
- BUGFIX: Preventing GUI from freezing when deleting a download permanently
|
||||
- BUGFIX: Fixed directory scanning (stop trying to download the same files several times)
|
||||
- BUGFIX: Fixed bad loading of scan dir in option (widgets still disabled)
|
||||
- I18N: Better internationalization thanks to dynamic text support
|
||||
- COSMETIC: Replaced OSD messages by Qt4.2 systray messages
|
||||
|
||||
* Tue Nov 28 2006 - Christophe Dumez <chris@qbittorrent.org> - v0.8.0
|
||||
|
4
TODO
4
TODO
@ -40,10 +40,10 @@
|
||||
- Allow to edit the trackers for a torrent
|
||||
|
||||
// In v0.9.0
|
||||
- Update translations (contact translators)
|
||||
- Find a better way to update qBittorrent VERSION
|
||||
- Splitting torrent part from GUI (bug squashing + cleanup)
|
||||
- Create options object only when necessary to save up some memory
|
||||
- Wait for libtorrent v0.12 official release
|
||||
- report this to libtorrent:
|
||||
"qbittorrent: kademlia/rpc_manager.cpp:327: void libtorrent::dht::rpc_manager::invoke(int, asio::ip::basic_endpoint<asio::ip::udp>, boost::shared_ptr<libtorrent::dht::observer>): l'assertion « false » a échoué."
|
||||
Info: current TOP output:
|
||||
25461 chris 15 0 106m 23m 14m S 0.7 2.4 0:01.60 qbittorrent
|
||||
|
90
src/GUI.cpp
90
src/GUI.cpp
@ -65,7 +65,7 @@
|
||||
// Constructor
|
||||
GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent){
|
||||
setupUi(this);
|
||||
setWindowTitle(tr("qBittorrent ")+VERSION);
|
||||
setWindowTitle(tr("qBittorrent %1", "e.g: qBittorrent v0.x").arg(VERSION));
|
||||
readSettings();
|
||||
// Setting icons
|
||||
this->setWindowIcon(QIcon(QString::fromUtf8(":/Icons/qbittorrent32.png")));
|
||||
@ -87,7 +87,7 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent){
|
||||
connecStatusLblIcon = new QLabel();
|
||||
connecStatusLblIcon->setFrameShape(QFrame::NoFrame);
|
||||
connecStatusLblIcon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/skin/disconnected.png")));
|
||||
connecStatusLblIcon->setToolTip(tr("<b>Connection Status:</b><br>Offline<br><i>No peers found...</i>"));
|
||||
connecStatusLblIcon->setToolTip("<b>"+tr("Connection status:")+"</b><br>"+tr("Offline")+"<br><i>"+tr("No peers found...")+"</i>");
|
||||
toolBar->addWidget(connecStatusLblIcon);
|
||||
actionDelete_Permanently->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/delete_perm.png")));
|
||||
actionTorrent_Properties->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/properties.png")));
|
||||
@ -101,14 +101,14 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent){
|
||||
toolBar->layout()->setSpacing(7);
|
||||
// Set Download list model
|
||||
DLListModel = new QStandardItemModel(0,9);
|
||||
DLListModel->setHeaderData(NAME, Qt::Horizontal, tr("Name"));
|
||||
DLListModel->setHeaderData(SIZE, Qt::Horizontal, tr("Size"));
|
||||
DLListModel->setHeaderData(PROGRESS, Qt::Horizontal, tr("Progress"));
|
||||
DLListModel->setHeaderData(DLSPEED, Qt::Horizontal, tr("DL Speed"));
|
||||
DLListModel->setHeaderData(UPSPEED, Qt::Horizontal, tr("UP Speed"));
|
||||
DLListModel->setHeaderData(SEEDSLEECH, Qt::Horizontal, tr("Seeds/Leechs"));
|
||||
DLListModel->setHeaderData(NAME, Qt::Horizontal, tr("Name", "i.e: file name"));
|
||||
DLListModel->setHeaderData(SIZE, Qt::Horizontal, tr("Size", "i.e: file size"));
|
||||
DLListModel->setHeaderData(PROGRESS, Qt::Horizontal, tr("Progress", "i.e: % downloaded"));
|
||||
DLListModel->setHeaderData(DLSPEED, Qt::Horizontal, tr("DL Speed", "i.e: Download speed"));
|
||||
DLListModel->setHeaderData(UPSPEED, Qt::Horizontal, tr("UP Speed", "i.e: Upload speed"));
|
||||
DLListModel->setHeaderData(SEEDSLEECH, Qt::Horizontal, tr("Seeds/Leechs", "i.e: full/partial sources"));
|
||||
DLListModel->setHeaderData(STATUS, Qt::Horizontal, tr("Status"));
|
||||
DLListModel->setHeaderData(ETA, Qt::Horizontal, tr("ETA"));
|
||||
DLListModel->setHeaderData(ETA, Qt::Horizontal, tr("ETA", "i.e: Estimated Time of Arrival / Time left"));
|
||||
downloadList->setModel(DLListModel);
|
||||
DLDelegate = new DLListDelegate();
|
||||
downloadList->setItemDelegate(DLDelegate);
|
||||
@ -200,10 +200,10 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent){
|
||||
checkConnect->start(5000);
|
||||
// Set Search results list model
|
||||
SearchListModel = new QStandardItemModel(0,5);
|
||||
SearchListModel->setHeaderData(NAME, Qt::Horizontal, tr("Name"));
|
||||
SearchListModel->setHeaderData(SIZE, Qt::Horizontal, tr("Size"));
|
||||
SearchListModel->setHeaderData(PROGRESS, Qt::Horizontal, tr("Seeders"));
|
||||
SearchListModel->setHeaderData(DLSPEED, Qt::Horizontal, tr("Leechers"));
|
||||
SearchListModel->setHeaderData(NAME, Qt::Horizontal, tr("Name", "i.e: file name"));
|
||||
SearchListModel->setHeaderData(SIZE, Qt::Horizontal, tr("Size", "i.e: file size"));
|
||||
SearchListModel->setHeaderData(PROGRESS, Qt::Horizontal, tr("Seeders", "i.e: Number of full sources"));
|
||||
SearchListModel->setHeaderData(DLSPEED, Qt::Horizontal, tr("Leechers", "i.e: Number of partial sources"));
|
||||
SearchListModel->setHeaderData(UPSPEED, Qt::Horizontal, tr("Search engine"));
|
||||
resultsBrowser->setModel(SearchListModel);
|
||||
SearchDelegate = new SearchListDelegate();
|
||||
@ -254,7 +254,7 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent){
|
||||
// Accept drag 'n drops
|
||||
setAcceptDrops(true);
|
||||
// Set info Bar infos
|
||||
setInfoBar(tr("qBittorrent ")+VERSION+tr(" started."));
|
||||
setInfoBar(tr("qBittorrent %1 started.", "e.g: qBittorrent v0.x started.").arg(QString(VERSION)));
|
||||
qDebug("GUI Built");
|
||||
}
|
||||
|
||||
@ -459,7 +459,7 @@ void GUI::updateDlList(bool force){
|
||||
// update global informations
|
||||
snprintf(tmp, MAX_CHAR_TMP, "%.1f", BTSession.getPayloadUploadRate()/1024.);
|
||||
snprintf(tmp2, MAX_CHAR_TMP, "%.1f", BTSession.getPayloadDownloadRate()/1024.);
|
||||
myTrayIcon->setToolTip(tr("<b>qBittorrent</b><br>DL Speed: ")+ QString(tmp2) +tr("KiB/s")+"<br>"+tr("UP Speed: ")+ QString(tmp) + tr("KiB/s")); // tray icon
|
||||
myTrayIcon->setToolTip("<b>"+tr("qBittorrent")+"</b><br>"+tr("DL speed: %1 KiB/s", "e.g: Download speed: 10 KiB/s").arg(QString(tmp2))+"<br>"+tr("UP speed: %1 KiB/s", "e.g: Upload speed: 10 KiB/s").arg(QString(tmp))); // tray icon
|
||||
if( !force && (isMinimized() || isHidden() || tabs->currentIndex())){
|
||||
// No need to update if qBittorrent DL list is hidden
|
||||
return;
|
||||
@ -486,7 +486,7 @@ void GUI::updateDlList(bool force){
|
||||
case torrent_status::finished:
|
||||
case torrent_status::seeding:
|
||||
DLListModel->setData(DLListModel->index(row, UPSPEED), QVariant((double)torrentStatus.upload_payload_rate));
|
||||
DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Finished")));
|
||||
DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Finished", "i.e: Torrent has finished downloading")));
|
||||
DLListModel->setData(DLListModel->index(row, DLSPEED), QVariant((double)0.));
|
||||
DLListModel->setData(DLListModel->index(row, ETA), QVariant((qlonglong)-1));
|
||||
DLListModel->setData(DLListModel->index(row, NAME), QVariant(QIcon(":/Icons/skin/seeding.png")), Qt::DecorationRole);
|
||||
@ -495,7 +495,7 @@ void GUI::updateDlList(bool force){
|
||||
break;
|
||||
case torrent_status::checking_files:
|
||||
case torrent_status::queued_for_checking:
|
||||
DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Checking...")));
|
||||
DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Checking...", "i.e: Checking already downloaded parts...")));
|
||||
DLListModel->setData(DLListModel->index(row, NAME), QVariant(QIcon(":/Icons/skin/connecting.png")), Qt::DecorationRole);
|
||||
setRowColor(row, "grey");
|
||||
DLListModel->setData(DLListModel->index(row, PROGRESS), QVariant((double)torrentStatus.progress));
|
||||
@ -525,7 +525,7 @@ void GUI::updateDlList(bool force){
|
||||
DLListModel->setData(DLListModel->index(row, ETA), QVariant((qlonglong)((ti.total_size()-torrentStatus.total_done)/(double)torrentStatus.download_payload_rate)));
|
||||
setRowColor(row, "green");
|
||||
}else{
|
||||
DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Stalled", "state of a torrent whose DL Speed is 0")));
|
||||
DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Stalled", "i.e: State of a torrent whose download speed is 0kb/s")));
|
||||
DLListModel->setData(DLListModel->index(row, NAME), QVariant(QIcon(":/Icons/skin/stalled.png")), Qt::DecorationRole);
|
||||
DLListModel->setData(DLListModel->index(row, ETA), QVariant((qlonglong)-1));
|
||||
setRowColor(row, "black");
|
||||
@ -811,7 +811,7 @@ void GUI::closeEvent(QCloseEvent *e){
|
||||
}
|
||||
if(options->getConfirmOnExit()){
|
||||
if(QMessageBox::question(this,
|
||||
tr("Are you sure you want to quit? -- qBittorrent"),
|
||||
tr("Are you sure you want to quit?")+" -- "+tr("qBittorrent"),
|
||||
tr("Are you sure you want to quit qBittorrent?"),
|
||||
tr("&Yes"), tr("&No"),
|
||||
QString(), 0, 1)){
|
||||
@ -957,7 +957,7 @@ void GUI::deletePermanently(){
|
||||
// Remove the torrent
|
||||
BTSession.deleteTorrent(fileHash, true);
|
||||
// Update info bar
|
||||
setInfoBar("'" + fileName +"' "+tr("removed.", "<file> removed."));
|
||||
setInfoBar(tr("'%1' was removed.", "'xxx.avi' was removed.").arg(fileName));
|
||||
--nbTorrents;
|
||||
tabs->setTabText(0, tr("Transfers") +" ("+QString(misc::toString(nbTorrents).c_str())+")");
|
||||
}
|
||||
@ -998,7 +998,7 @@ void GUI::deleteSelection(){
|
||||
// Remove the torrent
|
||||
BTSession.deleteTorrent(fileHash, false);
|
||||
// Update info bar
|
||||
setInfoBar("'" + fileName +"' "+tr("removed.", "<file> removed."));
|
||||
setInfoBar(tr("'%1' was removed.", "'xxx.avi' was removed.").arg(fileName));
|
||||
--nbTorrents;
|
||||
tabs->setTabText(0, tr("Transfers") +" ("+QString(misc::toString(nbTorrents).c_str())+")");
|
||||
}
|
||||
@ -1030,9 +1030,9 @@ void GUI::torrentAdded(const QString& path, torrent_handle& h, bool fastResume){
|
||||
setRowColor(row, "grey");
|
||||
}
|
||||
if(!fastResume){
|
||||
setInfoBar("'" + path + "' "+tr("added to download list."));
|
||||
setInfoBar(tr("'%1' added to download list.", "'/home/y/xxx.torrent' was added to download list.").arg(path));
|
||||
}else{
|
||||
setInfoBar("'" + path + "' "+tr("resumed. (fast resume)"));
|
||||
setInfoBar(tr("'%1' resumed. (fast resume)", "'/home/y/xxx.torrent' was resumed. (fast resume)").arg(path));
|
||||
}
|
||||
++nbTorrents;
|
||||
tabs->setTabText(0, tr("Transfers") +" ("+QString(misc::toString(nbTorrents).c_str())+")");
|
||||
@ -1040,11 +1040,11 @@ void GUI::torrentAdded(const QString& path, torrent_handle& h, bool fastResume){
|
||||
|
||||
// Called when trying to add a duplicate torrent
|
||||
void GUI::torrentDuplicate(const QString& path){
|
||||
setInfoBar("'" + path + "' "+tr("already in download list.", "<file> already in download list."));
|
||||
setInfoBar(tr("'%1' is already in download list.", "e.g: 'xxx.avi' is already in download list.").arg(path));
|
||||
}
|
||||
|
||||
void GUI::torrentCorrupted(const QString& path){
|
||||
setInfoBar(tr("Unable to decode torrent file:")+" '"+path+"'", "red");
|
||||
setInfoBar(tr("Unable to decode torrent file: '%1'", "e.g: Unable to decode torrent file: '/home/y/xxx.torrent'").arg(path), "red");
|
||||
setInfoBar(tr("This file is either corrupted or this isn't a torrent."),"red");
|
||||
}
|
||||
|
||||
@ -1126,7 +1126,7 @@ void GUI::showProperties(const QModelIndex &index){
|
||||
int row = index.row();
|
||||
QString fileHash = DLListModel->data(DLListModel->index(row, HASH)).toString();
|
||||
torrent_handle h = BTSession.getTorrentHandle(fileHash);
|
||||
QStringList errors = trackerErrors.value(fileHash, QStringList(tr("None")));
|
||||
QStringList errors = trackerErrors.value(fileHash, QStringList(tr("None", "i.e: No error message")));
|
||||
properties *prop = new properties(this, h, errors);
|
||||
connect(prop, SIGNAL(changedFilteredFiles(torrent_handle, bool)), &BTSession, SLOT(reloadTorrent(torrent_handle, bool)));
|
||||
prop->show();
|
||||
@ -1144,7 +1144,7 @@ void GUI::configureSession(){
|
||||
BTSession.setListeningPortsRange(options->getPorts());
|
||||
new_listenPort = BTSession.getListenPort();
|
||||
if(new_listenPort != old_listenPort){
|
||||
setInfoBar(tr("Listening on port", "Listening on port <xxxxx>")+ ": " + QString(misc::toString(new_listenPort).c_str()));
|
||||
setInfoBar(tr("Listening on port: %1", "e.g: Listening on port: 1666").arg( QString(misc::toString(new_listenPort).c_str())));
|
||||
}
|
||||
// Apply max connec limit (-1 if disabled)
|
||||
BTSession.setMaxConnections(options->getMaxConnec());
|
||||
@ -1226,7 +1226,7 @@ void GUI::pauseAll(){
|
||||
DLListModel->setData(DLListModel->index(i, ETA), QVariant((qlonglong)-1));
|
||||
DLListModel->setData(DLListModel->index(i, NAME), QVariant(QIcon(":/Icons/skin/paused.png")), Qt::DecorationRole);
|
||||
setRowColor(i, "red");
|
||||
setInfoBar(tr("All downloads paused."));
|
||||
setInfoBar(tr("All downloads were paused."));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1247,7 +1247,7 @@ void GUI::pauseSelection(){
|
||||
DLListModel->setData(DLListModel->index(row, UPSPEED), QVariant((double)0.0));
|
||||
DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Paused")));
|
||||
DLListModel->setData(DLListModel->index(row, ETA), QVariant((qlonglong)-1));
|
||||
setInfoBar("'"+ QString(BTSession.getTorrentHandle(fileHash).name().c_str()) +"' "+tr("paused.", "<file> paused."));
|
||||
setInfoBar(tr("'%1' paused.", "xxx.avi paused.").arg(QString(BTSession.getTorrentHandle(fileHash).name().c_str())));
|
||||
DLListModel->setData(DLListModel->index(row, NAME), QIcon(":/Icons/skin/paused.png"), Qt::DecorationRole);
|
||||
setRowColor(row, "red");
|
||||
}
|
||||
@ -1266,10 +1266,10 @@ void GUI::resumeAll(){
|
||||
// Remove .paused file
|
||||
QFile::remove(misc::qBittorrentPath()+"BT_backup"+QDir::separator()+fileHash+".paused");
|
||||
// Update DL list items
|
||||
DLListModel->setData(DLListModel->index(i, STATUS), QVariant(tr("Connecting...")));
|
||||
DLListModel->setData(DLListModel->index(i, STATUS), QVariant(tr("Connecting...", "i.e: Connecting to the tracker...")));
|
||||
DLListModel->setData(DLListModel->index(i, NAME), QVariant(QIcon(":/Icons/skin/connecting.png")), Qt::DecorationRole);
|
||||
setRowColor(i, "grey");
|
||||
setInfoBar(tr("All downloads resumed."));
|
||||
setInfoBar(tr("All downloads were resumed."));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1289,7 +1289,7 @@ void GUI::startSelection(){
|
||||
// Update DL status
|
||||
int row = index.row();
|
||||
DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Connecting...")));
|
||||
setInfoBar("'"+ QString(BTSession.getTorrentHandle(fileHash).name().c_str()) +"' "+tr("resumed.", "<file> resumed."));
|
||||
setInfoBar(tr("'%1' resumed.", "e.g: xxx.avi resumed.").arg(QString(BTSession.getTorrentHandle(fileHash).name().c_str())));
|
||||
DLListModel->setData(DLListModel->index(row, NAME), QVariant(QIcon(":/Icons/skin/connecting.png")), Qt::DecorationRole);
|
||||
setRowColor(row, "grey");
|
||||
}
|
||||
@ -1318,16 +1318,16 @@ void GUI::propertiesSelection(){
|
||||
// called when a torrent has finished
|
||||
void GUI::finishedTorrent(torrent_handle& h){
|
||||
QString fileName = QString(h.name().c_str());
|
||||
setInfoBar(fileName+tr(" has finished downloading."));
|
||||
setInfoBar(tr("%1 has finished downloading.", "e.g: xxx.avi has finished downloading.").arg(fileName));
|
||||
if(options->getUseOSDAlways() || (options->getUseOSDWhenHiddenOnly() && (isMinimized() || isHidden()))) {
|
||||
myTrayIcon->showMessage(tr("Download finished"), fileName+tr(" has finished downloading.", "<filename> has finished downloading."), QSystemTrayIcon::Information, TIME_TRAY_BALLOON);
|
||||
myTrayIcon->showMessage(tr("Download finished"), tr("%1 has finished downloading.", "e.g: xxx.avi has finished downloading.").arg(fileName), QSystemTrayIcon::Information, TIME_TRAY_BALLOON);
|
||||
}
|
||||
}
|
||||
|
||||
// Notification when disk is full
|
||||
void GUI::fullDiskError(torrent_handle& h){
|
||||
if(options->getUseOSDAlways() || (options->getUseOSDWhenHiddenOnly() && (isMinimized() || isHidden()))) {
|
||||
myTrayIcon->showMessage(tr("I/O Error"), tr("An error occured when trying to read or write ")+ QString(h.name().c_str())+"."+tr("The disk is probably full, download has been paused"), QSystemTrayIcon::Critical, TIME_TRAY_BALLOON);
|
||||
myTrayIcon->showMessage(tr("I/O Error", "i.e: Input/Output Error"), tr("An error occured when trying to read or write %1. The disk is probably full, download has been paused", "e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused").arg(QString(h.name().c_str())), QSystemTrayIcon::Critical, TIME_TRAY_BALLOON);
|
||||
}
|
||||
// Download will be paused by libtorrent. Updating GUI information accordingly
|
||||
int row = getRowFromHash(QString(misc::toString(h.info_hash()).c_str()));
|
||||
@ -1335,7 +1335,7 @@ void GUI::fullDiskError(torrent_handle& h){
|
||||
DLListModel->setData(DLListModel->index(row, UPSPEED), QVariant((double)0.0));
|
||||
DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Paused")));
|
||||
DLListModel->setData(DLListModel->index(row, ETA), QVariant((qlonglong)-1));
|
||||
setInfoBar(tr("An error occured (full fisk?)")+", '"+ QString(h.get_torrent_info().name().c_str()) +"' "+tr("paused.", "<file> paused."));
|
||||
setInfoBar(tr("An error occured (full fisk?), '%1' paused.", "e.g: An error occured (full fisk?), 'xxx.avi' paused.").arg(QString(h.get_torrent_info().name().c_str())));
|
||||
DLListModel->setData(DLListModel->index(row, NAME), QIcon(":/Icons/skin/paused.png"), Qt::DecorationRole);
|
||||
setRowColor(row, "red");
|
||||
}
|
||||
@ -1392,16 +1392,16 @@ void GUI::checkConnectionStatus(){
|
||||
if(sessionStatus.has_incoming_connections){
|
||||
// Connection OK
|
||||
connecStatusLblIcon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/skin/connected.png")));
|
||||
connecStatusLblIcon->setToolTip(tr("<b>Connection Status:</b><br>Online"));
|
||||
connecStatusLblIcon->setToolTip("<b>"+tr("Connection Status:")+"</b><br>"+tr("Online"));
|
||||
}else{
|
||||
if(sessionStatus.num_peers){
|
||||
// Firewalled ?
|
||||
connecStatusLblIcon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/skin/firewalled.png")));
|
||||
connecStatusLblIcon->setToolTip(tr("<b>Connection Status:</b><br>Firewalled?<br><i>No incoming connections...</i>"));
|
||||
connecStatusLblIcon->setToolTip("<b>"+tr("Connection Status:")+"</b><br>"+tr("Firewalled?", "i.e: Behind a firewall/router?")+"<br><i>"+tr("No incoming connections...")+"</i>");
|
||||
}else{
|
||||
// Disconnected
|
||||
connecStatusLblIcon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/skin/disconnected.png")));
|
||||
connecStatusLblIcon->setToolTip(tr("<b>Connection Status:</b><br>Offline<br><i>No peers found...</i>"));
|
||||
connecStatusLblIcon->setToolTip("<b>"+tr("Connection Status:")+"</b><br>"+tr("Offline")+"<br><i>"+tr("No peers found...")+"</i>");
|
||||
}
|
||||
}
|
||||
qDebug("Connection status updated");
|
||||
@ -1454,7 +1454,7 @@ void GUI::on_search_button_clicked(){
|
||||
|
||||
// Getting checked search engines
|
||||
if(!mininova->isChecked() && ! piratebay->isChecked()/* && !reactor->isChecked()*/ && !isohunt->isChecked()/* && !btjunkie->isChecked()*/ && !meganova->isChecked()){
|
||||
QMessageBox::critical(0, tr("No seach engine selected"), tr("You must select at least one search engine."));
|
||||
QMessageBox::critical(0, tr("No search engine selected"), tr("You must select at least one search engine."));
|
||||
return;
|
||||
}
|
||||
QStringList params;
|
||||
@ -1686,7 +1686,7 @@ void GUI::on_update_nova_button_clicked(){
|
||||
}
|
||||
}else{
|
||||
if(version_on_server == 0.0){
|
||||
QMessageBox::information(this, tr("Search plugin update -- qBittorrent"),
|
||||
QMessageBox::information(this, tr("Search plugin update")+" -- "+tr("qBittorrent"),
|
||||
tr("Sorry, update server is temporarily unavailable."));
|
||||
}else{
|
||||
QMessageBox::information(this, tr("Search plugin update -- qBittorrent"),
|
||||
@ -1702,7 +1702,7 @@ void GUI::on_update_nova_button_clicked(){
|
||||
// Error | Stopped by user | Finished normally
|
||||
void GUI::searchFinished(int exitcode,QProcess::ExitStatus){
|
||||
if(options->getUseOSDAlways() || (options->getUseOSDWhenHiddenOnly() && (isMinimized() || isHidden()))) {
|
||||
myTrayIcon->showMessage(tr("Search Engine"), tr("Search is finished"), QSystemTrayIcon::Information, TIME_TRAY_BALLOON);
|
||||
myTrayIcon->showMessage(tr("Search Engine"), tr("Search has finished"), QSystemTrayIcon::Information, TIME_TRAY_BALLOON);
|
||||
}
|
||||
if(exitcode){
|
||||
search_status->setText(tr("An error occured during search..."));
|
||||
@ -1713,11 +1713,11 @@ void GUI::searchFinished(int exitcode,QProcess::ExitStatus){
|
||||
if(no_search_results){
|
||||
search_status->setText(tr("Search returned no results"));
|
||||
}else{
|
||||
search_status->setText(tr("Search is finished"));
|
||||
search_status->setText(tr("Search has finished"));
|
||||
}
|
||||
}
|
||||
}
|
||||
results_lbl->setText(tr("Results")+" <i>("+QString(misc::toString(nb_search_results).c_str())+")</i>:");
|
||||
results_lbl->setText(tr("Results", "i.e: Search results")+" <i>("+QString(misc::toString(nb_search_results).c_str())+")</i>:");
|
||||
search_button->setEnabled(true);
|
||||
stop_search_button->setEnabled(false);
|
||||
}
|
||||
@ -1818,7 +1818,7 @@ void GUI::downloadFromURLList(const QStringList& urls){
|
||||
}
|
||||
|
||||
void GUI::displayDownloadingUrlInfos(const QString& url){
|
||||
setInfoBar(tr("Downloading", "Example: Downloading www.example.com/test.torrent")+" '"+url+"', "+tr("Please wait..."), "black");
|
||||
setInfoBar(tr("Downloading '%1', please wait...", "e.g: Downloading 'xxx.torrent', please wait...").arg(url), "black");
|
||||
}
|
||||
|
||||
/*****************************************************
|
||||
|
@ -23,7 +23,7 @@
|
||||
#define ABOUT_H
|
||||
|
||||
#include "ui_about.h"
|
||||
#define VERSION "v0.9.0beta4"
|
||||
#define VERSION "v0.9.0beta5"
|
||||
|
||||
class about : public QDialog, private Ui::AboutDlg{
|
||||
Q_OBJECT
|
||||
@ -33,9 +33,9 @@ class about : public QDialog, private Ui::AboutDlg{
|
||||
setupUi(this);
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
// Set icons
|
||||
logo->setPixmap(QPixmap(QString::fromUtf8(":/Icons/yinyang32.png")));
|
||||
logo->setPixmap(QPixmap(QString::fromUtf8(":/Icons/qbittorrent32.png")));
|
||||
//Title
|
||||
lb_name->setText("<b><h1>"+tr("qBittorrent ")+VERSION"</h1></b>");
|
||||
lb_name->setText("<b><h1>"+tr("qBittorrent")+" "+VERSION"</h1></b>");
|
||||
// Thanks
|
||||
te_thanks->append("<ul><li>I would like to thank sourceforge.net for hosting qBittorrent project.</li>");
|
||||
te_thanks->append("<li>I also want to thank Jeffery Fernandez (jeffery@qbittorrent.org), project consultant, webdevelopper and RPM packager, for his help.</li>");
|
||||
@ -64,7 +64,7 @@ class about : public QDialog, private Ui::AboutDlg{
|
||||
- <u>Swedish:</u> Daniel Nylander (po@danielnylander.se)<br>\
|
||||
- <u>Turkish:</u> Erdem Bingöl (erdem84@gmail.com)<br>\
|
||||
- <u>Ukrainian:</u> Andrey Shpachenko (masterfix@users.sourceforge.net)<br><br>"));
|
||||
te_translation->append(tr("Please contact me if you would like to translate qBittorrent to your own language."));
|
||||
te_translation->append(tr("Please contact me if you would like to translate qBittorrent into your own language."));
|
||||
// License
|
||||
te_license->append("<center><b>GNU GENERAL PUBLIC LICENSE</b></center><br>\
|
||||
<center>Version 2, June 1991</center><br>\
|
||||
|
@ -43,7 +43,7 @@
|
||||
|
||||
#include "deleteThread.h"
|
||||
|
||||
#define VERSION "v0.9.0beta4"
|
||||
#define VERSION "v0.9.0beta5"
|
||||
#define VERSION_MAJOR 0
|
||||
#define VERSION_MINOR 9
|
||||
#define VERSION_BUGFIX 0
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -203,21 +203,21 @@ class misc : public QObject{
|
||||
return QString::QString(tr("Unknown"));
|
||||
}
|
||||
if(seconds < 60){
|
||||
return QString::QString("< 1"+tr("m", "minutes"));
|
||||
return tr("< 1m", "< 1 minute");
|
||||
}
|
||||
int minutes = seconds / 60;
|
||||
if(minutes < 60){
|
||||
return QString::QString(misc::toString(minutes).c_str())+tr("m", "minutes");
|
||||
return tr("%1m","e.g: 10minutes").arg(QString::QString(misc::toString(minutes).c_str()));
|
||||
}
|
||||
int hours = minutes / 60;
|
||||
minutes = minutes - hours*60;
|
||||
if(hours < 24){
|
||||
return QString::QString(misc::toString(hours).c_str())+tr("h", "hours")+" "+QString::QString(misc::toString(minutes).c_str())+tr("m", "minutes");
|
||||
return tr("%1h%2m", "e.g: 3hours 5minutes").arg(QString(misc::toString(hours).c_str())).arg(QString(misc::toString(minutes).c_str()));
|
||||
}
|
||||
int days = hours / 24;
|
||||
hours = hours - days * 24;
|
||||
if(days < 100){
|
||||
return QString::QString(misc::toString(days).c_str())+tr("d", "days")+" "+QString::QString(misc::toString(hours).c_str())+tr("h ", "hours")+QString::QString(misc::toString(minutes).c_str())+tr("m", "minutes");
|
||||
return tr("%1d%2h%3m", "e.g: 2days 10hours 2minutes").arg(QString(misc::toString(days).c_str())).arg(QString(misc::toString(hours).c_str())).arg(QString(misc::toString(minutes).c_str()));
|
||||
}
|
||||
return QString::QString(tr("Unknown"));
|
||||
}
|
||||
|
@ -236,7 +236,7 @@ void options_imp::saveOptions(){
|
||||
}
|
||||
settings.endGroup();
|
||||
// set infobar text
|
||||
emit status_changed(tr("Options saved successfully!"));
|
||||
emit status_changed(tr("Options were saved successfully."));
|
||||
// Disable apply Button
|
||||
applyButton->setEnabled(false);
|
||||
}
|
||||
@ -703,14 +703,14 @@ QString options_imp::getScanDir() const{
|
||||
|
||||
// Display dialog to choose scan dir
|
||||
void options_imp::on_browse_button_scan_clicked(){
|
||||
QString dir = QFileDialog::getExistingDirectory(this, tr("Choose Scan Directory"), QDir::homePath());
|
||||
QString dir = QFileDialog::getExistingDirectory(this, tr("Choose scan directory"), QDir::homePath());
|
||||
if(!dir.isNull()){
|
||||
scanDir->setText(dir);
|
||||
}
|
||||
}
|
||||
|
||||
void options_imp::on_filterBrowse_clicked(){
|
||||
QString ipfilter = QFileDialog::getOpenFileName(this, tr("Choose ipfilter.dat file"), QDir::homePath());
|
||||
QString ipfilter = QFileDialog::getOpenFileName(this, tr("Choose an ipfilter.dat file"), QDir::homePath());
|
||||
if(!ipfilter.isNull()){
|
||||
filterFile->setText(ipfilter);
|
||||
processFilterFile(ipfilter);
|
||||
@ -726,7 +726,7 @@ void options_imp::on_browsePreview_clicked(){
|
||||
|
||||
// Display dialog to choose save dir
|
||||
void options_imp::on_browse_button_clicked(){
|
||||
QString dir = QFileDialog::getExistingDirectory(this, tr("Choose save Directory"), QDir::homePath());
|
||||
QString dir = QFileDialog::getExistingDirectory(this, tr("Choose a save directory"), QDir::homePath());
|
||||
if(!dir.isNull()){
|
||||
txt_savePath->setText(dir);
|
||||
}
|
||||
@ -758,7 +758,7 @@ void options_imp::processFilterFile(const QString& filePath){
|
||||
QStringList IP;
|
||||
if (file.exists()){
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
QMessageBox::critical(0, tr("I/O Error"), tr("Couldn't open:")+" "+filePath+" "+tr("in read mode."));
|
||||
QMessageBox::critical(0, tr("I/O Error", "Input/Output Error"), tr("Couldn't open %1 in read mode.").arg(filePath));
|
||||
continue;
|
||||
}
|
||||
unsigned int nbLine = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user