Added translation for plugins and added german language to LinksCloud. Recompile needed.

Changed the name and the description of the plugin to utf8.
Fixed german language.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4672 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2011-11-17 21:17:24 +00:00
parent 4d9727f47a
commit 8fc1a46ee7
19 changed files with 411 additions and 346 deletions

View File

@ -3,4 +3,5 @@ TEMPLATE = subdirs
SUBDIRS += \
libbitdht/src/libbitdht.pro \
libretroshare/src/libretroshare.pro \
retroshare-gui/src/RetroShare.pro
retroshare-gui/src/RetroShare.pro \
plugins/plugins.pro

View File

@ -41,6 +41,8 @@ class MainPage ;
class QIcon ;
class QString ;
class QWidget ;
class QTranslator;
class QApplication;
class RsCacheService ;
class ftServer ;
class pqiService ;
@ -81,13 +83,14 @@ class RsPlugin
virtual MainPage *qt_page() const { return NULL ; }
virtual QWidget *qt_config_panel() const { return NULL ; }
virtual QIcon *qt_icon() const { return NULL ; }
virtual QTranslator *qt_translator(QApplication *app, const QString& languageCode) const { return NULL ; }
virtual std::string configurationFileName() const { return std::string() ; }
virtual std::string getShortPluginDescription() const = 0 ;
virtual std::string getPluginName() const = 0 ;
virtual void getPluginVersion(int& major,int& minor,int& svn_rev) const = 0 ;
virtual void setPlugInHandler(RsPluginHandler* pgHandler) = 0;
virtual void setInterfaces(RsPlugInInterfaces& interfaces) = 0;
virtual void setPlugInHandler(RsPluginHandler* pgHandler) = 0;
virtual void setInterfaces(RsPlugInInterfaces& interfaces) = 0;
};
class RsPluginHandler

View File

@ -15,10 +15,10 @@ win32 {
MOC_DIR = temp/moc
RCC_DIR = temp/qrc
UI_DIR = temp/ui
DEFINES *= WINDOWS_SYS WIN32 STATICLIB MINGW
DEFINES *= MINIUPNPC_VERSION=13
DESTDIR = lib
# DESTDIR = lib
# Switch off optimization for release version
QMAKE_CXXFLAGS_RELEASE -= -O2

View File

@ -55,7 +55,7 @@ AddLinksDialog::AddLinksDialog(QString url, QWidget *parent)
// if(link.valid() && link.type() == RetroShareLink::TYPE_FILE)
// ui.titleLineEdit->setText(link.name());
// else
ui.titleLineEdit->setText("New File");
ui.titleLineEdit->setText(tr("New Link"));
load();

View File

@ -1,6 +1,6 @@
!include("../Common/retroshare_plugin.pri"): error("Could not include file ../Common/retroshare_plugin.pri")
CONFIG += qt uic qrc release resources
CONFIG += qt uic qrc resources
SOURCES = p3ranking.cc LinksDialog.cpp rsrankitems.cc AddLinksDialog.cpp LinksCloudPlugin.cpp
HEADERS = rsrank.h p3ranking.h LinksDialog.h rsrankitems.h AddLinksDialog.h LinksCloudPlugin.h
@ -8,4 +8,4 @@ FORMS = LinksDialog.ui AddLinksDialog.ui
TARGET = LinksCloud
RESOURCES = linksCloud_images.qrc
RESOURCES = linksCloud_images.qrc lang/lang.qrc

View File

@ -1,4 +1,5 @@
#include <retroshare/rsplugin.h>
#include <QTranslator>
#include "LinksCloudPlugin.h"
#include "LinksDialog.h"
@ -77,7 +78,25 @@ QIcon *LinksCloudPlugin::qt_icon() const
std::string LinksCloudPlugin::getShortPluginDescription() const
{
return "This plugin provides a set of cached links, and a voting system to promote them." ;
return QApplication::translate("LinksCloudPlugin", "This plugin provides a set of cached links, and a voting system to promote them.").toUtf8().constData();
}
std::string LinksCloudPlugin::getPluginName() const
{
return QApplication::translate("LinksCloudPlugin", "LinksCloud").toUtf8().constData();
}
QTranslator* LinksCloudPlugin::qt_translator(QApplication *app, const QString& languageCode) const
{
if (languageCode == "en") {
return NULL;
}
QTranslator* translator = new QTranslator(app);
if (translator->load(":/lang/LinksCloud_" + languageCode + ".qm")) {
return translator;
}
delete(translator);
return NULL;
}

View File

@ -14,21 +14,22 @@ class LinksCloudPlugin: public RsPlugin
virtual MainPage *qt_page() const ;
virtual QIcon *qt_icon() const ;
virtual uint16_t rs_service_id() const { return RS_SERVICE_TYPE_RANK ; }
virtual QTranslator *qt_translator(QApplication *app, const QString& languageCode) const;
virtual void getPluginVersion(int& major,int& minor,int& svn_rev) const ;
virtual void setPlugInHandler(RsPluginHandler *pgHandler);
virtual void setPlugInHandler(RsPluginHandler *pgHandler);
virtual std::string configurationFileName() const { return std::string() ; }
virtual std::string getShortPluginDescription() const ;
virtual std::string getPluginName() const { return "LinksCloud" ; }
virtual void setInterfaces(RsPlugInInterfaces& interfaces);
virtual std::string getPluginName() const;
virtual void setInterfaces(RsPlugInInterfaces& interfaces);
private:
mutable p3Ranking *mRanking ;
mutable RsPluginHandler *mPlugInHandler;
mutable RsFiles* mFiles;
mutable RsPeers* mPeers;
mutable MainPage *mainpage ;
mutable QIcon *mIcon ;
mutable RsPluginHandler *mPlugInHandler;
mutable RsFiles* mFiles;
mutable RsPeers* mPeers;
mutable MainPage* mainpage ;
mutable QIcon* mIcon ;
};

