summaryrefslogtreecommitdiffstats
path: root/Swift
diff options
context:
space:
mode:
Diffstat (limited to 'Swift')
-rw-r--r--Swift/Controllers/Chat/MUCController.cpp26
-rw-r--r--Swift/Controllers/Chat/UnitTest/MUCControllerTest.cpp16
-rw-r--r--Swift/Controllers/MainController.cpp2
-rw-r--r--Swift/Controllers/Roster/RosterController.cpp2
-rw-r--r--Swift/QtUI/EventViewer/QtEventWindow.cpp2
-rw-r--r--Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp1
-rw-r--r--Swift/QtUI/MUCSearch/QtMUCSearchWindow.ui2
-rw-r--r--Swift/QtUI/QtAboutWidget.cpp4
-rw-r--r--Swift/QtUI/QtAvatarWidget.cpp2
-rw-r--r--Swift/QtUI/QtBookmarkDetailWindow.ui2
-rw-r--r--Swift/QtUI/QtChatWindow.cpp2
-rw-r--r--Swift/QtUI/QtJoinMUCWindow.ui6
-rw-r--r--Swift/QtUI/QtLoginWindow.cpp8
-rw-r--r--Swift/QtUI/QtMainWindow.cpp2
-rw-r--r--Swift/QtUI/QtNameWidget.cpp4
-rw-r--r--Swift/QtUI/QtStatusWidget.cpp16
-rw-r--r--Swift/QtUI/QtStatusWidget.h1
-rw-r--r--Swift/QtUI/SConscript11
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchFieldsPage.ui4
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchFirstPage.ui10
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchResultsPage.ui2
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchWindow.cpp6
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchWindow.ui292
-rw-r--r--Swift/QtUI/main.cpp2
-rw-r--r--Swift/Translations/swift.ts1289
-rw-r--r--Swift/Translations/swift_nl.ts1290
26 files changed, 2648 insertions, 356 deletions
diff --git a/Swift/Controllers/Chat/MUCController.cpp b/Swift/Controllers/Chat/MUCController.cpp
index ce8c946..aaa9d3a 100644
--- a/Swift/Controllers/Chat/MUCController.cpp
+++ b/Swift/Controllers/Chat/MUCController.cpp
@@ -122,13 +122,13 @@ void MUCController::receivedActivity() {
void MUCController::handleJoinFailed(boost::shared_ptr<ErrorPayload> error) {
receivedActivity();
- std::string errorMessage = QT_TRANSLATE_NOOP("", "Unable to join this room");
+ std::string errorMessage = QT_TRANSLATE_NOOP("", "Unable to enter this room");
std::string rejoinNick;
if (error) {
switch (error->getCondition()) {
case ErrorPayload::Conflict:
rejoinNick = nick_ + "_";
- errorMessage = str(format(QT_TRANSLATE_NOOP("", "Unable to join this room as %1%, retrying as %2%")) % nick_ % rejoinNick);
+ errorMessage = str(format(QT_TRANSLATE_NOOP("", "Unable to enter this room as %1%, retrying as %2%")) % nick_ % rejoinNick);
break;
case ErrorPayload::JIDMalformed:
errorMessage += ": ";
@@ -140,7 +140,7 @@ void MUCController::handleJoinFailed(boost::shared_ptr<ErrorPayload> error) {
break;
case ErrorPayload::RegistrationRequired:
errorMessage += ": ";
- errorMessage += QT_TRANSLATE_NOOP("", "Only members may join");
+ errorMessage += QT_TRANSLATE_NOOP("", "Only members may enter");
break;
case ErrorPayload::Forbidden:
errorMessage += ": ";
@@ -170,7 +170,7 @@ void MUCController::handleJoinFailed(boost::shared_ptr<ErrorPayload> error) {
void MUCController::handleJoinComplete(const std::string& nick) {
receivedActivity();
joined_ = true;
- std::string joinMessage = str(format(QT_TRANSLATE_NOOP("", "You have joined room %1% as %2%")) % toJID_.toString() % nick);
+ std::string joinMessage = str(format(QT_TRANSLATE_NOOP("", "You have entered room %1% as a %2%.")) % toJID_.toString() % nick);
nick_ = nick;
chatWindow_->addSystemMessage(joinMessage);
clearPresenceQueue();
@@ -211,10 +211,10 @@ void MUCController::handleOccupantJoined(const MUCOccupant& occupant) {
std::string joinString;
MUCOccupant::Role role = occupant.getRole();
if (role != MUCOccupant::NoRole && role != MUCOccupant::Participant) {
- joinString = str(format(QT_TRANSLATE_NOOP("", "%1% has joined the room as a %2%.")) % occupant.getNick() % roleToFriendlyName(role));
+ joinString = str(format(QT_TRANSLATE_NOOP("", "%1% has entered the room as a %2%.")) % occupant.getNick() % roleToFriendlyName(role));
}
else {
- joinString = str(format(QT_TRANSLATE_NOOP("", "%1% has joined the room.")) % occupant.getNick());
+ joinString = str(format(QT_TRANSLATE_NOOP("", "%1% has entered the room.")) % occupant.getNick());
}
if (shouldUpdateJoinParts()) {
updateJoinParts();
@@ -327,7 +327,7 @@ void MUCController::setOnline(bool online) {
processUserPart();
} else {
if (shouldJoinOnReconnect_) {
- chatWindow_->addSystemMessage(str(format(QT_TRANSLATE_NOOP("", "Trying to join room %1%")) % toJID_.toString()));
+ chatWindow_->addSystemMessage(str(format(QT_TRANSLATE_NOOP("", "Trying to enter room %1%")) % toJID_.toString()));
if (loginCheckTimer_) {
loginCheckTimer_->start();
}
@@ -454,10 +454,10 @@ std::string MUCController::generateJoinPartString(const std::vector<NickJoinPart
switch (i) {
case Join:
if (sorted[i].size() > 1) {
- eventString = QT_TRANSLATE_NOOP("", "%1% have joined the room");
+ eventString = QT_TRANSLATE_NOOP("", "%1% have entered the room");
}
else {
- eventString = QT_TRANSLATE_NOOP("", "%1% has joined the room");
+ eventString = QT_TRANSLATE_NOOP("", "%1% has entered the room");
}
break;
case Part:
@@ -470,18 +470,18 @@ std::string MUCController::generateJoinPartString(const std::vector<NickJoinPart
break;
case JoinThenPart:
if (sorted[i].size() > 1) {
- eventString = QT_TRANSLATE_NOOP("", "%1% have joined then left the room");
+ eventString = QT_TRANSLATE_NOOP("", "%1% have entered then left the room");
}
else {
- eventString = QT_TRANSLATE_NOOP("", "%1% has joined then left the room");
+ eventString = QT_TRANSLATE_NOOP("", "%1% has entered then left the room");
}
break;
case PartThenJoin:
if (sorted[i].size() > 1) {
- eventString = QT_TRANSLATE_NOOP("", "%1% have left then rejoined the room");
+ eventString = QT_TRANSLATE_NOOP("", "%1% have left then returned to the room");
}
else {
- eventString = QT_TRANSLATE_NOOP("", "%1% has left then rejoined the room");
+ eventString = QT_TRANSLATE_NOOP("", "%1% has left then returned to the room");
}
break;
}
diff --git a/Swift/Controllers/Chat/UnitTest/MUCControllerTest.cpp b/Swift/Controllers/Chat/UnitTest/MUCControllerTest.cpp
index e66fa9e..5f5e44d 100644
--- a/Swift/Controllers/Chat/UnitTest/MUCControllerTest.cpp
+++ b/Swift/Controllers/Chat/UnitTest/MUCControllerTest.cpp
@@ -200,25 +200,25 @@ public:
void testJoinPartStringContructionSimple() {
std::vector<NickJoinPart> list;
list.push_back(NickJoinPart("Kev", Join));
- CPPUNIT_ASSERT_EQUAL(std::string("Kev has joined the room"), MUCController::generateJoinPartString(list));
+ CPPUNIT_ASSERT_EQUAL(std::string("Kev has entered the room"), MUCController::generateJoinPartString(list));
list.push_back(NickJoinPart("Remko", Part));
- CPPUNIT_ASSERT_EQUAL(std::string("Kev has joined the room and Remko has left the room"), MUCController::generateJoinPartString(list));
+ CPPUNIT_ASSERT_EQUAL(std::string("Kev has entered the room and Remko has left the room"), MUCController::generateJoinPartString(list));
list.push_back(NickJoinPart("Bert", Join));
- CPPUNIT_ASSERT_EQUAL(std::string("Kev and Bert have joined the room and Remko has left the room"), MUCController::generateJoinPartString(list));
+ CPPUNIT_ASSERT_EQUAL(std::string("Kev and Bert have entered the room and Remko has left the room"), MUCController::generateJoinPartString(list));
list.push_back(NickJoinPart("Ernie", Join));
- CPPUNIT_ASSERT_EQUAL(std::string("Kev, Bert and Ernie have joined the room and Remko has left the room"), MUCController::generateJoinPartString(list));
+ CPPUNIT_ASSERT_EQUAL(std::string("Kev, Bert and Ernie have entered the room and Remko has left the room"), MUCController::generateJoinPartString(list));
}
void testJoinPartStringContructionMixed() {
std::vector<NickJoinPart> list;
list.push_back(NickJoinPart("Kev", JoinThenPart));
- CPPUNIT_ASSERT_EQUAL(std::string("Kev has joined then left the room"), MUCController::generateJoinPartString(list));
+ CPPUNIT_ASSERT_EQUAL(std::string("Kev has entered then left the room"), MUCController::generateJoinPartString(list));
list.push_back(NickJoinPart("Remko", Part));
- CPPUNIT_ASSERT_EQUAL(std::string("Remko has left the room and Kev has joined then left the room"), MUCController::generateJoinPartString(list));
+ CPPUNIT_ASSERT_EQUAL(std::string("Remko has left the room and Kev has entered then left the room"), MUCController::generateJoinPartString(list));
list.push_back(NickJoinPart("Bert", PartThenJoin));
- CPPUNIT_ASSERT_EQUAL(std::string("Remko has left the room, Kev has joined then left the room and Bert has left then rejoined the room"), MUCController::generateJoinPartString(list));
+ CPPUNIT_ASSERT_EQUAL(std::string("Remko has left the room, Kev has entered then left the room and Bert has left then returned to the room"), MUCController::generateJoinPartString(list));
list.push_back(NickJoinPart("Ernie", JoinThenPart));
- CPPUNIT_ASSERT_EQUAL(std::string("Remko has left the room, Kev and Ernie have joined then left the room and Bert has left then rejoined the room"), MUCController::generateJoinPartString(list));
+ CPPUNIT_ASSERT_EQUAL(std::string("Remko has left the room, Kev and Ernie have entered then left the room and Bert has left then returned to the room"), MUCController::generateJoinPartString(list));
}
private:
diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp
index 6263636..adde70a 100644
--- a/Swift/Controllers/MainController.cpp
+++ b/Swift/Controllers/MainController.cpp
@@ -458,7 +458,7 @@ void MainController::handleDisconnected(const boost::optional<ClientError>& erro
case ClientError::CertificateSelfSignedError: certificateErrorMessage = QT_TRANSLATE_NOOP("", "Certificate is self-signed"); break;
case ClientError::CertificateRejectedError: certificateErrorMessage = QT_TRANSLATE_NOOP("", "Certificate has been rejected"); break;
case ClientError::CertificateUntrustedError: certificateErrorMessage = QT_TRANSLATE_NOOP("", "Certificate is not trusted"); break;
- case ClientError::InvalidCertificatePurposeError: certificateErrorMessage = QT_TRANSLATE_NOOP("", "Certificate cannot be used for encryptig your connection"); break;
+ case ClientError::InvalidCertificatePurposeError: certificateErrorMessage = QT_TRANSLATE_NOOP("", "Certificate cannot be used for encrypting your connection"); break;
case ClientError::CertificatePathLengthExceededError: certificateErrorMessage = QT_TRANSLATE_NOOP("", "Certificate path length constraint exceeded"); break;
case ClientError::InvalidCertificateSignatureError: certificateErrorMessage = QT_TRANSLATE_NOOP("", "Invalid certificate signature"); break;
case ClientError::InvalidCAError: certificateErrorMessage = QT_TRANSLATE_NOOP("", "Invalid Certificate Authority"); break;
diff --git a/Swift/Controllers/Roster/RosterController.cpp b/Swift/Controllers/Roster/RosterController.cpp
index 8a0fd53..83291e4 100644
--- a/Swift/Controllers/Roster/RosterController.cpp
+++ b/Swift/Controllers/Roster/RosterController.cpp
@@ -247,7 +247,7 @@ void RosterController::handleRosterSetError(ErrorPayload::ref error, boost::shar
if (!error) {
return;
}
- std::string text = str(format(QT_TRANSLATE_NOOP("", "Server %1% rejected roster change to item '%2%'")) % myJID_.getDomain() % rosterPayload->getItems()[0].getJID().toString());
+ std::string text = str(format(QT_TRANSLATE_NOOP("", "Server %1% rejected contact list change to item '%2%'")) % myJID_.getDomain() % rosterPayload->getItems()[0].getJID().toString());
if (!error->getText().empty()) {
text += ": " + error->getText();
}
diff --git a/Swift/QtUI/EventViewer/QtEventWindow.cpp b/Swift/QtUI/EventViewer/QtEventWindow.cpp
index aa5e27d..fdc0194 100644
--- a/Swift/QtUI/EventViewer/QtEventWindow.cpp
+++ b/Swift/QtUI/EventViewer/QtEventWindow.cpp
@@ -44,7 +44,7 @@ QtEventWindow::QtEventWindow(UIEventStream* eventStream) : EventWindow(false) {
view_->setIndentation(0);
view_->setRootIsDecorated(true);
- readButton_ = new QPushButton("Display Notice", this);
+ readButton_ = new QPushButton(tr("Display Notice"), this);
layout->addWidget(readButton_);
readButton_->setEnabled(false);
connect(readButton_, SIGNAL(clicked()), this, SLOT(handleReadClicked()));
diff --git a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp
index 618ed65..135b4ce 100644
--- a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp
+++ b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp
@@ -27,7 +27,6 @@ QtMUCSearchWindow::QtMUCSearchWindow() {
setWindowIcon(QIcon(":/logo-icon-16.png"));
#endif
setModal(true);
- setWindowTitle(tr("Search Room"));
ui_.filter_->hide();
model_ = new MUCSearchModel();
delegate_ = new MUCSearchDelegate();
diff --git a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.ui b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.ui
index e078d34..6416042 100644
--- a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.ui
+++ b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.ui
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
- <string>Dialog</string>
+ <string>Search Room</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
diff --git a/Swift/QtUI/QtAboutWidget.cpp b/Swift/QtUI/QtAboutWidget.cpp
index 2f68769..8bea27a 100644
--- a/Swift/QtUI/QtAboutWidget.cpp
+++ b/Swift/QtUI/QtAboutWidget.cpp
@@ -39,8 +39,8 @@ QtAboutWidget::QtAboutWidget() : QDialog() {
QLabel* versionLabel = new QLabel(QString("<center><font size='-1'>Version ") + QCoreApplication::applicationVersion() + "</font></center>", this);
mainLayout->addWidget(versionLabel);
- QString buildString = QString("<center><font size='-1'>") + QString(tr("Built with: Qt version %1")).arg(QT_VERSION_STR);
- buildString += QString("<br/>") + QString(tr("Running with Qt version ")).arg(qVersion());
+ QString buildString = QString("<center><font size='-1'>") + QString(tr("Built with Qt %1")).arg(QT_VERSION_STR);
+ buildString += QString("<br/>") + QString(tr("Running with Qt %1")).arg(qVersion());
buildString += "</font></center>";
QLabel* buildLabel = new QLabel(buildString, this);
mainLayout->addWidget(buildLabel);
diff --git a/Swift/QtUI/QtAvatarWidget.cpp b/Swift/QtUI/QtAvatarWidget.cpp
index ebdf1a6..173d074 100644
--- a/Swift/QtUI/QtAvatarWidget.cpp
+++ b/Swift/QtUI/QtAvatarWidget.cpp
@@ -58,7 +58,7 @@ void QtAvatarWidget::setAvatar(const ByteArray& data, const std::string& type) {
QFont font = painter.font();
font.setPointSize(14);
painter.setFont(font);
- painter.drawText(0, 0, image.height(), image.width(), Qt::AlignHCenter | Qt::AlignVCenter, "No picture");
+ painter.drawText(0, 0, image.height(), image.width(), Qt::AlignHCenter | Qt::AlignVCenter, tr("No picture"));
}
if (image.height() > label->height() || image.width() > label->width()) {
diff --git a/Swift/QtUI/QtBookmarkDetailWindow.ui b/Swift/QtUI/QtBookmarkDetailWindow.ui
index d6df255..a77ac76 100644
--- a/Swift/QtUI/QtBookmarkDetailWindow.ui
+++ b/Swift/QtUI/QtBookmarkDetailWindow.ui
@@ -47,7 +47,7 @@
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
- <string>Room JID:</string>
+ <string>Room Address:</string>
</property>
</widget>
</item>
diff --git a/Swift/QtUI/QtChatWindow.cpp b/Swift/QtUI/QtChatWindow.cpp
index 4b67ef0..3e314e5 100644
--- a/Swift/QtUI/QtChatWindow.cpp
+++ b/Swift/QtUI/QtChatWindow.cpp
@@ -289,7 +289,7 @@ void QtChatWindow::setAckState(std::string const& id, ChatWindow::AckState state
switch (state) {
case ChatWindow::Pending: xml = "<img src='qrc:/icons/throbber.gif' alt='" + tr("This message has not been received by your server yet.") + "'/>"; break;
case ChatWindow::Received: xml = ""; break;
- case ChatWindow::Failed: xml = "<img src='qrc:/icons/error.png' alt='" + tr("This message may not have been transmitted.'") + "/>"; break;
+ case ChatWindow::Failed: xml = "<img src='qrc:/icons/error.png' alt='" + tr("This message may not have been transmitted.") + "'/>"; break;
}
messageLog_->setAckXML(P2QSTRING(id), xml);
}
diff --git a/Swift/QtUI/QtJoinMUCWindow.ui b/Swift/QtUI/QtJoinMUCWindow.ui
index 6b718b3..14774d8 100644
--- a/Swift/QtUI/QtJoinMUCWindow.ui
+++ b/Swift/QtUI/QtJoinMUCWindow.ui
@@ -17,7 +17,7 @@
</sizepolicy>
</property>
<property name="windowTitle">
- <string>Join Room</string>
+ <string>Enter Room</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
@@ -86,14 +86,14 @@
<item>
<widget class="QCheckBox" name="joinAutomatically">
<property name="text">
- <string>Join automatically in future</string>
+ <string>Enter automatically in future</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="joinButton">
<property name="text">
- <string>Join Room</string>
+ <string>Enter Room</string>
</property>
</widget>
</item>
diff --git a/Swift/QtUI/QtLoginWindow.cpp b/Swift/QtUI/QtLoginWindow.cpp
index 24e6d76..ef8ceac 100644
--- a/Swift/QtUI/QtLoginWindow.cpp
+++ b/Swift/QtUI/QtLoginWindow.cpp
@@ -154,7 +154,11 @@ QtLoginWindow::QtLoginWindow(UIEventStream* uiEventStream) : QMainWindow() {
generalMenu_ = swiftMenu_;
#endif
+#ifdef SWIFTEN_PLATFORM_MACOSX
+ QAction* aboutAction = new QAction(QString("&About %1").arg("Swift"), this);
+#else
QAction* aboutAction = new QAction(QString(tr("&About %1")).arg("Swift"), this);
+#endif
connect(aboutAction, SIGNAL(triggered()), SLOT(handleAbout()));
swiftMenu_->addAction(aboutAction);
@@ -180,7 +184,11 @@ QtLoginWindow::QtLoginWindow(UIEventStream* uiEventStream) : QMainWindow() {
swiftMenu_->addSeparator();
#endif
+#ifdef SWIFTEN_PLATFORM_MACOSX
+ QAction* quitAction = new QAction("&Quit", this);
+#else
QAction* quitAction = new QAction(tr("&Quit"), this);
+#endif
connect(quitAction, SIGNAL(triggered()), SLOT(handleQuit()));
swiftMenu_->addAction(quitAction);
diff --git a/Swift/QtUI/QtMainWindow.cpp b/Swift/QtUI/QtMainWindow.cpp
index 0f43f7e..55ceabc 100644
--- a/Swift/QtUI/QtMainWindow.cpp
+++ b/Swift/QtUI/QtMainWindow.cpp
@@ -85,7 +85,7 @@ QtMainWindow::QtMainWindow(QtSettingsProvider* settings, UIEventStream* uiEventS
QAction* editProfileAction = new QAction(tr("Edit Profile"), this);
connect(editProfileAction, SIGNAL(triggered()), SLOT(handleEditProfileAction()));
actionsMenu->addAction(editProfileAction);
- QAction* joinMUCAction = new QAction(tr("&Join Room"), this);
+ QAction* joinMUCAction = new QAction(tr("&Enter Room"), this);
connect(joinMUCAction, SIGNAL(triggered()), SLOT(handleJoinMUCAction()));
actionsMenu->addAction(joinMUCAction);
addUserAction_ = new QAction(tr("&Add Contact"), this);
diff --git a/Swift/QtUI/QtNameWidget.cpp b/Swift/QtUI/QtNameWidget.cpp
index 6124c65..96f9c0d 100644
--- a/Swift/QtUI/QtNameWidget.cpp
+++ b/Swift/QtUI/QtNameWidget.cpp
@@ -44,7 +44,7 @@ void QtNameWidget::mousePressEvent(QMouseEvent* event) {
QMenu menu;
bool hasNick = !nick.isEmpty();
- QAction* showAsNick = new QAction(hasNick ? tr("Show nickname") : tr("(No Nickname Set)"), this);
+ QAction* showAsNick = new QAction(hasNick ? tr("Show Nickname") : tr("(No Nickname Set)"), this);
showAsNick->setCheckable(true);
showAsNick->setEnabled(hasNick);
if (mode == ShowNick && hasNick) {
@@ -52,7 +52,7 @@ void QtNameWidget::mousePressEvent(QMouseEvent* event) {
}
menu.addAction(showAsNick);
- QAction* showAsJID = new QAction(tr("Show ID"), this);
+ QAction* showAsJID = new QAction(tr("Show Address"), this);
showAsJID->setCheckable(true);
if (mode == ShowJID || !hasNick) {
showAsJID->setChecked(true);
diff --git a/Swift/QtUI/QtStatusWidget.cpp b/Swift/QtUI/QtStatusWidget.cpp
index 78bbb03..47f0afe 100644
--- a/Swift/QtUI/QtStatusWidget.cpp
+++ b/Swift/QtUI/QtStatusWidget.cpp
@@ -26,8 +26,6 @@
namespace Swift {
-const QString QtStatusWidget::NO_MESSAGE = QString(QT_TRANSLATE_NOOP("QtStatusWidget", "(No message)"));
-
QtStatusWidget::QtStatusWidget(QWidget *parent) : QWidget(parent), editCursor_(Qt::IBeamCursor), viewCursor_(Qt::PointingHandCursor) {
isClicking_ = false;
connecting_ = false;
@@ -130,7 +128,7 @@ void QtStatusWidget::generateList() {
newStatusText_ = text;
menu_->clear();
foreach (StatusShow::Type type, icons_.keys()) {
- QListWidgetItem* item = new QListWidgetItem(text == "" ? NO_MESSAGE : text, menu_);
+ QListWidgetItem* item = new QListWidgetItem(text == "" ? getNoMessage() : text, menu_);
item->setIcon(icons_[type]);
item->setToolTip(P2QSTRING(statusShowTypeToFriendlyName(type)) + ": " + item->text());
item->setStatusTip(item->toolTip());
@@ -223,7 +221,7 @@ void QtStatusWidget::handleItemClicked(QListWidgetItem* item) {
editing_ = false;
selectedStatusType_ = static_cast<StatusShow::Type>(item->data(Qt::UserRole).toInt());
QString message = item->data(Qt::DisplayRole).toString();
- newStatusText_ = message == NO_MESSAGE ? "" : message;
+ newStatusText_ = message == getNoMessage() ? "" : message;
statusEdit_->setText(newStatusText_);
handleEditComplete();
}
@@ -240,7 +238,7 @@ void QtStatusWidget::setStatusText(const QString& text) {
connectingMovie_->stop();
statusText_ = text;
statusEdit_->setText(text);
- QString escapedText(text.isEmpty() ? NO_MESSAGE : text);
+ QString escapedText(text.isEmpty() ? getNoMessage() : text);
escapedText.replace("<","&lt;");
// statusTextLabel_->setText("<i>" + escapedText + "</i>");
statusTextLabel_->setText(escapedText);
@@ -261,10 +259,8 @@ void QtStatusWidget::setStatusType(StatusShow::Type type) {
setNewToolTip();
}
-
-
+QString QtStatusWidget::getNoMessage() {
+ return QString(tr("(No message)"));
}
-
-
-
+}
diff --git a/Swift/QtUI/QtStatusWidget.h b/Swift/QtUI/QtStatusWidget.h
index f302c64..75bcf52 100644
--- a/Swift/QtUI/QtStatusWidget.h
+++ b/Swift/QtUI/QtStatusWidget.h
@@ -43,6 +43,7 @@ namespace Swift {
protected slots:
virtual void mousePressEvent(QMouseEvent* event);
void handleItemClicked(QListWidgetItem* item);
+ static QString getNoMessage();
private:
void viewMode();
void setNewToolTip();
diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript
index e52d76a..2255808 100644
--- a/Swift/QtUI/SConscript
+++ b/Swift/QtUI/SConscript
@@ -161,17 +161,18 @@ commonResources = {
}
# Translation
-translation_sources = [env.File("../Translations/Swift.ts").abspath]
+translation_sources = [env.File("../Translations/swift.ts").abspath]
for file in os.listdir(Dir("../Translations").abspath) :
- if file.startswith("Swift_") and file.endswith(".ts") :
+ if file.startswith("swift_") and file.endswith(".ts") :
lang = file[6:-3]
- translation_resource = "../resources/translations/Swift_" + lang + ".qm"
- translation_source = "../Translations/Swift_" + lang + ".ts"
+ translation_resource = "../resources/translations/swift_" + lang + ".qm"
+ translation_source = "../Translations/swift_" + lang + ".ts"
translation_sources.append(env.File(translation_source).abspath)
myenv.Qm(translation_resource, translation_source)
commonResources["translations"] = commonResources.get("translations", []) + [translation_resource]
if ARGUMENTS.get("update_translations", False) :
- t = myenv.Command(translation_sources, [], [myenv.Action("$QT4_LUPDATE -I " + env.Dir("#").abspath + " -silent -codecfortr utf-8 -recursive Swift -ts " + " ".join(translation_sources), cmdstr = "$QT4_LUPDATECOMSTR")])
+ myenv.Precious(translation_sources)
+ t = myenv.Command(translation_sources, [], [myenv.Action("$QT4_LUPDATE -I " + env.Dir("#").abspath + " -silent -no-ui-lines -codecfortr utf-8 -recursive Swift -ts " + " ".join(translation_sources), cmdstr = "$QT4_LUPDATECOMSTR")])
myenv.AlwaysBuild(t)
if env["PLATFORM"] == "darwin" :
diff --git a/Swift/QtUI/UserSearch/QtUserSearchFieldsPage.ui b/Swift/QtUI/UserSearch/QtUserSearchFieldsPage.ui
index f2b5916..fa6e376 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchFieldsPage.ui
+++ b/Swift/QtUI/UserSearch/QtUserSearchFieldsPage.ui
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
- <string>WizardPage</string>
+ <string></string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0" colspan="2">
@@ -77,7 +77,7 @@
<item row="5" column="0">
<widget class="QLabel" name="fetchingThrobber_">
<property name="text">
- <string>TextLabel</string>
+ <string></string>
</property>
</widget>
</item>
diff --git a/Swift/QtUI/UserSearch/QtUserSearchFirstPage.ui b/Swift/QtUI/UserSearch/QtUserSearchFirstPage.ui
index 3139f66..46a1277 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchFirstPage.ui
+++ b/Swift/QtUI/UserSearch/QtUserSearchFirstPage.ui
@@ -11,19 +11,19 @@
</rect>
</property>
<property name="windowTitle">
- <string>WizardPage</string>
+ <string></string>
</property>
<property name="title">
<string>Add a user</string>
</property>
<property name="subTitle">
- <string>Add another user to your roster. If you know their JID you can add them directly, or you can search for them.</string>
+ <string>Add another user to your contact list. If you know their address you can add them directly, or you can search for them.</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="howLabel_">
<property name="text">
- <string>howLabel_</string>
+ <string></string>
</property>
</widget>
</item>
@@ -32,7 +32,7 @@
<item>
<widget class="QRadioButton" name="byJID_">
<property name="text">
- <string>I know their JID:</string>
+ <string>I know their address:</string>
</property>
</widget>
</item>
@@ -88,7 +88,7 @@
<item>
<widget class="QLabel" name="errorLabel_">
<property name="text">
- <string>&lt;font color='red'&gt;errorLabel_&lt;/font&gt;</string>
+ <string></string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
diff --git a/Swift/QtUI/UserSearch/QtUserSearchResultsPage.ui b/Swift/QtUI/UserSearch/QtUserSearchResultsPage.ui
index e980a2f..f312fde 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchResultsPage.ui
+++ b/Swift/QtUI/UserSearch/QtUserSearchResultsPage.ui
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
- <string>WizardPage</string>
+ <string></string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
index a384f5d..e06cd31 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
+++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
@@ -23,7 +23,7 @@ namespace Swift {
QtUserSearchFirstPage::QtUserSearchFirstPage(UserSearchWindow::Type type, const QString& title) {
setupUi(this);
setTitle(title);
- setSubTitle(QString(tr("%1. If you know their JID you can enter it directly, or you can search for them.")).arg(type == UserSearchWindow::AddContact ? tr("Add another user to your roster") : tr("Chat to another user")));
+ setSubTitle(QString(tr("%1. If you know their address you can enter it directly, or you can search for them.")).arg(type == UserSearchWindow::AddContact ? tr("Add another user to your contact list") : tr("Chat to another user")));
connect(jid_, SIGNAL(textChanged(const QString&)), this, SLOT(emitCompletenessCheck()));
connect(service_->lineEdit(), SIGNAL(textChanged(const QString&)), this, SLOT(emitCompletenessCheck()));
}
@@ -291,10 +291,10 @@ void QtUserSearchWindow::clear() {
firstPage_->errorLabel_->setVisible(false);
QString howText;
if (type_ == AddContact) {
- howText = QString("How would you like to find the user to add?");
+ howText = QString(tr("How would you like to find the user to add?"));
}
else {
- howText = QString("How would you like to find the user to chat to?");
+ howText = QString(tr("How would you like to find the user to chat to?"));
}
firstPage_->howLabel_->setText(howText);
firstPage_->byJID_->setChecked(true);
diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.ui b/Swift/QtUI/UserSearch/QtUserSearchWindow.ui
deleted file mode 100644
index 56047ce..0000000
--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.ui
+++ /dev/null
@@ -1,292 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>QtUserSearchWindow</class>
- <widget class="QWidget" name="QtUserSearchWindow">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>698</width>
- <height>569</height>
- </rect>
- </property>
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="windowTitle">
- <string>Find other users</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <property name="sizeConstraint">
- <enum>QLayout::SetNoConstraint</enum>
- </property>
- <item>
- <widget class="QFrame" name="frame">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="frameShape">
- <enum>QFrame::StyledPanel</enum>
- </property>
- <property name="frameShadow">
- <enum>QFrame::Raised</enum>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Service to search:</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="service_">
- <property name="editable">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="getSearchForm_">
- <property name="text">
- <string>Get Search Form</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QStackedWidget" name="stack_">
- <property name="currentIndex">
- <number>1</number>
- </property>
- <widget class="QWidget" name="display">
- <layout class="QHBoxLayout" name="horizontalLayout_6">
- <item>
- <widget class="QLabel" name="messageLabel_">
- <property name="text">
- <string>TextLabel</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignHCenter|Qt::AlignTop</set>
- </property>
- <property name="wordWrap">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <widget class="QWidget" name="legacy">
- <layout class="QVBoxLayout" name="verticalLayout_4">
- <item>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0" colspan="2">
- <widget class="QLabel" name="label_4">
- <property name="text">
- <string>Enter search terms</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="nickInputLabel_">
- <property name="text">
- <string>Nickname:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QLineEdit" name="nickInput_"/>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="firstInputLabel_">
- <property name="text">
- <string>First name:</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <widget class="QLineEdit" name="firstInput_"/>
- </item>
- <item row="3" column="0">
- <widget class="QLabel" name="lastInputLabel_">
- <property name="text">
- <string>Last name:</string>
- </property>
- </widget>
- </item>
- <item row="3" column="1">
- <widget class="QLineEdit" name="lastInput_"/>
- </item>
- <item row="4" column="0">
- <widget class="QLabel" name="emailInputLabel_">
- <property name="text">
- <string>E-Mail:</string>
- </property>
- </widget>
- </item>
- <item row="4" column="1">
- <widget class="QLineEdit" name="emailInput_"/>
- </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>
- </widget>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="search_">
- <property name="text">
- <string>Search</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <widget class="QFrame" name="frame_2">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="frameShape">
- <enum>QFrame::StyledPanel</enum>
- </property>
- <property name="frameShadow">
- <enum>QFrame::Raised</enum>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <item>
- <widget class="QLabel" name="label_2">
- <property name="text">
- <string>Results:</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QTreeView" name="results_"/>
- </item>
- <item>
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>Address:</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="jid_"/>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
- <item>
- <widget class="QCheckBox" name="addToRoster_">
- <property name="text">
- <string>Add to Roster. Nickname:</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="nickName_"/>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_5">
- <item>
- <widget class="QCheckBox" name="startChat_">
- <property name="text">
- <string>Start Chat With Contact</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_4">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QDialogButtonBox" name="buttonBox_">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/Swift/QtUI/main.cpp b/Swift/QtUI/main.cpp
index 3cbb170..c98937d 100644
--- a/Swift/QtUI/main.cpp
+++ b/Swift/QtUI/main.cpp
@@ -32,7 +32,7 @@ int main(int argc, char* argv[]) {
QTranslator qtTranslator;
if (!someTranslationPath.empty()) {
//std::cout << "Loading " << std::string(QLocale::system().name().toUtf8()) << std::endl;
- qtTranslator.load("Swift_" + QLocale::system().name(), someTranslationPath.parent_path().string().c_str());
+ qtTranslator.load(QString(SWIFT_APPLICATION_NAME).toLower() + "_" + QLocale::system().name(), someTranslationPath.parent_path().string().c_str());
}
app.installTranslator(&qtTranslator);
QtTranslator swiftTranslator;
diff --git a/Swift/Translations/swift.ts b/Swift/Translations/swift.ts
new file mode 100644
index 0000000..32ca913
--- /dev/null
+++ b/Swift/Translations/swift.ts
@@ -0,0 +1,1289 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name></name>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="46"/>
+ <source>Starting chat with %1% in chatroom %2%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="49"/>
+ <source>Starting chat with %1% - %2%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="115"/>
+ <source>me</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="156"/>
+ <source>%1% has gone offline</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="160"/>
+ <source>%1% has become available</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="162"/>
+ <source>%1% has gone away</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="164"/>
+ <source>%1% is now busy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="56"/>
+ <source>The day is now %1%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="193"/>
+ <source>Error sending message</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="199"/>
+ <source>Bad request</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="200"/>
+ <source>Conflict</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="201"/>
+ <source>This feature is not implemented</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="202"/>
+ <source>Forbidden</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="203"/>
+ <source>Recipient can no longer be contacted</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="204"/>
+ <source>Internal server error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="205"/>
+ <source>Item not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="206"/>
+ <source>JID Malformed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="207"/>
+ <source>Message was rejected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="208"/>
+ <source>Not allowed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="209"/>
+ <source>Not authorized</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="210"/>
+ <source>Payment is required</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="211"/>
+ <source>Recipient is unavailable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="212"/>
+ <source>Redirect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="213"/>
+ <source>Registration required</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="214"/>
+ <source>Recipient&apos;s server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="215"/>
+ <source>Remote server timeout</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="216"/>
+ <source>The server is low on resources</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="217"/>
+ <source>The service is unavailable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="218"/>
+ <source>A subscription is required</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="219"/>
+ <source>Undefined condition</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="220"/>
+ <source>Unexpected request</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="114"/>
+ <source>Room %1% is not responding. This operation may never complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="135"/>
+ <source>No nickname specified</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="139"/>
+ <source>A password needed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="147"/>
+ <source>You are banned from the room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="151"/>
+ <source>The room is full</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="155"/>
+ <source>The room does not exist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="125"/>
+ <source>Unable to enter this room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="131"/>
+ <source>Unable to enter this room as %1%, retrying as %2%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="143"/>
+ <source>Only members may enter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="214"/>
+ <source>%1% has entered the room as a %2%.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="217"/>
+ <source>%1% has entered the room.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="243"/>
+ <source>moderator</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="244"/>
+ <source>participant</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="245"/>
+ <source>visitor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="284"/>
+ <source>The room subject is now: %1%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="307"/>
+ <source>%1% is now a %2%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="313"/>
+ <source>Moderators</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="314"/>
+ <source>Participants</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="315"/>
+ <source>Visitors</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="316"/>
+ <source>Occupants</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="330"/>
+ <source>Trying to enter room %1%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="481"/>
+ <source>%1% have left then returned to the room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="484"/>
+ <source>%1% has left then returned to the room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="359"/>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="468"/>
+ <source>%1% has left the room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="173"/>
+ <source>You have entered room %1% as a %2%.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="359"/>
+ <source>You have left the room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="433"/>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="497"/>
+ <source> and </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="457"/>
+ <source>%1% have entered the room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="460"/>
+ <source>%1% has entered the room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="473"/>
+ <source>%1% have entered then left the room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="476"/>
+ <source>%1% has entered then left the room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="465"/>
+ <source>%1% have left the room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="437"/>
+ <source>Unknown Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="438"/>
+ <source>Unable to find server</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="439"/>
+ <source>Error connecting to server</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="440"/>
+ <source>Error while receiving server data</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="441"/>
+ <source>Error while sending data to the server</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="442"/>
+ <source>Error parsing server data</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="443"/>
+ <source>Login/password invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="444"/>
+ <source>Error while compressing stream</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="445"/>
+ <source>Server verification failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="446"/>
+ <source>Authentication mechanisms not supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="447"/>
+ <source>Unexpected response</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="448"/>
+ <source>Error binding resource</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="449"/>
+ <source>Error starting session</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="450"/>
+ <source>Stream error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="451"/>
+ <source>Encryption error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="452"/>
+ <source>Error loading certificate (Invalid password?)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="453"/>
+ <source>Certificate not authorized</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="455"/>
+ <source>Unknown certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="456"/>
+ <source>Certificate has expired</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="457"/>
+ <source>Certificate is not yet valid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="458"/>
+ <source>Certificate is self-signed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="459"/>
+ <source>Certificate has been rejected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="460"/>
+ <source>Certificate is not trusted</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="461"/>
+ <source>Certificate cannot be used for encrypting your connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="462"/>
+ <source>Certificate path length constraint exceeded</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="463"/>
+ <source>Invalid certificate signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="464"/>
+ <source>Invalid Certificate Authority</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="465"/>
+ <source>Certificate does not match the host identity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="475"/>
+ <source>Certificate error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="489"/>
+ <source>Reconnect to %1% failed: %2%. Will retry in %3% seconds.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="492"/>
+ <source>Disconnected from %1%: %2%.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Roster/RosterController.cpp" line="126"/>
+ <location filename="../Controllers/Roster/RosterController.cpp" line="152"/>
+ <location filename="../Controllers/Roster/RosterController.cpp" line="213"/>
+ <source>Contacts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Roster/RosterController.cpp" line="250"/>
+ <source>Server %1% rejected contact list change to item &apos;%2%&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/StatusUtil.cpp" line="15"/>
+ <location filename="../Controllers/StatusUtil.cpp" line="16"/>
+ <source>Available</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/StatusUtil.cpp" line="17"/>
+ <location filename="../Controllers/StatusUtil.cpp" line="18"/>
+ <source>Away</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/StatusUtil.cpp" line="19"/>
+ <source>Busy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../Controllers/StatusUtil.cpp" line="20"/>
+ <source>Offline</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../QtUI/MUCSearch/MUCSearchEmptyItem.cpp" line="25"/>
+ <source>No rooms found</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QtBookmarkDetailWindow</name>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="137"/>
+ <source>Edit Bookmark Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="138"/>
+ <source>Bookmark Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="140"/>
+ <source>Your Nickname:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="141"/>
+ <source>Room password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="142"/>
+ <source>Join automatically</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="139"/>
+ <source>Room Address:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QtJoinMUCWindow</name>
+ <message>
+ <location filename="../QtUI/QtJoinMUCWindow.ui"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="125"/>
+ <source>Room:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtJoinMUCWindow.ui"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="126"/>
+ <source>Search ...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtJoinMUCWindow.ui"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="127"/>
+ <source>Nickname:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtJoinMUCWindow.ui"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="124"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="130"/>
+ <source>Enter Room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtJoinMUCWindow.ui"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="129"/>
+ <source>Enter automatically in future</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QtMUCSearchWindow</name>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.ui"/>
+ <location filename="../QtUI/MUCSearch/ui_QtMUCSearchWindow.h" line="118"/>
+ <source>Search Room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.ui"/>
+ <location filename="../QtUI/MUCSearch/ui_QtMUCSearchWindow.h" line="119"/>
+ <source>Service:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.ui"/>
+ <location filename="../QtUI/MUCSearch/ui_QtMUCSearchWindow.h" line="121"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.ui"/>
+ <location filename="../QtUI/MUCSearch/ui_QtMUCSearchWindow.h" line="122"/>
+ <source>Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.ui"/>
+ <location filename="../QtUI/MUCSearch/ui_QtMUCSearchWindow.h" line="123"/>
+ <source>List rooms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QtUserSearchFieldsPage</name>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFieldsPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFieldsPage.h" line="119"/>
+ <source>Nickname:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFieldsPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFieldsPage.h" line="120"/>
+ <source>First name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFieldsPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFieldsPage.h" line="121"/>
+ <source>Last name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFieldsPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFieldsPage.h" line="122"/>
+ <source>E-Mail:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFieldsPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFieldsPage.h" line="124"/>
+ <source>Fetching search fields</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QtUserSearchFirstPage</name>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFirstPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFirstPage.h" line="121"/>
+ <source>Add a user</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFirstPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFirstPage.h" line="125"/>
+ <source>I&apos;d like to search my server</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFirstPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFirstPage.h" line="126"/>
+ <source>I&apos;d like to search another server:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFirstPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFirstPage.h" line="122"/>
+ <source>Add another user to your contact list. If you know their address you can add them directly, or you can search for them.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFirstPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFirstPage.h" line="124"/>
+ <source>I know their address:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QtUserSearchWizard</name>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWizard.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchWizard.h" line="39"/>
+ <source>Find User</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::ChatListModel</name>
+ <message>
+ <location filename="../QtUI/ChatList/ChatListModel.cpp" line="15"/>
+ <source>Bookmarked Rooms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtAboutWidget</name>
+ <message>
+ <location filename="../QtUI/QtAboutWidget.cpp" line="23"/>
+ <source>About %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAboutWidget.cpp" line="42"/>
+ <source>Built with Qt %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAboutWidget.cpp" line="43"/>
+ <source>Running with Qt %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAboutWidget.cpp" line="48"/>
+ <source>View License</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtAvatarWidget</name>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="61"/>
+ <source>No picture</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="73"/>
+ <source>Select picture ...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="76"/>
+ <source>Clear picture</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="81"/>
+ <source>Select picture</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="81"/>
+ <source>Image Files (*.png *.jpg *.gif)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="95"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="95"/>
+ <source>The selected picture is in an unrecognized format</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtBookmarkDetailWindow</name>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.cpp" line="31"/>
+ <source>Bookmark not valid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.cpp" line="31"/>
+ <source>You must specify a valid room address (e.g. myroom@chats.example.com).</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtChatListWindow</name>
+ <message>
+ <location filename="../QtUI/ChatList/QtChatListWindow.cpp" line="62"/>
+ <location filename="../QtUI/ChatList/QtChatListWindow.cpp" line="66"/>
+ <source>Add New Bookmark</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/ChatList/QtChatListWindow.cpp" line="63"/>
+ <source>Edit Bookmark</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/ChatList/QtChatListWindow.cpp" line="64"/>
+ <source>Remove Bookmark</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtChatView</name>
+ <message>
+ <location filename="../QtUI/QtChatView.cpp" line="61"/>
+ <source>Clear log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtChatView.cpp" line="62"/>
+ <source>You are about to clear the contents of your chat log.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtChatView.cpp" line="63"/>
+ <source>Are you sure?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtChatWindow</name>
+ <message>
+ <location filename="../QtUI/QtChatWindow.cpp" line="290"/>
+ <source>This message has not been received by your server yet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtChatWindow.cpp" line="292"/>
+ <source>This message may not have been transmitted.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtChatWindow.cpp" line="312"/>
+ <source>Couldn&apos;t send message: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtContactEditWidget</name>
+ <message>
+ <location filename="../QtUI/QtContactEditWidget.cpp" line="28"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWidget.cpp" line="34"/>
+ <source>Groups:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWidget.cpp" line="56"/>
+ <source>New Group:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtContactEditWindow</name>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="26"/>
+ <source>Edit contact</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="41"/>
+ <source>Remove contact</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="44"/>
+ <source>Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="76"/>
+ <source>Confirm contact deletion</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="77"/>
+ <source>Are you sure you want to delete this contact?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="78"/>
+ <source>This will remove the contact &apos;%1&apos; from all groups they may be in.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtEventWindow</name>
+ <message>
+ <location filename="../QtUI/EventViewer/QtEventWindow.cpp" line="47"/>
+ <source>Display Notice</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtLoginWindow</name>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="81"/>
+ <source>User address:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="86"/>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="87"/>
+ <source>User address - looks like someuser@someserver.com</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="91"/>
+ <source>Example: alice@wonderland.lit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="97"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="118"/>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="119"/>
+ <source>Click if you have a personal certificate used for login to the service.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="125"/>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="299"/>
+ <source>Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="136"/>
+ <source>Remember Password?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="138"/>
+ <source>Login Automatically?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="150"/>
+ <source>&amp;Swift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="152"/>
+ <source>&amp;General</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="160"/>
+ <source>&amp;About %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="165"/>
+ <source>&amp;Show Debug Console</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="169"/>
+ <source>&amp;Play Sounds</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="175"/>
+ <source>Show &amp;Notifications</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="205"/>
+ <source>Remove profile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="205"/>
+ <source>Remove the profile &apos;%1&apos;?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="299"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="320"/>
+ <source>Select an authentication certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="420"/>
+ <source>The certificate presented by the server is not valid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="421"/>
+ <source>Would you like to permanently trust this certificate? This must only be done if you know it is correct.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="423"/>
+ <source>Subject: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="424"/>
+ <source>SHA-1 Fingerprint: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtMUCSearchWindow</name>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.cpp" line="49"/>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.cpp" line="51"/>
+ <source>Searching</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtMainWindow</name>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="63"/>
+ <source>&amp;Contacts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="70"/>
+ <source>&amp;Notices</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="71"/>
+ <source>C&amp;hats</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="75"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="77"/>
+ <source>Show offline contacts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="83"/>
+ <source>&amp;Actions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="85"/>
+ <source>Edit Profile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="88"/>
+ <source>&amp;Enter Room</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="91"/>
+ <source>&amp;Add Contact</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="94"/>
+ <source>Start &amp;Chat</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="98"/>
+ <source>&amp;Sign Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="130"/>
+ <source>Notices</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtNameWidget</name>
+ <message>
+ <location filename="../QtUI/QtNameWidget.cpp" line="47"/>
+ <source>(No Nickname Set)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtNameWidget.cpp" line="47"/>
+ <source>Show Nickname</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtNameWidget.cpp" line="55"/>
+ <source>Show Address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtNameWidget.cpp" line="62"/>
+ <source>Edit Profile</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtProfileWindow</name>
+ <message>
+ <location filename="../QtUI/QtProfileWindow.cpp" line="24"/>
+ <source>Edit Profile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtProfileWindow.cpp" line="43"/>
+ <source>Nickname:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtProfileWindow.cpp" line="67"/>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtStatusWidget</name>
+ <message>
+ <location filename="../QtUI/QtStatusWidget.cpp" line="232"/>
+ <source>Connecting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtStatusWidget.cpp" line="264"/>
+ <source>(No message)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtSubscriptionRequestWindow</name>
+ <message>
+ <location filename="../QtUI/QtSubscriptionRequestWindow.cpp" line="24"/>
+ <source>You have already replied to this request</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtSubscriptionRequestWindow.cpp" line="25"/>
+ <source>Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtSubscriptionRequestWindow.cpp" line="30"/>
+ <source>Yes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtSubscriptionRequestWindow.cpp" line="32"/>
+ <source>No</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtSubscriptionRequestWindow.cpp" line="34"/>
+ <source>Defer</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtTreeWidget</name>
+ <message>
+ <location filename="../QtUI/Roster/QtTreeWidget.cpp" line="86"/>
+ <source>Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/Roster/QtTreeWidget.cpp" line="93"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/Roster/QtTreeWidget.cpp" line="97"/>
+ <source>Rename group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/Roster/QtTreeWidget.cpp" line="97"/>
+ <source>New name for %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtUserSearchFirstPage</name>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="26"/>
+ <source>Chat to another user</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="26"/>
+ <source>%1. If you know their address you can enter it directly, or you can search for them.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="26"/>
+ <source>Add another user to your contact list</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtUserSearchWindow</name>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="85"/>
+ <source>Add Contact</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="85"/>
+ <source>Chat to User</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="294"/>
+ <source>How would you like to find the user to add?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="297"/>
+ <source>How would you like to find the user to chat to?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="321"/>
+ <source>Error while searching</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="327"/>
+ <source>This server doesn&apos;t support searching for users.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtWebView</name>
+ <message>
+ <location filename="../QtUI/QtWebView.cpp" line="61"/>
+ <source>Clear</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtXMLConsoleWidget</name>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="22"/>
+ <source>Console</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="40"/>
+ <source>Trace input/output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="46"/>
+ <source>Clear</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="50"/>
+ <source>Debug Console</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="75"/>
+ <source>&lt;!-- IN --&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="79"/>
+ <source>&lt;!-- OUT --&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/Swift/Translations/swift_nl.ts b/Swift/Translations/swift_nl.ts
new file mode 100644
index 0000000..f6d6220
--- /dev/null
+++ b/Swift/Translations/swift_nl.ts
@@ -0,0 +1,1290 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="nl_NL">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name></name>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="46"/>
+ <source>Starting chat with %1% in chatroom %2%</source>
+ <translation>Conversatie begonnen met %1% in kamer %2%</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="49"/>
+ <source>Starting chat with %1% - %2%</source>
+ <translation>Conversatie begonnen met %1% - %2%</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="115"/>
+ <source>me</source>
+ <translation>ik</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="156"/>
+ <source>%1% has gone offline</source>
+ <translation>%1% is offline gegaan</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="160"/>
+ <source>%1% has become available</source>
+ <translation>%1% is beschikbaar geworden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="162"/>
+ <source>%1% has gone away</source>
+ <translation>%1% is afwezig</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatController.cpp" line="164"/>
+ <source>%1% is now busy</source>
+ <translation>%1% is nu bezet</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="56"/>
+ <source>The day is now %1%</source>
+ <translation>Vandaag is nu %1%</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="193"/>
+ <source>Error sending message</source>
+ <translation>Fout tijdens het versturen van bericht</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="199"/>
+ <source>Bad request</source>
+ <translation>Ongeldig verzoek</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="200"/>
+ <source>Conflict</source>
+ <translation>Conflict</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="201"/>
+ <source>This feature is not implemented</source>
+ <translation>Deze functie is niet geïmplementeerd</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="202"/>
+ <source>Forbidden</source>
+ <translation>Verboden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="203"/>
+ <source>Recipient can no longer be contacted</source>
+ <translation>Begunstigde is onbereikbaar</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="204"/>
+ <source>Internal server error</source>
+ <translation>Interne serverfout</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="205"/>
+ <source>Item not found</source>
+ <translation>Element niet gevonden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="206"/>
+ <source>JID Malformed</source>
+ <translation>JID misvormd</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="207"/>
+ <source>Message was rejected</source>
+ <translation>Bericht geweigerd</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="208"/>
+ <source>Not allowed</source>
+ <translation>Niet toegelaten</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="209"/>
+ <source>Not authorized</source>
+ <translation>Niet toegestaan</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="210"/>
+ <source>Payment is required</source>
+ <translation>Betaling is vereist</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="211"/>
+ <source>Recipient is unavailable</source>
+ <translation>Begunstigde is niet beschikbaar</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="212"/>
+ <source>Redirect</source>
+ <translation>Omleiding</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="213"/>
+ <source>Registration required</source>
+ <translation>Registratie vereist</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="214"/>
+ <source>Recipient&apos;s server not found</source>
+ <translation>Server begunstigde niet gevonden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="215"/>
+ <source>Remote server timeout</source>
+ <translation>Server time-out</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="216"/>
+ <source>The server is low on resources</source>
+ <translation>De server heeft een tekort aan bronnen</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="217"/>
+ <source>The service is unavailable</source>
+ <translation>De server is niet beschikbaar</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="218"/>
+ <source>A subscription is required</source>
+ <translation>Inschrijving is vereist</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="219"/>
+ <source>Undefined condition</source>
+ <translation>Onbekende fout</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/ChatControllerBase.cpp" line="220"/>
+ <source>Unexpected request</source>
+ <translation>Onverwacht verzoek</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="114"/>
+ <source>Room %1% is not responding. This operation may never complete.</source>
+ <translation>Kamer %1% antwoordt niet. Deze operatie kan mogelijk nooit voltooien.</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="135"/>
+ <source>No nickname specified</source>
+ <translation>Geen roepnaam gespecifieerd</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="139"/>
+ <source>A password needed</source>
+ <translation>Wachtwoord vereist</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="147"/>
+ <source>You are banned from the room</source>
+ <translation>U bent verbannen uit de kamer</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="151"/>
+ <source>The room is full</source>
+ <translation>De kamer is vol</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="155"/>
+ <source>The room does not exist</source>
+ <translation>Deze kamer bestaat niet</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="125"/>
+ <source>Unable to enter this room</source>
+ <translation>Kan deze kamer niet betreden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="131"/>
+ <source>Unable to enter this room as %1%, retrying as %2%</source>
+ <translation>Kan deze kamer niet betreden als %1%; als %2% opniew aan het proberen</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="143"/>
+ <source>Only members may enter</source>
+ <translation>Enkel leden mogen deze kamer betreden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="214"/>
+ <source>%1% has entered the room as a %2%.</source>
+ <translation>%1% heeft de kamer betreden als %2%.</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="217"/>
+ <source>%1% has entered the room.</source>
+ <translation>%1% heeft de kamer betreden.</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="243"/>
+ <source>moderator</source>
+ <translation>moderator</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="244"/>
+ <source>participant</source>
+ <translation>deelnemer</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="245"/>
+ <source>visitor</source>
+ <translation>bezoeker</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="284"/>
+ <source>The room subject is now: %1%</source>
+ <translation>Het onderwerp van deze kamer is nu: %1%</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="307"/>
+ <source>%1% is now a %2%</source>
+ <translation>%1% is nu een %2%</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="313"/>
+ <source>Moderators</source>
+ <translation>Moderators</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="314"/>
+ <source>Participants</source>
+ <translation>Deelnemers</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="315"/>
+ <source>Visitors</source>
+ <translation>Bezoekers</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="316"/>
+ <source>Occupants</source>
+ <translation>Bewoners</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="330"/>
+ <source>Trying to enter room %1%</source>
+ <translation>Aan het proberen om de kamer %1% te betreden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="481"/>
+ <source>%1% have left then returned to the room</source>
+ <translation>%1% hebben de kamer verlaten en terug betreden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="484"/>
+ <source>%1% has left then returned to the room</source>
+ <translation>%1% heeft de kamer verlaten en terug betreden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="359"/>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="468"/>
+ <source>%1% has left the room</source>
+ <translation>%1% heeft de kamer verlaten</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="173"/>
+ <source>You have entered room %1% as a %2%.</source>
+ <translation>U heeft de kamer %1% als %2% betreden.</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="359"/>
+ <source>You have left the room</source>
+ <translation>U heeft de kamer verlaten</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="433"/>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="497"/>
+ <source> and </source>
+ <translation>en</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="457"/>
+ <source>%1% have entered the room</source>
+ <translation>%1% hebben de kamer betreden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="460"/>
+ <source>%1% has entered the room</source>
+ <translation>%1% heeft de kamer betreden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="473"/>
+ <source>%1% have entered then left the room</source>
+ <translation>%1% hebben de kamer betreden en terug verlaten</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="476"/>
+ <source>%1% has entered then left the room</source>
+ <translation>%1% heeft de kamer betreden en terug verlaten</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Chat/MUCController.cpp" line="465"/>
+ <source>%1% have left the room</source>
+ <translation>%1% hebben de kamer verlaten</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="437"/>
+ <source>Unknown Error</source>
+ <translation>Onbekende fout</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="438"/>
+ <source>Unable to find server</source>
+ <translation>Kan server niet vinden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="439"/>
+ <source>Error connecting to server</source>
+ <translation>Fout tijdens het verbinden met de server</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="440"/>
+ <source>Error while receiving server data</source>
+ <translation>Fout tijdens het ontvangen van gegevens</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="441"/>
+ <source>Error while sending data to the server</source>
+ <translation>Fout tijdens het verzenden van gegevens</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="442"/>
+ <source>Error parsing server data</source>
+ <translation>Fout tijdens het ontleden van gegevens</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="443"/>
+ <source>Login/password invalid</source>
+ <translation>Gebruikersnaam/wachtwoord ongeldig</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="444"/>
+ <source>Error while compressing stream</source>
+ <translation>Fout tijdens het comprimeren</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="445"/>
+ <source>Server verification failed</source>
+ <translation>Serververificatie gefaald</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="446"/>
+ <source>Authentication mechanisms not supported</source>
+ <translation>Authenticatiemechanismen niet ondersteund</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="447"/>
+ <source>Unexpected response</source>
+ <translation>Onverwacht antwoord</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="448"/>
+ <source>Error binding resource</source>
+ <translation>Fout tijdens het binden van de resource</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="449"/>
+ <source>Error starting session</source>
+ <translation>Fout bij het starten van de sessie</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="450"/>
+ <source>Stream error</source>
+ <translation>Stroomfout</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="451"/>
+ <source>Encryption error</source>
+ <translation>Beveiligingsfout</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="452"/>
+ <source>Error loading certificate (Invalid password?)</source>
+ <translation>Fout bij het laden van het certificaat (Ongeldig wachtwoord?)</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="453"/>
+ <source>Certificate not authorized</source>
+ <translation>Certificaat heeft geen toestemming</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="455"/>
+ <source>Unknown certificate</source>
+ <translation>Onbekend certificaat</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="456"/>
+ <source>Certificate has expired</source>
+ <translation>Certificaat is verstreken</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="457"/>
+ <source>Certificate is not yet valid</source>
+ <translation>Certificaat is nog niet geldig</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="458"/>
+ <source>Certificate is self-signed</source>
+ <translation>Certificaat is zelfondertekend</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="459"/>
+ <source>Certificate has been rejected</source>
+ <translation>Certificaat werd afgewezen</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="460"/>
+ <source>Certificate is not trusted</source>
+ <translation>Certificaat wordt niet vertrouwd</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="461"/>
+ <source>Certificate cannot be used for encrypting your connection</source>
+ <translation>Certificaat kan niet gebruikt worden om verbinding te beveiligen</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="462"/>
+ <source>Certificate path length constraint exceeded</source>
+ <translation>Padlengte certificaat overschreden</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="463"/>
+ <source>Invalid certificate signature</source>
+ <translation>Certificaat heeft ongeldige handtekening</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="464"/>
+ <source>Invalid Certificate Authority</source>
+ <translation>Ongeldige certificeringsinstantie</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="465"/>
+ <source>Certificate does not match the host identity</source>
+ <translation>Certificaat komt niet overeen met identiteit</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="475"/>
+ <source>Certificate error</source>
+ <translation>Certificaatfout</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="489"/>
+ <source>Reconnect to %1% failed: %2%. Will retry in %3% seconds.</source>
+ <translation>Herverbinding met %1% mislukt: %2%. Zal opnieuw proberen binnen %3% seconden.</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/MainController.cpp" line="492"/>
+ <source>Disconnected from %1%: %2%.</source>
+ <translation>Verbinding met %1% verbroken: %2%.</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Roster/RosterController.cpp" line="126"/>
+ <location filename="../Controllers/Roster/RosterController.cpp" line="152"/>
+ <location filename="../Controllers/Roster/RosterController.cpp" line="213"/>
+ <source>Contacts</source>
+ <translation>Contacten</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/Roster/RosterController.cpp" line="250"/>
+ <source>Server %1% rejected contact list change to item &apos;%2%&apos;</source>
+ <translation>Server %1% heeft de aanpassing van contact &apos;%2&apos; geweigerd</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/StatusUtil.cpp" line="15"/>
+ <location filename="../Controllers/StatusUtil.cpp" line="16"/>
+ <source>Available</source>
+ <translation>Beschikbaar</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/StatusUtil.cpp" line="17"/>
+ <location filename="../Controllers/StatusUtil.cpp" line="18"/>
+ <source>Away</source>
+ <translation>Afwezig</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/StatusUtil.cpp" line="19"/>
+ <source>Busy</source>
+ <translation>Bezet</translation>
+ </message>
+ <message>
+ <location filename="../Controllers/StatusUtil.cpp" line="20"/>
+ <source>Offline</source>
+ <translation>Offline</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../QtUI/MUCSearch/MUCSearchEmptyItem.cpp" line="25"/>
+ <source>No rooms found</source>
+ <translation>Geen kamers gevonden</translation>
+ </message>
+</context>
+<context>
+ <name>QtBookmarkDetailWindow</name>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="137"/>
+ <source>Edit Bookmark Details</source>
+ <translation>Bladwijzerdetails Aanpassen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="138"/>
+ <source>Bookmark Name:</source>
+ <translation>Naam Bladwijzer:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="140"/>
+ <source>Your Nickname:</source>
+ <translation>Uw Roepnaam:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="141"/>
+ <source>Room password:</source>
+ <translation>Wachtwoord Kamer:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="142"/>
+ <source>Join automatically</source>
+ <translation>Automatisch betreden</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.ui"/>
+ <location filename="../QtUI/ui_QtBookmarkDetailWindow.h" line="139"/>
+ <source>Room Address:</source>
+ <translation>Adres Kamer:</translation>
+ </message>
+</context>
+<context>
+ <name>QtJoinMUCWindow</name>
+ <message>
+ <location filename="../QtUI/QtJoinMUCWindow.ui"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="125"/>
+ <source>Room:</source>
+ <translation>Kamer:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtJoinMUCWindow.ui"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="126"/>
+ <source>Search ...</source>
+ <translation>Zoek ...</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtJoinMUCWindow.ui"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="127"/>
+ <source>Nickname:</source>
+ <translation>Roepnaam:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtJoinMUCWindow.ui"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="124"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="130"/>
+ <source>Enter Room</source>
+ <translation>Kamer Betreden</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtJoinMUCWindow.ui"/>
+ <location filename="../QtUI/ui_QtJoinMUCWindow.h" line="129"/>
+ <source>Enter automatically in future</source>
+ <translation>Automatisch Betreden</translation>
+ </message>
+</context>
+<context>
+ <name>QtMUCSearchWindow</name>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.ui"/>
+ <location filename="../QtUI/MUCSearch/ui_QtMUCSearchWindow.h" line="118"/>
+ <source>Search Room</source>
+ <translation>Zoek Kamer</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.ui"/>
+ <location filename="../QtUI/MUCSearch/ui_QtMUCSearchWindow.h" line="119"/>
+ <source>Service:</source>
+ <translation>Dienst:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.ui"/>
+ <location filename="../QtUI/MUCSearch/ui_QtMUCSearchWindow.h" line="121"/>
+ <source>Cancel</source>
+ <translation>Annuleren</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.ui"/>
+ <location filename="../QtUI/MUCSearch/ui_QtMUCSearchWindow.h" line="122"/>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.ui"/>
+ <location filename="../QtUI/MUCSearch/ui_QtMUCSearchWindow.h" line="123"/>
+ <source>List rooms</source>
+ <translation>Kamerlijst</translation>
+ </message>
+</context>
+<context>
+ <name>QtUserSearchFieldsPage</name>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFieldsPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFieldsPage.h" line="119"/>
+ <source>Nickname:</source>
+ <translation>Roepnaam:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFieldsPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFieldsPage.h" line="120"/>
+ <source>First name:</source>
+ <translation>Voornaam:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFieldsPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFieldsPage.h" line="121"/>
+ <source>Last name:</source>
+ <translation>Familienaam:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFieldsPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFieldsPage.h" line="122"/>
+ <source>E-Mail:</source>
+ <translation>E-Mail:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFieldsPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFieldsPage.h" line="124"/>
+ <source>Fetching search fields</source>
+ <translation>Gegevens aan het ophalen</translation>
+ </message>
+</context>
+<context>
+ <name>QtUserSearchFirstPage</name>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFirstPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFirstPage.h" line="121"/>
+ <source>Add a user</source>
+ <translation>Gebruiker toevoegen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFirstPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFirstPage.h" line="122"/>
+ <source>Add another user to your contact list. If you know their address you can add them directly, or you can search for them.</source>
+ <translation>Voeg een andere gebruiker aan je contactlijst toe. Indien u zijn/haar JID kent kan u hem/haar onmiddelijk toevoegen; anders kan u hem/haar zoeken.</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFirstPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFirstPage.h" line="125"/>
+ <source>I&apos;d like to search my server</source>
+ <translation>Ik wil mijn server doorzoeken</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFirstPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFirstPage.h" line="126"/>
+ <source>I&apos;d like to search another server:</source>
+ <translation>Ik wil een andere server doorzoeken:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchFirstPage.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchFirstPage.h" line="124"/>
+ <source>I know their address:</source>
+ <translation>Ik ken het adres:</translation>
+ </message>
+</context>
+<context>
+ <name>QtUserSearchWizard</name>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWizard.ui"/>
+ <location filename="../QtUI/UserSearch/ui_QtUserSearchWizard.h" line="39"/>
+ <source>Find User</source>
+ <translation>Zoek Gebruiker</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::ChatListModel</name>
+ <message>
+ <location filename="../QtUI/ChatList/ChatListModel.cpp" line="15"/>
+ <source>Bookmarked Rooms</source>
+ <translation>Bladwijzers</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtAboutWidget</name>
+ <message>
+ <location filename="../QtUI/QtAboutWidget.cpp" line="23"/>
+ <source>About %1</source>
+ <translation>Over %1</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAboutWidget.cpp" line="42"/>
+ <source>Built with Qt %1</source>
+ <translation>Gebouwd met Qt %1</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAboutWidget.cpp" line="43"/>
+ <source>Running with Qt %1</source>
+ <translation>Actief met Qt %1</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAboutWidget.cpp" line="48"/>
+ <source>View License</source>
+ <translation>Bekijk Licentie</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtAvatarWidget</name>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="61"/>
+ <source>No picture</source>
+ <translation>Geen
+Afbeelding</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="73"/>
+ <source>Select picture ...</source>
+ <translation>Selecteer afbeelding ...</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="76"/>
+ <source>Clear picture</source>
+ <translation>Verwijder afbeelding</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="81"/>
+ <source>Select picture</source>
+ <translation>Selecteer afbeelding</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="81"/>
+ <source>Image Files (*.png *.jpg *.gif)</source>
+ <translation>Afbeeldingen (*.png *.jpg *.gif)</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="95"/>
+ <source>Error</source>
+ <translation>Fout</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtAvatarWidget.cpp" line="95"/>
+ <source>The selected picture is in an unrecognized format</source>
+ <translation>De geselecteerde afbeelding is in een ongekend formaat</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtBookmarkDetailWindow</name>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.cpp" line="31"/>
+ <source>Bookmark not valid</source>
+ <translation>Bladwijzer ongeldig</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtBookmarkDetailWindow.cpp" line="31"/>
+ <source>You must specify a valid room address (e.g. myroom@chats.example.com).</source>
+ <translation>Specifieer een geldige kamer (bv. mijnkamer@kamers.voorbeeld.com).</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtChatListWindow</name>
+ <message>
+ <location filename="../QtUI/ChatList/QtChatListWindow.cpp" line="62"/>
+ <location filename="../QtUI/ChatList/QtChatListWindow.cpp" line="66"/>
+ <source>Add New Bookmark</source>
+ <translation>Nieuwe Bladwijzer</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/ChatList/QtChatListWindow.cpp" line="63"/>
+ <source>Edit Bookmark</source>
+ <translation>Bewerk Bladwijzer</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/ChatList/QtChatListWindow.cpp" line="64"/>
+ <source>Remove Bookmark</source>
+ <translation>Verwijder Bladwijzer</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtChatView</name>
+ <message>
+ <location filename="../QtUI/QtChatView.cpp" line="61"/>
+ <source>Clear log</source>
+ <translation>Inhoud wissen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtChatView.cpp" line="62"/>
+ <source>You are about to clear the contents of your chat log.</source>
+ <translation>De inhoud van dit venster zal gewist worden.</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtChatView.cpp" line="63"/>
+ <source>Are you sure?</source>
+ <translation>Bent u zeker?</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtChatWindow</name>
+ <message>
+ <location filename="../QtUI/QtChatWindow.cpp" line="290"/>
+ <source>This message has not been received by your server yet.</source>
+ <translation>Deze boodschap werd nog niet door uw server ontvangen.</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtChatWindow.cpp" line="292"/>
+ <source>This message may not have been transmitted.</source>
+ <translation>Dit bericht kan mogelijk niet verzonden zijn.</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtChatWindow.cpp" line="312"/>
+ <source>Couldn&apos;t send message: %1</source>
+ <translation>Kon boodschap niet verzenden: %1</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtContactEditWidget</name>
+ <message>
+ <location filename="../QtUI/QtContactEditWidget.cpp" line="28"/>
+ <source>Name:</source>
+ <translation>Naam:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWidget.cpp" line="34"/>
+ <source>Groups:</source>
+ <translation>Groupen:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWidget.cpp" line="56"/>
+ <source>New Group:</source>
+ <translation>Nieuwe Groep:</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtContactEditWindow</name>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="26"/>
+ <source>Edit contact</source>
+ <translation>Contact bewerken</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="41"/>
+ <source>Remove contact</source>
+ <translation>Contact verwijderen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="44"/>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="76"/>
+ <source>Confirm contact deletion</source>
+ <translation>Bevestig verwijderen van contact</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="77"/>
+ <source>Are you sure you want to delete this contact?</source>
+ <translation>Bent u zeker dat u diet contact wil verwijderen?</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtContactEditWindow.cpp" line="78"/>
+ <source>This will remove the contact &apos;%1&apos; from all groups they may be in.</source>
+ <translation>Dit zal het contact &apos;%1&apos; uit alle groepen verwijderen waar deze zich in bevindt.</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtEventWindow</name>
+ <message>
+ <location filename="../QtUI/EventViewer/QtEventWindow.cpp" line="47"/>
+ <source>Display Notice</source>
+ <translation>Toon Boodschap</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtLoginWindow</name>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="81"/>
+ <source>User address:</source>
+ <translation>Gebruikersadres:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="86"/>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="87"/>
+ <source>User address - looks like someuser@someserver.com</source>
+ <translation>Gebruikersadres van de vorm iemand@ergens.com</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="91"/>
+ <source>Example: alice@wonderland.lit</source>
+ <translation>Voorbeeld: alice@wonderland.lit</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="97"/>
+ <source>Password:</source>
+ <translation>Wachtwoord:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="118"/>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="119"/>
+ <source>Click if you have a personal certificate used for login to the service.</source>
+ <translation>Klik hier indien u een persoonlijk certificaat gekregen heeft om in te loggen.</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="125"/>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="299"/>
+ <source>Connect</source>
+ <translation>Verbinden</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="136"/>
+ <source>Remember Password?</source>
+ <translation>Wachtwoord Onthouden?</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="138"/>
+ <source>Login Automatically?</source>
+ <translation>Automatisch Inloggen?</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="150"/>
+ <source>&amp;Swift</source>
+ <translation>&amp;Swift</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="152"/>
+ <source>&amp;General</source>
+ <translation>&amp;Algemeen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="160"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;Over %1</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="165"/>
+ <source>&amp;Show Debug Console</source>
+ <translation>Toon &amp;Debug Console</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="169"/>
+ <source>&amp;Play Sounds</source>
+ <translation>&amp;Geluid Aan</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="175"/>
+ <source>Show &amp;Notifications</source>
+ <translation>Toon &amp;Schermboodschappen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>&amp;Afsluiten</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="205"/>
+ <source>Remove profile</source>
+ <translation>Verwijder profiel</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="205"/>
+ <source>Remove the profile &apos;%1&apos;?</source>
+ <translation>Profiel &apos;%1&apos; verwijderen?</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="299"/>
+ <source>Cancel</source>
+ <translation>Annuleren</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="320"/>
+ <source>Select an authentication certificate</source>
+ <translation>Selecteer een authenticatiecertificaat</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="420"/>
+ <source>The certificate presented by the server is not valid.</source>
+ <translation>Het certificaat aangeboden door de server is ongeldig.</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="421"/>
+ <source>Would you like to permanently trust this certificate? This must only be done if you know it is correct.</source>
+ <translation>Wilt u dit certificaat permanent vertrouwen? Dit mag enkel gedaan worden als u zeker bent dat het certificaat juist is.</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="423"/>
+ <source>Subject: %1</source>
+ <translation>Onderwerp: %1</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtLoginWindow.cpp" line="424"/>
+ <source>SHA-1 Fingerprint: %1</source>
+ <translation>SHA-1 Vingerafdruk: %1</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtMUCSearchWindow</name>
+ <message>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.cpp" line="49"/>
+ <location filename="../QtUI/MUCSearch/QtMUCSearchWindow.cpp" line="51"/>
+ <source>Searching</source>
+ <translation>Zoeken</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtMainWindow</name>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="63"/>
+ <source>&amp;Contacts</source>
+ <translation>&amp;Contacten</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="70"/>
+ <source>&amp;Notices</source>
+ <translation>&amp;Boodschappen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="71"/>
+ <source>C&amp;hats</source>
+ <translation>C&amp;onversaties</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="75"/>
+ <source>&amp;View</source>
+ <translation>&amp;Beeld</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="77"/>
+ <source>Show offline contacts</source>
+ <translation>Toon offline contacten</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="83"/>
+ <source>&amp;Actions</source>
+ <translation>&amp;Acties</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="85"/>
+ <source>Edit Profile</source>
+ <translation>Bewerk Profiel</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="88"/>
+ <source>&amp;Enter Room</source>
+ <translation>&amp;Kamer Betreden</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="91"/>
+ <source>&amp;Add Contact</source>
+ <translation>Contact &amp;Toevoegen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="94"/>
+ <source>Start &amp;Chat</source>
+ <translation>&amp;Conversatie Starten</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="98"/>
+ <source>&amp;Sign Out</source>
+ <translation>&amp;Afmelden</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtMainWindow.cpp" line="130"/>
+ <source>Notices</source>
+ <translation>Boodschappen</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtNameWidget</name>
+ <message>
+ <location filename="../QtUI/QtNameWidget.cpp" line="47"/>
+ <source>(No Nickname Set)</source>
+ <translation>(Geen Roepnaam Ingesteld)</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtNameWidget.cpp" line="47"/>
+ <source>Show Nickname</source>
+ <translation>Toon Roepnaam</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtNameWidget.cpp" line="55"/>
+ <source>Show Address</source>
+ <translation>Toon Gebruikersadres</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtNameWidget.cpp" line="62"/>
+ <source>Edit Profile</source>
+ <translation>Bewerk Profiel</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtProfileWindow</name>
+ <message>
+ <location filename="../QtUI/QtProfileWindow.cpp" line="24"/>
+ <source>Edit Profile</source>
+ <translation>Bewerk Profiel</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtProfileWindow.cpp" line="43"/>
+ <source>Nickname:</source>
+ <translation>Roepnaam:</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtProfileWindow.cpp" line="67"/>
+ <source>Save</source>
+ <translation>Bewaar</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtStatusWidget</name>
+ <message>
+ <location filename="../QtUI/QtStatusWidget.cpp" line="232"/>
+ <source>Connecting</source>
+ <translation>Aan het verbinden</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtStatusWidget.cpp" line="264"/>
+ <source>(No message)</source>
+ <translation>(Geen boodschap)</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtSubscriptionRequestWindow</name>
+ <message>
+ <location filename="../QtUI/QtSubscriptionRequestWindow.cpp" line="24"/>
+ <source>You have already replied to this request</source>
+ <translation>Dit verzoek is reeds beantwoord</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtSubscriptionRequestWindow.cpp" line="25"/>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtSubscriptionRequestWindow.cpp" line="30"/>
+ <source>Yes</source>
+ <translation>Ja</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtSubscriptionRequestWindow.cpp" line="32"/>
+ <source>No</source>
+ <translation>Neen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtSubscriptionRequestWindow.cpp" line="34"/>
+ <source>Defer</source>
+ <translation>Uitstellen</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtTreeWidget</name>
+ <message>
+ <location filename="../QtUI/Roster/QtTreeWidget.cpp" line="86"/>
+ <source>Edit</source>
+ <translation>Bewerk</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/Roster/QtTreeWidget.cpp" line="93"/>
+ <source>Rename</source>
+ <translation>Naam wijzigen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/Roster/QtTreeWidget.cpp" line="97"/>
+ <source>Rename group</source>
+ <translation>Groepsnaam wijzigen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/Roster/QtTreeWidget.cpp" line="97"/>
+ <source>New name for %1</source>
+ <translation>Niewe naam voor %1</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtUserSearchFirstPage</name>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="26"/>
+ <source>Chat to another user</source>
+ <translation>Start conversatie met andere gebruiker</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="26"/>
+ <source>%1. If you know their address you can enter it directly, or you can search for them.</source>
+ <translation>%1. Indien u het adres kent kan u dit rechtstreeks invoeren, anders kan u het adres opzoeken.</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="26"/>
+ <source>Add another user to your contact list</source>
+ <translation>Voeg een andere gebruiker toe aan uw contactenlijst</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtUserSearchWindow</name>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="85"/>
+ <source>Add Contact</source>
+ <translation>Voeg Contact Toe</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="85"/>
+ <source>Chat to User</source>
+ <translation>Start Conversatie met Gebruiker</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="294"/>
+ <source>How would you like to find the user to add?</source>
+ <translation>Hoe wilt u de gebruiker toevoegen?</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="297"/>
+ <source>How would you like to find the user to chat to?</source>
+ <translation>Hoe wilt u de gebruiker contacteren?</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="321"/>
+ <source>Error while searching</source>
+ <translation>Fout tijdens zoeken</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/UserSearch/QtUserSearchWindow.cpp" line="327"/>
+ <source>This server doesn&apos;t support searching for users.</source>
+ <translation>Deze server ondersteunt het zoeken van gebruikers niet.</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtWebView</name>
+ <message>
+ <location filename="../QtUI/QtWebView.cpp" line="61"/>
+ <source>Clear</source>
+ <translation>Wissen</translation>
+ </message>
+</context>
+<context>
+ <name>Swift::QtXMLConsoleWidget</name>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="22"/>
+ <source>Console</source>
+ <translation>Console</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="40"/>
+ <source>Trace input/output</source>
+ <translation>Toon invoer/uitvoer</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="46"/>
+ <source>Clear</source>
+ <translation>Wissen</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="50"/>
+ <source>Debug Console</source>
+ <translation>Debug Console</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="75"/>
+ <source>&lt;!-- IN --&gt;</source>
+ <translation>&lt;!-- IN --&gt;</translation>
+ </message>
+ <message>
+ <location filename="../QtUI/QtXMLConsoleWidget.cpp" line="79"/>
+ <source>&lt;!-- OUT --&gt;</source>
+ <translation>&lt;!-- UIT --&gt;</translation>
+ </message>
+</context>
+</TS>