Added version information of the libraries to HelpDialog.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@8446 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2015-06-14 17:45:26 +00:00
parent b0f7b70ea2
commit 0ca37f6756
14 changed files with 435 additions and 286 deletions

View file

@ -544,6 +544,7 @@ SOURCES += pqi/authgpg.cc \
SOURCES += rsserver/p3face-config.cc \ SOURCES += rsserver/p3face-config.cc \
rsserver/p3face-server.cc \ rsserver/p3face-server.cc \
rsserver/p3face-info.cc \
rsserver/p3history.cc \ rsserver/p3history.cc \
rsserver/p3msgs.cc \ rsserver/p3msgs.cc \
rsserver/p3peers.cc \ rsserver/p3peers.cc \

View file

@ -69,6 +69,7 @@ class RsControl /* The Main Interface Class - for controlling the server */
/****************************************/ /****************************************/
virtual bool getPeerCryptoDetails(const RsPeerId& ssl_id,RsPeerCryptoParams& params) = 0; virtual bool getPeerCryptoDetails(const RsPeerId& ssl_id,RsPeerCryptoParams& params) = 0;
virtual void getLibraries(std::list<RsLibraryInfo> &libraries) = 0;
protected: protected:
RsControl() {} // should not be used, hence it's private. RsControl() {} // should not be used, hence it's private.

View file

@ -191,6 +191,7 @@ class RsPlugin
virtual std::string getShortPluginDescription() const = 0 ; virtual std::string getShortPluginDescription() const = 0 ;
virtual std::string getPluginName() const = 0 ; virtual std::string getPluginName() const = 0 ;
virtual void getPluginVersion(int& major,int& minor, int& build, int& svn_rev) const = 0 ; virtual void getPluginVersion(int& major,int& minor, int& build, int& svn_rev) const = 0 ;
virtual void getLibraries(std::list<RsLibraryInfo> & /*libraries*/) {}
// //
//========================== Plugin Interface ================================// //========================== Plugin Interface ================================//

View file

@ -388,4 +388,18 @@ public:
unsigned int retries; unsigned int retries;
}; };
/* class for the information about a used library */
class RsLibraryInfo
{
public:
RsLibraryInfo() {}
RsLibraryInfo(const std::string &name, const std::string &version) :
mName(name), mVersion(version)
{}
public:
std::string mName;
std::string mVersion;
};
#endif #endif

View file

@ -0,0 +1,39 @@
/*
* "$Id: p3face-info.cc,v 1.5 2007-04-15 18:45:23 rmf24 Exp $"
*
* RetroShare C++ Interface.
*
* Copyright 2015 by RetroShare Team.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License Version 2 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA.
*
* Please report all bugs and problems to "retroshare@lunamutt.com".
*
*/
#include "rsserver/p3face.h"
#include <bzlib.h>
#include <openssl/ssl.h>
#include <zlib.h>
#include <sqlcipher/sqlite3.h>
void RsServer::getLibraries(std::list<RsLibraryInfo> &libraries)
{
libraries.push_back(RsLibraryInfo("bzip2", BZ2_bzlibVersion()));
libraries.push_back(RsLibraryInfo("OpenSSL", SSLeay_version(SSLEAY_VERSION)));
libraries.push_back(RsLibraryInfo("SQLCipher", SQLITE_VERSION));
libraries.push_back(RsLibraryInfo("Zlib", ZLIB_VERSION));
}

View file

@ -134,6 +134,7 @@ class RsServer: public RsControl, public RsTickingThread
public: public:
virtual bool getPeerCryptoDetails(const RsPeerId& ssl_id,RsPeerCryptoParams& params) { return pqih->getCryptoParams(ssl_id,params); } virtual bool getPeerCryptoDetails(const RsPeerId& ssl_id,RsPeerCryptoParams& params) { return pqih->getCryptoParams(ssl_id,params); }
virtual void getLibraries(std::list<RsLibraryInfo> &libraries);
private: private:

View file