View File

@ -1,7 +1,7 @@
TEMPLATE = subdirs
SUBDIRS += \
calendar_plugin puzzle_plugin qcheckers_plugin qdiagram_plugin
calendar_plugin puzzle_plugin qcheckers_plugin qdiagram_plugin LinksCloud

View File

@ -290,7 +290,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags)
icon = QIcon(":images/extension_48.png") ;
std::cerr << " Addign widget page for plugin " << rsPlugins->plugin(i)->getPluginName() << std::endl;
ui.stackPages->add(rsPlugins->plugin(i)->qt_page(), createPageAction(icon, QString::fromStdString(rsPlugins->plugin(i)->getPluginName()), grp));
ui.stackPages->add(rsPlugins->plugin(i)->qt_page(), createPageAction(icon, QString::fromUtf8(rsPlugins->plugin(i)->getPluginName().c_str()), grp));
}
else if(rsPlugins->plugin(i) == NULL)
std::cerr << " No plugin object !" << std::endl;

View File

@ -1,280 +1,275 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PluginItem</class>
<widget class="QWidget" name="PluginItem">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>519</width>
<height>185</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<widget class="QFrame" name="frame">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true">QFrame#frame{border: 2px solid green;
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #62E0B1, stop: 1 #8EFFD3);
border-radius: 0px}</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<item>
<widget class="QPushButton" name="_pluginIcon">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>48</horstretch>
<verstretch>48</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>48</width>
<height>48</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>48</width>
<height>48</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QLabel" name="subjectLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">subjectLabel</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Status: </string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>File hash:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>File name: </string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="_statusLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_hashLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_name_LE">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QFrame" name="expandFrame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="_2">
<item>
<widget class="QLabel" name="msgLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">Long
message here</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="_configure_PB">
<property name="toolTip">
<string>Launch configuration panel, if provided by the plugin</string>
</property>
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="_enabled_CB">
<property name="toolTip">
<string>Add the plugin into the white list of accepted plugins. This will be effective after you restart RetroShare, since plugins need to be loaded at startup.</string>
</property>
<property name="text">
<string>Enabled</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="../images.qrc"/>
</resources>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PluginItem</class>
<widget class="QWidget" name="PluginItem">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>519</width>
<height>185</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<widget class="QFrame" name="frame">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true">QFrame#frame{border: 2px solid green;
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #62E0B1, stop: 1 #8EFFD3);
border-radius: 0px}</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<item>
<widget class="QPushButton" name="_pluginIcon">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>48</horstretch>
<verstretch>48</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>48</width>
<height>48</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>48</width>
<height>48</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QLabel" name="subjectLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">subjectLabel</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Status: </string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>File hash:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>File name: </string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="_statusLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_hashLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_name_LE">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QFrame" name="expandFrame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="_2">
<item>
<widget class="QLabel" name="msgLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">Long
message here</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="_configure_PB">
<property name="toolTip">
<string>Launch configuration panel, if provided by the plugin</string>
</property>
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="_enabled_CB">
<property name="toolTip">
<string>Add the plugin into the white list of accepted plugins. This will be effective after you restart RetroShare, since plugins need to be loaded at startup.</string>
</property>
<property name="text">
<string>Enabled</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -78,8 +78,8 @@ PluginsPage::PluginsPage(QWidget * parent, Qt::WFlags flags)
if(plugin->qt_icon() != NULL)
plugin_icon = *plugin->qt_icon() ;
pluginTitle = QString::fromStdString(plugin->getPluginName()) ;
pluginDescription = QString::fromStdString(plugin->getShortPluginDescription()) ;
pluginTitle = QString::fromUtf8(plugin->getPluginName().c_str()) ;
pluginDescription = QString::fromUtf8(plugin->getShortPluginDescription().c_str()) ;
}
PluginItem *item = new PluginItem(i,pluginTitle,pluginDescription,status_string,
@ -107,6 +107,9 @@ PluginsPage::PluginsPage(QWidget * parent, Qt::WFlags flags)
text += "<b>"+QString::fromStdString(dirs[i]) + "</b><br>" ;
ui._lookupDirectories_TB->setHtml(text) ;
// todo
ui.enableAll->setEnabled(false);
}
void PluginsPage::configurePlugin(int i)
{

View File

@ -540,7 +540,7 @@
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox">
<widget class="QCheckBox" name="enableAll">
<property name="text">
<string>Authorize all plugins</string>
</property>

View File

@ -24,9 +24,11 @@
#include <QLocale>
#include <QLibraryInfo>
#include <rshare.h>
#include <retroshare/rsplugin.h>
#include "languagesupport.h"
static QMap<RsPlugin*, QTranslator*> translatorPlugins;
/** Initializes the list of available languages. */
QMap<QString, QString>
@ -117,6 +119,19 @@ LanguageSupport::isRightToLeft(const QString &languageCode)
|| !languageCode.compare("fa", Qt::CaseInsensitive)
|| !languageCode.compare("he", Qt::CaseInsensitive));
}
static void removePluginTranslation()
{
QMap<RsPlugin*, QTranslator*>::iterator it;
for (it = translatorPlugins.begin(); it != translatorPlugins.end(); ++it) {
if (it.value()) {
QApplication::removeTranslator(it.value());
delete(it.value());
}
}
translatorPlugins.clear();
}
/** Sets the application's translator to the specified language. */
bool
LanguageSupport::translate(const QString &languageCode)
@ -130,6 +145,8 @@ LanguageSupport::translate(const QString &languageCode)
QApplication::removeTranslator(retroshareTranslator);
delete(retroshareTranslator);
retroshareTranslator = NULL;
removePluginTranslation();
}
if (languageCode == "en")
@ -156,11 +173,40 @@ LanguageSupport::translate(const QString &languageCode)
retroshareTranslator = new QTranslator(rApp);
Q_CHECK_PTR(retroshareTranslator);
bool result = true;
if (retroshareTranslator->load(":/lang/retroshare_" + languageCode + ".qm")) {
QApplication::installTranslator(retroshareTranslator);
return true;
} else {
delete retroshareTranslator;
retroshareTranslator = NULL;
result = false;
}
delete retroshareTranslator;
retroshareTranslator = NULL;
return false;
result = translatePlugins(languageCode) && result;
return result;
}
/** Sets the application's translator to the specified language for the plugins. */
bool LanguageSupport::translatePlugins(const QString &languageCode)
{
removePluginTranslation();
if (rsPlugins == NULL) {
return true;
}
int count = rsPlugins->nbPlugins();
for (int i = 0; i < count; ++i) {
RsPlugin* plugin = rsPlugins->plugin(i);
if (plugin) {
QTranslator* translator = plugin->qt_translator(rApp, languageCode);
if (translator) {
QApplication::installTranslator(translator);
translatorPlugins[plugin] = translator;
}
}
}
return true;
}

