From 8bd1b7aa4a2823f2d42de37f1cf87cc19e08ab46 Mon Sep 17 00:00:00 2001 From: thunder2 Date: Tue, 1 May 2012 12:58:28 +0000 Subject: [PATCH] Added (and modified) patch from Imanuel - Added ability to style the system messages in chat (e.g. Lobby management) Fixed german language. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5130 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- retroshare-gui/src/gui/FriendsDialog.cpp | 2 +- retroshare-gui/src/gui/chat/ChatStyle.cpp | 13 +- retroshare-gui/src/gui/chat/ChatStyle.h | 4 +- retroshare-gui/src/gui/chat/ChatWidget.cpp | 4 +- .../src/gui/chat/HandleRichText.cpp | 2 +- retroshare-gui/src/gui/chat/HandleRichText.h | 1 + retroshare-gui/src/gui/images.qrc | 6 + .../src/gui/qss/chat/compact/history/main.css | 9 + .../gui/qss/chat/compact/history/system.htm | 11 ++ .../gui/qss/chat/compact/private/system.htm | 7 + .../src/gui/qss/chat/compact/public/main.css | 4 + .../gui/qss/chat/compact/public/system.htm | 7 + .../gui/qss/chat/standard/history/main.css | 10 + .../gui/qss/chat/standard/history/system.htm | 15 ++ .../gui/qss/chat/standard/private/main.css | 3 + .../gui/qss/chat/standard/private/system.htm | 14 ++ .../src/gui/qss/chat/standard/public/main.css | 6 + .../gui/qss/chat/standard/public/system.htm | 7 + retroshare-gui/src/gui/settings/ChatPage.cpp | 11 +- retroshare-gui/src/lang/retroshare_de.qm | Bin 419639 -> 420330 bytes retroshare-gui/src/lang/retroshare_de.ts | 171 +++++++++++------- 21 files changed, 232 insertions(+), 75 deletions(-) create mode 100644 retroshare-gui/src/gui/qss/chat/compact/history/system.htm create mode 100644 retroshare-gui/src/gui/qss/chat/compact/private/system.htm create mode 100644 retroshare-gui/src/gui/qss/chat/compact/public/system.htm create mode 100644 retroshare-gui/src/gui/qss/chat/standard/history/system.htm create mode 100644 retroshare-gui/src/gui/qss/chat/standard/private/system.htm create mode 100644 retroshare-gui/src/gui/qss/chat/standard/public/system.htm diff --git a/retroshare-gui/src/gui/FriendsDialog.cpp b/retroshare-gui/src/gui/FriendsDialog.cpp index 9f30f339d..acf1857a5 100644 --- a/retroshare-gui/src/gui/FriendsDialog.cpp +++ b/retroshare-gui/src/gui/FriendsDialog.cpp @@ -373,7 +373,7 @@ void FriendsDialog::publicChatChanged(int type) void FriendsDialog::addChatMsg(bool incoming, bool history, const QString &name, const QDateTime &sendTime, const QDateTime &recvTime, const QString &message) { - unsigned int formatFlag = CHAT_FORMATMSG_EMBED_LINKS; + unsigned int formatFlag = CHAT_FORMATMSG_EMBED_LINKS | CHAT_FORMATMSG_OPTIMIZE; // embed smileys ? if (Settings->valueFromGroup("Chat", "Emoteicons_GroupChat", true).toBool()) { diff --git a/retroshare-gui/src/gui/chat/ChatStyle.cpp b/retroshare-gui/src/gui/chat/ChatStyle.cpp index 95ebc6a48..ca007c897 100644 --- a/retroshare-gui/src/gui/chat/ChatStyle.cpp +++ b/retroshare-gui/src/gui/chat/ChatStyle.cpp @@ -43,6 +43,7 @@ hincoming.htm - incoming history messages houtgoing.htm - outgoing history messages ooutgoing.htm - outgoing offline messages (private chat) + system.htm - system messages main.css - stylesheet variants - directory with variants (optional) @@ -116,7 +117,8 @@ enum enumGetStyle GETSTYLE_OUTGOING, GETSTYLE_HINCOMING, GETSTYLE_HOUTGOING, - GETSTYLE_OOUTGOING + GETSTYLE_OOUTGOING, + GETSTYLE_SYSTEM }; /* Default constructor */ @@ -226,6 +228,9 @@ static QString getStyle(const QDir &styleDir, const QString &styleVariant, enumG case GETSTYLE_OOUTGOING: fileHtml.setFileName(QFileInfo(styleDir, "ooutgoing.htm").absoluteFilePath()); break; + case GETSTYLE_SYSTEM: + fileHtml.setFileName(QFileInfo(styleDir, "system.htm").absoluteFilePath()); + break; default: return ""; } @@ -283,6 +288,9 @@ QString ChatStyle::formatMessage(enumFormatMessage type, const QString &name, co case FORMATMSG_OOUTGOING: style = getStyle(m_styleDir, m_styleVariant, GETSTYLE_OOUTGOING); break; + case FORMATMSG_SYSTEM: + style = getStyle(m_styleDir, m_styleVariant, GETSTYLE_SYSTEM); + break; } if (style.isEmpty()) { @@ -300,6 +308,9 @@ QString ChatStyle::formatMessage(enumFormatMessage type, const QString &name, co if (flag & CHAT_FORMATMSG_EMBED_LINKS) { formatFlag |= RSHTML_FORMATTEXT_EMBED_LINKS; } + if (flag & CHAT_FORMATMSG_OPTIMIZE) { + formatFlag |= RSHTML_FORMATTEXT_OPTIMIZE; + } QString msg = RsHtml::formatText(message, formatFlag); diff --git a/retroshare-gui/src/gui/chat/ChatStyle.h b/retroshare-gui/src/gui/chat/ChatStyle.h index 50609abf9..7dc8d28f0 100644 --- a/retroshare-gui/src/gui/chat/ChatStyle.h +++ b/retroshare-gui/src/gui/chat/ChatStyle.h @@ -33,12 +33,13 @@ #define CHAT_FORMATMSG_EMBED_SMILEYS 1 #define CHAT_FORMATMSG_EMBED_LINKS 2 #define CHAT_FORMATMSG_SYSTEM 4 +#define CHAT_FORMATMSG_OPTIMIZE 8 /* Flags for ChatStyle::formatText */ #define CHAT_FORMATTEXT_EMBED_SMILEYS 1 #define CHAT_FORMATTEXT_EMBED_LINKS 2 -#define FORMATMSG_COUNT 5 +#define FORMATMSG_COUNT 6 class ChatStyleInfo { @@ -67,6 +68,7 @@ public: FORMATMSG_HINCOMING = 2, FORMATMSG_HOUTGOING = 3, FORMATMSG_OOUTGOING = 4, + FORMATMSG_SYSTEM = 5, // FORMATMSG_COUNT }; diff --git a/retroshare-gui/src/gui/chat/ChatWidget.cpp b/retroshare-gui/src/gui/chat/ChatWidget.cpp index 2996921ed..cd8299de3 100644 --- a/retroshare-gui/src/gui/chat/ChatWidget.cpp +++ b/retroshare-gui/src/gui/chat/ChatWidget.cpp @@ -305,7 +305,7 @@ void ChatWidget::addChatMsg(bool incoming, const QString &name, const QDateTime std::cout << "ChatWidget::addChatMsg message : " << message.toStdString() << std::endl; #endif - unsigned int formatFlag = CHAT_FORMATMSG_EMBED_LINKS; + unsigned int formatFlag = CHAT_FORMATMSG_EMBED_LINKS | CHAT_FORMATMSG_OPTIMIZE; // embed smileys ? if (Settings->valueFromGroup(QString("Chat"), QString::fromUtf8("Emoteicons_PrivatChat"), true).toBool()) { @@ -315,6 +315,8 @@ void ChatWidget::addChatMsg(bool incoming, const QString &name, const QDateTime ChatStyle::enumFormatMessage type; if (chatType == TYPE_OFFLINE) { type = ChatStyle::FORMATMSG_OOUTGOING; + } else if (chatType == TYPE_SYSTEM) { + type = ChatStyle::FORMATMSG_SYSTEM; } else if (chatType == TYPE_HISTORY) { type = incoming ? ChatStyle::FORMATMSG_HINCOMING : ChatStyle::FORMATMSG_HOUTGOING; } else { diff --git a/retroshare-gui/src/gui/chat/HandleRichText.cpp b/retroshare-gui/src/gui/chat/HandleRichText.cpp index 34a1f7778..65d116593 100644 --- a/retroshare-gui/src/gui/chat/HandleRichText.cpp +++ b/retroshare-gui/src/gui/chat/HandleRichText.cpp @@ -182,7 +182,7 @@ QString formatText(const QString &text, unsigned int flag) if (flag & RSHTML_FORMATTEXT_REMOVE_COLOR) { optimizeFlag |= RSHTML_OPTIMIZEHTML_REMOVE_COLOR; } - if (optimizeFlag) { + if (optimizeFlag || (flag & RSHTML_FORMATTEXT_OPTIMIZE)) { optimizeHtml(formattedText, optimizeFlag); } diff --git a/retroshare-gui/src/gui/chat/HandleRichText.h b/retroshare-gui/src/gui/chat/HandleRichText.h index 1b9800e66..e98ae07dd 100644 --- a/retroshare-gui/src/gui/chat/HandleRichText.h +++ b/retroshare-gui/src/gui/chat/HandleRichText.h @@ -39,6 +39,7 @@ #define RSHTML_FORMATTEXT_REMOVE_FONT 4 #define RSHTML_FORMATTEXT_REMOVE_COLOR 8 #define RSHTML_FORMATTEXT_CLEANSTYLE (RSHTML_FORMATTEXT_REMOVE_FONT | RSHTML_FORMATTEXT_REMOVE_COLOR) +#define RSHTML_FORMATTEXT_OPTIMIZE 16 /* Flags for RsHtml::formatText */ #define RSHTML_OPTIMIZEHTML_REMOVE_FONT 2 diff --git a/retroshare-gui/src/gui/images.qrc b/retroshare-gui/src/gui/images.qrc index ed5f48640..06cac0215 100644 --- a/retroshare-gui/src/gui/images.qrc +++ b/retroshare-gui/src/gui/images.qrc @@ -493,6 +493,7 @@ qss/chat/standard/private/hincoming.htm qss/chat/standard/private/houtgoing.htm qss/chat/standard/private/ooutgoing.htm + qss/chat/standard/private/system.htm qss/chat/standard/private/main.css qss/chat/standard/private/variants/Standard.css qss/chat/standard/public/info.xml @@ -501,6 +502,7 @@ qss/chat/standard/public/hincoming.htm qss/chat/standard/public/houtgoing.htm qss/chat/standard/public/ooutgoing.htm + qss/chat/standard/public/system.htm qss/chat/standard/public/main.css qss/chat/standard/public/variants/Standard.css qss/chat/standard/history/info.xml @@ -509,6 +511,7 @@ qss/chat/standard/history/hincoming.htm qss/chat/standard/history/houtgoing.htm qss/chat/standard/history/ooutgoing.htm + qss/chat/standard/history/system.htm qss/chat/standard/history/main.css qss/chat/standard/history/variants/Standard.css qss/chat/compact/private/info.xml @@ -517,6 +520,7 @@ qss/chat/compact/private/hincoming.htm qss/chat/compact/private/houtgoing.htm qss/chat/compact/private/ooutgoing.htm + qss/chat/compact/private/system.htm qss/chat/compact/private/main.css qss/chat/compact/private/variants/Standard.css qss/chat/compact/private/variants/Colored.css @@ -526,6 +530,7 @@ qss/chat/compact/public/hincoming.htm qss/chat/compact/public/houtgoing.htm qss/chat/compact/public/ooutgoing.htm + qss/chat/compact/public/system.htm qss/chat/compact/public/main.css qss/chat/compact/public/variants/Standard.css qss/chat/compact/public/variants/Colored.css @@ -535,6 +540,7 @@ qss/chat/compact/history/hincoming.htm qss/chat/compact/history/houtgoing.htm qss/chat/compact/history/ooutgoing.htm + qss/chat/compact/history/system.htm qss/chat/compact/history/main.css qss/chat/compact/history/variants/Standard.css smileys/amorous.png diff --git a/retroshare-gui/src/gui/qss/chat/compact/history/main.css b/retroshare-gui/src/gui/qss/chat/compact/history/main.css index a5307dc8c..af11b615a 100644 --- a/retroshare-gui/src/gui/qss/chat/compact/history/main.css +++ b/retroshare-gui/src/gui/qss/chat/compact/history/main.css @@ -64,3 +64,12 @@ .ooutgoingName { color: #244578; } + +.incomingTable { +} + +.incomingTime { +} + +.incomingName { +} diff --git a/retroshare-gui/src/gui/qss/chat/compact/history/system.htm b/retroshare-gui/src/gui/qss/chat/compact/history/system.htm new file mode 100644 index 000000000..8ba3b9538 --- /dev/null +++ b/retroshare-gui/src/gui/qss/chat/compact/history/system.htm @@ -0,0 +1,11 @@ + + + +
+%date% %time% +%name%: +%message% +
+ \ No newline at end of file diff --git a/retroshare-gui/src/gui/qss/chat/compact/private/system.htm b/retroshare-gui/src/gui/qss/chat/compact/private/system.htm new file mode 100644 index 000000000..2062080a6 --- /dev/null +++ b/retroshare-gui/src/gui/qss/chat/compact/private/system.htm @@ -0,0 +1,7 @@ + + +%time% +%name%: +%message% \ No newline at end of file diff --git a/retroshare-gui/src/gui/qss/chat/compact/public/main.css b/retroshare-gui/src/gui/qss/chat/compact/public/main.css index ea6121059..a6f107107 100644 --- a/retroshare-gui/src/gui/qss/chat/compact/public/main.css +++ b/retroshare-gui/src/gui/qss/chat/compact/public/main.css @@ -21,3 +21,7 @@ .ooutgoingTime { color:#808080; } + +.systemTime { + color:#808080; +} diff --git a/retroshare-gui/src/gui/qss/chat/compact/public/system.htm b/retroshare-gui/src/gui/qss/chat/compact/public/system.htm new file mode 100644 index 000000000..c20930d2c --- /dev/null +++ b/retroshare-gui/src/gui/qss/chat/compact/public/system.htm @@ -0,0 +1,7 @@ + + +%time% +%name%: +%message% \ No newline at end of file diff --git a/retroshare-gui/src/gui/qss/chat/standard/history/main.css b/retroshare-gui/src/gui/qss/chat/standard/history/main.css index af0cd950d..e3c5e2fe1 100644 --- a/retroshare-gui/src/gui/qss/chat/standard/history/main.css +++ b/retroshare-gui/src/gui/qss/chat/standard/history/main.css @@ -69,3 +69,13 @@ .ooutgoingTime { color: #244578; } + +.incomingTable { + color: #000000; +} + +.systemHeader { +} + +.systemTime { +} diff --git a/retroshare-gui/src/gui/qss/chat/standard/history/system.htm b/retroshare-gui/src/gui/qss/chat/standard/history/system.htm new file mode 100644 index 000000000..e77a104c5 --- /dev/null +++ b/retroshare-gui/src/gui/qss/chat/standard/history/system.htm @@ -0,0 +1,15 @@ + + + + + + +
%name%[%date% %time%]
+ + + + +
%message%
+ \ No newline at end of file diff --git a/retroshare-gui/src/gui/qss/chat/standard/private/main.css b/retroshare-gui/src/gui/qss/chat/standard/private/main.css index 297d758ba..5f9a460dd 100644 --- a/retroshare-gui/src/gui/qss/chat/standard/private/main.css +++ b/retroshare-gui/src/gui/qss/chat/standard/private/main.css @@ -34,3 +34,6 @@ border-color:#fafafa #e3e3e3 #e3e3e3 #fafafa; color: #244578; } + +.systemHeader { +} diff --git a/retroshare-gui/src/gui/qss/chat/standard/private/system.htm b/retroshare-gui/src/gui/qss/chat/standard/private/system.htm new file mode 100644 index 000000000..ec9fcbbf5 --- /dev/null +++ b/retroshare-gui/src/gui/qss/chat/standard/private/system.htm @@ -0,0 +1,14 @@ + + + + + + +
%name%%time%
+ + + + +
%message%
\ No newline at end of file diff --git a/retroshare-gui/src/gui/qss/chat/standard/public/main.css b/retroshare-gui/src/gui/qss/chat/standard/public/main.css index 1d9fdad51..05c44fe32 100644 --- a/retroshare-gui/src/gui/qss/chat/standard/public/main.css +++ b/retroshare-gui/src/gui/qss/chat/standard/public/main.css @@ -41,3 +41,9 @@ .ooutgoingName { color:#FF0000; } + +.systemTime { +} + +.systemName { +} diff --git a/retroshare-gui/src/gui/qss/chat/standard/public/system.htm b/retroshare-gui/src/gui/qss/chat/standard/public/system.htm new file mode 100644 index 000000000..aff13e55b --- /dev/null +++ b/retroshare-gui/src/gui/qss/chat/standard/public/system.htm @@ -0,0 +1,7 @@ + + +%time% +%name%
+%message% diff --git a/retroshare-gui/src/gui/settings/ChatPage.cpp b/retroshare-gui/src/gui/settings/ChatPage.cpp index 94ceb6953..242a37ce7 100644 --- a/retroshare-gui/src/gui/settings/ChatPage.cpp +++ b/retroshare-gui/src/gui/settings/ChatPage.cpp @@ -206,11 +206,12 @@ void ChatPage::setPreviewMessages(QString &stylePath, QString styleVariant, QTex QString nameOutgoing = tr("Outgoing"); QDateTime timestmp = QDateTime::fromTime_t(time(NULL)); - textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_HINCOMING, nameIncoming, timestmp, tr("Incoming message in history"), CHAT_FORMATTEXT_EMBED_SMILEYS)); - textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_HOUTGOING, nameOutgoing, timestmp, tr("Outgoing message in history"), CHAT_FORMATTEXT_EMBED_SMILEYS)); - textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_INCOMING, nameIncoming, timestmp, tr("Incoming message"), CHAT_FORMATTEXT_EMBED_SMILEYS)); - textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_OUTGOING, nameOutgoing, timestmp, tr("Outgoing message"), CHAT_FORMATTEXT_EMBED_SMILEYS)); - textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_OOUTGOING, nameOutgoing, timestmp, tr("Outgoing offline message"), CHAT_FORMATTEXT_EMBED_SMILEYS)); + textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_HINCOMING, nameIncoming, timestmp, tr("Incoming message in history"), CHAT_FORMATTEXT_EMBED_SMILEYS | CHAT_FORMATMSG_OPTIMIZE)); + textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_HOUTGOING, nameOutgoing, timestmp, tr("Outgoing message in history"), CHAT_FORMATTEXT_EMBED_SMILEYS | CHAT_FORMATMSG_OPTIMIZE)); + textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_INCOMING, nameIncoming, timestmp, tr("Incoming message"), CHAT_FORMATTEXT_EMBED_SMILEYS | CHAT_FORMATMSG_OPTIMIZE)); + textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_OUTGOING, nameOutgoing, timestmp, tr("Outgoing message"), CHAT_FORMATTEXT_EMBED_SMILEYS | CHAT_FORMATMSG_OPTIMIZE)); + textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_OOUTGOING, nameOutgoing, timestmp, tr("Outgoing offline message"), CHAT_FORMATTEXT_EMBED_SMILEYS | CHAT_FORMATMSG_OPTIMIZE)); + textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_SYSTEM, tr("System"), timestmp, tr("System message"), CHAT_FORMATTEXT_EMBED_SMILEYS | CHAT_FORMATMSG_OPTIMIZE)); } void ChatPage::fillPreview(QListWidget *listWidget, QComboBox *comboBox, QTextBrowser *textBrowser) diff --git a/retroshare-gui/src/lang/retroshare_de.qm b/retroshare-gui/src/lang/retroshare_de.qm index 59b2bd40624ecba40724b3da961bb88ad43d5ab4..a54ef2b613189b439fabc15e64af038e2f2912af 100644 GIT binary patch delta 19380 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