@ -32,6 +32,10 @@
#include "gui/FeedReaderFeedNotify.h" #include "gui/FeedReaderFeedNotify.h"
#include "services/p3FeedReader.h" #include "services/p3FeedReader.h"
#include <libxml/xmlversion.h>
#include <libxslt/xsltconfig.h>
#include <curl/curlver.h>
#define IMAGE_FEEDREADER ":/images/FeedReader.png" #define IMAGE_FEEDREADER ":/images/FeedReader.png"
static void *inited = new FeedReaderPlugin(); static void *inited = new FeedReaderPlugin();
@ -159,6 +163,13 @@ std::string FeedReaderPlugin::getPluginName() const
return QApplication::translate("FeedReaderPlugin", "FeedReader").toUtf8().constData(); return QApplication::translate("FeedReaderPlugin", "FeedReader").toUtf8().constData();
} }
void FeedReaderPlugin::getLibraries(std::list<RsLibraryInfo> &libraries)
{
libraries.push_back(RsLibraryInfo("LibCurl", LIBCURL_VERSION));
libraries.push_back(RsLibraryInfo("Libxml2", LIBXML_DOTTED_VERSION));
libraries.push_back(RsLibraryInfo("libxslt", LIBXSLT_DOTTED_VERSION));
}
QTranslator* FeedReaderPlugin::qt_translator(QApplication */*app*/, const QString& languageCode, const QString& externalDir) const QTranslator* FeedReaderPlugin::qt_translator(QApplication */*app*/, const QString& languageCode, const QString& externalDir) const
{ {
if (languageCode == "en") { if (languageCode == "en") {

View file

@ -51,6 +51,7 @@ public:
virtual std::string getShortPluginDescription() const; virtual std::string getShortPluginDescription() const;
virtual std::string getPluginName() const; virtual std::string getPluginName() const;
virtual void getLibraries(std::list<RsLibraryInfo> &libraries);
virtual void setInterfaces(RsPlugInInterfaces& interfaces); virtual void setInterfaces(RsPlugInInterfaces& interfaces);
virtual ConfigPage *qt_config_page() const; virtual ConfigPage *qt_config_page() const;

View file

@ -37,6 +37,9 @@
#include "gui/SoundManager.h" #include "gui/SoundManager.h"
#include "gui/chat/ChatWidget.h" #include "gui/chat/ChatWidget.h"
#include <opencv/cv.h>
#include <speex/speex.h>
#define IMAGE_VOIP ":/images/talking_on.svg" #define IMAGE_VOIP ":/images/talking_on.svg"
static void *inited = new VOIPPlugin() ; static void *inited = new VOIPPlugin() ;
@ -181,6 +184,16 @@ std::string VOIPPlugin::getPluginName() const
return QApplication::translate("VOIPPlugin", "VOIP").toUtf8().constData(); return QApplication::translate("VOIPPlugin", "VOIP").toUtf8().constData();
} }
void VOIPPlugin::getLibraries(std::list<RsLibraryInfo> &libraries)
{
libraries.push_back(RsLibraryInfo("OpenCV", CV_VERSION));
const char *speexVersion = NULL;
if (speex_lib_ctl(SPEEX_LIB_GET_VERSION_STRING, &speexVersion) == 0 && speexVersion) {
libraries.push_back(RsLibraryInfo("Speex", speexVersion));
}
}
QTranslator* VOIPPlugin::qt_translator(QApplication */*app*/, const QString& languageCode, const QString& externalDir) const QTranslator* VOIPPlugin::qt_translator(QApplication */*app*/, const QString& languageCode, const QString& externalDir) const
{ {
if (languageCode == "en") { if (languageCode == "en") {

View file

@ -53,6 +53,7 @@ class VOIPPlugin: public RsPlugin
virtual std::string getShortPluginDescription() const ; virtual std::string getShortPluginDescription() const ;
virtual std::string getPluginName() const; virtual std::string getPluginName() const;
virtual void getLibraries(std::list<RsLibraryInfo> &libraries);
virtual void setInterfaces(RsPlugInInterfaces& interfaces); virtual void setInterfaces(RsPlugInInterfaces& interfaces);
//================================== RsPlugin Notify ==================================// //================================== RsPlugin Notify ==================================//

View file

@ -19,64 +19,101 @@
* Boston, MA 02110-1301, USA. * Boston, MA 02110-1301, USA.
****************************************************************/ ****************************************************************/
#include "HelpDialog.h" #include "HelpDialog.h"
#include <retroshare/rsiface.h> #include "ui_HelpDialog.h"
#include <retroshare/rsdisc.h>
#include <iostream> #include <retroshare/rsiface.h>
#include <retroshare/rsplugin.h>
#include <microhttpd.h>
#include <QFile> #include <QFile>
#include <QTextStream> #include <QTextStream>
/* Images for context menu icons */ static void addLibraries(QGridLayout *layout, const std::string &name, const std::list<RsLibraryInfo> &libraries)
#define IMAGE_DOWNLOAD ":/images/start.png"
/** Constructor */
HelpDialog::HelpDialog(QWidget *parent)
: QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint)
{ {
/* Invoke the Qt Designer generated object setup routine */ int row = layout->rowCount();
ui.setupUi(this);
//QFile licenseFile(QLatin1String(":/images/COPYING")); QLabel *label = new QLabel(QString::fromUtf8(name.c_str()));
QFile licenseFile(QLatin1String(":/help/licence.html")); label->setTextInteractionFlags(label->textInteractionFlags() | Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);
if (licenseFile.open(QIODevice::ReadOnly | QIODevice::Text)) { layout->addWidget(label, row++, 0, 1, 3);
QTextStream in(&licenseFile);
ui.license->setText(in.readAll());
}
QFile authorsFile(QLatin1String(":/help/authors.html"));
if (authorsFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&authorsFile);
ui.authors->setText(in.readAll());
}
QFile thanksFile(QLatin1String(":/help/thanks.html"));
if (thanksFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&thanksFile);
ui.thanks->setText(in.readAll());
}
QFile versionFile(QLatin1String(":/help/version.html")); QFont font = label->font();
if (versionFile.open(QIODevice::ReadOnly | QIODevice::Text)) { font.setBold(true);
QTextStream in(&versionFile); label->setFont(font);
QString version = in.readAll();
#ifdef ADD_LIBRETROSHARE_VERSION_INFO std::list<RsLibraryInfo>::const_iterator libraryIt;
/* get libretroshare version */ for (libraryIt = libraries.begin(); libraryIt != libraries.end(); ++libraryIt) {
std::map<std::string, std::string>::iterator vit; label = new QLabel(QString::fromUtf8(libraryIt->mName.c_str()));
std::map<std::string, std::string> versions; label->setTextInteractionFlags(label->textInteractionFlags() | Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);
const RsConfig &conf = rsiface->getConfig(); layout->addWidget(label, row, 0);
bool retv = rsDisc->getDiscVersions(versions); label->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
if (retv && versions.end() != (vit = versions.find(conf.ownId)))
{ label = new QLabel(QString::fromUtf8(libraryIt->mVersion.c_str()));
version += QString::fromStdString("Retroshare library version : \n") + QString::fromStdString(vit->second); label->setTextInteractionFlags(label->textInteractionFlags() | Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);
layout->addWidget(label, row++, 1);
} }
#endif
ui.version->setText(version);
}
ui.label_2->setMinimumWidth(20);
} }
/** Constructor */
HelpDialog::HelpDialog(QWidget *parent) :
QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint),
ui(new(Ui::HelpDialog))
{
/* Invoke the Qt Designer generated object setup routine */
ui->setupUi(this);
//QFile licenseFile(QLatin1String(":/images/COPYING"));
QFile licenseFile(QLatin1String(":/help/licence.html"));
if (licenseFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&licenseFile);
ui->license->setText(in.readAll());
}
QFile authorsFile(QLatin1String(":/help/authors.html"));
if (authorsFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&authorsFile);
ui->authors->setText(in.readAll());
}
QFile thanksFile(QLatin1String(":/help/thanks.html"));
if (thanksFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&thanksFile);
ui->thanks->setText(in.readAll());
}
QFile versionFile(QLatin1String(":/help/version.html"));
if (versionFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&versionFile);
QString version = in.readAll();
ui->version->setText(version);
}
/* Add version numbers of libretroshare */
std::list<RsLibraryInfo> libraries;
RsControl::instance()->getLibraries(libraries);
addLibraries(ui->libraryLayout, "libretroshare", libraries);
/* Add version numbers of RetroShare */
// Add versions here. Find a better place.
libraries.clear();
libraries.push_back(RsLibraryInfo("Libmicrohttpd", MHD_get_version()));
addLibraries(ui->libraryLayout, "RetroShare", libraries);
/* Add version numbers of plugins */
if (rsPlugins) {
for (int i = 0; i < rsPlugins->nbPlugins(); ++i) {
RsPlugin *plugin = rsPlugins->plugin(i);
if (plugin) {
libraries.clear();
plugin->getLibraries(libraries);
addLibraries(ui->libraryLayout, plugin->getPluginName(), libraries);
}
}
}
}
HelpDialog::~HelpDialog()
{
delete(ui);
}