View File

@ -20,8 +20,6 @@
* Boston, MA 02110-1301, USA.
****************************************************************/
#ifndef _LANGUAGESUPPORT_H
#define _LANGUAGESUPPORT_H
@ -29,8 +27,6 @@
#include <QStringList>
#include <QMap>
class LanguageSupport
{
public:
@ -52,7 +48,8 @@ public:
static bool isRightToLeft(const QString &languageCode);
/** Sets the application's translator to the specified language. */
static bool translate(const QString &languageCode);
/** Sets the application's translator to the specified language for the plugins. */
static bool translatePlugins(const QString &languageCode);
};
#endif

View File

@ -8849,51 +8849,43 @@ p, li { white-space: pre-wrap; }
<context>
<name>PluginItem</name>
<message>
<location filename="../gui/settings/PluginItem.ui" line="+14"/>
<source>Form</source>
<translation type="unfinished">Formular</translation>
<translation type="obsolete">Formular</translation>
</message>
<message>
<location line="+115"/>
<location filename="../gui/settings/PluginItem.ui" line="+126"/>
<source>Status: </source>
<translation type="unfinished"></translation>
<translation>Status:</translation>
</message>
<message>
<location line="+7"/>
<source>File hash:</source>
<translation type="unfinished"></translation>
<translation>Datei Prüfsumme:</translation>
</message>
<message>
<location line="+7"/>
<source>File name: </source>
<translation type="unfinished"></translation>
<translation>Dateiname:</translation>
</message>
<message>
<location line="+17"/>
<location line="+13"/>
<location line="+13"/>
<source>TextLabel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+64"/>
<location line="+107"/>
<source>Launch configuration panel, if provided by the plugin</source>
<translation type="unfinished"></translation>
<translation>Starte Einstellungen, wenn vom Plugin unterstützt</translation>
</message>
<message>
<location line="+3"/>
<source>Configure</source>
<translation type="unfinished"></translation>
<translation>Einstellung</translation>
</message>
<message>
<location line="+7"/>
<source>Add the plugin into the white list of accepted plugins. This will be effective after you restart RetroShare, since plugins need to be loaded at startup.</source>
<translation type="unfinished"></translation>
<translation>Fügt das Plugin als vertrauenswürdig hinzu. Das wirkt sich nach dem Neustart von RetroShare aus, da die Plugins beim Start geladen werden.</translation>
</message>
<message>
<location line="+3"/>
<source>Enabled</source>
<translation type="unfinished"></translation>
<translation>Aktivieren</translation>
</message>
</context>
<context>
@ -8919,57 +8911,57 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../gui/settings/PluginsPage.ui" line="+519"/>
<source>Loaded plugins</source>
<translation type="unfinished"></translation>
<translation>Geladene Plugins</translation>
</message>
<message>
<location line="+26"/>
<source>Authorize all plugins</source>
<translation type="unfinished"></translation>
<translation>Erlaube alle Plugins</translation>
</message>
<message>
<location line="+7"/>
<source>Plugin look-up directories</source>
<translation type="unfinished"></translation>
<translation>Plugin Verzeichnis</translation>
</message>
<message>
<location filename="../gui/settings/PluginsPage.cpp" line="+57"/>
<source>Hash rejected. Add to white list.</source>
<translation type="unfinished"></translation>
<translation>Hash abgelehnt. Füge das Plugin als vertrauenswürdig hinzu.</translation>
</message>
<message>
<location line="+2"/>
<source>Loading error.</source>
<translation type="unfinished"></translation>
<translation>Fehler beim Laden.</translation>
</message>
<message>
<location line="+2"/>
<source>Missing symbol. Wrong version?</source>
<translation type="unfinished"></translation>
<translation>Fehlendes Symbol. Falsche Version?</translation>
</message>
<message>
<location line="+2"/>
<source>No plugin object</source>
<translation type="unfinished"></translation>
<translation>Kein Plugin Objekt</translation>
</message>
<message>
<location line="+2"/>
<source>Plugins is loaded.</source>
<translation type="unfinished"></translation>
<translation>Plugin ist geladen.</translation>
</message>
<message>
<location line="+3"/>
<source>Unknown status.</source>
<translation type="unfinished"></translation>
<translation>Unbekannter Status.</translation>
</message>
<message>
<location line="+5"/>
<source>Title unavailable</source>
<translation type="unfinished"></translation>
<translation>Titel nicht verfügbar</translation>
</message>
<message>
<location line="+1"/>
<source>Description unavailable</source>
<translation type="unfinished"></translation>
<translation>Beschreibung nicht verfügbar</translation>
</message>
</context>
<context>
@ -10050,7 +10042,7 @@ Lockdatei:
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/common/RsCollectionDialog.cpp" line="+136"/>
<location filename="../gui/common/RsCollectionDialog.cpp" line="+179"/>
<source>Unable to make path</source>
<translation type="unfinished"></translation>
</message>
@ -10484,7 +10476,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>RsCollectionDialog</name>
<message>
<location filename="../gui/common/RsCollectionDialog.cpp" line="-95"/>
<location filename="../gui/common/RsCollectionDialog.cpp" line="-135"/>
<source>File</source>
<translation>Datei</translation>
</message>
@ -10504,7 +10496,7 @@ p, li { white-space: pre-wrap; }
<translation>Kollektion</translation>
</message>
<message>
<location line="+14"/>
<location line="+17"/>
<source>File name :</source>
<translation>Dateiname:</translation>
</message>
@ -10519,7 +10511,7 @@ p, li { white-space: pre-wrap; }
<translation>Ausgewählt:</translation>
</message>
<message>
<location line="+86"/>
<location line="+92"/>
<source>Select all</source>
<translation>Alle auswählen</translation>
</message>