&(+U#Hq{mS3k+{jg=o;#<_TV0Z1B-;Fi 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 diff --git a/retroshare-gui/src/lang/retroshare_de.ts b/retroshare-gui/src/lang/retroshare_de.ts index 3b6260983..8f169fe8a 100644 --- a/retroshare-gui/src/lang/retroshare_de.ts +++ b/retroshare-gui/src/lang/retroshare_de.ts @@ -1472,6 +1472,16 @@ p, li { white-space: pre-wrap; } Outgoing offline message Ausgehende offline Nachricht + + + System + System + + + + System message + Systemnachricht + Chat @@ -1481,7 +1491,7 @@ p, li { white-space: pre-wrap; } ChatStyle - + Standard style for group chat Standard Stil für den Gruppenchat @@ -1625,12 +1635,17 @@ p, li { white-space: pre-wrap; } Schriftart auf den Standard setzen - + Paste RetroShare Link RetroShare Link einfügen - + + Paste own certificate link + Füge eigenen Zertifikat Link ein + + + is typing... tippt... @@ -2861,7 +2876,7 @@ p, li { white-space: pre-wrap; } - + Paste RetroShare Link RetroShare Link einfügen @@ -2870,6 +2885,11 @@ p, li { white-space: pre-wrap; } Paste full RetroShare Link Vollen RetroShare Link einfügen + + + Paste own certificate link + Füge eigenen Zertifikat Link ein + In Reply to @@ -5134,12 +5154,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:16pt; color:#ffffff;">Freundschaftsanfrage</span></p></body></html> - + Confirm Bestätigen - + Peer Info Nachbar Info @@ -5154,9 +5174,8 @@ p, li { white-space: pre-wrap; } Peer ID - RetroShare ID - RetroShare ID + RetroShare ID Your trust in this peer is: @@ -5175,7 +5194,7 @@ p, li { white-space: pre-wrap; } Voll - + You have a friend request. Du hast eine Freundschaftsanfrage. @@ -5224,13 +5243,13 @@ p, li { white-space: pre-wrap; } - + RetroShare RetroShare - - + + Error : cannot get peer details. @@ -5257,12 +5276,12 @@ p, li { white-space: pre-wrap; } Signature Failure - Signatur Fehler + Signatur Fehler Maybe password is wrong - Vielleicht ist das Passwort falsch + Vielleicht ist das Passwort falsch @@ -7609,7 +7628,7 @@ Bitte gib etwas Speicher frei und drücke OK. MessageComposer - + Compose Verfassen @@ -7628,7 +7647,7 @@ Bitte gib etwas Speicher frei und drücke OK. Zurücksetzen - + Send To: Senden an: @@ -7759,7 +7778,7 @@ Bitte gib etwas Speicher frei und drücke OK. Setzt Schriftart auf Codestil - + To An @@ -7844,7 +7863,7 @@ Bitte gib etwas Speicher frei und drücke OK. Blockquote hinzufügen - + &Left &Links @@ -7864,13 +7883,23 @@ Bitte gib etwas Speicher frei und drücke OK. &Blocksatz - - + + wants to be friend with you on RetroShare + möchte mit dir in RetroShare befreundet sein + + + + Hi %1,<br>%2 wants to be friend with you on RetroShare.<br><br>Respond now<br>%3<br><br>Thanks.<br>The RetroShare Team + + + + + Save Message Nachricht speichern - + Message has not been Sent. Do you want to save message to draft box? Nachricht wurde noch nicht gesendet. @@ -7908,7 +7937,7 @@ Möchtest Du die Nachricht in den Entwürfen speichern? Freund-Details - + Re: Re: @@ -7918,18 +7947,18 @@ Möchtest Du die Nachricht in den Entwürfen speichern? Fwd: - - + + RetroShare - + Do you want to send the message without a subject ? Möchtest Du die Nachricht ohne Betreff senden ? - + Please insert at least one recipient. Bitte geben sie mindestens einen Empfänger ein. @@ -8109,7 +8138,7 @@ Möchtest du die Nachricht speichern ? Datei nicht gefunden oder Dateiname nicht akzeptiert. - + Friend Recommendation(s) Freundempfehlung(en) @@ -8306,7 +8335,7 @@ p, li { white-space: pre-wrap; } Erweitern - + File Datei @@ -8467,7 +8496,7 @@ p, li { white-space: pre-wrap; } MessagesDialog - + New Message Neue Nachricht @@ -8493,14 +8522,14 @@ p, li { white-space: pre-wrap; } - + Date Datum - + From Von @@ -8570,16 +8599,16 @@ p, li { white-space: pre-wrap; } - - + + Inbox Posteingang - - + + Outbox Postausgang @@ -8591,7 +8620,7 @@ p, li { white-space: pre-wrap; } - + Sent Gesendet @@ -8644,7 +8673,7 @@ p, li { white-space: pre-wrap; } - + Subject Betreff @@ -8664,7 +8693,7 @@ p, li { white-space: pre-wrap; } Gekennzeichnet - + Edit Bearbeiten @@ -8684,7 +8713,7 @@ p, li { white-space: pre-wrap; } Weiterleiten - + Click to sort by attachments Klicken, um nach Anhang zu sortieren @@ -8700,12 +8729,12 @@ p, li { white-space: pre-wrap; } - + Click to sort by from Klicken, um nach Von zu sortieren - + Click to sort by date Klicken, um nach Datum zu sortieren @@ -8715,13 +8744,23 @@ p, li { white-space: pre-wrap; } Klicken, um nach Schlagwörter zu sortieren - + + System + System + + + + No system messages available. + Keine Systemnachrichten vorhanden. + + + Click to sort by to Klicken, um nach Empfänger zu sortieren - + Reply to All Allen antworten @@ -8747,8 +8786,8 @@ p, li { white-space: pre-wrap; } - - + + Trash Papierkorb @@ -8759,7 +8798,7 @@ p, li { white-space: pre-wrap; } Ordner - + Mark as read Als gelesen markieren @@ -8784,29 +8823,29 @@ p, li { white-space: pre-wrap; } Papierkorb leeren - - + + Drafts Entwürfe - + To An - + Click to sort by star Klicken, um nach Kennzeichnung zu sortieren - + No starred messages available. Stars let you give messages a special status to make them easier to find. To star a message, click on the light grey star beside any message. Es sind keine gekennzeichneten Nachrichten vorhanden. Durch die Kennzeichnung kannst du Nachrichten mit einem speziellen Status versehen, sodass sie leichter zu finden sind. Klicke zum Kennzeichnen einer Nachricht auf den hellgrauen Stern neben der jeweiligen Nachricht. - + @@ -8943,7 +8982,7 @@ p, li { white-space: pre-wrap; } - + Expand Erweitern @@ -9454,11 +9493,12 @@ p, li { white-space: pre-wrap; } + Message Nachricht - + Channel Post Kanalbeitrag @@ -9469,12 +9509,12 @@ p, li { white-space: pre-wrap; } - + Download completed Download fertig - + @@ -9483,7 +9523,7 @@ p, li { white-space: pre-wrap; } Kombiniert - + Toasters @@ -9508,7 +9548,8 @@ p, li { white-space: pre-wrap; } Chat Lobbie - + + Connect attempt Verbindungsversuch @@ -9528,8 +9569,8 @@ p, li { white-space: pre-wrap; } Abstand Y - - + + Private Chat Privater Chat @@ -9560,12 +9601,12 @@ p, li { white-space: pre-wrap; } Zeige Systemabschnitts-Nachricht an - + Add feeds at end Feeds am Ende anfügen - + Top Left Oben Links @@ -10924,7 +10965,7 @@ Lockdatei: Die Datei wurde zur Downloadliste hinzugefügt. - + File Request canceled Dateianforderung abgebrochen @@ -10984,7 +11025,7 @@ Lockdatei: Der Empfänger der Nachricht ist unbekannt. - + Click to add this RetroShare cert to your GPG keyring and open the Make Friend Wizard. @@ -10993,7 +11034,7 @@ und den Assistent zum Hinzufügen von Freunden zu starten. - + Add file Datei hinzufügen