ChannelFeed:

- Sort the ChanMsgItems of the channel by date

ChanMsgItem:
- Fixed adding all files (SubFileItem) again by pressing the unsubscribe button (only in Friend Storm)
- Enable unsubscribe button only when channel is subscribed (only in Friend Storm)
- Fixed adding files with umlauts (utf8) on Windows
- Enabled Download and Play button in ChanMsgItem, when they are enabled in the SubFileItems

ftServer:
- Added the method alreadyHaveFile for use in the GUI - recompile of GUI needed

SubFileItem:
- Added state strings like LOCAL, REMOTE, ERROR, ... for translating


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3614 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2010-10-05 20:39:14 +00:00
parent 3c29434007
commit d31cef0f11
14 changed files with 290 additions and 120 deletions

View file

@ -994,12 +994,10 @@ bool ftController::handleAPendingRequest()
return true ; return true ;
} }
bool ftController::alreadyHaveFile(const std::string& hash) bool ftController::alreadyHaveFile(const std::string& hash, FileInfo &info)
{ {
FileInfo info ;
// check for downloads // check for downloads
if(FileDetails(hash, info) && (info.downloadStatus == FT_STATE_COMPLETE)) if (FileDetails(hash, info) && (info.downloadStatus == FT_STATE_COMPLETE))
return true ; return true ;
// check for file lists // check for file lists
@ -1017,7 +1015,8 @@ bool ftController::FileRequest(const std::string& fname, const std::string& has
/* check if we have the file */ /* check if we have the file */
if(alreadyHaveFile(hash)) FileInfo info;
if(alreadyHaveFile(hash, info))
return false ; return false ;
if(size == 0) // we treat this special case because if(size == 0) // we treat this special case because
@ -1077,7 +1076,6 @@ bool ftController::FileRequest(const std::string& fname, const std::string& has
} }
} }
FileInfo info;
std::list<std::string>::const_iterator it; std::list<std::string>::const_iterator it;
std::list<TransferInfo>::const_iterator pit; std::list<TransferInfo>::const_iterator pit;

View file

@ -142,7 +142,7 @@ class ftController: public CacheTransfer, public RsThread, public pqiMonitor, pu
const std::list<std::string> &sourceIds); const std::list<std::string> &sourceIds);
/// Do we already have this file, either in download or in file lists ? /// Do we already have this file, either in download or in file lists ?
bool alreadyHaveFile(const std::string& hash) ; bool alreadyHaveFile(const std::string& hash, FileInfo &info);
bool setChunkStrategy(const std::string& hash,FileChunksInfo::ChunkStrategy s); bool setChunkStrategy(const std::string& hash,FileChunksInfo::ChunkStrategy s);
void setDefaultChunkStrategy(FileChunksInfo::ChunkStrategy s); void setDefaultChunkStrategy(FileChunksInfo::ChunkStrategy s);

View file