View file

@ -24,28 +24,25 @@
#include <QFileDialog> #include <QFileDialog>
//#include "mainpage.h"
#include "ui_HelpDialog.h"
#include <retroshare/rstypes.h> #include <retroshare/rstypes.h>
namespace Ui {
class HelpDialog;
}
class HelpDialog : public QDialog class HelpDialog : public QDialog
{ {
Q_OBJECT Q_OBJECT
public: public:
/** Default Constructor */ /** Default Constructor */
HelpDialog(QWidget *parent = 0); HelpDialog(QWidget *parent = 0);
/** Default Destructor */ /** Default Destructor */
virtual ~HelpDialog();
private slots:
private: private:
/** Qt Designer generated object */ /** Qt Designer generated object */
Ui::HelpDialog ui; Ui::HelpDialog *ui;
}; };
#endif #endif

View file

@ -230,6 +230,35 @@ p, li { white-space: pre-wrap; }
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tab_6">
<attribute name="title">
<string>Libraries</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="libraryLayout"/>
</widget>
</widget>
</item>
</layout>
</widget>
</widget> </widget>
</item> </item>
<item row="0" column="0"> <item row="0" column="0">

View file

@ -748,7 +748,7 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>ChatDialog</name> <name>ChatDialog</name>
<message> <message>
<source>Talking to </source> <source>Talking to</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -975,14 +975,6 @@ p, li { white-space: pre-wrap; }
<source>Subscribed</source> <source>Subscribed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Show </source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Column</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Columns</source> <source>Columns</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1065,6 +1057,14 @@ Double click lobbies to enter and chat.</source>
<source>Create an identity and enter this lobby</source> <source>Create an identity and enter this lobby</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>column</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ChatMsgItem</name> <name>ChatMsgItem</name>
@ -1251,10 +1251,6 @@ Double click lobbies to enter and chat.</source>
<source>Chat</source> <source>Chat</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Private chat invite from </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;justify&quot;&gt;In this tab you can setup how many chat messages Retroshare will keep saved on the disc and how much of the previous conversation it will display, for the different chat systems. The max storage period allows to discard old messages and prevents the chat history from filling up with volatile chat (e.g. chat lobbies and distant chat).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;justify&quot;&gt;In this tab you can setup how many chat messages Retroshare will keep saved on the disc and how much of the previous conversation it will display, for the different chat systems. The max storage period allows to discard old messages and prevents the chat history from filling up with volatile chat (e.g. chat lobbies and distant chat).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1279,10 +1275,6 @@ Double click lobbies to enter and chat.</source>
<source>Maximum storage period, in days (0=keep all):</source> <source>Maximum storage period, in days (0=keep all):</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Name : </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Search by default</source> <source>Search by default</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1311,14 +1303,6 @@ Double click lobbies to enter and chat.</source>
<source>Choose color of found text</source> <source>Choose color of found text</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>PGP id : </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Valid until : </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Maximum count for coloring matching text</source> <source>Maximum count for coloring matching text</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1335,6 +1319,22 @@ Double click lobbies to enter and chat.</source>
<source>Show Bar by default</source> <source>Show Bar by default</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Private chat invite from</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name :</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PGP id :</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Valid until :</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ChatStyle</name> <name>ChatStyle</name>
@ -1503,14 +1503,6 @@ Double click lobbies to enter and chat.</source>
<source>Don&apos;t stop to color after X items found (need more CPU)</source> <source>Don&apos;t stop to color after X items found (need more CPU)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Don&apos;t stop to color after </source>
<translation type="unfinished"></translation>
</message>
<message>
<source> items found (need more CPU)</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>&lt;b&gt;Find Previous &lt;/b&gt;&lt;br/&gt;&lt;i&gt;Ctrl+Shift+G&lt;/i&gt;</source> <source>&lt;b&gt;Find Previous &lt;/b&gt;&lt;br/&gt;&lt;i&gt;Ctrl+Shift+G&lt;/i&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1523,10 +1515,6 @@ Double click lobbies to enter and chat.</source>
<source>&lt;b&gt;Find &lt;/b&gt;&lt;br/&gt;&lt;i&gt;Ctrl+F&lt;/i&gt;</source> <source>&lt;b&gt;Find &lt;/b&gt;&lt;br/&gt;&lt;i&gt;Ctrl+F&lt;/i&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Warning: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>(Status)</source> <source>(Status)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1579,6 +1567,18 @@ Double click lobbies to enter and chat.</source>
<source>Type a message here</source> <source>Type a message here</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Don&apos;t stop to color after</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>items found (need more CPU)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning:</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>CircleWidget</name> <name>CircleWidget</name>
@ -1816,14 +1816,6 @@ Double click lobbies to enter and chat.</source>
<source>&lt;p&gt;This certificate contains:</source> <source>&lt;p&gt;This certificate contains:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> with </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;/li&gt; </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>&lt;li&gt;a &lt;b&gt;node ID&lt;/b&gt; and &lt;b&gt;name&lt;/b&gt;</source> <source>&lt;li&gt;a &lt;b&gt;node ID&lt;/b&gt; and &lt;b&gt;name&lt;/b&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1856,6 +1848,14 @@ Double click lobbies to enter and chat.</source>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This is the encryption method used by &lt;span style=&quot; font-weight:600;&quot;&gt;OpenSSL&lt;/span&gt;. The connection to friend nodes&lt;/p&gt;&lt;p&gt;is always heavily encrypted and if DHE is present the connection further uses&lt;/p&gt;&lt;p&gt;&amp;quot;perfect forward secrecy&amp;quot;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This is the encryption method used by &lt;span style=&quot; font-weight:600;&quot;&gt;OpenSSL&lt;/span&gt;. The connection to friend nodes&lt;/p&gt;&lt;p&gt;is always heavily encrypted and if DHE is present the connection further uses&lt;/p&gt;&lt;p&gt;&amp;quot;perfect forward secrecy&amp;quot;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>with</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>external signatures&lt;/li&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ConnectFriendWizard</name> <name>ConnectFriendWizard</name>
@ -2172,14 +2172,6 @@ Double click lobbies to enter and chat.</source>
<source>You have a friend request from</source> <source>You have a friend request from</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Certificate Load Failed:can&apos;t read from file %1 </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Certificate Load Failed:something is wrong with %1 </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Certificate Load Failed:file %1 not found</source> <source>Certificate Load Failed:file %1 not found</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2355,6 +2347,14 @@ even if you don&apos;t make friends.</source>
<source>Paste Cert of your friend from Clipboard</source> <source>Paste Cert of your friend from Clipboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Certificate Load Failed:can&apos;t read from file %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Certificate Load Failed:something is wrong with %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ConnectProgressDialog</name> <name>ConnectProgressDialog</name>
@ -3094,7 +3094,7 @@ Do you want to reject this message?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Congrats, you found a bug! </source> <source>Congrats, you found a bug!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -3618,14 +3618,6 @@ Do you want to reject this message?</source>
<source>Direct</source> <source>Direct</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Proxy VIA </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Relay VIA </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>None</source> <source>None</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3758,6 +3750,14 @@ Do you want to reject this message?</source>
<source>DHT Graph</source> <source>DHT Graph</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Proxy VIA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Relay VIA</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DirectoriesPage</name> <name>DirectoriesPage</name>
@ -4996,10 +4996,6 @@ p, li { white-space: pre-wrap; }
<source>RetroShare is a private Friend-2-Friend sharing network.</source> <source>RetroShare is a private Friend-2-Friend sharing network.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>It has many features, including built-in chat, messaging, </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>forums and channels, all of which are as secure as the file-sharing.</source> <source>forums and channels, all of which are as secure as the file-sharing.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5028,6 +5024,10 @@ p, li { white-space: pre-wrap; }
<source>RetroShare Support</source> <source>RetroShare Support</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>It has many features, including built-in chat, messaging,</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>GlobalRouterStatistics</name> <name>GlobalRouterStatistics</name>
@ -5050,10 +5050,6 @@ p, li { white-space: pre-wrap; }
<source>Managed keys</source> <source>Managed keys</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> : Service ID = </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Routing matrix (</source> <source>Routing matrix (</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5090,6 +5086,10 @@ p, li { white-space: pre-wrap; }
<source>Send</source> <source>Send</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> : Service ID =</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>GraphWidget</name> <name>GraphWidget</name>
@ -5166,10 +5166,6 @@ p, li { white-space: pre-wrap; }
<source>No one can browse this directory</source> <source>No one can browse this directory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> can relay anonymous tunnels to this directory</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>No one can anonymously access this directory.</source> <source>No one can anonymously access this directory.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5187,7 +5183,11 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Only friend nodes in groups </source> <source>Only friend nodes in groups</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>can relay anonymous tunnels to this directory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -6597,10 +6597,6 @@ before you can comment</source>
<source>Esc</source> <source>Esc</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error Loading Help Contents: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Supplied XML file is not a valid Contents document.</source> <source>Supplied XML file is not a valid Contents document.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -6621,6 +6617,10 @@ before you can comment</source>
<source>Found %1 results</source> <source>Found %1 results</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error Loading Help Contents:</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>HelpDialog</name> <name>HelpDialog</name>
@ -6689,13 +6689,13 @@ p, li { white-space: pre-wrap; }
&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-weight:600;&quot;&gt;Polish: &lt;/span&gt;Maciej Mrug&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> &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-weight:600;&quot;&gt;Polish: &lt;/span&gt;Maciej Mrug&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Libraries</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>HelpTextBrowser</name> <name>HelpTextBrowser</name>
<message>
<source>Error opening help file: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Opening External Link</source> <source>Opening External Link</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -6716,6 +6716,10 @@ p, li { white-space: pre-wrap; }
<source>RetroShare was unable to open the selected link in your Web browser. You can still copy the URL and paste it into your browser.</source> <source>RetroShare was unable to open the selected link in your Web browser. You can still copy the URL and paste it into your browser.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error opening help file:</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>IdDetailsDialog</name> <name>IdDetailsDialog</name>
@ -6943,18 +6947,10 @@ p, li { white-space: pre-wrap; }
<source>Launches a distant chat with this peer</source> <source>Launches a distant chat with this peer</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Really delete? </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Identity name</source> <source>Identity name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Owned by node...</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Owner node ID :</source> <source>Owner node ID :</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -7040,14 +7036,6 @@ p, li { white-space: pre-wrap; }
<source>Linked to distant nodes</source> <source>Linked to distant nodes</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Show </source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Column</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Linked to a friend Retroshare node</source> <source>Linked to a friend Retroshare node</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -7088,14 +7076,6 @@ p, li { white-space: pre-wrap; }
<source>Last used:</source> <source>Last used:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Node name: </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Node Id : </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>+50 Known PGP</source> <source>+50 Known PGP</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -7112,6 +7092,30 @@ p, li { white-space: pre-wrap; }
<source>Do you really want to delete this identity?</source> <source>Do you really want to delete this identity?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Owned by</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>column</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Node name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Node Id :</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Really delete?</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>IdEditDialog</name> <name>IdEditDialog</name>
@ -7236,19 +7240,19 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>GXS name: </source> <source>GXS name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>PGP name: </source> <source>PGP name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>GXS id: </source> <source>GXS id:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>PGP id: </source> <source>PGP id:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -7372,14 +7376,6 @@ p, li { white-space: pre-wrap; }
<source>Low disk space warning</source> <source>Low disk space warning</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>The disk space in your </source>
<translation type="unfinished"></translation>
</message>
<message>
<source> directory is running low (current limit is </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>MB). <source>MB).
@ -7460,10 +7456,6 @@ p, li { white-space: pre-wrap; }
<source>Do you really want to exit RetroShare ?</source> <source>Do you really want to exit RetroShare ?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Really quit ? </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Internal Error</source> <source>Internal Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -7512,6 +7504,18 @@ p, li { white-space: pre-wrap; }
<source>Show web interface</source> <source>Show web interface</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>The disk space in your</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>directory is running low (current limit is</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Really quit ?</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MessageComposer</name> <name>MessageComposer</name>
@ -8837,12 +8841,6 @@ For security, your keyring was previously backed-up to file
<source>Cannot create backup file. Check for permissions in pgp directory, disk space, etc.</source> <source>Cannot create backup file. Check for permissions in pgp directory, disk space, etc.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Key removal has failed. Your keyring remains intact.
Reported error: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Personal signature</source> <source>Personal signature</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -8952,6 +8950,12 @@ Right-click and select &apos;make friend&apos; to be able to connect.</source>
<source>Search peer ID</source> <source>Search peer ID</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Key removal has failed. Your keyring remains intact.
Reported error:</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>NetworkPage</name> <name>NetworkPage</name>
@ -9203,6 +9207,10 @@ Right-click and select &apos;make friend&apos; to be able to connect.</source>
<source>Count occurences of my current identity</source> <source>Count occurences of my current identity</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Security Ip</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>NotifyQt</name> <name>NotifyQt</name>
@ -9222,10 +9230,6 @@ Right-click and select &apos;make friend&apos; to be able to connect.</source>
<source>RetroShare has detected an unregistered plugin. This happens in two cases:&lt;UL&gt;&lt;LI&gt;Your RetroShare executable has changed.&lt;/LI&gt;&lt;LI&gt;The plugin has changed&lt;/LI&gt;&lt;/UL&gt;Click on Yes to authorize this plugin, or No to deny it. You can change your mind later in Options -&gt; Plugins, then restart.</source> <source>RetroShare has detected an unregistered plugin. This happens in two cases:&lt;UL&gt;&lt;LI&gt;Your RetroShare executable has changed.&lt;/LI&gt;&lt;LI&gt;The plugin has changed&lt;/LI&gt;&lt;/UL&gt;Click on Yes to authorize this plugin, or No to deny it. You can change your mind later in Options -&gt; Plugins, then restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>For the chat lobbies to work properly, the time of your computer needs to be correct. Please check that this is the case (A possible time shift of several minutes was detected with your friends). </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Please check your system clock.</source> <source>Please check your system clock.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -9262,6 +9266,10 @@ Right-click and select &apos;make friend&apos; to be able to connect.</source>
<source>Please enter your PGP password for key</source> <source>Please enter your PGP password for key</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>For the chat lobbies to work properly, the time of your computer needs to be correct. Please check that this is the case (A possible time shift of several minutes was detected with your friends).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>OnlineToaster</name> <name>OnlineToaster</name>
@ -9303,11 +9311,11 @@ Right-click and select &apos;make friend&apos; to be able to connect.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>By priority: </source> <source>By priority:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>By service : </source> <source>By service :</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -9412,14 +9420,6 @@ p, li { white-space: pre-wrap; }
(Only RSA keys are supported at the moment)</source> (Only RSA keys are supported at the moment)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>This is your own PGP key, and it is signed by : </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This key is signed by : </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>The trust level is a way to express your own trust in this key. It is not used by the software nor shared, but can be useful to you in order to remember good/bad keys.</source> <source>The trust level is a way to express your own trust in this key. It is not used by the software nor shared, but can be useful to you in order to remember good/bad keys.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -9468,6 +9468,14 @@ p, li { white-space: pre-wrap; }
<source>You haven&apos;t set a trust level for this key.</source> <source>You haven&apos;t set a trust level for this key.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>This is your own PGP key, and it is signed by :</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This key is signed by :</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PeerDefs</name> <name>PeerDefs</name>
@ -10604,14 +10612,6 @@ p, li { white-space: pre-wrap; }
</context> </context>
<context> <context>
<name>QObject</name> <name>QObject</name>
<message>
<source>Subject: </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Participants: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Confirmation</source> <source>Confirmation</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -10791,11 +10791,6 @@ Characters &lt;b&gt;&quot;,|,/,\,&amp;lt;,&amp;gt;,*,?&lt;/b&gt; will be replace
<source>File Request canceled</source> <source>File Request canceled</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>The following has not been added to your download list, because you already have it:
</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>This version of RetroShare is using OpenPGP-SDK. As a side effect, it&apos;s not using the system shared PGP keyring, but has it&apos;s own keyring shared by all RetroShare instances. &lt;br&gt;&lt;br&gt;You do not appear to have such a keyring, although PGP keys are mentioned by existing RetroShare accounts, probably because you just changed to this new version of the software.</source> <source>This version of RetroShare is using OpenPGP-SDK. As a side effect, it&apos;s not using the system shared PGP keyring, but has it&apos;s own keyring shared by all RetroShare instances. &lt;br&gt;&lt;br&gt;You do not appear to have such a keyring, although PGP keys are mentioned by existing RetroShare accounts, probably because you just changed to this new version of the software.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -10836,14 +10831,6 @@ Characters &lt;b&gt;&quot;,|,/,\,&amp;lt;,&amp;gt;,*,?&lt;/b&gt; will be replace
</source> </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Login Failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Maybe password is wrong</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Start with a RetroShare link is only supported for Windows.</source> <source>Start with a RetroShare link is only supported for Windows.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -10871,10 +10858,6 @@ Reported error is:
%2</source> %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Id: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Click to send a private message to %1 (%2).</source> <source>Click to send a private message to %1 (%2).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -10883,10 +10866,6 @@ Reported error is:
<source>%1 (%2, Extra - Source included)</source> <source>%1 (%2, Extra - Source included)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>This cert is malformed. Error code: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Click this link to send a private message to %1 (%2)</source> <source>Click this link to send a private message to %1 (%2)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -10927,10 +10906,6 @@ Reported error is:
<source>DSA keys are not yet supported by this version of RetroShare. All these nodes will be unusable. We&apos;re very sorry for that.</source> <source>DSA keys are not yet supported by this version of RetroShare. All these nodes will be unusable. We&apos;re very sorry for that.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Auto Subscribe: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>enabled</source> <source>enabled</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -10983,6 +10958,30 @@ Reported error is:
<source>%1 days ago</source> <source>%1 days ago</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Subject:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Participants:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto Subscribe:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Id:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This cert is malformed. Error code:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following has not been added to your download list, because you already have it:</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QuickStartWizard</name> <name>QuickStartWizard</name>
@ -11158,10 +11157,6 @@ p, li { white-space: pre-wrap; }
<source>Shared Directory Added!</source> <source>Shared Directory Added!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Do you really want to stop sharing this directory ? </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Warning!</source> <source>Warning!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -11189,6 +11184,10 @@ p, li { white-space: pre-wrap; }
* Universal: both</source> * Universal: both</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Do you really want to stop sharing this directory ?</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RSGraphWidget</name> <name>RSGraphWidget</name>
@ -11222,10 +11221,6 @@ p, li { white-space: pre-wrap; }
</context> </context>
<context> <context>
<name>RSPermissionMatrixWidget</name> <name>RSPermissionMatrixWidget</name>
<message>
<source>Service name: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Allowed by default</source> <source>Allowed by default</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -11234,14 +11229,6 @@ p, li { white-space: pre-wrap; }
<source>Denied by default</source> <source>Denied by default</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Peer name: </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Peer Id: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Enabled for this peer</source> <source>Enabled for this peer</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -11262,20 +11249,28 @@ p, li { white-space: pre-wrap; }
<source>Switched Off</source> <source>Switched Off</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Service name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Peer name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Peer Id:</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RSettingsWin</name> <name>RSettingsWin</name>
<message> <message>
<source>Error Saving Configuration on page </source> <source>Error Saving Configuration on page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
<name>RatesStatus</name> <name>RatesStatus</name>
<message>
<source>&lt;strong&gt;Down:&lt;/strong&gt; 0.00 (kB/s) | &lt;strong&gt;Up:&lt;/strong&gt; 0.00 (kB/s) </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Down</source> <source>Down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -11284,6 +11279,10 @@ p, li { white-space: pre-wrap; }
<source>Up</source> <source>Up</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;strong&gt;Down:&lt;/strong&gt; 0.00 (kB/s) | &lt;strong&gt;Up:&lt;/strong&gt; 0.00 (kB/s)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RelayPage</name> <name>RelayPage</name>
@ -11683,18 +11682,6 @@ Reducing image to %1x%2 pixels?</source>
<source>RetroShare Usage Information</source> <source>RetroShare Usage Information</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Invalid language code specified: </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Invalid GUI style specified: </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Invalid log level specified: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Unable to open log file &apos;%1&apos;: %2</source> <source>Unable to open log file &apos;%1&apos;: %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -11711,6 +11698,18 @@ Reducing image to %1x%2 pixels?</source>
<source>Revision</source> <source>Revision</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Invalid language code specified:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Invalid GUI style specified:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Invalid log level specified:</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RttStatistics</name> <name>RttStatistics</name>
@ -12020,6 +12019,10 @@ Reducing image to %1x%2 pixels?</source>
<source>&lt;p&gt;This is the IP your friend claims it is connected to. If you just changed IPs, this is a false warning. If not, that means your connection to this friend is forwarded by an intermediate peer, which would be suspicious.&lt;/p&gt;</source> <source>&lt;p&gt;This is the IP your friend claims it is connected to. If you just changed IPs, this is a false warning. If not, that means your connection to this friend is forwarded by an intermediate peer, which would be suspicious.&lt;/p&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This warning is here to protect you against traffic forwarding attacks. In such a case, the friend you&apos;re connected to will not see your external IP, but the attacker&apos;s IP. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;However, if you just changed IPs for some reason (some ISPs regularly force change IPs) this warning just tells you that a friend connected to the new IP before Retroshare figured out the IP changed. Nothing&apos;s wrong in this case.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;You can easily suppress false warnings by white-listing your own IPs (e.g. the range of your ISP), or by completely disabling these warnings in Options-&amp;gt;Notify-&amp;gt;News Feed.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>SecurityItem</name> <name>SecurityItem</name>
@ -12123,10 +12126,6 @@ Reducing image to %1x%2 pixels?</source>
<source>Certificate has wrong signature!! This peer is not who he claims to be.</source> <source>Certificate has wrong signature!! This peer is not who he claims to be.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Missing/Damaged SSL certificate for key </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Missing/Damaged certificate. Not a real Retroshare user.</source> <source>Missing/Damaged certificate. Not a real Retroshare user.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -12139,6 +12138,10 @@ Reducing image to %1x%2 pixels?</source>
<source>Peer/node not in friendlist (PGP id=</source> <source>Peer/node not in friendlist (PGP id=</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Missing/Damaged SSL certificate for key</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ServerPage</name> <name>ServerPage</name>
@ -12570,10 +12573,6 @@ Check your ports!</source>
<source>Share Flags</source> <source>Share Flags</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Share flags and groups: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Edit Shared Folder</source> <source>Edit Shared Folder</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -12582,6 +12581,10 @@ Check your ports!</source>
<source>Select A Folder To Share</source> <source>Select A Folder To Share</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Share flags and groups:</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ShareKey</name> <name>ShareKey</name>
@ -13710,10 +13713,6 @@ bad blocks, and download them again
Try to be patient!</source> Try to be patient!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>version: </source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Transferring</source> <source>Transferring</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -13912,6 +13911,10 @@ Try to be patient!</source>
<source>Show file list transfers</source> <source>Show file list transfers</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>version:</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TreeStyle_RDM</name> <name>TreeStyle_RDM</name>
@ -14072,11 +14075,11 @@ Try to be patient!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Forwarded data </source> <source>TR Forward probabilities</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>TR Forward probabilities</source> <source>Forwarded data</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>