View File

@ -219,6 +219,7 @@ int main(int argc, char *argv[])
splashScreen.showMessage(rshare.translate("SplashScreen", "Load configuration"), Qt::AlignHCenter | Qt::AlignBottom);
rsicontrol->StartupRetroShare();
Rshare::initPlugins();
splashScreen.showMessage(rshare.translate("SplashScreen", "Create interface"), Qt::AlignHCenter | Qt::AlignBottom);

View File

@ -308,7 +308,7 @@ Rshare::setLanguage(QString languageCode)
if (languageCode.isEmpty()) {
languageCode = Settings->getLanguageCode();
}
/* Translate into the desired langauge */
/* Translate into the desired language */
if (LanguageSupport::translate(languageCode)) {
_language = languageCode;
return true;
@ -345,7 +345,6 @@ Rshare::setSheet(QString sheet)
/* Apply the specified GUI stylesheet */
_stylesheet = sheet;
return true;
}
void Rshare::resetLanguageAndStyle()
@ -360,6 +359,12 @@ void Rshare::resetLanguageAndStyle()
setSheet(_args.value(ARG_GUISTYLESHEET));
}
/** Initialize plugins. */
void Rshare::initPlugins()
{
LanguageSupport::translatePlugins(_language);
}
/** Returns the directory RetroShare uses for its data files. */
QString
Rshare::dataDirectory()

View File

@ -84,6 +84,8 @@ public:
*/
static void resetLanguageAndStyle();
/** Initialize plugins. */
static void initPlugins();
/** Returns the current language. */
static QString language() { return _language; }