@ -281,6 +281,11 @@ bool ftServer::checkHash(const std::string& hash,std::string& error_string)
return true ; return true ;
} }
bool ftServer::alreadyHaveFile(const std::string& hash, FileInfo &info)
{
return mFtController->alreadyHaveFile(hash, info);
}
bool ftServer::FileRequest(const std::string& fname, const std::string& hash, uint64_t size, const std::string& dest, uint32_t flags, const std::list<std::string>& srcIds) bool ftServer::FileRequest(const std::string& fname, const std::string& hash, uint64_t size, const std::string& dest, uint32_t flags, const std::list<std::string>& srcIds)
{ {
std::string error_string ; std::string error_string ;

View file

@ -120,6 +120,7 @@ ftController *getController() const { return mFtController ; }
/*** /***
* Control of Downloads * Control of Downloads
***/ ***/
virtual bool alreadyHaveFile(const std::string& hash, FileInfo &info);
virtual bool FileRequest(const std::string& fname, const std::string& hash, uint64_t size, const std::string& dest, uint32_t flags, const std::list<std::string>& srcIds); virtual bool FileRequest(const std::string& fname, const std::string& hash, uint64_t size, const std::string& dest, uint32_t flags, const std::list<std::string>& srcIds);
virtual bool FileCancel(const std::string& hash); virtual bool FileCancel(const std::string& hash);
virtual bool FileControl(const std::string& hash, uint32_t flags); virtual bool FileControl(const std::string& hash, uint32_t flags);

View file

@ -111,6 +111,7 @@ class RsFiles
* Control of Downloads. * Control of Downloads.
***/ ***/
virtual bool alreadyHaveFile(const std::string& hash, FileInfo &info) = 0;
/// Returns false is we already have the file. Otherwise, initiates the dl and returns true. /// Returns false is we already have the file. Otherwise, initiates the dl and returns true.
virtual bool FileRequest(const std::string& fname, const std::string& hash, uint64_t size, const std::string& dest, uint32_t flags, const std::list<std::string>& srcIds) = 0; virtual bool FileRequest(const std::string& fname, const std::string& hash, uint64_t size, const std::string& dest, uint32_t flags, const std::list<std::string>& srcIds) = 0;
virtual bool FileCancel(const std::string& hash) = 0; virtual bool FileCancel(const std::string& hash) = 0;

View file

@ -338,7 +338,14 @@ bool p3Channels::channelExtraFileHash(std::string path, std::string chId, FileIn
bool p3Channels::cpyMsgFileToChFldr(std::string path, std::string fname, std::string chId, bool& fileTooLarge){ bool p3Channels::cpyMsgFileToChFldr(std::string path, std::string fname, std::string chId, bool& fileTooLarge){
FILE *outFile = NULL, *inFile = fopen(path.c_str(), "rb"); FILE *outFile = NULL, *inFile;
#ifdef WINDOWS_SYS
std::wstring wpath;
librs::util::ConvertUtf8ToUtf16(path, wpath);
inFile = _wfopen(wpath.c_str(), L"rb");
#else
inFile = fopen(path.c_str(), "rb");
#endif
long buffSize = 0; long buffSize = 0;
char* buffer = NULL; char* buffer = NULL;
@ -370,7 +377,13 @@ bool p3Channels::cpyMsgFileToChFldr(std::string path, std::string fname, std::st
fclose(inFile); fclose(inFile);
std::string localpath = mChannelsDir + "/" + chId + "/" + fname; std::string localpath = mChannelsDir + "/" + chId + "/" + fname;
#ifdef WINDOWS_SYS
std::wstring wlocalpath;
librs::util::ConvertUtf8ToUtf16(localpath, wlocalpath);
outFile = _wfopen(wlocalpath.c_str(), L"wb");
#else
outFile = fopen(localpath.c_str(), "wb"); outFile = fopen(localpath.c_str(), "wb");
#endif
} }
if(outFile){ if(outFile){

View file

@ -672,6 +672,11 @@ void ChannelFeed::updateChannelListOther(std::list<std::string> &ids)
} }
} }
static bool sortChannelMsgSummary(const ChannelMsgSummary &msg1, const ChannelMsgSummary &msg2)
{
return (msg1.ts < msg2.ts);
}
void ChannelFeed::updateChannelMsgs() void ChannelFeed::updateChannelMsgs()
{ {
if (!rsChannels) if (!rsChannels)
@ -744,6 +749,8 @@ void ChannelFeed::updateChannelMsgs()
rsChannels->getChannelMsgList(mChannelId, msgs); rsChannels->getChannelMsgList(mChannelId, msgs);
msgs.sort(sortChannelMsgSummary);
for(it = msgs.begin(); it != msgs.end(); it++) for(it = msgs.begin(); it != msgs.end(); it++)
{ {
ChanMsgItem *cmi = new ChanMsgItem(this, 0, mChannelId, it->msgId, true); ChanMsgItem *cmi = new ChanMsgItem(this, 0, mChannelId, it->msgId, true);

View file

@ -135,15 +135,14 @@ void CreateChannelMsg::dropEvent(QDropEvent *event)
QList<QUrl>::iterator uit; QList<QUrl>::iterator uit;
for(uit = urls.begin(); uit != urls.end(); uit++) for(uit = urls.begin(); uit != urls.end(); uit++)
{ {
std::string localpath = uit->toLocalFile().toStdString(); std::string localpath = uit->toLocalFile().toUtf8().constData();
std::cerr << "Whole URL: " << uit->toString().toStdString(); std::cerr << "Whole URL: " << uit->toString().toStdString();
std::cerr << std::endl; std::cerr << std::endl;
std::cerr << "or As Local File: " << localpath; std::cerr << "or As Local File: " << uit->toLocalFile().toStdString();
std::cerr << std::endl; std::cerr << std::endl;
if (localpath.size() > 0) if (localpath.size() > 0)
{ {
addAttachment(localpath); addAttachment(localpath);
} }
} }
@ -289,7 +288,7 @@ void CreateChannelMsg::addExtraFile()
// select a file // select a file
QString qfile = QFileDialog::getOpenFileName(this, tr("Add Extra File"), "", "", 0, QString qfile = QFileDialog::getOpenFileName(this, tr("Add Extra File"), "", "", 0,
QFileDialog::DontResolveSymlinks); QFileDialog::DontResolveSymlinks);
std::string filePath = qfile.toStdString(); std::string filePath = qfile.toUtf8().constData();
if (filePath != "") if (filePath != "")
{ {
addAttachment(filePath); addAttachment(filePath);
@ -347,9 +346,6 @@ void CreateChannelMsg::checkAttachmentReady()
buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
buttonBox->button(QDialogButtonBox::Cancel)->setEnabled(false); buttonBox->button(QDialogButtonBox::Cancel)->setEnabled(false);
break; break;
return;
} }
} }
} }

View file

@ -52,6 +52,8 @@ ChanMsgItem::ChanMsgItem(FeedHolder *parent, uint32_t feedId, std::string chanId
/* specific */ /* specific */
connect( unsubscribeButton, SIGNAL( clicked( void ) ), this, SLOT( unsubscribeChannel ( void ) ) ); connect( unsubscribeButton, SIGNAL( clicked( void ) ), this, SLOT( unsubscribeChannel ( void ) ) );
connect( downloadButton, SIGNAL( clicked( void ) ), this, SLOT( download ( void ) ) );
connect( playButton, SIGNAL( clicked( void ) ), this, SLOT( play ( void ) ) );
downloadButton->hide(); downloadButton->hide();
playButton->hide(); playButton->hide();
@ -89,12 +91,24 @@ void ChanMsgItem::updateItemStatic()
title += QString::fromStdWString(ci.channelName); title += QString::fromStdWString(ci.channelName);
titleLabel->setText(title); titleLabel->setText(title);
subjectLabel->setText(QString::fromStdWString(cmi.subject)); subjectLabel->setText(QString::fromStdWString(cmi.subject));
if ((ci.channelFlags & RS_DISTRIB_SUBSCRIBED) || (ci.channelFlags & RS_DISTRIB_ADMIN)) {
unsubscribeButton->setEnabled(true);
} else {
unsubscribeButton->setEnabled(false);
}
} }
else else
{ {
/* subject */ /* subject */
titleLabel->setText(QString::fromStdWString(cmi.subject)); titleLabel->setText(QString::fromStdWString(cmi.subject));
subjectLabel->setText(QString::fromStdWString(cmi.msg)); subjectLabel->setText(QString::fromStdWString(cmi.msg));
/* disable buttons: deletion facility not enabled with cache services yet */
clearButton->setEnabled(false);
unsubscribeButton->setEnabled(false);
clearButton->hide();
unsubscribeButton->hide();
} }
msgLabel->setText(QString::fromStdWString(cmi.msg)); msgLabel->setText(QString::fromStdWString(cmi.msg));
@ -111,6 +125,15 @@ void ChanMsgItem::updateItemStatic()
} }
if (mFileItems.empty() == false) {
std::list<SubFileItem *>::iterator it;
for(it = mFileItems.begin(); it != mFileItems.end(); it++)
{
delete(*it);
}
mFileItems.clear();
}
std::list<FileInfo>::iterator it; std::list<FileInfo>::iterator it;
for(it = cmi.files.begin(); it != cmi.files.end(); it++) for(it = cmi.files.begin(); it != cmi.files.end(); it++)
{ {
@ -132,17 +155,6 @@ void ChanMsgItem::updateItemStatic()
label->setPixmap(thumbnail); label->setPixmap(thumbnail);
label->setStyleSheet("QLabel#label{border: 2px solid #D3D3D3;border-radius: 3px;}"); label->setStyleSheet("QLabel#label{border: 2px solid #D3D3D3;border-radius: 3px;}");
} }
if (mIsHome)
{
/* disable buttons: deletion facility not enabled with cache services yet */
clearButton->setEnabled(false);
unsubscribeButton->setEnabled(false);
clearButton->hide();
unsubscribeButton->hide();
}
} }
@ -155,22 +167,68 @@ void ChanMsgItem::updateItem()
#endif #endif
int msec_rate = 10000; int msec_rate = 10000;
int downloadCount = 0;
int downloadStartable = 0;
int playCount = 0;
int playStartable = 0;
bool startable;
bool loopAgain = false;
/* Very slow Tick to check when all files are downloaded */ /* Very slow Tick to check when all files are downloaded */
std::list<SubFileItem *>::iterator it; std::list<SubFileItem *>::iterator it;
for(it = mFileItems.begin(); it != mFileItems.end(); it++) for(it = mFileItems.begin(); it != mFileItems.end(); it++)
{ {
if (!(*it)->done()) SubFileItem *item = *it;
if (item->isDownloadable(startable)) {
downloadCount++;
if (startable) {
downloadStartable++;
}
}
if (item->isPlayable(startable)) {
playCount++;
if (startable) {
playStartable++;
}
}
if (!item->done())
{ {
/* loop again */ /* loop again */
loopAgain = true;
}
}
if (downloadCount) {
downloadButton->show();
if (downloadStartable) {
downloadButton->setEnabled(true);
} else {
downloadButton->setEnabled(false);
}
} else {
downloadButton->hide();
}
if (playCount) {
/* one file is playable */
playButton->show();
if (playStartable == 1) {
playButton->setEnabled(true);
} else {
playButton->setEnabled(false);
}
} else {
playButton->hide();
}
if (loopAgain) {
QTimer::singleShot( msec_rate, this, SLOT(updateItem( void ) )); QTimer::singleShot( msec_rate, this, SLOT(updateItem( void ) ));
return;
} }
}
} }
void ChanMsgItem::small() void ChanMsgItem::small()
{ {
expandFrame->hide(); expandFrame->hide();
@ -192,7 +250,6 @@ void ChanMsgItem::toggle()
} }
} }
void ChanMsgItem::removeItem() void ChanMsgItem::removeItem()
{ {
#ifdef DEBUG_ITEM #ifdef DEBUG_ITEM
@ -220,10 +277,10 @@ void ChanMsgItem::gotoHome()
void ChanMsgItem::unsubscribeChannel() void ChanMsgItem::unsubscribeChannel()
{ {
#ifdef DEBUG_ITEM #ifdef DEBUG_ITEM
std::cerr << "ChanMsgItem::unsubscribeChannel()"; std::cerr << "ChanMsgItem::unsubscribeChannel()";
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
if (rsChannels) if (rsChannels)
{ {
@ -232,3 +289,25 @@ void ChanMsgItem::unsubscribeChannel()
updateItemStatic(); updateItemStatic();
} }
void ChanMsgItem::download()
{
std::list<SubFileItem *>::iterator it;
for(it = mFileItems.begin(); it != mFileItems.end(); it++)
{
(*it)->download();
}
updateItem();
}
void ChanMsgItem::play()
{
std::list<SubFileItem *>::iterator it;
for(it = mFileItems.begin(); it != mFileItems.end(); it++)
{
bool startable;
if ((*it)->isPlayable(startable) && startable) {
(*it)->play();
}
}
}

View file

@ -48,6 +48,8 @@ private slots:
void toggle(); void toggle();
void unsubscribeChannel(); void unsubscribeChannel();
void download();
void play();
void updateItem(); void updateItem();

View file

@ -111,11 +111,9 @@ void SubFileItem::Setup()
if (mMode == SFI_STATE_REMOTE) if (mMode == SFI_STATE_REMOTE)
{ {
FileInfo fi; FileInfo fi;
uint32_t hintflags = RS_FILE_HINTS_EXTRA | RS_FILE_HINTS_LOCAL
| RS_FILE_HINTS_SPEC_ONLY;
/* look up path */ /* look up path */
if (rsFiles->FileDetails(mFileHash, hintflags, fi)) if (rsFiles->alreadyHaveFile(mFileHash, fi))
{ {
#ifdef DEBUG_ITEM #ifdef DEBUG_ITEM
std::cerr << "SubFileItem::Setup() STATE=>Local Found File"; std::cerr << "SubFileItem::Setup() STATE=>Local Found File";
@ -131,8 +129,6 @@ void SubFileItem::Setup()
smaller(); smaller();
updateItemStatic(); updateItemStatic();
updateItem(); updateItem();
} }
@ -154,7 +150,7 @@ void SubFileItem::updateItemStatic()
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
QString filename = QString::fromStdString(mFileName); QString filename = QString::fromUtf8(mFileName.c_str());
mDivisor = 1; mDivisor = 1;
if (mFileSize > 10000000) /* 10 Mb */ if (mFileSize > 10000000) /* 10 Mb */
@ -214,7 +210,7 @@ void SubFileItem::updateItemStatic()
{ {
case SFI_STATE_ERROR: case SFI_STATE_ERROR:
progressBar->setRange(0, 100); progressBar->setRange(0, 100);
progressBar->setFormat("ERROR"); progressBar->setFormat(tr("ERROR"));
playButton->setEnabled(false); playButton->setEnabled(false);
downloadButton->setEnabled(false); downloadButton->setEnabled(false);
@ -222,12 +218,12 @@ void SubFileItem::updateItemStatic()
expandButton->setEnabled(false); expandButton->setEnabled(false);
progressBar->setValue(0); progressBar->setValue(0);
filename = "[ERROR] " + filename; filename = "[" + tr("ERROR") + "] " + filename;
break; break;
case SFI_STATE_EXTRA: case SFI_STATE_EXTRA:
filename = QString::fromStdString(mPath); filename = QString::fromUtf8(mPath.c_str());
progressBar->setRange(0, 100); progressBar->setRange(0, 100);
progressBar->setFormat("HASHING"); progressBar->setFormat("HASHING");
@ -238,7 +234,7 @@ void SubFileItem::updateItemStatic()
expandButton->setEnabled(false); expandButton->setEnabled(false);
progressBar->setValue(0); progressBar->setValue(0);
filename = "[EXTRA] " + filename; filename = "[" + tr("EXTRA") + "] " + filename;
break; break;
@ -249,7 +245,7 @@ void SubFileItem::updateItemStatic()
expandButton->setEnabled(false); expandButton->setEnabled(false);
progressBar->setValue(0); progressBar->setValue(0);
filename = "[REMOTE] " + filename; filename = "[" + tr("REMOTE") + "] " + filename;
break; break;
@ -258,7 +254,7 @@ void SubFileItem::updateItemStatic()
downloadButton->setEnabled(false); downloadButton->setEnabled(false);
cancelButton->setEnabled(true); cancelButton->setEnabled(true);
expandButton->setEnabled(true); expandButton->setEnabled(true);
filename = "[DOWNLOAD] " + filename; filename = "[" + tr("DOWNLOAD") + "] " + filename;
break; break;
@ -269,7 +265,7 @@ void SubFileItem::updateItemStatic()
expandButton->setEnabled(false); expandButton->setEnabled(false);
progressBar->setValue(mFileSize / mDivisor); progressBar->setValue(mFileSize / mDivisor);
filename = "[LOCAL] " + filename; filename = "[" + tr("LOCAL") + "] " + filename;
break; break;
@ -278,7 +274,7 @@ void SubFileItem::updateItemStatic()
downloadButton->setEnabled(false); downloadButton->setEnabled(false);
cancelButton->setEnabled(false); cancelButton->setEnabled(false);
expandButton->setEnabled(true); expandButton->setEnabled(true);
filename = "[UPLOAD] " + filename; filename = "[" + tr("UPLOAD") + "] " + filename;
break; break;
} }
@ -341,6 +337,11 @@ void SubFileItem::updateItem()
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
/* ignore - dead file, or done */ /* ignore - dead file, or done */
if (mMode == SFI_STATE_ERROR) {
/* updateStatic once */
stateChanged = true;
}
} }
else if (mMode == SFI_STATE_EXTRA) else if (mMode == SFI_STATE_EXTRA)
{ {
@ -554,6 +555,8 @@ void SubFileItem::cancel()
{ {
rsFiles->FileCancel(mFileHash); rsFiles->FileCancel(mFileHash);
} }
updateItem();
} }
@ -617,6 +620,9 @@ void SubFileItem::download()
} }
rsFiles->FileRequest(mFileName, mFileHash, mFileSize, "", RS_FILE_HINTS_NETWORK_WIDE, srcIds); rsFiles->FileRequest(mFileName, mFileHash, mFileSize, "", RS_FILE_HINTS_NETWORK_WIDE, srcIds);
downloadButton->setEnabled(false);
updateItem();
} }
@ -653,3 +659,21 @@ void SubFileItem::save()
uint32_t SubFileItem::getState() { uint32_t SubFileItem::getState() {
return mMode; return mMode;
} }
bool SubFileItem::isDownloadable(bool &startable)
{
/* Check buttons. Not good, but it works. */
bool visible = downloadButton->isVisibleTo(this);
startable = visible && downloadButton->isEnabled();
return visible;
}
bool SubFileItem::isPlayable(bool &startable)
{
/* Check buttons. Not good, but it works. */
bool visible = playButton->isVisibleTo(this);
startable = visible && playButton->isEnabled();
return visible;
}

View file

@ -70,14 +70,17 @@ public:
bool ready(); bool ready();
uint32_t getState(); uint32_t getState();
bool isDownloadable(bool &startable);
bool isPlayable(bool &startable);
public slots: public slots:
void download(); void download();
void play();
private slots: private slots:
void toggle(); void toggle();
void cancel(); void cancel();
void play();
void save(); void save();
void updateItem(); void updateItem();

View file

@ -856,18 +856,28 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>ChanMsgItem</name> <name>ChanMsgItem</name>
<message> <message>
<location filename="../gui/feeds/ChanMsgItem.ui" line="+221"/> <location filename="../gui/feeds/ChanMsgItem.ui" line="+230"/>
<source>Remove Item</source> <source>Remove Item</source>
<translation>Eintrag entfernen</translation> <translation>Eintrag entfernen</translation>
</message> </message>
<message> <message>
<location line="+20"/> <location line="+20"/>
<location filename="../gui/feeds/ChanMsgItem.cpp" line="+189"/> <location filename="../gui/feeds/ChanMsgItem.cpp" line="+249"/>
<source>Expand</source> <source>Expand</source>
<translation>Erweitern</translation> <translation>Erweitern</translation>
</message> </message>
<message> <message>
<location line="-40"/> <location line="+24"/>
<source>Download</source>
<translation type="unfinished">Herunterladen</translation>
</message>
<message>
<location line="+11"/>
<source>Play</source>
<translation type="unfinished">Abspielen</translation>
</message>
<message>
<location line="-75"/>
<source>Unsubscribe From Channel</source> <source>Unsubscribe From Channel</source>
<translation>Kanal abbestellen</translation> <translation>Kanal abbestellen</translation>
</message> </message>
@ -972,7 +982,7 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>ChannelFeed</name> <name>ChannelFeed</name>
<message> <message>
<location filename="../gui/ChannelFeed.ui" line="+141"/> <location filename="../gui/ChannelFeed.ui" line="+144"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
@ -1287,7 +1297,7 @@ Keine Beschreibung</translation>
<context> <context>
<name>ChatStyle</name> <name>ChatStyle</name>
<message> <message>
<location filename="../gui/chat/ChatStyle.cpp" line="+381"/> <location filename="../gui/chat/ChatStyle.cpp" line="+383"/>
<source>Standard style for group chat</source> <source>Standard style for group chat</source>
<translation>Standard Stil für den Gruppenchat</translation> <translation>Standard Stil für den Gruppenchat</translation>
</message> </message>
@ -2220,7 +2230,7 @@ p, li { white-space: pre-wrap; }
<translation>Drag&apos;n&apos;Drop Dateien aus den Suchergebnissen</translation> <translation>Drag&apos;n&apos;Drop Dateien aus den Suchergebnissen</translation>
</message> </message>
<message> <message>
<location filename="../gui/channels/CreateChannelMsg.cpp" line="+290"/> <location filename="../gui/channels/CreateChannelMsg.cpp" line="+289"/>
<source>Add Extra File</source> <source>Add Extra File</source>
<translation>Zusätzlich eine Datei hinzufügen</translation> <translation>Zusätzlich eine Datei hinzufügen</translation>
</message> </message>
@ -3499,7 +3509,7 @@ p, li { white-space: pre-wrap; }
<translation>Andere Foren</translation> <translation>Andere Foren</translation>
</message> </message>
<message> <message>
<location filename="../gui/ForumsDialog.ui" line="+618"/> <location filename="../gui/ForumsDialog.ui" line="+621"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
@ -4588,7 +4598,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<location line="+32"/> <location line="+32"/>
<location filename="../gui/im_history/ImHistoryBrowser.cpp" line="+295"/> <location filename="../gui/im_history/ImHistoryBrowser.cpp" line="+383"/>
<source>Copy</source> <source>Copy</source>
<translation>Kopieren</translation> <translation>Kopieren</translation>
</message> </message>
@ -5725,7 +5735,7 @@ Willst Du die Nachricht speichern ?</translation>
<translation>Von</translation> <translation>Von</translation>
</message> </message>
<message> <message>
<location line="+793"/> <location line="+796"/>
<source>Size</source> <source>Size</source>
<translation>Grösse</translation> <translation>Grösse</translation>
</message> </message>
@ -5738,7 +5748,7 @@ p, li { white-space: pre-wrap; }
<translation>&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;p, li { white-space: pre-wrap; }&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal; text-decoration:none;&quot;&gt;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt; font-weight:600;&quot;&gt;Empfohlene Dateien&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation>&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;p, li { white-space: pre-wrap; }&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal; text-decoration:none;&quot;&gt;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt; font-weight:600;&quot;&gt;Empfohlene Dateien&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location line="-692"/> <location line="-695"/>
<source>Reply</source> <source>Reply</source>
<translation>Antworten</translation> <translation>Antworten</translation>
</message> </message>
@ -5803,7 +5813,7 @@ p, li { white-space: pre-wrap; }
<translation>Anhänge</translation> <translation>Anhänge</translation>
</message> </message>
<message> <message>
<location line="+171"/> <location line="+174"/>
<location filename="../gui/MessagesDialog.cpp" line="-44"/> <location filename="../gui/MessagesDialog.cpp" line="-44"/>
<location line="+922"/> <location line="+922"/>
<location line="+10"/> <location line="+10"/>
@ -5887,13 +5897,13 @@ p, li { white-space: pre-wrap; }
<translation>Dokument drucken</translation> <translation>Dokument drucken</translation>
</message> </message>
<message> <message>
<location filename="../gui/MessagesDialog.ui" line="-859"/> <location filename="../gui/MessagesDialog.ui" line="-862"/>
<location filename="../gui/MessagesDialog.cpp" line="-1574"/> <location filename="../gui/MessagesDialog.cpp" line="-1574"/>
<source>Subject</source> <source>Subject</source>
<translation>Betreff</translation> <translation>Betreff</translation>
</message> </message>
<message> <message>
<location line="+514"/> <location line="+517"/>
<source>Subject:</source> <source>Subject:</source>
<translation>Betreff:</translation> <translation>Betreff:</translation>
</message> </message>
@ -5923,7 +5933,7 @@ p, li { white-space: pre-wrap; }
<translation>Prüfsumme</translation> <translation>Prüfsumme</translation>
</message> </message>
<message> <message>
<location line="-942"/> <location line="-945"/>
<source>Print</source> <source>Print</source>
<translation>Drucken</translation> <translation>Drucken</translation>
</message> </message>
@ -5986,7 +5996,7 @@ p, li { white-space: pre-wrap; }
<translation>Allen antworten</translation> <translation>Allen antworten</translation>
</message> </message>
<message> <message>
<location filename="../gui/MessagesDialog.ui" line="+579"/> <location filename="../gui/MessagesDialog.ui" line="+582"/>
<source>&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; <source>&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
@ -5999,7 +6009,7 @@ p, li { white-space: pre-wrap; }
<translation>Posteingang gesamt:</translation> <translation>Posteingang gesamt:</translation>
</message> </message>
<message> <message>
<location line="-268"/> <location line="-271"/>
<location filename="../gui/MessagesDialog.cpp" line="-324"/> <location filename="../gui/MessagesDialog.cpp" line="-324"/>
<source>Content</source> <source>Content</source>
<translation>Inhalt</translation> <translation>Inhalt</translation>
@ -6018,7 +6028,7 @@ p, li { white-space: pre-wrap; }
<translation>Schlagwort</translation> <translation>Schlagwort</translation>
</message> </message>
<message> <message>
<location line="+171"/> <location line="+174"/>
<location filename="../gui/MessagesDialog.cpp" line="+710"/> <location filename="../gui/MessagesDialog.cpp" line="+710"/>
<location line="+964"/> <location line="+964"/>
<location line="+5"/> <location line="+5"/>
@ -7190,7 +7200,7 @@ p, li { white-space: pre-wrap; }
<translation>Verfügbar</translation> <translation>Verfügbar</translation>
</message> </message>
<message> <message>
<location line="+770"/> <location line="+771"/>
<source>Add Extra File</source> <source>Add Extra File</source>
<translation>Zusätzliche Datei hinzufügen</translation> <translation>Zusätzliche Datei hinzufügen</translation>
</message> </message>
@ -7308,7 +7318,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<location line="-107"/> <location line="-107"/>
<location filename="../gui/PeersDialog.cpp" line="-1478"/> <location filename="../gui/PeersDialog.cpp" line="-1479"/>
<source>Add Friend</source> <source>Add Friend</source>
<translation>Freund hinzufügen</translation> <translation>Freund hinzufügen</translation>
</message> </message>
@ -7383,7 +7393,7 @@ p, li { white-space: pre-wrap; }
<translation>Willst du diesen Freund entfernen?</translation> <translation>Willst du diesen Freund entfernen?</translation>
</message> </message>
<message> <message>
<location line="+730"/> <location line="+731"/>
<source>Save as...</source> <source>Save as...</source>
<translation>Speichern unter...</translation> <translation>Speichern unter...</translation>
</message> </message>
@ -7416,7 +7426,7 @@ p, li { white-space: pre-wrap; }
<translation>Status Spalte ausblenden</translation> <translation>Status Spalte ausblenden</translation>
</message> </message>
<message> <message>
<location filename="../gui/PeersDialog.cpp" line="-1809"/> <location filename="../gui/PeersDialog.cpp" line="-1810"/>
<source>Friends Storm</source> <source>Friends Storm</source>
<translation>Aktivitäten</translation> <translation>Aktivitäten</translation>
</message> </message>
@ -7744,7 +7754,7 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>PopupChatDialog</name> <name>PopupChatDialog</name>
<message> <message>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+778"/> <location filename="../gui/chat/PopupChatDialog.cpp" line="+777"/>
<source>Hide Avatar</source> <source>Hide Avatar</source>
<translation>Avatar verstecken</translation> <translation>Avatar verstecken</translation>
</message> </message>
@ -7754,12 +7764,12 @@ p, li { white-space: pre-wrap; }
<translation>Avatar zeigen</translation> <translation>Avatar zeigen</translation>
</message> </message>
<message> <message>
<location line="+341"/> <location line="+342"/>
<source>File not found or file name not accepted.</source> <source>File not found or file name not accepted.</source>
<translation>Datei nicht gefunden oder Dateiname nicht akzeptiert.</translation> <translation>Datei nicht gefunden oder Dateiname nicht akzeptiert.</translation>
</message> </message>
<message> <message>
<location line="+88"/> <location line="+90"/>
<source>Messages you send will be delivered after Friend is again Online</source> <source>Messages you send will be delivered after Friend is again Online</source>
<translation>Nachrichten, die Du versendest gehen bei diesem Freund erst wieder ein wenn er Online ist</translation> <translation>Nachrichten, die Du versendest gehen bei diesem Freund erst wieder ein wenn er Online ist</translation>
</message> </message>
@ -7822,7 +7832,7 @@ p, li { white-space: pre-wrap; }
<translation>Deaktiviere Emoticons</translation> <translation>Deaktiviere Emoticons</translation>
</message> </message>
<message> <message>
<location filename="../gui/chat/PopupChatDialog.cpp" line="-1033"/> <location filename="../gui/chat/PopupChatDialog.cpp" line="-1034"/>
<source>Paste retroshare Link</source> <source>Paste retroshare Link</source>
<translation>RetroShare Link einfügen</translation> <translation>RetroShare Link einfügen</translation>
</message> </message>
@ -7842,12 +7852,12 @@ p, li { white-space: pre-wrap; }
<translation>Wähle dein Avatar Bild aus</translation> <translation>Wähle dein Avatar Bild aus</translation>
</message> </message>
<message> <message>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+772"/> <location filename="../gui/chat/PopupChatDialog.cpp" line="+770"/>
<source>Add Extra File</source> <source>Add Extra File</source>
<translation>Zusätzlich eine Datei hinzufügen</translation> <translation>Zusätzlich eine Datei hinzufügen</translation>
</message> </message>
<message> <message>
<location line="+166"/> <location line="+167"/>
<location line="+7"/> <location line="+7"/>
<source>Drop file error.</source> <source>Drop file error.</source>
<translation>Dateifehler bei Drag&apos;n&apos;Drop.</translation> <translation>Dateifehler bei Drag&apos;n&apos;Drop.</translation>
@ -7879,7 +7889,7 @@ p, li { white-space: pre-wrap; }
<translation>Text Datei (*.txt );;Alle Dateien (*)</translation> <translation>Text Datei (*.txt );;Alle Dateien (*)</translation>
</message> </message>
<message> <message>
<location line="-750"/> <location line="-749"/>
<source>Your Friend is offline <source>Your Friend is offline
Do you want to send them a Message instead</source> Do you want to send them a Message instead</source>
<translation>Dein Freund ist Offline willst du ihm stattdessen eine Nachricht senden</translation> <translation>Dein Freund ist Offline willst du ihm stattdessen eine Nachricht senden</translation>
@ -7896,7 +7906,7 @@ Do you want to send them a Message instead</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+789"/> <location filename="../gui/chat/PopupChatDialog.cpp" line="+790"/>
<source>is Idle and may not reply</source> <source>is Idle and may not reply</source>
<translation>antwortet möglicherweise nicht, da der Status auf &quot;Untätig&quot; gesetzt wurde</translation> <translation>antwortet möglicherweise nicht, da der Status auf &quot;Untätig&quot; gesetzt wurde</translation>
</message> </message>
@ -7916,7 +7926,7 @@ Do you want to send them a Message instead</source>
<translation>ist Offline.</translation> <translation>ist Offline.</translation>
</message> </message>
<message> <message>
<location line="-734"/> <location line="-735"/>
<source>is typing...</source> <source>is typing...</source>
<translation>tippt...</translation> <translation>tippt...</translation>
</message> </message>
@ -8784,7 +8794,7 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>RemoteDirModel</name> <name>RemoteDirModel</name>
<message> <message>
<location filename="../gui/RemoteDirModel.cpp" line="+611"/> <location filename="../gui/RemoteDirModel.cpp" line="+606"/>
<source>Friends Directories</source> <source>Friends Directories</source>
<translation>Dateien von Freunden</translation> <translation>Dateien von Freunden</translation>
</message> </message>
@ -8814,7 +8824,7 @@ p, li { white-space: pre-wrap; }
<translation>Alter</translation> <translation>Alter</translation>
</message> </message>
<message> <message>
<location line="-461"/> <location line="-456"/>
<source>Anonymous</source> <source>Anonymous</source>
<translation>Anonym</translation> <translation>Anonym</translation>
</message> </message>
@ -8830,12 +8840,12 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<location line="+295"/> <location line="+295"/>
<location line="+81"/> <location line="+78"/>
<source>FILE</source> <source>FILE</source>
<translation>DATEI</translation> <translation>DATEI</translation>
</message> </message>
<message> <message>
<location line="-64"/> <location line="-61"/>
<source>Files</source> <source>Files</source>
<translation>Dateien</translation> <translation>Dateien</translation>
</message> </message>
@ -8846,7 +8856,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<location line="+10"/> <location line="+10"/>
<location line="+69"/> <location line="+64"/>
<source>DIR</source> <source>DIR</source>
<translation>ORDNER</translation> <translation>ORDNER</translation>
</message> </message>
@ -10369,13 +10379,13 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<location line="+26"/> <location line="+26"/>
<location filename="../gui/feeds/SubFileItem.cpp" line="+579"/> <location filename="../gui/feeds/SubFileItem.cpp" line="+582"/>
<location line="+6"/> <location line="+6"/>
<source>Play File</source> <source>Play File</source>
<translation>Datei abspielen</translation> <translation>Datei abspielen</translation>
</message> </message>
<message> <message>
<location filename="../gui/feeds/SubFileItem.cpp" line="+51"/> <location filename="../gui/feeds/SubFileItem.cpp" line="+54"/>
<source>Save Channel File</source> <source>Save Channel File</source>
<translation>Channel Datei speichern</translation> <translation>Channel Datei speichern</translation>
</message> </message>
@ -10390,7 +10400,38 @@ p, li { white-space: pre-wrap; }
<translation>Abspielen</translation> <translation>Abspielen</translation>
</message> </message>
<message> <message>
<location filename="../gui/feeds/SubFileItem.cpp" line="-56"/> <location filename="../gui/feeds/SubFileItem.cpp" line="-429"/>
<location line="+8"/>
<source>ERROR</source>
<translation>FEHLER</translation>
</message>
<message>
<location line="+16"/>
<source>EXTRA</source>
<translation>EXTRA</translation>
</message>
<message>
<location line="+11"/>
<source>REMOTE</source>
<translation>ENTFERNT</translation>
</message>
<message>
<location line="+9"/>
<source>DOWNLOAD</source>
<translation>DOWNLOAD</translation>
</message>
<message>
<location line="+11"/>
<source>LOCAL</source>
<translation>LOKAL</translation>
</message>
<message>
<location line="+9"/>
<source>UPLOAD</source>
<translation>UPLOAD</translation>
</message>
<message>
<location line="+306"/>
<source>File %1 does not exist at location.</source> <source>File %1 does not exist at location.</source>
<translation>Datei %1 existiert nicht.</translation> <translation>Datei %1 existiert nicht.</translation>
</message> </message>
@ -10568,7 +10609,7 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>TransfersDialog</name> <name>TransfersDialog</name>
<message> <message>
<location filename="../gui/TransfersDialog.cpp" line="+236"/> <location filename="../gui/TransfersDialog.cpp" line="+246"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Abbrechen</translation> <translation>Abbrechen</translation>
</message> </message>
@ -10578,13 +10619,13 @@ p, li { white-space: pre-wrap; }
<translation>Fertige ausblenden</translation> <translation>Fertige ausblenden</translation>
</message> </message>
<message> <message>
<location line="-158"/> <location line="-152"/>
<location line="+62"/> <location line="+59"/>
<source>Status</source> <source>Status</source>
<translation>Status</translation> <translation>Status</translation>
</message> </message>
<message> <message>
<location line="-66"/> <location line="-63"/>
<source>Completed</source> <source>Completed</source>
<translation>Fertiggestellt</translation> <translation>Fertiggestellt</translation>
</message> </message>
@ -10638,20 +10679,20 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<location filename="../gui/TransfersDialog.cpp" line="-2"/> <location filename="../gui/TransfersDialog.cpp" line="-2"/>
<location line="+63"/> <location line="+60"/>
<source>Name</source> <source>Name</source>
<comment>i.e: file name</comment> <comment>i.e: file name</comment>
<translation>Name</translation> <translation>Name</translation>
</message> </message>
<message> <message>
<location line="-62"/> <location line="-59"/>
<location line="+63"/> <location line="+60"/>
<source>Size</source> <source>Size</source>
<comment>i.e: file size</comment> <comment>i.e: file size</comment>
<translation>Grösse</translation> <translation>Grösse</translation>
</message> </message>
<message> <message>
<location line="-61"/> <location line="-58"/>
<source>Speed</source> <source>Speed</source>
<comment>i.e: Download speed</comment> <comment>i.e: Download speed</comment>
<translation>Geschwindigkeit</translation> <translation>Geschwindigkeit</translation>
@ -10674,7 +10715,7 @@ p, li { white-space: pre-wrap; }
<translation>Kern-ID</translation> <translation>Kern-ID</translation>
</message> </message>
<message> <message>
<location line="+56"/> <location line="+53"/>
<source>Progress</source> <source>Progress</source>
<comment>i.e: % uploaded</comment> <comment>i.e: % uploaded</comment>
<translation>Fortschritt</translation> <translation>Fortschritt</translation>
@ -10691,7 +10732,7 @@ p, li { white-space: pre-wrap; }
<translation>Übertragen</translation> <translation>Übertragen</translation>
</message> </message>
<message> <message>
<location line="+121"/> <location line="+118"/>
<source>Play</source> <source>Play</source>
<translation>Abspielen</translation> <translation>Abspielen</translation>
</message> </message>
@ -10776,7 +10817,7 @@ p, li { white-space: pre-wrap; }
<translation>Blockstrategie</translation> <translation>Blockstrategie</translation>
</message> </message>
<message> <message>
<location line="+391"/> <location line="+396"/>
<source>Queued</source> <source>Queued</source>
<translation>In Warteschleife</translation> <translation>In Warteschleife</translation>
</message> </message>
@ -10786,12 +10827,12 @@ p, li { white-space: pre-wrap; }
<translation>Pausiert</translation> <translation>Pausiert</translation>
</message> </message>
<message> <message>
<location line="-137"/> <location line="-139"/>
<source>Transferring</source> <source>Transferring</source>
<translation>Übertrage</translation> <translation>Übertrage</translation>
</message> </message>
<message> <message>
<location line="+352"/> <location line="+354"/>
<source>RetroShare</source> <source>RetroShare</source>
<translation></translation> <translation></translation>
</message> </message>
@ -10816,7 +10857,7 @@ p, li { white-space: pre-wrap; }
<translation>Soll dieser Download wirklich abgebrochen und gelöscht werden?</translation> <translation>Soll dieser Download wirklich abgebrochen und gelöscht werden?</translation>
</message> </message>
<message> <message>
<location line="-901"/> <location line="-900"/>
<source>Speed / Queue position</source> <source>Speed / Queue position</source>
<translation>Geschwindigkeits- / Warteschlangenposition</translation> <translation>Geschwindigkeits- / Warteschlangenposition</translation>
</message> </message>
@ -10832,7 +10873,7 @@ p, li { white-space: pre-wrap; }
<translation>Download Zeit</translation> <translation>Download Zeit</translation>
</message> </message>
<message> <message>
<location line="+56"/> <location line="+53"/>
<source>Peer</source> <source>Peer</source>
<comment>i.e: user name</comment> <comment>i.e: user name</comment>
<translation>Nachbar</translation> <translation>Nachbar</translation>
@ -10843,39 +10884,39 @@ p, li { white-space: pre-wrap; }
<translation>Prüfsumme</translation> <translation>Prüfsumme</translation>
</message> </message>
<message> <message>
<location line="+112"/> <location line="+109"/>
<location line="+525"/> <location line="+530"/>
<source>Slower</source> <source>Slower</source>
<translation>Langsamer</translation> <translation>Langsamer</translation>
</message> </message>
<message> <message>
<location line="-523"/> <location line="-528"/>
<location line="+524"/> <location line="+529"/>
<location line="+2"/> <location line="+2"/>
<source>Average</source> <source>Average</source>
<translation>Durchschnitt</translation> <translation>Durchschnitt</translation>
</message> </message>
<message> <message>
<location line="-524"/> <location line="-529"/>
<location line="+523"/> <location line="+528"/>
<source>Faster</source> <source>Faster</source>
<translation>Schneller</translation> <translation>Schneller</translation>
</message> </message>
<message> <message>
<location line="-419"/> <location line="-424"/>
<source>Move in Queue...</source> <source>Move in Queue...</source>
<translation>Verschiebe in Warteschlange...</translation> <translation>Verschiebe in Warteschlange...</translation>
</message> </message>
<message> <message>
<location line="+256"/> <location line="+259"/>
<location line="+143"/> <location line="+145"/>
<location line="+129"/> <location line="+129"/>
<source>Failed</source> <source>Failed</source>
<translation>Gescheitert</translation> <translation>Gescheitert</translation>
</message> </message>
<message> <message>
<location line="-268"/> <location line="-270"/>
<location line="+140"/> <location line="+142"/>
<location line="+129"/> <location line="+129"/>
<source>Okay</source> <source>Okay</source>
<translation>OK</translation> <translation>OK</translation>
@ -10892,8 +10933,8 @@ p, li { white-space: pre-wrap; }
<translation>Ladend</translation> <translation>Ladend</translation>
</message> </message>
<message> <message>
<location line="-130"/> <location line="-132"/>
<location line="+131"/> <location line="+133"/>
<location line="+129"/> <location line="+129"/>
<location line="+1"/> <location line="+1"/>
<source>Complete</source> <source>Complete</source>
@ -10920,7 +10961,7 @@ p, li { white-space: pre-wrap; }
<translation>Überprüfe...</translation> <translation>Überprüfe...</translation>
</message> </message>
<message> <message>
<location line="-550"/> <location line="-555"/>
<source>Force Check</source> <source>Force Check</source>
<translation>Erzwinge Überprüfung</translation> <translation>Erzwinge Überprüfung</translation>
</message> </message>